libphobos: Merge upstream druntime 5bb8ce19
Synchronizes extern(C) bindings with latest release. Reviewed-on: https://github.com/dlang/druntime/pull/2741 libphobos/ChangeLog: * libdruntime/Makefile.am (DRUNTIME_DSOURCES_BIONIC): Add core/sys/bionic/string.d. (DRUNTIME_DSOURCES_DARWIN): Add core/sys/darwin/string.d. (DRUNTIME_DSOURCES_DRAGONFLYBSD): Add core/sys/dragonflybsd/string.d, core/sys/dragonflybsd/sys/socket.d. (DRUNTIME_DSOURCES_FREEBSD): Add core/sys/freebsd/string.d. (DRUNTIME_DSOURCES_LINUX): Add core/sys/linux/string.d. (DRUNTIME_DSOURCES_NETBSD): Add core/sys/netbsd/string.d, core/sys/netbsd/sys/featuretest.d. * libdruntime/Makefile.in: Regenerate. From-SVN: r274773
This commit is contained in:
parent
0234a9176c
commit
1e78c638a7
37 changed files with 4622 additions and 483 deletions
|
@ -1,3 +1,16 @@
|
|||
2019-08-20 Iain Buclaw <ibuclaw@gdcproject.org>
|
||||
|
||||
* libdruntime/Makefile.am (DRUNTIME_DSOURCES_BIONIC): Add
|
||||
core/sys/bionic/string.d.
|
||||
(DRUNTIME_DSOURCES_DARWIN): Add core/sys/darwin/string.d.
|
||||
(DRUNTIME_DSOURCES_DRAGONFLYBSD): Add core/sys/dragonflybsd/string.d,
|
||||
core/sys/dragonflybsd/sys/socket.d.
|
||||
(DRUNTIME_DSOURCES_FREEBSD): Add core/sys/freebsd/string.d.
|
||||
(DRUNTIME_DSOURCES_LINUX): Add core/sys/linux/string.d.
|
||||
(DRUNTIME_DSOURCES_NETBSD): Add core/sys/netbsd/string.d,
|
||||
core/sys/netbsd/sys/featuretest.d.
|
||||
* libdruntime/Makefile.in: Regenerate.
|
||||
|
||||
2019-08-20 Iain Buclaw <ibuclaw@gdcproject.org>
|
||||
|
||||
* libdruntime/Makefile.am (DRUNTIME_DSOURCES_OPENBSD): Add
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
94686651757294d608cfd5f053fda09dcf86695e
|
||||
5bb8ce19fa495e5f794b3c513ae1bf7aabae93ff
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the dlang/druntime repository.
|
||||
|
|
|
@ -198,7 +198,7 @@ DRUNTIME_DSOURCES_GC = gc/bits.d gc/config.d gc/gcinterface.d \
|
|||
DRUNTIME_DSOURCES_GCSTUB = gcstub/gc.d
|
||||
|
||||
DRUNTIME_DSOURCES_BIONIC = core/sys/bionic/fcntl.d \
|
||||
core/sys/bionic/unistd.d
|
||||
core/sys/bionic/string.d core/sys/bionic/unistd.d
|
||||
|
||||
DRUNTIME_DSOURCES_DARWIN = core/sys/darwin/crt_externs.d \
|
||||
core/sys/darwin/dlfcn.d core/sys/darwin/execinfo.d \
|
||||
|
@ -206,35 +206,39 @@ DRUNTIME_DSOURCES_DARWIN = core/sys/darwin/crt_externs.d \
|
|||
core/sys/darwin/mach/kern_return.d core/sys/darwin/mach/loader.d \
|
||||
core/sys/darwin/mach/port.d core/sys/darwin/mach/semaphore.d \
|
||||
core/sys/darwin/mach/thread_act.d core/sys/darwin/netinet/in_.d \
|
||||
core/sys/darwin/pthread.d core/sys/darwin/sys/cdefs.d \
|
||||
core/sys/darwin/sys/event.d core/sys/darwin/sys/mman.d
|
||||
core/sys/darwin/pthread.d core/sys/darwin/string.d \
|
||||
core/sys/darwin/sys/cdefs.d core/sys/darwin/sys/event.d \
|
||||
core/sys/darwin/sys/mman.d
|
||||
|
||||
DRUNTIME_DSOURCES_DRAGONFLYBSD = core/sys/dragonflybsd/dlfcn.d \
|
||||
core/sys/dragonflybsd/execinfo.d core/sys/dragonflybsd/netinet/in_.d \
|
||||
core/sys/dragonflybsd/pthread_np.d core/sys/dragonflybsd/sys/_bitset.d \
|
||||
core/sys/dragonflybsd/pthread_np.d core/sys/dragonflybsd/string.d \
|
||||
core/sys/dragonflybsd/sys/_bitset.d \
|
||||
core/sys/dragonflybsd/sys/_cpuset.d core/sys/dragonflybsd/sys/cdefs.d \
|
||||
core/sys/dragonflybsd/sys/elf.d core/sys/dragonflybsd/sys/elf32.d \
|
||||
core/sys/dragonflybsd/sys/elf64.d \
|
||||
core/sys/dragonflybsd/sys/elf_common.d \
|
||||
core/sys/dragonflybsd/sys/event.d core/sys/dragonflybsd/sys/link_elf.d \
|
||||
core/sys/dragonflybsd/sys/mman.d core/sys/dragonflybsd/time.d
|
||||
core/sys/dragonflybsd/sys/mman.d core/sys/dragonflybsd/sys/socket.d \
|
||||
core/sys/dragonflybsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_FREEBSD = core/sys/freebsd/dlfcn.d \
|
||||
core/sys/freebsd/execinfo.d core/sys/freebsd/netinet/in_.d \
|
||||
core/sys/freebsd/pthread_np.d core/sys/freebsd/sys/_bitset.d \
|
||||
core/sys/freebsd/sys/_cpuset.d core/sys/freebsd/sys/cdefs.d \
|
||||
core/sys/freebsd/sys/elf.d core/sys/freebsd/sys/elf32.d \
|
||||
core/sys/freebsd/sys/elf64.d core/sys/freebsd/sys/elf_common.d \
|
||||
core/sys/freebsd/sys/event.d core/sys/freebsd/sys/link_elf.d \
|
||||
core/sys/freebsd/sys/mman.d core/sys/freebsd/sys/mount.d \
|
||||
core/sys/freebsd/time.d core/sys/freebsd/unistd.d
|
||||
core/sys/freebsd/pthread_np.d core/sys/freebsd/string.d \
|
||||
core/sys/freebsd/sys/_bitset.d core/sys/freebsd/sys/_cpuset.d \
|
||||
core/sys/freebsd/sys/cdefs.d core/sys/freebsd/sys/elf.d \
|
||||
core/sys/freebsd/sys/elf32.d core/sys/freebsd/sys/elf64.d \
|
||||
core/sys/freebsd/sys/elf_common.d core/sys/freebsd/sys/event.d \
|
||||
core/sys/freebsd/sys/link_elf.d core/sys/freebsd/sys/mman.d \
|
||||
core/sys/freebsd/sys/mount.d core/sys/freebsd/time.d \
|
||||
core/sys/freebsd/unistd.d
|
||||
|
||||
DRUNTIME_DSOURCES_LINUX = core/sys/linux/config.d \
|
||||
core/sys/linux/dlfcn.d core/sys/linux/elf.d core/sys/linux/epoll.d \
|
||||
core/sys/linux/errno.d core/sys/linux/execinfo.d \
|
||||
core/sys/linux/fcntl.d core/sys/linux/ifaddrs.d core/sys/linux/link.d \
|
||||
core/sys/linux/netinet/in_.d core/sys/linux/netinet/tcp.d \
|
||||
core/sys/linux/sched.d core/sys/linux/stdio.d \
|
||||
core/sys/linux/sched.d core/sys/linux/stdio.d core/sys/linux/string.d \
|
||||
core/sys/linux/sys/auxv.d core/sys/linux/sys/eventfd.d \
|
||||
core/sys/linux/sys/file.d core/sys/linux/sys/inotify.d \
|
||||
core/sys/linux/sys/mman.d core/sys/linux/sys/netinet/tcp.d \
|
||||
|
@ -245,17 +249,19 @@ DRUNTIME_DSOURCES_LINUX = core/sys/linux/config.d \
|
|||
core/sys/linux/timerfd.d core/sys/linux/tipc.d core/sys/linux/unistd.d
|
||||
|
||||
DRUNTIME_DSOURCES_NETBSD = core/sys/netbsd/dlfcn.d \
|
||||
core/sys/netbsd/execinfo.d core/sys/netbsd/sys/elf.d \
|
||||
core/sys/netbsd/sys/elf32.d core/sys/netbsd/sys/elf64.d \
|
||||
core/sys/netbsd/sys/elf_common.d core/sys/netbsd/sys/event.d \
|
||||
core/sys/netbsd/execinfo.d core/sys/netbsd/string.d \
|
||||
core/sys/netbsd/sys/elf.d core/sys/netbsd/sys/elf32.d \
|
||||
core/sys/netbsd/sys/elf64.d core/sys/netbsd/sys/elf_common.d \
|
||||
core/sys/netbsd/sys/event.d core/sys/netbsd/sys/featuretest.d \
|
||||
core/sys/netbsd/sys/link_elf.d core/sys/netbsd/sys/mman.d \
|
||||
core/sys/netbsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_OPENBSD = core/sys/openbsd/dlfcn.d \
|
||||
core/sys/openbsd/sys/cdefs.d core/sys/openbsd/sys/elf.d \
|
||||
core/sys/openbsd/sys/elf32.d core/sys/openbsd/sys/elf64.d \
|
||||
core/sys/openbsd/sys/elf_common.d core/sys/openbsd/sys/link_elf.d \
|
||||
core/sys/openbsd/sys/mman.d core/sys/openbsd/time.d
|
||||
core/sys/openbsd/string.d core/sys/openbsd/sys/cdefs.d \
|
||||
core/sys/openbsd/sys/elf.d core/sys/openbsd/sys/elf32.d \
|
||||
core/sys/openbsd/sys/elf64.d core/sys/openbsd/sys/elf_common.d \
|
||||
core/sys/openbsd/sys/link_elf.d core/sys/openbsd/sys/mman.d \
|
||||
core/sys/openbsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_POSIX = core/sys/posix/aio.d \
|
||||
core/sys/posix/arpa/inet.d core/sys/posix/config.d \
|
||||
|
|
|
@ -278,13 +278,14 @@ am__objects_9 = core/sys/darwin/crt_externs.lo \
|
|||
core/sys/darwin/mach/semaphore.lo \
|
||||
core/sys/darwin/mach/thread_act.lo \
|
||||
core/sys/darwin/netinet/in_.lo core/sys/darwin/pthread.lo \
|
||||
core/sys/darwin/sys/cdefs.lo core/sys/darwin/sys/event.lo \
|
||||
core/sys/darwin/sys/mman.lo
|
||||
core/sys/darwin/string.lo core/sys/darwin/sys/cdefs.lo \
|
||||
core/sys/darwin/sys/event.lo core/sys/darwin/sys/mman.lo
|
||||
@DRUNTIME_OS_DARWIN_TRUE@am__objects_10 = $(am__objects_9)
|
||||
am__objects_11 = core/sys/dragonflybsd/dlfcn.lo \
|
||||
core/sys/dragonflybsd/execinfo.lo \
|
||||
core/sys/dragonflybsd/netinet/in_.lo \
|
||||
core/sys/dragonflybsd/pthread_np.lo \
|
||||
core/sys/dragonflybsd/string.lo \
|
||||
core/sys/dragonflybsd/sys/_bitset.lo \
|
||||
core/sys/dragonflybsd/sys/_cpuset.lo \
|
||||
core/sys/dragonflybsd/sys/cdefs.lo \
|
||||
|
@ -295,13 +296,16 @@ am__objects_11 = core/sys/dragonflybsd/dlfcn.lo \
|
|||
core/sys/dragonflybsd/sys/event.lo \
|
||||
core/sys/dragonflybsd/sys/link_elf.lo \
|
||||
core/sys/dragonflybsd/sys/mman.lo \
|
||||
core/sys/dragonflybsd/sys/socket.lo \
|
||||
core/sys/dragonflybsd/time.lo
|
||||
@DRUNTIME_OS_DRAGONFLYBSD_TRUE@am__objects_12 = $(am__objects_11)
|
||||
am__objects_13 = core/sys/bionic/fcntl.lo core/sys/bionic/unistd.lo
|
||||
am__objects_13 = core/sys/bionic/fcntl.lo core/sys/bionic/string.lo \
|
||||
core/sys/bionic/unistd.lo
|
||||
@DRUNTIME_OS_ANDROID_TRUE@am__objects_14 = $(am__objects_13)
|
||||
am__objects_15 = core/sys/freebsd/dlfcn.lo \
|
||||
core/sys/freebsd/execinfo.lo core/sys/freebsd/netinet/in_.lo \
|
||||
core/sys/freebsd/pthread_np.lo core/sys/freebsd/sys/_bitset.lo \
|
||||
core/sys/freebsd/pthread_np.lo core/sys/freebsd/string.lo \
|
||||
core/sys/freebsd/sys/_bitset.lo \
|
||||
core/sys/freebsd/sys/_cpuset.lo core/sys/freebsd/sys/cdefs.lo \
|
||||
core/sys/freebsd/sys/elf.lo core/sys/freebsd/sys/elf32.lo \
|
||||
core/sys/freebsd/sys/elf64.lo \
|
||||
|
@ -311,12 +315,14 @@ am__objects_15 = core/sys/freebsd/dlfcn.lo \
|
|||
core/sys/freebsd/time.lo core/sys/freebsd/unistd.lo
|
||||
@DRUNTIME_OS_FREEBSD_TRUE@am__objects_16 = $(am__objects_15)
|
||||
am__objects_17 = core/sys/netbsd/dlfcn.lo core/sys/netbsd/execinfo.lo \
|
||||
core/sys/netbsd/sys/elf.lo core/sys/netbsd/sys/elf32.lo \
|
||||
core/sys/netbsd/sys/elf64.lo core/sys/netbsd/sys/elf_common.lo \
|
||||
core/sys/netbsd/sys/event.lo core/sys/netbsd/sys/link_elf.lo \
|
||||
core/sys/netbsd/sys/mman.lo core/sys/netbsd/time.lo
|
||||
core/sys/netbsd/string.lo core/sys/netbsd/sys/elf.lo \
|
||||
core/sys/netbsd/sys/elf32.lo core/sys/netbsd/sys/elf64.lo \
|
||||
core/sys/netbsd/sys/elf_common.lo core/sys/netbsd/sys/event.lo \
|
||||
core/sys/netbsd/sys/featuretest.lo \
|
||||
core/sys/netbsd/sys/link_elf.lo core/sys/netbsd/sys/mman.lo \
|
||||
core/sys/netbsd/time.lo
|
||||
@DRUNTIME_OS_NETBSD_TRUE@am__objects_18 = $(am__objects_17)
|
||||
am__objects_19 = core/sys/openbsd/dlfcn.lo \
|
||||
am__objects_19 = core/sys/openbsd/dlfcn.lo core/sys/openbsd/string.lo \
|
||||
core/sys/openbsd/sys/cdefs.lo core/sys/openbsd/sys/elf.lo \
|
||||
core/sys/openbsd/sys/elf32.lo core/sys/openbsd/sys/elf64.lo \
|
||||
core/sys/openbsd/sys/elf_common.lo \
|
||||
|
@ -329,15 +335,16 @@ am__objects_21 = core/sys/linux/config.lo core/sys/linux/dlfcn.lo \
|
|||
core/sys/linux/fcntl.lo core/sys/linux/ifaddrs.lo \
|
||||
core/sys/linux/link.lo core/sys/linux/netinet/in_.lo \
|
||||
core/sys/linux/netinet/tcp.lo core/sys/linux/sched.lo \
|
||||
core/sys/linux/stdio.lo core/sys/linux/sys/auxv.lo \
|
||||
core/sys/linux/sys/eventfd.lo core/sys/linux/sys/file.lo \
|
||||
core/sys/linux/sys/inotify.lo core/sys/linux/sys/mman.lo \
|
||||
core/sys/linux/sys/netinet/tcp.lo core/sys/linux/sys/prctl.lo \
|
||||
core/sys/linux/sys/signalfd.lo core/sys/linux/sys/socket.lo \
|
||||
core/sys/linux/sys/sysinfo.lo core/sys/linux/sys/time.lo \
|
||||
core/sys/linux/sys/xattr.lo core/sys/linux/termios.lo \
|
||||
core/sys/linux/time.lo core/sys/linux/timerfd.lo \
|
||||
core/sys/linux/tipc.lo core/sys/linux/unistd.lo
|
||||
core/sys/linux/stdio.lo core/sys/linux/string.lo \
|
||||
core/sys/linux/sys/auxv.lo core/sys/linux/sys/eventfd.lo \
|
||||
core/sys/linux/sys/file.lo core/sys/linux/sys/inotify.lo \
|
||||
core/sys/linux/sys/mman.lo core/sys/linux/sys/netinet/tcp.lo \
|
||||
core/sys/linux/sys/prctl.lo core/sys/linux/sys/signalfd.lo \
|
||||
core/sys/linux/sys/socket.lo core/sys/linux/sys/sysinfo.lo \
|
||||
core/sys/linux/sys/time.lo core/sys/linux/sys/xattr.lo \
|
||||
core/sys/linux/termios.lo core/sys/linux/time.lo \
|
||||
core/sys/linux/timerfd.lo core/sys/linux/tipc.lo \
|
||||
core/sys/linux/unistd.lo
|
||||
@DRUNTIME_OS_LINUX_TRUE@am__objects_22 = $(am__objects_21)
|
||||
am__objects_23 = core/sys/windows/accctrl.lo \
|
||||
core/sys/windows/aclapi.lo core/sys/windows/aclui.lo \
|
||||
|
@ -798,7 +805,7 @@ DRUNTIME_DSOURCES_GC = gc/bits.d gc/config.d gc/gcinterface.d \
|
|||
|
||||
DRUNTIME_DSOURCES_GCSTUB = gcstub/gc.d
|
||||
DRUNTIME_DSOURCES_BIONIC = core/sys/bionic/fcntl.d \
|
||||
core/sys/bionic/unistd.d
|
||||
core/sys/bionic/string.d core/sys/bionic/unistd.d
|
||||
|
||||
DRUNTIME_DSOURCES_DARWIN = core/sys/darwin/crt_externs.d \
|
||||
core/sys/darwin/dlfcn.d core/sys/darwin/execinfo.d \
|
||||
|
@ -806,35 +813,39 @@ DRUNTIME_DSOURCES_DARWIN = core/sys/darwin/crt_externs.d \
|
|||
core/sys/darwin/mach/kern_return.d core/sys/darwin/mach/loader.d \
|
||||
core/sys/darwin/mach/port.d core/sys/darwin/mach/semaphore.d \
|
||||
core/sys/darwin/mach/thread_act.d core/sys/darwin/netinet/in_.d \
|
||||
core/sys/darwin/pthread.d core/sys/darwin/sys/cdefs.d \
|
||||
core/sys/darwin/sys/event.d core/sys/darwin/sys/mman.d
|
||||
core/sys/darwin/pthread.d core/sys/darwin/string.d \
|
||||
core/sys/darwin/sys/cdefs.d core/sys/darwin/sys/event.d \
|
||||
core/sys/darwin/sys/mman.d
|
||||
|
||||
DRUNTIME_DSOURCES_DRAGONFLYBSD = core/sys/dragonflybsd/dlfcn.d \
|
||||
core/sys/dragonflybsd/execinfo.d core/sys/dragonflybsd/netinet/in_.d \
|
||||
core/sys/dragonflybsd/pthread_np.d core/sys/dragonflybsd/sys/_bitset.d \
|
||||
core/sys/dragonflybsd/pthread_np.d core/sys/dragonflybsd/string.d \
|
||||
core/sys/dragonflybsd/sys/_bitset.d \
|
||||
core/sys/dragonflybsd/sys/_cpuset.d core/sys/dragonflybsd/sys/cdefs.d \
|
||||
core/sys/dragonflybsd/sys/elf.d core/sys/dragonflybsd/sys/elf32.d \
|
||||
core/sys/dragonflybsd/sys/elf64.d \
|
||||
core/sys/dragonflybsd/sys/elf_common.d \
|
||||
core/sys/dragonflybsd/sys/event.d core/sys/dragonflybsd/sys/link_elf.d \
|
||||
core/sys/dragonflybsd/sys/mman.d core/sys/dragonflybsd/time.d
|
||||
core/sys/dragonflybsd/sys/mman.d core/sys/dragonflybsd/sys/socket.d \
|
||||
core/sys/dragonflybsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_FREEBSD = core/sys/freebsd/dlfcn.d \
|
||||
core/sys/freebsd/execinfo.d core/sys/freebsd/netinet/in_.d \
|
||||
core/sys/freebsd/pthread_np.d core/sys/freebsd/sys/_bitset.d \
|
||||
core/sys/freebsd/sys/_cpuset.d core/sys/freebsd/sys/cdefs.d \
|
||||
core/sys/freebsd/sys/elf.d core/sys/freebsd/sys/elf32.d \
|
||||
core/sys/freebsd/sys/elf64.d core/sys/freebsd/sys/elf_common.d \
|
||||
core/sys/freebsd/sys/event.d core/sys/freebsd/sys/link_elf.d \
|
||||
core/sys/freebsd/sys/mman.d core/sys/freebsd/sys/mount.d \
|
||||
core/sys/freebsd/time.d core/sys/freebsd/unistd.d
|
||||
core/sys/freebsd/pthread_np.d core/sys/freebsd/string.d \
|
||||
core/sys/freebsd/sys/_bitset.d core/sys/freebsd/sys/_cpuset.d \
|
||||
core/sys/freebsd/sys/cdefs.d core/sys/freebsd/sys/elf.d \
|
||||
core/sys/freebsd/sys/elf32.d core/sys/freebsd/sys/elf64.d \
|
||||
core/sys/freebsd/sys/elf_common.d core/sys/freebsd/sys/event.d \
|
||||
core/sys/freebsd/sys/link_elf.d core/sys/freebsd/sys/mman.d \
|
||||
core/sys/freebsd/sys/mount.d core/sys/freebsd/time.d \
|
||||
core/sys/freebsd/unistd.d
|
||||
|
||||
DRUNTIME_DSOURCES_LINUX = core/sys/linux/config.d \
|
||||
core/sys/linux/dlfcn.d core/sys/linux/elf.d core/sys/linux/epoll.d \
|
||||
core/sys/linux/errno.d core/sys/linux/execinfo.d \
|
||||
core/sys/linux/fcntl.d core/sys/linux/ifaddrs.d core/sys/linux/link.d \
|
||||
core/sys/linux/netinet/in_.d core/sys/linux/netinet/tcp.d \
|
||||
core/sys/linux/sched.d core/sys/linux/stdio.d \
|
||||
core/sys/linux/sched.d core/sys/linux/stdio.d core/sys/linux/string.d \
|
||||
core/sys/linux/sys/auxv.d core/sys/linux/sys/eventfd.d \
|
||||
core/sys/linux/sys/file.d core/sys/linux/sys/inotify.d \
|
||||
core/sys/linux/sys/mman.d core/sys/linux/sys/netinet/tcp.d \
|
||||
|
@ -845,17 +856,19 @@ DRUNTIME_DSOURCES_LINUX = core/sys/linux/config.d \
|
|||
core/sys/linux/timerfd.d core/sys/linux/tipc.d core/sys/linux/unistd.d
|
||||
|
||||
DRUNTIME_DSOURCES_NETBSD = core/sys/netbsd/dlfcn.d \
|
||||
core/sys/netbsd/execinfo.d core/sys/netbsd/sys/elf.d \
|
||||
core/sys/netbsd/sys/elf32.d core/sys/netbsd/sys/elf64.d \
|
||||
core/sys/netbsd/sys/elf_common.d core/sys/netbsd/sys/event.d \
|
||||
core/sys/netbsd/execinfo.d core/sys/netbsd/string.d \
|
||||
core/sys/netbsd/sys/elf.d core/sys/netbsd/sys/elf32.d \
|
||||
core/sys/netbsd/sys/elf64.d core/sys/netbsd/sys/elf_common.d \
|
||||
core/sys/netbsd/sys/event.d core/sys/netbsd/sys/featuretest.d \
|
||||
core/sys/netbsd/sys/link_elf.d core/sys/netbsd/sys/mman.d \
|
||||
core/sys/netbsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_OPENBSD = core/sys/openbsd/dlfcn.d \
|
||||
core/sys/openbsd/sys/cdefs.d core/sys/openbsd/sys/elf.d \
|
||||
core/sys/openbsd/sys/elf32.d core/sys/openbsd/sys/elf64.d \
|
||||
core/sys/openbsd/sys/elf_common.d core/sys/openbsd/sys/link_elf.d \
|
||||
core/sys/openbsd/sys/mman.d core/sys/openbsd/time.d
|
||||
core/sys/openbsd/string.d core/sys/openbsd/sys/cdefs.d \
|
||||
core/sys/openbsd/sys/elf.d core/sys/openbsd/sys/elf32.d \
|
||||
core/sys/openbsd/sys/elf64.d core/sys/openbsd/sys/elf_common.d \
|
||||
core/sys/openbsd/sys/link_elf.d core/sys/openbsd/sys/mman.d \
|
||||
core/sys/openbsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_POSIX = core/sys/posix/aio.d \
|
||||
core/sys/posix/arpa/inet.d core/sys/posix/config.d \
|
||||
|
@ -1326,6 +1339,7 @@ core/sys/darwin/netinet/$(am__dirstamp):
|
|||
core/sys/darwin/netinet/in_.lo: \
|
||||
core/sys/darwin/netinet/$(am__dirstamp)
|
||||
core/sys/darwin/pthread.lo: core/sys/darwin/$(am__dirstamp)
|
||||
core/sys/darwin/string.lo: core/sys/darwin/$(am__dirstamp)
|
||||
core/sys/darwin/sys/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/darwin/sys
|
||||
@: > core/sys/darwin/sys/$(am__dirstamp)
|
||||
|
@ -1345,6 +1359,8 @@ core/sys/dragonflybsd/netinet/in_.lo: \
|
|||
core/sys/dragonflybsd/netinet/$(am__dirstamp)
|
||||
core/sys/dragonflybsd/pthread_np.lo: \
|
||||
core/sys/dragonflybsd/$(am__dirstamp)
|
||||
core/sys/dragonflybsd/string.lo: \
|
||||
core/sys/dragonflybsd/$(am__dirstamp)
|
||||
core/sys/dragonflybsd/sys/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/dragonflybsd/sys
|
||||
@: > core/sys/dragonflybsd/sys/$(am__dirstamp)
|
||||
|
@ -1368,11 +1384,14 @@ core/sys/dragonflybsd/sys/link_elf.lo: \
|
|||
core/sys/dragonflybsd/sys/$(am__dirstamp)
|
||||
core/sys/dragonflybsd/sys/mman.lo: \
|
||||
core/sys/dragonflybsd/sys/$(am__dirstamp)
|
||||
core/sys/dragonflybsd/sys/socket.lo: \
|
||||
core/sys/dragonflybsd/sys/$(am__dirstamp)
|
||||
core/sys/dragonflybsd/time.lo: core/sys/dragonflybsd/$(am__dirstamp)
|
||||
core/sys/bionic/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/bionic
|
||||
@: > core/sys/bionic/$(am__dirstamp)
|
||||
core/sys/bionic/fcntl.lo: core/sys/bionic/$(am__dirstamp)
|
||||
core/sys/bionic/string.lo: core/sys/bionic/$(am__dirstamp)
|
||||
core/sys/bionic/unistd.lo: core/sys/bionic/$(am__dirstamp)
|
||||
core/sys/freebsd/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/freebsd
|
||||
|
@ -1385,6 +1404,7 @@ core/sys/freebsd/netinet/$(am__dirstamp):
|
|||
core/sys/freebsd/netinet/in_.lo: \
|
||||
core/sys/freebsd/netinet/$(am__dirstamp)
|
||||
core/sys/freebsd/pthread_np.lo: core/sys/freebsd/$(am__dirstamp)
|
||||
core/sys/freebsd/string.lo: core/sys/freebsd/$(am__dirstamp)
|
||||
core/sys/freebsd/sys/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/freebsd/sys
|
||||
@: > core/sys/freebsd/sys/$(am__dirstamp)
|
||||
|
@ -1408,6 +1428,7 @@ core/sys/netbsd/$(am__dirstamp):
|
|||
@: > core/sys/netbsd/$(am__dirstamp)
|
||||
core/sys/netbsd/dlfcn.lo: core/sys/netbsd/$(am__dirstamp)
|
||||
core/sys/netbsd/execinfo.lo: core/sys/netbsd/$(am__dirstamp)
|
||||
core/sys/netbsd/string.lo: core/sys/netbsd/$(am__dirstamp)
|
||||
core/sys/netbsd/sys/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/netbsd/sys
|
||||
@: > core/sys/netbsd/sys/$(am__dirstamp)
|
||||
|
@ -1417,6 +1438,8 @@ core/sys/netbsd/sys/elf64.lo: core/sys/netbsd/sys/$(am__dirstamp)
|
|||
core/sys/netbsd/sys/elf_common.lo: \
|
||||
core/sys/netbsd/sys/$(am__dirstamp)
|
||||
core/sys/netbsd/sys/event.lo: core/sys/netbsd/sys/$(am__dirstamp)
|
||||
core/sys/netbsd/sys/featuretest.lo: \
|
||||
core/sys/netbsd/sys/$(am__dirstamp)
|
||||
core/sys/netbsd/sys/link_elf.lo: core/sys/netbsd/sys/$(am__dirstamp)
|
||||
core/sys/netbsd/sys/mman.lo: core/sys/netbsd/sys/$(am__dirstamp)
|
||||
core/sys/netbsd/time.lo: core/sys/netbsd/$(am__dirstamp)
|
||||
|
@ -1424,6 +1447,7 @@ core/sys/openbsd/$(am__dirstamp):
|
|||
@$(MKDIR_P) core/sys/openbsd
|
||||
@: > core/sys/openbsd/$(am__dirstamp)
|
||||
core/sys/openbsd/dlfcn.lo: core/sys/openbsd/$(am__dirstamp)
|
||||
core/sys/openbsd/string.lo: core/sys/openbsd/$(am__dirstamp)
|
||||
core/sys/openbsd/sys/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/openbsd/sys
|
||||
@: > core/sys/openbsd/sys/$(am__dirstamp)
|
||||
|
@ -1456,6 +1480,7 @@ core/sys/linux/netinet/in_.lo: core/sys/linux/netinet/$(am__dirstamp)
|
|||
core/sys/linux/netinet/tcp.lo: core/sys/linux/netinet/$(am__dirstamp)
|
||||
core/sys/linux/sched.lo: core/sys/linux/$(am__dirstamp)
|
||||
core/sys/linux/stdio.lo: core/sys/linux/$(am__dirstamp)
|
||||
core/sys/linux/string.lo: core/sys/linux/$(am__dirstamp)
|
||||
core/sys/linux/sys/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/linux/sys
|
||||
@: > core/sys/linux/sys/$(am__dirstamp)
|
||||
|
|
|
@ -63,7 +63,7 @@ else version (NetBSD)
|
|||
else version (OpenBSD)
|
||||
{
|
||||
/***
|
||||
* Assert failure function in the NetBSD C library.
|
||||
* Assert failure function in the OpenBSD C library.
|
||||
*/
|
||||
void __assert(const(char)* file, int line, const(char)* exp);
|
||||
///
|
||||
|
|
|
@ -249,16 +249,16 @@ else version (NetBSD)
|
|||
{
|
||||
struct _x87
|
||||
{
|
||||
ushort control; /* Control word register */
|
||||
ushort control; /* Control word register */
|
||||
ushort unused1;
|
||||
ushort status; /* Status word register */
|
||||
ushort status; /* Status word register */
|
||||
ushort unused2;
|
||||
ushort tag; /* Tag word register */
|
||||
ushort tag; /* Tag word register */
|
||||
ushort unused3;
|
||||
uint[4] others; /* EIP, Pointer Selector, etc */
|
||||
};
|
||||
_x87 x87;
|
||||
uint32_t mxcsr; /* Control and status register */
|
||||
uint mxcsr; /* Control and status register */
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -375,7 +375,42 @@ else version (Solaris)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
version (X86_64)
|
||||
version (AArch64)
|
||||
{
|
||||
struct fenv_t
|
||||
{
|
||||
uint __fpcr;
|
||||
uint __fpsr;
|
||||
}
|
||||
alias uint fexcept_t;
|
||||
}
|
||||
else version (ARM)
|
||||
{
|
||||
struct fenv_t
|
||||
{
|
||||
c_ulong __cw;
|
||||
}
|
||||
alias c_ulong fexcept_t;
|
||||
}
|
||||
else version (IBMZ_Any)
|
||||
{
|
||||
alias uint fenv_t;
|
||||
alias uint fexcept_t;
|
||||
}
|
||||
else version (MIPS_Any)
|
||||
{
|
||||
struct fenv_t
|
||||
{
|
||||
uint __cw;
|
||||
}
|
||||
alias ushort fexcept_t;
|
||||
}
|
||||
else version (PPC_Any)
|
||||
{
|
||||
alias double fenv_t;
|
||||
alias uint fexcept_t;
|
||||
}
|
||||
else version (X86_Any)
|
||||
{
|
||||
struct fenv_t
|
||||
{
|
||||
|
@ -391,7 +426,8 @@ else version (CRuntime_Musl)
|
|||
uint __data_offset;
|
||||
ushort __data_selector;
|
||||
ushort __unused5;
|
||||
uint __mxcsr;
|
||||
version (X86_64)
|
||||
uint __mxcsr;
|
||||
}
|
||||
alias ushort fexcept_t;
|
||||
}
|
||||
|
|
17
libphobos/libdruntime/core/sys/bionic/string.d
Normal file
17
libphobos/libdruntime/core/sys/bionic/string.d
Normal file
|
@ -0,0 +1,17 @@
|
|||
/**
|
||||
* D header file for Bionic string.
|
||||
*
|
||||
* Copyright: Copyright © 2019, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Ernesto Castellotti
|
||||
*/
|
||||
module core.sys.bionic.string;
|
||||
|
||||
public import core.stdc.string;
|
||||
|
||||
version (CRuntime_Bionic):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen);
|
|
@ -32,6 +32,7 @@ public import core.sys.darwin.mach.loader;
|
|||
uint _dyld_image_count();
|
||||
const(char)* _dyld_get_image_name(uint image_index);
|
||||
mach_header* _dyld_get_image_header(uint image_index);
|
||||
intptr_t _dyld_get_image_vmaddr_slide(uint image_index);
|
||||
void _dyld_register_func_for_add_image(void function(in mach_header* mh, intptr_t vmaddr_slide));
|
||||
void _dyld_register_func_for_remove_image(void function(in mach_header* mh, intptr_t vmaddr_slide));
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
31
libphobos/libdruntime/core/sys/darwin/string.d
Normal file
31
libphobos/libdruntime/core/sys/darwin/string.d
Normal file
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
* D header file for Darwin string.
|
||||
*
|
||||
* Copyright: Copyright © 2019, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Ernesto Castellotti
|
||||
*/
|
||||
module core.sys.darwin.string;
|
||||
|
||||
public import core.stdc.string;
|
||||
import core.sys.darwin.sys.cdefs;
|
||||
|
||||
version (OSX)
|
||||
version = Darwin;
|
||||
else version (iOS)
|
||||
version = Darwin;
|
||||
else version (TVOS)
|
||||
version = Darwin;
|
||||
else version (WatchOS)
|
||||
version = Darwin;
|
||||
|
||||
version (Darwin):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
static if (__DARWIN_C_LEVEL >= __DARWIN_C_FULL)
|
||||
{
|
||||
// ^ __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
|
||||
pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen);
|
||||
}
|
22
libphobos/libdruntime/core/sys/dragonflybsd/string.d
Normal file
22
libphobos/libdruntime/core/sys/dragonflybsd/string.d
Normal file
|
@ -0,0 +1,22 @@
|
|||
/**
|
||||
* D header file for DragonFlyBSD string.
|
||||
*
|
||||
* Copyright: Copyright © 2019, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Ernesto Castellotti
|
||||
*/
|
||||
module core.sys.dragonflybsd.string;
|
||||
|
||||
public import core.stdc.string;
|
||||
import core.sys.dragonflybsd.sys.cdefs;
|
||||
|
||||
version (DragonFlyBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
static if (__BSD_VISIBLE)
|
||||
{
|
||||
pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen);
|
||||
}
|
||||
|
86
libphobos/libdruntime/core/sys/dragonflybsd/sys/socket.d
Normal file
86
libphobos/libdruntime/core/sys/dragonflybsd/sys/socket.d
Normal file
|
@ -0,0 +1,86 @@
|
|||
/**
|
||||
* D header file for DragonFlyBSD
|
||||
*
|
||||
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
|
||||
*/
|
||||
module core.sys.dragonflybsd.sys.socket;
|
||||
|
||||
public import core.sys.posix.sys.socket;
|
||||
|
||||
version (DragonFlyBSD):
|
||||
extern(C):
|
||||
@nogc:
|
||||
nothrow:
|
||||
|
||||
enum
|
||||
{
|
||||
AF_IMPLINK = 3,
|
||||
AF_PUP = 4,
|
||||
AF_CHAOS = 5,
|
||||
AF_NETBIOS = 6,
|
||||
AF_ISO = 7,
|
||||
AF_OSI = AF_ISO,
|
||||
AF_ECMA = 8,
|
||||
AF_DATAKIT = 9,
|
||||
AF_CCITT = 10,
|
||||
AF_SNA = 11,
|
||||
AF_DECnet = 12,
|
||||
AF_DLI = 13,
|
||||
AF_LAT = 14,
|
||||
AF_HYLINK = 15,
|
||||
AF_ROUTE = 17,
|
||||
AF_LINK = 18,
|
||||
pseudo_AF_XTP = 19,
|
||||
AF_COIP = 20,
|
||||
AF_CNT = 21,
|
||||
pseudo_AF_RTIP = 22,
|
||||
AF_SIP = 24,
|
||||
pseudo_AF_PIP = 25,
|
||||
AF_ISDN = 26,
|
||||
AF_E164 = AF_ISDN,
|
||||
pseudo_AF_KEY = 27,
|
||||
AF_NATM = 29,
|
||||
AF_ATM = 30,
|
||||
pseudo_AF_HDRCMPLT = 31,
|
||||
AF_NETGRAPH = 32,
|
||||
AF_BLUETOOTH = 33,
|
||||
AF_MPLS = 34,
|
||||
AF_IEEE80211 = 35,
|
||||
}
|
||||
|
||||
/* protocol families */
|
||||
enum PF_UNSPEC = AF_UNSPEC;
|
||||
enum PF_LOCAL = AF_LOCAL;
|
||||
enum PF_UNIX = PF_LOCAL;
|
||||
enum PF_INET = AF_INET;
|
||||
enum PF_IMPLINK = AF_IMPLINK;
|
||||
enum PF_PUP = AF_PUP;
|
||||
enum PF_CHAOS = AF_CHAOS;
|
||||
enum PF_NETBIOS = AF_NETBIOS;
|
||||
enum PF_ISO = AF_ISO;
|
||||
enum PF_OSI = AF_ISO;
|
||||
enum PF_ECMA = AF_ECMA;
|
||||
enum PF_DATAKIT = AF_DATAKIT;
|
||||
enum PF_CCITT = AF_CCITT;
|
||||
enum PF_SNA = AF_SNA;
|
||||
enum PF_DECnet = AF_DECnet;
|
||||
enum PF_DLI = AF_DLI;
|
||||
enum PF_LAT = AF_LAT;
|
||||
enum PF_HYLINK = AF_HYLINK;
|
||||
enum PF_APPLETALK = AF_APPLETALK;
|
||||
enum PF_ROUTE = AF_ROUTE;
|
||||
enum PF_LINK = AF_LINK;
|
||||
enum PF_XTP = pseudo_AF_XTP;
|
||||
enum PF_COIP = AF_COIP;
|
||||
enum PF_CNT = AF_CNT;
|
||||
enum PF_SIP = AF_SIP;
|
||||
enum PF_IPX = AF_IPX;
|
||||
enum PF_RTIP = pseudo_AF_RTIP;
|
||||
enum PF_PIP = pseudo_AF_PIP;
|
||||
enum PF_ISDN = AF_ISDN;
|
||||
enum PF_KEY = pseudo_AF_KEY;
|
||||
enum PF_INET6 = AF_INET6;
|
||||
enum PF_NATM = AF_NATM;
|
||||
enum PF_ATM = AF_ATM;
|
||||
enum PF_NETGRAPH = AF_NETGRAPH;
|
||||
enum PF_BLUETOOTH = AF_BLUETOOTH;
|
21
libphobos/libdruntime/core/sys/freebsd/string.d
Normal file
21
libphobos/libdruntime/core/sys/freebsd/string.d
Normal file
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* D header file for FreeBSD string.
|
||||
*
|
||||
* Copyright: Copyright © 2019, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Ernesto Castellotti
|
||||
*/
|
||||
module core.sys.freebsd.string;
|
||||
|
||||
public import core.stdc.string;
|
||||
import core.sys.freebsd.sys.cdefs;
|
||||
|
||||
version (FreeBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
static if (__BSD_VISIBLE)
|
||||
{
|
||||
pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen);
|
||||
}
|
|
@ -43,6 +43,15 @@ struct Elf64_Ehdr
|
|||
Elf64_Half e_shstrndx;
|
||||
}
|
||||
|
||||
struct Elf64_Lib
|
||||
{
|
||||
Elf64_Word l_name;
|
||||
Elf64_Word l_time_stamp;
|
||||
Elf64_Word l_checksum;
|
||||
Elf64_Word l_version;
|
||||
Elf64_Word l_flags;
|
||||
}
|
||||
|
||||
struct Elf64_Shdr
|
||||
{
|
||||
Elf64_Word sh_name;
|
||||
|
|
|
@ -852,3 +852,105 @@ enum R_X86_64_DTPOFF32 = 21;
|
|||
enum R_X86_64_GOTTPOFF = 22;
|
||||
enum R_X86_64_TPOFF32 = 23;
|
||||
enum R_X86_64_IRELATIVE = 37;
|
||||
|
||||
version (PPC64)
|
||||
{
|
||||
enum __ELF_WORD_SIZE = 64;
|
||||
enum ELF_ARCH = EM_PPC64;
|
||||
enum ELF_MACHINE_OK(x) = ((x) == EM_PPC64);
|
||||
}
|
||||
version (PPC)
|
||||
{
|
||||
enum __ELF_WORD_SIZE = 32;
|
||||
enum ELF_ARCH = EM_PPC;
|
||||
enum ELF_ARCH32 = EM_PPC;
|
||||
enum ELF_MACHINE_OK(x) = ((x) == EM_PPC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Auxiliary vector entries for passing information to the interpreter.
|
||||
*
|
||||
* The PowerPC supplement to the SVR4 ABI specification names this "auxv_t",
|
||||
* but POSIX lays claim to all symbols ending with "_t".
|
||||
*/
|
||||
|
||||
struct Elf32_Auxinfo
|
||||
{
|
||||
int a_type;
|
||||
union a_un
|
||||
{
|
||||
long a_val;
|
||||
void *a_ptr;
|
||||
void function(void* a) a_fcn;
|
||||
}
|
||||
}
|
||||
|
||||
struct Elf64_Auxinfo
|
||||
{
|
||||
long a_type;
|
||||
union a_un
|
||||
{
|
||||
long a_val;
|
||||
void *a_ptr;
|
||||
void function(void* a) a_fcn;
|
||||
}
|
||||
}
|
||||
|
||||
// __ElfType(Auxinfo);
|
||||
|
||||
/**
|
||||
* Values for a_type.
|
||||
*/
|
||||
|
||||
enum AT_NULL = 0;
|
||||
enum AT_IGNORE = 1;
|
||||
enum AT_EXECFD = 2;
|
||||
enum AT_PHDR = 3;
|
||||
enum AT_PHENT = 4;
|
||||
enum AT_PHNUM = 5;
|
||||
enum AT_PAGESZ = 6;
|
||||
enum AT_BASE = 7;
|
||||
enum AT_FLAGS = 8;
|
||||
enum AT_ENTRY = 9;
|
||||
enum AT_DCACHEBSIZE = 10;
|
||||
enum AT_ICACHEBSIZE = 11;
|
||||
enum AT_UCACHEBSIZE = 12;
|
||||
enum AT_EXECPATH = 13;
|
||||
enum AT_CANARY = 14;
|
||||
enum AT_CANARYLEN = 15;
|
||||
enum AT_OSRELDATE = 16;
|
||||
enum AT_NCPUS = 17;
|
||||
enum AT_PAGESIZES = 18;
|
||||
enum AT_PAGESIZESLEN = 19;
|
||||
enum AT_STACKPROT = 21;
|
||||
enum AT_TIMEKEEP = 22;
|
||||
enum AT_COUNT = 23;
|
||||
|
||||
/**
|
||||
* Relocation types.
|
||||
*/
|
||||
|
||||
enum R_PPC_COUNT = 37;
|
||||
enum R_PPC_EMB_COUNT = (R_PPC_EMB_RELSDA - R_PPC_EMB_NADDR32 + 1);
|
||||
|
||||
/**
|
||||
* Define "machine" characteristics
|
||||
*/
|
||||
|
||||
version (PPC64)
|
||||
{
|
||||
enum ELF_TARG_CLASS = ELFCLASS64;
|
||||
enum ELF_TARG_DATA = ELFDATA2MSB;
|
||||
enum ELF_TARG_MACH = EM_PPC64;
|
||||
enum ELF_TARG_VER = 1;
|
||||
}
|
||||
|
||||
version (PPC)
|
||||
{
|
||||
enum ELF_TARG_CLASS = ELFCLASS32;
|
||||
enum ELF_TARG_DATA = ELFDATA2MSB;
|
||||
enum ELF_TARG_MACH = EM_PPC;
|
||||
enum ELF_TARG_VER = 1;
|
||||
}
|
||||
|
||||
enum ET_DYN_LOAD_ADDR = 0x01010000;
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
/*******************************************************************************
|
||||
|
||||
D binding for Linux specific scheduler control methods.
|
||||
D binding for Linux specific scheduler control and thread spawning
|
||||
methods.
|
||||
|
||||
Defines functions sched_setaffinity and sched_getaffinity and the data
|
||||
types they operate on.
|
||||
Defines functions sched_setaffinity and sched_getaffinity and the data
|
||||
types they operate on, as well as clone and unshare and their related
|
||||
constants.
|
||||
|
||||
Copyright: Copyright (c) 2016 Sociomantic Labs. All rights reserved.
|
||||
License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
|
||||
|
@ -100,6 +102,24 @@ int CPU_COUNT(cpu_set_t* cpusetp) pure
|
|||
return __CPU_COUNT_S(cpu_set_t.sizeof, cpusetp);
|
||||
}
|
||||
|
||||
/* Functions */
|
||||
/* Scheduler control functions */
|
||||
int sched_setaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask);
|
||||
int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask);
|
||||
|
||||
/* Clone and related functions and constants */
|
||||
int clone(int function(void*), void* child_stack, int flags, void* arg, ...);
|
||||
int unshare(int flags) @trusted;
|
||||
|
||||
enum CLONE_FILES = 0x400;
|
||||
enum CLONE_FS = 0x200;
|
||||
enum CLONE_NEWCGROUP = 0x2000000;
|
||||
enum CLONE_NEWIPC = 0x8000000;
|
||||
enum CLONE_NEWNET = 0x40000000;
|
||||
enum CLONE_NEWNS = 0x20000;
|
||||
enum CLONE_NEWPID = 0x20000000;
|
||||
enum CLONE_NEWUSER = 0x10000000;
|
||||
enum CLONE_NEWUTS = 0x4000000;
|
||||
enum CLONE_SIGHAND = 0x800;
|
||||
enum CLONE_SYSVSEM = 0x40000;
|
||||
enum CLONE_THREAD = 0x10000;
|
||||
enum CLONE_VM = 0x100;
|
||||
|
|
21
libphobos/libdruntime/core/sys/linux/string.d
Normal file
21
libphobos/libdruntime/core/sys/linux/string.d
Normal file
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* D header file for Linux string.
|
||||
*
|
||||
* Copyright: Copyright © 2019, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Ernesto Castellotti
|
||||
*/
|
||||
module core.sys.linux.string;
|
||||
|
||||
public import core.stdc.string;
|
||||
import core.sys.linux.config;
|
||||
|
||||
version (linux):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
static if (__USE_GNU)
|
||||
{
|
||||
pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen);
|
||||
}
|
21
libphobos/libdruntime/core/sys/netbsd/string.d
Normal file
21
libphobos/libdruntime/core/sys/netbsd/string.d
Normal file
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* D header file for NetBSD string.
|
||||
*
|
||||
* Copyright: Copyright © 2019, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Ernesto Castellotti
|
||||
*/
|
||||
module core.sys.netbsd.string;
|
||||
|
||||
public import core.stdc.string;
|
||||
import core.sys.netbsd.sys.featuretest;
|
||||
|
||||
version (NetBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
static if (_NETBSD_SOURCE)
|
||||
{
|
||||
pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen);
|
||||
}
|
12
libphobos/libdruntime/core/sys/netbsd/sys/featuretest.d
Normal file
12
libphobos/libdruntime/core/sys/netbsd/sys/featuretest.d
Normal file
|
@ -0,0 +1,12 @@
|
|||
/**
|
||||
* D header file for NetBSD featuretest;.
|
||||
*
|
||||
* Copyright: Copyright © 2019, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Ernesto Castellotti
|
||||
*/
|
||||
module core.sys.netbsd.sys.featuretest;
|
||||
|
||||
version (NetBSD):
|
||||
|
||||
enum _NETBSD_SOURCE = true;
|
21
libphobos/libdruntime/core/sys/openbsd/string.d
Normal file
21
libphobos/libdruntime/core/sys/openbsd/string.d
Normal file
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* D header file for OpenBSD string.
|
||||
*
|
||||
* Copyright: Copyright © 2019, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Ernesto Castellotti
|
||||
*/
|
||||
module core.sys.openbsd.string;
|
||||
|
||||
public import core.stdc.string;
|
||||
import core.sys.openbsd.sys.cdefs;
|
||||
|
||||
version (OpenBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
static if (__BSD_VISIBLE)
|
||||
{
|
||||
pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen);
|
||||
}
|
|
@ -72,6 +72,10 @@ version (CRuntime_Glibc)
|
|||
}
|
||||
}
|
||||
}
|
||||
else version (CRuntime_Bionic)
|
||||
{
|
||||
// Bionic does not define aiocb.
|
||||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
// https://git.musl-libc.org/cgit/musl/tree/include/aio.h
|
||||
|
@ -446,6 +450,10 @@ version (CRuntime_Glibc)
|
|||
int lio_listio(int mode, const(aiocb*)* aiocb_list, int nitems, sigevent* sevp);
|
||||
}
|
||||
}
|
||||
else version (CRuntime_Bionic)
|
||||
{
|
||||
// Bionic does not implement aio.h
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
static if (__USE_LARGEFILE64)
|
||||
|
@ -517,7 +525,7 @@ version (CRuntime_Glibc)
|
|||
void aio_init(const(aioinit)* init);
|
||||
}
|
||||
}
|
||||
version (CRuntime_UClibc)
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
static if (__USE_GNU)
|
||||
{
|
||||
|
|
|
@ -506,7 +506,7 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
|
||||
int readdir_r(DIR*, dirent*, dirent**);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -591,6 +591,8 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
void seekdir(DIR*, c_long);
|
||||
c_long telldir(DIR*);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
|
|
@ -854,7 +854,15 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
enum PTHREAD_BARRIER_SERIAL_THREAD = -1;
|
||||
|
||||
int pthread_barrier_destroy(pthread_barrier_t*);
|
||||
int pthread_barrier_init(pthread_barrier_t*, in pthread_barrierattr_t*, uint);
|
||||
int pthread_barrier_wait(pthread_barrier_t*);
|
||||
int pthread_barrierattr_destroy(pthread_barrierattr_t*);
|
||||
int pthread_barrierattr_getpshared(in pthread_barrierattr_t*, int*);
|
||||
int pthread_barrierattr_init(pthread_barrierattr_t*);
|
||||
int pthread_barrierattr_setpshared(pthread_barrierattr_t*, int);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -880,6 +888,55 @@ else
|
|||
int pthread_condattr_getclock(in pthread_condattr_t*, clockid_t*);
|
||||
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
||||
*/
|
||||
version (CRuntime_Glibc)
|
||||
{
|
||||
int pthread_condattr_getclock(in pthread_condattr_t*, clockid_t*);
|
||||
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{
|
||||
int pthread_condattr_getclock(in pthread_condattr_t*, clockid_t*);
|
||||
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
||||
}
|
||||
else version (DragonFlyBSD)
|
||||
{
|
||||
int pthread_condattr_getclock(in pthread_condattr_t*, clockid_t*);
|
||||
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
||||
}
|
||||
else version (NetBSD)
|
||||
{
|
||||
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
||||
}
|
||||
else version (OpenBSD)
|
||||
{
|
||||
int pthread_condattr_getclock(in pthread_condattr_t*, clockid_t*);
|
||||
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
||||
}
|
||||
else version (Darwin)
|
||||
{
|
||||
}
|
||||
else version (Solaris)
|
||||
{
|
||||
int pthread_condattr_getclock(in pthread_condattr_t*, clockid_t*);
|
||||
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
||||
}
|
||||
else version (CRuntime_Bionic)
|
||||
{
|
||||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
int pthread_condattr_getclock(in pthread_condattr_t*, clockid_t*);
|
||||
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
int pthread_condattr_getclock(in pthread_condattr_t*, clockid_t*);
|
||||
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
||||
}
|
||||
else
|
||||
{
|
||||
static assert(false, "Unsupported platform");
|
||||
}
|
||||
|
||||
//
|
||||
// Spinlock (SPI)
|
||||
|
@ -948,7 +1005,11 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
|
||||
int pthread_spin_destroy(pthread_spinlock_t*);
|
||||
int pthread_spin_init(pthread_spinlock_t*, int);
|
||||
int pthread_spin_lock(pthread_spinlock_t*);
|
||||
int pthread_spin_trylock(pthread_spinlock_t*);
|
||||
int pthread_spin_unlock(pthread_spinlock_t*);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -1187,7 +1248,7 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
|
||||
int pthread_getcpuclockid(pthread_t, clockid_t*);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -1256,7 +1317,9 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
|
||||
int pthread_mutex_timedlock(pthread_mutex_t*, in timespec*);
|
||||
int pthread_rwlock_timedrdlock(pthread_rwlock_t*, in timespec*);
|
||||
int pthread_rwlock_timedwrlock(pthread_rwlock_t*, in timespec*);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -1693,7 +1756,12 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
|
||||
int pthread_condattr_getpshared(pthread_condattr_t*, int*);
|
||||
int pthread_condattr_setpshared(pthread_condattr_t*, int);
|
||||
int pthread_mutexattr_getpshared(pthread_mutexattr_t*, int*);
|
||||
int pthread_mutexattr_setpshared(pthread_mutexattr_t*, int);
|
||||
int pthread_rwlockattr_getpshared(pthread_rwlockattr_t*, int*);
|
||||
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t*, int);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
|
|
@ -172,7 +172,8 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
struct passwd {
|
||||
struct passwd
|
||||
{
|
||||
char *pw_name;
|
||||
char *pw_passwd;
|
||||
uid_t pw_uid;
|
||||
|
@ -257,6 +258,8 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
int getpwnam_r(in char*, passwd*, char*, size_t, passwd**);
|
||||
int getpwuid_r(uid_t, passwd*, char*, size_t, passwd**);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -325,8 +328,9 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
int getpwnam_r(in char*, passwd*, char*, size_t, passwd**);
|
||||
int getpwuid_r(uid_t, passwd*, char*, size_t, passwd**);
|
||||
void endpwent();
|
||||
passwd* getpwent();
|
||||
void setpwent();
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
|
|
@ -22,6 +22,8 @@ extern (C) nothrow @nogc:
|
|||
|
||||
version (RISCV32) version = RISCV_Any;
|
||||
version (RISCV64) version = RISCV_Any;
|
||||
version (PPC) version = PPC_Any;
|
||||
version (PPC64) version = PPC_Any;
|
||||
|
||||
//
|
||||
// Required
|
||||
|
@ -210,6 +212,11 @@ else version (FreeBSD)
|
|||
// __int128_t
|
||||
struct _jmp_buf { long[2][_JBLEN + 1] _jb; };
|
||||
}
|
||||
else version (PPC_Any)
|
||||
{
|
||||
enum _JBLEN = 100;
|
||||
struct _jmp_buf { long[_JBLEN + 1] _jb; }
|
||||
}
|
||||
else
|
||||
static assert(0);
|
||||
alias _jmp_buf[1] jmp_buf;
|
||||
|
@ -417,6 +424,10 @@ else version (FreeBSD)
|
|||
// __int128_t
|
||||
struct _sigjmp_buf { long[2][_JBLEN + 1] _jb; };
|
||||
}
|
||||
else version (PPC_Any)
|
||||
{
|
||||
struct _sigjmp_buf { long[_JBLEN + 1] _sjb; }
|
||||
}
|
||||
else
|
||||
static assert(0);
|
||||
alias _sigjmp_buf[1] sigjmp_buf;
|
||||
|
|
|
@ -1136,55 +1136,57 @@ else version (NetBSD)
|
|||
enum SIG_UNBLOCK = 2;
|
||||
enum SIG_SETMASK = 3;
|
||||
|
||||
union sigval_t {
|
||||
int sival_int;
|
||||
void *sival_ptr;
|
||||
};
|
||||
struct _rt{
|
||||
pid_t _pid;
|
||||
uid_t _uid;
|
||||
sigval_t _value;
|
||||
};
|
||||
struct _child{
|
||||
pid_t _pid;
|
||||
uid_t _uid;
|
||||
int _status;
|
||||
clock_t _utime;
|
||||
clock_t _stime;
|
||||
};
|
||||
struct _fault{
|
||||
void *_addr;
|
||||
int _trap;
|
||||
int _trap2;
|
||||
int _trap3;
|
||||
};
|
||||
struct _poll{
|
||||
long _band;
|
||||
int _fd;
|
||||
};
|
||||
union _reason{
|
||||
_rt rt;
|
||||
_child child;
|
||||
_fault fault;
|
||||
_poll poll;
|
||||
};
|
||||
struct _ksiginfo {
|
||||
union sigval_t
|
||||
{
|
||||
int sival_int;
|
||||
void* sival_ptr;
|
||||
}
|
||||
|
||||
struct _ksiginfo
|
||||
{
|
||||
int _signo;
|
||||
int _code;
|
||||
int _errno;
|
||||
/+#ifdef _LP64
|
||||
/* In _LP64 the union starts on an 8-byte boundary. */
|
||||
int _pad;
|
||||
#endif+/
|
||||
_reason reason;
|
||||
};
|
||||
version (D_LP64)
|
||||
int _pad;
|
||||
|
||||
union reason_t
|
||||
{
|
||||
struct rt_t
|
||||
{
|
||||
pid_t _pid;
|
||||
uid_t _uid;
|
||||
sigval_t _value;
|
||||
} rt_t _rt;
|
||||
struct child_t
|
||||
{
|
||||
pid_t _pid;
|
||||
uid_t _uid;
|
||||
int _status;
|
||||
clock_t _utime;
|
||||
clock_t _stime;
|
||||
} child_t _child;
|
||||
struct fault_t
|
||||
{
|
||||
void* _addr;
|
||||
int _trap;
|
||||
int _trap2;
|
||||
int _trap3;
|
||||
} fault_t fault;
|
||||
struct poll_t
|
||||
{
|
||||
c_long _band;
|
||||
int _fd;
|
||||
} poll_t _poll;
|
||||
}
|
||||
reason_t _reason;
|
||||
}
|
||||
|
||||
union siginfo_t
|
||||
{
|
||||
ubyte[128] si_pad;/* Total size; for future expansion */
|
||||
ubyte[128] si_pad;
|
||||
_ksiginfo _info;
|
||||
@property ref c_long si_band() return { return _info.reason.poll._band; }
|
||||
@property ref c_long si_band() return { return _info._reason._poll._band; }
|
||||
}
|
||||
|
||||
enum SI_USER = 0;
|
||||
|
@ -1589,27 +1591,53 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
struct sigset_t {
|
||||
ulong[128/long.sizeof] __bits;
|
||||
struct sigset_t
|
||||
{
|
||||
c_ulong[128/c_long.sizeof] __bits;
|
||||
}
|
||||
|
||||
enum SIG_BLOCK = 0;
|
||||
enum SIG_UNBLOCK = 1;
|
||||
enum SIG_SETMASK = 2;
|
||||
version (MIPS_Any)
|
||||
{
|
||||
enum SIG_BLOCK = 1;
|
||||
enum SIG_UNBLOCK = 2;
|
||||
enum SIG_SETMASK = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
enum SIG_BLOCK = 0;
|
||||
enum SIG_UNBLOCK = 1;
|
||||
enum SIG_SETMASK = 2;
|
||||
}
|
||||
|
||||
struct siginfo_t {
|
||||
int si_signo, si_errno, si_code;
|
||||
union __si_fields_t {
|
||||
char[128 - 2*int.sizeof - long.sizeof] __pad = 0;
|
||||
struct __si_common_t {
|
||||
union __first_t {
|
||||
struct __piduid_t {
|
||||
struct siginfo_t
|
||||
{
|
||||
int si_signo;
|
||||
version (MIPS_Any) // __SI_SWAP_ERRNO_CODE
|
||||
{
|
||||
int si_code;
|
||||
int si_errno;
|
||||
}
|
||||
else
|
||||
{
|
||||
int si_errno;
|
||||
int si_code;
|
||||
}
|
||||
union __si_fields_t
|
||||
{
|
||||
char[128 - 2*int.sizeof - c_long.sizeof] __pad = 0;
|
||||
struct __si_common_t
|
||||
{
|
||||
union __first_t
|
||||
{
|
||||
struct __piduid_t
|
||||
{
|
||||
pid_t si_pid;
|
||||
uid_t si_uid;
|
||||
}
|
||||
__piduid_t __piduid;
|
||||
|
||||
struct __timer_t {
|
||||
struct __timer_t
|
||||
{
|
||||
int si_timerid;
|
||||
int si_overrun;
|
||||
}
|
||||
|
@ -1617,11 +1645,14 @@ else version (CRuntime_Musl)
|
|||
}
|
||||
__first_t __first;
|
||||
|
||||
union __second_t {
|
||||
union __second_t
|
||||
{
|
||||
sigval si_value;
|
||||
struct __sigchld_t {
|
||||
struct __sigchld_t
|
||||
{
|
||||
int si_status;
|
||||
clock_t si_utime, si_stime;
|
||||
clock_t si_utime;
|
||||
clock_t si_stime;
|
||||
}
|
||||
__sigchld_t __sigchld;
|
||||
}
|
||||
|
@ -1629,11 +1660,14 @@ else version (CRuntime_Musl)
|
|||
}
|
||||
__si_common_t __si_common;
|
||||
|
||||
struct __sigfault_t {
|
||||
struct __sigfault_t
|
||||
{
|
||||
void *si_addr;
|
||||
short si_addr_lsb;
|
||||
union __first_t {
|
||||
struct __addr_bnd_t {
|
||||
union __first_t
|
||||
{
|
||||
struct __addr_bnd_t
|
||||
{
|
||||
void *si_lower;
|
||||
void *si_upper;
|
||||
}
|
||||
|
@ -1644,13 +1678,15 @@ else version (CRuntime_Musl)
|
|||
}
|
||||
__sigfault_t __sigfault;
|
||||
|
||||
struct __sigpoll_t {
|
||||
long si_band;
|
||||
struct __sigpoll_t
|
||||
{
|
||||
c_long si_band;
|
||||
int si_fd;
|
||||
}
|
||||
__sigpoll_t __sigpoll;
|
||||
|
||||
struct __sigsys_t {
|
||||
struct __sigsys_t
|
||||
{
|
||||
void *si_call_addr;
|
||||
int si_syscall;
|
||||
uint si_arch;
|
||||
|
@ -3030,7 +3066,177 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
enum SA_RESTART = 0x10000000;
|
||||
version (MIPS_Any)
|
||||
{
|
||||
enum SIGPOLL = 22;
|
||||
enum SIGPROF = 29;
|
||||
enum SIGSYS = 12;
|
||||
enum SIGTRAP = 5;
|
||||
enum SIGVTALRM = 28;
|
||||
enum SIGXCPU = 30;
|
||||
enum SIGXFSZ = 31;
|
||||
|
||||
enum SA_ONSTACK = 0x08000000;
|
||||
enum SA_RESETHAND = 0x80000000;
|
||||
enum SA_RESTART = 0x10000000;
|
||||
enum SA_SIGINFO = 8;
|
||||
enum SA_NOCLDWAIT = 0x10000;
|
||||
enum SA_NODEFER = 0x40000000;
|
||||
}
|
||||
else
|
||||
{
|
||||
enum SIGPOLL = 29;
|
||||
enum SIGPROF = 27;
|
||||
enum SIGSYS = 31;
|
||||
enum SIGTRAP = 5;
|
||||
enum SIGVTALRM = 26;
|
||||
enum SIGXCPU = 24;
|
||||
enum SIGXFSZ = 25;
|
||||
|
||||
enum SA_ONSTACK = 0x08000000;
|
||||
enum SA_RESETHAND = 0x80000000;
|
||||
enum SA_RESTART = 0x10000000;
|
||||
enum SA_SIGINFO = 4;
|
||||
enum SA_NOCLDWAIT = 2;
|
||||
enum SA_NODEFER = 0x40000000;
|
||||
}
|
||||
|
||||
enum SS_ONSTACK = 1;
|
||||
enum SS_DISABLE = 2;
|
||||
|
||||
version (ARM)
|
||||
{
|
||||
enum MINSIGSTKSZ = 2048;
|
||||
enum SIGSTKSZ = 8192;
|
||||
}
|
||||
else version (AArch64)
|
||||
{
|
||||
enum MINSIGSTKSZ = 6144;
|
||||
enum SIGSTKSZ = 12288;
|
||||
}
|
||||
else version (IBMZ_Any)
|
||||
{
|
||||
enum MINSIGSTKSZ = 4096;
|
||||
enum SIGSTKSZ = 10240;
|
||||
}
|
||||
else version (MIPS_Any)
|
||||
{
|
||||
enum MINSIGSTKSZ = 2048;
|
||||
enum SIGSTKSZ = 8192;
|
||||
}
|
||||
else version (PPC_Any)
|
||||
{
|
||||
enum MINSIGSTKSZ = 4096;
|
||||
enum SIGSTKSZ = 10240;
|
||||
}
|
||||
else version (X86_Any)
|
||||
{
|
||||
enum MINSIGSTKSZ = 2048;
|
||||
enum SIGSTKSZ = 8192;
|
||||
}
|
||||
else
|
||||
static assert(0, "unimplemented");
|
||||
|
||||
//ucontext_t (defined in core.sys.posix.ucontext)
|
||||
//mcontext_t (defined in core.sys.posix.ucontext)
|
||||
|
||||
version (MIPS_Any)
|
||||
{
|
||||
struct stack_t
|
||||
{
|
||||
void* ss_sp;
|
||||
size_t ss_size;
|
||||
int ss_flags;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
struct stack_t
|
||||
{
|
||||
void* ss_sp;
|
||||
int ss_flags;
|
||||
size_t ss_size;
|
||||
}
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
ILL_ILLOPC = 1,
|
||||
ILL_ILLOPN,
|
||||
ILL_ILLADR,
|
||||
ILL_ILLTRP,
|
||||
ILL_PRVOPC,
|
||||
ILL_PRVREG,
|
||||
ILL_COPROC,
|
||||
ILL_BADSTK
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
FPE_INTDIV = 1,
|
||||
FPE_INTOVF,
|
||||
FPE_FLTDIV,
|
||||
FPE_FLTOVF,
|
||||
FPE_FLTUND,
|
||||
FPE_FLTRES,
|
||||
FPE_FLTINV,
|
||||
FPE_FLTSUB
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
SEGV_MAPERR = 1,
|
||||
SEGV_ACCERR
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
BUS_ADRALN = 1,
|
||||
BUS_ADRERR,
|
||||
BUS_OBJERR
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
TRAP_BRKPT = 1,
|
||||
TRAP_TRACE
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
CLD_EXITED = 1,
|
||||
CLD_KILLED,
|
||||
CLD_DUMPED,
|
||||
CLD_TRAPPED,
|
||||
CLD_STOPPED,
|
||||
CLD_CONTINUED
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
POLL_IN = 1,
|
||||
POLL_OUT,
|
||||
POLL_MSG,
|
||||
POLL_ERR,
|
||||
POLL_PRI,
|
||||
POLL_HUP
|
||||
}
|
||||
|
||||
sigfn_t bsd_signal(int sig, sigfn_t func);
|
||||
sigfn_t sigset(int sig, sigfn_t func);
|
||||
|
||||
nothrow:
|
||||
@nogc:
|
||||
sigfn_t2 bsd_signal(int sig, sigfn_t2 func);
|
||||
sigfn_t2 sigset(int sig, sigfn_t2 func);
|
||||
|
||||
int killpg(pid_t, int);
|
||||
int sigaltstack(const scope stack_t*, stack_t*);
|
||||
int sighold(int);
|
||||
int sigignore(int);
|
||||
int siginterrupt(int, int);
|
||||
int sigpause(int);
|
||||
int sigrelse(int);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -3485,7 +3691,7 @@ else version (CRuntime_Musl)
|
|||
int sigev_notify;
|
||||
void function(sigval) sigev_notify_function;
|
||||
pthread_attr_t *sigev_notify_attributes;
|
||||
char[56 - 3 * long.sizeof] __pad = void;
|
||||
char[56 - 3 * c_long.sizeof] __pad = void;
|
||||
}
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
|
|
61
libphobos/libdruntime/core/sys/posix/sys/ioccom.d
Executable file → Normal file
61
libphobos/libdruntime/core/sys/posix/sys/ioccom.d
Executable file → Normal file
|
@ -66,3 +66,64 @@ version (OSX)
|
|||
return _IOC!(T)(IOC_INOUT, cast(uint)g, cast(uint)n, T.sizeof);
|
||||
}
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{
|
||||
/* FreeBSD ioctl's encode the command in the lower 16-bits
|
||||
* and the size of any in/out parameters in the lower 13 bits of the upper
|
||||
* 16-bits of a 32 bit unsigned integer. The high 3 bits of the upper
|
||||
* 16-bits encode the in/out status of the parameter.
|
||||
*/
|
||||
enum uint IOCPARM_SHIFT = 13; // number of bits for ioctl size
|
||||
enum uint IOCPARM_MASK = ((1 << IOCPARM_SHIFT) - 1); // parameter length mask
|
||||
uint IOCPARM_LEN(uint x) // to extract the encoded parameter length
|
||||
{
|
||||
return ((x >> 16) & IOCPARM_MASK);
|
||||
}
|
||||
uint IOCBASECMD(uint x) // to extract the encoded command
|
||||
{
|
||||
return (x & ~(IOCPARM_MASK << 16));
|
||||
}
|
||||
uint IOCGROUP(uint x) // to extract the encoded group
|
||||
{
|
||||
return ((x >> 8) & 0xff);
|
||||
}
|
||||
|
||||
enum uint IOCPARM_MAX = (1 << IOCPARM_SHIFT); // max size of ioctl args
|
||||
|
||||
enum uint IOC_VOID = 0x20000000; // no parameters
|
||||
enum uint IOC_OUT = 0x40000000; // copy parameters back
|
||||
enum uint IOC_IN = 0x80000000; // copy parameters into
|
||||
enum uint IOC_INOUT = (IOC_IN | IOC_OUT);
|
||||
enum uint IOC_DIRMASK = (IOC_VOID|IOC_OUT|IOC_IN);
|
||||
|
||||
// encode the ioctl info into 32 bits
|
||||
uint _IOC(uint inorout, uint group, uint num, size_t len)
|
||||
{
|
||||
return (inorout | ((len & IOCPARM_MASK) << 16) | (group << 8) | num);
|
||||
}
|
||||
|
||||
// encode a command with no parameters
|
||||
uint _IO(char g, int n)
|
||||
{
|
||||
return _IOC(IOC_VOID, cast(uint)g, cast(uint)n, cast(size_t)0);
|
||||
}
|
||||
uint _IOWINT(char g, int n)
|
||||
{
|
||||
return _IOC(IOC_VOID, cast(uint)g, cast(uint)n, int.sizeof);
|
||||
}
|
||||
// encode a command that returns info
|
||||
uint _IOR(T)(char g, int n)
|
||||
{
|
||||
return _IOC(IOC_OUT, cast(uint)g, cast(uint)n, T.sizeof);
|
||||
}
|
||||
// encode a command that takes info
|
||||
uint _IOW(T)(char g, int n)
|
||||
{
|
||||
return _IOC(IOC_IN, cast(uint)g, cast(uint)n, T.sizeof);
|
||||
}
|
||||
// encode a command that takes info and returns info
|
||||
uint _IOWR(T)(char g, int n)
|
||||
{
|
||||
return _IOC(IOC_INOUT, cast(uint)g, cast(uint)n, T.sizeof);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
module core.sys.posix.sys.ioctl;
|
||||
|
||||
import core.stdc.config;
|
||||
public import core.sys.posix.sys.ttycom;
|
||||
|
||||
version (OSX)
|
||||
version = Darwin;
|
||||
|
@ -357,14 +358,6 @@ else version (FreeBSD)
|
|||
void* buf;
|
||||
}
|
||||
|
||||
struct winsize
|
||||
{
|
||||
ushort ws_row;
|
||||
ushort ws_col;
|
||||
ushort ws_xpixel;
|
||||
ushort ws_ypixel;
|
||||
}
|
||||
|
||||
int ioctl(int, c_ulong, ...);
|
||||
}
|
||||
else version (NetBSD)
|
||||
|
|
|
@ -137,6 +137,15 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
enum
|
||||
{
|
||||
POSIX_MADV_NORMAL = 0,
|
||||
POSIX_MADV_RANDOM = 1,
|
||||
POSIX_MADV_SEQUENTIAL = 2,
|
||||
POSIX_MADV_WILLNEED = 3,
|
||||
POSIX_MADV_DONTNEED = 4,
|
||||
}
|
||||
int posix_madvise(void *, size_t, int);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -655,6 +664,14 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
enum
|
||||
{
|
||||
MCL_CURRENT = 1,
|
||||
MCL_FUTURE = 2,
|
||||
}
|
||||
|
||||
int mlockall(int);
|
||||
int munlockall();
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -723,6 +740,8 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
int mlock(in void*, size_t);
|
||||
int munlock(in void*, size_t);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -834,6 +853,8 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
int shm_open(in char*, int, mode_t);
|
||||
int shm_unlink(in char*);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
|
|
@ -1359,41 +1359,8 @@ else version (DragonFlyBSD)
|
|||
AF_LOCAL = 1,
|
||||
AF_UNIX = AF_LOCAL,
|
||||
AF_INET = 2,
|
||||
AF_IMPLINK = 3,
|
||||
AF_PUP = 4,
|
||||
AF_CHAOS = 5,
|
||||
AF_NETBIOS = 6,
|
||||
AF_ISO = 7,
|
||||
AF_OSI = AF_ISO,
|
||||
AF_ECMA = 8,
|
||||
AF_DATAKIT = 9,
|
||||
AF_CCITT = 10,
|
||||
AF_SNA = 11,
|
||||
AF_DECnet = 12,
|
||||
AF_DLI = 13,
|
||||
AF_LAT = 14,
|
||||
AF_HYLINK = 15,
|
||||
AF_APPLETALK = 16,
|
||||
AF_ROUTE = 17,
|
||||
AF_LINK = 18,
|
||||
pseudo_AF_XTP = 19,
|
||||
AF_COIP = 20,
|
||||
AF_CNT = 21,
|
||||
pseudo_AF_RTIP = 22,
|
||||
AF_IPX = 23,
|
||||
AF_SIP = 24,
|
||||
pseudo_AF_PIP = 25,
|
||||
AF_ISDN = 26,
|
||||
AF_E164 = AF_ISDN,
|
||||
pseudo_AF_KEY = 27,
|
||||
//AF_INET6 = 28, // defined below
|
||||
AF_NATM = 29,
|
||||
AF_ATM = 30,
|
||||
pseudo_AF_HDRCMPLT = 31,
|
||||
AF_NETGRAPH = 32,
|
||||
AF_BLUETOOTH = 33,
|
||||
AF_MPLS = 34,
|
||||
AF_IEEE80211 = 35,
|
||||
}
|
||||
|
||||
struct sockaddr
|
||||
|
@ -1427,43 +1394,6 @@ else version (DragonFlyBSD)
|
|||
byte[_SS_PAD2SIZE] __ss_pad2;
|
||||
}
|
||||
|
||||
/* protocol families */
|
||||
enum PF_UNSPEC = AF_UNSPEC;
|
||||
enum PF_LOCAL = AF_LOCAL;
|
||||
enum PF_UNIX = PF_LOCAL;
|
||||
enum PF_INET = AF_INET;
|
||||
enum PF_IMPLINK = AF_IMPLINK;
|
||||
enum PF_PUP = AF_PUP;
|
||||
enum PF_CHAOS = AF_CHAOS;
|
||||
enum PF_NETBIOS = AF_NETBIOS;
|
||||
enum PF_ISO = AF_ISO;
|
||||
enum PF_OSI = AF_ISO;
|
||||
enum PF_ECMA = AF_ECMA;
|
||||
enum PF_DATAKIT = AF_DATAKIT;
|
||||
enum PF_CCITT = AF_CCITT;
|
||||
enum PF_SNA = AF_SNA;
|
||||
enum PF_DECnet = AF_DECnet;
|
||||
enum PF_DLI = AF_DLI;
|
||||
enum PF_LAT = AF_LAT;
|
||||
enum PF_HYLINK = AF_HYLINK;
|
||||
enum PF_APPLETALK = AF_APPLETALK;
|
||||
enum PF_ROUTE = AF_ROUTE;
|
||||
enum PF_LINK = AF_LINK;
|
||||
enum PF_XTP = pseudo_AF_XTP;
|
||||
enum PF_COIP = AF_COIP;
|
||||
enum PF_CNT = AF_CNT;
|
||||
enum PF_SIP = AF_SIP;
|
||||
enum PF_IPX = AF_IPX;
|
||||
enum PF_RTIP = pseudo_AF_RTIP;
|
||||
enum PF_PIP = pseudo_AF_PIP;
|
||||
enum PF_ISDN = AF_ISDN;
|
||||
enum PF_KEY = pseudo_AF_KEY;
|
||||
enum PF_INET6 = AF_INET6;
|
||||
enum PF_NATM = AF_NATM;
|
||||
enum PF_ATM = AF_ATM;
|
||||
enum PF_NETGRAPH = AF_NETGRAPH;
|
||||
enum PF_BLUETOOTH = AF_BLUETOOTH;
|
||||
|
||||
struct msghdr
|
||||
{
|
||||
void* msg_name;
|
||||
|
@ -1928,10 +1858,10 @@ else version (CRuntime_Musl)
|
|||
c_ulong __ss_align;
|
||||
}
|
||||
|
||||
enum {
|
||||
enum
|
||||
{
|
||||
SOCK_STREAM = 1,
|
||||
SOCK_DGRAM = 2,
|
||||
SOCK_RAW = 3,
|
||||
SOCK_RDM = 4,
|
||||
SOCK_SEQPACKET = 5,
|
||||
SOCK_DCCP = 6,
|
||||
|
@ -2374,6 +2304,10 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
enum
|
||||
{
|
||||
SOCK_RAW = 3
|
||||
}
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
|
96
libphobos/libdruntime/core/sys/posix/sys/ttycom.d
Executable file → Normal file
96
libphobos/libdruntime/core/sys/posix/sys/ttycom.d
Executable file → Normal file
|
@ -108,3 +108,99 @@ version (OSX)
|
|||
enum uint SLIPDISC = 4; // serial IP discipline
|
||||
enum uint PPPDISC = 5; // PPP discipline
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{
|
||||
struct winsize {
|
||||
ushort ws_row; // rows, in characters
|
||||
ushort ws_col; // columns, in characters
|
||||
ushort ws_xpixel; // horizontal size, pixels
|
||||
ushort ws_ypixel; // vertical size, pixels
|
||||
}
|
||||
|
||||
// Serial/TTY ioctl's
|
||||
// 0-2 compat
|
||||
// 3-7 unused
|
||||
// 8-10 compat
|
||||
// 11-12 unused
|
||||
enum uint TIOCEXCL = _IO('t', 13); // set exclusive use of tty
|
||||
enum uint TIOCNXCL = _IO('t', 14); // reset exclusive use of tty
|
||||
enum uint TIOCGPTN = _IOR!(int)('t', 15); // get pts number
|
||||
enum uint TIOCFLUSH = _IOW!(int)('t', 16); // flush buffers
|
||||
// 17-18 compat
|
||||
enum uint TIOCGETA = _IOR!(termios)('t', 19); // get termios struct
|
||||
enum uint TIOCSETA = _IOW!(termios)('t', 20); // set termios struct
|
||||
enum uint TIOCSETAW = _IOW!(termios)('t', 21); // drain output, set
|
||||
enum uint TIOCSETAF = _IOW!(termios)('t', 22); // drn out, fls in, set
|
||||
// 23-25 unused
|
||||
enum uint TIOCGETD = _IOR!(int)('t', 26); // get line discipline
|
||||
enum uint TIOCSETD = _IOW!(int)('t', 27); // set line discipline
|
||||
enum uint TIOCPTMASTER = _IO('t', 28); // pts master validation
|
||||
// 29-85 unused
|
||||
enum uint TIOCGDRAINWAIT = _IOR!(int)('t', 86); // get ttywait timeout
|
||||
enum uint TIOCSDRAINWAIT = _IOW!(int)('t', 87); // set ttywait timeout
|
||||
// 88 unused
|
||||
// 89-91 conflicts: tun and tap
|
||||
enum uint TIOCTIMESTAMP = _IOR!(timeval)('t', 89); // enable/get timestamp of last input event
|
||||
enum uint TIOCMGDTRWAIT = _IOR!(int)('t', 90); // modem: get wait on close
|
||||
enum uint TIOCMSDTRWAIT = _IOW!(int)('t', 91); // modem: set wait on close
|
||||
// 92-93 tun and tap
|
||||
// 94-97 conflicts: tun and tap
|
||||
enum uint TIOCDRAIN = _IO('t', 94); // wait till output drained
|
||||
enum uint TIOCSIG = _IOWINT('t', 95); // pty: generate signal
|
||||
enum uint TIOCEXT = _IOW!(int)('t', 96); // pty: external processing
|
||||
enum uint TIOCSCTTY = _IO('t', 97); // become controlling tty
|
||||
enum uint TIOCCONS = _IOW!(int)('t', 98); // become virtual console
|
||||
enum uint TIOCGSID = _IOR!(int)('t', 99); // get session id
|
||||
// 100 unused
|
||||
enum uint TIOCSTAT = _IO('t', 101); // simulate ^T status message
|
||||
enum uint TIOCUCNTL = _IOW!(int)('t', 102); // pty: set/clr usr cntl mode
|
||||
enum uint UIOCCMD(n) = _IO('u', n); // usr cntl op "n"
|
||||
enum uint TIOCSWINSZ = _IOW!(winsize)('t', 103); // set window size
|
||||
enum uint TIOCGWINSZ = _IOR!(winsize)('t', 104); // get window size
|
||||
// 105 unused
|
||||
enum uint TIOCMGET = _IOR!(int)('t', 106); // get all modem bits
|
||||
enum uint TIOCM_LE = 0x01; // line enable
|
||||
enum uint TIOCM_DTR = 0x02; // data terminal ready
|
||||
enum uint TIOCM_RTS = 0x04; // request to send
|
||||
enum uint TIOCM_ST = 0x08; // secondary transmit
|
||||
enum uint TIOCM_SR = 0x10; // secondary receive
|
||||
enum uint TIOCM_CTS = 0x20; // clear to send
|
||||
enum uint TIOCM_DCD = 0x40; // data carrier detect
|
||||
enum uint TIOCM_RI = 0x80; // ring indicate
|
||||
enum uint TIOCM_DSR = 0x100; // data set ready
|
||||
enum uint TIOCM_CD = TIOCM_DCD;
|
||||
enum uint TIOCM_CAR = TIOCM_DCD;
|
||||
enum uint TIOCM_RNG = TIOCM_RI;
|
||||
enum uint TIOCMBIC = _IOW!(int)('t', 107); // bic modem bits
|
||||
enum uint TIOCMBIS = _IOW!(int)('t', 108); // bis modem bits
|
||||
enum uint TIOCMSET = _IOW!(int)('t', 109); // set all modem bits
|
||||
enum uint TIOCSTART = _IO('t', 110); // start output like ^Q
|
||||
enum uint TIOCSTOP = _IO('t', 111); // stop output like ^S
|
||||
enum uint TIOCPKT = _IOW!(int)('t', 112); // pty: set/clr packet mode
|
||||
enum uint TIOCPKT_DATA = 0x00; // data packet
|
||||
enum uint TIOCPKT_FLUSHREAD = 0x01; // flush packet
|
||||
enum uint TIOCPKT_FLUSHWRITE = 0x02; // flush packet
|
||||
enum uint TIOCPKT_STOP = 0x04; // stop output
|
||||
enum uint TIOCPKT_START = 0x08; // start output
|
||||
enum uint TIOCPKT_NOSTOP = 0x10; // no more ^S, ^Q
|
||||
enum uint TIOCPKT_DOSTOP = 0x20; // now do ^S, ^Q
|
||||
enum uint TIOCPKT_IOCTL = 0x40; // state change of pty driver
|
||||
enum uint TIOCNOTTY = _IO('t', 113); // void tty association
|
||||
enum uint TIOCSTI = _IOW!(char)('t', 114); // simulate terminal input
|
||||
enum uint TIOCOUTQ = _IOR!(int)('t', 115); // output queue size
|
||||
// 116-117 compat
|
||||
enum uint TIOCSPGRP = _IOW!(int)('t', 118); // set pgrp of tty
|
||||
enum uint TIOCGPGRP = _IOR!(int)('t', 119); // get pgrp of tty
|
||||
|
||||
enum uint TIOCCDTR = _IO('t', 120); // clear data terminal ready
|
||||
enum uint TIOCSDTR = _IO('t', 121); // set data terminal ready
|
||||
enum uint TIOCCBRK = _IO('t', 122); // clear break bit
|
||||
enum uint TIOCSBRK = _IO('t', 123); // set break bit
|
||||
// 124-127 compat
|
||||
|
||||
enum uint TTYDISC = 0; // termios tty line discipline
|
||||
enum uint SLIPDISC = 4; // serial IP discipline
|
||||
enum uint PPPDISC = 5; // PPP discipline
|
||||
enum uint NETGRAPHDISC = 6; // Netgraph tty node discipline
|
||||
enum uint H4DISC = 7; // Netgraph Blutooth H4 discipline
|
||||
}
|
||||
|
|
|
@ -112,20 +112,25 @@ version (CRuntime_Glibc)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
alias long blksize_t;
|
||||
alias ulong nlink_t;
|
||||
alias long dev_t;
|
||||
alias long blkcnt_t;
|
||||
alias ulong ino_t;
|
||||
alias long off_t;
|
||||
alias long _Addr;
|
||||
alias int pid_t;
|
||||
alias uint uid_t;
|
||||
alias uint gid_t;
|
||||
alias long time_t;
|
||||
alias long clock_t;
|
||||
alias ulong pthread_t;
|
||||
alias _Addr ssize_t;
|
||||
alias c_long blksize_t;
|
||||
alias c_ulong nlink_t;
|
||||
alias long dev_t;
|
||||
alias long blkcnt_t;
|
||||
alias ulong ino_t;
|
||||
alias long off_t;
|
||||
alias int pid_t;
|
||||
alias uint uid_t;
|
||||
alias uint gid_t;
|
||||
version (D_X32)
|
||||
alias long time_t;
|
||||
else
|
||||
alias c_long time_t;
|
||||
alias c_long clock_t;
|
||||
alias c_ulong pthread_t;
|
||||
version (D_LP64)
|
||||
alias c_long ssize_t;
|
||||
else
|
||||
alias int ssize_t;
|
||||
}
|
||||
else version (Darwin)
|
||||
{
|
||||
|
@ -447,7 +452,10 @@ else version (CRuntime_Musl)
|
|||
}
|
||||
alias uint mode_t;
|
||||
alias uint id_t;
|
||||
alias long suseconds_t;
|
||||
version (D_X32)
|
||||
alias long susseconds_t;
|
||||
else
|
||||
alias c_long suseconds_t;
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -750,40 +758,77 @@ version (CRuntime_Glibc)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
version (X86_64) {
|
||||
version (D_LP64)
|
||||
{
|
||||
union pthread_attr_t
|
||||
{
|
||||
int[14] __i;
|
||||
ulong[7] __s;
|
||||
}
|
||||
|
||||
union pthread_cond_t
|
||||
{
|
||||
int[12] __i;
|
||||
void*[6] __p;
|
||||
}
|
||||
|
||||
union pthread_mutex_t
|
||||
{
|
||||
int[10] __i;
|
||||
void*[5] __p;
|
||||
}
|
||||
|
||||
union pthread_rwlock_t
|
||||
{
|
||||
int[14] __i;
|
||||
void*[7] __p;
|
||||
}
|
||||
struct pthread_rwlockattr_t
|
||||
{
|
||||
uint[2] __attr;
|
||||
}
|
||||
alias uint pthread_key_t;
|
||||
alias uint pthread_condattr_t;
|
||||
alias uint pthread_mutexattr_t;
|
||||
alias int pthread_once_t;
|
||||
}
|
||||
else
|
||||
{
|
||||
static assert (false, "Architecture unsupported");
|
||||
union pthread_attr_t
|
||||
{
|
||||
int[9] __i;
|
||||
uint[9] __s;
|
||||
}
|
||||
|
||||
union pthread_cond_t
|
||||
{
|
||||
int[12] __i;
|
||||
void*[12] __p;
|
||||
}
|
||||
|
||||
union pthread_mutex_t
|
||||
{
|
||||
int[6] __i;
|
||||
void*[6] __p;
|
||||
}
|
||||
|
||||
union pthread_rwlock_t
|
||||
{
|
||||
int[8] __i;
|
||||
void*[8] __p;
|
||||
}
|
||||
}
|
||||
|
||||
struct pthread_rwlockattr_t
|
||||
{
|
||||
uint[2] __attr;
|
||||
}
|
||||
|
||||
alias uint pthread_key_t;
|
||||
|
||||
struct pthread_condattr_t
|
||||
{
|
||||
uint __attr;
|
||||
}
|
||||
|
||||
struct pthread_mutexattr_t
|
||||
{
|
||||
uint __attr;
|
||||
}
|
||||
|
||||
alias int pthread_once_t;
|
||||
}
|
||||
else version (Darwin)
|
||||
{
|
||||
|
@ -1352,6 +1397,27 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
version (D_LP64)
|
||||
{
|
||||
union pthread_barrier_t
|
||||
{
|
||||
int[8] __i;
|
||||
void*[4] __p;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
union pthread_barrier_t
|
||||
{
|
||||
int[5] __i;
|
||||
void*[5] __p;
|
||||
}
|
||||
}
|
||||
|
||||
struct pthread_barrierattr_t
|
||||
{
|
||||
uint __attr;
|
||||
}
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
@ -1407,6 +1473,10 @@ else version (CRuntime_UClibc)
|
|||
{
|
||||
alias int pthread_spinlock_t; // volatile
|
||||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
alias int pthread_spinlock_t;
|
||||
}
|
||||
|
||||
//
|
||||
// Timer (TMR)
|
||||
|
|
|
@ -392,6 +392,19 @@ else version (CRuntime_Bionic)
|
|||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
enum WEXITED = 4;
|
||||
enum WSTOPPED = 2;
|
||||
enum WCONTINUED = 8;
|
||||
enum WNOWAIT = 0x01000000;
|
||||
|
||||
enum idtype_t
|
||||
{
|
||||
P_ALL,
|
||||
P_PID,
|
||||
P_PGID
|
||||
}
|
||||
|
||||
int waitid(idtype_t, id_t, siginfo_t*, int);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
|
|
@ -127,22 +127,10 @@ CLOCK_MONOTONIC
|
|||
version (linux)
|
||||
{
|
||||
enum CLOCK_MONOTONIC = 1;
|
||||
// To be removed in December 2015.
|
||||
static import core.sys.linux.time;
|
||||
deprecated("Please import it from core.sys.linux.time instead.")
|
||||
alias CLOCK_MONOTONIC_RAW = core.sys.linux.time.CLOCK_MONOTONIC_RAW; // non-standard
|
||||
deprecated("Please import it from core.sys.linux.time instead.")
|
||||
alias CLOCK_MONOTONIC_COARSE = core.sys.linux.time.CLOCK_MONOTONIC_COARSE; // non-standard
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{ // time.h
|
||||
enum CLOCK_MONOTONIC = 4;
|
||||
// To be removed in December 2015.
|
||||
static import core.sys.freebsd.time;
|
||||
deprecated("Please import it from core.sys.freebsd.time instead.")
|
||||
alias CLOCK_MONOTONIC_PRECISE = core.sys.freebsd.time.CLOCK_MONOTONIC_PRECISE;
|
||||
deprecated("Please import it from core.sys.freebsd.time instead.")
|
||||
alias CLOCK_MONOTONIC_FAST = core.sys.freebsd.time.CLOCK_MONOTONIC_FAST;
|
||||
}
|
||||
else version (NetBSD)
|
||||
{
|
||||
|
@ -157,12 +145,6 @@ else version (OpenBSD)
|
|||
else version (DragonFlyBSD)
|
||||
{ // time.h
|
||||
enum CLOCK_MONOTONIC = 4;
|
||||
// To be removed in December 2015.
|
||||
static import core.sys.dragonflybsd.time;
|
||||
deprecated("Please import it from core.sys.dragonflybsd.time instead.")
|
||||
alias CLOCK_MONOTONIC_PRECISE = core.sys.dragonflybsd.time.CLOCK_MONOTONIC_PRECISE;
|
||||
deprecated("Please import it from core.sys.dragonflybsd.time instead.")
|
||||
alias CLOCK_MONOTONIC_FAST = core.sys.dragonflybsd.time.CLOCK_MONOTONIC_FAST;
|
||||
}
|
||||
else version (Darwin)
|
||||
{
|
||||
|
@ -236,10 +218,6 @@ version (CRuntime_Glibc)
|
|||
}
|
||||
|
||||
enum CLOCK_REALTIME = 0;
|
||||
// To be removed in December 2015.
|
||||
static import core.sys.linux.time;
|
||||
deprecated("Please import it from core.sys.linux.time instead.")
|
||||
alias CLOCK_REALTIME_COARSE = core.sys.linux.time.CLOCK_REALTIME_COARSE; // non-standard
|
||||
enum TIMER_ABSTIME = 0x01;
|
||||
|
||||
alias int clockid_t;
|
||||
|
|
|
@ -23,6 +23,10 @@ extern (C):
|
|||
nothrow:
|
||||
@nogc:
|
||||
|
||||
version (MIPS32) version = MIPS_Any;
|
||||
version (MIPS64) version = MIPS_Any;
|
||||
version (PPC) version = PPC_Any;
|
||||
version (PPC64) version = PPC_Any;
|
||||
version (RISCV32) version = RISCV_Any;
|
||||
version (RISCV64) version = RISCV_Any;
|
||||
version (S390) version = IBMZ_Any;
|
||||
|
@ -770,6 +774,139 @@ version (CRuntime_Glibc)
|
|||
else
|
||||
static assert(0, "unimplemented");
|
||||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
version (AArch64)
|
||||
{
|
||||
struct mcontext_t
|
||||
{
|
||||
real[18+256] __regs;
|
||||
}
|
||||
|
||||
struct ucontext_t
|
||||
{
|
||||
c_ulong uc_flags;
|
||||
ucontext_t* uc_link;
|
||||
stack_t uc_stack;
|
||||
sigset_t uc_sigmask;
|
||||
mcontext_t uc_mcontext;
|
||||
}
|
||||
}
|
||||
else version (ARM)
|
||||
{
|
||||
struct mcontext_t
|
||||
{
|
||||
c_ulong[21] __regs;
|
||||
}
|
||||
|
||||
struct ucontext_t
|
||||
{
|
||||
c_ulong uc_flags;
|
||||
ucontext_t* uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
ulong[64] uc_regspace;
|
||||
}
|
||||
}
|
||||
else version (IBMZ_Any)
|
||||
{
|
||||
struct mcontext_t
|
||||
{
|
||||
c_ulong[18] __regs1;
|
||||
uint[18] __regs2;
|
||||
double[16] __regs3;
|
||||
}
|
||||
|
||||
struct ucontext_t
|
||||
{
|
||||
c_ulong uc_flags;
|
||||
ucontext_t* uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
}
|
||||
}
|
||||
else version (MIPS_Any)
|
||||
{
|
||||
version (MIPS_N32)
|
||||
{
|
||||
struct mcontext_t
|
||||
{
|
||||
ulong[32] __mc1;
|
||||
double[32] __mc2;
|
||||
ulong[9] __mc3;
|
||||
uint[4] __mc4;
|
||||
}
|
||||
}
|
||||
else version (MIPS64)
|
||||
{
|
||||
struct mcontext_t
|
||||
{
|
||||
ulong[32] __mc1;
|
||||
double[32] __mc2;
|
||||
ulong[9] __mc3;
|
||||
uint[4] __mc4;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
struct mcontext_t
|
||||
{
|
||||
uint[2] __mc1;
|
||||
ulong[65] __mc2;
|
||||
uint[5] __mc3;
|
||||
ulong[2] __mc4;
|
||||
uint[6] __mc5;
|
||||
}
|
||||
}
|
||||
|
||||
struct ucontext_t
|
||||
{
|
||||
c_ulong uc_flags;
|
||||
ucontext_t* uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
}
|
||||
}
|
||||
else version (X86)
|
||||
{
|
||||
struct mcontext_t
|
||||
{
|
||||
uint[22] __space;
|
||||
}
|
||||
|
||||
struct ucontext_t
|
||||
{
|
||||
c_ulong uc_flags;
|
||||
ucontext_t* uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
c_ulong[28] __fpregs_mem;
|
||||
}
|
||||
}
|
||||
else version (X86_64)
|
||||
{
|
||||
struct mcontext_t
|
||||
{
|
||||
ulong[32] __space;
|
||||
}
|
||||
|
||||
struct ucontext_t
|
||||
{
|
||||
c_ulong uc_flags;
|
||||
ucontext_t* uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
ulong[64] __fpregs_mem;
|
||||
}
|
||||
}
|
||||
else
|
||||
static assert(0, "unimplemented");
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{
|
||||
// <machine/ucontext.h>
|
||||
|
@ -897,6 +1034,26 @@ else version (FreeBSD)
|
|||
ulong[8] mc_spare;
|
||||
}
|
||||
}
|
||||
else version (PPC_Any)
|
||||
{
|
||||
alias size_t __register_t;
|
||||
alias uint __uint32_t;
|
||||
alias ulong __uint64_t;
|
||||
|
||||
struct mcontext_t {
|
||||
int mc_vers;
|
||||
int mc_flags;
|
||||
enum _MC_FP_VALID = 0x01;
|
||||
enum _MC_AV_VALID = 0x02;
|
||||
int mc_onstack;
|
||||
int mc_len;
|
||||
__uint64_t[32 * 2] mc_avec;
|
||||
__uint32_t[2] mc_av;
|
||||
__register_t[42] mc_frame;
|
||||
__uint64_t[33] mc_fpreg;
|
||||
__uint64_t[32] mc_vsxfpreg;
|
||||
}
|
||||
}
|
||||
|
||||
// <ucontext.h>
|
||||
enum UCF_SWAPPED = 0x00000001;
|
||||
|
@ -914,44 +1071,57 @@ else version (FreeBSD)
|
|||
}
|
||||
else version (NetBSD)
|
||||
{
|
||||
|
||||
version (X86_64)
|
||||
{
|
||||
enum { NGREG = 26 };
|
||||
alias __greg_t = ulong;
|
||||
alias __gregset_t = __greg_t[NGREG];
|
||||
alias __fpregset_t = align(8)ubyte[512];
|
||||
private
|
||||
{
|
||||
enum _NGREG = 26;
|
||||
alias __greg_t = c_ulong;
|
||||
alias __gregset_t = __greg_t[_NGREG];
|
||||
alias __fpregset_t = align(8) ubyte[512];
|
||||
}
|
||||
|
||||
struct mcontext_t {
|
||||
__gregset_t __gregs;
|
||||
__greg_t _mc_tlsbase;
|
||||
__fpregset_t __fpregs;
|
||||
}
|
||||
struct mcontext_t
|
||||
{
|
||||
__gregset_t __gregs;
|
||||
__greg_t _mc_tlsbase;
|
||||
__fpregset_t __fpregs;
|
||||
}
|
||||
}
|
||||
else version (X86)
|
||||
{
|
||||
enum { NGREG = 19 };
|
||||
alias __greg_t = ulong;
|
||||
alias __gregset_t = __greg_t[_NGREG];
|
||||
struct __fpregset_t{
|
||||
union __fp_reg_set{
|
||||
struct __fpchip_state{
|
||||
int[27] __fp_state; /* Environment and registers */
|
||||
} ; /* x87 regs in fsave format */
|
||||
struct __fp_xmm_state{
|
||||
private
|
||||
{
|
||||
enum _NGREG = 19;
|
||||
alias __greg_t = int;
|
||||
alias __gregset_t = __greg_t[_NGREG];
|
||||
struct __fpregset_t
|
||||
{
|
||||
union fp_reg_set_t
|
||||
{
|
||||
struct fpchip_state_t
|
||||
{
|
||||
int[27] __fp_state;
|
||||
}
|
||||
struct fp_xmm_state_t
|
||||
{
|
||||
ubyte[512] __fp_xmm;
|
||||
} ; /* x87 and xmm regs in fxsave format */
|
||||
int[128] __fp_fpregs;
|
||||
};
|
||||
__fpregset_t __fp_reg_set;
|
||||
int[33] __fp_pad; /* Historic padding */
|
||||
};
|
||||
}
|
||||
fpchip_state_t __fpchip_state;
|
||||
fp_xmm_state_t __fp_xmm_state;
|
||||
int[128] __fp_fpregs;
|
||||
}
|
||||
fp_reg_set_t __fp_reg_set;
|
||||
int[33] __fp_pad;
|
||||
}
|
||||
}
|
||||
|
||||
struct mcontext_t {
|
||||
__gregset_t __gregs;
|
||||
__fpregset_t __fpregs;
|
||||
__greg_t _mc_tlsbase;
|
||||
}
|
||||
struct mcontext_t
|
||||
{
|
||||
__gregset_t __gregs;
|
||||
__fpregset_t __fpregs;
|
||||
__greg_t _mc_tlsbase;
|
||||
}
|
||||
}
|
||||
|
||||
struct ucontext_t
|
||||
|
@ -965,7 +1135,6 @@ else version (NetBSD)
|
|||
long __uc_pad[_UC_MACHINE_PAD];
|
||||
#endif
|
||||
+/
|
||||
|
||||
}
|
||||
}
|
||||
else version (OpenBSD)
|
||||
|
|
|
@ -2403,7 +2403,7 @@ else version (OpenBSD)
|
|||
{
|
||||
char* crypt(in char*, in char*);
|
||||
//char* ctermid(char*);
|
||||
//void encrypt(ref char[64], int) @trusted;
|
||||
void encrypt(ref char[64], int) @trusted;
|
||||
int fchdir(int) @trusted;
|
||||
c_long gethostid() @trusted;
|
||||
pid_t getpgid(pid_t) @trusted;
|
||||
|
|
|
@ -49,6 +49,9 @@ alias void* PVOID64;
|
|||
alias const(char)* PCCH, LPCCH, PCSTR, LPCSTR;
|
||||
alias const(wchar)* LPCWCH, PCWCH, LPCWSTR, PCWSTR;
|
||||
|
||||
alias PSTR* PZPSTR;
|
||||
alias PWSTR* PZPWSTR;
|
||||
|
||||
version (Unicode) {
|
||||
alias WCHAR TCHAR, _TCHAR;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue