net: add LRO feature
[akaros.git] / kern / include / frontend.h
1 #ifndef ROS_FRONTEND_H
2 #define ROS_FRONTEND_H
3
4 #include <ros/common.h>
5
6 #ifdef ROS_KERNEL
7
8 #include <env.h>
9 #include <vfs.h>
10 #include <process.h>
11
12 // Default APPSERVER_ETH_TYPE if not defined externally
13 #ifndef APPSERVER_ETH_TYPE
14 #define APPSERVER_ETH_TYPE 0x8888
15 #endif
16
17 void frontend_proc_init(struct proc* p);
18 void frontend_proc_free(struct proc* p);
19
20 int32_t frontend_syscall(pid_t pid, int32_t syscall_num, 
21                          uint32_t arg0, uint32_t arg1, uint32_t arg2, 
22                          uint32_t arg3, int32_t* errno);
23
24 int frontend_syscall_errno(struct proc* p, int n, int a0, 
25                            int a1, int a2, int a3);
26
27 void file_init(void);
28 error_t file_read_page(struct file* f, physaddr_t pa, size_t pgoff);
29 struct file* file_open(const char* path, int oflag, int mode);
30 struct file* file_open_from_fd(struct proc* p, int fd);
31 void file_incref(struct file* f);
32 void file_decref(struct file* f);
33
34 #endif
35
36 #define APPSERVER_MAXPATH            1024
37
38 #define APPSERVER_SYSCALL_exit          1
39 #define APPSERVER_SYSCALL_read          3
40 #define APPSERVER_SYSCALL_write         4
41 #define APPSERVER_SYSCALL_open          5
42 #define APPSERVER_SYSCALL_close         6
43 #define APPSERVER_SYSCALL_link          9
44 #define APPSERVER_SYSCALL_unlink       10
45 #define APPSERVER_SYSCALL_chdir        12
46 #define APPSERVER_SYSCALL_chmod        15
47 #define APPSERVER_SYSCALL_brk          17
48 #define APPSERVER_SYSCALL_stat         18
49 #define APPSERVER_SYSCALL_lseek        19
50 #define APPSERVER_SYSCALL_fstat        28
51 #define APPSERVER_SYSCALL_utime        30
52 #define APPSERVER_SYSCALL_access       33
53 #define APPSERVER_SYSCALL_dup          41
54 #define APPSERVER_SYSCALL_umask        60
55 #define APPSERVER_SYSCALL_fcntl        62
56 #define APPSERVER_SYSCALL_kdup         87
57 #define APPSERVER_SYSCALL_lstat        88
58 #define APPSERVER_SYSCALL_tcgetattr    89
59 #define APPSERVER_SYSCALL_tcsetattr    90
60 #define APPSERVER_SYSCALL_closedir     91
61 #define APPSERVER_SYSCALL_rewinddir    92
62 #define APPSERVER_SYSCALL_readdir      93
63 #define APPSERVER_SYSCALL_opendir      94
64 #define APPSERVER_SYSCALL_dup2         95
65 #define APPSERVER_SYSCALL_proc_free    96
66 #define APPSERVER_SYSCALL_proc_init    97
67 #define APPSERVER_SYSCALL_time         98
68 #define APPSERVER_SYSCALL_pread       173
69 #define APPSERVER_SYSCALL_pwrite      174
70 #define APPSERVER_SYSCALL_getcwd      229
71
72 #endif /* !ROS_FRONTEND_H */