1 /*! \brief Aquí se define la ubicación de las llamadas dentro de los vectores
2 *! \note este header DEBE ser utilizado por el kernel y por la librería estandar de Routix
9 #define _syscall0(numero,retorno) __asm__ __volatile__ ("int $0x50" : "=a" (retorno) : "a" (numero))
10 #define _syscall1(numero,retorno,param1) __asm__ __volatile__ ("int $0x50" : "=a" (retorno) : "a" (numero), "b" (param1))
11 #define _syscall2(numero,retorno,param1,param2) __asm__ __volatile__ ("int $0x50" : "=a" (retorno) : "a" (numero), \
12 "b" (param1), "c" (param2))
13 #define _syscall3(numero,retorno,param1,param2,param3) __asm__ __volatile__ ("int $0x50" : "=a" (retorno) : "a" (numero), \
14 "b" (param1), "c" (param2), "d" (param3))
17 #define MAX_SYSCALLS 15
19 // Definiciones de grupos
21 #define SYS_CONSOLE (1 << 16)
22 #define SYS_SIGNALS (2 << 16)
23 #define SYS_TIMER (3 << 16)
24 #define SYS_MEM (4 << 16)
25 #define SYS_MISC (5 << 16)
27 //El valor SYS_%_MAX determina cual es el número de llamadas al sistema para ese grupo, evitando problemas
28 // % equivale al nombre del grupo
30 // Funciones de grupo PROCESS
43 #define SYS_PROCESS_MAX 12 // Cantidad de llamadas en el grupo PROCESS. Debe ser siempre el ultimo valor
45 // Funciones de grupo CONSOLE
49 #define SYS_CONSOLE_MAX 3 // Cantidad de llamadas en el grupo CONSOLE. Debe ser siempre el ultimo valor
51 // Funciones del grupo SIGNALS
54 #define SYS_SIGACTION 2
55 #define SYS_SIGNAL_CHECK 3
56 #define SYS_SIGPROCMASK 4
57 #define SYS_SIGNALS_MAX 5 // Cantidad de llamadas en el grupo SIGNALS. Debe ser siempre el ultimo valor
60 // Funciones de grupo TIMER
62 #define SYS_PROC_DUMP 1
63 #define SYS_KILLL 2 //KILL no va aquí (debo crear un grupo SYS_SIGNAL o lo ubico en SYS_MEM ?)
65 #define SYS_PROC_DUMP_V 4
66 #define SYS_TIMER_DUMP 5
67 #define SYS_TIMER_MAX 6 // Cantidad de llamadas en el grupo TIMER. Debe ser siempre el ultimo valor
69 // Funciones de grupo MEM
70 #define SYS_MALLOC_PAGE 0
71 #define SYS_FREE_PAGE 1
72 #define SYS_FREE_MEM 2
73 #define SYS_MEM_MAX 3 // Cantidad de llamadas en el grupo MEM. Debe ser siempre el ultimo valor
75 // Funciones de grupo MISC
78 #define SYS_READ_DEBUG 2
79 #define SYS_MISC_MAX 3 // Cantidad de llamadas en el grupo MEM.
82 int sys_no_existe (dword numero
);