Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ UPROGS=\
$U/_bcachetest\
$U/_alloctest\
$U/_specialtest\
$U/_dhagatest\
# $U/_symlinktest\

fs.img: mkfs/mkfs README user/xargstest.sh $(UPROGS)
Expand Down
2 changes: 2 additions & 0 deletions kernel/syscall.c
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ extern uint64 sys_write(void);
extern uint64 sys_uptime(void);
extern uint64 sys_ntas(void);
extern uint64 sys_nfree(void);
extern uint64 sys_clone(void);

static uint64 (*syscalls[])(void) = {
[SYS_fork] sys_fork,
Expand All @@ -131,6 +132,7 @@ static uint64 (*syscalls[])(void) = {
[SYS_close] sys_close,
[SYS_ntas] sys_ntas,
[SYS_nfree] sys_nfree,
[SYS_clone] sys_clone
};

void
Expand Down
3 changes: 3 additions & 0 deletions kernel/syscall.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,6 @@
// System calls for labs
#define SYS_ntas 22
#define SYS_nfree 23

// DHAGA calls
#define SYS_clone 24
6 changes: 6 additions & 0 deletions kernel/sysproc.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,9 @@ sys_uptime(void)
release(&tickslock);
return xticks;
}

uint64
sys_clone(void)
{
return 0;
}
22 changes: 22 additions & 0 deletions user/dhagatest.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#include "kernel/types.h"
#include "kernel/stat.h"
#include "user/user.h"

void
dhagatest()
{
if(clone((void *)0,0)!=0)
{
printf("clone should return zero\n");
exit(1);
}

printf("all tests passing\n");
}

int
main(void)
{
dhagatest();
exit(0);
}
1 change: 1 addition & 0 deletions user/user.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ int crash(const char*, int);
int mount(char*, char *);
int umount(char*);
int nfree();
int clone(void*, int);

// ulib.c
int stat(const char*, struct stat*);
Expand Down
1 change: 1 addition & 0 deletions user/usys.pl
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@ sub entry {
entry("uptime");
entry("ntas");
entry("nfree");
entry("clone");