All local system calls are asynchronous (XCC)
[akaros.git] / kern / include / ros / ring_syscall.h
1 #ifndef _ROS_RING_SYSCALL_H
2 #define _ROS_RING_SYSCALL_H
3
4 #include <ros/common.h>
5 #include <ros/ring_buffer.h>
6
7 #define NUM_SYSCALL_ARGS 6
8 /* This will need to change to represent sending pointers to syscalls, not the
9  * syscalls themselves */
10 typedef struct syscall_req {
11         uint32_t num;
12         uint32_t flags;
13         uint32_t args[NUM_SYSCALL_ARGS];
14 } syscall_req_t;
15
16 typedef struct syscall_rsp {
17         uint32_t retval;
18                 uint32_t syserr;
19 } syscall_rsp_t;
20
21 // Generic Syscall Ring Buffer
22 #define SYSCALLRINGSIZE    PGSIZE
23 //DEFINE_RING_TYPES_WITH_SIZE(syscall, syscall_req_t, syscall_rsp_t,
24 //SYSCALLRINGSIZE);
25 DEFINE_RING_TYPES(syscall, syscall_req_t, syscall_rsp_t);
26
27 #endif