diff options
Diffstat (limited to 'ports/sysdeps/unix/sysv/linux/alpha')
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h | 3 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h | 1 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c | 1 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/alpha/gethostname.c | 3 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/alpha/msgctl.c | 3 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist | 3 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h | 25 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/alpha/shmctl.c | 3 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/alpha/sigaction.c | 4 |
9 files changed, 37 insertions, 9 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h index 2238c2c72b..c51b05d37f 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h +++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h @@ -51,6 +51,9 @@ # define MAP_FILE 0 # define MAP_ANONYMOUS 0x10 /* Don't use a file. */ # define MAP_ANON MAP_ANONYMOUS +/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size. */ +# define MAP_HUGE_SHIFT 26 +# define MAP_HUGE_MASK 0x3f #endif /* Not used by Linux, but here to make sure we don't clash with diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h index 1b07465d45..8bb057b4ee 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h +++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h @@ -25,6 +25,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c b/ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c index 1906741721..fdcad0bfbb 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c +++ b/ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c @@ -23,7 +23,6 @@ #include <sysdep-cancel.h> #include <sys/syscall.h> -#include <bp-checks.h> #include <kernel-features.h> diff --git a/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c b/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c index d6439505ec..48f3cec9d9 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c +++ b/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c @@ -22,14 +22,13 @@ #include <sysdep.h> #include <sys/syscall.h> -#include <bp-checks.h> int __gethostname (char *name, size_t len) { int result; - result = INLINE_SYSCALL (gethostname, 2, CHECK_N (name, len), len); + result = INLINE_SYSCALL (gethostname, 2, name, len); if (result == 0 /* See whether the string is terminated. If not we will return diff --git a/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c b/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c index b4633f4135..dbd03c1b2c 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c +++ b/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c @@ -21,13 +21,12 @@ #include <ipc_priv.h> #include <sysdep.h> #include <sys/syscall.h> -#include <bp-checks.h> int __new_msgctl (int msqid, int cmd, struct msqid_ds *buf) { - return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, CHECK_1 (buf)); + return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, buf); } #include <shlib-compat.h> diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist index 1d0cc7ec31..980e08857a 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist @@ -1819,6 +1819,9 @@ GLIBC_2.17 clock_nanosleep F clock_settime F secure_getenv F +GLIBC_2.18 + GLIBC_2.18 A + __cxa_thread_atexit_impl F GLIBC_2.2 GLIBC_2.2 A _IO_adjust_wcolumn F diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h b/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h index e50324cdd7..cf6b8bfd9b 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h +++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h @@ -38,6 +38,8 @@ #define FUTEX_TRYLOCK_PI 8 #define FUTEX_WAIT_BITSET 9 #define FUTEX_WAKE_BITSET 10 +#define FUTEX_WAIT_REQUEUE_PI 11 +#define FUTEX_CMP_REQUEUE_PI 12 #define FUTEX_PRIVATE_FLAG 128 #define FUTEX_CLOCK_REALTIME 256 @@ -143,8 +145,31 @@ INTERNAL_SYSCALL_ERROR_P (__ret, __err); \ }) +/* Priority Inheritance support. */ +#define lll_futex_wait_requeue_pi(futexp, val, mutex, private) \ + lll_futex_timed_wait_requeue_pi (futexp, val, NULL, 0, mutex, private) +#define lll_futex_timed_wait_requeue_pi(futexp, val, timespec, clockbit, \ + mutex, private) \ + ({ \ + INTERNAL_SYSCALL_DECL (__err); \ + int __op = FUTEX_WAIT_REQUEUE_PI | clockbit; \ + \ + INTERNAL_SYSCALL (futex, __err, 5, (futexp), \ + __lll_private_flag (__op, private), \ + (val), (timespec), mutex); \ + }) +#define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, val, priv) \ + ({ \ + INTERNAL_SYSCALL_DECL (__err); \ + long int __ret; \ + \ + __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \ + __lll_private_flag (FUTEX_CMP_REQUEUE_PI, priv),\ + (nr_wake), (nr_move), (mutex), (val)); \ + INTERNAL_SYSCALL_ERROR_P (__ret, __err); \ + }) static inline int __attribute__((always_inline)) __lll_trylock(int *futex) diff --git a/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c b/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c index 5e52200442..f2217a2b5a 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c +++ b/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c @@ -22,13 +22,12 @@ #include <sysdep.h> #include <sys/syscall.h> #include <bits/wordsize.h> -#include <bp-checks.h> int __new_shmctl (int shmid, int cmd, struct shmid_ds *buf) { - return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, CHECK_1 (buf)); + return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, buf); } #include <shlib-compat.h> diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c b/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c index 77c0115c4b..ad3860dfc0 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c +++ b/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c @@ -32,7 +32,7 @@ : INLINE_SYSCALL1(name, nr, args)) struct kernel_sigaction; -extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *__unbounded, - struct kernel_sigaction *__unbounded, size_t); +extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *, + struct kernel_sigaction *, size_t); #include <sysdeps/unix/sysv/linux/sigaction.c> |