aboutsummaryrefslogtreecommitdiff
path: root/libc/inc/sys.h
diff options
context:
space:
mode:
Diffstat (limited to 'libc/inc/sys.h')
-rw-r--r--libc/inc/sys.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/libc/inc/sys.h b/libc/inc/sys.h
index d95b760..0914bc4 100644
--- a/libc/inc/sys.h
+++ b/libc/inc/sys.h
@@ -14,6 +14,7 @@ int sys2(enum sys num, int d1, int d2);
int sys3(enum sys num, int d1, int d2, int d3);
int sys4(enum sys num, int d1, int d2, int d3, int d4);
int sys5(enum sys num, int d1, int d2, int d3, int d4, int d5);
+int sysv(enum sys num, ...);
/**
* Wrappers
@@ -22,10 +23,12 @@ int sys5(enum sys num, int d1, int d2, int d3, int d4, int d5);
#define loop() sys0(SYS_LOOP)
#define read(path) (void *)sys1(SYS_READ, (int)path)
#define write(path, buf) sys2(SYS_WRITE, (int)path, buf)
-#define exec(path) sys1(SYS_EXEC, (int)path)
+#define exec(path, ...) sysv(SYS_EXEC, (int)path, ##__VA_ARGS__)
#define exit() \
- sys0(SYS_EXIT); \
- while (1) { \
+ { \
+ sys0(SYS_EXIT); \
+ while (1) { \
+ } \
}
#endif