Changeset b3f8fb7 in mainline for kernel/generic/include/ipc/ipc.h
- Timestamp:
- 2007-01-28T13:25:49Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8e8c1a5
- Parents:
- 1ba41c5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/ipc/ipc.h
r1ba41c5 rb3f8fb7 159 159 #ifdef KERNEL 160 160 161 #include <synch/waitq.h> 162 #include <adt/list.h> 163 164 #define IPC_MAX_PHONES 16 165 166 typedef struct answerbox_s answerbox_t; 167 typedef struct phone_s phone_t; 161 #include <proc/task.h> 162 168 163 typedef struct { 169 164 unative_t args[IPC_CALL_LEN]; 170 165 phone_t *phone; 171 166 } ipc_data_t; 172 173 struct answerbox_s {174 SPINLOCK_DECLARE(lock);175 176 task_t *task;177 178 waitq_t wq;179 180 link_t connected_phones; /**< Phones connected to this answerbox */181 link_t calls; /**< Received calls */182 link_t dispatched_calls; /* Should be hash table in the future */183 184 link_t answers; /**< Answered calls */185 186 SPINLOCK_DECLARE(irq_lock);187 link_t irq_notifs; /**< Notifications from IRQ handlers */188 link_t irq_head; /**< IRQs with notifications to this answerbox. */189 };190 191 typedef enum {192 IPC_PHONE_FREE = 0, /**< Phone is free and can be allocated */193 IPC_PHONE_CONNECTING, /**< Phone is connecting somewhere */194 IPC_PHONE_CONNECTED, /**< Phone is connected */195 IPC_PHONE_HUNGUP, /**< Phone is hung up, waiting for answers to come */196 IPC_PHONE_SLAMMED /**< Phone was hungup from server */197 } ipc_phone_state_t;198 199 /** Structure identifying phone (in TASK structure) */200 struct phone_s {201 SPINLOCK_DECLARE(lock);202 link_t link;203 answerbox_t *callee;204 ipc_phone_state_t state;205 atomic_t active_calls;206 };207 167 208 168 typedef struct {
Note:
See TracChangeset
for help on using the changeset viewer.