Rev 3438 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3438 | Rev 4407 | ||
---|---|---|---|
Line 109... | Line 109... | ||
109 | #define IPC_FF_ROUTE_FROM_ME (1 << 0) |
109 | #define IPC_FF_ROUTE_FROM_ME (1 << 0) |
110 | 110 | ||
111 | /* System-specific methods - only through special syscalls |
111 | /* System-specific methods - only through special syscalls |
112 | * These methods have special behaviour |
112 | * These methods have special behaviour |
113 | */ |
113 | */ |
- | 114 | /** Clone connection. |
|
- | 115 | * |
|
- | 116 | * The calling task clones one of its phones for the callee. |
|
- | 117 | * |
|
- | 118 | * - ARG1 - The caller sets ARG1 to the phone of the cloned connection. |
|
- | 119 | * - The callee gets the new phone from ARG1. |
|
- | 120 | * - on answer, the callee acknowledges the new connection by sending EOK back |
|
- | 121 | * or the kernel closes it |
|
- | 122 | */ |
|
- | 123 | #define IPC_M_CONNECTION_CLONE 1 |
|
- | 124 | /** Protocol for CONNECT - ME |
|
- | 125 | * |
|
- | 126 | * Through this call, the recipient learns about the new cloned connection. |
|
- | 127 | * |
|
- | 128 | * - ARG5 - the kernel sets ARG5 to contain the hash of the used phone |
|
- | 129 | * - on asnwer, the callee acknowledges the new connection by sending EOK back |
|
- | 130 | * or the kernel closes it |
|
- | 131 | */ |
|
- | 132 | #define IPC_M_CONNECT_ME 2 |
|
114 | /** Protocol for CONNECT - TO - ME |
133 | /** Protocol for CONNECT - TO - ME |
115 | * |
134 | * |
116 | * Calling process asks the callee to create a callback connection, |
135 | * Calling process asks the callee to create a callback connection, |
117 | * so that it can start initiating new messages. |
136 | * so that it can start initiating new messages. |
118 | * |
137 | * |
Line 125... | Line 144... | ||
125 | * error is sent back to caller. Otherwise |
144 | * error is sent back to caller. Otherwise |
126 | * the call is accepted and the response is sent back. |
145 | * the call is accepted and the response is sent back. |
127 | * - the allocated phoneid is passed to userspace |
146 | * - the allocated phoneid is passed to userspace |
128 | * (on the receiving side) as ARG5 of the call. |
147 | * (on the receiving side) as ARG5 of the call. |
129 | */ |
148 | */ |
130 | #define IPC_M_CONNECT_TO_ME 1 |
149 | #define IPC_M_CONNECT_TO_ME 3 |
131 | /** Protocol for CONNECT - ME - TO |
150 | /** Protocol for CONNECT - ME - TO |
132 | * |
151 | * |
133 | * Calling process asks the callee to create for him a new connection. |
152 | * Calling process asks the callee to create for him a new connection. |
134 | * E.g. the caller wants a name server to connect him to print server. |
153 | * E.g. the caller wants a name server to connect him to print server. |
135 | * |
154 | * |
Line 143... | Line 162... | ||
143 | * - recipient - if ipc_answer == 0, then accept connection |
162 | * - recipient - if ipc_answer == 0, then accept connection |
144 | * - otherwise connection refused |
163 | * - otherwise connection refused |
145 | * - recepient may forward message. |
164 | * - recepient may forward message. |
146 | * |
165 | * |
147 | */ |
166 | */ |
148 | #define IPC_M_CONNECT_ME_TO 2 |
167 | #define IPC_M_CONNECT_ME_TO 4 |
149 | /** This message is sent to answerbox when the phone |
168 | /** This message is sent to answerbox when the phone |
150 | * is hung up |
169 | * is hung up |
151 | */ |
170 | */ |
152 | #define IPC_M_PHONE_HUNGUP 3 |
171 | #define IPC_M_PHONE_HUNGUP 5 |
153 | 172 | ||
154 | /** Send as_area over IPC. |
173 | /** Send as_area over IPC. |
155 | * - ARG1 - source as_area base address |
174 | * - ARG1 - source as_area base address |
156 | * - ARG2 - size of source as_area (filled automatically by kernel) |
175 | * - ARG2 - size of source as_area (filled automatically by kernel) |
157 | * - ARG3 - flags of the as_area being sent |
176 | * - ARG3 - flags of the as_area being sent |
158 | * |
177 | * |
159 | * on answer, the recipient must set: |
178 | * on answer, the recipient must set: |
160 | * - ARG1 - dst as_area base adress |
179 | * - ARG1 - dst as_area base adress |
161 | */ |
180 | */ |
162 | #define IPC_M_SHARE_OUT 4 |
181 | #define IPC_M_SHARE_OUT 6 |
163 | 182 | ||
164 | /** Receive as_area over IPC. |
183 | /** Receive as_area over IPC. |
165 | * - ARG1 - destination as_area base address |
184 | * - ARG1 - destination as_area base address |
166 | * - ARG2 - destination as_area size |
185 | * - ARG2 - destination as_area size |
167 | * - ARG3 - user defined argument |
186 | * - ARG3 - user defined argument |
Line 169... | Line 188... | ||
169 | * on answer, the recipient must set: |
188 | * on answer, the recipient must set: |
170 | * |
189 | * |
171 | * - ARG1 - source as_area base address |
190 | * - ARG1 - source as_area base address |
172 | * - ARG2 - flags that will be used for sharing |
191 | * - ARG2 - flags that will be used for sharing |
173 | */ |
192 | */ |
174 | #define IPC_M_SHARE_IN 5 |
193 | #define IPC_M_SHARE_IN 7 |
175 | 194 | ||
176 | /** Send data to another address space over IPC. |
195 | /** Send data to another address space over IPC. |
177 | * - ARG1 - source address space virtual address |
196 | * - ARG1 - source address space virtual address |
178 | * - ARG2 - size of data to be copied, may be overriden by the recipient |
197 | * - ARG2 - size of data to be copied, may be overriden by the recipient |
179 | * |
198 | * |
180 | * on answer, the recipient must set: |
199 | * on answer, the recipient must set: |
181 | * |
200 | * |
182 | * - ARG1 - final destination address space virtual address |
201 | * - ARG1 - final destination address space virtual address |
183 | * - ARG2 - final size of data to be copied |
202 | * - ARG2 - final size of data to be copied |
184 | */ |
203 | */ |
185 | #define IPC_M_DATA_WRITE 6 |
204 | #define IPC_M_DATA_WRITE 8 |
186 | 205 | ||
187 | /** Receive data from another address space over IPC. |
206 | /** Receive data from another address space over IPC. |
188 | * - ARG1 - destination virtual address in the source address space |
207 | * - ARG1 - destination virtual address in the source address space |
189 | * - ARG2 - size of data to be received, may be cropped by the recipient |
208 | * - ARG2 - size of data to be received, may be cropped by the recipient |
190 | * |
209 | * |
191 | * on answer, the recipient must set: |
210 | * on answer, the recipient must set: |
192 | * |
211 | * |
193 | * - ARG1 - source virtual address in the destination address space |
212 | * - ARG1 - source virtual address in the destination address space |
194 | * - ARG2 - final size of data to be copied |
213 | * - ARG2 - final size of data to be copied |
195 | */ |
214 | */ |
196 | #define IPC_M_DATA_READ 7 |
215 | #define IPC_M_DATA_READ 9 |
197 | 216 | ||
198 | /** Debug the recipient. |
217 | /** Debug the recipient. |
199 | * - ARG1 - specifies the debug method (from udebug_method_t) |
218 | * - ARG1 - specifies the debug method (from udebug_method_t) |
200 | * - other arguments are specific to the debug method |
219 | * - other arguments are specific to the debug method |
201 | */ |
220 | */ |
202 | #define IPC_M_DEBUG_ALL 8 |
221 | #define IPC_M_DEBUG_ALL 10 |
203 | 222 | ||
204 | /* Well-known methods */ |
223 | /* Well-known methods */ |
205 | #define IPC_M_LAST_SYSTEM 511 |
224 | #define IPC_M_LAST_SYSTEM 511 |
206 | #define IPC_M_PING 512 |
225 | #define IPC_M_PING 512 |
207 | /* User methods */ |
226 | /* User methods */ |