Merge branch 'master' into net-dev
[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 void sys_env_destroy(envid_t envid)
9 {
10         syscall(SYS_env_destroy, envid, 0, 0, 0, 0);
11         while(1); //Should never get here...
12 }
13
14 envid_t sys_getenvid(void)
15 {
16          return syscall(SYS_getenvid, 0, 0, 0, 0, 0);
17 }
18
19 envid_t sys_getcpuid(void)
20 {
21          return syscall(SYS_getcpuid, 0, 0, 0, 0, 0);
22 }
23
24 ssize_t sys_cputs(const uint8_t *s, size_t len)
25 {
26     return syscall(SYS_cputs, (intreg_t) s,  len, 0, 0, 0);
27 }
28
29 uint16_t sys_cgetc(void)
30 {
31     return syscall(SYS_cgetc, 0, 0, 0, 0, 0);
32 }
33
34 ssize_t sys_shared_page_alloc(void** addr, envid_t p2, 
35                               int p1_flags, int p2_flags
36                              ) 
37 {
38         return syscall(SYS_shared_page_alloc, (intreg_t)addr, 
39                        p2, p1_flags, p2_flags, 0);
40 }
41
42 ssize_t sys_shared_page_free(void* addr, envid_t p2) 
43 {
44         return syscall(SYS_shared_page_free, (intreg_t)addr, p2, 0,0,0);
45 }
46
47 //Write a buffer over the serial port
48 ssize_t sys_serial_write(void* buf, size_t len) 
49 {
50         return syscall(SYS_serial_write, (intreg_t)buf, len, 0, 0, 0);
51 }
52
53 //Read a buffer over the serial port
54 ssize_t sys_serial_read(void* buf, size_t len) 
55 {
56         return syscall(SYS_serial_read, (intreg_t)buf, len, 0, 0, 0);
57 }
58
59 //Run a binary loaded at the specificed address with the specified arguments
60 ssize_t sys_run_binary(void* binary_buf, void* arg, size_t len) 
61 {
62         return syscall(SYS_run_binary, (intreg_t)binary_buf, (intreg_t)arg, len, 0, 0);
63 }
64
65 //Write a buffer over ethernet
66 ssize_t sys_eth_write(void* buf, size_t len) 
67 {
68         return syscall(SYS_eth_write, (intreg_t)buf, len, 0, 0, 0);
69 }
70
71 //Read a buffer via ethernet
72 ssize_t sys_eth_read(void* buf, size_t len) 
73 {
74         return syscall(SYS_eth_read, (intreg_t)buf, len, 0, 0, 0);
75 }