user/usys.pl

44 lines
1#!/usr/bin/perl -w23# Generate usys.S, the stubs for syscalls.45print "# generated by usys.pl - do not edit\n";67print "#include \"kernel/syscall.h\"\n";89sub entry {10    my $prefix = "sys_";11    my $name = shift;12    if ($name eq "sbrk") {13	print ".global $prefix$name\n";14	print "$prefix$name:\n";15    } else {16	print ".global $name\n";17	print "$name:\n";18    }19    print " li a7, SYS_${name}\n";20    print " ecall\n";21    print " ret\n";22}23	24entry("fork");25entry("exit");26entry("wait");27entry("pipe");28entry("read");29entry("write");30entry("close");31entry("kill");32entry("exec");33entry("open");34entry("mknod");35entry("unlink");36entry("fstat");37entry("link");38entry("mkdir");39entry("chdir");40entry("dup");41entry("getpid");42entry("sbrk");43entry("pause");44entry("uptime");45