Rev 1346 | Rev 1364 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1346 | Rev 1359 | ||
---|---|---|---|
Line 62... | Line 62... | ||
62 | * - some system messages may be forwarded, for some of them |
62 | * - some system messages may be forwarded, for some of them |
63 | * it is useless |
63 | * it is useless |
64 | */ |
64 | */ |
65 | static inline int is_forwardable(__native method) |
65 | static inline int is_forwardable(__native method) |
66 | { |
66 | { |
67 | if (method == IPC_M_PHONE_HUNGUP || method == IPC_M_AS_SEND) |
67 | if (method == IPC_M_PHONE_HUNGUP || method == IPC_M_AS_AREA_SEND) |
68 | return 0; /* This message is meant only for the receiver */ |
68 | return 0; /* This message is meant only for the receiver */ |
69 | return 1; |
69 | return 1; |
70 | } |
70 | } |
71 | 71 | ||
72 | /****************************************************/ |
72 | /****************************************************/ |
Line 81... | Line 81... | ||
81 | { |
81 | { |
82 | if (IPC_GET_METHOD(call->data) == IPC_M_CONNECT_TO_ME) |
82 | if (IPC_GET_METHOD(call->data) == IPC_M_CONNECT_TO_ME) |
83 | return 1; |
83 | return 1; |
84 | if (IPC_GET_METHOD(call->data) == IPC_M_CONNECT_ME_TO) |
84 | if (IPC_GET_METHOD(call->data) == IPC_M_CONNECT_ME_TO) |
85 | return 1; |
85 | return 1; |
86 | if (IPC_GET_METHOD(call->data) == IPC_M_AS_SEND) |
86 | if (IPC_GET_METHOD(call->data) == IPC_M_AS_AREA_SEND) |
87 | return 1; |
87 | return 1; |
88 | return 0; |
88 | return 0; |
89 | } |
89 | } |
90 | 90 | ||
91 | /** Interpret process answer as control information */ |
91 | /** Interpret process answer as control information */ |
Line 125... | Line 125... | ||
125 | /* If the users accepted call, connect */ |
125 | /* If the users accepted call, connect */ |
126 | if (!IPC_GET_RETVAL(answer->data)) { |
126 | if (!IPC_GET_RETVAL(answer->data)) { |
127 | ipc_phone_connect((phone_t *)IPC_GET_ARG3(*olddata), |
127 | ipc_phone_connect((phone_t *)IPC_GET_ARG3(*olddata), |
128 | &TASK->answerbox); |
128 | &TASK->answerbox); |
129 | } |
129 | } |
130 | } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_SEND) { |
130 | } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_SEND) { |
131 | if (!IPC_GET_RETVAL(answer->data)) { /* Accepted, handle As_area receival */ |
131 | if (!IPC_GET_RETVAL(answer->data)) { /* Accepted, handle as_area receipt */ |
132 | return as_area_steal(answer->sender, |
132 | return as_area_steal(answer->sender, |
133 | IPC_GET_ARG2(*olddata),IPC_GET_ARG3(*olddata), |
133 | IPC_GET_ARG2(*olddata),IPC_GET_ARG3(*olddata), |
134 | IPC_GET_ARG1(answer->data)); |
134 | IPC_GET_ARG1(answer->data)); |
135 | } |
135 | } |
136 | } |
136 | } |
Line 154... | Line 154... | ||
154 | /* Set arg3 for server */ |
154 | /* Set arg3 for server */ |
155 | IPC_SET_ARG3(call->data, (__native)&TASK->phones[newphid]); |
155 | IPC_SET_ARG3(call->data, (__native)&TASK->phones[newphid]); |
156 | call->flags |= IPC_CALL_CONN_ME_TO; |
156 | call->flags |= IPC_CALL_CONN_ME_TO; |
157 | call->private = newphid; |
157 | call->private = newphid; |
158 | break; |
158 | break; |
159 | case IPC_M_AS_SEND: |
159 | case IPC_M_AS_AREA_SEND: |
160 | size = as_get_size(IPC_GET_ARG2(call->data)); |
160 | size = as_get_size(IPC_GET_ARG2(call->data)); |
161 | if (!size) { |
161 | if (!size) { |
162 | return EPERM; |
162 | return EPERM; |
163 | } |
163 | } |
164 | IPC_SET_ARG3(call->data, size); |
164 | IPC_SET_ARG3(call->data, size); |