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

Use userptr for the arguments to sys_{map,unmap,exec}

Previously these were type-less uptrs.
上级 70d922ff
...@@ -6,6 +6,7 @@ extern "C" { ...@@ -6,6 +6,7 @@ extern "C" {
#include "atomic.hh" #include "atomic.hh"
#include "memlayout.h" #include "memlayout.h"
#include "userptr.hh"
#include <stdarg.h> #include <stdarg.h>
#define KCSEG (2<<3) /* kernel code segment */ #define KCSEG (2<<3) /* kernel code segment */
...@@ -263,7 +264,7 @@ struct sockaddr; ...@@ -263,7 +264,7 @@ struct sockaddr;
int sys_chdir(const char*); int sys_chdir(const char*);
int sys_close(int); int sys_close(int);
int sys_dup(int); int sys_dup(int);
int sys_exec(const char*, u64); int sys_exec(const char*, userptr<userptr<const char> >);
int sys_exit(void) __attribute__((noreturn)); int sys_exit(void) __attribute__((noreturn));
int sys_fork(int); int sys_fork(int);
int sys_fstat(int, struct stat*); int sys_fstat(int, struct stat*);
...@@ -281,8 +282,8 @@ int sys_unlink(const char*); ...@@ -281,8 +282,8 @@ int sys_unlink(const char*);
int sys_wait(void); int sys_wait(void);
ssize_t sys_write(int, const void*, size_t); ssize_t sys_write(int, const void*, size_t);
u64 sys_uptime(void); u64 sys_uptime(void);
int sys_map(uptr, size_t); int sys_map(userptr<void>, size_t);
int sys_unmap(uptr, size_t); int sys_unmap(userptr<void>, size_t);
int sys_halt(void); int sys_halt(void);
int sys_socket(int, int, int); int sys_socket(int, int, int);
int sys_bind(int xsock, const struct sockaddr *xaddr, int xaddrlen); int sys_bind(int xsock, const struct sockaddr *xaddr, int xaddrlen);
......
...@@ -420,7 +420,7 @@ sys_chdir(const char *path) ...@@ -420,7 +420,7 @@ sys_chdir(const char *path)
} }
int int
sys_exec(const char *upath, u64 uargv) sys_exec(const char *upath, userptr<userptr<const char> > uargv)
{ {
ANON_REGION(__func__, &perfgroup); ANON_REGION(__func__, &perfgroup);
static const int len = 32; static const int len = 32;
......
...@@ -90,7 +90,7 @@ sys_uptime(void) ...@@ -90,7 +90,7 @@ sys_uptime(void)
} }
int int
sys_map(uptr addr, size_t len) sys_map(userptr<void> addr, size_t len)
{ {
ANON_REGION(__func__, &perfgroup); ANON_REGION(__func__, &perfgroup);
...@@ -115,7 +115,7 @@ sys_map(uptr addr, size_t len) ...@@ -115,7 +115,7 @@ sys_map(uptr addr, size_t len)
} }
int int
sys_unmap(uptr addr, size_t len) sys_unmap(userptr<void> addr, size_t len)
{ {
ANON_REGION(__func__, &perfgroup); ANON_REGION(__func__, &perfgroup);
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论