diff --git a/kernel/buf.h b/kernel/buf.h index ad2274e..319f8e1 100644 --- a/kernel/buf.h +++ b/kernel/buf.h @@ -1,9 +1,3 @@ -#pragma once - -#include "types.h" -#include "sleeplock.h" -#include "fs.h" - struct buf { int valid; // has data been read from disk? int disk; // does disk "own" buf? diff --git a/kernel/defs.h b/kernel/defs.h index a89c445..b7e0db8 100644 --- a/kernel/defs.h +++ b/kernel/defs.h @@ -1,8 +1,3 @@ -#pragma once - -#include "riscv.h" -#include "types.h" - struct buf; struct context; struct file; diff --git a/kernel/elf.h b/kernel/elf.h index acaa17f..a779868 100644 --- a/kernel/elf.h +++ b/kernel/elf.h @@ -1,7 +1,3 @@ -#pragma once - -#include "types.h" - // Format of an ELF executable file #define ELF_MAGIC 0x464C457FU // "\x7FELF" in little endian diff --git a/kernel/fcntl.h b/kernel/fcntl.h index e19b010..1b57ebb 100644 --- a/kernel/fcntl.h +++ b/kernel/fcntl.h @@ -1,5 +1,3 @@ -#pragma once - #define O_RDONLY 0x000 #define O_WRONLY 0x001 #define O_RDWR 0x002 diff --git a/kernel/file.h b/kernel/file.h index d52bbe0..ddb6857 100644 --- a/kernel/file.h +++ b/kernel/file.h @@ -1,9 +1,3 @@ -#pragma once - -#include "types.h" -#include "sleeplock.h" -#include "fs.h" - struct file { enum { FD_NONE, FD_PIPE, FD_INODE, FD_DEVICE } type; int ref; // reference count diff --git a/kernel/fs.h b/kernel/fs.h index daea0d1..2a6d7bd 100644 --- a/kernel/fs.h +++ b/kernel/fs.h @@ -1,7 +1,3 @@ -#pragma once - -#include "types.h" - // On-disk file system format. // Both the kernel and user programs use this header file. diff --git a/kernel/memlayout.h b/kernel/memlayout.h index 57c3839..59ff719 100644 --- a/kernel/memlayout.h +++ b/kernel/memlayout.h @@ -1,5 +1,3 @@ -#pragma once - // Physical memory layout // qemu -machine virt is set up like this, diff --git a/kernel/param.h b/kernel/param.h index e2dc45a..25643ad 100644 --- a/kernel/param.h +++ b/kernel/param.h @@ -1,5 +1,3 @@ -#pragma once - #define NPROC 64 // maximum number of processes #define NCPU 8 // maximum number of CPUs #define NOFILE 16 // open files per process diff --git a/kernel/proc.h b/kernel/proc.h index d48fd3f..6aed367 100644 --- a/kernel/proc.h +++ b/kernel/proc.h @@ -1,10 +1,3 @@ -#pragma once - -#include "types.h" -#include "param.h" -#include "riscv.h" -#include "spinlock.h" - // Saved registers for kernel context switches. struct context { u64 ra; @@ -111,5 +104,4 @@ struct proc { struct file *ofile[NOFILE]; // Open files struct inode *cwd; // Current directory char name[16]; // Process name (debugging) - int mask; // Process mask }; diff --git a/kernel/riscv.h b/kernel/riscv.h index 8fbeadd..21c98cd 100644 --- a/kernel/riscv.h +++ b/kernel/riscv.h @@ -1,9 +1,5 @@ -#pragma once - #ifndef __ASSEMBLER__ -#include "types.h" - // which hart (core) is this? static inline u64 r_mhartid() diff --git a/kernel/sleeplock.h b/kernel/sleeplock.h index b1d0267..7958192 100644 --- a/kernel/sleeplock.h +++ b/kernel/sleeplock.h @@ -1,8 +1,3 @@ -#pragma once - -#include "types.h" -#include "spinlock.h" - // Long-term locks for processes struct sleeplock { u32 locked; // Is the lock held? diff --git a/kernel/spinlock.h b/kernel/spinlock.h index dc21dd7..ad6f660 100644 --- a/kernel/spinlock.h +++ b/kernel/spinlock.h @@ -1,7 +1,3 @@ -#pragma once - -#include "types.h" - // Mutual exclusion lock. struct spinlock { u32 locked; // Is the lock held? diff --git a/kernel/stat.h b/kernel/stat.h index 3b959f9..9bf0083 100644 --- a/kernel/stat.h +++ b/kernel/stat.h @@ -1,7 +1,3 @@ -#pragma once - -#include "types.h" - #define T_DIR 1 // Directory #define T_FILE 2 // File #define T_DEVICE 3 // Device diff --git a/kernel/syscall.c b/kernel/syscall.c index 075fb36..910b207 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -101,17 +101,16 @@ extern u64 sys_unlink(void); extern u64 sys_link(void); extern u64 sys_mkdir(void); extern u64 sys_close(void); -extern u64 sys_trace(void); // An array mapping syscall numbers from syscall.h // to the function that handles the system call. static u64 (*syscalls[])(void) = { - [SYS_fork] = sys_fork, [SYS_exit] = sys_exit, [SYS_wait] = sys_wait, [SYS_pipe] = sys_pipe, - [SYS_read] = sys_read, [SYS_kill] = sys_kill, [SYS_exec] = sys_exec, [SYS_fstat] = sys_fstat, - [SYS_chdir] = sys_chdir, [SYS_dup] = sys_dup, [SYS_getpid] = sys_getpid, [SYS_sbrk] = sys_sbrk, - [SYS_sleep] = sys_sleep, [SYS_uptime] = sys_uptime, [SYS_open] = sys_open, [SYS_write] = sys_write, - [SYS_mknod] = sys_mknod, [SYS_unlink] = sys_unlink, [SYS_link] = sys_link, [SYS_mkdir] = sys_mkdir, - [SYS_close] = sys_close, [SYS_trace] = sys_trace, + [SYS_fork] sys_fork, [SYS_exit] sys_exit, [SYS_wait] sys_wait, [SYS_pipe] sys_pipe, + [SYS_read] sys_read, [SYS_kill] sys_kill, [SYS_exec] sys_exec, [SYS_fstat] sys_fstat, + [SYS_chdir] sys_chdir, [SYS_dup] sys_dup, [SYS_getpid] sys_getpid, [SYS_sbrk] sys_sbrk, + [SYS_sleep] sys_sleep, [SYS_uptime] sys_uptime, [SYS_open] sys_open, [SYS_write] sys_write, + [SYS_mknod] sys_mknod, [SYS_unlink] sys_unlink, [SYS_link] sys_link, [SYS_mkdir] sys_mkdir, + [SYS_close] sys_close, }; void diff --git a/kernel/syscall.h b/kernel/syscall.h index dfc9645..a378a8a 100644 --- a/kernel/syscall.h +++ b/kernel/syscall.h @@ -1,5 +1,3 @@ -#pragma once - // System call numbers #define SYS_fork 1 #define SYS_exit 2 @@ -22,4 +20,3 @@ #define SYS_link 19 #define SYS_mkdir 20 #define SYS_close 21 -#define SYS_trace 22 diff --git a/kernel/sysproc.c b/kernel/sysproc.c index 5645c72..4274a9d 100644 --- a/kernel/sysproc.c +++ b/kernel/sysproc.c @@ -89,10 +89,3 @@ sys_uptime(void) release(&tickslock); return xticks; } - -u64 -sys_trace(void) -{ - /* TODO: Implement sys_trace */ - return 0; -} diff --git a/kernel/types.h b/kernel/types.h index 03410e3..6626c5e 100644 --- a/kernel/types.h +++ b/kernel/types.h @@ -1,5 +1,3 @@ -#pragma once - typedef unsigned char u8; typedef unsigned short u16; typedef unsigned int u32; diff --git a/kernel/virtio.h b/kernel/virtio.h index c888436..8916e8a 100644 --- a/kernel/virtio.h +++ b/kernel/virtio.h @@ -1,7 +1,4 @@ -#pragma once - -#include "types.h" - +// // virtio device definitions. // for both the mmio interface, and virtio descriptors. // only tested with qemu. diff --git a/user/user.h b/user/user.h index 8b3a1b6..a27f3f1 100644 --- a/user/user.h +++ b/user/user.h @@ -1,7 +1,3 @@ -#pragma once - -#include "../kernel/types.h" - struct stat; // system calls @@ -26,7 +22,6 @@ int getpid(void); char *sbrk(int); int sleep(int); int uptime(void); -int trace(int); // ulib.c int stat(const char *, struct stat *); diff --git a/user/usys.pl b/user/usys.pl index 9c97b05..01e426e 100755 --- a/user/usys.pl +++ b/user/usys.pl @@ -36,4 +36,3 @@ entry("getpid"); entry("sbrk"); entry("sleep"); entry("uptime"); -entry("trace");