61,15 → 61,17 |
/** Interrupt notification */ |
#define IPC_CALL_NOTIF (1 << 5) |
|
/* Flags of callid (the addresses are aligned at least to 4, |
* that is why we can use bottom 2 bits of the call address |
/* |
* Bits used in call hashes. |
* The addresses are aligned at least to 4 that is why we can use the 2 least |
* significant bits of the call address. |
*/ |
/** Type of this msg is 'answer' */ |
/** Type of this call is 'answer' */ |
#define IPC_CALLID_ANSWERED 1 |
/** Type of this msg is 'notification' */ |
/** Type of this call is 'notification' */ |
#define IPC_CALLID_NOTIFICATION 2 |
|
/* Return values from IPC_ASYNC */ |
/* Return values from sys_ipc_call_async(). */ |
#define IPC_CALLRET_FATAL -1 |
#define IPC_CALLRET_TEMPORARY -2 |
|
203,17 → 205,17 |
|
waitq_t wq; |
|
/** Phones connected to this answerbox */ |
/** Phones connected to this answerbox. */ |
link_t connected_phones; |
/** Received calls */ |
/** Received calls. */ |
link_t calls; |
link_t dispatched_calls; /* Should be hash table in the future */ |
|
/** Answered calls */ |
/** Answered calls. */ |
link_t answers; |
|
SPINLOCK_DECLARE(irq_lock); |
/** Notifications from IRQ handlers */ |
/** Notifications from IRQ handlers. */ |
link_t irq_notifs; |
/** IRQs with notifications to this answerbox. */ |
link_t irq_head; |
229,17 → 231,16 |
|
int flags; |
|
/* Identification of the caller */ |
/** Identification of the caller. */ |
struct task *sender; |
/* The caller box is different from sender->answerbox |
* for synchronous calls |
*/ |
/** The caller box is different from sender->answerbox for synchronous |
* calls. */ |
answerbox_t *callerbox; |
|
/** Private data to internal IPC */ |
/** Private data to internal IPC. */ |
unative_t priv; |
|
/** Data passed from/to userspace */ |
/** Data passed from/to userspace. */ |
ipc_data_t data; |
} call_t; |
|