Merge branch 'net-dev'. See body of commit for details.
[akaros.git] / user / parlib / src / syscall.c
1 // System call stubs.
2
3 #include <parlib.h>
4
5 error_t sys_proc_destroy(int pid)
6 {
7         return syscall(SYS_proc_destroy, pid, 0, 0, 0, 0);
8 }
9
10 int sys_getpid(void)
11 {
12          return syscall(SYS_getpid, 0, 0, 0, 0, 0);
13 }
14
15 size_t sys_getcpuid(void)
16 {
17          return syscall(SYS_getcpuid, 0, 0, 0, 0, 0);
18 }
19
20 ssize_t sys_cputs(const uint8_t *s, size_t len)
21 {
22     return syscall(SYS_cputs, (intreg_t) s,  len, 0, 0, 0);
23 }
24
25 uint16_t sys_cgetc(void)
26 {
27     return syscall(SYS_cgetc, 0, 0, 0, 0, 0);
28 }
29
30 ssize_t sys_shared_page_alloc(void** addr, pid_t p2, 
31                               int p1_flags, int p2_flags
32                              ) 
33 {
34         return syscall(SYS_shared_page_alloc, (intreg_t)addr, 
35                        p2, p1_flags, p2_flags, 0);
36 }
37
38 ssize_t sys_shared_page_free(void* addr, pid_t p2) 
39 {
40         return syscall(SYS_shared_page_free, (intreg_t)addr, p2, 0,0,0);
41 }
42
43 //Write a buffer over the serial port
44 ssize_t sys_serial_write(void* buf, size_t len) 
45 {
46         return syscall(SYS_serial_write, (intreg_t)buf, len, 0, 0, 0);
47 }
48
49 //Read a buffer over the serial port
50 ssize_t sys_serial_read(void* buf, size_t len) 
51 {
52         return syscall(SYS_serial_read, (intreg_t)buf, len, 0, 0, 0);
53 }
54
55 //Run a binary loaded at the specificed address with the specified arguments
56 ssize_t sys_run_binary(void* binary_buf, void* arg, size_t len) 
57 {
58         return syscall(SYS_run_binary, (intreg_t)binary_buf, (intreg_t)arg, len, 0, 0);
59 }
60
61 //Write a buffer over ethernet
62 ssize_t sys_eth_write(void* buf, size_t len) 
63 {
64         return syscall(SYS_eth_write, (intreg_t)buf, len, 0, 0, 0);
65 }
66
67 //Read a buffer via ethernet
68 ssize_t sys_eth_read(void* buf, size_t len) 
69 {
70         return syscall(SYS_eth_read, (intreg_t)buf, len, 0, 0, 0);
71 }