Fix parameter types for sys_proc_create() (XCC)
[akaros.git] / user / parlib / include / parlib.h
index 95f9f44..56c6ab0 100644 (file)
@@ -4,49 +4,46 @@
 // and is intended to be linked into all user-mode applications
 // (NOT the kernel or boot loader).
 
-#ifndef ROS_INC_PARLIB_H
-#define ROS_INC_PARLIB_H 1
+#pragma once
 
 #ifndef __ASSEMBLER__
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/memlayout.h>
 #include <ros/syscall.h>
 #include <ros/procinfo.h>
 #include <ros/procdata.h>
+#include <signal.h>
 #include <stdint.h>
 #include <errno.h>
-#include <ros_debug.h>
+#include <parlib/ros_debug.h>
+#include <ros/fdtap.h>
+
+__BEGIN_DECLS
 
 enum {
        PG_RDONLY = 4,
        PG_RDWR   = 6,
 };
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 ssize_t     sys_cputs(const uint8_t *s, size_t len);
 uint16_t    sys_cgetc(void);
 int         sys_null(void);
-ssize_t     sys_serial_write(void* buf, size_t len); 
-ssize_t     sys_serial_read(void* buf, size_t len);
-ssize_t     sys_eth_write(void *COUNT(len) buf, size_t len); 
-ssize_t     sys_eth_read(void *COUNT(len) buf, size_t len);
 size_t      sys_getpcoreid(void);
 /* Process Management */
 int         sys_getpid(void);
 int         sys_proc_destroy(int pid, int exitcode);
 void        sys_yield(bool being_nice);
-int         sys_proc_create(char *path, size_t path_l, char *argv[], char *envp[]);
+int         sys_proc_create(const char *path, size_t path_l, char *const argv[],
+                            char *const envp[], int flags);
 int         sys_proc_run(int pid);
-ssize_t     sys_shared_page_alloc(void *COUNT(PGSIZE) *addr, pid_t p2, 
+ssize_t     sys_shared_page_alloc(void **addr, pid_t p2, 
                                   int p1_flags, int p2_flags);
-ssize_t     sys_shared_page_free(void *COUNT(PGSIZE) addr, pid_t p2);
+ssize_t     sys_shared_page_free(void *addr, pid_t p2);
 void        sys_reboot();
-void *COUNT(length) sys_mmap(void *SNT addr, size_t length, int prot, int flags,
-                             int fd, size_t offset);
+void           *sys_mmap(void *addr, size_t length, int prot, int flags,
+                      int fd, size_t offset);
+int                    sys_provision(int pid, unsigned int res_type, long res_val);
 int         sys_notify(int pid, unsigned int ev_type, struct event_msg *u_msg);
 int         sys_self_notify(uint32_t vcoreid, unsigned int ev_type,
                             struct event_msg *u_msg, bool priv);
@@ -55,13 +52,16 @@ void*               sys_init_arsc();
 int         sys_block(unsigned int usec);
 int         sys_change_vcore(uint32_t vcoreid, bool enable_my_notif);
 int         sys_change_to_m(void);
-int         sys_poke_ksched(int res_type);
+int         sys_poke_ksched(int pid, unsigned int res_type);
+int         sys_abort_sysc(struct syscall *sysc);
+int         sys_abort_sysc_fd(int fd);
+int         sys_tap_fds(struct fd_tap_req *tap_reqs, size_t nr_reqs);
 
-void           init_posix_signals(void);       /* in signal.c */
-#ifdef __cplusplus
-}
-#endif
+void           syscall_async(struct syscall *sysc, unsigned long num, ...);
 
-#endif // !ASSEMBLER
+/* Control variables */
+extern bool parlib_wants_to_be_mcp;    /* instructs the 2LS to be an MCP */
 
-#endif // !ROS_INC_PARLIB_H
+__END_DECLS
+
+#endif // !ASSEMBLER