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
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
00028
00029
00030
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
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
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
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
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
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