Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xv6-public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
OS Lab Group
奖励实验
xv6-public
提交
56e43c9b
提交
56e43c9b
4月 06, 2012
创建
作者:
Austin Clements
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make kernel and user syscall signatures match for sysfile
Except for the pointer argument to sys_exec, which is an opaque uptr in the kernel.
上级
e42b00c6
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
55 行增加
和
55 行删除
+55
-55
kern_c.h
include/kern_c.h
+19
-18
unet.h
include/unet.h
+2
-2
user.h
include/user.h
+3
-3
net.cc
kernel/net.cc
+7
-8
sysfile.cc
kernel/sysfile.cc
+24
-24
没有找到文件。
include/kern_c.h
浏览文件 @
56e43c9b
...
...
@@ -18,36 +18,37 @@ extern struct segdesc bootgdt[NSEGS];
// syscalls
struct
stat
;
struct
sockaddr
;
long
sys_chdir
(
const
char
*
);
long
sys_close
(
int
);
long
sys_dup
(
int
);
long
sys_exec
(
const
char
*
,
u64
);
int
sys_chdir
(
const
char
*
);
int
sys_close
(
int
);
int
sys_dup
(
int
);
int
sys_exec
(
const
char
*
,
u64
);
int
sys_exit
(
void
)
__attribute__
((
noreturn
));
int
sys_fork
(
int
);
long
sys_fstat
(
int
,
struct
stat
*
);
int
sys_fstat
(
int
,
struct
stat
*
);
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
*
,
in
t
);
int
sys_link
(
const
char
*
,
const
char
*
);
int
sys_mkdirat
(
int
,
const
char
*
);
int
sys_mknod
(
const
char
*
,
int
,
int
);
int
sys_openat
(
int
,
const
char
*
,
int
);
int
sys_pipe
(
int
*
);
ssize_t
sys_read
(
int
,
void
*
,
size_
t
);
char
*
sys_sbrk
(
int
);
int
sys_nsleep
(
u64
);
long
sys_unlink
(
const
char
*
);
int
sys_unlink
(
const
char
*
);
int
sys_wait
(
void
);
long
sys_write
(
int
,
const
void
*
,
in
t
);
ssize_t
sys_write
(
int
,
const
void
*
,
size_
t
);
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
);
long
sys_accept
(
int
,
void
*
,
void
*
);
long
sys_pread
(
int
fd
,
void
*
ubuf
,
size_t
count
,
off_t
offset
);
int
sys_socket
(
int
,
int
,
int
);
int
sys_bind
(
int
xsock
,
const
struct
sockaddr
*
xaddr
,
int
xaddrlen
);
int
sys_listen
(
int
,
int
);
int
sys_accept
(
int
,
struct
sockaddr
*
,
int
*
);
ssize_t
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
);
int
sys_setfs
(
u64
base
);
...
...
include/unet.h
浏览文件 @
56e43c9b
...
...
@@ -5,9 +5,9 @@ extern "C" {
// system calls
extern
int
socket
(
int
domain
,
int
type
,
int
protocol
);
extern
int
bind
(
int
sockfd
,
const
struct
sockaddr
*
addr
,
socklen_
t
addrlen
);
in
t
addrlen
);
extern
int
listen
(
int
sockfd
,
int
backlog
);
extern
int
accept
(
int
sockfd
,
struct
sockaddr
*
addr
,
socklen_
t
*
addrlen
);
extern
int
accept
(
int
sockfd
,
struct
sockaddr
*
addr
,
in
t
*
addrlen
);
}
static
inline
const
char
*
...
...
include/user.h
浏览文件 @
56e43c9b
...
...
@@ -9,13 +9,13 @@ int fork(int);
int
exit
(
void
)
__attribute__
((
noreturn
));
int
wait
(
void
);
int
pipe
(
int
*
);
int
write
(
int
,
const
void
*
,
in
t
);
int
read
(
int
,
void
*
,
in
t
);
ssize_t
write
(
int
,
const
void
*
,
size_
t
);
ssize_t
read
(
int
,
void
*
,
size_
t
);
int
close
(
int
);
int
kill
(
int
);
int
exec
(
const
char
*
,
const
char
**
);
int
openat
(
int
dirfd
,
const
char
*
pathname
,
int
omode
);
int
mknod
(
const
char
*
,
short
,
shor
t
);
int
mknod
(
const
char
*
,
int
,
in
t
);
int
unlink
(
const
char
*
);
int
fstat
(
int
fd
,
struct
stat
*
);
int
link
(
const
char
*
,
const
char
*
);
...
...
kernel/net.cc
浏览文件 @
56e43c9b
...
...
@@ -273,9 +273,9 @@ netsocket(int domain, int type, int protocol)
}
long
netbind
(
int
sock
,
void
*
xaddr
,
int
xaddrlen
)
netbind
(
int
sock
,
const
sockaddr
*
xaddr
,
int
xaddrlen
)
{
void
*
addr
;
const
sockaddr
*
addr
;
long
r
;
addr
=
kmalloc
(
xaddrlen
,
"sockaddr"
);
...
...
@@ -286,7 +286,7 @@ netbind(int sock, void *xaddr, int xaddrlen)
return
-
1
;
lwip_core_lock
();
r
=
lwip_bind
(
sock
,
(
const
sockaddr
*
)
addr
,
xaddrlen
);
r
=
lwip_bind
(
sock
,
addr
,
xaddrlen
);
lwip_core_unlock
();
kmfree
(
addr
,
xaddrlen
);
return
r
;
...
...
@@ -304,14 +304,13 @@ netlisten(int sock, int backlog)
}
long
netaccept
(
int
sock
,
void
*
xaddr
,
void
*
xaddrlen
)
netaccept
(
int
sock
,
struct
sockaddr
*
xaddr
,
int
*
xaddrlen
)
{
socklen_t
*
lenptr
=
(
socklen_t
*
)
xaddrlen
;
socklen_t
len
;
void
*
addr
;
int
ss
;
if
(
fetchmem
(
&
len
,
lenptr
,
sizeof
(
*
lenptr
)))
if
(
fetchmem
(
&
len
,
xaddrlen
,
sizeof
(
*
xaddrlen
)))
return
-
1
;
addr
=
kmalloc
(
len
,
"sockaddr"
);
...
...
@@ -413,7 +412,7 @@ netsocket(int domain, int type, int protocol)
}
long
netbind
(
int
sock
,
void
*
xaddr
,
int
xaddrlen
)
netbind
(
int
sock
,
const
struct
sockaddr
*
xaddr
,
int
xaddrlen
)
{
return
-
1
;
}
...
...
@@ -425,7 +424,7 @@ netlisten(int sock, int backlog)
}
long
netaccept
(
int
sock
,
void
*
xaddr
,
void
*
xaddrlen
)
netaccept
(
int
sock
,
struct
sockaddr
*
xaddr
,
int
*
xaddrlen
)
{
return
-
1
;
}
...
...
kernel/sysfile.cc
浏览文件 @
56e43c9b
...
...
@@ -28,7 +28,7 @@ fdalloc(file *f)
return
myproc
()
->
ftable
->
allocfd
(
f
);
}
long
int
sys_dup
(
int
ofd
)
{
sref
<
file
>
f
;
...
...
@@ -44,14 +44,14 @@ sys_dup(int ofd)
return
fd
;
}
s
64
sys_read
(
int
fd
,
char
*
p
,
in
t
n
)
s
size_t
sys_read
(
int
fd
,
void
*
p
,
size_
t
n
)
{
sref
<
file
>
f
;
if
(
!
getfile
(
fd
,
&
f
)
||
argcheckptr
(
p
,
n
)
<
0
)
return
-
1
;
return
f
->
read
(
p
,
n
);
return
f
->
read
(
static_cast
<
char
*>
(
p
)
,
n
);
}
ssize_t
...
...
@@ -70,8 +70,8 @@ sys_pread(int fd, void *ubuf, size_t count, off_t offset)
return
f
->
pread
((
char
*
)
ubuf
,
count
,
offset
);
}
long
sys_write
(
int
fd
,
const
void
*
p
,
in
t
n
)
ssize_t
sys_write
(
int
fd
,
const
void
*
p
,
size_
t
n
)
{
sref
<
file
>
f
;
...
...
@@ -80,7 +80,7 @@ sys_write(int fd, const void *p, int n)
return
f
->
write
(
static_cast
<
const
char
*>
(
p
),
n
);
}
long
int
sys_close
(
int
fd
)
{
sref
<
file
>
f
;
...
...
@@ -91,7 +91,7 @@ sys_close(int fd)
return
0
;
}
long
int
sys_fstat
(
int
fd
,
struct
stat
*
st
)
{
sref
<
file
>
f
;
...
...
@@ -102,7 +102,7 @@ sys_fstat(int fd, struct stat *st)
}
// Create the path new as a link to the same inode as old.
long
int
sys_link
(
const
char
*
old
,
const
char
*
newn
)
{
char
name
[
DIRSIZ
];
...
...
@@ -155,7 +155,7 @@ isdirempty(struct inode *dp)
return
empty
;
}
long
int
sys_unlink
(
const
char
*
path
)
{
struct
inode
*
ip
,
*
dp
;
...
...
@@ -266,7 +266,7 @@ create(inode *cwd, const char *path, short type, short major, short minor)
return
ip
;
}
long
int
sys_openat
(
int
dirfd
,
const
char
*
path
,
int
omode
)
{
int
fd
;
...
...
@@ -363,7 +363,7 @@ sys_openat(int dirfd, const char *path, int omode)
return
fd
;
}
long
int
sys_mkdirat
(
int
dirfd
,
const
char
*
path
)
{
struct
inode
*
cwd
;
...
...
@@ -388,7 +388,7 @@ sys_mkdirat(int dirfd, const char *path)
return
0
;
}
long
int
sys_mknod
(
const
char
*
path
,
int
major
,
int
minor
)
{
struct
inode
*
ip
;
...
...
@@ -401,7 +401,7 @@ sys_mknod(const char *path, int major, int minor)
return
0
;
}
long
int
sys_chdir
(
const
char
*
path
)
{
struct
inode
*
ip
;
...
...
@@ -419,7 +419,7 @@ sys_chdir(const char *path)
return
0
;
}
long
int
sys_exec
(
const
char
*
upath
,
u64
uargv
)
{
ANON_REGION
(
__func__
,
&
perfgroup
);
...
...
@@ -456,7 +456,7 @@ clean:
return
r
;
}
long
int
sys_pipe
(
int
*
fd
)
{
struct
file
*
rf
,
*
wf
;
...
...
@@ -522,7 +522,7 @@ allocsocket(struct file **rf, int *rfd)
return
0
;
}
long
int
sys_socket
(
int
domain
,
int
type
,
int
protocol
)
{
extern
long
netsocket
(
int
domain
,
int
type
,
int
protocol
);
...
...
@@ -543,10 +543,10 @@ sys_socket(int domain, int type, int protocol)
return
fd
;
}
long
sys_bind
(
int
xsock
,
void
*
xaddr
,
int
xaddrlen
)
int
sys_bind
(
int
xsock
,
const
struct
sockaddr
*
xaddr
,
int
xaddrlen
)
{
extern
long
netbind
(
int
,
void
*
,
int
);
extern
long
netbind
(
int
,
const
struct
sockaddr
*
,
int
);
sref
<
file
>
f
;
if
(
!
getsocket
(
xsock
,
&
f
))
...
...
@@ -555,7 +555,7 @@ sys_bind(int xsock, void *xaddr, int xaddrlen)
return
netbind
(
f
->
socket
,
xaddr
,
xaddrlen
);
}
long
int
sys_listen
(
int
xsock
,
int
backlog
)
{
extern
long
netlisten
(
int
,
int
);
...
...
@@ -567,10 +567,10 @@ sys_listen(int xsock, int backlog)
return
netlisten
(
f
->
socket
,
backlog
);
}
long
sys_accept
(
int
xsock
,
void
*
xaddr
,
void
*
xaddrlen
)
int
sys_accept
(
int
xsock
,
struct
sockaddr
*
xaddr
,
int
*
xaddrlen
)
{
extern
long
netaccept
(
int
,
void
*
,
void
*
);
extern
long
netaccept
(
int
,
struct
sockaddr
*
,
int
*
);
file
*
cf
;
sref
<
file
>
f
;
int
cfd
;
...
...
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论