Subversion Repositories HelenOS

Rev

Rev 4155 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4155 Rev 4581
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 */