Compare commits

...

1 Commits

Author SHA1 Message Date
c67c34e0ea
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`
2024-09-12 13:08:44 -04:00
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;
}

View File

@ -156,4 +156,6 @@ int execvp(const char *prog, char *const *args); /* calls execv */
char *getcwd(char *buf, size_t buflen); /* calls __getcwd */
time_t time(time_t *seconds); /* calls __time */
int hello(void);
#endif /* _UNISTD_H_ */

View File

@ -7,7 +7,7 @@ TOP=../..
SUBDIRS=add argtest badcall bigexec bigfile bigfork bigseek bloat conman \
crash ctest dirconc dirseek dirtest f_test factorial farm faulter \
filetest forkbomb forktest frack hash hog huge \
filetest forkbomb forktest frack hash hellotest hog huge \
malloctest matmult multiexec palin parallelvm poisondisk psort \
randcall redirect rmdirtest rmtest \
sbrktest schedpong sort sparsefile tail tictac triplehuge \

View File

@ -0,0 +1,11 @@
# Makefile for hello
TOP=../../..
.include "$(TOP)/mk/os161.config.mk"
PROG=hellotest
SRCS=hello.c
BINDIR=/testbin
.include "$(TOP)/mk/os161.prog.mk"

View File

@ -0,0 +1,8 @@
#include <unistd.h>
extern int hello(void);
int main() {
hello();
return 0;
}