summaryrefslogtreecommitdiff
path: root/usys.pl
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-05-31 11:45:42 -0400
committerRobert Morris <[email protected]>2019-05-31 11:45:42 -0400
commit5d34fa2a489940f19ee6c4728e4b11b6d8ffad01 (patch)
tree98bb91986da866684aa0159d3e44991ea8a1a87c /usys.pl
parent2ec1959fd1016a18ef3b2d154ce7076be8f237e4 (diff)
downloadxv6-labs-5d34fa2a489940f19ee6c4728e4b11b6d8ffad01.tar.gz
xv6-labs-5d34fa2a489940f19ee6c4728e4b11b6d8ffad01.tar.bz2
xv6-labs-5d34fa2a489940f19ee6c4728e4b11b6d8ffad01.zip
-initrd fs.img, ramdisk.c, file system
Diffstat (limited to 'usys.pl')
-rwxr-xr-xusys.pl38
1 files changed, 38 insertions, 0 deletions
diff --git a/usys.pl b/usys.pl
new file mode 100755
index 0000000..f8d47d5
--- /dev/null
+++ b/usys.pl
@@ -0,0 +1,38 @@
+#!/usr/bin/perl -w
+
+# Generate usys.S, the stubs for syscalls.
+
+print "# generated by usys.pl - do not edit\n";
+
+print "#include \"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("exec");
+entry("open");
+entry("mknod");
+entry("unlink");
+entry("fstat");
+entry("link");
+entry("mkdir");
+entry("chdir");
+entry("dup");
+entry("getpid");
+entry("sbrk");
+entry("sleep");
+entry("uptime");