From 3f3f6c526b2d8f47df7462df0c0071c391cc7b4d Mon Sep 17 00:00:00 2001 From: Greg Hackmann Date: Wed, 27 Jan 2016 17:13:51 -0800 Subject: [PATCH 1/2] Add adjtimex Change-Id: Ia92d35b1851e73c9f157a749dba1e98f68309a8d Signed-off-by: Greg Hackmann --- libc/SYSCALLS.TXT | 1 + libc/arch-arm/syscalls/adjtimex.S | 14 ++++++++++++++ libc/arch-arm64/syscalls/adjtimex.S | 14 ++++++++++++++ libc/arch-mips/syscalls/adjtimex.S | 19 +++++++++++++++++++ libc/arch-mips64/syscalls/adjtimex.S | 25 +++++++++++++++++++++++++ libc/arch-x86/syscalls/adjtimex.S | 21 +++++++++++++++++++++ libc/arch-x86_64/syscalls/adjtimex.S | 15 +++++++++++++++ libc/include/sys/timex.h | 7 +++++++ 8 files changed, 116 insertions(+) create mode 100644 libc/arch-arm/syscalls/adjtimex.S create mode 100644 libc/arch-arm64/syscalls/adjtimex.S create mode 100644 libc/arch-mips/syscalls/adjtimex.S create mode 100644 libc/arch-mips64/syscalls/adjtimex.S create mode 100644 libc/arch-x86/syscalls/adjtimex.S create mode 100644 libc/arch-x86_64/syscalls/adjtimex.S diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT index 526b6d090..e0450494e 100644 --- a/libc/SYSCALLS.TXT +++ b/libc/SYSCALLS.TXT @@ -223,6 +223,7 @@ int __timer_delete:timer_delete(__kernel_timer_t) int timerfd_create(clockid_t, int) all int timerfd_settime(int, int, const struct itimerspec*, struct itimerspec*) all int timerfd_gettime(int, struct itimerspec*) all +int adjtimex(struct timex*) all # signals int __sigaction:sigaction(int, const struct sigaction*, struct sigaction*) arm,mips,x86 diff --git a/libc/arch-arm/syscalls/adjtimex.S b/libc/arch-arm/syscalls/adjtimex.S new file mode 100644 index 000000000..614036e0f --- /dev/null +++ b/libc/arch-arm/syscalls/adjtimex.S @@ -0,0 +1,14 @@ +/* Generated by gensyscalls.py. Do not edit. */ + +#include + +ENTRY(adjtimex) + mov ip, r7 + ldr r7, =__NR_adjtimex + swi #0 + mov r7, ip + cmn r0, #(MAX_ERRNO + 1) + bxls lr + neg r0, r0 + b __set_errno_internal +END(adjtimex) diff --git a/libc/arch-arm64/syscalls/adjtimex.S b/libc/arch-arm64/syscalls/adjtimex.S new file mode 100644 index 000000000..712e46811 --- /dev/null +++ b/libc/arch-arm64/syscalls/adjtimex.S @@ -0,0 +1,14 @@ +/* Generated by gensyscalls.py. Do not edit. */ + +#include + +ENTRY(adjtimex) + mov x8, __NR_adjtimex + svc #0 + + cmn x0, #(MAX_ERRNO + 1) + cneg x0, x0, hi + b.hi __set_errno_internal + + ret +END(adjtimex) diff --git a/libc/arch-mips/syscalls/adjtimex.S b/libc/arch-mips/syscalls/adjtimex.S new file mode 100644 index 000000000..fef215f9c --- /dev/null +++ b/libc/arch-mips/syscalls/adjtimex.S @@ -0,0 +1,19 @@ +/* Generated by gensyscalls.py. Do not edit. */ + +#include + +ENTRY(adjtimex) + .set noreorder + .cpload t9 + li v0, __NR_adjtimex + syscall + bnez a3, 1f + move a0, v0 + j ra + nop +1: + la t9,__set_errno_internal + j t9 + nop + .set reorder +END(adjtimex) diff --git a/libc/arch-mips64/syscalls/adjtimex.S b/libc/arch-mips64/syscalls/adjtimex.S new file mode 100644 index 000000000..57b012cc6 --- /dev/null +++ b/libc/arch-mips64/syscalls/adjtimex.S @@ -0,0 +1,25 @@ +/* Generated by gensyscalls.py. Do not edit. */ + +#include + +ENTRY(adjtimex) + .set push + .set noreorder + li v0, __NR_adjtimex + 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_internal + .cpreturn + j t9 + move ra, t0 + .set pop +END(adjtimex) diff --git a/libc/arch-x86/syscalls/adjtimex.S b/libc/arch-x86/syscalls/adjtimex.S new file mode 100644 index 000000000..2a91f9002 --- /dev/null +++ b/libc/arch-x86/syscalls/adjtimex.S @@ -0,0 +1,21 @@ +/* Generated by gensyscalls.py. Do not edit. */ + +#include + +ENTRY(adjtimex) + pushl %ebx + .cfi_def_cfa_offset 8 + .cfi_rel_offset ebx, 0 + mov 8(%esp), %ebx + movl $__NR_adjtimex, %eax + int $0x80 + cmpl $-MAX_ERRNO, %eax + jb 1f + negl %eax + pushl %eax + call __set_errno_internal + addl $4, %esp +1: + popl %ebx + ret +END(adjtimex) diff --git a/libc/arch-x86_64/syscalls/adjtimex.S b/libc/arch-x86_64/syscalls/adjtimex.S new file mode 100644 index 000000000..292b9f36e --- /dev/null +++ b/libc/arch-x86_64/syscalls/adjtimex.S @@ -0,0 +1,15 @@ +/* Generated by gensyscalls.py. Do not edit. */ + +#include + +ENTRY(adjtimex) + movl $__NR_adjtimex, %eax + syscall + cmpq $-MAX_ERRNO, %rax + jb 1f + negl %eax + movl %eax, %edi + call __set_errno_internal +1: + ret +END(adjtimex) diff --git a/libc/include/sys/timex.h b/libc/include/sys/timex.h index 4096e7d57..6138ac499 100644 --- a/libc/include/sys/timex.h +++ b/libc/include/sys/timex.h @@ -29,6 +29,13 @@ #ifndef _SYS_TIMEX_H_ #define _SYS_TIMEX_H_ +#include #include +__BEGIN_DECLS + +extern int adjtimex(struct timex *buf); + +__END_DECLS + #endif /* _SYS_TIMEX_H_ */ From c7ca8f3a6332638021b9ae99e1ce15739350ee98 Mon Sep 17 00:00:00 2001 From: Greg Hackmann Date: Thu, 28 Jan 2016 11:07:26 -0800 Subject: [PATCH 2/2] socket.h: update AF_* constants Change-Id: I8ca219fa429ca8d8f872ed1db98275cd1a06f00b Signed-off-by: Greg Hackmann --- libc/include/sys/socket.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libc/include/sys/socket.h b/libc/include/sys/socket.h index c0720b836..c7e9acc38 100644 --- a/libc/include/sys/socket.h +++ b/libc/include/sys/socket.h @@ -164,7 +164,9 @@ struct ucred { #define AF_IEEE802154 36 #define AF_CAIF 37 #define AF_ALG 38 -#define AF_MAX 39 +#define AF_NFC 39 +#define AF_VSOCK 40 +#define AF_MAX 41 #define PF_UNSPEC AF_UNSPEC #define PF_UNIX AF_UNIX @@ -205,6 +207,8 @@ struct ucred { #define PF_IEEE802154 AF_IEEE802154 #define PF_CAIF AF_CAIF #define PF_ALG AF_ALG +#define PF_NFC AF_NFC +#define PF_VSOCK AF_VSOCK #define PF_MAX AF_MAX #define SOMAXCONN 128