Rev 1396 | Rev 1417 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1396 | Rev 1413 | ||
|---|---|---|---|
| Line 127... | Line 127... | ||
| 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_AREA_SEND) { |
130 | } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_SEND) { |
| 131 | if (!IPC_GET_RETVAL(answer->data)) { /* Accepted, handle as_area receipt */ |
131 | if (!IPC_GET_RETVAL(answer->data)) { /* Accepted, handle as_area receipt */ |
| - | 132 | ipl_t ipl; |
|
| - | 133 | as_t *as; |
|
| - | 134 | ||
| - | 135 | ipl = interrupts_disable(); |
|
| 132 | return as_area_steal(answer->sender, |
136 | spinlock_lock(&answer->sender->lock); |
| - | 137 | as = answer->sender->as; |
|
| - | 138 | spinlock_unlock(&answer->sender->lock); |
|
| - | 139 | interrupts_restore(ipl); |
|
| - | 140 | ||
| 133 | IPC_GET_ARG2(*olddata),IPC_GET_ARG3(*olddata), |
141 | return as_area_share(as, IPC_GET_ARG2(*olddata),IPC_GET_ARG3(*olddata), |
| 134 | IPC_GET_ARG1(answer->data)); |
142 | IPC_GET_ARG1(answer->data)); |
| 135 | } |
143 | } |
| 136 | } |
144 | } |
| 137 | return 0; |
145 | return 0; |
| 138 | } |
146 | } |
| 139 | 147 | ||