Add sys_hello and testbin/hellotest

`sys_hello` is a new syscall that just prints some text in the terminal.

`testbin/hellotest` is a userland binary that just calls `sys_hello`
This commit is contained in:
2024-09-10 13:08:41 -04:00
parent 4db0a014cd
commit c67c34e0ea
9 changed files with 36 additions and 1 deletions

View File

@@ -104,6 +104,9 @@ void syscall(struct trapframe *tf) {
case SYS___time:
err = sys___time((userptr_t)tf->tf_a0, (userptr_t)tf->tf_a1);
break;
case SYS_hello:
err = sys_hello();
break;
case SYS__exit:
err = 0;

View File

@@ -379,6 +379,7 @@ file vfs/devnull.c
file syscall/loadelf.c
file syscall/runprogram.c
file syscall/time_syscalls.c
file syscall/hello.c
#
# Startup and initialization

View File

@@ -94,6 +94,7 @@
// #define SYS_getpriority 38
// #define SYS_setpriority 39
// (process groups, sessions, and job control)
#define SYS_hello 41
// #define SYS_getpgid 40
// #define SYS_setpgid 41
// #define SYS_getsid 42

View File

@@ -57,4 +57,6 @@ __DEAD void enter_new_process(int argc, userptr_t argv, userptr_t env,
int sys_reboot(int code);
int sys___time(userptr_t user_seconds, userptr_t user_nanoseconds);
int sys_hello(void);
#endif /* _SYSCALL_H_ */

7
kern/syscall/hello.c Normal file
View File

@@ -0,0 +1,7 @@
#include <types.h>
#include <lib.h>
#include <syscall.h>
int sys_hello(void) {
kprintf("Hello CSE4001!\n");
return 0;
}