| #ifndef ROS_INC_SYSCALL_H |
| #define ROS_INC_SYSCALL_H |
| |
| #include <arch/arch.h> |
| #include <ros/bits/syscall.h> |
| #include <ros/arch/syscall.h> |
| #include <ros/event.h> |
| #include <ros/atomic.h> |
| |
| /* Flags for an individual syscall. */ |
| #define SC_DONE 0x0001 /* SC is done */ |
| #define SC_PROGRESS 0x0002 /* SC made progress */ |
| #define SC_UEVENT 0x0004 /* user has an ev_q */ |
| #define SC_K_LOCK 0x0008 /* kernel locked sysc */ |
| #define SC_ABORT 0x0010 /* syscall abort attempted */ |
| |
| #define MAX_ERRSTR_LEN 128 |
| |
| struct syscall { |
| unsigned int num; |
| int err; /* errno */ |
| long retval; |
| atomic_t flags; |
| struct event_queue *ev_q; |
| void *u_data; |
| long arg0; |
| long arg1; |
| long arg2; |
| long arg3; |
| long arg4; |
| long arg5; |
| char errstr[MAX_ERRSTR_LEN]; |
| }; |
| |
| struct childfdmap { |
| unsigned int parentfd; |
| unsigned int childfd; |
| int ok; |
| }; |
| |
| #ifndef ROS_KERNEL |
| |
| /* Temp hack, til the rest of glibc/userspace uses sys/syscall.h */ |
| #include <sys/syscall.h> |
| #endif /* ifndef ROS_KERNEL */ |
| |
| #endif /* ROS_INC_SYSCALL_H */ |