diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-01-04 14:12:24 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-01-04 14:12:24 +0800 |
| commit | a64d25c07b31d57f8706073e11cd774d0880d6dd (patch) | |
| tree | a4bbae6cff94fa69eea30db865267b211eb4c86b /include/kernel | |
| parent | 210025560c80b48af4875af199f183ad709e3bf0 (diff) | |
| parent | d3cf3f08d1343d6b265516d5a79ce2d197b59d26 (diff) | |
| download | lume-a64d25c07b31d57f8706073e11cd774d0880d6dd.tar.gz lume-a64d25c07b31d57f8706073e11cd774d0880d6dd.tar.xz | |
Merge pull request #5 from Richard-Qin-001/dev/file-system
feat(file-system): implement read and write FAT32 File System and basic shell
Diffstat (limited to 'include/kernel')
| -rw-r--r-- | include/kernel/proc.h | 2 | ||||
| -rw-r--r-- | include/kernel/proc_def.h | 1 | ||||
| -rw-r--r-- | include/kernel/sbi.h | 24 | ||||
| -rw-r--r-- | include/kernel/syscall.h | 49 | ||||
| -rw-r--r-- | include/kernel/timer.h | 5 |
5 files changed, 57 insertions, 24 deletions
diff --git a/include/kernel/proc.h b/include/kernel/proc.h index cbf2902..c740d53 100644 --- a/include/kernel/proc.h +++ b/include/kernel/proc.h @@ -19,6 +19,8 @@ namespace ProcManager void wakeup(void *chan); int growproc(int n); + + int kill(int pid); } void forkret(); diff --git a/include/kernel/proc_def.h b/include/kernel/proc_def.h index 5ce4c03..c671f8d 100644 --- a/include/kernel/proc_def.h +++ b/include/kernel/proc_def.h @@ -53,6 +53,7 @@ struct Proc struct Proc *parent; void *chan; int xstate; + int killed; Inode *cwd; struct file *ofile[NOFILE]; diff --git a/include/kernel/sbi.h b/include/kernel/sbi.h new file mode 100644 index 0000000..ec262ee --- /dev/null +++ b/include/kernel/sbi.h @@ -0,0 +1,24 @@ +#pragma once +#include "common/types.h" + +// SBI Extension IDs +#define SBI_EID_SRST 0x53525354 + +// SBI Function IDs for SRST +#define SBI_FID_SRST_RESET 0 + +// Reset Types +#define SBI_SRST_TYPE_SHUTDOWN 0 +#define SBI_SRST_TYPE_COLD_REBOOT 1 +#define SBI_SRST_TYPE_WARM_REBOOT 2 + +// Reset Reasons +#define SBI_SRST_REASON_NONE 0 +#define SBI_SRST_REASON_SYSTEM_FAILURE 1 + +namespace SBI +{ + void set_timer(uint64 stime_value); + void sbi_shutdown(); + void sbi_reboot(); +} // namespace SBI diff --git a/include/kernel/syscall.h b/include/kernel/syscall.h index c0c9082..348fd63 100644 --- a/include/kernel/syscall.h +++ b/include/kernel/syscall.h @@ -1,29 +1,30 @@ #pragma once -#define SYS_putc 1 -#define SYS_fork 2 -#define SYS_exit 3 -#define SYS_wait 4 -#define SYS_pipe 5 -#define SYS_read 6 -#define SYS_kill 7 -#define SYS_exec 8 -#define SYS_fstat 9 -#define SYS_chdir 10 -#define SYS_dup 11 -#define SYS_getpid 12 -#define SYS_sbrk 13 -#define SYS_sleep 14 -#define SYS_uptime 15 -#define SYS_open 16 -#define SYS_write 17 -#define SYS_mknod 18 -#define SYS_unlink 19 -#define SYS_link 20 -#define SYS_mkdir 21 -#define SYS_close 22 -#define SYS_disk_test 23 -#define SYS_lseek 24 +#define SYS_putc 1 +#define SYS_fork 2 +#define SYS_exit 3 +#define SYS_wait 4 +#define SYS_pipe 5 +#define SYS_read 6 +#define SYS_kill 7 +#define SYS_exec 8 +#define SYS_fstat 9 +#define SYS_chdir 10 +#define SYS_dup 11 +#define SYS_getpid 12 +#define SYS_sbrk 13 +#define SYS_sleep 14 +#define SYS_uptime 15 +#define SYS_open 16 +#define SYS_write 17 +#define SYS_mknod 18 +#define SYS_unlink 19 +#define SYS_link 20 +#define SYS_mkdir 21 +#define SYS_close 22 +#define SYS_disk_test 23 +#define SYS_lseek 24 +#define SYS_shutdown 25 #ifndef __ASSEMBLER__ void syscall(); diff --git a/include/kernel/timer.h b/include/kernel/timer.h index c35e874..193c47d 100644 --- a/include/kernel/timer.h +++ b/include/kernel/timer.h @@ -4,4 +4,9 @@ namespace Timer{ uint64 get_time(); void set_next_trigger(); void init(); + + void tick(); + uint64 get_ticks(); + Spinlock *get_lock(); + void *get_tick_chan(); }
\ No newline at end of file |
