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 |