Rev 2676 | Rev 2934 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2676 | Rev 2677 | ||
---|---|---|---|
Line 110... | Line 110... | ||
110 | * Otherwise return 0. |
110 | * Otherwise return 0. |
111 | */ |
111 | */ |
112 | static inline int method_is_immutable(unative_t method) |
112 | static inline int method_is_immutable(unative_t method) |
113 | { |
113 | { |
114 | switch (method) { |
114 | switch (method) { |
115 | case IPC_M_AS_AREA_SEND: |
115 | case IPC_M_SHARE_OUT: |
116 | case IPC_M_AS_AREA_RECV: |
116 | case IPC_M_SHARE_IN: |
117 | case IPC_M_DATA_WRITE: |
117 | case IPC_M_DATA_WRITE: |
118 | case IPC_M_DATA_READ: |
118 | case IPC_M_DATA_READ: |
119 | return 1; |
119 | return 1; |
120 | break; |
120 | break; |
121 | default: |
121 | default: |
Line 139... | Line 139... | ||
139 | static inline int answer_need_old(call_t *call) |
139 | static inline int answer_need_old(call_t *call) |
140 | { |
140 | { |
141 | switch (IPC_GET_METHOD(call->data)) { |
141 | switch (IPC_GET_METHOD(call->data)) { |
142 | case IPC_M_CONNECT_TO_ME: |
142 | case IPC_M_CONNECT_TO_ME: |
143 | case IPC_M_CONNECT_ME_TO: |
143 | case IPC_M_CONNECT_ME_TO: |
144 | case IPC_M_AS_AREA_SEND: |
144 | case IPC_M_SHARE_OUT: |
145 | case IPC_M_AS_AREA_RECV: |
145 | case IPC_M_SHARE_IN: |
146 | case IPC_M_DATA_WRITE: |
146 | case IPC_M_DATA_WRITE: |
147 | case IPC_M_DATA_READ: |
147 | case IPC_M_DATA_READ: |
148 | return 1; |
148 | return 1; |
149 | default: |
149 | default: |
150 | return 0; |
150 | return 0; |
Line 197... | Line 197... | ||
197 | /* If the users accepted call, connect */ |
197 | /* If the users accepted call, connect */ |
198 | if (!IPC_GET_RETVAL(answer->data)) { |
198 | if (!IPC_GET_RETVAL(answer->data)) { |
199 | ipc_phone_connect((phone_t *) IPC_GET_ARG5(*olddata), |
199 | ipc_phone_connect((phone_t *) IPC_GET_ARG5(*olddata), |
200 | &TASK->answerbox); |
200 | &TASK->answerbox); |
201 | } |
201 | } |
202 | } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_SEND) { |
202 | } else if (IPC_GET_METHOD(*olddata) == IPC_M_SHARE_OUT) { |
203 | if (!IPC_GET_RETVAL(answer->data)) { |
203 | if (!IPC_GET_RETVAL(answer->data)) { |
204 | /* Accepted, handle as_area receipt */ |
204 | /* Accepted, handle as_area receipt */ |
205 | ipl_t ipl; |
205 | ipl_t ipl; |
206 | int rc; |
206 | int rc; |
207 | as_t *as; |
207 | as_t *as; |
Line 216... | Line 216... | ||
216 | IPC_GET_ARG2(*olddata), AS, |
216 | IPC_GET_ARG2(*olddata), AS, |
217 | IPC_GET_ARG1(answer->data), IPC_GET_ARG3(*olddata)); |
217 | IPC_GET_ARG1(answer->data), IPC_GET_ARG3(*olddata)); |
218 | IPC_SET_RETVAL(answer->data, rc); |
218 | IPC_SET_RETVAL(answer->data, rc); |
219 | return rc; |
219 | return rc; |
220 | } |
220 | } |
221 | } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_RECV) { |
221 | } else if (IPC_GET_METHOD(*olddata) == IPC_M_SHARE_IN) { |
222 | if (!IPC_GET_RETVAL(answer->data)) { |
222 | if (!IPC_GET_RETVAL(answer->data)) { |
223 | ipl_t ipl; |
223 | ipl_t ipl; |
224 | as_t *as; |
224 | as_t *as; |
225 | int rc; |
225 | int rc; |
226 | 226 | ||
Line 311... | Line 311... | ||
311 | /* Set arg5 for server */ |
311 | /* Set arg5 for server */ |
312 | IPC_SET_ARG5(call->data, (unative_t) &TASK->phones[newphid]); |
312 | IPC_SET_ARG5(call->data, (unative_t) &TASK->phones[newphid]); |
313 | call->flags |= IPC_CALL_CONN_ME_TO; |
313 | call->flags |= IPC_CALL_CONN_ME_TO; |
314 | call->priv = newphid; |
314 | call->priv = newphid; |
315 | break; |
315 | break; |
316 | case IPC_M_AS_AREA_SEND: |
316 | case IPC_M_SHARE_OUT: |
317 | size = as_area_get_size(IPC_GET_ARG1(call->data)); |
317 | size = as_area_get_size(IPC_GET_ARG1(call->data)); |
318 | if (!size) |
318 | if (!size) |
319 | return EPERM; |
319 | return EPERM; |
320 | IPC_SET_ARG2(call->data, size); |
320 | IPC_SET_ARG2(call->data, size); |
321 | break; |
321 | break; |