00001
00007 #include "routix/system.h"
00008 #include "routix/paging.h"
00009 #include "routix/segm.h"
00010 #include "routix/debug.h"
00011 #include "sys/syscalls.h"
00012 #include "routix/syscalls.h"
00013 #include "routix/elf.h"
00014 #include "routix/file.h"
00015 #include "error.h"
00016 #include "routix/timer.h"
00017 #include <routix/kstdio.h>
00018 #ifndef __TASK
00019 #include "routix/task.h"
00020 #endif
00021
00022
00023
00024 extern int sys_process (void);
00025 extern int sys_console (void);
00026 extern int sys_signals (void);
00027 extern int sys_timer (void);
00028 extern int sys_mem (void);
00029 extern int sys_misc (void);
00030
00031 extern task_struct_t *actual;
00032
00033
00035 int (*syscall_group_vector[MAX_SYSCALLS]) (void) = {
00036 (int (*) (void)) sys_process,
00037 (int (*) (void)) sys_console,
00038 (int (*) (void)) sys_signals,
00039 (int (*) (void)) sys_timer,
00040 (int (*) (void)) sys_mem,
00041 (int (*) (void)) sys_misc
00042 };
00043
00047 unsigned int syscall_group_max[MAX_SYSCALLS] = {
00048 SYS_PROCESS_MAX,
00049 SYS_CONSOLE_MAX,
00050 SYS_SIGNALS_MAX,
00051 SYS_TIMER_MAX,
00052 SYS_MEM_MAX,
00053 SYS_MISC_MAX
00054 };
00055
00059 int sys_no_existe (dword numero)
00060 {
00061 kprintf("SysCall Inexistente: Grupo %d\tLlamada %d\n", numero>>16 , (word)numero);
00062 actual->err_no = ENOSYS;
00063 return -1;
00064 }
00065