diff --git a/Makefile b/Makefile index a6b16fa..77ecadc 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ LD = $(TOOLPREFIX)ld OBJCOPY = $(TOOLPREFIX)objcopy OBJDUMP = $(TOOLPREFIX)objdump -CFLAGS = -Wall -Werror -O -fno-omit-frame-pointer -ggdb -gdwarf-2 +CFLAGS = -Wall -Werror -O2 -fno-omit-frame-pointer -ggdb -gdwarf-2 ifdef LAB LABUPPER = $(shell echo $(LAB) | tr a-z A-Z) @@ -189,6 +189,7 @@ UPROGS=\ $U/_wc\ $U/_zombie\ $U/_sleep\ + $U/_pingpong\ diff --git a/compile_commands.json b/compile_commands.json index 481ae66..237df28 100644 --- a/compile_commands.json +++ b/compile_commands.json @@ -3,24 +3,20 @@ "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/entry.o", "kernel/entry.S" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/entry.S", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/entry.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/entry.S", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/entry.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -34,24 +30,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/kalloc.o", "kernel/kalloc.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/kalloc.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/kalloc.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/kalloc.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/kalloc.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -65,24 +57,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/string.o", "kernel/string.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/string.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/string.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/string.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/string.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -96,24 +84,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/main.o", "kernel/main.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/main.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/main.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/main.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/main.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -127,24 +111,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/vm.o", "kernel/vm.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/vm.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/vm.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/vm.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/vm.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -158,56 +138,44 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/proc.o", "kernel/proc.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/proc.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/proc.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/proc.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/proc.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/swtch.o", "kernel/swtch.S" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/swtch.S", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/swtch.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/swtch.S", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/swtch.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/trampoline.o", "kernel/trampoline.S" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/trampoline.S", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/trampoline.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/trampoline.S", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/trampoline.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -221,24 +189,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/trap.o", "kernel/trap.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/trap.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/trap.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/trap.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/trap.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -252,24 +216,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/syscall.o", "kernel/syscall.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/syscall.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/syscall.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/syscall.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/syscall.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -283,24 +243,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/sysproc.o", "kernel/sysproc.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/sysproc.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/sysproc.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/sysproc.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/sysproc.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -314,24 +270,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/bio.o", "kernel/bio.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/bio.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/bio.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/bio.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/bio.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -345,24 +297,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/fs.o", "kernel/fs.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/fs.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/fs.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/fs.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/fs.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -376,24 +324,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/log.o", "kernel/log.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/log.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/log.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/log.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/log.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -407,24 +351,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/sleeplock.o", "kernel/sleeplock.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/sleeplock.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/sleeplock.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/sleeplock.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/sleeplock.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -438,24 +378,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/file.o", "kernel/file.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/file.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/file.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/file.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/file.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -469,24 +405,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/pipe.o", "kernel/pipe.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/pipe.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/pipe.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/pipe.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/pipe.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -500,24 +432,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/exec.o", "kernel/exec.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/exec.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/exec.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/exec.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/exec.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -531,40 +459,32 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/sysfile.o", "kernel/sysfile.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/sysfile.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/sysfile.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/sysfile.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/sysfile.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/kernelvec.o", "kernel/kernelvec.S" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/kernelvec.S", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/kernelvec.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/kernelvec.S", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/kernelvec.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -578,24 +498,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/plic.o", "kernel/plic.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/plic.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/plic.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/plic.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/plic.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -609,24 +525,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/virtio_disk.o", "kernel/virtio_disk.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/virtio_disk.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/virtio_disk.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/virtio_disk.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/virtio_disk.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -640,24 +552,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/start.o", "kernel/start.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/start.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/start.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/start.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/start.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -671,24 +579,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/console.o", "kernel/console.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/console.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/console.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/console.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/console.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -702,24 +606,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/printf.o", "kernel/printf.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/printf.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/printf.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/printf.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/printf.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -733,24 +633,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/uart.o", "kernel/uart.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/uart.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/uart.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/uart.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/uart.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -764,24 +660,20 @@ "-fno-stack-protector", "-fno-pie", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "kernel/spinlock.o", "kernel/spinlock.c" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/kernel/spinlock.c", - "output": "/home/gh0s7/project/csail/xv6-labs/kernel/spinlock.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/spinlock.c", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/kernel/spinlock.o" }, { "arguments": [ "/usr/bin/riscv64-unknown-elf-gcc", "-Wall", "-Werror", - "-O", + "-O2", "-fno-omit-frame-pointer", "-ggdb", "-gdwarf-2", @@ -799,688 +691,12 @@ "-I.", "-Ikernel", "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", "-o", "user/initcode.o", "user/initcode.S" ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/initcode.S", - "output": "/home/gh0s7/project/csail/xv6-labs/user/initcode.o" - }, - { - "arguments": [ - "/usr/lib/ccache/bin/gcc", - "-c", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-Werror", - "-Wall", - "-I.", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "mkfs/mkfs", - "mkfs/mkfs.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/mkfs/mkfs.c", - "output": "/home/gh0s7/project/csail/xv6-labs/mkfs/mkfs" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/ulib.o", - "user/ulib.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/ulib.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/ulib.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/usys.o", - "user/usys.S" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/usys.S", - "output": "/home/gh0s7/project/csail/xv6-labs/user/usys.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/printf.o", - "user/printf.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/printf.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/printf.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/umalloc.o", - "user/umalloc.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/umalloc.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/umalloc.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/cat.o", - "user/cat.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/cat.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/cat.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/echo.o", - "user/echo.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/echo.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/echo.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/forktest.o", - "user/forktest.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/forktest.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/forktest.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/grep.o", - "user/grep.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/grep.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/grep.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/init.o", - "user/init.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/init.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/init.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/kill.o", - "user/kill.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/kill.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/kill.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/ln.o", - "user/ln.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/ln.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/ln.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/ls.o", - "user/ls.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/ls.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/ls.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/mkdir.o", - "user/mkdir.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/mkdir.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/mkdir.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/rm.o", - "user/rm.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/rm.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/rm.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/sh.o", - "user/sh.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/sh.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/sh.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/stressfs.o", - "user/stressfs.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/stressfs.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/stressfs.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/usertests.o", - "user/usertests.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/usertests.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/usertests.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/grind.o", - "user/grind.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/grind.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/grind.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/wc.o", - "user/wc.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/wc.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/wc.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/zombie.o", - "user/zombie.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/zombie.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/zombie.o" - }, - { - "arguments": [ - "/usr/bin/riscv64-unknown-elf-gcc", - "-Wall", - "-Werror", - "-O", - "-fno-omit-frame-pointer", - "-ggdb", - "-gdwarf-2", - "-DSOL_UTIL", - "-DLAB_UTIL", - "-mcmodel=medany", - "-ffreestanding", - "-fno-common", - "-mno-relax", - "-I.", - "-fno-stack-protector", - "-fno-pie", - "-c", - "-I", - "/usr/share/verilator/include", - "-I", - "/usr/share/verilator/include", - "-o", - "user/sleep.o", - "user/sleep.c" - ], - "directory": "/home/gh0s7/project/csail/xv6-labs", - "file": "/home/gh0s7/project/csail/xv6-labs/user/sleep.c", - "output": "/home/gh0s7/project/csail/xv6-labs/user/sleep.o" + "directory": "/run/media/gh0s7/Data/project/csail/xv6-labs", + "file": "/run/media/gh0s7/Data/project/csail/xv6-labs/user/initcode.S", + "output": "/run/media/gh0s7/Data/project/csail/xv6-labs/user/initcode.o" } ] diff --git a/kernel/defs.h b/kernel/defs.h index a3c962b..f3f5fef 100644 --- a/kernel/defs.h +++ b/kernel/defs.h @@ -10,180 +10,180 @@ struct stat; struct superblock; // bio.c -void binit(void); -struct buf* bread(uint, uint); -void brelse(struct buf*); -void bwrite(struct buf*); -void bpin(struct buf*); -void bunpin(struct buf*); +void binit(void); +struct buf *bread(uint, uint); +void brelse(struct buf *); +void bwrite(struct buf *); +void bpin(struct buf *); +void bunpin(struct buf *); // console.c -void consoleinit(void); -void consoleintr(int); -void consputc(int); +void consoleinit(void); +void consoleintr(int); +void consputc(int); // exec.c -int exec(char*, char**); +int exec(char *, char **); // file.c -struct file* filealloc(void); -void fileclose(struct file*); -struct file* filedup(struct file*); -void fileinit(void); -int fileread(struct file*, uint64, int n); -int filestat(struct file*, uint64 addr); -int filewrite(struct file*, uint64, int n); +struct file *filealloc(void); +void fileclose(struct file *); +struct file *filedup(struct file *); +void fileinit(void); +int fileread(struct file *, uint64, int n); +int filestat(struct file *, uint64 addr); +int filewrite(struct file *, uint64, int n); // fs.c -void fsinit(int); -int dirlink(struct inode*, char*, uint); -struct inode* dirlookup(struct inode*, char*, uint*); -struct inode* ialloc(uint, short); -struct inode* idup(struct inode*); -void iinit(); -void ilock(struct inode*); -void iput(struct inode*); -void iunlock(struct inode*); -void iunlockput(struct inode*); -void iupdate(struct inode*); -int namecmp(const char*, const char*); -struct inode* namei(char*); -struct inode* nameiparent(char*, char*); -int readi(struct inode*, int, uint64, uint, uint); -void stati(struct inode*, struct stat*); -int writei(struct inode*, int, uint64, uint, uint); -void itrunc(struct inode*); +void fsinit(int); +int dirlink(struct inode *, char *, uint); +struct inode *dirlookup(struct inode *, char *, uint *); +struct inode *ialloc(uint, short); +struct inode *idup(struct inode *); +void iinit(); +void ilock(struct inode *); +void iput(struct inode *); +void iunlock(struct inode *); +void iunlockput(struct inode *); +void iupdate(struct inode *); +int namecmp(const char *, const char *); +struct inode *namei(char *); +struct inode *nameiparent(char *, char *); +int readi(struct inode *, int, uint64, uint, uint); +void stati(struct inode *, struct stat *); +int writei(struct inode *, int, uint64, uint, uint); +void itrunc(struct inode *); // ramdisk.c -void ramdiskinit(void); -void ramdiskintr(void); -void ramdiskrw(struct buf*); +void ramdiskinit(void); +void ramdiskintr(void); +void ramdiskrw(struct buf *); // kalloc.c -void* kalloc(void); -void kfree(void *); -void kinit(void); +void *kalloc(void); +void kfree(void *); +void kinit(void); // log.c -void initlog(int, struct superblock*); -void log_write(struct buf*); -void begin_op(void); -void end_op(void); +void initlog(int, struct superblock *); +void log_write(struct buf *); +void begin_op(void); +void end_op(void); // pipe.c -int pipealloc(struct file**, struct file**); -void pipeclose(struct pipe*, int); -int piperead(struct pipe*, uint64, int); -int pipewrite(struct pipe*, uint64, int); +int pipealloc(struct file **, struct file **); +void pipeclose(struct pipe *, int); +int piperead(struct pipe *, uint64, int); +int pipewrite(struct pipe *, uint64, int); // printf.c -void printf(char*, ...); -void panic(char*) __attribute__((noreturn)); -void printfinit(void); +void printf(char *, ...); +void panic(char *) __attribute__((noreturn)); +void printfinit(void); // proc.c -int cpuid(void); -void exit(int); -int fork(void); -int growproc(int); -void proc_mapstacks(pagetable_t); -pagetable_t proc_pagetable(struct proc *); -void proc_freepagetable(pagetable_t, uint64); -int kill(int); -int killed(struct proc*); -void setkilled(struct proc*); -struct cpu* mycpu(void); -struct cpu* getmycpu(void); -struct proc* myproc(); -void procinit(void); -void scheduler(void) __attribute__((noreturn)); -void sched(void); -void sleep(void*, struct spinlock*); -void userinit(void); -int wait(uint64); -void wakeup(void*); -void yield(void); -int either_copyout(int user_dst, uint64 dst, void *src, uint64 len); -int either_copyin(void *dst, int user_src, uint64 src, uint64 len); -void procdump(void); +int cpuid(void); +void exit(int); +int fork(void); +int growproc(int); +void proc_mapstacks(pagetable_t); +pagetable_t proc_pagetable(struct proc *); +void proc_freepagetable(pagetable_t, uint64); +int kill(int); +int killed(struct proc *); +void setkilled(struct proc *); +struct cpu *mycpu(void); +struct cpu *getmycpu(void); +struct proc *myproc(); +void procinit(void); +void scheduler(void) __attribute__((noreturn)); +void sched(void); +void sleep(void *, struct spinlock *); +void userinit(void); +int wait(uint64); +void wakeup(void *); +void yield(void); +int either_copyout(int user_dst, uint64 dst, void *src, uint64 len); +int either_copyin(void *dst, int user_src, uint64 src, uint64 len); +void procdump(void); // swtch.S -void swtch(struct context*, struct context*); +void swtch(struct context *, struct context *); // spinlock.c -void acquire(struct spinlock*); -int holding(struct spinlock*); -void initlock(struct spinlock*, char*); -void release(struct spinlock*); -void push_off(void); -void pop_off(void); +void acquire(struct spinlock *); +int holding(struct spinlock *); +void initlock(struct spinlock *, char *); +void release(struct spinlock *); +void push_off(void); +void pop_off(void); // sleeplock.c -void acquiresleep(struct sleeplock*); -void releasesleep(struct sleeplock*); -int holdingsleep(struct sleeplock*); -void initsleeplock(struct sleeplock*, char*); +void acquiresleep(struct sleeplock *); +void releasesleep(struct sleeplock *); +int holdingsleep(struct sleeplock *); +void initsleeplock(struct sleeplock *, char *); // string.c -int memcmp(const void*, const void*, uint); -void* memmove(void*, const void*, uint); -void* memset(void*, int, uint); -char* safestrcpy(char*, const char*, int); -int strlen(const char*); -int strncmp(const char*, const char*, uint); -char* strncpy(char*, const char*, int); +int memcmp(const void *, const void *, uint); +void *memmove(void *, const void *, uint); +void *memset(void *, int, uint); +char *safestrcpy(char *, const char *, int); +int strlen(const char *); +int strncmp(const char *, const char *, uint); +char *strncpy(char *, const char *, int); // syscall.c -void argint(int, int*); -int argstr(int, char*, int); -void argaddr(int, uint64 *); -int fetchstr(uint64, char*, int); -int fetchaddr(uint64, uint64*); -void syscall(); +void argint(int, int *); +int argstr(int, char *, int); +void argaddr(int, uint64 *); +int fetchstr(uint64, char *, int); +int fetchaddr(uint64, uint64 *); +void syscall(); // trap.c -extern uint ticks; -void trapinit(void); -void trapinithart(void); +extern uint ticks; +void trapinit(void); +void trapinithart(void); extern struct spinlock tickslock; -void usertrapret(void); +void usertrapret(void); // uart.c -void uartinit(void); -void uartintr(void); -void uartputc(int); -void uartputc_sync(int); -int uartgetc(void); +void uartinit(void); +void uartintr(void); +void uartputc(int); +void uartputc_sync(int); +int uartgetc(void); // vm.c -void kvminit(void); -void kvminithart(void); -void kvmmap(pagetable_t, uint64, uint64, uint64, int); -int mappages(pagetable_t, uint64, uint64, uint64, int); -pagetable_t uvmcreate(void); -void uvmfirst(pagetable_t, uchar *, uint); -uint64 uvmalloc(pagetable_t, uint64, uint64, int); -uint64 uvmdealloc(pagetable_t, uint64, uint64); -int uvmcopy(pagetable_t, pagetable_t, uint64); -void uvmfree(pagetable_t, uint64); -void uvmunmap(pagetable_t, uint64, uint64, int); -void uvmclear(pagetable_t, uint64); -pte_t * walk(pagetable_t, uint64, int); -uint64 walkaddr(pagetable_t, uint64); -int copyout(pagetable_t, uint64, char *, uint64); -int copyin(pagetable_t, char *, uint64, uint64); -int copyinstr(pagetable_t, char *, uint64, uint64); +void kvminit(void); +void kvminithart(void); +void kvmmap(pagetable_t, uint64, uint64, uint64, int); +int mappages(pagetable_t, uint64, uint64, uint64, int); +pagetable_t uvmcreate(void); +void uvmfirst(pagetable_t, uchar *, uint); +uint64 uvmalloc(pagetable_t, uint64, uint64, int); +uint64 uvmdealloc(pagetable_t, uint64, uint64); +int uvmcopy(pagetable_t, pagetable_t, uint64); +void uvmfree(pagetable_t, uint64); +void uvmunmap(pagetable_t, uint64, uint64, int); +void uvmclear(pagetable_t, uint64); +pte_t *walk(pagetable_t, uint64, int); +uint64 walkaddr(pagetable_t, uint64); +int copyout(pagetable_t, uint64, char *, uint64); +int copyin(pagetable_t, char *, uint64, uint64); +int copyinstr(pagetable_t, char *, uint64, uint64); // plic.c -void plicinit(void); -void plicinithart(void); -int plic_claim(void); -void plic_complete(int); +void plicinit(void); +void plicinithart(void); +int plic_claim(void); +void plic_complete(int); // virtio_disk.c -void virtio_disk_init(void); -void virtio_disk_rw(struct buf *, int); -void virtio_disk_intr(void); +void virtio_disk_init(void); +void virtio_disk_rw(struct buf *, int); +void virtio_disk_intr(void); // number of elements in fixed-size array -#define NELEM(x) (sizeof(x)/sizeof((x)[0])) +#define NELEM(x) (sizeof(x) / sizeof((x)[0])) diff --git a/kernel/types.h b/kernel/types.h index ee73164..e576fd4 100644 --- a/kernel/types.h +++ b/kernel/types.h @@ -1,10 +1,10 @@ -typedef unsigned int uint; +typedef unsigned int uint; typedef unsigned short ushort; -typedef unsigned char uchar; +typedef unsigned char uchar; typedef unsigned char uint8; typedef unsigned short uint16; -typedef unsigned int uint32; +typedef unsigned int uint32; typedef unsigned long uint64; typedef uint64 pde_t; diff --git a/mkfs/mkfs b/mkfs/mkfs new file mode 100644 index 0000000..f849fd5 Binary files /dev/null and b/mkfs/mkfs differ diff --git a/user/pingpong.c b/user/pingpong.c new file mode 100644 index 0000000..4d7ea95 --- /dev/null +++ b/user/pingpong.c @@ -0,0 +1,21 @@ +#include "kernel/types.h" +#include "user/user.h" + +int main(int argc, char *argv[]) { + int proc_f2s[2], proc_s2f[2]; + char buffer[8]; + pipe(proc_f2s); + pipe(proc_s2f); + + if (fork() == 0) { + read(proc_s2f[0], buffer, 4); + printf("%d: received %s\n", getpid(), buffer); + write(proc_f2s[1], "pong", strlen("pong")); + } else { + write(proc_s2f[1], "ping", strlen("ping")); + read(proc_f2s[0], buffer, 4); + printf("%d: received %s\n", getpid(), buffer); + } + + exit(0); +} \ No newline at end of file diff --git a/user/ulib.c b/user/ulib.c index c7b66c4..da36559 100644 --- a/user/ulib.c +++ b/user/ulib.c @@ -1,134 +1,112 @@ -#include "kernel/types.h" -#include "kernel/stat.h" #include "kernel/fcntl.h" +#include "kernel/stat.h" +#include "kernel/types.h" #include "user/user.h" // // wrapper so that it's OK if main() does not call exit(). // -void -_main() -{ +void _main() { extern int main(); main(); exit(0); } -char* -strcpy(char *s, const char *t) -{ +char *strcpy(char *s, const char *t) { char *os; os = s; - while((*s++ = *t++) != 0) + while ((*s++ = *t++) != 0) ; return os; } -int -strcmp(const char *p, const char *q) -{ - while(*p && *p == *q) +int strcmp(const char *p, const char *q) { + while (*p && *p == *q) p++, q++; return (uchar)*p - (uchar)*q; } -uint -strlen(const char *s) -{ +uint strlen(const char *s) { int n; - for(n = 0; s[n]; n++) + for (n = 0; s[n]; n++) ; return n; } -void* -memset(void *dst, int c, uint n) -{ - char *cdst = (char *) dst; +void *memset(void *dst, int c, uint n) { + char *cdst = (char *)dst; int i; - for(i = 0; i < n; i++){ + for (i = 0; i < n; i++) { cdst[i] = c; } return dst; } -char* -strchr(const char *s, char c) -{ - for(; *s; s++) - if(*s == c) - return (char*)s; +char *strchr(const char *s, char c) { + for (; *s; s++) + if (*s == c) + return (char *)s; return 0; } -char* -gets(char *buf, int max) -{ +char *gets(char *buf, int max) { int i, cc; char c; - for(i=0; i+1 < max; ){ + for (i = 0; i + 1 < max;) { cc = read(0, &c, 1); - if(cc < 1) + if (cc < 1) break; buf[i++] = c; - if(c == '\n' || c == '\r') + if (c == '\n' || c == '\r') break; } buf[i] = '\0'; return buf; } -int -stat(const char *n, struct stat *st) -{ +int stat(const char *n, struct stat *st) { int fd; int r; fd = open(n, O_RDONLY); - if(fd < 0) + if (fd < 0) return -1; r = fstat(fd, st); close(fd); return r; } -int -atoi(const char *s) -{ +int atoi(const char *s) { int n; n = 0; - while('0' <= *s && *s <= '9') - n = n*10 + *s++ - '0'; + while ('0' <= *s && *s <= '9') + n = n * 10 + *s++ - '0'; return n; } -void* -memmove(void *vdst, const void *vsrc, int n) -{ +void *memmove(void *vdst, const void *vsrc, int n) { char *dst; const char *src; dst = vdst; src = vsrc; if (src > dst) { - while(n-- > 0) + while (n-- > 0) *dst++ = *src++; } else { dst += n; src += n; - while(n-- > 0) + while (n-- > 0) *--dst = *--src; } return vdst; } -int -memcmp(const void *s1, const void *s2, uint n) -{ +int memcmp(const void *s1, const void *s2, uint n) { const char *p1 = s1, *p2 = s2; while (n-- > 0) { if (*p1 != *p2) { @@ -140,8 +118,6 @@ memcmp(const void *s1, const void *s2, uint n) return 0; } -void * -memcpy(void *dst, const void *src, uint n) -{ +void *memcpy(void *dst, const void *src, uint n) { return memmove(dst, src, n); } diff --git a/user/user.h b/user/user.h index 4d398d5..f16a610 100644 --- a/user/user.h +++ b/user/user.h @@ -1,41 +1,42 @@ +#include "kernel/types.h" struct stat; // system calls int fork(void); int exit(int) __attribute__((noreturn)); -int wait(int*); -int pipe(int*); -int write(int, const void*, int); -int read(int, void*, int); +int wait(int *); +int pipe(int *); +int write(int, const void *, int); +int read(int, void *, int); int close(int); int kill(int); -int exec(const char*, char**); -int open(const char*, int); -int mknod(const char*, short, short); -int unlink(const char*); -int fstat(int fd, struct stat*); -int link(const char*, const char*); -int mkdir(const char*); -int chdir(const char*); +int exec(const char *, char **); +int open(const char *, int); +int mknod(const char *, short, short); +int unlink(const char *); +int fstat(int fd, struct stat *); +int link(const char *, const char *); +int mkdir(const char *); +int chdir(const char *); int dup(int); int getpid(void); -char* sbrk(int); +char *sbrk(int); int sleep(int); int uptime(void); // ulib.c -int stat(const char*, struct stat*); -char* strcpy(char*, const char*); -void *memmove(void*, const void*, int); -char* strchr(const char*, char c); -int strcmp(const char*, const char*); -void fprintf(int, const char*, ...); -void printf(const char*, ...); -char* gets(char*, int max); -uint strlen(const char*); -void* memset(void*, int, uint); -void* malloc(uint); -void free(void*); -int atoi(const char*); +int stat(const char *, struct stat *); +char *strcpy(char *, const char *); +void *memmove(void *, const void *, int); +char *strchr(const char *, char c); +int strcmp(const char *, const char *); +void fprintf(int, const char *, ...); +void printf(const char *, ...); +char *gets(char *, int max); +uint strlen(const char *); +void *memset(void *, int, uint); +void *malloc(uint); +void free(void *); +int atoi(const char *); int memcmp(const void *, const void *, uint); void *memcpy(void *, const void *, uint);