Rev 3433 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3433 | Rev 4692 | ||
|---|---|---|---|
| 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 */ |