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