sllul/usys.pl

46 lines
1.1 KiB
Perl
Raw Permalink Normal View History

#!/usr/bin/perl -w
# Generate usys.S, the stubs for syscalls.
print "// generated by usys.pl - do not edit\n";
print "#include \"kernel/syscall.h\"\n";
sub entry {
my $name = shift;
print ".global $name\n";
print "${name}:\n";
print " li a7, SYS_${name}\n";
print " ecall\n";
print " ret\n";
}
entry("fork");
entry("exit");
entry("wait");
entry("pipe");
entry("read");
entry("write");
entry("close");
entry("kill");
entry("execve"); # modified by Zak, replaces exec() which can work on top
entry("open");
entry("mknod");
entry("unlink");
entry("fstat");
entry("link");
entry("mkdir");
entry("chdir");
entry("dup");
entry("getpid");
entry("sbrk");
entry("sleep");
entry("uptime");
entry("prio"); # new syscall, set priority and limit
entry("affin"); # new syscall, set processor affinity
entry("thrd"); # new syscall, launch thread
entry("drvinf"); # new syscall, get drive info
entry("lsdir"); # new syscall, read directory in standardised form
entry("kqueue1"); # new syscall, allocate kqueue
entry("kevent"); # new syscall, wait for events or modify a kqueue