Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
03a2f3e4
T
Third Party Musl
项目概览
OpenHarmony
/
Third Party Musl
接近 2 年 前同步成功
通知
37
Star
125
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Musl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
03a2f3e4
编写于
2月 15, 2011
作者:
R
Rich Felker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cleanup socketcall syscall interface to ease porting to sane(r) archs
上级
cfe37314
变更
21
隐藏空白更改
内联
并排
Showing
21 changed file
with
45 addition
and
94 deletion
+45
-94
arch/i386/bits/ioctl.h
arch/i386/bits/ioctl.h
+7
-0
arch/i386/syscall.h
arch/i386/syscall.h
+21
-0
src/network/accept.c
src/network/accept.c
+1
-3
src/network/bind.c
src/network/bind.c
+1
-3
src/network/connect.c
src/network/connect.c
+1
-3
src/network/getpeername.c
src/network/getpeername.c
+1
-3
src/network/getsockname.c
src/network/getsockname.c
+1
-3
src/network/getsockopt.c
src/network/getsockopt.c
+1
-7
src/network/listen.c
src/network/listen.c
+1
-3
src/network/recv.c
src/network/recv.c
+1
-7
src/network/recvfrom.c
src/network/recvfrom.c
+1
-6
src/network/recvmsg.c
src/network/recvmsg.c
+1
-3
src/network/send.c
src/network/send.c
+1
-7
src/network/sendmsg.c
src/network/sendmsg.c
+1
-3
src/network/sendto.c
src/network/sendto.c
+1
-6
src/network/setsockopt.c
src/network/setsockopt.c
+1
-3
src/network/shutdown.c
src/network/shutdown.c
+1
-3
src/network/sockatmark.c
src/network/sockatmark.c
+0
-1
src/network/socket.c
src/network/socket.c
+1
-3
src/network/socketcall.h
src/network/socketcall.h
+0
-24
src/network/socketpair.c
src/network/socketpair.c
+1
-3
未找到文件。
arch/i386/bits/ioctl.h
浏览文件 @
03a2f3e4
...
...
@@ -127,6 +127,13 @@ struct winsize {
#define N_SYNC_PPP 14
#define N_HCI 15
#define FIOSETOWN 0x8901
#define SIOCSPGRP 0x8902
#define FIOGETOWN 0x8903
#define SIOCGPGRP 0x8904
#define SIOCATMARK 0x8905
#define SIOCGSTAMP 0x8906
#define SIOCADDRT 0x890B
#define SIOCDELRT 0x890C
#define SIOCRTMSG 0x890D
...
...
arch/i386/syscall.h
浏览文件 @
03a2f3e4
...
...
@@ -501,6 +501,27 @@ static inline long syscall6(long n, long a1, long a2, long a3, long a4, long a5,
#define __NR_pread __NR_pread64
#define __NR_pwrite __NR_pwrite64
#define __SC_socket 1
#define __SC_bind 2
#define __SC_connect 3
#define __SC_listen 4
#define __SC_accept 5
#define __SC_getsockname 6
#define __SC_getpeername 7
#define __SC_socketpair 8
#define __SC_send 9
#define __SC_recv 10
#define __SC_sendto 11
#define __SC_recvfrom 12
#define __SC_shutdown 13
#define __SC_setsockopt 14
#define __SC_getsockopt 15
#define __SC_sendmsg 16
#define __SC_recvmsg 17
#define socketcall(nm, a, b, c, d, e, f) syscall2(__NR_socketcall, __SC_##nm, \
(long)(long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f })
#undef O_LARGEFILE
...
...
src/network/accept.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
#include "libc.h"
int
accept
(
int
fd
,
struct
sockaddr
*
addr
,
socklen_t
*
len
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
addr
,
(
unsigned
long
)
len
};
int
ret
;
CANCELPT_BEGIN
;
ret
=
s
yscall2
(
__NR_socketcall
,
SYS_ACCEPT
,
(
long
)
args
);
ret
=
s
ocketcall
(
accept
,
fd
,
addr
,
len
,
0
,
0
,
0
);
CANCELPT_END
;
return
ret
;
}
src/network/bind.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
int
bind
(
int
fd
,
const
struct
sockaddr
*
addr
,
socklen_t
len
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
addr
,
len
};
return
syscall2
(
__NR_socketcall
,
SYS_BIND
,
(
long
)
args
);
return
socketcall
(
bind
,
fd
,
addr
,
len
,
0
,
0
,
0
);
}
src/network/connect.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
#include "libc.h"
int
connect
(
int
fd
,
const
struct
sockaddr
*
addr
,
socklen_t
len
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
addr
,
len
};
int
ret
;
CANCELPT_BEGIN
;
ret
=
s
yscall2
(
__NR_socketcall
,
SYS_CONNECT
,
(
long
)
args
);
ret
=
s
ocketcall
(
connect
,
fd
,
addr
,
len
,
0
,
0
,
0
);
CANCELPT_END
;
return
ret
;
}
src/network/getpeername.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
int
getpeername
(
int
fd
,
struct
sockaddr
*
addr
,
socklen_t
*
len
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
addr
,
(
unsigned
long
)
len
};
return
syscall2
(
__NR_socketcall
,
SYS_GETPEERNAME
,
(
long
)
args
);
return
socketcall
(
getpeername
,
fd
,
addr
,
len
,
0
,
0
,
0
);
}
src/network/getsockname.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
int
getsockname
(
int
fd
,
struct
sockaddr
*
addr
,
socklen_t
*
len
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
addr
,
(
unsigned
long
)
len
};
return
syscall2
(
__NR_socketcall
,
SYS_GETSOCKNAME
,
(
long
)
args
);
return
socketcall
(
getsockname
,
fd
,
addr
,
len
,
0
,
0
,
0
);
}
src/network/getsockopt.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
int
getsockopt
(
int
fd
,
int
level
,
int
optname
,
void
*
optval
,
socklen_t
*
optlen
)
{
unsigned
long
args
[]
=
{
fd
,
level
,
optname
,
(
unsigned
long
)
optval
,
(
unsigned
long
)
optlen
};
return
syscall2
(
__NR_socketcall
,
SYS_GETSOCKOPT
,
(
long
)
args
);
return
socketcall
(
getsockopt
,
fd
,
level
,
optname
,
optval
,
optlen
,
0
);
}
src/network/listen.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
int
listen
(
int
fd
,
int
backlog
)
{
unsigned
long
args
[]
=
{
fd
,
backlog
};
return
syscall2
(
__NR_socketcall
,
SYS_LISTEN
,
(
long
)
args
);
return
socketcall
(
listen
,
fd
,
backlog
,
0
,
0
,
0
,
0
);
}
src/network/recv.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
#include "libc.h"
ssize_t
recv
(
int
fd
,
void
*
buf
,
size_t
len
,
int
flags
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
buf
,
len
,
flags
};
ssize_t
r
;
CANCELPT_BEGIN
;
r
=
syscall2
(
__NR_socketcall
,
SYS_RECV
,
(
long
)
args
);
CANCELPT_END
;
return
r
;
return
recvfrom
(
fd
,
buf
,
len
,
flags
,
0
,
0
);
}
src/network/recvfrom.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
#include "libc.h"
ssize_t
recvfrom
(
int
fd
,
void
*
buf
,
size_t
len
,
int
flags
,
struct
sockaddr
*
addr
,
socklen_t
*
alen
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
buf
,
len
,
flags
,
(
unsigned
long
)
addr
,
(
unsigned
long
)
alen
};
ssize_t
r
;
CANCELPT_BEGIN
;
r
=
s
yscall2
(
__NR_socketcall
,
SYS_RECVFROM
,
(
long
)
args
);
r
=
s
ocketcall
(
recvfrom
,
fd
,
buf
,
len
,
flags
,
addr
,
alen
);
CANCELPT_END
;
return
r
;
}
src/network/recvmsg.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
#include "libc.h"
ssize_t
recvmsg
(
int
fd
,
struct
msghdr
*
msg
,
int
flags
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
msg
,
flags
};
ssize_t
r
;
CANCELPT_BEGIN
;
r
=
s
yscall2
(
__NR_socketcall
,
SYS_RECVMSG
,
(
long
)
args
);
r
=
s
ocketcall
(
recvmsg
,
fd
,
msg
,
flags
,
0
,
0
,
0
);
CANCELPT_END
;
return
r
;
}
src/network/send.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
#include "libc.h"
ssize_t
send
(
int
fd
,
const
void
*
buf
,
size_t
len
,
int
flags
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
buf
,
len
,
flags
};
ssize_t
r
;
CANCELPT_BEGIN
;
r
=
syscall2
(
__NR_socketcall
,
SYS_SEND
,
(
long
)
args
);
CANCELPT_END
;
return
r
;
return
sendto
(
fd
,
buf
,
len
,
flags
,
0
,
0
);
}
src/network/sendmsg.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
#include "libc.h"
ssize_t
sendmsg
(
int
fd
,
const
struct
msghdr
*
msg
,
int
flags
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
msg
,
flags
};
ssize_t
r
;
CANCELPT_BEGIN
;
r
=
s
yscall2
(
__NR_socketcall
,
SYS_SENDMSG
,
(
long
)
args
);
r
=
s
ocketcall
(
sendmsg
,
fd
,
msg
,
flags
,
0
,
0
,
0
);
CANCELPT_END
;
return
r
;
}
src/network/sendto.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
#include "libc.h"
ssize_t
sendto
(
int
fd
,
const
void
*
buf
,
size_t
len
,
int
flags
,
const
struct
sockaddr
*
addr
,
socklen_t
alen
)
{
unsigned
long
args
[]
=
{
fd
,
(
unsigned
long
)
buf
,
len
,
flags
,
(
unsigned
long
)
addr
,
alen
};
ssize_t
r
;
CANCELPT_BEGIN
;
r
=
s
yscall2
(
__NR_socketcall
,
SYS_SENDTO
,
(
long
)
args
);
r
=
s
ocketcall
(
sendto
,
fd
,
buf
,
len
,
flags
,
addr
,
alen
);
CANCELPT_END
;
return
r
;
}
src/network/setsockopt.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
int
setsockopt
(
int
fd
,
int
level
,
int
optname
,
const
void
*
optval
,
socklen_t
optlen
)
{
unsigned
long
args
[]
=
{
fd
,
level
,
optname
,
(
unsigned
long
)
optval
,
optlen
};
return
syscall2
(
__NR_socketcall
,
SYS_SETSOCKOPT
,
(
long
)
args
);
return
socketcall
(
setsockopt
,
fd
,
level
,
optname
,
optval
,
optlen
,
0
);
}
src/network/shutdown.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
int
shutdown
(
int
fd
,
int
how
)
{
unsigned
long
args
[]
=
{
fd
,
how
};
return
syscall2
(
__NR_socketcall
,
SYS_SHUTDOWN
,
(
long
)
args
);
return
socketcall
(
shutdown
,
fd
,
how
,
0
,
0
,
0
,
0
);
}
src/network/sockatmark.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include <sys/ioctl.h>
#include "socketcall.h"
int
sockatmark
(
int
s
)
{
...
...
src/network/socket.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
int
socket
(
int
domain
,
int
type
,
int
protocol
)
{
unsigned
long
args
[]
=
{
domain
,
type
,
protocol
};
return
syscall2
(
__NR_socketcall
,
SYS_SOCKET
,
(
long
)
args
);
return
socketcall
(
socket
,
domain
,
type
,
protocol
,
0
,
0
,
0
);
}
src/network/socketcall.h
已删除
100644 → 0
浏览文件 @
cfe37314
#define SYS_SOCKET 1
#define SYS_BIND 2
#define SYS_CONNECT 3
#define SYS_LISTEN 4
#define SYS_ACCEPT 5
#define SYS_GETSOCKNAME 6
#define SYS_GETPEERNAME 7
#define SYS_SOCKETPAIR 8
#define SYS_SEND 9
#define SYS_RECV 10
#define SYS_SENDTO 11
#define SYS_RECVFROM 12
#define SYS_SHUTDOWN 13
#define SYS_SETSOCKOPT 14
#define SYS_GETSOCKOPT 15
#define SYS_SENDMSG 16
#define SYS_RECVMSG 17
#define FIOSETOWN 0x8901
#define SIOCSPGRP 0x8902
#define FIOGETOWN 0x8903
#define SIOCGPGRP 0x8904
#define SIOCATMARK 0x8905
#define SIOCGSTAMP 0x8906
src/network/socketpair.c
浏览文件 @
03a2f3e4
#include <sys/socket.h>
#include "syscall.h"
#include "socketcall.h"
int
socketpair
(
int
domain
,
int
type
,
int
protocol
,
int
fd
[
2
])
{
unsigned
long
args
[]
=
{
domain
,
type
,
protocol
,
(
unsigned
long
)
fd
};
return
syscall2
(
__NR_socketcall
,
SYS_SOCKETPAIR
,
(
long
)
args
);
return
socketcall
(
socketpair
,
domain
,
type
,
protocol
,
fd
,
0
,
0
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录