Subversion Repositories HelenOS

Rev

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

Rev 2493 Rev 2494
Line 136... Line 136...
136
/** This message is sent to answerbox when the phone
136
/** This message is sent to answerbox when the phone
137
 * is hung up
137
 * is hung up
138
 */
138
 */
139
#define IPC_M_PHONE_HUNGUP  3
139
#define IPC_M_PHONE_HUNGUP  3
140
 
140
 
141
/** Send as_area over IPC
141
/** Send as_area over IPC.
142
 * - ARG1 - src as_area base address
142
 * - ARG1 - source as_area base address
143
 * - ARG2 - size of src as_area (filled automatically by kernel)
143
 * - ARG2 - size of source as_area (filled automatically by kernel)
144
 * - ARG3 - flags of the as_area being sent
144
 * - ARG3 - flags of the as_area being sent
145
 *
145
 *
146
 * on answer:
146
 * on answer, the recipient must set:
147
 * - ARG1 - dst as_area base adress
147
 * - ARG1 - dst as_area base adress
148
 */
148
 */
149
#define IPC_M_AS_AREA_SEND  4   
149
#define IPC_M_AS_AREA_SEND  4   
150
 
150
 
151
/** Get as_area over IPC
151
/** Receive as_area over IPC.
152
 * - ARG1 - dst as_area base address
152
 * - ARG1 - destination as_area base address
153
 * - ARG2 - dst as_area size
153
 * - ARG2 - destination as_area size
154
 * - ARG3 - user defined argument
154
 * - ARG3 - user defined argument
155
 *
155
 *
156
 * on answer, the server must set:
156
 * on answer, the recipient must set:
157
 *
157
 *
158
 * - ARG1 - src as_area base address
158
 * - ARG1 - source as_area base address
159
 * - ARG2 - flags that will be used for sharing
159
 * - ARG2 - flags that will be used for sharing
160
 */
160
 */
161
#define IPC_M_AS_AREA_RECV  5   
161
#define IPC_M_AS_AREA_RECV  5   
162
 
162
 
-
 
163
/** Send data to another address space over IPC.
-
 
164
 * - ARG1 - destination address space virtual address, may be overriden by the
-
 
165
 *      recipient
-
 
166
 * - ARG2 - source address space virtual address
-
 
167
 * - ARG3 - size of data to be copied, may be overriden by the recipient
-
 
168
 *
-
 
169
 * on answer, the recipient must set:
-
 
170
 *
-
 
171
 * - ARG1 - final destination address space virtual address
-
 
172
 * - ARG3 - final size of data to be copied
-
 
173
 */
-
 
174
#define IPC_M_DATA_SEND     6
163
 
175
 
164
/* Well-known methods */
176
/* Well-known methods */
165
#define IPC_M_LAST_SYSTEM   511
177
#define IPC_M_LAST_SYSTEM   511
166
#define IPC_M_PING      512
178
#define IPC_M_PING      512
167
/* User methods */
179
/* User methods */
Line 240... Line 252...
240
    /** Private data to internal IPC. */
252
    /** Private data to internal IPC. */
241
    unative_t priv;
253
    unative_t priv;
242
 
254
 
243
    /** Data passed from/to userspace. */
255
    /** Data passed from/to userspace. */
244
    ipc_data_t data;
256
    ipc_data_t data;
-
 
257
 
-
 
258
    /** Buffer for IPC_M_DATA_SEND. */
-
 
259
    uint8_t *buffer;
245
} call_t;
260
} call_t;
246
 
261
 
247
extern void ipc_init(void);
262
extern void ipc_init(void);
248
extern call_t * ipc_wait_for_call(answerbox_t *box, uint32_t usec, int flags);
263
extern call_t * ipc_wait_for_call(answerbox_t *box, uint32_t usec, int flags);
249
extern void ipc_answer(answerbox_t *box, call_t *request);
264
extern void ipc_answer(answerbox_t *box, call_t *request);