Merge branch 'net-dev'. See body of commit for details.
[akaros.git] / user / parlib / inc / parlib.h
1 // Main public header file for our user-land support library,
2 // whose code lives in the lib directory.
3 // This library is roughly our OS's version of a standard C library,
4 // and is intended to be linked into all user-mode applications
5 // (NOT the kernel or boot loader).
6
7 #ifndef ROS_INC_PARLIB_H
8 #define ROS_INC_PARLIB_H 1
9
10 #include <ros/common.h>
11 #include <ros/memlayout.h>
12 #include <ros/syscall.h>
13 #include <ros/error.h>
14 #include <ros/procdata.h>
15 #include <errno.h>
16
17 enum {
18         PG_RDONLY = 4,
19         PG_RDWR   = 6,
20 };
21
22 extern procinfo_t* procinfo;
23 extern procdata_t* procdata;
24
25 intreg_t syscall(uint16_t num, intreg_t a1,
26                 intreg_t a2, intreg_t a3,
27                 intreg_t a4, intreg_t a5);
28
29 ssize_t     sys_cputs(const uint8_t *s, size_t len);
30 uint16_t    sys_cgetc(void);
31 ssize_t     sys_serial_write(void* buf, size_t len); 
32 ssize_t     sys_serial_read(void* buf, size_t len);
33 ssize_t     sys_eth_write(void* buf, size_t len); 
34 ssize_t     sys_eth_read(void* buf, size_t len);
35 ssize_t     sys_run_binary(void* binary_buf, void* arg, size_t len);
36 int         sys_getpid(void);
37 size_t      sys_getcpuid(void);
38 error_t     sys_proc_destroy(int pid);
39 ssize_t     sys_shared_page_alloc(void *COUNT(PGSIZE) *addr, pid_t p2, 
40                                   int p1_flags, int p2_flags);
41 ssize_t     sys_shared_page_free(void *COUNT(PGSIZE) addr, pid_t p2);
42
43 #endif  // !ROS_INC_PARLIB_H