Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2604 → Rev 2605

/trunk/kernel/generic/include/syscall/syscall.h
37,7 → 37,7
 
typedef enum {
SYS_IO = 0,
SYS_TLS_SET = 1, /* Hardcoded in AMD64, IA32 uspace - psthread.S */
SYS_TLS_SET = 1, /* Hardcoded in AMD64, IA32 uspace - fibril.S */
SYS_THREAD_CREATE,
SYS_THREAD_EXIT,
SYS_THREAD_GET_ID,
73,12 → 73,13
 
#include <arch/types.h>
 
typedef unative_t (*syshandler_t)(unative_t, unative_t, unative_t, unative_t);
typedef unative_t (*syshandler_t)(unative_t, unative_t, unative_t, unative_t,
unative_t, unative_t);
 
extern syshandler_t syscall_table[SYSCALL_END];
extern unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3,
unative_t a4, unative_t id);
extern unative_t sys_tls_set(unative_t addr);
extern unative_t syscall_handler(unative_t, unative_t, unative_t, unative_t,
unative_t, unative_t, unative_t);
extern unative_t sys_tls_set(unative_t);
 
#endif
 
/trunk/kernel/generic/src/syscall/syscall.c
92,15 → 92,15
}
 
/** Dispatch system call */
unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3, unative_t a4,
unative_t id)
unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3,
unative_t a4, unative_t a5, unative_t a6, unative_t id)
{
unative_t rc;
 
if (id < SYSCALL_END)
rc = syscall_table[id](a1, a2, a3, a4);
rc = syscall_table[id](a1, a2, a3, a4, a5, a6);
else {
klog_printf("TASK %llu: Unknown syscall id %d", TASK->taskid,
klog_printf("TASK %llu: Unknown syscall id %llx", TASK->taskid,
id);
task_kill(TASK->taskid);
thread_exit();