syscalls.h

Go to the documentation of this file.
00001 
00005 #ifndef _SYSCALLS_H
00006 #define _SYSCALLS_H
00007 
00008 
00009 #define _syscall0(numero,retorno) __asm__ __volatile__ ("int $0x50" : "=a" (retorno) : "a" (numero))
00010 #define _syscall1(numero,retorno,param1) __asm__ __volatile__ ("int $0x50" : "=a" (retorno) : "a" (numero), "b" (param1))
00011 #define _syscall2(numero,retorno,param1,param2) __asm__ __volatile__ ("int $0x50" : "=a" (retorno) : "a" (numero), \
00012         "b" (param1), "c" (param2))
00013 #define _syscall3(numero,retorno,param1,param2,param3) __asm__ __volatile__ ("int $0x50" : "=a" (retorno) : "a" (numero), \
00014         "b" (param1), "c" (param2), "d" (param3))
00015 
00016 
00017 #define MAX_SYSCALLS    15      
00018 
00019 // Definiciones de grupos
00020 #define SYS_PROCESS     0
00021 #define SYS_CONSOLE     (1 << 16)
00022 #define SYS_SIGNALS     (2 << 16)
00023 #define SYS_TIMER       (3 << 16)
00024 #define SYS_MEM         (4 << 16)
00025 #define SYS_MISC        (5 << 16)
00026 
00027 //El valor SYS_%_MAX determina cual es el número de llamadas al sistema para ese grupo, evitando problemas
00028 // % equivale al nombre del grupo
00029 
00030 // Funciones de grupo PROCESS
00031 #define SYS_EXEC                0
00032 #define SYS_VOID                1
00033 #define SYS_FORK                2
00034 #define SYS_PERROR              3
00035 #define SYS_RENICE              4
00036 #define SYS_GETPID              5
00037 #define SYS_GETPPID             6
00038 #define SYS_EXIT                7
00039 #define SYS_SHOW                8
00040 #define SYS_WAIT                9
00041 #define SYS_EXECVE              10
00042 #define SYS_PROCESS_MAX 11              // Cantidad de llamadas en el grupo PROCESS. Debe ser siempre el ultimo valor
00043 
00044 // Funciones de grupo CONSOLE
00045 #define SYS_PRINT               0
00046 #define SYS_GETS                1
00047 #define SYS_CLRSCR              2
00048 #define SYS_CONSOLE_MAX 3               // Cantidad de llamadas en el grupo CONSOLE. Debe ser siempre el ultimo valor
00049 
00050 // Funciones del grupo SIGNALS
00051 #define SYS_KILL                        0               //
00052 #define SYS_SIGNAL                      1
00053 #define SYS_SIGACTION           2
00054 #define SYS_SIGNAL_CHECK        3
00055 #define SYS_SIGPROCMASK         4
00056 #define SYS_SIGNALS_MAX         5               // Cantidad de llamadas en el grupo SIGNALS. Debe ser siempre el ultimo valor
00057 
00058 
00059 // Funciones de grupo TIMER
00060 #define SYS_SLEEP               0
00061 #define SYS_PROC_DUMP   1
00062 #define SYS_KILLL               2               //KILL no va aquí (debo crear un grupo SYS_SIGNAL o lo ubico en SYS_MEM ?)
00063 #define SYS_USLEEP              3
00064 #define SYS_PROC_DUMP_V 4
00065 #define SYS_TIMER_DUMP  5
00066 #define SYS_TIMER_MAX   6       // Cantidad de llamadas en el grupo TIMER. Debe ser siempre el ultimo valor
00067 
00068 // Funciones de grupo MEM
00069 #define SYS_MALLOC_PAGE 0
00070 #define SYS_FREE_PAGE   1
00071 #define SYS_FREE_MEM    2
00072 #define SYS_MEM_MAX             3               // Cantidad de llamadas en el grupo MEM. Debe ser siempre el ultimo valor
00073 
00074 // Funciones de grupo MISC
00075 #define SYS_SETVAR              0
00076 #define SYS_GETVAR              1
00077 #define SYS_READ_DEBUG  2       
00078 #define SYS_MISC_MAX    3               // Cantidad de llamadas en el grupo MEM. 
00079 
00080 void syscall (void);
00081 int sys_no_existe (dword numero);
00082 
00083 #endif

Generated on Sun May 30 18:38:35 2004 for Routix OS by doxygen 1.3.6