Changeset e686744c in mainline
- Timestamp:
- 2007-11-16T16:15:33Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 296426ad
- Parents:
- 2829b354
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/syscall/syscall.h
r2829b354 re686744c 38 38 typedef enum { 39 39 SYS_IO = 0, 40 SYS_TLS_SET = 1, /* Hardcoded in AMD64, IA32 uspace - psthread.S */40 SYS_TLS_SET = 1, /* Hardcoded in AMD64, IA32 uspace - fibril.S */ 41 41 SYS_THREAD_CREATE, 42 42 SYS_THREAD_EXIT, … … 74 74 #include <arch/types.h> 75 75 76 typedef unative_t (*syshandler_t)(unative_t, unative_t, unative_t, unative_t); 76 typedef unative_t (*syshandler_t)(unative_t, unative_t, unative_t, unative_t, 77 unative_t, unative_t); 77 78 78 79 extern syshandler_t syscall_table[SYSCALL_END]; 79 extern unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3,80 unative_t a4, unative_t id);81 extern unative_t sys_tls_set(unative_t addr);80 extern unative_t syscall_handler(unative_t, unative_t, unative_t, unative_t, 81 unative_t, unative_t, unative_t); 82 extern unative_t sys_tls_set(unative_t); 82 83 83 84 #endif -
kernel/generic/src/syscall/syscall.c
r2829b354 re686744c 93 93 94 94 /** Dispatch system call */ 95 unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3, unative_t a4,96 unative_t id)95 unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3, 96 unative_t a4, unative_t a5, unative_t a6, unative_t id) 97 97 { 98 98 unative_t rc; 99 99 100 100 if (id < SYSCALL_END) 101 rc = syscall_table[id](a1, a2, a3, a4 );101 rc = syscall_table[id](a1, a2, a3, a4, a5, a6); 102 102 else { 103 klog_printf("TASK %llu: Unknown syscall id % d", TASK->taskid,103 klog_printf("TASK %llu: Unknown syscall id %llx", TASK->taskid, 104 104 id); 105 105 task_kill(TASK->taskid); -
uspace/lib/libc/include/libc.h
r2829b354 re686744c 40 40 #include <libarch/syscall.h> 41 41 42 #define __SYSCALL0(id) __syscall(0, 0, 0, 0, id) 43 #define __SYSCALL1(id, p1) __syscall(p1, 0, 0, 0, id) 44 #define __SYSCALL2(id, p1, p2) __syscall(p1, p2, 0, 0, id) 45 #define __SYSCALL3(id, p1, p2, p3) __syscall(p1, p2, p3, 0, id) 46 #define __SYSCALL4(id, p1, p2, p3, p4) __syscall(p1, p2, p3, p4, id) 42 #define __SYSCALL0(id) __syscall(0, 0, 0, 0, 0, 0, id) 43 #define __SYSCALL1(id, p1) __syscall(p1, 0, 0, 0, 0, 0, id) 44 #define __SYSCALL2(id, p1, p2) __syscall(p1, p2, 0, 0, 0, 0, id) 45 #define __SYSCALL3(id, p1, p2, p3) __syscall(p1, p2, p3, 0, 0, 0, id) 46 #define __SYSCALL4(id, p1, p2, p3, p4) __syscall(p1, p2, p3, p4, 0, 0, id) 47 #define __SYSCALL5(id, p1, p2, p3, p4, p5) __syscall(p1, p2, p3, p4, p5, 0, id) 48 #define __SYSCALL6(id, p1, p2, p3, p4, p5, p6) \ 49 __syscall(p1, p2, p3, p4, p5, p6,id) 47 50 48 51 extern void __main(void); -
uspace/lib/libc/include/syscall.h
r2829b354 re686744c 32 32 /** 33 33 * @file 34 * @brief Syscall function declaration for architectures that don't inline syscalls. 34 * @brief Syscall function declaration for architectures that don't 35 * inline syscalls. 35 36 */ 36 37 … … 41 42 #include <kernel/syscall/syscall.h> 42 43 43 extern sysarg_t __syscall(const sysarg_t p1, const sysarg_t p2, const sysarg_t p3, const sysarg_t p4, const syscall_t id); 44 extern sysarg_t __syscall(const sysarg_t p1, const sysarg_t p2, 45 const sysarg_t p3, const sysarg_t p4, const sysarg_t p5, const sysarg_t p6, 46 const syscall_t id); 44 47 45 48 #endif
Note:
See TracChangeset
for help on using the changeset viewer.