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 *); |