提交 e42b00c6 创建 作者: Austin Clements's avatar Austin Clements

Make kernel and user syscall signatures match for sysproc

Except for the pointer arguments to sys_map and sys_unmap, which are opaque uptr's in the kernel.
上级 43a57743
......@@ -23,26 +23,26 @@ long sys_chdir(const char*);
long sys_close(int);
long sys_dup(int);
long sys_exec(const char*, u64);
long sys_exit(void);
long sys_fork(int);
int sys_exit(void) __attribute__((noreturn));
int sys_fork(int);
long sys_fstat(int, struct stat*);
long sys_getpid(void);
long sys_kill(int);
int sys_getpid(void);
int sys_kill(int);
long sys_link(const char*, const char*);
long sys_mkdirat(int, const char*);
long sys_mknod(const char*, int, int);
long sys_openat(int, const char*, int);
long sys_pipe(int*);
long sys_read(int, char*, int);
long sys_sbrk(int);
long sys_nsleep(u64);
char* sys_sbrk(int);
int sys_nsleep(u64);
long sys_unlink(const char*);
long sys_wait(void);
int sys_wait(void);
long sys_write(int, const void*, int);
long sys_uptime(void);
long sys_map(uptr, u64);
long sys_unmap(uptr, u64);
long sys_halt(void);
u64 sys_uptime(void);
int sys_map(uptr, size_t);
int sys_unmap(uptr, size_t);
int sys_halt(void);
long sys_socket(int, int, int);
long sys_bind(int, void*, int);
long sys_listen(int, int);
......@@ -50,9 +50,9 @@ long sys_accept(int, void*, void*);
long sys_pread(int fd, void *ubuf, size_t count, off_t offset);
long sys_async(int, size_t, off_t, u32, u32);
long sys_script(void *addr, u64 len, u64 chunk);
long sys_setfs(u64 base);
int sys_setfs(u64 base);
long sys_wqwait(void);
long sys_setaffinity(int cpu);
int sys_setaffinity(int cpu);
long sys_futex(const u64* addr, int op, u64 val, u64 timer);
extern long (*syscalls[])(u64, u64, u64, u64, u64);
......
......@@ -27,9 +27,9 @@ int getpid(void);
char* sbrk(int);
int nsleep(u64);
u64 uptime(void);
int map(void *addr, int len);
int unmap(void *addr, int len);
void halt(void);
int map(void *addr, size_t len);
int unmap(void *addr, size_t len);
int halt(void);
ssize_t pread(int, void*, size_t, off_t);
int async(int, size_t, off_t, u32, u32);
int script(void *addr, u64 len, u64 chunk);
......
......@@ -12,50 +12,50 @@
#include "kmtrace.hh"
#include "futex.h"
long
int
sys_fork(int flags)
{
ANON_REGION(__func__, &perfgroup);
return fork(flags);
}
long
int
sys_exit(void)
{
exit();
return 0; // not reached
panic("exit() returned");
}
long
int
sys_wait(void)
{
ANON_REGION(__func__, &perfgroup);
return wait();
}
long
int
sys_kill(int pid)
{
return proc::kill(pid);
}
long
int
sys_getpid(void)
{
return myproc()->pid;
}
long
char*
sys_sbrk(int n)
{
uptr addr;
if(myproc()->vmap->sbrk(n, &addr) < 0)
return -1;
return addr;
return (char*)-1;
return (char*)addr;
}
long
int
sys_nsleep(u64 nsec)
{
struct spinlock lock;
......@@ -83,14 +83,14 @@ sys_nsleep(u64 nsec)
// return how many clock tick interrupts have occurred
// since boot.
long
u64
sys_uptime(void)
{
return nsectime();
}
long
sys_map(uptr addr, u64 len)
int
sys_map(uptr addr, size_t len)
{
ANON_REGION(__func__, &perfgroup);
......@@ -114,8 +114,8 @@ sys_map(uptr addr, u64 len)
return r;
}
long
sys_unmap(uptr addr, u64 len)
int
sys_unmap(uptr addr, size_t len)
{
ANON_REGION(__func__, &perfgroup);
......@@ -134,7 +134,7 @@ sys_unmap(uptr addr, u64 len)
return 0;
}
long
int
sys_halt(void)
{
int i;
......@@ -145,7 +145,7 @@ sys_halt(void)
return 0;
}
long
int
sys_setfs(u64 base)
{
proc *p = myproc();
......@@ -154,7 +154,7 @@ sys_setfs(u64 base)
return 0;
}
long
int
sys_setaffinity(int cpu)
{
return myproc()->set_cpu_pin(cpu);
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论