aboutsummaryrefslogtreecommitdiff
path: root/include/apos/uapi.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-11-21 14:02:17 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2022-11-21 14:02:17 +0200
commit62d395d206171fdaf3fa62c495633990198db6c4 (patch)
treebed68b4a0fd5ff5897f78418fd3527eb05c72ec9 /include/apos/uapi.h
parentd312c853a8c9e6e2fd457fa5f840e65a9a738e7d (diff)
downloadkmi-62d395d206171fdaf3fa62c495633990198db6c4.tar.gz
kmi-62d395d206171fdaf3fa62c495633990198db6c4.zip
possible optimisations
Diffstat (limited to 'include/apos/uapi.h')
-rw-r--r--include/apos/uapi.h51
1 files changed, 26 insertions, 25 deletions
diff --git a/include/apos/uapi.h b/include/apos/uapi.h
index fea82e4..99ab4e1 100644
--- a/include/apos/uapi.h
+++ b/include/apos/uapi.h
@@ -16,7 +16,7 @@
* Syscall function type.
* Let's start with five arguments and see where that goes
*/
-typedef struct sys_ret (*sys_t)(long, long, long, long, long);
+typedef struct sys_ret (*sys_t)(struct tcb *t, long, long, long, long, long);
/**
* Syscall argument type.
@@ -83,7 +83,8 @@ struct sys_ret {
* @param name Name of syscall.
*/
#define SYSCALL_DECLARE0(name) \
- struct sys_ret sys_##name(sys_arg_t a, \
+ struct sys_ret sys_##name(struct tcb *t, \
+ sys_arg_t a, \
sys_arg_t b, \
sys_arg_t c, \
sys_arg_t d, \
@@ -96,7 +97,7 @@ struct sys_ret {
* @param a Name of argument.
*/
#define SYSCALL_DECLARE1(name, a) \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e);
/**
@@ -107,7 +108,7 @@ struct sys_ret {
* @param b Name of second argument.
*/
#define SYSCALL_DECLARE2(name, a, b) \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e);
/**
@@ -119,7 +120,7 @@ struct sys_ret {
* @param c Name of third argument.
*/
#define SYSCALL_DECLARE3(name, a, b, c) \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e);
/**
@@ -132,7 +133,7 @@ struct sys_ret {
* @param d Name of fourth argument.
*/
#define SYSCALL_DECLARE4(name, a, b, c, d) \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e);
/**
@@ -146,7 +147,7 @@ struct sys_ret {
* @param e Name of fifth argument.
*/
#define SYSCALL_DECLARE5(name, a, b, c, d, e) \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e);
/**
@@ -155,8 +156,8 @@ struct sys_ret {
* @param name Name of syscall.
*/
#define SYSCALL_DEFINE0(name) \
- static inline struct sys_ret __##name(); \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ static inline struct sys_ret __##name(struct tcb *t); \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e) \
{ \
UNUSED(a); \
@@ -164,7 +165,7 @@ struct sys_ret {
UNUSED(c); \
UNUSED(d); \
UNUSED(e); \
- return __##name(); \
+ return __##name(t); \
} \
static struct sys_ret __##name
@@ -174,15 +175,15 @@ struct sys_ret {
* @param name Name of syscall.
*/
#define SYSCALL_DEFINE1(name) \
- static inline struct sys_ret __##name(sys_arg_t); \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ static inline struct sys_ret __##name(struct tcb *, sys_arg_t); \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e) \
{ \
UNUSED(b); \
UNUSED(c); \
UNUSED(d); \
UNUSED(e); \
- return __##name(a); \
+ return __##name(t, a); \
} \
static inline struct sys_ret __##name
@@ -192,14 +193,14 @@ struct sys_ret {
* @param name Name of syscall.
*/
#define SYSCALL_DEFINE2(name) \
- static inline struct sys_ret __##name(sys_arg_t, sys_arg_t); \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ static inline struct sys_ret __##name(struct tcb *, sys_arg_t, sys_arg_t); \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e) \
{ \
UNUSED(c); \
UNUSED(d); \
UNUSED(e); \
- return __##name(a, b); \
+ return __##name(t, a, b); \
} \
static inline struct sys_ret __##name
@@ -209,14 +210,14 @@ struct sys_ret {
* @param name Name of syscall.
*/
#define SYSCALL_DEFINE3(name) \
- static inline struct sys_ret __##name(sys_arg_t, sys_arg_t, \
+ static inline struct sys_ret __##name(struct tcb *, sys_arg_t, sys_arg_t, \
sys_arg_t); \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e) \
{ \
UNUSED(d); \
UNUSED(e); \
- return __##name(a, b, c); \
+ return __##name(t, a, b, c); \
} \
static inline struct sys_ret __##name
@@ -226,13 +227,13 @@ struct sys_ret {
* @param name Name of syscall.
*/
#define SYSCALL_DEFINE4(name) \
- static inline struct sys_ret __##name(sys_arg_t, sys_arg_t, sys_arg_t, \
+ static inline struct sys_ret __##name(struct tcb *, sys_arg_t, sys_arg_t, sys_arg_t, \
sys_arg_t); \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e) \
{ \
UNUSED(e); \
- return __##name(a, b, c, d); \
+ return __##name(t, a, b, c, d); \
} \
static inline struct sys_ret __##name
@@ -242,12 +243,12 @@ struct sys_ret {
* @param name Name of syscall.
*/
#define SYSCALL_DEFINE5(name) \
- static inline struct sys_ret __##name(sys_arg_t, sys_arg_t, sys_arg_t, \
+ static inline struct sys_ret __##name(struct tcb *, sys_arg_t, sys_arg_t, sys_arg_t, \
sys_arg_t, sys_arg_t); \
- struct sys_ret sys_##name(sys_arg_t a, sys_arg_t b, sys_arg_t c, \
+ struct sys_ret sys_##name(struct tcb *t, sys_arg_t a, sys_arg_t b, sys_arg_t c, \
sys_arg_t d, sys_arg_t e) \
{ \
- return __##name(a, b, c, d, e); \
+ return __##name(t, a, b, c, d, e); \
} \
static inline struct sys_ret __##name