Changeset 46fc2f9 in mainline for generic/src/ipc/sysipc.c
- Timestamp:
- 2006-05-27T22:57:21Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6212095
- Parents:
- 00b595b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
generic/src/ipc/sysipc.c
r00b595b r46fc2f9 65 65 static inline int is_forwardable(__native method) 66 66 { 67 if (method == IPC_M_PHONE_HUNGUP || method == IPC_M_AS_AREA_SEND) 67 if (method == IPC_M_PHONE_HUNGUP || method == IPC_M_AS_AREA_SEND \ 68 || method == IPC_M_AS_AREA_RECV) 68 69 return 0; /* This message is meant only for the receiver */ 69 70 return 1; … … 86 87 if (IPC_GET_METHOD(call->data) == IPC_M_AS_AREA_SEND) 87 88 return 1; 88 return 0; 89 } 90 91 /** Interpret process answer as control information */ 89 if (IPC_GET_METHOD(call->data) == IPC_M_AS_AREA_RECV) 90 return 1; 91 return 0; 92 } 93 94 /** Interpret process answer as control information 95 * 96 * This function is called directly after sys_ipc_answer 97 */ 92 98 static inline int answer_preprocess(call_t *answer, ipc_data_t *olddata) 93 99 { … … 140 146 141 147 return as_area_share(as, IPC_GET_ARG1(*olddata), IPC_GET_ARG2(*olddata), 142 IPC_GET_ARG1(answer->data), IPC_GET_ARG3(*olddata)); 148 AS, IPC_GET_ARG1(answer->data), IPC_GET_ARG3(*olddata)); 149 } 150 } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_RECV) { 151 if (!IPC_GET_RETVAL(answer->data)) { 152 ipl_t ipl; 153 as_t *as; 154 155 ipl = interrupts_disable(); 156 spinlock_lock(&answer->sender->lock); 157 as = answer->sender->as; 158 spinlock_unlock(&answer->sender->lock); 159 interrupts_restore(ipl); 160 161 return as_area_share(AS, IPC_GET_ARG1(answer->data), IPC_GET_ARG2(*olddata), 162 as, IPC_GET_ARG1(*olddata), IPC_GET_ARG3(*olddata)); 143 163 } 144 164 }
Note:
See TracChangeset
for help on using the changeset viewer.