Changeset b5e68c8 in mainline for kernel/generic/include/ipc/ipc.h
- Timestamp:
- 2011-05-12T16:49:44Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f36787d7
- Parents:
- e80329d6 (diff), 750636a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/ipc/ipc.h
re80329d6 rb5e68c8 43 43 #define IPC_CALL_LEN 6 44 44 45 /** Maximum active async calls per thread */ 46 #ifdef CONFIG_DEBUG 47 #define IPC_MAX_ASYNC_CALLS 4 48 #else 49 #define IPC_MAX_ASYNC_CALLS 4000 50 #endif 45 /** Maximum active async calls per phone */ 46 #define IPC_MAX_ASYNC_CALLS 4 51 47 52 48 /* Flags for calls */ … … 88 84 /* Macros for manipulating calling data */ 89 85 #define IPC_SET_RETVAL(data, retval) ((data).args[0] = (retval)) 90 #define IPC_SET_ METHOD(data, val)((data).args[0] = (val))86 #define IPC_SET_IMETHOD(data, val) ((data).args[0] = (val)) 91 87 #define IPC_SET_ARG1(data, val) ((data).args[1] = (val)) 92 88 #define IPC_SET_ARG2(data, val) ((data).args[2] = (val)) … … 95 91 #define IPC_SET_ARG5(data, val) ((data).args[5] = (val)) 96 92 97 #define IPC_GET_ METHOD(data) ((data).args[0])98 #define IPC_GET_RETVAL(data) ((data).args[0])93 #define IPC_GET_IMETHOD(data) ((data).args[0]) 94 #define IPC_GET_RETVAL(data) ((data).args[0]) 99 95 100 96 #define IPC_GET_ARG1(data) ((data).args[1]) … … 120 116 #define IPC_FF_ROUTE_FROM_ME (1 << 0) 121 117 118 /* Data transfer flags. */ 119 #define IPC_XF_NONE 0 120 121 /** Restrict the transfer size if necessary. */ 122 #define IPC_XF_RESTRICT (1 << 0) 123 124 /** Kernel IPC interfaces 125 * 126 */ 127 #define IPC_IF_KERNEL 0 128 122 129 /** System-specific methods - only through special syscalls 123 * These methods have special behaviour 130 * 131 * These methods have special behaviour. These methods also 132 * have the implicit kernel interface 0. 124 133 * 125 134 */ … … 162 171 * error is sent back to caller. Otherwise 163 172 * the call is accepted and the response is sent back. 164 * - the allocated phoneid is passed to userspace 173 * - the hash of the client task is passed to userspace 174 * (on the receiving side) as ARG4 of the call. 175 * - the hash of the allocated phone is passed to userspace 165 176 * (on the receiving side) as ARG5 of the call. 166 177 * … … 315 326 316 327 typedef struct { 317 unative_t args[IPC_CALL_LEN]; 328 sysarg_t args[IPC_CALL_LEN]; 329 /** Task which made or forwarded the call with IPC_FF_ROUTE_FROM_ME. */ 330 struct task *task; 331 /** Phone which made or last masqueraded this call. */ 318 332 phone_t *phone; 319 333 } ipc_data_t; … … 330 344 * The caller box is different from sender->answerbox 331 345 * for synchronous calls. 332 *333 346 */ 334 347 answerbox_t *callerbox; 335 348 336 349 /** Private data to internal IPC. */ 337 unative_t priv;350 sysarg_t priv; 338 351 339 352 /** Data passed from/to userspace. */ … … 347 360 * cases, we must keep it aside so that the answer is processed 348 361 * correctly. 349 *350 362 */ 351 363 phone_t *caller_phone; … … 372 384 373 385 extern void ipc_cleanup(void); 374 extern void ipc_backsend_err(phone_t *, call_t *, unative_t);386 extern void ipc_backsend_err(phone_t *, call_t *, sysarg_t); 375 387 extern void ipc_answerbox_slam_phones(answerbox_t *, bool); 376 388 extern void ipc_cleanup_call_list(link_t *);
Note:
See TracChangeset
for help on using the changeset viewer.