mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-26 02:30:30 +08:00
libphobos: Merge upstream druntime 9d0c8364, phobos 9d575282e.
Druntime changes: - Add platform-specific bindings for stdlib.h and sys/syctl.h. - Add darwin bindings for mach/dyld.h. - Fix solaris bindings for locale.h (PR98910). - Remove deprecated bindings from the module headers. Phobos changes: - Backport platform-specific fixes for std.conv, std.datetime, std.exception, std.experimental.allocator, std.file, std.math, std.parallelism, std.socket, std.stdio, and std.system. Reviewed-on: https://github.com/dlang/druntime/pull/3363 https://github.com/dlang/phobos/pull/7784 libphobos/ChangeLog: PR d/98910 * libdruntime/MERGE: Merge upstream druntime 9d0c8364. * libdruntime/Makefile.am (DRUNTIME_DSOURCES): Add core/internal/attributes.d (DRUNTIME_DSOURCES_BIONIC): Add core/sys/bionic/stdlib.d. (DRUNTIME_DSOURCES_DARWIN): Add core/sys/darwin/stdlib.d, and core/sys/darwin/sys/sysctl.d. (DRUNTIME_DSOURCES_DRAGONFLYBSD): Add core/sys/dragonflybsd/stdlib.d, and core/sys/dragonflybsd/sys/sysctl.d. (DRUNTIME_DSOURCES_FREEBSD): Add core/sys/freebsd/stdlib.d, and core/sys/freebsd/sys/sysctl.d. (DRUNTIME_DSOURCES_NETBSD): Add core/sys/netbsd/stdlib.d, and core/sys/netbsd/sys/sysctl.d. (DRUNTIME_DSOURCES_OPENBSD): Add core/sys/openbsd/stdlib.d, and core/sys/openbsd/sys/sysctl.d. (DRUNTIME_DSOURCES_SOLARIS): Add core/sys/solaris/stdlib.d. * libdruntime/Makefile.in: Regenerate. * src/MERGE: Merge upstream phobos 9d575282e.
This commit is contained in:
parent
b52a1dfe12
commit
b1a207c6df
@ -1,4 +1,4 @@
|
||||
e4aae28e36c118f13e346a61af6c413aadd8e838
|
||||
9d0c8364450064d0b6e68da4384f8acd19eb454f
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the dlang/druntime repository.
|
||||
|
@ -166,7 +166,8 @@ DRUNTIME_CSOURCES = core/stdc/errno_.c
|
||||
|
||||
DRUNTIME_DSOURCES = core/atomic.d core/attribute.d core/bitop.d \
|
||||
core/checkedint.d core/cpuid.d core/demangle.d core/exception.d \
|
||||
core/internal/abort.d core/internal/arrayop.d core/internal/convert.d \
|
||||
core/internal/abort.d core/internal/arrayop.d \
|
||||
core/internal/attributes.d core/internal/convert.d \
|
||||
core/internal/hash.d core/internal/spinlock.d core/internal/string.d \
|
||||
core/internal/traits.d core/math.d core/memory.d core/runtime.d \
|
||||
core/simd.d core/stdc/assert_.d core/stdc/complex.d core/stdc/config.d \
|
||||
@ -201,8 +202,8 @@ DRUNTIME_DSOURCES_STDCXX = core/stdcpp/exception.d \
|
||||
core/stdcpp/typeinfo.d
|
||||
|
||||
DRUNTIME_DSOURCES_BIONIC = core/sys/bionic/err.d \
|
||||
core/sys/bionic/fcntl.d core/sys/bionic/string.d \
|
||||
core/sys/bionic/unistd.d
|
||||
core/sys/bionic/fcntl.d core/sys/bionic/stdlib.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/err.d \
|
||||
@ -212,32 +213,35 @@ DRUNTIME_DSOURCES_DARWIN = core/sys/darwin/crt_externs.d \
|
||||
core/sys/darwin/mach/nlist.d core/sys/darwin/mach/port.d \
|
||||
core/sys/darwin/mach/semaphore.d core/sys/darwin/mach/stab.d \
|
||||
core/sys/darwin/mach/thread_act.d core/sys/darwin/netinet/in_.d \
|
||||
core/sys/darwin/pthread.d core/sys/darwin/string.d \
|
||||
core/sys/darwin/sys/attr.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/stdlib.d \
|
||||
core/sys/darwin/string.d core/sys/darwin/sys/attr.d \
|
||||
core/sys/darwin/sys/cdefs.d core/sys/darwin/sys/event.d \
|
||||
core/sys/darwin/sys/mman.d core/sys/darwin/sys/sysctl.d
|
||||
|
||||
DRUNTIME_DSOURCES_DRAGONFLYBSD = core/sys/dragonflybsd/dlfcn.d \
|
||||
core/sys/dragonflybsd/err.d core/sys/dragonflybsd/execinfo.d \
|
||||
core/sys/dragonflybsd/netinet/in_.d core/sys/dragonflybsd/pthread_np.d \
|
||||
core/sys/dragonflybsd/string.d core/sys/dragonflybsd/sys/_bitset.d \
|
||||
core/sys/dragonflybsd/stdlib.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/sys/socket.d \
|
||||
core/sys/dragonflybsd/time.d
|
||||
core/sys/dragonflybsd/sys/sysctl.d core/sys/dragonflybsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_FREEBSD = core/sys/freebsd/config.d \
|
||||
core/sys/freebsd/dlfcn.d core/sys/freebsd/err.d \
|
||||
core/sys/freebsd/execinfo.d core/sys/freebsd/netinet/in_.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/pthread_np.d core/sys/freebsd/stdlib.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/sys/sysctl.d core/sys/freebsd/time.d \
|
||||
core/sys/freebsd/unistd.d
|
||||
|
||||
DRUNTIME_DSOURCES_LINUX = core/sys/linux/config.d \
|
||||
@ -257,18 +261,20 @@ DRUNTIME_DSOURCES_LINUX = core/sys/linux/config.d \
|
||||
|
||||
DRUNTIME_DSOURCES_NETBSD = core/sys/netbsd/dlfcn.d \
|
||||
core/sys/netbsd/err.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
|
||||
core/sys/netbsd/stdlib.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/sys/sysctl.d core/sys/netbsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_OPENBSD = core/sys/openbsd/dlfcn.d \
|
||||
core/sys/openbsd/err.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
|
||||
core/sys/openbsd/err.d core/sys/openbsd/stdlib.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/sys/sysctl.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 \
|
||||
@ -300,12 +306,13 @@ DRUNTIME_DSOURCES_POSIX = core/sys/posix/aio.d \
|
||||
DRUNTIME_DSOURCES_SOLARIS = core/sys/solaris/dlfcn.d \
|
||||
core/sys/solaris/elf.d core/sys/solaris/err.d \
|
||||
core/sys/solaris/execinfo.d core/sys/solaris/libelf.d \
|
||||
core/sys/solaris/link.d core/sys/solaris/sys/elf.d \
|
||||
core/sys/solaris/sys/elf_386.d core/sys/solaris/sys/elf_SPARC.d \
|
||||
core/sys/solaris/sys/elf_amd64.d core/sys/solaris/sys/elf_notes.d \
|
||||
core/sys/solaris/sys/elftypes.d core/sys/solaris/sys/link.d \
|
||||
core/sys/solaris/sys/priocntl.d core/sys/solaris/sys/procset.d \
|
||||
core/sys/solaris/sys/types.d core/sys/solaris/time.d
|
||||
core/sys/solaris/link.d core/sys/solaris/stdlib.d \
|
||||
core/sys/solaris/sys/elf.d core/sys/solaris/sys/elf_386.d \
|
||||
core/sys/solaris/sys/elf_SPARC.d core/sys/solaris/sys/elf_amd64.d \
|
||||
core/sys/solaris/sys/elf_notes.d core/sys/solaris/sys/elftypes.d \
|
||||
core/sys/solaris/sys/link.d core/sys/solaris/sys/priocntl.d \
|
||||
core/sys/solaris/sys/procset.d core/sys/solaris/sys/types.d \
|
||||
core/sys/solaris/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_WINDOWS = core/sys/windows/accctrl.d \
|
||||
core/sys/windows/aclapi.d core/sys/windows/aclui.d \
|
||||
|
@ -188,31 +188,32 @@ am__dirstamp = $(am__leading_dot)dirstamp
|
||||
am__objects_1 = core/atomic.lo core/attribute.lo core/bitop.lo \
|
||||
core/checkedint.lo core/cpuid.lo core/demangle.lo \
|
||||
core/exception.lo core/internal/abort.lo \
|
||||
core/internal/arrayop.lo core/internal/convert.lo \
|
||||
core/internal/hash.lo core/internal/spinlock.lo \
|
||||
core/internal/string.lo core/internal/traits.lo core/math.lo \
|
||||
core/memory.lo core/runtime.lo core/simd.lo \
|
||||
core/stdc/assert_.lo core/stdc/complex.lo core/stdc/config.lo \
|
||||
core/stdc/ctype.lo core/stdc/errno.lo core/stdc/fenv.lo \
|
||||
core/stdc/float_.lo core/stdc/inttypes.lo core/stdc/limits.lo \
|
||||
core/stdc/locale.lo core/stdc/math.lo core/stdc/signal.lo \
|
||||
core/stdc/stdarg.lo core/stdc/stddef.lo core/stdc/stdint.lo \
|
||||
core/stdc/stdio.lo core/stdc/stdlib.lo core/stdc/string.lo \
|
||||
core/stdc/tgmath.lo core/stdc/time.lo core/stdc/wchar_.lo \
|
||||
core/stdc/wctype.lo core/sync/barrier.lo \
|
||||
core/sync/condition.lo core/sync/config.lo \
|
||||
core/sync/exception.lo core/sync/mutex.lo core/sync/rwmutex.lo \
|
||||
core/sync/semaphore.lo core/thread/context.lo \
|
||||
core/thread/fiber.lo core/thread/osthread.lo \
|
||||
core/thread/package.lo core/thread/threadbase.lo \
|
||||
core/thread/threadgroup.lo core/thread/types.lo core/time.lo \
|
||||
core/vararg.lo gc/bits.lo gc/config.lo gc/gcinterface.lo \
|
||||
gc/impl/conservative/gc.lo gc/impl/manual/gc.lo gc/os.lo \
|
||||
gc/pooltable.lo gc/proxy.lo gcc/attribute.lo gcc/backtrace.lo \
|
||||
gcc/builtins.lo gcc/deh.lo gcc/emutls.lo gcc/gthread.lo \
|
||||
gcc/sections/android.lo gcc/sections/elf_shared.lo \
|
||||
gcc/sections/osx.lo gcc/sections/package.lo \
|
||||
gcc/sections/win32.lo gcc/sections/win64.lo gcc/unwind/arm.lo \
|
||||
core/internal/arrayop.lo core/internal/attributes.lo \
|
||||
core/internal/convert.lo core/internal/hash.lo \
|
||||
core/internal/spinlock.lo core/internal/string.lo \
|
||||
core/internal/traits.lo core/math.lo core/memory.lo \
|
||||
core/runtime.lo core/simd.lo core/stdc/assert_.lo \
|
||||
core/stdc/complex.lo core/stdc/config.lo core/stdc/ctype.lo \
|
||||
core/stdc/errno.lo core/stdc/fenv.lo core/stdc/float_.lo \
|
||||
core/stdc/inttypes.lo core/stdc/limits.lo core/stdc/locale.lo \
|
||||
core/stdc/math.lo core/stdc/signal.lo core/stdc/stdarg.lo \
|
||||
core/stdc/stddef.lo core/stdc/stdint.lo core/stdc/stdio.lo \
|
||||
core/stdc/stdlib.lo core/stdc/string.lo core/stdc/tgmath.lo \
|
||||
core/stdc/time.lo core/stdc/wchar_.lo core/stdc/wctype.lo \
|
||||
core/sync/barrier.lo core/sync/condition.lo \
|
||||
core/sync/config.lo core/sync/exception.lo core/sync/mutex.lo \
|
||||
core/sync/rwmutex.lo core/sync/semaphore.lo \
|
||||
core/thread/context.lo core/thread/fiber.lo \
|
||||
core/thread/osthread.lo core/thread/package.lo \
|
||||
core/thread/threadbase.lo core/thread/threadgroup.lo \
|
||||
core/thread/types.lo core/time.lo core/vararg.lo gc/bits.lo \
|
||||
gc/config.lo gc/gcinterface.lo gc/impl/conservative/gc.lo \
|
||||
gc/impl/manual/gc.lo gc/os.lo gc/pooltable.lo gc/proxy.lo \
|
||||
gcc/attribute.lo gcc/backtrace.lo gcc/builtins.lo gcc/deh.lo \
|
||||
gcc/emutls.lo gcc/gthread.lo gcc/sections/android.lo \
|
||||
gcc/sections/elf_shared.lo gcc/sections/osx.lo \
|
||||
gcc/sections/package.lo gcc/sections/win32.lo \
|
||||
gcc/sections/win64.lo gcc/unwind/arm.lo \
|
||||
gcc/unwind/arm_common.lo gcc/unwind/c6x.lo \
|
||||
gcc/unwind/generic.lo gcc/unwind/package.lo gcc/unwind/pe.lo \
|
||||
object.lo rt/aApply.lo rt/aApplyR.lo rt/aaA.lo rt/adi.lo \
|
||||
@ -263,14 +264,16 @@ am__objects_5 = core/sys/darwin/crt_externs.lo \
|
||||
core/sys/darwin/mach/stab.lo \
|
||||
core/sys/darwin/mach/thread_act.lo \
|
||||
core/sys/darwin/netinet/in_.lo core/sys/darwin/pthread.lo \
|
||||
core/sys/darwin/string.lo core/sys/darwin/sys/attr.lo \
|
||||
core/sys/darwin/sys/cdefs.lo core/sys/darwin/sys/event.lo \
|
||||
core/sys/darwin/sys/mman.lo
|
||||
core/sys/darwin/stdlib.lo core/sys/darwin/string.lo \
|
||||
core/sys/darwin/sys/attr.lo core/sys/darwin/sys/cdefs.lo \
|
||||
core/sys/darwin/sys/event.lo core/sys/darwin/sys/mman.lo \
|
||||
core/sys/darwin/sys/sysctl.lo
|
||||
@DRUNTIME_OS_DARWIN_TRUE@am__objects_6 = $(am__objects_5)
|
||||
am__objects_7 = core/sys/dragonflybsd/dlfcn.lo \
|
||||
core/sys/dragonflybsd/err.lo core/sys/dragonflybsd/execinfo.lo \
|
||||
core/sys/dragonflybsd/netinet/in_.lo \
|
||||
core/sys/dragonflybsd/pthread_np.lo \
|
||||
core/sys/dragonflybsd/stdlib.lo \
|
||||
core/sys/dragonflybsd/string.lo \
|
||||
core/sys/dragonflybsd/sys/_bitset.lo \
|
||||
core/sys/dragonflybsd/sys/_cpuset.lo \
|
||||
@ -283,39 +286,43 @@ am__objects_7 = core/sys/dragonflybsd/dlfcn.lo \
|
||||
core/sys/dragonflybsd/sys/link_elf.lo \
|
||||
core/sys/dragonflybsd/sys/mman.lo \
|
||||
core/sys/dragonflybsd/sys/socket.lo \
|
||||
core/sys/dragonflybsd/sys/sysctl.lo \
|
||||
core/sys/dragonflybsd/time.lo
|
||||
@DRUNTIME_OS_DRAGONFLYBSD_TRUE@am__objects_8 = $(am__objects_7)
|
||||
am__objects_9 = core/sys/bionic/err.lo core/sys/bionic/fcntl.lo \
|
||||
core/sys/bionic/string.lo core/sys/bionic/unistd.lo
|
||||
core/sys/bionic/stdlib.lo core/sys/bionic/string.lo \
|
||||
core/sys/bionic/unistd.lo
|
||||
@DRUNTIME_OS_ANDROID_TRUE@am__objects_10 = $(am__objects_9)
|
||||
am__objects_11 = core/sys/freebsd/config.lo core/sys/freebsd/dlfcn.lo \
|
||||
core/sys/freebsd/err.lo core/sys/freebsd/execinfo.lo \
|
||||
core/sys/freebsd/netinet/in_.lo core/sys/freebsd/pthread_np.lo \
|
||||
core/sys/freebsd/string.lo core/sys/freebsd/sys/_bitset.lo \
|
||||
core/sys/freebsd/stdlib.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 \
|
||||
core/sys/freebsd/sys/elf_common.lo \
|
||||
core/sys/freebsd/sys/event.lo core/sys/freebsd/sys/link_elf.lo \
|
||||
core/sys/freebsd/sys/mman.lo core/sys/freebsd/sys/mount.lo \
|
||||
core/sys/freebsd/time.lo core/sys/freebsd/unistd.lo
|
||||
core/sys/freebsd/sys/sysctl.lo core/sys/freebsd/time.lo \
|
||||
core/sys/freebsd/unistd.lo
|
||||
@DRUNTIME_OS_FREEBSD_TRUE@am__objects_12 = $(am__objects_11)
|
||||
am__objects_13 = core/sys/netbsd/dlfcn.lo core/sys/netbsd/err.lo \
|
||||
core/sys/netbsd/execinfo.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/execinfo.lo core/sys/netbsd/stdlib.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
|
||||
core/sys/netbsd/sys/sysctl.lo core/sys/netbsd/time.lo
|
||||
@DRUNTIME_OS_NETBSD_TRUE@am__objects_14 = $(am__objects_13)
|
||||
am__objects_15 = core/sys/openbsd/dlfcn.lo core/sys/openbsd/err.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/stdlib.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 \
|
||||
core/sys/openbsd/sys/link_elf.lo core/sys/openbsd/sys/mman.lo \
|
||||
core/sys/openbsd/time.lo
|
||||
core/sys/openbsd/sys/sysctl.lo core/sys/openbsd/time.lo
|
||||
@DRUNTIME_OS_OPENBSD_TRUE@am__objects_16 = $(am__objects_15)
|
||||
am__objects_17 = core/sys/linux/config.lo core/sys/linux/dlfcn.lo \
|
||||
core/sys/linux/elf.lo core/sys/linux/epoll.lo \
|
||||
@ -422,7 +429,8 @@ am__objects_19 = core/sys/windows/accctrl.lo \
|
||||
am__objects_21 = core/sys/solaris/dlfcn.lo core/sys/solaris/elf.lo \
|
||||
core/sys/solaris/err.lo core/sys/solaris/execinfo.lo \
|
||||
core/sys/solaris/libelf.lo core/sys/solaris/link.lo \
|
||||
core/sys/solaris/sys/elf.lo core/sys/solaris/sys/elf_386.lo \
|
||||
core/sys/solaris/stdlib.lo core/sys/solaris/sys/elf.lo \
|
||||
core/sys/solaris/sys/elf_386.lo \
|
||||
core/sys/solaris/sys/elf_SPARC.lo \
|
||||
core/sys/solaris/sys/elf_amd64.lo \
|
||||
core/sys/solaris/sys/elf_notes.lo \
|
||||
@ -784,7 +792,8 @@ libgdruntime_convenience_la_LINK = $(libgdruntime_la_LINK)
|
||||
DRUNTIME_CSOURCES = core/stdc/errno_.c
|
||||
DRUNTIME_DSOURCES = core/atomic.d core/attribute.d core/bitop.d \
|
||||
core/checkedint.d core/cpuid.d core/demangle.d core/exception.d \
|
||||
core/internal/abort.d core/internal/arrayop.d core/internal/convert.d \
|
||||
core/internal/abort.d core/internal/arrayop.d \
|
||||
core/internal/attributes.d core/internal/convert.d \
|
||||
core/internal/hash.d core/internal/spinlock.d core/internal/string.d \
|
||||
core/internal/traits.d core/math.d core/memory.d core/runtime.d \
|
||||
core/simd.d core/stdc/assert_.d core/stdc/complex.d core/stdc/config.d \
|
||||
@ -819,8 +828,8 @@ DRUNTIME_DSOURCES_STDCXX = core/stdcpp/exception.d \
|
||||
core/stdcpp/typeinfo.d
|
||||
|
||||
DRUNTIME_DSOURCES_BIONIC = core/sys/bionic/err.d \
|
||||
core/sys/bionic/fcntl.d core/sys/bionic/string.d \
|
||||
core/sys/bionic/unistd.d
|
||||
core/sys/bionic/fcntl.d core/sys/bionic/stdlib.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/err.d \
|
||||
@ -830,32 +839,35 @@ DRUNTIME_DSOURCES_DARWIN = core/sys/darwin/crt_externs.d \
|
||||
core/sys/darwin/mach/nlist.d core/sys/darwin/mach/port.d \
|
||||
core/sys/darwin/mach/semaphore.d core/sys/darwin/mach/stab.d \
|
||||
core/sys/darwin/mach/thread_act.d core/sys/darwin/netinet/in_.d \
|
||||
core/sys/darwin/pthread.d core/sys/darwin/string.d \
|
||||
core/sys/darwin/sys/attr.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/stdlib.d \
|
||||
core/sys/darwin/string.d core/sys/darwin/sys/attr.d \
|
||||
core/sys/darwin/sys/cdefs.d core/sys/darwin/sys/event.d \
|
||||
core/sys/darwin/sys/mman.d core/sys/darwin/sys/sysctl.d
|
||||
|
||||
DRUNTIME_DSOURCES_DRAGONFLYBSD = core/sys/dragonflybsd/dlfcn.d \
|
||||
core/sys/dragonflybsd/err.d core/sys/dragonflybsd/execinfo.d \
|
||||
core/sys/dragonflybsd/netinet/in_.d core/sys/dragonflybsd/pthread_np.d \
|
||||
core/sys/dragonflybsd/string.d core/sys/dragonflybsd/sys/_bitset.d \
|
||||
core/sys/dragonflybsd/stdlib.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/sys/socket.d \
|
||||
core/sys/dragonflybsd/time.d
|
||||
core/sys/dragonflybsd/sys/sysctl.d core/sys/dragonflybsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_FREEBSD = core/sys/freebsd/config.d \
|
||||
core/sys/freebsd/dlfcn.d core/sys/freebsd/err.d \
|
||||
core/sys/freebsd/execinfo.d core/sys/freebsd/netinet/in_.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/pthread_np.d core/sys/freebsd/stdlib.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/sys/sysctl.d core/sys/freebsd/time.d \
|
||||
core/sys/freebsd/unistd.d
|
||||
|
||||
DRUNTIME_DSOURCES_LINUX = core/sys/linux/config.d \
|
||||
@ -875,18 +887,20 @@ DRUNTIME_DSOURCES_LINUX = core/sys/linux/config.d \
|
||||
|
||||
DRUNTIME_DSOURCES_NETBSD = core/sys/netbsd/dlfcn.d \
|
||||
core/sys/netbsd/err.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
|
||||
core/sys/netbsd/stdlib.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/sys/sysctl.d core/sys/netbsd/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_OPENBSD = core/sys/openbsd/dlfcn.d \
|
||||
core/sys/openbsd/err.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
|
||||
core/sys/openbsd/err.d core/sys/openbsd/stdlib.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/sys/sysctl.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 \
|
||||
@ -918,12 +932,13 @@ DRUNTIME_DSOURCES_POSIX = core/sys/posix/aio.d \
|
||||
DRUNTIME_DSOURCES_SOLARIS = core/sys/solaris/dlfcn.d \
|
||||
core/sys/solaris/elf.d core/sys/solaris/err.d \
|
||||
core/sys/solaris/execinfo.d core/sys/solaris/libelf.d \
|
||||
core/sys/solaris/link.d core/sys/solaris/sys/elf.d \
|
||||
core/sys/solaris/sys/elf_386.d core/sys/solaris/sys/elf_SPARC.d \
|
||||
core/sys/solaris/sys/elf_amd64.d core/sys/solaris/sys/elf_notes.d \
|
||||
core/sys/solaris/sys/elftypes.d core/sys/solaris/sys/link.d \
|
||||
core/sys/solaris/sys/priocntl.d core/sys/solaris/sys/procset.d \
|
||||
core/sys/solaris/sys/types.d core/sys/solaris/time.d
|
||||
core/sys/solaris/link.d core/sys/solaris/stdlib.d \
|
||||
core/sys/solaris/sys/elf.d core/sys/solaris/sys/elf_386.d \
|
||||
core/sys/solaris/sys/elf_SPARC.d core/sys/solaris/sys/elf_amd64.d \
|
||||
core/sys/solaris/sys/elf_notes.d core/sys/solaris/sys/elftypes.d \
|
||||
core/sys/solaris/sys/link.d core/sys/solaris/sys/priocntl.d \
|
||||
core/sys/solaris/sys/procset.d core/sys/solaris/sys/types.d \
|
||||
core/sys/solaris/time.d
|
||||
|
||||
DRUNTIME_DSOURCES_WINDOWS = core/sys/windows/accctrl.d \
|
||||
core/sys/windows/aclapi.d core/sys/windows/aclui.d \
|
||||
@ -1106,6 +1121,7 @@ core/internal/$(am__dirstamp):
|
||||
@: > core/internal/$(am__dirstamp)
|
||||
core/internal/abort.lo: core/internal/$(am__dirstamp)
|
||||
core/internal/arrayop.lo: core/internal/$(am__dirstamp)
|
||||
core/internal/attributes.lo: core/internal/$(am__dirstamp)
|
||||
core/internal/convert.lo: core/internal/$(am__dirstamp)
|
||||
core/internal/hash.lo: core/internal/$(am__dirstamp)
|
||||
core/internal/spinlock.lo: core/internal/$(am__dirstamp)
|
||||
@ -1347,6 +1363,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/stdlib.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
|
||||
@ -1355,6 +1372,7 @@ core/sys/darwin/sys/attr.lo: core/sys/darwin/sys/$(am__dirstamp)
|
||||
core/sys/darwin/sys/cdefs.lo: core/sys/darwin/sys/$(am__dirstamp)
|
||||
core/sys/darwin/sys/event.lo: core/sys/darwin/sys/$(am__dirstamp)
|
||||
core/sys/darwin/sys/mman.lo: core/sys/darwin/sys/$(am__dirstamp)
|
||||
core/sys/darwin/sys/sysctl.lo: core/sys/darwin/sys/$(am__dirstamp)
|
||||
core/sys/dragonflybsd/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/dragonflybsd
|
||||
@: > core/sys/dragonflybsd/$(am__dirstamp)
|
||||
@ -1369,6 +1387,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/stdlib.lo: \
|
||||
core/sys/dragonflybsd/$(am__dirstamp)
|
||||
core/sys/dragonflybsd/string.lo: \
|
||||
core/sys/dragonflybsd/$(am__dirstamp)
|
||||
core/sys/dragonflybsd/sys/$(am__dirstamp):
|
||||
@ -1396,12 +1416,15 @@ 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/sys/sysctl.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/err.lo: core/sys/bionic/$(am__dirstamp)
|
||||
core/sys/bionic/fcntl.lo: core/sys/bionic/$(am__dirstamp)
|
||||
core/sys/bionic/stdlib.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):
|
||||
@ -1417,6 +1440,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/stdlib.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
|
||||
@ -1434,6 +1458,7 @@ core/sys/freebsd/sys/link_elf.lo: \
|
||||
core/sys/freebsd/sys/$(am__dirstamp)
|
||||
core/sys/freebsd/sys/mman.lo: core/sys/freebsd/sys/$(am__dirstamp)
|
||||
core/sys/freebsd/sys/mount.lo: core/sys/freebsd/sys/$(am__dirstamp)
|
||||
core/sys/freebsd/sys/sysctl.lo: core/sys/freebsd/sys/$(am__dirstamp)
|
||||
core/sys/freebsd/time.lo: core/sys/freebsd/$(am__dirstamp)
|
||||
core/sys/freebsd/unistd.lo: core/sys/freebsd/$(am__dirstamp)
|
||||
core/sys/netbsd/$(am__dirstamp):
|
||||
@ -1442,6 +1467,7 @@ core/sys/netbsd/$(am__dirstamp):
|
||||
core/sys/netbsd/dlfcn.lo: core/sys/netbsd/$(am__dirstamp)
|
||||
core/sys/netbsd/err.lo: core/sys/netbsd/$(am__dirstamp)
|
||||
core/sys/netbsd/execinfo.lo: core/sys/netbsd/$(am__dirstamp)
|
||||
core/sys/netbsd/stdlib.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
|
||||
@ -1456,12 +1482,14 @@ 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/sys/sysctl.lo: core/sys/netbsd/sys/$(am__dirstamp)
|
||||
core/sys/netbsd/time.lo: core/sys/netbsd/$(am__dirstamp)
|
||||
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/err.lo: core/sys/openbsd/$(am__dirstamp)
|
||||
core/sys/openbsd/stdlib.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
|
||||
@ -1475,6 +1503,7 @@ core/sys/openbsd/sys/elf_common.lo: \
|
||||
core/sys/openbsd/sys/link_elf.lo: \
|
||||
core/sys/openbsd/sys/$(am__dirstamp)
|
||||
core/sys/openbsd/sys/mman.lo: core/sys/openbsd/sys/$(am__dirstamp)
|
||||
core/sys/openbsd/sys/sysctl.lo: core/sys/openbsd/sys/$(am__dirstamp)
|
||||
core/sys/openbsd/time.lo: core/sys/openbsd/$(am__dirstamp)
|
||||
core/sys/linux/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/linux
|
||||
@ -1698,6 +1727,7 @@ core/sys/solaris/err.lo: core/sys/solaris/$(am__dirstamp)
|
||||
core/sys/solaris/execinfo.lo: core/sys/solaris/$(am__dirstamp)
|
||||
core/sys/solaris/libelf.lo: core/sys/solaris/$(am__dirstamp)
|
||||
core/sys/solaris/link.lo: core/sys/solaris/$(am__dirstamp)
|
||||
core/sys/solaris/stdlib.lo: core/sys/solaris/$(am__dirstamp)
|
||||
core/sys/solaris/sys/$(am__dirstamp):
|
||||
@$(MKDIR_P) core/sys/solaris/sys
|
||||
@: > core/sys/solaris/sys/$(am__dirstamp)
|
||||
|
11
libphobos/libdruntime/core/internal/attributes.d
Normal file
11
libphobos/libdruntime/core/internal/attributes.d
Normal file
@ -0,0 +1,11 @@
|
||||
module core.internal.attributes;
|
||||
|
||||
/**
|
||||
Used to annotate `unittest`s which need to be tested in a `-betterC` environment.
|
||||
|
||||
Such `unittest`s will be compiled and executed without linking druntime in, with
|
||||
a `__traits(getUnitTests, mixin(__MODULE__))` style test runner.
|
||||
Note that just like any other `unittest` in druntime, they will also be compiled
|
||||
and executed without `-betterC`.
|
||||
*/
|
||||
package(core) enum betterC = 1;
|
17
libphobos/libdruntime/core/sys/bionic/stdlib.d
Normal file
17
libphobos/libdruntime/core/sys/bionic/stdlib.d
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* D header file for Bionic stdlib.h.
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.bionic.stdlib;
|
||||
public import core.sys.posix.stdlib;
|
||||
|
||||
version (CRuntime_Bionic):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
const(char)* getprogname();
|
||||
void setprogname(scope const char* name);
|
@ -33,7 +33,10 @@ 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(const scope mach_header* mh, intptr_t vmaddr_slide));
|
||||
void _dyld_register_func_for_remove_image(void function(const scope mach_header* mh, intptr_t vmaddr_slide));
|
||||
|
||||
|
||||
int NSVersionOfRunTimeLibrary(const char* libraryPath);
|
||||
int NSVersionOfLinkTimeLibrary(const char* libraryPath);
|
||||
int _NSGetExecutablePath(char* buf, uint* bufsize);
|
||||
|
26
libphobos/libdruntime/core/sys/darwin/stdlib.d
Normal file
26
libphobos/libdruntime/core/sys/darwin/stdlib.d
Normal file
@ -0,0 +1,26 @@
|
||||
/**
|
||||
* D header file for Darwin stdlib.h.
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.darwin.stdlib;
|
||||
public import core.sys.posix.stdlib;
|
||||
|
||||
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:
|
||||
|
||||
const(char)* getprogname();
|
||||
void setprogname(scope const char* name);
|
253
libphobos/libdruntime/core/sys/darwin/sys/sysctl.d
Normal file
253
libphobos/libdruntime/core/sys/darwin/sys/sysctl.d
Normal file
@ -0,0 +1,253 @@
|
||||
/**
|
||||
* D header file for Darwin sys/sysctl.h
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.darwin.sys.sysctl;
|
||||
|
||||
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:
|
||||
|
||||
// Top-level identifiers
|
||||
enum
|
||||
{
|
||||
CTL_UNSPEC = 0,
|
||||
CTL_KERN = 1,
|
||||
CTL_VM = 2,
|
||||
CTL_VFS = 3,
|
||||
CTL_NET = 4,
|
||||
CTL_DEBUG = 5,
|
||||
CTL_HW = 6,
|
||||
CTL_MACHDEP = 7,
|
||||
CTL_USER = 8,
|
||||
CTL_MAXID = 9,
|
||||
}
|
||||
|
||||
// CTL_KERN identifiers
|
||||
enum
|
||||
{
|
||||
KERN_OSTYPE = 1,
|
||||
KERN_OSRELEASE = 2,
|
||||
KERN_OSREV = 3,
|
||||
KERN_VERSION = 4,
|
||||
KERN_MAXVNODES = 5,
|
||||
KERN_MAXPROC = 6,
|
||||
KERN_MAXFILES = 7,
|
||||
KERN_ARGMAX = 8,
|
||||
KERN_SECURELVL = 9,
|
||||
KERN_HOSTNAME = 10,
|
||||
KERN_HOSTID = 11,
|
||||
KERN_CLOCKRATE = 12,
|
||||
KERN_VNODE = 13,
|
||||
KERN_PROC = 14,
|
||||
KERN_FILE = 15,
|
||||
KERN_PROF = 16,
|
||||
KERN_POSIX1 = 17,
|
||||
KERN_NGROUPS = 18,
|
||||
KERN_JOB_CONTROL = 19,
|
||||
KERN_SAVED_IDS = 20,
|
||||
KERN_BOOTTIME = 21,
|
||||
KERN_NISDOMAINNAME = 22,
|
||||
KERN_DOMAINNAME = KERN_NISDOMAINNAME,
|
||||
KERN_MAXPARTITIONS = 23,
|
||||
KERN_KDEBUG = 24,
|
||||
KERN_UPDATEINTERVAL = 25,
|
||||
KERN_OSRELDATE = 26,
|
||||
KERN_NTP_PLL = 27,
|
||||
KERN_BOOTFILE = 28,
|
||||
KERN_MAXFILESPERPROC = 29,
|
||||
KERN_MAXPROCPERUID = 30,
|
||||
KERN_DUMPDEV = 31,
|
||||
KERN_IPC = 32,
|
||||
KERN_DUMMY = 33,
|
||||
KERN_PS_STRINGS = 34,
|
||||
KERN_USRSTACK32 = 35,
|
||||
KERN_LOGSIGEXIT = 36,
|
||||
KERN_SYMFILE = 37,
|
||||
KERN_PROCARGS = 38,
|
||||
KERN_NETBOOT = 40,
|
||||
KERN_SYSV = 42,
|
||||
KERN_AFFINITY = 43,
|
||||
KERN_TRANSLATE = 44,
|
||||
KERN_CLASSIC = KERN_TRANSLATE,
|
||||
KERN_EXEC = 45,
|
||||
KERN_CLASSICHANDLER = KERN_EXEC,
|
||||
KERN_AIOMAX = 46,
|
||||
KERN_AIOPROCMAX = 47,
|
||||
KERN_AIOTHREADS = 48,
|
||||
KERN_PROCARGS2 = 49,
|
||||
KERN_COREFILE = 50,
|
||||
KERN_COREDUMP = 51,
|
||||
KERN_SUGID_COREDUMP = 52,
|
||||
KERN_PROCDELAYTERM = 53,
|
||||
KERN_SHREG_PRIVATIZABLE = 54,
|
||||
KERN_LOW_PRI_WINDOW = 56,
|
||||
KERN_LOW_PRI_DELAY = 57,
|
||||
KERN_POSIX = 58,
|
||||
KERN_USRSTACK64 = 59,
|
||||
KERN_NX_PROTECTION = 60,
|
||||
KERN_TFP = 61,
|
||||
KERN_PROCNAME = 62,
|
||||
KERN_THALTSTACK = 63,
|
||||
KERN_SPECULATIVE_READS = 64,
|
||||
KERN_OSVERSION = 65,
|
||||
KERN_SAFEBOOT = 66,
|
||||
KERN_RAGEVNODE = 68,
|
||||
KERN_TTY = 69,
|
||||
KERN_CHECKOPENEVT = 70,
|
||||
KERN_THREADNAME = 71,
|
||||
KERN_MAXID = 72,
|
||||
}
|
||||
|
||||
// KERN_RAGEVNODE types
|
||||
enum
|
||||
{
|
||||
KERN_RAGE_PROC = 1,
|
||||
KERN_RAGE_THREAD = 2,
|
||||
KERN_UNRAGE_PROC = 3,
|
||||
KERN_UNRAGE_THREAD = 4,
|
||||
}
|
||||
|
||||
// KERN_OPENEVT types
|
||||
enum
|
||||
{
|
||||
KERN_OPENEVT_PROC = 1,
|
||||
KERN_UNOPENEVT_PROC = 2,
|
||||
}
|
||||
|
||||
// KERN_TFP types
|
||||
enum
|
||||
{
|
||||
KERN_TFP_POLICY = 1,
|
||||
}
|
||||
|
||||
// KERN_TFP_POLICY values
|
||||
enum
|
||||
{
|
||||
KERN_TFP_POLICY_DENY = 0,
|
||||
KERN_TFP_POLICY_DEFAULT = 2,
|
||||
}
|
||||
|
||||
// KERN_PROC subtypes
|
||||
enum
|
||||
{
|
||||
KERN_PROC_ALL = 0,
|
||||
KERN_PROC_PID = 1,
|
||||
KERN_PROC_PGRP = 2,
|
||||
KERN_PROC_SESSION = 3,
|
||||
KERN_PROC_TTY = 4,
|
||||
KERN_PROC_UID = 5,
|
||||
KERN_PROC_RUID = 6,
|
||||
KERN_PROC_LCID = 7,
|
||||
}
|
||||
|
||||
// KERN_VFSNSPACE subtypes
|
||||
enum
|
||||
{
|
||||
KERN_VFSNSPACE_HANDLE_PROC = 1,
|
||||
KERN_VFSNSPACE_UNHANDLE_PROC = 2,
|
||||
}
|
||||
|
||||
// KERN_IPC identifiers
|
||||
enum
|
||||
{
|
||||
KIPC_MAXSOCKBUF = 1,
|
||||
KIPC_SOCKBUF_WASTE = 2,
|
||||
KIPC_SOMAXCONN = 3,
|
||||
KIPC_MAX_LINKHDR = 4,
|
||||
KIPC_MAX_PROTOHDR = 5,
|
||||
KIPC_MAX_HDR = 6,
|
||||
KIPC_MAX_DATALEN = 7,
|
||||
KIPC_MBSTAT = 8,
|
||||
KIPC_NMBCLUSTERS = 9,
|
||||
KIPC_SOQLIMITCOMPAT = 10,
|
||||
}
|
||||
|
||||
// CTL_VM identifiers
|
||||
enum
|
||||
{
|
||||
VM_METER = 1,
|
||||
VM_LOADAVG = 2,
|
||||
VM_MACHFACTOR = 4,
|
||||
VM_SWAPUSAGE = 5,
|
||||
VM_MAXID = 6,
|
||||
}
|
||||
|
||||
// CTL_HW identifiers
|
||||
enum
|
||||
{
|
||||
HW_MACHINE = 1,
|
||||
HW_MODEL = 2,
|
||||
HW_NCPU = 3,
|
||||
HW_BYTEORDER = 4,
|
||||
HW_PHYSMEM = 5,
|
||||
HW_USERMEM = 6,
|
||||
HW_PAGESIZE = 7,
|
||||
HW_DISKNAMES = 8,
|
||||
HW_DISKSTATS = 9,
|
||||
HW_EPOCH = 10,
|
||||
HW_FLOATINGPT = 11,
|
||||
HW_MACHINE_ARCH = 12,
|
||||
HW_VECTORUNIT = 13,
|
||||
HW_BUS_FREQ = 14,
|
||||
HW_CPU_FREQ = 15,
|
||||
HW_CACHELINE = 16,
|
||||
HW_L1ICACHESIZE = 17,
|
||||
HW_L1DCACHESIZE = 18,
|
||||
HW_L2SETTINGS = 19,
|
||||
HW_L2CACHESIZE = 20,
|
||||
HW_L3SETTINGS = 21,
|
||||
HW_L3CACHESIZE = 22,
|
||||
HW_TB_FREQ = 23,
|
||||
HW_MEMSIZE = 24,
|
||||
HW_AVAILCPU = 25,
|
||||
HW_MAXID = 26,
|
||||
}
|
||||
|
||||
// CTL_USER identifiers
|
||||
enum
|
||||
{
|
||||
USER_CS_PATH = 1,
|
||||
USER_BC_BASE_MAX = 2,
|
||||
USER_BC_DIM_MAX = 3,
|
||||
USER_BC_SCALE_MAX = 4,
|
||||
USER_BC_STRING_MAX = 5,
|
||||
USER_COLL_WEIGHTS_MAX = 6,
|
||||
USER_EXPR_NEST_MAX = 7,
|
||||
USER_LINE_MAX = 8,
|
||||
USER_RE_DUP_MAX = 9,
|
||||
USER_POSIX2_VERSION = 10,
|
||||
USER_POSIX2_C_BIND = 11,
|
||||
USER_POSIX2_C_DEV = 12,
|
||||
USER_POSIX2_CHAR_TERM = 13,
|
||||
USER_POSIX2_FORT_DEV = 14,
|
||||
USER_POSIX2_FORT_RUN = 15,
|
||||
USER_POSIX2_LOCALEDEF = 16,
|
||||
USER_POSIX2_SW_DEV = 17,
|
||||
USER_POSIX2_UPE = 18,
|
||||
USER_STREAM_MAX = 19,
|
||||
USER_TZNAME_MAX = 20,
|
||||
USER_MAXID = 21,
|
||||
}
|
||||
|
||||
///
|
||||
int sysctl(const int* name, uint namelen, void* oldp, size_t* oldlenp,
|
||||
const void* newp, size_t newlen);
|
||||
///
|
||||
int sysctlbyname(const char* name, void* oldp, size_t* oldlenp,
|
||||
const void* newp, size_t newlen);
|
||||
///
|
||||
int sysctlnametomib(const char* sname, int* name, size_t* namelenp);
|
17
libphobos/libdruntime/core/sys/dragonflybsd/stdlib.d
Normal file
17
libphobos/libdruntime/core/sys/dragonflybsd/stdlib.d
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* D header file for DragonFlyBSD stdlib.h.
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.dragonflybsd.stdlib;
|
||||
public import core.sys.posix.stdlib;
|
||||
|
||||
version (DragonFlyBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
const(char)* getprogname();
|
||||
void setprogname(scope const char* name);
|
199
libphobos/libdruntime/core/sys/dragonflybsd/sys/sysctl.d
Normal file
199
libphobos/libdruntime/core/sys/dragonflybsd/sys/sysctl.d
Normal file
@ -0,0 +1,199 @@
|
||||
/**
|
||||
* D header file for DragonFlyBSD sys/sysctl.h
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.dragonflybsd.sys.sysctl;
|
||||
|
||||
version (DragonFlyBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
// Top-level identifiers
|
||||
enum
|
||||
{
|
||||
CTL_SYSCTL = 0,
|
||||
CTL_KERN = 1,
|
||||
CTL_VM = 2,
|
||||
CTL_VFS = 3,
|
||||
CTL_NET = 4,
|
||||
CTL_DEBUG = 5,
|
||||
CTL_HW = 6,
|
||||
CTL_MACHDEP = 7,
|
||||
CTL_USER = 8,
|
||||
CTL_P1003_1B = 9,
|
||||
CTL_LWKT = 10,
|
||||
CTL_MAXID = 11,
|
||||
}
|
||||
|
||||
// CTL_SYSCTL identifiers
|
||||
enum
|
||||
{
|
||||
CTL_SYSCTL_DEBUG = 0,
|
||||
CTL_SYSCTL_NAME = 1,
|
||||
CTL_SYSCTL_NEXT = 2,
|
||||
CTL_SYSCTL_NAME2OID = 3,
|
||||
CTL_SYSCTL_OIDFMT = 4,
|
||||
CTL_SYSCTL_OIDDESCR = 5,
|
||||
}
|
||||
|
||||
// CTL_KERN identifiers
|
||||
enum
|
||||
{
|
||||
KERN_OSTYPE = 1,
|
||||
KERN_OSRELEASE = 2,
|
||||
KERN_OSREV = 3,
|
||||
KERN_VERSION = 4,
|
||||
KERN_MAXVNODES = 5,
|
||||
KERN_MAXPROC = 6,
|
||||
KERN_MAXFILES = 7,
|
||||
KERN_ARGMAX = 8,
|
||||
KERN_SECURELVL = 9,
|
||||
KERN_HOSTNAME = 10,
|
||||
KERN_HOSTID = 11,
|
||||
KERN_CLOCKRATE = 12,
|
||||
KERN_VNODE = 13,
|
||||
KERN_PROC = 14,
|
||||
KERN_FILE = 15,
|
||||
KERN_POSIX1 = 17,
|
||||
KERN_NGROUPS = 18,
|
||||
KERN_JOB_CONTROL = 19,
|
||||
KERN_SAVED_IDS = 20,
|
||||
KERN_BOOTTIME = 21,
|
||||
KERN_NISDOMAINNAME = 22,
|
||||
KERN_UPDATEINTERVAL = 23,
|
||||
KERN_OSRELDATE = 24,
|
||||
KERN_NTP_PLL = 25,
|
||||
KERN_BOOTFILE = 26,
|
||||
KERN_MAXFILESPERPROC = 27,
|
||||
KERN_MAXPROCPERUID = 28,
|
||||
KERN_DUMPDEV = 29,
|
||||
KERN_IPC = 30,
|
||||
KERN_DUMMY = 31,
|
||||
KERN_PS_STRINGS = 32,
|
||||
KERN_USRSTACK = 33,
|
||||
KERN_LOGSIGEXIT = 34,
|
||||
KERN_IOV_MAX = 35,
|
||||
KERN_MAXPOSIXLOCKSPERUID = 36,
|
||||
KERN_MAXID = 37,
|
||||
}
|
||||
|
||||
// KERN_PROC subtypes
|
||||
enum
|
||||
{
|
||||
KERN_PROC_ALL = 0,
|
||||
KERN_PROC_PID = 1,
|
||||
KERN_PROC_PGRP = 2,
|
||||
KERN_PROC_SESSION = 3,
|
||||
KERN_PROC_TTY = 4,
|
||||
KERN_PROC_UID = 5,
|
||||
KERN_PROC_RUID = 6,
|
||||
KERN_PROC_ARGS = 7,
|
||||
KERN_PROC_CWD = 8,
|
||||
KERN_PROC_PATHNAME = 9,
|
||||
KERN_PROC_SIGTRAMP = 10,
|
||||
KERN_PROC_FLAGMASK = 0x10,
|
||||
KERN_PROC_FLAG_LWP = 0x10,
|
||||
}
|
||||
|
||||
// KERN_IPC identifiers
|
||||
enum
|
||||
{
|
||||
KIPC_MAXSOCKBUF = 1,
|
||||
KIPC_SOCKBUF_WASTE = 2,
|
||||
KIPC_SOMAXCONN = 3,
|
||||
KIPC_MAX_LINKHDR = 4,
|
||||
KIPC_MAX_PROTOHDR = 5,
|
||||
KIPC_MAX_HDR = 6,
|
||||
KIPC_MAX_DATALEN = 7,
|
||||
KIPC_MBSTAT = 8,
|
||||
KIPC_NMBCLUSTERS = 9,
|
||||
}
|
||||
|
||||
// CTL_HW identifiers
|
||||
enum
|
||||
{
|
||||
HW_MACHINE = 1,
|
||||
HW_MODEL = 2,
|
||||
HW_NCPU = 3,
|
||||
HW_BYTEORDER = 4,
|
||||
HW_PHYSMEM = 5,
|
||||
HW_USERMEM = 6,
|
||||
HW_PAGESIZE = 7,
|
||||
HW_DISKNAMES = 8,
|
||||
HW_DISKSTATS = 9,
|
||||
HW_FLOATINGPT = 10,
|
||||
HW_MACHINE_ARCH = 11,
|
||||
HW_MACHINE_PLATFORM = 12,
|
||||
HW_SENSORS = 13,
|
||||
HW_MAXID = 14,
|
||||
}
|
||||
|
||||
// CTL_USER definitions
|
||||
enum
|
||||
{
|
||||
USER_CS_PATH = 1,
|
||||
USER_BC_BASE_MAX = 2,
|
||||
USER_BC_DIM_MAX = 3,
|
||||
USER_BC_SCALE_MAX = 4,
|
||||
USER_BC_STRING_MAX = 5,
|
||||
USER_COLL_WEIGHTS_MAX = 6,
|
||||
USER_EXPR_NEST_MAX = 7,
|
||||
USER_LINE_MAX = 8,
|
||||
USER_RE_DUP_MAX = 9,
|
||||
USER_POSIX2_VERSION = 10,
|
||||
USER_POSIX2_C_BIND = 11,
|
||||
USER_POSIX2_C_DEV = 12,
|
||||
USER_POSIX2_CHAR_TERM = 13,
|
||||
USER_POSIX2_FORT_DEV = 14,
|
||||
USER_POSIX2_FORT_RUN = 15,
|
||||
USER_POSIX2_LOCALEDEF = 16,
|
||||
USER_POSIX2_SW_DEV = 17,
|
||||
USER_POSIX2_UPE = 18,
|
||||
USER_STREAM_MAX = 19,
|
||||
USER_TZNAME_MAX = 20,
|
||||
USER_MAXID = 21,
|
||||
}
|
||||
|
||||
// POSIX 1003.1B definitions
|
||||
enum
|
||||
{
|
||||
CTL_P1003_1B_ASYNCHRONOUS_IO = 1,
|
||||
CTL_P1003_1B_MAPPED_FILES = 2,
|
||||
CTL_P1003_1B_MEMLOCK = 3,
|
||||
CTL_P1003_1B_MEMLOCK_RANGE = 4,
|
||||
CTL_P1003_1B_MEMORY_PROTECTION = 5,
|
||||
CTL_P1003_1B_MESSAGE_PASSING = 6,
|
||||
CTL_P1003_1B_PRIORITIZED_IO = 7,
|
||||
CTL_P1003_1B_PRIORITY_SCHEDULING = 8,
|
||||
CTL_P1003_1B_REALTIME_SIGNALS = 9,
|
||||
CTL_P1003_1B_SEMAPHORES = 10,
|
||||
CTL_P1003_1B_FSYNC = 11,
|
||||
CTL_P1003_1B_SHARED_MEMORY_OBJECTS = 12,
|
||||
CTL_P1003_1B_SYNCHRONIZED_IO = 13,
|
||||
CTL_P1003_1B_TIMERS = 14,
|
||||
CTL_P1003_1B_AIO_LISTIO_MAX = 15,
|
||||
CTL_P1003_1B_AIO_MAX = 16,
|
||||
CTL_P1003_1B_AIO_PRIO_DELTA_MAX = 17,
|
||||
CTL_P1003_1B_DELAYTIMER_MAX = 18,
|
||||
CTL_P1003_1B_UNUSED19 = 19,
|
||||
CTL_P1003_1B_PAGESIZE = 20,
|
||||
CTL_P1003_1B_RTSIG_MAX = 21,
|
||||
CTL_P1003_1B_SEM_NSEMS_MAX = 22,
|
||||
CTL_P1003_1B_UNUSED23 = 23,
|
||||
CTL_P1003_1B_SIGQUEUE_MAX = 24,
|
||||
CTL_P1003_1B_TIMER_MAX = 25,
|
||||
CTL_P1003_1B_MAXID = 26,
|
||||
}
|
||||
|
||||
///
|
||||
int sysctl(const int* name, uint namelen, void* oldp, size_t* oldlenp,
|
||||
const void* newp, size_t newlen);
|
||||
///
|
||||
int sysctlbyname(const char* name, void* oldp, size_t* oldlenp,
|
||||
const void* newp, size_t newlen);
|
||||
///
|
||||
int sysctlnametomib(const char* name, int* mibp, size_t* sizep);
|
17
libphobos/libdruntime/core/sys/freebsd/stdlib.d
Normal file
17
libphobos/libdruntime/core/sys/freebsd/stdlib.d
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* D header file for FreeBSD stdlib.h.
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.freebsd.stdlib;
|
||||
public import core.sys.posix.stdlib;
|
||||
|
||||
version (FreeBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
const(char)* getprogname();
|
||||
void setprogname(scope const char* name);
|
211
libphobos/libdruntime/core/sys/freebsd/sys/sysctl.d
Normal file
211
libphobos/libdruntime/core/sys/freebsd/sys/sysctl.d
Normal file
@ -0,0 +1,211 @@
|
||||
/**
|
||||
* D header file for FreeBSD sys/sysctl.h
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.freebsd.sys.sysctl;
|
||||
|
||||
version (FreeBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
// Top-level identifiers
|
||||
enum
|
||||
{
|
||||
CTL_SYSCTL = 0,
|
||||
CTL_KERN = 1,
|
||||
CTL_VM = 2,
|
||||
CTL_VFS = 3,
|
||||
CTL_NET = 4,
|
||||
CTL_DEBUG = 5,
|
||||
CTL_HW = 6,
|
||||
CTL_MACHDEP = 7,
|
||||
CTL_USER = 8,
|
||||
CTL_P1003_1B = 9,
|
||||
}
|
||||
|
||||
// CTL_SYSCTL identifiers
|
||||
enum
|
||||
{
|
||||
CTL_SYSCTL_DEBUG = 0,
|
||||
CTL_SYSCTL_NAME = 1,
|
||||
CTL_SYSCTL_NEXT = 2,
|
||||
CTL_SYSCTL_NAME2OID = 3,
|
||||
CTL_SYSCTL_OIDFMT = 4,
|
||||
CTL_SYSCTL_OIDDESCR = 5,
|
||||
CTL_SYSCTL_OIDLABEL = 6,
|
||||
}
|
||||
|
||||
// CTL_KERN identifiers
|
||||
enum
|
||||
{
|
||||
KERN_OSTYPE = 1,
|
||||
KERN_OSRELEASE = 2,
|
||||
KERN_OSREV = 3,
|
||||
KERN_VERSION = 4,
|
||||
KERN_MAXVNODES = 5,
|
||||
KERN_MAXPROC = 6,
|
||||
KERN_MAXFILES = 7,
|
||||
KERN_ARGMAX = 8,
|
||||
KERN_SECURELVL = 9,
|
||||
KERN_HOSTNAME = 10,
|
||||
KERN_HOSTID = 11,
|
||||
KERN_CLOCKRATE = 12,
|
||||
KERN_VNODE = 13,
|
||||
KERN_PROC = 14,
|
||||
KERN_FILE = 15,
|
||||
KERN_PROF = 16,
|
||||
KERN_POSIX1 = 17,
|
||||
KERN_NGROUPS = 18,
|
||||
KERN_JOB_CONTROL = 19,
|
||||
KERN_SAVED_IDS = 20,
|
||||
KERN_BOOTTIME = 21,
|
||||
KERN_NISDOMAINNAME = 22,
|
||||
KERN_UPDATEINTERVAL = 23,
|
||||
KERN_OSRELDATE = 24,
|
||||
KERN_NTP_PLL = 25,
|
||||
KERN_BOOTFILE = 26,
|
||||
KERN_MAXFILESPERPROC = 27,
|
||||
KERN_MAXPROCPERUID = 28,
|
||||
KERN_DUMPDEV = 29,
|
||||
KERN_IPC = 30,
|
||||
KERN_DUMMY = 31,
|
||||
KERN_PS_STRINGS = 32,
|
||||
KERN_USRSTACK = 33,
|
||||
KERN_LOGSIGEXIT = 34,
|
||||
KERN_IOV_MAX = 35,
|
||||
KERN_HOSTUUID = 36,
|
||||
KERN_ARND = 37,
|
||||
KERN_MAXPHYS = 38,
|
||||
}
|
||||
|
||||
// KERN_PROC subtypes
|
||||
enum
|
||||
{
|
||||
KERN_PROC_ALL = 0,
|
||||
KERN_PROC_PID = 1,
|
||||
KERN_PROC_PGRP = 2,
|
||||
KERN_PROC_SESSION = 3,
|
||||
KERN_PROC_TTY = 4,
|
||||
KERN_PROC_UID = 5,
|
||||
KERN_PROC_RUID = 6,
|
||||
KERN_PROC_ARGS = 7,
|
||||
KERN_PROC_PROC = 8,
|
||||
KERN_PROC_SV_NAME = 9,
|
||||
KERN_PROC_RGID = 10,
|
||||
KERN_PROC_GID = 11,
|
||||
KERN_PROC_PATHNAME = 12,
|
||||
KERN_PROC_OVMMAP = 13,
|
||||
KERN_PROC_OFILEDESC = 14,
|
||||
KERN_PROC_KSTACK = 15,
|
||||
KERN_PROC_INC_THREAD = 0x10,
|
||||
KERN_PROC_VMMAP = 32,
|
||||
KERN_PROC_FILEDESC = 33,
|
||||
KERN_PROC_GROUPS = 34,
|
||||
KERN_PROC_ENV = 35,
|
||||
KERN_PROC_AUXV = 36,
|
||||
KERN_PROC_RLIMIT = 37,
|
||||
KERN_PROC_PS_STRINGS = 38,
|
||||
KERN_PROC_UMASK = 39,
|
||||
KERN_PROC_OSREL = 40,
|
||||
KERN_PROC_SIGTRAMP = 41,
|
||||
KERN_PROC_CWD = 42,
|
||||
KERN_PROC_NFDS = 43,
|
||||
}
|
||||
|
||||
// KERN_IPC identifiers
|
||||
enum
|
||||
{
|
||||
KIPC_MAXSOCKBUF = 1,
|
||||
KIPC_SOCKBUF_WASTE = 2,
|
||||
KIPC_SOMAXCONN = 3,
|
||||
KIPC_MAX_LINKHDR = 4,
|
||||
KIPC_MAX_PROTOHDR = 5,
|
||||
KIPC_MAX_HDR = 6,
|
||||
KIPC_MAX_DATALEN = 7,
|
||||
}
|
||||
|
||||
// CTL_HW identifiers
|
||||
enum
|
||||
{
|
||||
HW_MACHINE = 1,
|
||||
HW_MODEL = 2,
|
||||
HW_NCPU = 3,
|
||||
HW_BYTEORDER = 4,
|
||||
HW_PHYSMEM = 5,
|
||||
HW_USERMEM = 6,
|
||||
HW_PAGESIZE = 7,
|
||||
HW_DISKNAMES = 8,
|
||||
HW_DISKSTATS = 9,
|
||||
HW_FLOATINGPT = 10,
|
||||
HW_MACHINE_ARCH = 11,
|
||||
HW_REALMEM = 12,
|
||||
}
|
||||
|
||||
// CTL_USER identifiers
|
||||
enum
|
||||
{
|
||||
USER_CS_PATH = 1,
|
||||
USER_BC_BASE_MAX = 2,
|
||||
USER_BC_DIM_MAX = 3,
|
||||
USER_BC_SCALE_MAX = 4,
|
||||
USER_BC_STRING_MAX = 5,
|
||||
USER_COLL_WEIGHTS_MAX = 6,
|
||||
USER_EXPR_NEST_MAX = 7,
|
||||
USER_LINE_MAX = 8,
|
||||
USER_RE_DUP_MAX = 9,
|
||||
USER_POSIX2_VERSION = 10,
|
||||
USER_POSIX2_C_BIND = 11,
|
||||
USER_POSIX2_C_DEV = 12,
|
||||
USER_POSIX2_CHAR_TERM = 13,
|
||||
USER_POSIX2_FORT_DEV = 14,
|
||||
USER_POSIX2_FORT_RUN = 15,
|
||||
USER_POSIX2_LOCALEDEF = 16,
|
||||
USER_POSIX2_SW_DEV = 17,
|
||||
USER_POSIX2_UPE = 18,
|
||||
USER_STREAM_MAX = 19,
|
||||
USER_TZNAME_MAX = 20,
|
||||
}
|
||||
|
||||
// POSIX 1003.1B definitions
|
||||
enum
|
||||
{
|
||||
CTL_P1003_1B_ASYNCHRONOUS_IO = 1,
|
||||
CTL_P1003_1B_MAPPED_FILES = 2,
|
||||
CTL_P1003_1B_MEMLOCK = 3,
|
||||
CTL_P1003_1B_MEMLOCK_RANGE = 4,
|
||||
CTL_P1003_1B_MEMORY_PROTECTION = 5,
|
||||
CTL_P1003_1B_MESSAGE_PASSING = 6,
|
||||
CTL_P1003_1B_PRIORITIZED_IO = 7,
|
||||
CTL_P1003_1B_PRIORITY_SCHEDULING = 8,
|
||||
CTL_P1003_1B_REALTIME_SIGNALS = 9,
|
||||
CTL_P1003_1B_SEMAPHORES = 10,
|
||||
CTL_P1003_1B_FSYNC = 11,
|
||||
CTL_P1003_1B_SHARED_MEMORY_OBJECTS = 12,
|
||||
CTL_P1003_1B_SYNCHRONIZED_IO = 13,
|
||||
CTL_P1003_1B_TIMERS = 14,
|
||||
CTL_P1003_1B_AIO_LISTIO_MAX = 15,
|
||||
CTL_P1003_1B_AIO_MAX = 16,
|
||||
CTL_P1003_1B_AIO_PRIO_DELTA_MAX = 17,
|
||||
CTL_P1003_1B_DELAYTIMER_MAX = 18,
|
||||
CTL_P1003_1B_UNUSED19 = 19,
|
||||
CTL_P1003_1B_PAGESIZE = 20,
|
||||
CTL_P1003_1B_RTSIG_MAX = 21,
|
||||
CTL_P1003_1B_SEM_NSEMS_MAX = 22,
|
||||
CTL_P1003_1B_UNUSED23 = 23,
|
||||
CTL_P1003_1B_SIGQUEUE_MAX = 24,
|
||||
CTL_P1003_1B_TIMER_MAX = 25,
|
||||
CTL_P1003_1B_MAXID = 26,
|
||||
}
|
||||
|
||||
///
|
||||
int sysctl(const int* name, uint namelen, void* oldp, size_t* oldlenp,
|
||||
const void* newp, size_t newlen);
|
||||
///
|
||||
int sysctlbyname(const char* name, void* oldp, size_t* oldlenp,
|
||||
const void* newp, size_t newlen);
|
||||
///
|
||||
int sysctlnametomib(const char* name, int* mibp, size_t* sizep);
|
17
libphobos/libdruntime/core/sys/netbsd/stdlib.d
Normal file
17
libphobos/libdruntime/core/sys/netbsd/stdlib.d
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* D header file for NetBSD stdlib.h.
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.netbsd.stdlib;
|
||||
public import core.sys.posix.stdlib;
|
||||
|
||||
version (NetBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
const(char)* getprogname();
|
||||
void setprogname(scope const char* name);
|
254
libphobos/libdruntime/core/sys/netbsd/sys/sysctl.d
Normal file
254
libphobos/libdruntime/core/sys/netbsd/sys/sysctl.d
Normal file
@ -0,0 +1,254 @@
|
||||
/**
|
||||
* D header file for NetBSD sys/sysctl.h
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.netbsd.sys.sysctl;
|
||||
|
||||
version (NetBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
// Top-level identifiers
|
||||
enum
|
||||
{
|
||||
CTL_UNSPEC = 0,
|
||||
CTL_KERN = 1,
|
||||
CTL_VM = 2,
|
||||
CTL_VFS = 3,
|
||||
CTL_NET = 4,
|
||||
CTL_DEBUG = 5,
|
||||
CTL_HW = 6,
|
||||
CTL_MACHDEP = 7,
|
||||
CTL_DDB = 9,
|
||||
CTL_PROC = 10,
|
||||
CTL_VENDOR = 11,
|
||||
CTL_EMUL = 12,
|
||||
CTL_SECURITY = 13,
|
||||
}
|
||||
|
||||
// CTL_KERN identifiers
|
||||
enum
|
||||
{
|
||||
KERN_OSTYPE = 1,
|
||||
KERN_OSRELEASE = 2,
|
||||
KERN_OSREV = 3,
|
||||
KERN_VERSION = 4,
|
||||
KERN_MAXVNODES = 5,
|
||||
KERN_MAXPROC = 6,
|
||||
KERN_MAXFILES = 7,
|
||||
KERN_ARGMAX = 8,
|
||||
KERN_SECURELVL = 9,
|
||||
KERN_HOSTNAME = 10,
|
||||
KERN_HOSTID = 11,
|
||||
KERN_CLOCKRATE = 12,
|
||||
KERN_VNODE = 13,
|
||||
KERN_PROC = 14,
|
||||
KERN_FILE = 15,
|
||||
KERN_PROF = 16,
|
||||
KERN_POSIX1 = 17,
|
||||
KERN_NGROUPS = 18,
|
||||
KERN_JOB_CONTROL = 19,
|
||||
KERN_SAVED_IDS = 20,
|
||||
KERN_OBOOTTIME = 21,
|
||||
KERN_DOMAINNAME = 22,
|
||||
KERN_MAXPARTITIONS = 23,
|
||||
KERN_RAWPARTITION = 24,
|
||||
KERN_NTPTIME = 25,
|
||||
KERN_TIMEX = 26,
|
||||
KERN_AUTONICETIME = 27,
|
||||
KERN_AUTONICEVAL = 28,
|
||||
KERN_RTC_OFFSET = 29,
|
||||
KERN_ROOT_DEVICE = 30,
|
||||
KERN_MSGBUFSIZE = 31,
|
||||
KERN_FSYNC = 32,
|
||||
KERN_OLDSYSVMSG = 33,
|
||||
KERN_OLDSYSVSEM = 34,
|
||||
KERN_OLDSYSVSHM = 35,
|
||||
KERN_OLDSHORTCORENAME = 36,
|
||||
KERN_SYNCHRONIZED_IO = 37,
|
||||
KERN_IOV_MAX = 38,
|
||||
KERN_MBUF = 39,
|
||||
KERN_MAPPED_FILES = 40,
|
||||
KERN_MEMLOCK = 41,
|
||||
KERN_MEMLOCK_RANGE = 42,
|
||||
KERN_MEMORY_PROTECTION = 43,
|
||||
KERN_LOGIN_NAME_MAX = 44,
|
||||
KERN_DEFCORENAME = 45,
|
||||
KERN_LOGSIGEXIT = 46,
|
||||
KERN_PROC2 = 47,
|
||||
KERN_PROC_ARGS = 48,
|
||||
KERN_FSCALE = 49,
|
||||
KERN_CCPU = 50,
|
||||
KERN_CP_TIME = 51,
|
||||
KERN_OLDSYSVIPC_INFO = 52,
|
||||
KERN_MSGBUF = 53,
|
||||
KERN_CONSDEV = 54,
|
||||
KERN_MAXPTYS = 55,
|
||||
KERN_PIPE = 56,
|
||||
KERN_MAXPHYS = 57,
|
||||
KERN_SBMAX = 58,
|
||||
KERN_TKSTAT = 59,
|
||||
KERN_MONOTONIC_CLOCK = 60,
|
||||
KERN_URND = 61,
|
||||
KERN_LABELSECTOR = 62,
|
||||
KERN_LABELOFFSET = 63,
|
||||
KERN_LWP = 64,
|
||||
KERN_FORKFSLEEP = 65,
|
||||
KERN_POSIX_THREADS = 66,
|
||||
KERN_POSIX_SEMAPHORES = 67,
|
||||
KERN_POSIX_BARRIERS = 68,
|
||||
KERN_POSIX_TIMERS = 69,
|
||||
KERN_POSIX_SPIN_LOCKS = 70,
|
||||
KERN_POSIX_READER_WRITER_LOCKS = 71,
|
||||
KERN_DUMP_ON_PANIC = 72,
|
||||
KERN_SOMAXKVA = 73,
|
||||
KERN_ROOT_PARTITION = 74,
|
||||
KERN_DRIVERS = 75,
|
||||
KERN_BUF = 76,
|
||||
KERN_FILE2 = 77,
|
||||
KERN_VERIEXEC = 78,
|
||||
KERN_CP_ID = 79,
|
||||
KERN_HARDCLOCK_TICKS = 80,
|
||||
KERN_ARND = 81,
|
||||
KERN_SYSVIPC = 82,
|
||||
KERN_BOOTTIME = 83,
|
||||
KERN_EVCNT = 84,
|
||||
KERN_SOFIXEDBUF = 85,
|
||||
}
|
||||
|
||||
// KERN_PROC subtypes
|
||||
enum
|
||||
{
|
||||
KERN_PROC_ALL = 0,
|
||||
KERN_PROC_PID = 1,
|
||||
KERN_PROC_PGRP = 2,
|
||||
KERN_PROC_SESSION = 3,
|
||||
KERN_PROC_TTY = 4,
|
||||
KERN_PROC_UID = 5,
|
||||
KERN_PROC_RUID = 6,
|
||||
KERN_PROC_KTHREAD = 7,
|
||||
KERN_PROC_RGID = 8,
|
||||
}
|
||||
|
||||
// KERN_PROC_ARGS subtypes
|
||||
enum
|
||||
{
|
||||
KERN_PROC_ARGV = 1,
|
||||
KERN_PROC_NARGV = 2,
|
||||
KERN_PROC_ENV = 3,
|
||||
KERN_PROC_NENV = 4,
|
||||
KERN_PROC_PATHNAME = 5,
|
||||
KERN_PROC_CWD = 6,
|
||||
}
|
||||
|
||||
// KERN_SYSVIPC subtypes
|
||||
enum
|
||||
{
|
||||
KERN_SYSVIPC_INFO = 1,
|
||||
KERN_SYSVIPC_MSG = 2,
|
||||
KERN_SYSVIPC_SEM = 3,
|
||||
KERN_SYSVIPC_SHM = 4,
|
||||
KERN_SYSVIPC_SHMMAX = 5,
|
||||
KERN_SYSVIPC_SHMMNI = 6,
|
||||
KERN_SYSVIPC_SHMSEG = 7,
|
||||
KERN_SYSVIPC_SHMMAXPGS = 8,
|
||||
KERN_SYSVIPC_SHMUSEPHYS = 9,
|
||||
}
|
||||
|
||||
// KERN_SYSVIPC_INFO subtypes
|
||||
enum
|
||||
{
|
||||
KERN_SYSVIPC_MSG_INFO = 4,
|
||||
KERN_SYSVIPC_SEM_INFO = 5,
|
||||
KERN_SYSVIPC_SHM_INFO = 6,
|
||||
}
|
||||
|
||||
// KERN_TKSTAT subtypes
|
||||
enum
|
||||
{
|
||||
KERN_TKSTAT_NIN = 1,
|
||||
KERN_TKSTAT_NOUT = 2,
|
||||
KERN_TKSTAT_CANCC = 3,
|
||||
KERN_TKSTAT_RAWCC = 4,
|
||||
}
|
||||
|
||||
// KERN_BUF subtypes
|
||||
enum
|
||||
{
|
||||
KERN_BUF_ALL = 0,
|
||||
}
|
||||
|
||||
// KERN_FILE
|
||||
enum
|
||||
{
|
||||
KERN_FILE_BYFILE = 1,
|
||||
KERN_FILE_BYPID = 2,
|
||||
KERN_FILESLOP = 10,
|
||||
}
|
||||
|
||||
// KERN_EVCNT
|
||||
enum
|
||||
{
|
||||
KERN_EVCNT_COUNT_ANY = 0,
|
||||
KERN_EVCNT_COUNT_NONZERO = 1,
|
||||
}
|
||||
|
||||
// CTL_HW identifiers
|
||||
enum
|
||||
{
|
||||
HW_MACHINE = 1,
|
||||
HW_MODEL = 2,
|
||||
HW_NCPU = 3,
|
||||
HW_BYTEORDER = 4,
|
||||
HW_PHYSMEM = 5,
|
||||
HW_USERMEM = 6,
|
||||
HW_PAGESIZE = 7,
|
||||
HW_DISKNAMES = 8,
|
||||
HW_IOSTATS = 9,
|
||||
HW_MACHINE_ARCH = 10,
|
||||
HW_ALIGNBYTES = 11,
|
||||
HW_CNMAGIC = 12,
|
||||
HW_PHYSMEM64 = 13,
|
||||
HW_USERMEM64 = 14,
|
||||
HW_IOSTATNAMES = 15,
|
||||
HW_NCPUONLINE = 16,
|
||||
}
|
||||
|
||||
// CTL_USER definitions
|
||||
enum
|
||||
{
|
||||
USER_CS_PATH = 1,
|
||||
USER_BC_BASE_MAX = 2,
|
||||
USER_BC_DIM_MAX = 3,
|
||||
USER_BC_SCALE_MAX = 4,
|
||||
USER_BC_STRING_MAX = 5,
|
||||
USER_COLL_WEIGHTS_MAX = 6,
|
||||
USER_EXPR_NEST_MAX = 7,
|
||||
USER_LINE_MAX = 8,
|
||||
USER_RE_DUP_MAX = 9,
|
||||
USER_POSIX2_VERSION = 10,
|
||||
USER_POSIX2_C_BIND = 11,
|
||||
USER_POSIX2_C_DEV = 12,
|
||||
USER_POSIX2_CHAR_TERM = 13,
|
||||
USER_POSIX2_FORT_DEV = 14,
|
||||
USER_POSIX2_FORT_RUN = 15,
|
||||
USER_POSIX2_LOCALEDEF = 16,
|
||||
USER_POSIX2_SW_DEV = 17,
|
||||
USER_POSIX2_UPE = 18,
|
||||
USER_STREAM_MAX = 19,
|
||||
USER_TZNAME_MAX = 20,
|
||||
USER_ATEXIT_MAX = 21,
|
||||
}
|
||||
|
||||
///
|
||||
int sysctl(const int* name, uint namelen, void* oldp, size_t* oldlenp,
|
||||
const void* newp, size_t newlen);
|
||||
///
|
||||
int sysctlbyname(const char* name, void* oldp, size_t* oldlenp,
|
||||
const void* newp, size_t newlen);
|
||||
///
|
||||
int sysctlnametomib(const char* sname, int* name, size_t* namelenp);
|
17
libphobos/libdruntime/core/sys/openbsd/stdlib.d
Normal file
17
libphobos/libdruntime/core/sys/openbsd/stdlib.d
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* D header file for OpenBSD stdlib.h.
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.openbsd.stdlib;
|
||||
public import core.sys.posix.stdlib;
|
||||
|
||||
version (OpenBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
const(char)* getprogname();
|
||||
void setprogname(scope const char* name);
|
254
libphobos/libdruntime/core/sys/openbsd/sys/sysctl.d
Normal file
254
libphobos/libdruntime/core/sys/openbsd/sys/sysctl.d
Normal file
@ -0,0 +1,254 @@
|
||||
/**
|
||||
* D header file for OpenBSD sys/sysctl.h
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.openbsd.sys.sysctl;
|
||||
|
||||
version (OpenBSD):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
// Top-level identifiers
|
||||
enum
|
||||
{
|
||||
CTL_UNSPEC = 0,
|
||||
CTL_KERN = 1,
|
||||
CTL_VM = 2,
|
||||
CTL_FS = 3,
|
||||
CTL_NET = 4,
|
||||
CTL_DEBUG = 5,
|
||||
CTL_HW = 6,
|
||||
CTL_MACHDEP = 7,
|
||||
CTL_DDB = 9,
|
||||
CTL_VFS = 10,
|
||||
CTL_MAXID = 11,
|
||||
}
|
||||
|
||||
// CTL_KERN identifiers
|
||||
enum
|
||||
{
|
||||
KERN_OSTYPE = 1,
|
||||
KERN_OSRELEASE = 2,
|
||||
KERN_OSREV = 3,
|
||||
KERN_VERSION = 4,
|
||||
KERN_MAXVNODES = 5,
|
||||
KERN_MAXPROC = 6,
|
||||
KERN_MAXFILES = 7,
|
||||
KERN_ARGMAX = 8,
|
||||
KERN_SECURELVL = 9,
|
||||
KERN_HOSTNAME = 10,
|
||||
KERN_HOSTID = 11,
|
||||
KERN_CLOCKRATE = 12,
|
||||
KERN_PROF = 16,
|
||||
KERN_POSIX1 = 17,
|
||||
KERN_NGROUPS = 18,
|
||||
KERN_JOB_CONTROL = 19,
|
||||
KERN_SAVED_IDS = 20,
|
||||
KERN_BOOTTIME = 21,
|
||||
KERN_DOMAINNAME = 22,
|
||||
KERN_MAXPARTITIONS = 23,
|
||||
KERN_RAWPARTITION = 24,
|
||||
KERN_MAXTHREAD = 25,
|
||||
KERN_NTHREADS = 26,
|
||||
KERN_OSVERSION = 27,
|
||||
KERN_SOMAXCONN = 28,
|
||||
KERN_SOMINCONN = 29,
|
||||
KERN_NOSUIDCOREDUMP = 32,
|
||||
KERN_FSYNC = 33,
|
||||
KERN_SYSVMSG = 34,
|
||||
KERN_SYSVSEM = 35,
|
||||
KERN_SYSVSHM = 36,
|
||||
KERN_MSGBUFSIZE = 38,
|
||||
KERN_MALLOCSTATS = 39,
|
||||
KERN_CPTIME = 40,
|
||||
KERN_NCHSTATS = 41,
|
||||
KERN_FORKSTAT = 42,
|
||||
KERN_NSELCOLL = 43,
|
||||
KERN_TTY = 44,
|
||||
KERN_CCPU = 45,
|
||||
KERN_FSCALE = 46,
|
||||
KERN_NPROCS = 47,
|
||||
KERN_MSGBUF = 48,
|
||||
KERN_POOL = 49,
|
||||
KERN_STACKGAPRANDOM = 50,
|
||||
KERN_SYSVIPC_INFO = 51,
|
||||
KERN_ALLOWKMEM = 52,
|
||||
KERN_WITNESSWATCH = 53,
|
||||
KERN_SPLASSERT = 54,
|
||||
KERN_PROC_ARGS = 55,
|
||||
KERN_NFILES = 56,
|
||||
KERN_TTYCOUNT = 57,
|
||||
KERN_NUMVNODES = 58,
|
||||
KERN_MBSTAT = 59,
|
||||
KERN_WITNESS = 60,
|
||||
KERN_SEMINFO = 61,
|
||||
KERN_SHMINFO = 62,
|
||||
KERN_INTRCNT = 63,
|
||||
KERN_WATCHDOG = 64,
|
||||
KERN_ALLOWDT = 65,
|
||||
KERN_PROC = 66,
|
||||
KERN_MAXCLUSTERS = 67,
|
||||
KERN_EVCOUNT = 68,
|
||||
KERN_TIMECOUNTER = 69,
|
||||
KERN_MAXLOCKSPERUID = 70,
|
||||
KERN_CPTIME2 = 71,
|
||||
KERN_CACHEPCT = 72,
|
||||
KERN_FILE = 73,
|
||||
KERN_WXABORT = 74,
|
||||
KERN_CONSDEV = 75,
|
||||
KERN_NETLIVELOCKS = 76,
|
||||
KERN_POOL_DEBUG = 77,
|
||||
KERN_PROC_CWD = 78,
|
||||
KERN_PROC_NOBROADCASTKILL = 79,
|
||||
KERN_PROC_VMMAP = 80,
|
||||
KERN_GLOBAL_PTRACE = 81,
|
||||
KERN_CONSBUFSIZE = 82,
|
||||
KERN_CONSBUF = 83,
|
||||
KERN_AUDIO = 84,
|
||||
KERN_CPUSTATS = 85,
|
||||
KERN_PFSTATUS = 86,
|
||||
KERN_TIMEOUT_STATS = 87,
|
||||
KERN_UTC_OFFSET = 88,
|
||||
KERN_MAXID = 89,
|
||||
}
|
||||
|
||||
// KERN_PROC subtypes
|
||||
enum
|
||||
{
|
||||
KERN_PROC_ALL = 0,
|
||||
KERN_PROC_PID = 1,
|
||||
KERN_PROC_PGRP = 2,
|
||||
KERN_PROC_SESSION = 3,
|
||||
KERN_PROC_TTY = 4,
|
||||
KERN_PROC_UID = 5,
|
||||
KERN_PROC_RUID = 6,
|
||||
KERN_PROC_KTHREAD = 7,
|
||||
KERN_PROC_SHOW_THREADS = 0x40000000,
|
||||
}
|
||||
|
||||
// KERN_SYSVIPC_INFO subtypes
|
||||
enum
|
||||
{
|
||||
KERN_SYSVIPC_MSG_INFO = 1,
|
||||
KERN_SYSVIPC_SEM_INFO = 2,
|
||||
KERN_SYSVIPC_SHM_INFO = 3,
|
||||
}
|
||||
|
||||
// KERN_PROC_ARGS subtypes
|
||||
enum
|
||||
{
|
||||
KERN_PROC_ARGV = 1,
|
||||
KERN_PROC_NARGV = 2,
|
||||
KERN_PROC_ENV = 3,
|
||||
KERN_PROC_NENV = 4,
|
||||
}
|
||||
|
||||
// KERN_AUDIO subtypes
|
||||
enum
|
||||
{
|
||||
KERN_AUDIO_RECORD = 1,
|
||||
KERN_AUDIO_MAXID = 2,
|
||||
}
|
||||
|
||||
// KERN_WITNESS
|
||||
enum
|
||||
{
|
||||
KERN_WITNESS_WATCH = 1,
|
||||
KERN_WITNESS_LOCKTRACE = 2,
|
||||
KERN_WITNESS_MAXID = 3,
|
||||
}
|
||||
|
||||
// KERN_FILE
|
||||
enum
|
||||
{
|
||||
KERN_FILE_BYFILE = 1,
|
||||
KERN_FILE_BYPID = 2,
|
||||
KERN_FILE_BYUID = 3,
|
||||
KERN_FILESLOP = 10,
|
||||
|
||||
KERN_FILE_TEXT = -1,
|
||||
KERN_FILE_CDIR = -2,
|
||||
KERN_FILE_RDIR = -3,
|
||||
KERN_FILE_TRACE = -4,
|
||||
}
|
||||
|
||||
// KERN_INTRCNT
|
||||
enum
|
||||
{
|
||||
KERN_INTRCNT_NUM = 1,
|
||||
KERN_INTRCNT_CNT = 2,
|
||||
KERN_INTRCNT_NAME = 3,
|
||||
KERN_INTRCNT_VECTOR = 4,
|
||||
KERN_INTRCNT_MAXID = 5,
|
||||
}
|
||||
|
||||
// KERN_WATCHDOG
|
||||
enum
|
||||
{
|
||||
KERN_WATCHDOG_PERIOD = 1,
|
||||
KERN_WATCHDOG_AUTO = 2,
|
||||
KERN_WATCHDOG_MAXID = 3,
|
||||
}
|
||||
|
||||
// KERN_TIMECOUNTER
|
||||
enum
|
||||
{
|
||||
KERN_TIMECOUNTER_TICK = 1,
|
||||
KERN_TIMECOUNTER_TIMESTEPWARNINGS = 2,
|
||||
KERN_TIMECOUNTER_HARDWARE = 3,
|
||||
KERN_TIMECOUNTER_CHOICE = 4,
|
||||
KERN_TIMECOUNTER_MAXID = 5,
|
||||
}
|
||||
|
||||
// CTL_FS identifiers
|
||||
enum
|
||||
{
|
||||
FS_POSIX = 1,
|
||||
FS_MAXID = 2,
|
||||
}
|
||||
|
||||
// CTL_FS_POSIX identifiers
|
||||
enum
|
||||
{
|
||||
FS_POSIX_SETUID = 1,
|
||||
FS_POSIX_MAXID = 2,
|
||||
}
|
||||
|
||||
// CTL_HW identifiers
|
||||
enum
|
||||
{
|
||||
HW_MACHINE = 1,
|
||||
HW_MODEL = 2,
|
||||
HW_NCPU = 3,
|
||||
HW_BYTEORDER = 4,
|
||||
HW_PHYSMEM = 5,
|
||||
HW_USERMEM = 6,
|
||||
HW_PAGESIZE = 7,
|
||||
HW_DISKNAMES = 8,
|
||||
HW_DISKSTATS = 9,
|
||||
HW_DISKCOUNT = 10,
|
||||
HW_SENSORS = 11,
|
||||
HW_CPUSPEED = 12,
|
||||
HW_SETPERF = 13,
|
||||
HW_VENDOR = 14,
|
||||
HW_PRODUCT = 15,
|
||||
HW_VERSION = 16,
|
||||
HW_SERIALNO = 17,
|
||||
HW_UUID = 18,
|
||||
HW_PHYSMEM64 = 19,
|
||||
HW_USERMEM64 = 20,
|
||||
HW_NCPUFOUND = 21,
|
||||
HW_ALLOWPOWERDOWN = 22,
|
||||
HW_PERFPOLICY = 23,
|
||||
HW_SMT = 24,
|
||||
HW_NCPUONLINE = 25,
|
||||
HW_MAXID = 26,
|
||||
}
|
||||
|
||||
///
|
||||
int sysctl(const int* name, uint namelen, void* oldp, size_t* oldlenp,
|
||||
const void* newp, size_t newlen);
|
@ -34,50 +34,44 @@ version (NetBSD)
|
||||
version (DragonflyBSD)
|
||||
version = DarwinBSDLocale;
|
||||
|
||||
///
|
||||
struct lconv
|
||||
{
|
||||
char* currency_symbol;
|
||||
char* decimal_point;
|
||||
char frac_digits;
|
||||
char* grouping;
|
||||
char* int_curr_symbol;
|
||||
char int_frac_digits;
|
||||
char int_n_cs_precedes;
|
||||
char int_n_sep_by_space;
|
||||
char int_n_sign_posn;
|
||||
char int_p_cs_precedes;
|
||||
char int_p_sep_by_space;
|
||||
char int_p_sign_posn;
|
||||
char* mon_decimal_point;
|
||||
char* mon_grouping;
|
||||
char* mon_thousands_sep;
|
||||
char* negative_sign;
|
||||
char n_cs_precedes;
|
||||
char n_sep_by_space;
|
||||
char n_sign_posn;
|
||||
char* positive_sign;
|
||||
char p_cs_precedes;
|
||||
char p_sep_by_space;
|
||||
char p_sign_posn;
|
||||
char* thousands_sep;
|
||||
}
|
||||
|
||||
/// Duplicate existing locale
|
||||
locale_t duplocale(locale_t locale);
|
||||
/// Free an allocated locale
|
||||
void freelocale(locale_t locale);
|
||||
/// Natural language formatting for C
|
||||
lconv* localeconv();
|
||||
/// Create a new locale
|
||||
locale_t newlocale(int mask, const char* locale, locale_t base);
|
||||
/// Set the C library's notion of natural language formatting style
|
||||
char* setlocale(int category, const char* locale);
|
||||
/// Set the per-thread locale
|
||||
locale_t uselocale (locale_t locale);
|
||||
version (CRuntime_Glibc)
|
||||
version = GNULinuxLocale;
|
||||
version (CRuntime_Bionic)
|
||||
version = GNULinuxLocale;
|
||||
version (CRuntime_UClibc)
|
||||
version = GNULinuxLocale;
|
||||
|
||||
version (DarwinBSDLocale)
|
||||
{
|
||||
///
|
||||
struct lconv
|
||||
{
|
||||
char* decimal_point;
|
||||
char* thousands_sep;
|
||||
char* grouping;
|
||||
char* int_curr_symbol;
|
||||
char* currency_symbol;
|
||||
char* mon_decimal_point;
|
||||
char* mon_thousands_sep;
|
||||
char* mon_grouping;
|
||||
char* positive_sign;
|
||||
char* negative_sign;
|
||||
char int_frac_digits;
|
||||
char frac_digits;
|
||||
char p_cs_precedes;
|
||||
char p_sep_by_space;
|
||||
char n_cs_precedes;
|
||||
char n_sep_by_space;
|
||||
char p_sign_posn;
|
||||
char n_sign_posn;
|
||||
char int_p_cs_precedes;
|
||||
char int_n_cs_precedes;
|
||||
char int_p_sep_by_space;
|
||||
char int_n_sep_by_space;
|
||||
char int_p_sign_posn;
|
||||
char int_n_sign_posn;
|
||||
}
|
||||
|
||||
///
|
||||
enum
|
||||
{
|
||||
@ -116,10 +110,51 @@ version (DarwinBSDLocale)
|
||||
|
||||
///
|
||||
enum LC_GLOBAL_LOCALE = (cast(locale_t)-1);
|
||||
}
|
||||
|
||||
version (linux)
|
||||
/// Duplicate existing locale
|
||||
locale_t duplocale(locale_t locale);
|
||||
/// Free an allocated locale
|
||||
void freelocale(locale_t locale);
|
||||
/// Natural language formatting for C
|
||||
lconv* localeconv();
|
||||
/// Create a new locale
|
||||
locale_t newlocale(int mask, const char* locale, locale_t base);
|
||||
/// Set the C library's notion of natural language formatting style
|
||||
char* setlocale(int category, const char* locale);
|
||||
/// Set the per-thread locale
|
||||
locale_t uselocale (locale_t locale);
|
||||
}
|
||||
else version (GNULinuxLocale)
|
||||
{
|
||||
///
|
||||
struct lconv
|
||||
{
|
||||
char* decimal_point;
|
||||
char* thousands_sep;
|
||||
char* grouping;
|
||||
char* int_curr_symbol;
|
||||
char* currency_symbol;
|
||||
char* mon_decimal_point;
|
||||
char* mon_thousands_sep;
|
||||
char* mon_grouping;
|
||||
char* positive_sign;
|
||||
char* negative_sign;
|
||||
char int_frac_digits;
|
||||
char frac_digits;
|
||||
char p_cs_precedes;
|
||||
char p_sep_by_space;
|
||||
char n_cs_precedes;
|
||||
char n_sep_by_space;
|
||||
char p_sign_posn;
|
||||
char n_sign_posn;
|
||||
char int_p_cs_precedes;
|
||||
char int_p_sep_by_space;
|
||||
char int_n_cs_precedes;
|
||||
char int_n_sep_by_space;
|
||||
char int_p_sign_posn;
|
||||
char int_n_sign_posn;
|
||||
}
|
||||
|
||||
///
|
||||
enum
|
||||
{
|
||||
@ -172,4 +207,218 @@ version (linux)
|
||||
|
||||
///
|
||||
enum LC_GLOBAL_LOCALE = (cast(locale_t)-1);
|
||||
|
||||
/// Duplicate existing locale
|
||||
locale_t duplocale(locale_t locale);
|
||||
/// Free an allocated locale
|
||||
void freelocale(locale_t locale);
|
||||
/// Natural language formatting for C
|
||||
lconv* localeconv();
|
||||
/// Create a new locale
|
||||
locale_t newlocale(int mask, const char* locale, locale_t base);
|
||||
/// Set the C library's notion of natural language formatting style
|
||||
char* setlocale(int category, const char* locale);
|
||||
/// Set the per-thread locale
|
||||
locale_t uselocale (locale_t locale);
|
||||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
///
|
||||
struct lconv
|
||||
{
|
||||
char* decimal_point;
|
||||
char* thousands_sep;
|
||||
char* grouping;
|
||||
char* int_curr_symbol;
|
||||
char* currency_symbol;
|
||||
char* mon_decimal_point;
|
||||
char* mon_thousands_sep;
|
||||
char* mon_grouping;
|
||||
char* positive_sign;
|
||||
char* negative_sign;
|
||||
char int_frac_digits;
|
||||
char frac_digits;
|
||||
char p_cs_precedes;
|
||||
char p_sep_by_space;
|
||||
char n_cs_precedes;
|
||||
char n_sep_by_space;
|
||||
char p_sign_posn;
|
||||
char n_sign_posn;
|
||||
char int_p_cs_precedes;
|
||||
char int_p_sep_by_space;
|
||||
char int_n_cs_precedes;
|
||||
char int_n_sep_by_space;
|
||||
char int_p_sign_posn;
|
||||
char int_n_sign_posn;
|
||||
}
|
||||
|
||||
///
|
||||
enum
|
||||
{
|
||||
LC_CTYPE = 0,
|
||||
LC_NUMERIC = 1,
|
||||
LC_TIME = 2,
|
||||
LC_COLLATE = 3,
|
||||
LC_MONETARY = 4,
|
||||
LC_MESSAGES = 5,
|
||||
LC_ALL = 6,
|
||||
}
|
||||
|
||||
///
|
||||
enum
|
||||
{
|
||||
LC_CTYPE_MASK = (1 << LC_CTYPE),
|
||||
LC_NUMERIC_MASK = (1 << LC_NUMERIC),
|
||||
LC_TIME_MASK = (1 << LC_TIME),
|
||||
LC_COLLATE_MASK = (1 << LC_COLLATE),
|
||||
LC_MONETARY_MASK = (1 << LC_MONETARY),
|
||||
LC_MESSAGES_MASK = (1 << LC_MESSAGES),
|
||||
LC_ALL_MASK = 0x7fffffff,
|
||||
}
|
||||
|
||||
private struct __locale_struct;
|
||||
|
||||
///
|
||||
alias locale_t = __locale_struct*;
|
||||
|
||||
///
|
||||
enum LC_GLOBAL_LOCALE = (cast(locale_t)-1);
|
||||
|
||||
/// Duplicate existing locale
|
||||
locale_t duplocale(locale_t locale);
|
||||
/// Free an allocated locale
|
||||
void freelocale(locale_t locale);
|
||||
/// Natural language formatting for C
|
||||
lconv* localeconv();
|
||||
/// Create a new locale
|
||||
locale_t newlocale(int mask, const char* locale, locale_t base);
|
||||
/// Set the C library's notion of natural language formatting style
|
||||
char* setlocale(int category, const char* locale);
|
||||
/// Set the per-thread locale
|
||||
locale_t uselocale (locale_t locale);
|
||||
}
|
||||
else version (OpenBSD)
|
||||
{
|
||||
///
|
||||
struct lconv
|
||||
{
|
||||
char* decimal_point;
|
||||
char* thousands_sep;
|
||||
char* grouping;
|
||||
char* int_curr_symbol;
|
||||
char* currency_symbol;
|
||||
char* mon_decimal_point;
|
||||
char* mon_thousands_sep;
|
||||
char* mon_grouping;
|
||||
char* positive_sign;
|
||||
char* negative_sign;
|
||||
char int_frac_digits;
|
||||
char frac_digits;
|
||||
char p_cs_precedes;
|
||||
char p_sep_by_space;
|
||||
char n_cs_precedes;
|
||||
char n_sep_by_space;
|
||||
char p_sign_posn;
|
||||
char n_sign_posn;
|
||||
char int_p_cs_precedes;
|
||||
char int_n_cs_precedes;
|
||||
char int_p_sep_by_space;
|
||||
char int_n_sep_by_space;
|
||||
char int_p_sign_posn;
|
||||
char int_n_sign_posn;
|
||||
}
|
||||
|
||||
///
|
||||
enum
|
||||
{
|
||||
LC_ALL = 0,
|
||||
LC_COLLATE = 1,
|
||||
LC_CTYPE = 2,
|
||||
LC_MONETARY = 3,
|
||||
LC_NUMERIC = 4,
|
||||
LC_TIME = 5,
|
||||
LC_MESSAGES = 6,
|
||||
}
|
||||
private enum _LC_LAST = 7;
|
||||
|
||||
///
|
||||
enum
|
||||
{
|
||||
LC_COLLATE_MASK = (1 << LC_COLLATE),
|
||||
LC_CTYPE_MASK = (1 << LC_CTYPE),
|
||||
LC_MONETARY_MASK = (1 << LC_MONETARY),
|
||||
LC_NUMERIC_MASK = (1 << LC_NUMERIC),
|
||||
LC_TIME_MASK = (1 << LC_TIME),
|
||||
LC_MESSAGES_MASK = (1 << LC_MESSAGES),
|
||||
LC_ALL_MASK = ((1 << _LC_LAST) - 2),
|
||||
}
|
||||
|
||||
///
|
||||
alias locale_t = void*;
|
||||
|
||||
///
|
||||
enum LC_GLOBAL_LOCALE = (cast(locale_t)-1);
|
||||
|
||||
/// Duplicate existing locale
|
||||
locale_t duplocale(locale_t locale);
|
||||
/// Free an allocated locale
|
||||
void freelocale(locale_t locale);
|
||||
/// Natural language formatting for C
|
||||
lconv* localeconv();
|
||||
/// Create a new locale
|
||||
locale_t newlocale(int mask, const char* locale, locale_t base);
|
||||
/// Set the C library's notion of natural language formatting style
|
||||
char* setlocale(int category, const char* locale);
|
||||
/// Set the per-thread locale
|
||||
locale_t uselocale (locale_t locale);
|
||||
}
|
||||
else version (Solaris)
|
||||
{
|
||||
///
|
||||
struct lconv
|
||||
{
|
||||
char* decimal_point;
|
||||
char* thousands_sep;
|
||||
char* grouping;
|
||||
char* int_curr_symbol;
|
||||
char* currency_symbol;
|
||||
char* mon_decimal_point;
|
||||
char* mon_thousands_sep;
|
||||
char* mon_grouping;
|
||||
char* positive_sign;
|
||||
char* negative_sign;
|
||||
char int_frac_digits;
|
||||
char frac_digits;
|
||||
char p_cs_precedes;
|
||||
char p_sep_by_space;
|
||||
char n_cs_precedes;
|
||||
char n_sep_by_space;
|
||||
char p_sign_posn;
|
||||
char n_sign_posn;
|
||||
char int_p_cs_precedes;
|
||||
char int_n_cs_precedes;
|
||||
char int_p_sep_by_space;
|
||||
char int_n_sep_by_space;
|
||||
char int_p_sign_posn;
|
||||
char int_n_sign_posn;
|
||||
}
|
||||
|
||||
///
|
||||
enum
|
||||
{
|
||||
LC_CTYPE = 0,
|
||||
LC_NUMERIC = 1,
|
||||
LC_TIME = 2,
|
||||
LC_COLLATE = 3,
|
||||
LC_MONETARY = 4,
|
||||
LC_MESSAGES = 5,
|
||||
LC_ALL = 6,
|
||||
}
|
||||
|
||||
/// Natural language formatting for C
|
||||
lconv* localeconv();
|
||||
/// Set the C library's notion of natural language formatting style
|
||||
char* setlocale(int category, const char* locale);
|
||||
}
|
||||
else
|
||||
static assert(false, "unimplemented platform");
|
||||
|
@ -19,6 +19,7 @@
|
||||
* Authors: Andreas Bok Andersen, Mathias Lang
|
||||
* Standards: POSIX.1-2001.
|
||||
* See_Also: $(HTTP pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html, Standard)
|
||||
* Source: $(DRUNTIMESRC core/sys/posix/mqueue.d)
|
||||
*/
|
||||
module core.sys.posix.mqueue;
|
||||
|
||||
@ -58,16 +59,17 @@ struct mq_attr
|
||||
* Note:
|
||||
* Linux prototypes are:
|
||||
* mqd_t mq_open (const(char)* name, int oflag);
|
||||
* mqd_t mq_open(const(char)* name, int oflag, mode_t mode, mq_attr* attr);
|
||||
* mqd_t mq_open (const(char)* name, int oflag, mode_t mode, mq_attr* attr);
|
||||
*
|
||||
* Params:
|
||||
* name = Name of the message queue to open.
|
||||
* oflags = determines the type of access used.
|
||||
* oflag = determines the type of access used.
|
||||
* If `O_CREAT` is on `oflag`, the third argument is taken as a
|
||||
* `mode_t`, the mode of the created message queue.
|
||||
* If `O_CREAT` is on `oflag`, the fourth argument is taken as
|
||||
* a pointer to a `mq_attr' (message queue attributes).
|
||||
* If the fourth argument is `null`, default attributes are used.
|
||||
* ... = varargs matching the function prototypes
|
||||
*
|
||||
* Returns:
|
||||
* Message queue descriptor or (mqd_t) -1 on error.
|
||||
|
@ -291,7 +291,7 @@ else version (OpenBSD)
|
||||
}
|
||||
|
||||
enum PTHREAD_MUTEX_INITIALIZER = null;
|
||||
//enum PTHREAD_ONCE_INIT = { PTHREAD_NEEDS_INIT, PTHREAD_MUTEX_INITIALIZER };
|
||||
enum PTHREAD_ONCE_INIT = pthread_once_t.init;
|
||||
enum PTHREAD_COND_INITIALIZER = null;
|
||||
enum PTHREAD_RWLOCK_INITIALIZER = null;
|
||||
}
|
||||
@ -330,7 +330,6 @@ else version (DragonFlyBSD)
|
||||
enum PTHREAD_DONE_INIT = 1;
|
||||
|
||||
enum PTHREAD_MUTEX_INITIALIZER = null;
|
||||
//enum PTHREAD_ONCE_INIT = { PTHREAD_NEEDS_INIT, NULL };
|
||||
enum PTHREAD_ONCE_INIT = pthread_once_t.init;
|
||||
enum PTHREAD_COND_INITIALIZER = null;
|
||||
enum PTHREAD_RWLOCK_INITIALIZER = null;
|
||||
|
@ -159,107 +159,6 @@ else version (OpenBSD)
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{
|
||||
import core.sys.freebsd.sys.mount;
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
alias MFSNAMELEN = core.sys.freebsd.sys.mount.MFSNAMELEN;
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
alias MNAMELEN = core.sys.freebsd.sys.mount.MNAMELEN;
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
alias fsid_t = core.sys.freebsd.sys.mount.fsid_t;
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
alias statfs_t = core.sys.freebsd.sys.mount.statfs_t;
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Values moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
enum FFlag
|
||||
{
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_RDONLY = 1, /* read only filesystem */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_SYNCHRONOUS = 2, /* fs written synchronously */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_NOEXEC = 4, /* can't exec from filesystem */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_NOSUID = 8, /* don't honor setuid fs bits */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_NFS4ACLS = 16, /* enable NFS version 4 ACLs */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_UNION = 32, /* union with underlying fs */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_ASYNC = 64, /* fs written asynchronously */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_SUIDDIR = 128, /* special SUID dir handling */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_SOFTDEP = 256, /* using soft updates */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_NOSYMFOLLOW = 512, /* do not follow symlinks */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_GJOURNAL = 1024, /* GEOM journal support enabled */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_MULTILABEL = 2048, /* MAC support for objects */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_ACLS = 4096, /* ACL support enabled */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_NOATIME = 8192, /* dont update file access time */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_NOCLUSTERR = 16384, /* disable cluster read */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_NOCLUSTERW = 32768, /* disable cluster write */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_SUJ = 65536, /* using journaled soft updates */
|
||||
|
||||
// @@@DEPRECATED_2.091@@@
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
MNT_AUTOMOUNTED = 131072 /* mounted by automountd(8) */
|
||||
}
|
||||
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
alias statfs = core.sys.freebsd.sys.mount.statfs;
|
||||
|
||||
deprecated("Moved to core.sys.freebsd.sys.mount to correspond to C header file sys/mount.h")
|
||||
alias fstatfs = core.sys.freebsd.sys.mount.fstatfs;
|
||||
|
||||
struct statvfs_t
|
||||
{
|
||||
fsblkcnt_t f_bavail;
|
||||
|
@ -1103,7 +1103,14 @@ else version (DragonFlyBSD)
|
||||
alias void* pthread_key_t;
|
||||
alias void* pthread_mutex_t;
|
||||
alias void* pthread_mutexattr_t;
|
||||
alias void* pthread_once_t;
|
||||
|
||||
private struct pthread_once
|
||||
{
|
||||
int state;
|
||||
pthread_mutex_t mutex;
|
||||
}
|
||||
alias pthread_once pthread_once_t;
|
||||
|
||||
alias void* pthread_rwlock_t;
|
||||
alias void* pthread_rwlockattr_t;
|
||||
alias void* pthread_t;
|
||||
|
17
libphobos/libdruntime/core/sys/solaris/stdlib.d
Normal file
17
libphobos/libdruntime/core/sys/solaris/stdlib.d
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* D header file for Solaris stdlib.h.
|
||||
*
|
||||
* Copyright: Copyright © 2021, The D Language Foundation
|
||||
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
|
||||
* Authors: Iain Buclaw
|
||||
*/
|
||||
module core.sys.solaris.stdlib;
|
||||
public import core.sys.posix.stdlib;
|
||||
|
||||
version (Solaris):
|
||||
extern (C):
|
||||
nothrow:
|
||||
@nogc:
|
||||
|
||||
const(char)* getprogname();
|
||||
void setprogname(scope const char* name);
|
@ -1,4 +1,4 @@
|
||||
3dd5df6864b3849450d3657e219b90909663a513
|
||||
9d575282edeccecbc061e615bf2486fd07e8c084
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the dlang/phobos repository.
|
||||
|
@ -3148,8 +3148,6 @@ if (isInputRange!Source && isSomeChar!(ElementType!Source) && !is(Source == enum
|
||||
{
|
||||
version (CRuntime_Microsoft)
|
||||
ld1 = 0x1.FFFFFFFFFFFFFFFEp-16382L; // strtold currently mapped to strtod
|
||||
else version (CRuntime_Bionic)
|
||||
ld1 = 0x1.FFFFFFFFFFFFFFFEp-16382L; // strtold currently mapped to strtod
|
||||
else
|
||||
ld1 = strtold(s.ptr, null);
|
||||
}
|
||||
|
@ -7,6 +7,15 @@
|
||||
+/
|
||||
module std.datetime.systime;
|
||||
|
||||
version (OSX)
|
||||
version = Darwin;
|
||||
else version (iOS)
|
||||
version = Darwin;
|
||||
else version (TVOS)
|
||||
version = Darwin;
|
||||
else version (WatchOS)
|
||||
version = Darwin;
|
||||
|
||||
import core.time;
|
||||
import std.datetime.date;
|
||||
import std.datetime.timezone;
|
||||
@ -161,18 +170,19 @@ public:
|
||||
static import core.stdc.time;
|
||||
enum hnsecsToUnixEpoch = unixTimeToStdTime(0);
|
||||
|
||||
version (OSX)
|
||||
version (Darwin)
|
||||
{
|
||||
static if (clockType == ClockType.second)
|
||||
return unixTimeToStdTime(core.stdc.time.time(null));
|
||||
else
|
||||
{
|
||||
import core.sys.posix.sys.time : gettimeofday, timeval;
|
||||
timeval tv;
|
||||
if (gettimeofday(&tv, null) != 0)
|
||||
throw new TimeException("Call to gettimeofday() failed");
|
||||
timeval tv = void;
|
||||
// Posix gettimeofday called with a valid timeval address
|
||||
// and a null second parameter doesn't fail.
|
||||
gettimeofday(&tv, null);
|
||||
return convert!("seconds", "hnsecs")(tv.tv_sec) +
|
||||
convert!("usecs", "hnsecs")(tv.tv_usec) +
|
||||
tv.tv_usec * 10 +
|
||||
hnsecsToUnixEpoch;
|
||||
}
|
||||
}
|
||||
@ -188,9 +198,16 @@ public:
|
||||
else static if (clockType == ClockType.normal) alias clockArg = CLOCK_REALTIME;
|
||||
else static if (clockType == ClockType.precise) alias clockArg = CLOCK_REALTIME;
|
||||
else static assert(0, "Previous static if is wrong.");
|
||||
timespec ts;
|
||||
if (clock_gettime(clockArg, &ts) != 0)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
timespec ts = void;
|
||||
immutable error = clock_gettime(clockArg, &ts);
|
||||
// Posix clock_gettime called with a valid address and valid clock_id is only
|
||||
// permitted to fail if the number of seconds does not fit in time_t. If tv_sec
|
||||
// is long or larger overflow won't happen before 292 billion years A.D.
|
||||
static if (ts.tv_sec.max < long.max)
|
||||
{
|
||||
if (error)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
}
|
||||
return convert!("seconds", "hnsecs")(ts.tv_sec) +
|
||||
ts.tv_nsec / 100 +
|
||||
hnsecsToUnixEpoch;
|
||||
@ -205,9 +222,16 @@ public:
|
||||
else static if (clockType == ClockType.precise) alias clockArg = CLOCK_REALTIME_PRECISE;
|
||||
else static if (clockType == ClockType.second) alias clockArg = CLOCK_SECOND;
|
||||
else static assert(0, "Previous static if is wrong.");
|
||||
timespec ts;
|
||||
if (clock_gettime(clockArg, &ts) != 0)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
timespec ts = void;
|
||||
immutable error = clock_gettime(clockArg, &ts);
|
||||
// Posix clock_gettime called with a valid address and valid clock_id is only
|
||||
// permitted to fail if the number of seconds does not fit in time_t. If tv_sec
|
||||
// is long or larger overflow won't happen before 292 billion years A.D.
|
||||
static if (ts.tv_sec.max < long.max)
|
||||
{
|
||||
if (error)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
}
|
||||
return convert!("seconds", "hnsecs")(ts.tv_sec) +
|
||||
ts.tv_nsec / 100 +
|
||||
hnsecsToUnixEpoch;
|
||||
@ -218,12 +242,38 @@ public:
|
||||
return unixTimeToStdTime(core.stdc.time.time(null));
|
||||
else
|
||||
{
|
||||
import core.sys.posix.sys.time : gettimeofday, timeval;
|
||||
timeval tv;
|
||||
if (gettimeofday(&tv, null) != 0)
|
||||
throw new TimeException("Call to gettimeofday() failed");
|
||||
return convert!("seconds", "hnsecs")(tv.tv_sec) +
|
||||
convert!("usecs", "hnsecs")(tv.tv_usec) +
|
||||
import core.sys.netbsd.time : clock_gettime, CLOCK_REALTIME;
|
||||
timespec ts = void;
|
||||
immutable error = clock_gettime(CLOCK_REALTIME, &ts);
|
||||
// Posix clock_gettime called with a valid address and valid clock_id is only
|
||||
// permitted to fail if the number of seconds does not fit in time_t. If tv_sec
|
||||
// is long or larger overflow won't happen before 292 billion years A.D.
|
||||
static if (ts.tv_sec.max < long.max)
|
||||
{
|
||||
if (error)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
}
|
||||
return convert!("seconds", "hnsecs")(ts.tv_sec) +
|
||||
ts.tv_nsec / 100 +
|
||||
hnsecsToUnixEpoch;
|
||||
}
|
||||
}
|
||||
else version (OpenBSD)
|
||||
{
|
||||
static if (clockType == ClockType.second)
|
||||
return unixTimeToStdTime(core.stdc.time.time(null));
|
||||
else
|
||||
{
|
||||
import core.sys.openbsd.time : clock_gettime, CLOCK_REALTIME;
|
||||
static if (clockType == ClockType.coarse) alias clockArg = CLOCK_REALTIME;
|
||||
else static if (clockType == ClockType.normal) alias clockArg = CLOCK_REALTIME;
|
||||
else static if (clockType == ClockType.precise) alias clockArg = CLOCK_REALTIME;
|
||||
else static assert(0, "Previous static if is wrong.");
|
||||
timespec ts;
|
||||
if (clock_gettime(clockArg, &ts) != 0)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
return convert!("seconds", "hnsecs")(ts.tv_sec) +
|
||||
ts.tv_nsec / 100 +
|
||||
hnsecsToUnixEpoch;
|
||||
}
|
||||
}
|
||||
@ -236,9 +286,16 @@ public:
|
||||
else static if (clockType == ClockType.precise) alias clockArg = CLOCK_REALTIME_PRECISE;
|
||||
else static if (clockType == ClockType.second) alias clockArg = CLOCK_SECOND;
|
||||
else static assert(0, "Previous static if is wrong.");
|
||||
timespec ts;
|
||||
if (clock_gettime(clockArg, &ts) != 0)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
timespec ts = void;
|
||||
immutable error = clock_gettime(clockArg, &ts);
|
||||
// Posix clock_gettime called with a valid address and valid clock_id is only
|
||||
// permitted to fail if the number of seconds does not fit in time_t. If tv_sec
|
||||
// is long or larger overflow won't happen before 292 billion years A.D.
|
||||
static if (ts.tv_sec.max < long.max)
|
||||
{
|
||||
if (error)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
}
|
||||
return convert!("seconds", "hnsecs")(ts.tv_sec) +
|
||||
ts.tv_nsec / 100 +
|
||||
hnsecsToUnixEpoch;
|
||||
@ -254,9 +311,16 @@ public:
|
||||
else static if (clockType == ClockType.normal) alias clockArg = CLOCK_REALTIME;
|
||||
else static if (clockType == ClockType.precise) alias clockArg = CLOCK_REALTIME;
|
||||
else static assert(0, "Previous static if is wrong.");
|
||||
timespec ts;
|
||||
if (clock_gettime(clockArg, &ts) != 0)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
timespec ts = void;
|
||||
immutable error = clock_gettime(clockArg, &ts);
|
||||
// Posix clock_gettime called with a valid address and valid clock_id is only
|
||||
// permitted to fail if the number of seconds does not fit in time_t. If tv_sec
|
||||
// is long or larger overflow won't happen before 292 billion years A.D.
|
||||
static if (ts.tv_sec.max < long.max)
|
||||
{
|
||||
if (error)
|
||||
throw new TimeException("Call to clock_gettime() failed");
|
||||
}
|
||||
return convert!("seconds", "hnsecs")(ts.tv_sec) +
|
||||
ts.tv_nsec / 100 +
|
||||
hnsecsToUnixEpoch;
|
||||
|
@ -14,6 +14,15 @@ import std.exception : enforce;
|
||||
import std.range.primitives;
|
||||
import std.traits : isIntegral, isSomeString, Unqual;
|
||||
|
||||
version (OSX)
|
||||
version = Darwin;
|
||||
else version (iOS)
|
||||
version = Darwin;
|
||||
else version (TVOS)
|
||||
version = Darwin;
|
||||
else version (WatchOS)
|
||||
version = Darwin;
|
||||
|
||||
version (Windows)
|
||||
{
|
||||
import core.stdc.time : time_t;
|
||||
@ -296,7 +305,7 @@ public:
|
||||
else version (NetBSD) enum utcZone = "UTC";
|
||||
else version (DragonFlyBSD) enum utcZone = "UTC";
|
||||
else version (linux) enum utcZone = "UTC";
|
||||
else version (OSX) enum utcZone = "UTC";
|
||||
else version (Darwin) enum utcZone = "UTC";
|
||||
else version (Solaris) enum utcZone = "UTC";
|
||||
else static assert(0, "The location of the UTC timezone file on this Posix platform must be set.");
|
||||
|
||||
@ -671,7 +680,11 @@ public:
|
||||
|
||||
@safe unittest
|
||||
{
|
||||
assert(LocalTime().dstName !is null);
|
||||
// tzname, called from dstName, isn't set by default for Musl.
|
||||
version (CRuntime_Musl)
|
||||
assert(LocalTime().dstName is null);
|
||||
else
|
||||
assert(LocalTime().dstName !is null);
|
||||
|
||||
version (Posix)
|
||||
{
|
||||
|
@ -1478,10 +1478,13 @@ private bool isUnionAliasedImpl(T)(size_t offset)
|
||||
static assert( isUnionAliased!(S.A5, 1)); //a5.b1;
|
||||
}
|
||||
|
||||
version (CRuntime_Glibc) version = GNU_STRERROR;
|
||||
version (CRuntime_UClibc) version = GNU_STRERROR;
|
||||
|
||||
package string errnoString(int errno) nothrow @trusted
|
||||
{
|
||||
import core.stdc.string : strlen;
|
||||
version (CRuntime_Glibc)
|
||||
version (GNU_STRERROR)
|
||||
{
|
||||
import core.stdc.string : strerror_r;
|
||||
char[1024] buf = void;
|
||||
|
@ -5,6 +5,15 @@ import std.experimental.allocator.building_blocks.null_allocator;
|
||||
import std.experimental.allocator.common;
|
||||
import std.typecons : Flag, Yes, No;
|
||||
|
||||
version (OSX)
|
||||
version = Darwin;
|
||||
else version (iOS)
|
||||
version = Darwin;
|
||||
else version (TVOS)
|
||||
version = Darwin;
|
||||
else version (WatchOS)
|
||||
version = Darwin;
|
||||
|
||||
/**
|
||||
A $(D Region) allocator allocates memory straight from one contiguous chunk.
|
||||
There is no deallocation, and once the region is full, allocation requests
|
||||
@ -580,14 +589,26 @@ struct InSituRegion(size_t size, size_t minAlign = platformAlignment)
|
||||
assert(a.length == 2001);
|
||||
}
|
||||
|
||||
version(CRuntime_Musl)
|
||||
version (CRuntime_Musl)
|
||||
{
|
||||
// sbrk and brk are disabled in Musl:
|
||||
// https://git.musl-libc.org/cgit/musl/commit/?id=7a995fe706e519a4f55399776ef0df9596101f93
|
||||
// https://git.musl-libc.org/cgit/musl/commit/?id=863d628d93ea341b6a32661a1654320ce69f6a07
|
||||
} else:
|
||||
private extern(C) void* sbrk(long);
|
||||
private extern(C) int brk(shared void*);
|
||||
}
|
||||
version (DragonFlyBSD)
|
||||
{
|
||||
// sbrk is deprecated in favor of mmap (we could implement a mmap + MAP_NORESERVE + PROT_NONE version)
|
||||
// brk has been removed
|
||||
// https://www.dragonflydigest.com/2019/02/22/22586.html
|
||||
// http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/dc676eaefa61b0f47bbea1c53eab86fd5ccd78c6
|
||||
// http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4b5665564ef37dc939a3a9ffbafaab9894c18885
|
||||
// http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8618d94a0e2ff8303ad93c123a3fa598c26a116e
|
||||
}
|
||||
else
|
||||
{
|
||||
private extern(C) void* sbrk(long) nothrow @nogc;
|
||||
private extern(C) int brk(shared void*) nothrow @nogc;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -599,11 +620,14 @@ that uncontrolled calls to $(D brk) and $(D sbrk) may affect the workings of $(D
|
||||
SbrkRegion) adversely.
|
||||
|
||||
*/
|
||||
version (CRuntime_Musl) {} else
|
||||
version (DragonFlyBSD) {} else
|
||||
version (Posix) struct SbrkRegion(uint minAlign = platformAlignment)
|
||||
{
|
||||
import core.sys.posix.pthread : pthread_mutex_init, pthread_mutex_destroy,
|
||||
pthread_mutex_t, pthread_mutex_lock, pthread_mutex_unlock,
|
||||
PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
PTHREAD_MUTEX_INITIALIZER;
|
||||
private static shared pthread_mutex_t sbrkMutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
import std.typecons : Ternary;
|
||||
|
||||
@ -763,7 +787,9 @@ version (Posix) struct SbrkRegion(uint minAlign = platformAlignment)
|
||||
}
|
||||
}
|
||||
|
||||
version (Posix) @system unittest
|
||||
version (CRuntime_Musl) {} else
|
||||
version (DragonFlyBSD) {} else
|
||||
version (Posix) @system nothrow @nogc unittest
|
||||
{
|
||||
// Let's test the assumption that sbrk(n) returns the old address
|
||||
const p1 = sbrk(0);
|
||||
@ -775,7 +801,9 @@ version (Posix) @system unittest
|
||||
sbrk(-4096);
|
||||
}
|
||||
|
||||
version (Posix) @system unittest
|
||||
version (CRuntime_Musl) {} else
|
||||
version (DragonFlyBSD) {} else
|
||||
version (Posix) @system nothrow @nogc unittest
|
||||
{
|
||||
import std.typecons : Ternary;
|
||||
alias alloc = SbrkRegion!(8).instance;
|
||||
@ -786,7 +814,7 @@ version (Posix) @system unittest
|
||||
assert(alloc.owns(a) == Ternary.yes);
|
||||
assert(alloc.owns(b) == Ternary.yes);
|
||||
// reducing the brk does not work on OSX
|
||||
version (OSX) {} else
|
||||
version (Darwin) {} else
|
||||
{
|
||||
assert(alloc.deallocate(b));
|
||||
assert(alloc.deallocateAll);
|
||||
|
@ -46,6 +46,21 @@ struct MmapAllocator
|
||||
if (b.ptr) munmap(b.ptr, b.length) == 0 || assert(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Anonymous mmap might be zero-filled on all Posix systems but
|
||||
// not all commit to this in the documentation.
|
||||
version (linux)
|
||||
// http://man7.org/linux/man-pages/man2/mmap.2.html
|
||||
package alias allocateZeroed = allocate;
|
||||
else version (NetBSD)
|
||||
// http://netbsd.gw.com/cgi-bin/man-cgi?mmap+2+NetBSD-current
|
||||
package alias allocateZeroed = allocate;
|
||||
else version (Solaris)
|
||||
// https://docs.oracle.com/cd/E88353_01/html/E37841/mmap-2.html
|
||||
package alias allocateZeroed = allocate;
|
||||
else version (AIX)
|
||||
// https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.basetrf1/mmap.htm
|
||||
package alias allocateZeroed = allocate;
|
||||
}
|
||||
else version (Windows)
|
||||
{
|
||||
@ -67,6 +82,8 @@ struct MmapAllocator
|
||||
{
|
||||
return b.ptr is null || VirtualFree(b.ptr, 0, MEM_RELEASE) != 0;
|
||||
}
|
||||
|
||||
package alias allocateZeroed = allocate;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1490,6 +1490,15 @@ if (isInputRange!R && !isInfinite!R && isSomeChar!(ElementEncodingType!R))
|
||||
// vfs.timestamp_precision sysctl to a value greater than zero.
|
||||
// - OS X, where the native filesystem (HFS+) stores filesystem
|
||||
// timestamps with 1-second precision.
|
||||
//
|
||||
// Note: on linux systems, although in theory a change to a file date
|
||||
// can be tracked with precision of 4 msecs, this test waits 20 msecs
|
||||
// to prevent possible problems relative to the CI services the dlang uses,
|
||||
// as they may have the HZ setting that controls the software clock set to 100
|
||||
// (instead of the more common 250).
|
||||
// see https://man7.org/linux/man-pages/man7/time.7.html
|
||||
// https://stackoverflow.com/a/14393315,
|
||||
// https://issues.dlang.org/show_bug.cgi?id=21148
|
||||
version (FreeBSD) {} else
|
||||
version (DragonFlyBSD) {} else
|
||||
version (OSX) {} else
|
||||
@ -1508,7 +1517,7 @@ version (OSX) {} else
|
||||
remove(deleteme);
|
||||
assert(time != lastTime);
|
||||
lastTime = time;
|
||||
Thread.sleep(10.msecs);
|
||||
Thread.sleep(20.msecs);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2757,15 +2766,27 @@ else version (NetBSD)
|
||||
buffer.length *= 2;
|
||||
}
|
||||
}
|
||||
else version (DragonFlyBSD)
|
||||
{
|
||||
import core.sys.dragonflybsd.sys.sysctl : sysctl, CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME;
|
||||
import std.exception : errnoEnforce, assumeUnique;
|
||||
|
||||
int[4] mib = [CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1];
|
||||
size_t len;
|
||||
|
||||
auto result = sysctl(mib.ptr, mib.length, null, &len, null, 0); // get the length of the path
|
||||
errnoEnforce(result == 0);
|
||||
|
||||
auto buffer = new char[len - 1];
|
||||
result = sysctl(mib.ptr, mib.length, buffer.ptr, &len, null, 0);
|
||||
errnoEnforce(result == 0);
|
||||
|
||||
return buffer.assumeUnique;
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{
|
||||
import core.sys.freebsd.sys.sysctl : sysctl, CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME;
|
||||
import std.exception : errnoEnforce, assumeUnique;
|
||||
enum
|
||||
{
|
||||
CTL_KERN = 1,
|
||||
KERN_PROC = 14,
|
||||
KERN_PROC_PATHNAME = 12
|
||||
}
|
||||
|
||||
int[4] mib = [CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1];
|
||||
size_t len;
|
||||
@ -2781,11 +2802,58 @@ else version (NetBSD)
|
||||
}
|
||||
else version (NetBSD)
|
||||
{
|
||||
return readLink("/proc/self/exe");
|
||||
import core.sys.netbsd.sys.sysctl : sysctl, CTL_KERN, KERN_PROC_ARGS, KERN_PROC_PATHNAME;
|
||||
import std.exception : errnoEnforce, assumeUnique;
|
||||
|
||||
int[4] mib = [CTL_KERN, KERN_PROC_ARGS, -1, KERN_PROC_PATHNAME];
|
||||
size_t len;
|
||||
|
||||
auto result = sysctl(mib.ptr, mib.length, null, &len, null, 0); // get the length of the path
|
||||
errnoEnforce(result == 0);
|
||||
|
||||
auto buffer = new char[len - 1];
|
||||
result = sysctl(mib.ptr, mib.length, buffer.ptr, &len, null, 0);
|
||||
errnoEnforce(result == 0);
|
||||
|
||||
return buffer.assumeUnique;
|
||||
}
|
||||
else version (DragonFlyBSD)
|
||||
else version (OpenBSD)
|
||||
{
|
||||
return readLink("/proc/curproc/file");
|
||||
import core.sys.openbsd.sys.sysctl : sysctl, CTL_KERN, KERN_PROC_ARGS, KERN_PROC_ARGV;
|
||||
import core.sys.posix.unistd : getpid;
|
||||
import std.conv : to;
|
||||
import std.exception : enforce, errnoEnforce;
|
||||
import std.process : searchPathFor;
|
||||
|
||||
int[4] mib = [CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_ARGV];
|
||||
size_t len;
|
||||
|
||||
auto result = sysctl(mib.ptr, mib.length, null, &len, null, 0);
|
||||
errnoEnforce(result == 0);
|
||||
|
||||
auto argv = new char*[len - 1];
|
||||
result = sysctl(mib.ptr, mib.length, argv.ptr, &len, null, 0);
|
||||
errnoEnforce(result == 0);
|
||||
|
||||
auto argv0 = argv[0];
|
||||
if (*argv0 == '/' || *argv0 == '.')
|
||||
{
|
||||
import core.sys.posix.stdlib : realpath;
|
||||
auto absolutePath = realpath(argv0, null);
|
||||
scope (exit)
|
||||
{
|
||||
if (absolutePath)
|
||||
free(absolutePath);
|
||||
}
|
||||
errnoEnforce(absolutePath);
|
||||
return to!(string)(absolutePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
auto absolutePath = searchPathFor(to!string(argv0));
|
||||
errnoEnforce(absolutePath);
|
||||
return absolutePath;
|
||||
}
|
||||
}
|
||||
else version (Solaris)
|
||||
{
|
||||
|
@ -167,19 +167,14 @@ version (SystemZ) version = IBMZ_Any;
|
||||
version (RISCV32) version = RISCV_Any;
|
||||
version (RISCV64) version = RISCV_Any;
|
||||
|
||||
version (D_InlineAsm_X86)
|
||||
{
|
||||
version = InlineAsm_X86_Any;
|
||||
}
|
||||
else version (D_InlineAsm_X86_64)
|
||||
{
|
||||
version = InlineAsm_X86_Any;
|
||||
}
|
||||
version (D_InlineAsm_X86) version = InlineAsm_X86_Any;
|
||||
version (D_InlineAsm_X86_64) version = InlineAsm_X86_Any;
|
||||
|
||||
version (CRuntime_Microsoft)
|
||||
version (InlineAsm_X86_Any) version = InlineAsm_X87;
|
||||
version (InlineAsm_X87)
|
||||
{
|
||||
version (InlineAsm_X86_Any)
|
||||
version = MSVC_InlineAsm;
|
||||
static assert(real.mant_dig == 64);
|
||||
version (CRuntime_Microsoft) version = InlineAsm_X87_MSVC;
|
||||
}
|
||||
|
||||
version (X86_64) version = StaticallyHaveSSE;
|
||||
@ -3610,7 +3605,7 @@ real log1p(real x) @safe pure nothrow @nogc
|
||||
real log2(real x) @safe pure nothrow @nogc
|
||||
{
|
||||
version (INLINE_YL2X)
|
||||
return core.math.yl2x(x, 1);
|
||||
return core.math.yl2x(x, 1.0L);
|
||||
else
|
||||
{
|
||||
// Special cases are the same as for log.
|
||||
@ -4586,19 +4581,21 @@ real round(real x) @trusted nothrow @nogc
|
||||
* If the fractional part of x is exactly 0.5, the return value is rounded
|
||||
* away from zero.
|
||||
*
|
||||
* $(BLUE This function is Posix-Only.)
|
||||
* $(BLUE This function is not implemented for Digital Mars C runtime.)
|
||||
*/
|
||||
long lround(real x) @trusted nothrow @nogc
|
||||
{
|
||||
version (Posix)
|
||||
return core.stdc.math.llroundl(x);
|
||||
else
|
||||
version (CRuntime_DigitalMars)
|
||||
assert(0, "lround not implemented");
|
||||
else
|
||||
return core.stdc.math.llroundl(x);
|
||||
}
|
||||
|
||||
version (Posix)
|
||||
///
|
||||
@safe nothrow @nogc unittest
|
||||
{
|
||||
@safe nothrow @nogc unittest
|
||||
version (CRuntime_DigitalMars) {}
|
||||
else
|
||||
{
|
||||
assert(lround(0.49) == 0);
|
||||
assert(lround(0.5) == 1);
|
||||
|
@ -40,6 +40,15 @@ License: $(HTTP boost.org/LICENSE_1_0.txt, Boost License 1.0)
|
||||
*/
|
||||
module std.parallelism;
|
||||
|
||||
version (OSX)
|
||||
version = Darwin;
|
||||
else version (iOS)
|
||||
version = Darwin;
|
||||
else version (TVOS)
|
||||
version = Darwin;
|
||||
else version (WatchOS)
|
||||
version = Darwin;
|
||||
|
||||
///
|
||||
@system unittest
|
||||
{
|
||||
@ -86,107 +95,82 @@ import std.meta;
|
||||
import std.range.primitives;
|
||||
import std.traits;
|
||||
|
||||
version (OSX)
|
||||
{
|
||||
version = useSysctlbyname;
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{
|
||||
version = useSysctlbyname;
|
||||
}
|
||||
else version (DragonFlyBSD)
|
||||
{
|
||||
version = useSysctlbyname;
|
||||
}
|
||||
else version (NetBSD)
|
||||
{
|
||||
version = useSysctlbyname;
|
||||
}
|
||||
/*
|
||||
(For now public undocumented with reserved name.)
|
||||
|
||||
A lazily initialized global constant. The underlying value is a shared global
|
||||
statically initialized to `outOfBandValue` which must not be a legit value of
|
||||
the constant. Upon the first call the situation is detected and the global is
|
||||
initialized by calling `initializer`. The initializer is assumed to be pure
|
||||
(even if not marked as such), i.e. return the same value upon repeated calls.
|
||||
For that reason, no special precautions are taken so `initializer` may be called
|
||||
more than one time leading to benign races on the cached value.
|
||||
|
||||
version (Windows)
|
||||
In the quiescent state the cost of the function is an atomic load from a global.
|
||||
|
||||
Params:
|
||||
T = The type of the pseudo-constant (may be qualified)
|
||||
outOfBandValue = A value that cannot be valid, it is used for initialization
|
||||
initializer = The function performing initialization; must be `nothrow`
|
||||
|
||||
Returns:
|
||||
The lazily initialized value
|
||||
*/
|
||||
@property pure
|
||||
T __lazilyInitializedConstant(T, alias outOfBandValue, alias initializer)()
|
||||
if (is(Unqual!T : T)
|
||||
&& is(typeof(initializer()) : T)
|
||||
&& is(typeof(outOfBandValue) : T))
|
||||
{
|
||||
// BUGS: Only works on Windows 2000 and above.
|
||||
shared static this()
|
||||
static T impl() nothrow
|
||||
{
|
||||
import core.sys.windows.windows : SYSTEM_INFO, GetSystemInfo;
|
||||
import std.algorithm.comparison : max;
|
||||
|
||||
SYSTEM_INFO si;
|
||||
GetSystemInfo(&si);
|
||||
totalCPUs = max(1, cast(uint) si.dwNumberOfProcessors);
|
||||
// Thread-local cache
|
||||
static Unqual!T tls = outOfBandValue;
|
||||
auto local = tls;
|
||||
// Shortest path, no atomic operations
|
||||
if (local != outOfBandValue) return local;
|
||||
// Process-level cache
|
||||
static shared Unqual!T result = outOfBandValue;
|
||||
// Initialize both process-level cache and tls
|
||||
local = atomicLoad(result);
|
||||
if (local == outOfBandValue)
|
||||
{
|
||||
local = initializer();
|
||||
atomicStore(result, local);
|
||||
}
|
||||
tls = local;
|
||||
return local;
|
||||
}
|
||||
|
||||
}
|
||||
else version (linux)
|
||||
{
|
||||
shared static this()
|
||||
{
|
||||
import core.sys.posix.unistd : _SC_NPROCESSORS_ONLN, sysconf;
|
||||
totalCPUs = cast(uint) sysconf(_SC_NPROCESSORS_ONLN);
|
||||
}
|
||||
}
|
||||
else version (Solaris)
|
||||
{
|
||||
shared static this()
|
||||
{
|
||||
import core.sys.posix.unistd : _SC_NPROCESSORS_ONLN, sysconf;
|
||||
totalCPUs = cast(uint) sysconf(_SC_NPROCESSORS_ONLN);
|
||||
}
|
||||
}
|
||||
else version (useSysctlbyname)
|
||||
{
|
||||
extern(C) int sysctlbyname(
|
||||
const char *, void *, size_t *, void *, size_t
|
||||
);
|
||||
|
||||
shared static this()
|
||||
{
|
||||
version (OSX)
|
||||
{
|
||||
auto nameStr = "machdep.cpu.core_count\0".ptr;
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{
|
||||
auto nameStr = "hw.ncpu\0".ptr;
|
||||
}
|
||||
else version (DragonFlyBSD)
|
||||
{
|
||||
auto nameStr = "hw.ncpu\0".ptr;
|
||||
}
|
||||
else version (NetBSD)
|
||||
{
|
||||
auto nameStr = "hw.ncpu\0".ptr;
|
||||
}
|
||||
|
||||
uint ans;
|
||||
size_t len = uint.sizeof;
|
||||
sysctlbyname(nameStr, &ans, &len, null, 0);
|
||||
totalCPUs = ans;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
static assert(0, "Don't know how to get N CPUs on this OS.");
|
||||
import std.traits : SetFunctionAttributes;
|
||||
alias Fun = SetFunctionAttributes!(typeof(&impl), "D",
|
||||
functionAttributes!(typeof(&impl)) | FunctionAttribute.pure_);
|
||||
auto purified = (() @trusted => cast(Fun) &impl)();
|
||||
return purified();
|
||||
}
|
||||
|
||||
immutable size_t cacheLineSize;
|
||||
shared static this()
|
||||
// Returns the size of a cache line.
|
||||
alias cacheLineSize =
|
||||
__lazilyInitializedConstant!(immutable(size_t), size_t.max, cacheLineSizeImpl);
|
||||
|
||||
private size_t cacheLineSizeImpl() @nogc nothrow @trusted
|
||||
{
|
||||
size_t result = 0;
|
||||
import core.cpuid : datacache;
|
||||
size_t lineSize = 0;
|
||||
foreach (cachelevel; datacache)
|
||||
foreach (ref const cachelevel; datacache)
|
||||
{
|
||||
if (cachelevel.lineSize > lineSize && cachelevel.lineSize < uint.max)
|
||||
if (cachelevel.lineSize > result && cachelevel.lineSize < uint.max)
|
||||
{
|
||||
lineSize = cachelevel.lineSize;
|
||||
result = cachelevel.lineSize;
|
||||
}
|
||||
}
|
||||
|
||||
cacheLineSize = lineSize;
|
||||
return result;
|
||||
}
|
||||
|
||||
@nogc @safe nothrow unittest
|
||||
{
|
||||
assert(cacheLineSize == cacheLineSizeImpl);
|
||||
}
|
||||
|
||||
/* Atomics code. These forward to core.atomic, but are written like this
|
||||
for two reasons:
|
||||
@ -957,7 +941,81 @@ if (is(typeof(fun(args))) && isSafeTask!F)
|
||||
The total number of CPU cores available on the current machine, as reported by
|
||||
the operating system.
|
||||
*/
|
||||
immutable uint totalCPUs;
|
||||
alias totalCPUs =
|
||||
__lazilyInitializedConstant!(immutable(uint), uint.max, totalCPUsImpl);
|
||||
|
||||
uint totalCPUsImpl() @nogc nothrow @trusted
|
||||
{
|
||||
version (Windows)
|
||||
{
|
||||
// BUGS: Only works on Windows 2000 and above.
|
||||
import core.sys.windows.winbase : SYSTEM_INFO, GetSystemInfo;
|
||||
import std.algorithm.comparison : max;
|
||||
SYSTEM_INFO si;
|
||||
GetSystemInfo(&si);
|
||||
return max(1, cast(uint) si.dwNumberOfProcessors);
|
||||
}
|
||||
else version (linux)
|
||||
{
|
||||
import core.sys.linux.sched : CPU_COUNT, cpu_set_t, sched_getaffinity;
|
||||
import core.sys.posix.unistd : _SC_NPROCESSORS_ONLN, sysconf;
|
||||
|
||||
cpu_set_t set = void;
|
||||
if (sched_getaffinity(0, cpu_set_t.sizeof, &set) == 0)
|
||||
{
|
||||
int count = CPU_COUNT(&set);
|
||||
if (count > 0)
|
||||
return cast(uint) count;
|
||||
}
|
||||
return cast(uint) sysconf(_SC_NPROCESSORS_ONLN);
|
||||
}
|
||||
else version (Darwin)
|
||||
{
|
||||
import core.sys.darwin.sys.sysctl : sysctlbyname;
|
||||
uint result;
|
||||
size_t len = result.sizeof;
|
||||
sysctlbyname("hw.physicalcpu", &result, &len, null, 0);
|
||||
return result;
|
||||
}
|
||||
else version (DragonFlyBSD)
|
||||
{
|
||||
import core.sys.dragonflybsd.sys.sysctl : sysctlbyname;
|
||||
uint result;
|
||||
size_t len = result.sizeof;
|
||||
sysctlbyname("hw.ncpu", &result, &len, null, 0);
|
||||
return result;
|
||||
}
|
||||
else version (FreeBSD)
|
||||
{
|
||||
import core.sys.freebsd.sys.sysctl : sysctlbyname;
|
||||
uint result;
|
||||
size_t len = result.sizeof;
|
||||
sysctlbyname("hw.ncpu", &result, &len, null, 0);
|
||||
return result;
|
||||
}
|
||||
else version (NetBSD)
|
||||
{
|
||||
import core.sys.netbsd.sys.sysctl : sysctlbyname;
|
||||
uint result;
|
||||
size_t len = result.sizeof;
|
||||
sysctlbyname("hw.ncpu", &result, &len, null, 0);
|
||||
return result;
|
||||
}
|
||||
else version (Solaris)
|
||||
{
|
||||
import core.sys.posix.unistd : _SC_NPROCESSORS_ONLN, sysconf;
|
||||
return cast(uint) sysconf(_SC_NPROCESSORS_ONLN);
|
||||
}
|
||||
else version (OpenBSD)
|
||||
{
|
||||
import core.sys.posix.unistd : _SC_NPROCESSORS_ONLN, sysconf;
|
||||
return cast(uint) sysconf(_SC_NPROCESSORS_ONLN);
|
||||
}
|
||||
else
|
||||
{
|
||||
static assert(0, "Don't know how to get N CPUs on this OS.");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
This class serves two purposes:
|
||||
@ -3302,11 +3360,7 @@ terminating the main thread.
|
||||
}());
|
||||
}
|
||||
|
||||
private shared uint _defaultPoolThreads;
|
||||
shared static this()
|
||||
{
|
||||
atomicStore(_defaultPoolThreads, totalCPUs - 1);
|
||||
}
|
||||
private shared uint _defaultPoolThreads = uint.max;
|
||||
|
||||
/**
|
||||
These properties get and set the number of worker threads in the $(D TaskPool)
|
||||
@ -3316,7 +3370,8 @@ number of worker threads in the instance returned by $(D taskPool).
|
||||
*/
|
||||
@property uint defaultPoolThreads() @trusted
|
||||
{
|
||||
return atomicLoad(_defaultPoolThreads);
|
||||
const local = atomicLoad(_defaultPoolThreads);
|
||||
return local < uint.max ? local : totalCPUs - 1;
|
||||
}
|
||||
|
||||
/// Ditto
|
||||
|
@ -146,6 +146,8 @@ class SocketException: Exception
|
||||
mixin basicExceptionCtors;
|
||||
}
|
||||
|
||||
version (CRuntime_Glibc) version = GNU_STRERROR;
|
||||
version (CRuntime_UClibc) version = GNU_STRERROR;
|
||||
|
||||
/*
|
||||
* Needs to be public so that SocketOSException can be thrown outside of
|
||||
@ -159,7 +161,7 @@ string formatSocketError(int err) @trusted
|
||||
{
|
||||
char[80] buf;
|
||||
const(char)* cs;
|
||||
version (CRuntime_Glibc)
|
||||
version (GNU_STRERROR)
|
||||
{
|
||||
cs = strerror_r(err, buf.ptr, buf.length);
|
||||
}
|
||||
|
@ -79,6 +79,10 @@ else version (NetBSD)
|
||||
{
|
||||
version = GENERIC_IO;
|
||||
}
|
||||
else version (OpenBSD)
|
||||
{
|
||||
version = GENERIC_IO;
|
||||
}
|
||||
else version (DragonFlyBSD)
|
||||
{
|
||||
version = GENERIC_IO;
|
||||
@ -93,12 +97,11 @@ version (Windows)
|
||||
{
|
||||
private alias FSChar = wchar;
|
||||
}
|
||||
else version (Posix)
|
||||
else
|
||||
{
|
||||
private alias FSChar = char;
|
||||
}
|
||||
else
|
||||
static assert(0);
|
||||
|
||||
|
||||
version (Windows)
|
||||
{
|
||||
|
@ -30,6 +30,9 @@ immutable
|
||||
win64, /// Microsoft 64 bit Windows systems
|
||||
linux, /// All Linux Systems, except for Android
|
||||
osx, /// Mac OS X
|
||||
iOS, /// iOS
|
||||
tvOS, /// tvOS
|
||||
watchOS, /// watchOS
|
||||
freeBSD, /// FreeBSD
|
||||
netBSD, /// NetBSD
|
||||
dragonFlyBSD, /// DragonFlyBSD
|
||||
@ -44,6 +47,9 @@ immutable
|
||||
else version (Android) OS os = OS.android;
|
||||
else version (linux) OS os = OS.linux;
|
||||
else version (OSX) OS os = OS.osx;
|
||||
else version (iOS) OS os = OS.iOS;
|
||||
else version (tvOS) OS os = OS.tvOS;
|
||||
else version (watchOS) OS os = OS.watchOS;
|
||||
else version (FreeBSD) OS os = OS.freeBSD;
|
||||
else version (NetBSD) OS os = OS.netBSD;
|
||||
else version (DragonFlyBSD) OS os = OS.dragonFlyBSD;
|
||||
|
Loading…
x
Reference in New Issue
Block a user