Merge branch 'master' into proc-work
[akaros.git] / user / parlib / src / syscall.c
1 // System call stubs.
2 #ifdef __DEPUTY__
3 #pragma nodeputy
4 #endif
5
6 #include <parlib.h>
7
8 error_t sys_proc_destroy(int pid)
9 {
10         return syscall(SYS_proc_destroy, pid, 0, 0, 0, 0);
11 }
12
13 int sys_getpid(void)
14 {
15          return syscall(SYS_getpid, 0, 0, 0, 0, 0);
16 }
17
18 size_t sys_getcpuid(void)
19 {
20          return syscall(SYS_getcpuid, 0, 0, 0, 0, 0);
21 }
22
23 ssize_t sys_cputs(const uint8_t *s, size_t len)
24 {
25     return syscall(SYS_cputs, (intreg_t) s,  len, 0, 0, 0);
26 }
27
28 uint16_t sys_cgetc(void)
29 {
30     return syscall(SYS_cgetc, 0, 0, 0, 0, 0);
31 }
32
33 ssize_t sys_shared_page_alloc(void** addr, pid_t p2, 
34                               int p1_flags, int p2_flags
35                              ) 
36 {
37         return syscall(SYS_shared_page_alloc, (intreg_t)addr, 
38                        p2, p1_flags, p2_flags, 0);
39 }
40
41 ssize_t sys_shared_page_free(void* addr, pid_t p2) 
42 {
43         return syscall(SYS_shared_page_free, (intreg_t)addr, p2, 0,0,0);
44 }
45
46 //Write a buffer over the serial port
47 ssize_t sys_serial_write(void* buf, size_t len) 
48 {
49         return syscall(SYS_serial_write, (intreg_t)buf, len, 0, 0, 0);
50 }
51
52 //Read a buffer over the serial port
53 ssize_t sys_serial_read(void* buf, size_t len) 
54 {
55         return syscall(SYS_serial_read, (intreg_t)buf, len, 0, 0, 0);
56 }