commit fc2e8fdcfbdcfff92e72aef056e0491b23ad61bc
parent 33bff38345656007e74f1cb08b9cf9cdca3f22eb
Author: evenfri <evenfri256@gmail.com>
Date: Mon, 10 Aug 2026 03:04:40 +0800
fix syscall
Diffstat:
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/syscall.c b/syscall.c
@@ -22,16 +22,13 @@ static inline long call(long n, long a1, long a2, long a3, long a4, long a5, lon
long syscall(long num, ...) {
va_list valist;
- long a, b, c, d, e, f;
+ long args[6] = {0, 0, 0, 0, 0, 0};
va_start(valist, num);
- a = va_arg(valist, long);
- b = va_arg(valist, long);
- c = va_arg(valist, long);
- d = va_arg(valist, long);
- e = va_arg(valist, long);
- f = va_arg(valist, long);
+ for (int i = 0; i < 6; i++) {
+ args[i] = va_arg(valist, long);
+ }
va_end(valist);
- return call(num, a, b, c, d, e, f);
+ return call(num, args[0], args[1], args[2], args[3], args[4], args[5]);
}