Changeset 00aece0 in mainline for kernel/generic/src/ipc/sysipc.c
- Timestamp:
- 2012-02-18T16:47:38Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4449c6c
- Parents:
- bd5f3b7 (diff), f943dd3 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/sysipc.c
rbd5f3b7 r00aece0 271 271 irq_spinlock_unlock(&answer->sender->lock, true); 272 272 273 uintptr_t dst_base = (uintptr_t) -1; 273 274 int rc = as_area_share(as, IPC_GET_ARG1(*olddata), 274 IPC_GET_ARG2(*olddata), AS, 275 IPC_GET_ARG1(answer->data), IPC_GET_ARG3(*olddata)); 275 IPC_GET_ARG2(*olddata), AS, IPC_GET_ARG3(*olddata), 276 &dst_base, IPC_GET_ARG1(answer->data)); 277 278 if (rc == EOK) 279 rc = copy_to_uspace((void *) IPC_GET_ARG2(answer->data), 280 &dst_base, sizeof(dst_base)); 281 276 282 IPC_SET_RETVAL(answer->data, rc); 277 283 return rc; 278 284 } 279 285 } else if (IPC_GET_IMETHOD(*olddata) == IPC_M_SHARE_IN) { 280 if (!IPC_GET_RETVAL(answer->data)) { 286 if (!IPC_GET_RETVAL(answer->data)) { 281 287 irq_spinlock_lock(&answer->sender->lock, true); 282 288 as_t *as = answer->sender->as; 283 289 irq_spinlock_unlock(&answer->sender->lock, true); 284 290 291 uintptr_t dst_base = (uintptr_t) -1; 285 292 int rc = as_area_share(AS, IPC_GET_ARG1(answer->data), 286 IPC_GET_ARG2(*olddata), as, IPC_GET_ARG1(*olddata), 287 IPC_GET_ARG2(answer->data)); 293 IPC_GET_ARG1(*olddata), as, IPC_GET_ARG2(answer->data), 294 &dst_base, IPC_GET_ARG3(answer->data)); 295 IPC_SET_ARG4(answer->data, dst_base); 288 296 IPC_SET_RETVAL(answer->data, rc); 289 297 } … … 1185 1193 * 1186 1194 */ 1187 sysarg_t sys_ register_irq(inr_t inr, devno_t devno, sysarg_t imethod,1195 sysarg_t sys_irq_register(inr_t inr, devno_t devno, sysarg_t imethod, 1188 1196 irq_code_t *ucode) 1189 1197 { … … 1202 1210 * 1203 1211 */ 1204 sysarg_t sys_ unregister_irq(inr_t inr, devno_t devno)1212 sysarg_t sys_irq_unregister(inr_t inr, devno_t devno) 1205 1213 { 1206 1214 if (!(cap_get(TASK) & CAP_IRQ_REG))
Note:
See TracChangeset
for help on using the changeset viewer.