* commit '7b6440d1547d9845ba5572179cd9c32b088b1985': Add accept4() syscall
This commit is contained in:
commit
474663a398
@ -238,6 +238,7 @@ int bind(int, struct sockaddr*, int) arm,arm64,mips,mips64,x86_64
|
|||||||
int connect(int, struct sockaddr*, socklen_t) arm,arm64,mips,mips64,x86_64
|
int connect(int, struct sockaddr*, socklen_t) arm,arm64,mips,mips64,x86_64
|
||||||
int listen(int, int) arm,arm64,mips,mips64,x86_64
|
int listen(int, int) arm,arm64,mips,mips64,x86_64
|
||||||
int accept(int, struct sockaddr*, socklen_t*) arm,arm64,mips,mips64,x86_64
|
int accept(int, struct sockaddr*, socklen_t*) arm,arm64,mips,mips64,x86_64
|
||||||
|
int accept4(int, struct sockaddr*, socklen_t*, int) arm,arm64,mips,mips64,x86_64
|
||||||
int getsockname(int, struct sockaddr*, socklen_t*) arm,arm64,mips,mips64,x86_64
|
int getsockname(int, struct sockaddr*, socklen_t*) arm,arm64,mips,mips64,x86_64
|
||||||
int getpeername(int, struct sockaddr*, socklen_t*) arm,arm64,mips,mips64,x86_64
|
int getpeername(int, struct sockaddr*, socklen_t*) arm,arm64,mips,mips64,x86_64
|
||||||
int sendto(int, const void*, size_t, int, const struct sockaddr*, socklen_t) arm,arm64,mips,mips64,x86_64
|
int sendto(int, const void*, size_t, int, const struct sockaddr*, socklen_t) arm,arm64,mips,mips64,x86_64
|
||||||
@ -266,6 +267,7 @@ int setsockopt:socketcall:14(int, int, int, const void*, socklen_t) x
|
|||||||
int getsockopt:socketcall:15(int, int, int, void*, socklen_t*) x86
|
int getsockopt:socketcall:15(int, int, int, void*, socklen_t*) x86
|
||||||
int sendmsg:socketcall:16(int, const struct msghdr*, unsigned int) x86
|
int sendmsg:socketcall:16(int, const struct msghdr*, unsigned int) x86
|
||||||
int recvmsg:socketcall:17(int, struct msghdr*, unsigned int) x86
|
int recvmsg:socketcall:17(int, struct msghdr*, unsigned int) x86
|
||||||
|
int accept4:socketcall:18(int, struct sockaddr*, socklen_t*, int) x86
|
||||||
int recvmmsg:socketcall:19(int, struct mmsghdr*, unsigned int, int, const struct timespec*) x86
|
int recvmmsg:socketcall:19(int, struct mmsghdr*, unsigned int, int, const struct timespec*) x86
|
||||||
int sendmmsg:socketcall:20(int, struct mmsghdr*, unsigned int, int) x86
|
int sendmmsg:socketcall:20(int, struct mmsghdr*, unsigned int, int) x86
|
||||||
|
|
||||||
|
14
libc/arch-arm/syscalls/accept4.S
Normal file
14
libc/arch-arm/syscalls/accept4.S
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
/* Generated by gensyscalls.py. Do not edit. */
|
||||||
|
|
||||||
|
#include <private/bionic_asm.h>
|
||||||
|
|
||||||
|
ENTRY(accept4)
|
||||||
|
mov ip, r7
|
||||||
|
ldr r7, =__NR_accept4
|
||||||
|
swi #0
|
||||||
|
mov r7, ip
|
||||||
|
cmn r0, #(MAX_ERRNO + 1)
|
||||||
|
bxls lr
|
||||||
|
neg r0, r0
|
||||||
|
b __set_errno
|
||||||
|
END(accept4)
|
21
libc/arch-arm64/syscalls/accept4.S
Normal file
21
libc/arch-arm64/syscalls/accept4.S
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/* Generated by gensyscalls.py. Do not edit. */
|
||||||
|
|
||||||
|
#include <private/bionic_asm.h>
|
||||||
|
|
||||||
|
ENTRY(accept4)
|
||||||
|
stp x29, x30, [sp, #-16]!
|
||||||
|
mov x29, sp
|
||||||
|
str x8, [sp, #-16]!
|
||||||
|
|
||||||
|
mov x8, __NR_accept4
|
||||||
|
svc #0
|
||||||
|
|
||||||
|
ldr x8, [sp], #16
|
||||||
|
ldp x29, x30, [sp], #16
|
||||||
|
|
||||||
|
cmn x0, #(MAX_ERRNO + 1)
|
||||||
|
cneg x0, x0, hi
|
||||||
|
b.hi __set_errno
|
||||||
|
|
||||||
|
ret
|
||||||
|
END(accept4)
|
19
libc/arch-mips/syscalls/accept4.S
Normal file
19
libc/arch-mips/syscalls/accept4.S
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/* Generated by gensyscalls.py. Do not edit. */
|
||||||
|
|
||||||
|
#include <private/bionic_asm.h>
|
||||||
|
|
||||||
|
ENTRY(accept4)
|
||||||
|
.set noreorder
|
||||||
|
.cpload t9
|
||||||
|
li v0, __NR_accept4
|
||||||
|
syscall
|
||||||
|
bnez a3, 1f
|
||||||
|
move a0, v0
|
||||||
|
j ra
|
||||||
|
nop
|
||||||
|
1:
|
||||||
|
la t9,__set_errno
|
||||||
|
j t9
|
||||||
|
nop
|
||||||
|
.set reorder
|
||||||
|
END(accept4)
|
25
libc/arch-mips64/syscalls/accept4.S
Normal file
25
libc/arch-mips64/syscalls/accept4.S
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/* Generated by gensyscalls.py. Do not edit. */
|
||||||
|
|
||||||
|
#include <private/bionic_asm.h>
|
||||||
|
|
||||||
|
ENTRY(accept4)
|
||||||
|
.set push
|
||||||
|
.set noreorder
|
||||||
|
li v0, __NR_accept4
|
||||||
|
syscall
|
||||||
|
bnez a3, 1f
|
||||||
|
move a0, v0
|
||||||
|
j ra
|
||||||
|
nop
|
||||||
|
1:
|
||||||
|
move t0, ra
|
||||||
|
bal 2f
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
.cpsetup ra, t1, 2b
|
||||||
|
LA t9,__set_errno
|
||||||
|
.cpreturn
|
||||||
|
j t9
|
||||||
|
move ra, t0
|
||||||
|
.set pop
|
||||||
|
END(accept4)
|
27
libc/arch-x86/syscalls/accept4.S
Normal file
27
libc/arch-x86/syscalls/accept4.S
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/* Generated by gensyscalls.py. Do not edit. */
|
||||||
|
|
||||||
|
#include <private/bionic_asm.h>
|
||||||
|
|
||||||
|
ENTRY(accept4)
|
||||||
|
pushl %ebx
|
||||||
|
pushl %ecx
|
||||||
|
.cfi_def_cfa_offset 8
|
||||||
|
.cfi_rel_offset ebx, 0
|
||||||
|
.cfi_rel_offset ecx, 4
|
||||||
|
mov $18, %ebx
|
||||||
|
mov %esp, %ecx
|
||||||
|
addl $12, %ecx
|
||||||
|
movl $__NR_socketcall, %eax
|
||||||
|
int $0x80
|
||||||
|
cmpl $-MAX_ERRNO, %eax
|
||||||
|
jb 1f
|
||||||
|
negl %eax
|
||||||
|
pushl %eax
|
||||||
|
call __set_errno
|
||||||
|
addl $4, %esp
|
||||||
|
orl $-1, %eax
|
||||||
|
1:
|
||||||
|
popl %ecx
|
||||||
|
popl %ebx
|
||||||
|
ret
|
||||||
|
END(accept4)
|
17
libc/arch-x86_64/syscalls/accept4.S
Normal file
17
libc/arch-x86_64/syscalls/accept4.S
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
/* Generated by gensyscalls.py. Do not edit. */
|
||||||
|
|
||||||
|
#include <private/bionic_asm.h>
|
||||||
|
|
||||||
|
ENTRY(accept4)
|
||||||
|
movq %rcx, %r10
|
||||||
|
movl $__NR_accept4, %eax
|
||||||
|
syscall
|
||||||
|
cmpq $-MAX_ERRNO, %rax
|
||||||
|
jb 1f
|
||||||
|
negl %eax
|
||||||
|
movl %eax, %edi
|
||||||
|
call __set_errno
|
||||||
|
orq $-1, %rax
|
||||||
|
1:
|
||||||
|
ret
|
||||||
|
END(accept4)
|
@ -298,6 +298,7 @@ __socketcall int setsockopt(int, int, int, const void*, socklen_t);
|
|||||||
__socketcall int shutdown(int, int);
|
__socketcall int shutdown(int, int);
|
||||||
__socketcall int socket(int, int, int);
|
__socketcall int socket(int, int, int);
|
||||||
__socketcall int socketpair(int, int, int, int*);
|
__socketcall int socketpair(int, int, int, int*);
|
||||||
|
__socketcall int accept4(int, struct sockaddr*, socklen_t*, int);
|
||||||
|
|
||||||
extern ssize_t send(int, const void*, size_t, int);
|
extern ssize_t send(int, const void*, size_t, int);
|
||||||
extern ssize_t recv(int, void*, size_t, int);
|
extern ssize_t recv(int, void*, size_t, int);
|
||||||
|
@ -47,5 +47,6 @@
|
|||||||
#define SYS_GETSOCKOPT 15 /* sys_getsockopt(2) */
|
#define SYS_GETSOCKOPT 15 /* sys_getsockopt(2) */
|
||||||
#define SYS_SENDMSG 16 /* sys_sendmsg(2) */
|
#define SYS_SENDMSG 16 /* sys_sendmsg(2) */
|
||||||
#define SYS_RECVMSG 17 /* sys_recvmsg(2) */
|
#define SYS_RECVMSG 17 /* sys_recvmsg(2) */
|
||||||
|
#define SYS_ACCEPT4 18 /* sys_accept4(2) */
|
||||||
|
|
||||||
#endif /* _SYS_SOCKETCALLS_H_ */
|
#endif /* _SYS_SOCKETCALLS_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user