Add yield system call, for zombie test program (bad idea?).
This commit is contained in:
parent
1b789e1d50
commit
4bcd0f6a77
5 changed files with 16 additions and 1 deletions
|
@ -105,6 +105,7 @@ extern int sys_sbrk(void);
|
|||
extern int sys_unlink(void);
|
||||
extern int sys_wait(void);
|
||||
extern int sys_write(void);
|
||||
extern int sys_yield(void);
|
||||
|
||||
static int (*syscalls[])(void) = {
|
||||
[SYS_chdir] sys_chdir,
|
||||
|
@ -126,6 +127,7 @@ static int (*syscalls[])(void) = {
|
|||
[SYS_unlink] sys_unlink,
|
||||
[SYS_wait] sys_wait,
|
||||
[SYS_write] sys_write,
|
||||
[SYS_yield] sys_yield,
|
||||
};
|
||||
|
||||
void
|
||||
|
|
|
@ -18,3 +18,4 @@
|
|||
#define SYS_dup 17
|
||||
#define SYS_getpid 18
|
||||
#define SYS_sbrk 19
|
||||
#define SYS_yield 20
|
||||
|
|
|
@ -68,3 +68,10 @@ sys_sbrk(void)
|
|||
setupsegs(cp);
|
||||
return addr;
|
||||
}
|
||||
|
||||
int
|
||||
sys_yield(void)
|
||||
{
|
||||
yield();
|
||||
return 0;
|
||||
}
|
||||
|
|
1
usys.S
1
usys.S
|
@ -27,3 +27,4 @@ STUB(chdir)
|
|||
STUB(dup)
|
||||
STUB(getpid)
|
||||
STUB(sbrk)
|
||||
STUB(yield)
|
||||
|
|
6
zombie.c
6
zombie.c
|
@ -7,6 +7,10 @@
|
|||
int
|
||||
main(void)
|
||||
{
|
||||
fork();
|
||||
int i;
|
||||
|
||||
if(fork() > 0)
|
||||
for(i=0; i<10; i++)
|
||||
yield();
|
||||
exit();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue