1 /*! \addtogroup Syscalls
3 Syscalls relacionadas con la consola y las terminales
7 #include "routix/system.h"
8 #include "routix/paging.h"
9 #include "routix/segm.h"
10 #include "routix/debug.h"
11 #include "sys/syscalls.h"
12 #include "routix/syscalls.h"
14 #include <routix/kstdio.h>
16 #include "routix/atomic.h"
18 #include "routix/task.h"
23 extern int sys_process (void);
24 extern int sys_console (void);
25 extern int sys_timer (void);
26 extern int sys_mem (void);
28 extern task_struct_t
*actual
;
33 // Vector de funciones de llamadas al sistema (grupo Console)
34 int (*syscall_console
[MAX_SYSCALLS
]) (void) = {
35 (int (*) (void)) sys_print
,
36 (int (*) (void)) sys_gets
,
37 (int (*) (void)) sys_clrscr
42 // Similar a llamada nix Write pero escribiendo siempre hacia stdout
43 int sys_print (void *buff
, size_t largo
)
45 buff
= convertir_direccion (buff
, actual
->cr3_backup
);
49 static spinlock_t candado
= 1;
51 // spin_lock(&candado);
53 for (aux
=0 ; aux
<largo
; aux
++) {
54 //Demora utilizada para verificar el funcionamiento de spinlocks
55 // for(i=0 ; i<0x4fff ; i++);
56 putchar(*((char *)buff
+aux
));
58 // spin_unlock(&candado);
64 int sys_gets (char *str
)
66 str
= convertir_direccion (str
, actual
->cr3_backup
);