Reset kernel code + userspace program
This commit is contained in:
parent
aacb2f8db2
commit
3247689ab2
7 changed files with 28 additions and 2 deletions
|
@ -103,6 +103,7 @@ extern u64 sys_mkdir(void);
|
|||
extern u64 sys_close(void);
|
||||
extern u64 sys_trace(void);
|
||||
extern u64 sys_halt(void);
|
||||
extern u64 sys_reset(void);
|
||||
|
||||
// An array mapping syscall numbers from syscall.h
|
||||
// to the function that handles the system call.
|
||||
|
@ -112,7 +113,7 @@ static u64 (*syscalls[])(void) = {
|
|||
[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_halt] = sys_halt,
|
||||
[SYS_close] = sys_close, [SYS_trace] = sys_trace, [SYS_halt] = sys_halt, [SYS_reset] = sys_reset,
|
||||
};
|
||||
|
||||
void
|
||||
|
|
|
@ -24,3 +24,4 @@
|
|||
#define SYS_close 21
|
||||
#define SYS_trace 22
|
||||
#define SYS_halt 23
|
||||
#define SYS_reset 24
|
||||
|
|
|
@ -101,5 +101,14 @@ void
|
|||
sys_halt(void)
|
||||
{
|
||||
(*(volatile u32 *)QEMU_POWER) = 0x5555;
|
||||
panic("sys_poweroff");
|
||||
panic("sys_halt");
|
||||
}
|
||||
|
||||
void
|
||||
sys_reset(void)
|
||||
{
|
||||
// TODO: Revisit and review
|
||||
// asm volatile("j _entry");
|
||||
(*(volatile u32 *)QEMU_POWER) = 0x3333;
|
||||
panic("sys_reset");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue