summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-07-01 17:01:50 -0400
committerRobert Morris <[email protected]>2019-07-01 17:01:50 -0400
commit18e76a6c47b0f62b2458430d4357f3eb68bfd759 (patch)
tree24b532218d747883681e96b4d6d3e33964d83459 /kernel
parent9b99f007434ea3af0c4834a91f19952d5670e16b (diff)
downloadxv6-labs-18e76a6c47b0f62b2458430d4357f3eb68bfd759.tar.gz
xv6-labs-18e76a6c47b0f62b2458430d4357f3eb68bfd759.tar.bz2
xv6-labs-18e76a6c47b0f62b2458430d4357f3eb68bfd759.zip
sbrk() returns a pointer, so it should be 64 bits
Diffstat (limited to 'kernel')
-rw-r--r--kernel/syscall.c46
-rw-r--r--kernel/sysfile.c26
-rw-r--r--kernel/sysproc.c16
3 files changed, 44 insertions, 44 deletions
diff --git a/kernel/syscall.c b/kernel/syscall.c
index ca34f2c..ff10f9c 100644
--- a/kernel/syscall.c
+++ b/kernel/syscall.c
@@ -116,29 +116,29 @@ argstr(int n, char *buf, int max)
return fetchstr(addr, buf, max);
}
-extern int sys_chdir(void);
-extern int sys_close(void);
-extern int sys_dup(void);
-extern int sys_exec(void);
-extern int sys_exit(void);
-extern int sys_fork(void);
-extern int sys_fstat(void);
-extern int sys_getpid(void);
-extern int sys_kill(void);
-extern int sys_link(void);
-extern int sys_mkdir(void);
-extern int sys_mknod(void);
-extern int sys_open(void);
-extern int sys_pipe(void);
-extern int sys_read(void);
-extern int sys_sbrk(void);
-extern int sys_sleep(void);
-extern int sys_unlink(void);
-extern int sys_wait(void);
-extern int sys_write(void);
-extern int sys_uptime(void);
-
-static int (*syscalls[])(void) = {
+extern uint64 sys_chdir(void);
+extern uint64 sys_close(void);
+extern uint64 sys_dup(void);
+extern uint64 sys_exec(void);
+extern uint64 sys_exit(void);
+extern uint64 sys_fork(void);
+extern uint64 sys_fstat(void);
+extern uint64 sys_getpid(void);
+extern uint64 sys_kill(void);
+extern uint64 sys_link(void);
+extern uint64 sys_mkdir(void);
+extern uint64 sys_mknod(void);
+extern uint64 sys_open(void);
+extern uint64 sys_pipe(void);
+extern uint64 sys_read(void);
+extern uint64 sys_sbrk(void);
+extern uint64 sys_sleep(void);
+extern uint64 sys_unlink(void);
+extern uint64 sys_wait(void);
+extern uint64 sys_write(void);
+extern uint64 sys_uptime(void);
+
+static uint64 (*syscalls[])(void) = {
[SYS_fork] sys_fork,
[SYS_exit] sys_exit,
[SYS_wait] sys_wait,
diff --git a/kernel/sysfile.c b/kernel/sysfile.c
index 7788de3..77e273f 100644
--- a/kernel/sysfile.c
+++ b/kernel/sysfile.c
@@ -52,7 +52,7 @@ fdalloc(struct file *f)
return -1;
}
-int
+uint64
sys_dup(void)
{
struct file *f;
@@ -66,7 +66,7 @@ sys_dup(void)
return fd;
}
-int
+uint64
sys_read(void)
{
struct file *f;
@@ -78,7 +78,7 @@ sys_read(void)
return fileread(f, p, n);
}
-int
+uint64
sys_write(void)
{
struct file *f;
@@ -91,7 +91,7 @@ sys_write(void)
return filewrite(f, p, n);
}
-int
+uint64
sys_close(void)
{
int fd;
@@ -104,7 +104,7 @@ sys_close(void)
return 0;
}
-int
+uint64
sys_fstat(void)
{
struct file *f;
@@ -116,7 +116,7 @@ sys_fstat(void)
}
// Create the path new as a link to the same inode as old.
-int
+uint64
sys_link(void)
{
char name[DIRSIZ], new[MAXPATH], old[MAXPATH];
@@ -182,7 +182,7 @@ isdirempty(struct inode *dp)
}
//PAGEBREAK!
-int
+uint64
sys_unlink(void)
{
struct inode *ip, *dp;
@@ -284,7 +284,7 @@ create(char *path, short type, short major, short minor)
return ip;
}
-int
+uint64
sys_open(void)
{
char path[MAXPATH];
@@ -347,7 +347,7 @@ sys_open(void)
return fd;
}
-int
+uint64
sys_mkdir(void)
{
char path[MAXPATH];
@@ -363,7 +363,7 @@ sys_mkdir(void)
return 0;
}
-int
+uint64
sys_mknod(void)
{
struct inode *ip;
@@ -383,7 +383,7 @@ sys_mknod(void)
return 0;
}
-int
+uint64
sys_chdir(void)
{
char path[MAXPATH];
@@ -408,7 +408,7 @@ sys_chdir(void)
return 0;
}
-int
+uint64
sys_exec(void)
{
char path[MAXPATH], *argv[MAXARG];
@@ -446,7 +446,7 @@ sys_exec(void)
return ret;
}
-int
+uint64
sys_pipe(void)
{
uint64 fdarray; // user pointer to array of two integers
diff --git a/kernel/sysproc.c b/kernel/sysproc.c
index e57e045..93ea9bc 100644
--- a/kernel/sysproc.c
+++ b/kernel/sysproc.c
@@ -6,32 +6,32 @@
#include "memlayout.h"
#include "proc.h"
-int
+uint64
sys_exit(void)
{
exit();
return 0; // not reached
}
-int
+uint64
sys_getpid(void)
{
return myproc()->pid;
}
-int
+uint64
sys_fork(void)
{
return fork();
}
-int
+uint64
sys_wait(void)
{
return wait();
}
-int
+uint64
sys_sbrk(void)
{
int addr;
@@ -45,7 +45,7 @@ sys_sbrk(void)
return addr;
}
-int
+uint64
sys_sleep(void)
{
int n;
@@ -66,7 +66,7 @@ sys_sleep(void)
return 0;
}
-int
+uint64
sys_kill(void)
{
int pid;
@@ -78,7 +78,7 @@ sys_kill(void)
// return how many clock tick interrupts have occurred
// since start.
-int
+uint64
sys_uptime(void)
{
uint xticks;