Subversion Repositories HelenOS

Rev

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

Rev 3370 Rev 3395
Line 258... Line 258...
258
} answerbox_t;
258
} answerbox_t;
259
 
259
 
260
typedef struct {
260
typedef struct {
261
    unative_t args[IPC_CALL_LEN];
261
    unative_t args[IPC_CALL_LEN];
262
    phone_t *phone;
262
    phone_t *phone;
263
    /*
-
 
264
     * The forward operation can masquerade the caller phone. For those
-
 
265
     * cases, we must keep it aside so that the answer is processed
-
 
266
     * correctly.
-
 
267
     */
-
 
268
    phone_t *caller_phone;
-
 
269
} ipc_data_t;
263
} ipc_data_t;
270
 
264
 
271
typedef struct {
265
typedef struct {
272
    link_t link;
266
    link_t link;
273
 
267
 
Line 285... Line 279...
285
    /** Data passed from/to userspace. */
279
    /** Data passed from/to userspace. */
286
    ipc_data_t data;
280
    ipc_data_t data;
287
 
281
 
288
    /** Buffer for IPC_M_DATA_WRITE and IPC_M_DATA_READ. */
282
    /** Buffer for IPC_M_DATA_WRITE and IPC_M_DATA_READ. */
289
    uint8_t *buffer;
283
    uint8_t *buffer;
-
 
284
 
-
 
285
    /*
-
 
286
     * The forward operation can masquerade the caller phone. For those
-
 
287
     * cases, we must keep it aside so that the answer is processed
-
 
288
     * correctly.
-
 
289
     */
-
 
290
    phone_t *caller_phone;
290
} call_t;
291
} call_t;
291
 
292
 
292
extern void ipc_init(void);
293
extern void ipc_init(void);
293
extern call_t * ipc_wait_for_call(answerbox_t *, uint32_t, int);
294
extern call_t * ipc_wait_for_call(answerbox_t *, uint32_t, int);
294
extern void ipc_answer(answerbox_t *, call_t *);
295
extern void ipc_answer(answerbox_t *, call_t *);