summaryrefslogtreecommitdiff
path: root/include/kernel
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-01-04 14:12:24 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-01-04 14:12:24 +0800
commita64d25c07b31d57f8706073e11cd774d0880d6dd (patch)
treea4bbae6cff94fa69eea30db865267b211eb4c86b /include/kernel
parent210025560c80b48af4875af199f183ad709e3bf0 (diff)
parentd3cf3f08d1343d6b265516d5a79ce2d197b59d26 (diff)
downloadlume-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.h2
-rw-r--r--include/kernel/proc_def.h1
-rw-r--r--include/kernel/sbi.h24
-rw-r--r--include/kernel/syscall.h49
-rw-r--r--include/kernel/timer.h5
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