Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'master' of git://gitorious.org/easyweb2/bionic into HEAD

  • Loading branch information...
commit 91ef874ee4e1304b4906b3d37b95aac1a3409b52 2 parents f0552df + 8758a1a
@cyanogen cyanogen authored
View
8 libc/SYSCALLS.TXT
@@ -225,7 +225,13 @@ int __syslog:syslog(int, char *, int) 103
int init_module(void *, unsigned long, const char *) 128
int delete_module(const char*, unsigned int) 129
int klogctl:syslog(int, char *, int) 103
-
+# easyweb2:
+# 09-08-15
+# o Add system calls needed by udev daemon
+#
+int readlinkat(int, const char *, char *, size_t) 305
+int signalfd(int, const sigset_t *, int) 321
+
# futex
int futex(void *, int, int, void *, void *, int) 240
View
2  libc/arch-arm/syscalls.mk
@@ -158,6 +158,8 @@ syscall_src += arch-arm/syscalls/__syslog.S
syscall_src += arch-arm/syscalls/init_module.S
syscall_src += arch-arm/syscalls/delete_module.S
syscall_src += arch-arm/syscalls/klogctl.S
+syscall_src += arch-arm/syscalls/readlinkat.S
+syscall_src += arch-arm/syscalls/signalfd.S
syscall_src += arch-arm/syscalls/futex.S
syscall_src += arch-arm/syscalls/epoll_create.S
syscall_src += arch-arm/syscalls/epoll_ctl.S
View
19 libc/arch-arm/syscalls/readlinkat.S
@@ -0,0 +1,19 @@
+/* autogenerated by gensyscalls.py */
+#include <sys/linux-syscalls.h>
+
+ .text
+ .type readlinkat, #function
+ .globl readlinkat
+ .align 4
+ .fnstart
+
+readlinkat:
+ .save {r4, r7}
+ stmfd sp!, {r4, r7}
+ ldr r7, =__NR_readlinkat
+ swi #0
+ ldmfd sp!, {r4, r7}
+ movs r0, r0
+ bxpl lr
+ b __set_syscall_errno
+ .fnend
View
19 libc/arch-arm/syscalls/signalfd.S
@@ -0,0 +1,19 @@
+/* autogenerated by gensyscalls.py */
+#include <sys/linux-syscalls.h>
+
+ .text
+ .type signalfd, #function
+ .globl signalfd
+ .align 4
+ .fnstart
+
+signalfd:
+ .save {r4, r7}
+ stmfd sp!, {r4, r7}
+ ldr r7, =__NR_signalfd
+ swi #0
+ ldmfd sp!, {r4, r7}
+ movs r0, r0
+ bxpl lr
+ b __set_syscall_errno
+ .fnend
View
2  libc/arch-x86/syscalls.mk
@@ -161,6 +161,8 @@ syscall_src += arch-x86/syscalls/__syslog.S
syscall_src += arch-x86/syscalls/init_module.S
syscall_src += arch-x86/syscalls/delete_module.S
syscall_src += arch-x86/syscalls/klogctl.S
+syscall_src += arch-x86/syscalls/readlinkat.S
+syscall_src += arch-x86/syscalls/signalfd.S
syscall_src += arch-x86/syscalls/futex.S
syscall_src += arch-x86/syscalls/epoll_create.S
syscall_src += arch-x86/syscalls/epoll_ctl.S
View
32 libc/arch-x86/syscalls/readlinkat.S
@@ -0,0 +1,32 @@
+/* autogenerated by gensyscalls.py */
+#include <sys/linux-syscalls.h>
+
+ .text
+ .type readlinkat, @function
+ .globl readlinkat
+ .align 4
+
+readlinkat:
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ pushl %esi
+ mov 20(%esp), %ebx
+ mov 24(%esp), %ecx
+ mov 28(%esp), %edx
+ mov 32(%esp), %esi
+ movl $__NR_readlinkat, %eax
+ int $0x80
+ cmpl $-129, %eax
+ jb 1f
+ negl %eax
+ pushl %eax
+ call __set_errno
+ addl $4, %esp
+ orl $-1, %eax
+1:
+ popl %esi
+ popl %edx
+ popl %ecx
+ popl %ebx
+ ret
View
29 libc/arch-x86/syscalls/signalfd.S
@@ -0,0 +1,29 @@
+/* autogenerated by gensyscalls.py */
+#include <sys/linux-syscalls.h>
+
+ .text
+ .type signalfd, @function
+ .globl signalfd
+ .align 4
+
+signalfd:
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ mov 16(%esp), %ebx
+ mov 20(%esp), %ecx
+ mov 24(%esp), %edx
+ movl $__NR_signalfd, %eax
+ int $0x80
+ cmpl $-129, %eax
+ jb 1f
+ negl %eax
+ pushl %eax
+ call __set_errno
+ addl $4, %esp
+ orl $-1, %eax
+1:
+ popl %edx
+ popl %ecx
+ popl %ebx
+ ret
View
2  libc/include/sys/linux-syscalls.h
@@ -126,6 +126,8 @@
#define __NR_init_module (__NR_SYSCALL_BASE + 128)
#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 305)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 321)
#define __NR_futex (__NR_SYSCALL_BASE + 240)
#define __NR_poll (__NR_SYSCALL_BASE + 168)
View
2  libc/include/sys/linux-unistd.h
@@ -187,6 +187,8 @@ int __syslog (int, char *, int);
int init_module (void *, unsigned long, const char *);
int delete_module (const char*, unsigned int);
int klogctl (int, char *, int);
+int readlinkat (int, const char *, char *, size_t);
+int signalfd (int, const sigset_t *, int);
int futex (void *, int, int, void *, void *, int);
int epoll_create (int size);
int epoll_ctl (int epfd, int op, int fd, struct epoll_event *event);
View
41 libc/include/sys/signalfd.h
@@ -0,0 +1,41 @@
+/*
+ * include/linux/signalfd.h
+ *
+ * Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org>
+ *
+ */
+
+#ifndef _LINUX_SIGNALFD_H
+#define _LINUX_SIGNALFD_H
+
+struct signalfd_siginfo {
+ __u32 ssi_signo;
+ __s32 ssi_errno;
+ __s32 ssi_code;
+ __u32 ssi_pid;
+ __u32 ssi_uid;
+ __s32 ssi_fd;
+ __u32 ssi_tid;
+ __u32 ssi_band;
+ __u32 ssi_overrun;
+ __u32 ssi_trapno;
+ __s32 ssi_status;
+ __s32 ssi_int;
+ __u64 ssi_ptr;
+ __u64 ssi_utime;
+ __u64 ssi_stime;
+ __u64 ssi_addr;
+
+ /*
+ * Pad strcture to 128 bytes. Remember to update the
+ * pad size when you add new memebers. We use a fixed
+ * size structure to avoid compatibility problems with
+ * future versions, and we leave extra space for additional
+ * members. We use fixed size members because this strcture
+ * comes out of a read(2) and we really don't want to have
+ * a compat on read(2).
+ */
+ __u8 __pad[48];
+};
+
+#endif /* _LINUX_SIGNALFD_H */
View
1  libc/include/unistd.h
@@ -117,6 +117,7 @@ extern int pipe(int *);
extern int chroot(const char *);
extern int symlink(const char *, const char *);
extern int readlink(const char *, char *, size_t);
+extern int readlinkat(int, const char *, char *, size_t);
extern int chown(const char *, uid_t, gid_t);
extern int fchown(int, uid_t, gid_t);
extern int lchown(const char *, uid_t, gid_t);
View
23 libc/kernel/arch-x86/asm/signal.h
@@ -19,8 +19,31 @@
struct siginfo;
+/*
+ * easyweb2:
+ * 09-08-15
+ * o Update sigset_t type for compatibility with kernel >= 2.6.30
+ */
+#ifndef EASYWEB2
#define NSIG 32
typedef unsigned long sigset_t;
+#else
+#define _NSIG 64
+
+#ifdef __i386__
+# define _NSIG_BPW 32
+#else
+# define _NSIG_BPW 64
+#endif
+
+#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
+
+typedef unsigned long old_sigset_t; /* at least 32 bits */
+
+typedef struct {
+ unsigned long sig[_NSIG_WORDS];
+} sigset_t;
+#endif
#endif
View
9 libc/unistd/sigsuspend.c
@@ -31,7 +31,16 @@ extern int __sigsuspend(int, int, unsigned int);
int sigsuspend(const sigset_t *_mask)
{
+/*
+ * easyweb2:
+ * 09-08-15
+ * o Update sigset_t type for compatibility with kernel >= 2.6.30
+ */
+#ifndef EASYWEB2
unsigned int mask = (unsigned int)*_mask;
+#else
+ unsigned int mask = _mask->sig[0];
+#endif
return __sigsuspend(0, 0, mask);
}
View
10 libc/unistd/sigwait.c
@@ -53,8 +53,18 @@ int sigwait(const sigset_t *set, int *sig)
sigset_t dummy_sigset;
} u;
+/*
+ * easyweb2:
+ * 09-08-15
+ * o Update sigset_t type for compatibility with kernel >= 2.6.30
+ */
+#ifndef EASYWEB2
u.kernel_sigset[0] = *set;
u.kernel_sigset[1] = 0; /* no real-time signals supported ? */
+#else
+ u.kernel_sigset[0] = set->sig[0];
+ u.kernel_sigset[1] = 0; /* no real-time signals supported */
+#endif
for (;;)
{
/* __rt_sigtimedwait can return EAGAIN or EINTR, we need to loop
View
169 libm/Android.mk
@@ -1,5 +1,10 @@
LOCAL_PATH:= $(call my-dir)
+# easyweb2:
+# 09-08-22
+# o Use i387 code
+#
+ifneq ($(EASYWEB2),true)
libm_common_src_files:= \
isinf.c \
fpclassify.c \
@@ -148,7 +153,116 @@ libm_common_src_files:= \
src/s_frexp.c \
src/s_isnan.c \
src/s_modf.c
-
+else
+libm_common_src_files:= \
+ isinf.c \
+ fpclassify.c \
+ bsdsrc/b_exp.c \
+ bsdsrc/b_log.c \
+ bsdsrc/b_tgamma.c \
+ src/e_acos.c \
+ src/e_acosf.c \
+ src/e_acosh.c \
+ src/e_acoshf.c \
+ src/e_asin.c \
+ src/e_asinf.c \
+ src/e_atan2.c \
+ src/e_atan2f.c \
+ src/e_atanh.c \
+ src/e_atanhf.c \
+ src/e_cosh.c \
+ src/e_coshf.c \
+ src/e_expf.c \
+ src/e_fmodf.c \
+ src/e_gamma.c \
+ src/e_gamma_r.c \
+ src/e_gammaf.c \
+ src/e_gammaf_r.c \
+ src/e_hypot.c \
+ src/e_hypotf.c \
+ src/e_j0.c \
+ src/e_j0f.c \
+ src/e_j1.c \
+ src/e_j1f.c \
+ src/e_jn.c \
+ src/e_jnf.c \
+ src/e_lgamma.c \
+ src/e_lgamma_r.c \
+ src/e_lgammaf.c \
+ src/e_lgammaf_r.c \
+ src/e_pow.c \
+ src/e_powf.c \
+ src/e_rem_pio2.c \
+ src/e_rem_pio2f.c \
+ src/e_sinh.c \
+ src/e_sinhf.c \
+ src/k_cos.c \
+ src/k_cosf.c \
+ src/k_rem_pio2.c \
+ src/k_sin.c \
+ src/k_sinf.c \
+ src/k_tan.c \
+ src/k_tanf.c \
+ src/s_asinh.c \
+ src/s_asinhf.c \
+ src/s_atan.c \
+ src/s_atanf.c \
+ src/s_cbrt.c \
+ src/s_cbrtf.c \
+ src/s_cosf.c \
+ src/s_erf.c \
+ src/s_erff.c \
+ src/s_exp2.c \
+ src/s_exp2f.c \
+ src/s_expm1.c \
+ src/s_expm1f.c \
+ src/s_fabsf.c \
+ src/s_fdim.c \
+ src/s_finitef.c \
+ src/s_fma.c \
+ src/s_fmaf.c \
+ src/s_fmax.c \
+ src/s_fmaxf.c \
+ src/s_fmaxl.c \
+ src/s_fmin.c \
+ src/s_fminf.c \
+ src/s_fminl.c \
+ src/s_frexpf.c \
+ src/s_ilogb.c \
+ src/s_ilogbf.c \
+ src/s_ilogbl.c \
+ src/s_isfinite.c \
+ src/s_isnormal.c \
+ src/s_llround.c \
+ src/s_llroundf.c \
+ src/s_llroundl.c \
+ src/s_log1p.c \
+ src/s_log1pf.c \
+ src/s_lround.c \
+ src/s_lroundf.c \
+ src/s_lroundl.c \
+ src/s_modff.c \
+ src/s_nearbyint.c \
+ src/s_nextafter.c \
+ src/s_nextafterf.c \
+ src/s_nexttowardf.c \
+ src/s_round.c \
+ src/s_roundf.c \
+ src/s_roundl.c \
+ src/s_signbit.c \
+ src/s_signgam.c \
+ src/s_sinf.c \
+ src/s_tanf.c \
+ src/s_tanh.c \
+ src/s_tanhf.c \
+ src/w_drem.c \
+ src/w_dremf.c \
+ src/s_fabsl.c \
+ src/s_fabs.c \
+ src/s_frexp.c \
+ src/s_isnan.c \
+ src/s_modf.c
+endif
ifeq ($(TARGET_ARCH),arm)
libm_common_src_files += \
@@ -162,12 +276,63 @@ ifeq ($(TARGET_ARCH),arm)
else
ifeq ($(TARGET_OS)-$(TARGET_ARCH),linux-x86)
+# easyweb2:
+# 09-08-22
+# o Use i387 code
+#
+ifneq ($(EASYWEB2),true)
libm_common_src_files += \
i387/fenv.c \
i387/s_scalbnl.S \
i387/s_scalbn.S \
i387/s_scalbnf.S
-
+else
+ libm_common_src_files += \
+ i387/e_exp.S \
+ i387/e_fmod.S \
+ i387/e_log10f.S \
+ i387/e_log10.S \
+ i387/e_logf.S \
+ i387/e_log.S \
+ i387/e_remainderf.S \
+ i387/e_remainder.S \
+ i387/e_scalbf.S \
+ i387/e_scalb.S \
+ i387/e_sqrtf.S \
+ i387/e_sqrt.S \
+ i387/fenv.c \
+ i387/s_ceilf.S \
+ i387/s_ceill.S \
+ i387/s_ceil.S \
+ i387/s_copysignf.S \
+ i387/s_copysignl.S \
+ i387/s_copysign.S \
+ i387/s_cos.S \
+ i387/s_finite.S \
+ i387/s_floorf.S \
+ i387/s_floorl.S \
+ i387/s_floor.S \
+ i387/s_llrintf.S \
+ i387/s_llrint.S \
+ i387/s_logbf.S \
+ i387/s_logb.S \
+ i387/s_lrintf.S \
+ i387/s_lrint.S \
+ i387/s_remquof.S \
+ i387/s_remquo.S \
+ i387/s_rintf.S \
+ i387/s_rint.S \
+ i387/s_scalbnf.S \
+ i387/s_scalbnl.S \
+ i387/s_scalbn.S \
+ i387/s_significandf.S \
+ i387/s_significand.S \
+ i387/s_sin.S \
+ i387/s_tan.S \
+ i387/s_truncf.S \
+ i387/s_truncl.S \
+ i387/s_trunc.S
+endif
libm_common_includes = $(LOCAL_PATH)/i386 $(LOCAL_PATH)/i387
else
$(error "Unknown architecture")
Please sign in to comment.
Something went wrong with that request. Please try again.