Changeset d40a8ff in mainline
- Timestamp:
- 2007-11-24T14:19:10Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9201f47
- Parents:
- 0cc4313
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/ipc/ipc.h
r0cc4313 rd40a8ff 98 98 #define PHONE_NS 0 99 99 100 /* Forwarding flags. */ 101 #define IPC_FF_NONE 0 102 100 103 /* System-specific methods - only through special syscalls 101 104 * These methods have special behaviour … … 276 279 extern void ipc_call_static_init(call_t *call); 277 280 extern void task_print_list(void); 278 extern int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox); 281 extern int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox, 282 int mode); 279 283 extern void ipc_cleanup(void); 280 284 extern int ipc_phone_hangup(phone_t *phone); -
kernel/generic/include/ipc/sysipc.h
r0cc4313 rd40a8ff 53 53 int nonblocking); 54 54 unative_t sys_ipc_forward_fast(unative_t callid, unative_t phoneid, 55 unative_t method, unative_t arg1 );55 unative_t method, unative_t arg1, int mode); 56 56 unative_t sys_ipc_hangup(int phoneid); 57 57 unative_t sys_ipc_register_irq(inr_t inr, devno_t devno, unative_t method, -
kernel/generic/src/ipc/ipc.c
r0cc4313 rd40a8ff 330 330 * @param newphone Phone structure to target answerbox. 331 331 * @param oldbox Old answerbox structure. 332 * @param mode Flags that specify mode of the forward operation. 332 333 * 333 334 * @return Return 0 if forwarding succeeded or an error code if … … 337 338 * the original caller is notified automatically with EFORWARD. 338 339 */ 339 int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox )340 int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox, int mode) 340 341 { 341 342 spinlock_lock(&oldbox->lock); -
kernel/generic/src/ipc/sysipc.c
r0cc4313 rd40a8ff 538 538 * @param method New method to use for the forwarded call. 539 539 * @param arg1 New value of the first argument for the forwarded call. 540 * @param mode Flags that specify mode of the forward operation. 540 541 * 541 542 * @return Return 0 on succes, otherwise return an error code. … … 547 548 * new method and argument is not set and these values are ignored. 548 549 * 549 * Warning: If implementing non-fast version, make sure that 550 * ARG3 is not rewritten for certain system IPC 550 * Warning: When implementing support for changing additional payload 551 * arguments, make sure that ARG3 is not rewritten for certain 552 * system IPC 551 553 */ 552 554 unative_t sys_ipc_forward_fast(unative_t callid, unative_t phoneid, 553 unative_t method, unative_t arg1 )555 unative_t method, unative_t arg1, int mode) 554 556 { 555 557 call_t *call; … … 592 594 } 593 595 594 return ipc_forward(call, phone, &TASK->answerbox );596 return ipc_forward(call, phone, &TASK->answerbox, mode); 595 597 } 596 598 -
uspace/lib/libc/generic/ipc.c
r0cc4313 rd40a8ff 647 647 * @param method New method for the forwarded call. 648 648 * @param arg1 New value of the first argument for the forwarded call. 649 * @param mode Flags specifying mode of the forward operation. 649 650 * 650 651 * @return Zero on success or an error code. … … 656 657 */ 657 658 int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method, 658 ipcarg_t arg1) 659 { 660 return __SYSCALL4(SYS_IPC_FORWARD_FAST, callid, phoneid, method, arg1); 659 ipcarg_t arg1, int mode) 660 { 661 return __SYSCALL5(SYS_IPC_FORWARD_FAST, callid, phoneid, method, arg1, 662 mode); 661 663 } 662 664 -
uspace/lib/libc/include/ipc/ipc.h
r0cc4313 rd40a8ff 259 259 extern int ipc_unregister_irq(int inr, int devno); 260 260 extern int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method, 261 ipcarg_t arg1 );261 ipcarg_t arg1, int mode); 262 262 extern int ipc_data_send(int phoneid, void *src, size_t size); 263 263 extern int ipc_data_receive(ipc_callid_t *callid, void **dst, size_t *size); -
uspace/srv/devmap/devmap.c
r0cc4313 rd40a8ff 472 472 /* FIXME: is this correct method how to pass argument on forwarding ?*/ 473 473 ipc_forward_fast(callid, dev->driver->phone, (ipcarg_t)(dev->handle), 474 0 );474 0, IPC_FF_NONE); 475 475 return; 476 476 } -
uspace/srv/ns/ns.c
r0cc4313 rd40a8ff 213 213 } 214 214 hs = hash_table_get_instance(hlp, hashed_service_t, link); 215 return ipc_forward_fast(callid, hs->phone, IPC_GET_ARG2(*call), 0); 215 return ipc_forward_fast(callid, hs->phone, IPC_GET_ARG2(*call), 0, 216 IPC_FF_NONE); 216 217 } 217 218
Note:
See TracChangeset
for help on using the changeset viewer.