summaryrefslogtreecommitdiff
path: root/src/user/usys.S
blob: 885d45c6167e6fb8b3bbfa7f6e4fd0ae350ef7aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2026 Richard Qin

#include "kernel/syscall.h"

#define SYSCALL(name) \
    .global name; \
    name: \
        li a7, SYS_ ## name; \
        ecall; \
        ret

#define SYSCALL_NAME(name, sysname) \
    .global name; \
    name: \
        li a7, SYS_ ## sysname; \
        ecall; \
        ret

SYSCALL_NAME(sys_exit, exit) 

SYSCALL(fork)
SYSCALL(wait)
SYSCALL(pipe)
SYSCALL(read)
SYSCALL(write)
SYSCALL(close)
SYSCALL(kill)
SYSCALL(exec)
SYSCALL(open)
SYSCALL(mknod)
SYSCALL(unlink)
SYSCALL(fstat)
SYSCALL(link)
SYSCALL(mkdir)
SYSCALL(chdir)
SYSCALL(dup)
SYSCALL(getpid)
SYSCALL(sbrk)
SYSCALL(sleep)
SYSCALL(uptime)
SYSCALL(putc)
SYSCALL(disk_test)
SYSCALL(lseek)
SYSCALL(shutdown)