aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpk33 <pk33@email.com>2024-11-03 03:46:13 +0100
committerpk33 <pk33@email.com>2024-11-03 03:46:13 +0100
commit69058973a9f5073184b9f0b98dbcbbd63da40514 (patch)
tree67d9dcda3c8a67f1b22a0752a25839a2266327e7
parent0f23d50c8291b23799e55c8653c15f16c0d752d0 (diff)
downloadengine33-69058973a9f5073184b9f0b98dbcbbd63da40514.tar.gz
ignore
-rw-r--r--.gitignore3
-rw-r--r--libdrm/.xf86drmMode.h.swpbin16384 -> 0 bytes
-rw-r--r--libdrm/libdrm/amdgpu.h1876
-rw-r--r--libdrm/libdrm/amdgpu_drm.h1161
-rw-r--r--libdrm/libdrm/drm.h1183
-rw-r--r--libdrm/libdrm/drm_fourcc.h1459
-rw-r--r--libdrm/libdrm/drm_mode.h1129
-rw-r--r--libdrm/libdrm/drm_sarea.h92
-rw-r--r--libdrm/libdrm/i915_drm.h3724
-rw-r--r--libdrm/libdrm/intel_aub.h153
-rw-r--r--libdrm/libdrm/intel_bufmgr.h341
-rw-r--r--libdrm/libdrm/intel_debug.h44
-rw-r--r--libdrm/libdrm/mach64_drm.h256
-rw-r--r--libdrm/libdrm/mga_drm.h427
-rw-r--r--libdrm/libdrm/msm_drm.h308
-rw-r--r--libdrm/libdrm/nouveau/nouveau.h280
-rw-r--r--libdrm/libdrm/nouveau/nvif/cl0080.h45
-rw-r--r--libdrm/libdrm/nouveau/nvif/cl9097.h44
-rw-r--r--libdrm/libdrm/nouveau/nvif/class.h141
-rw-r--r--libdrm/libdrm/nouveau/nvif/if0002.h38
-rw-r--r--libdrm/libdrm/nouveau/nvif/if0003.h33
-rw-r--r--libdrm/libdrm/nouveau/nvif/ioctl.h132
-rw-r--r--libdrm/libdrm/nouveau/nvif/unpack.h28
-rw-r--r--libdrm/libdrm/nouveau_drm.h256
-rw-r--r--libdrm/libdrm/qxl_drm.h158
-rw-r--r--libdrm/libdrm/r128_drm.h336
-rw-r--r--libdrm/libdrm/r600_pci_ids.h487
-rw-r--r--libdrm/libdrm/radeon_bo.h73
-rw-r--r--libdrm/libdrm/radeon_bo_gem.h48
-rw-r--r--libdrm/libdrm/radeon_bo_int.h45
-rw-r--r--libdrm/libdrm/radeon_cs.h141
-rw-r--r--libdrm/libdrm/radeon_cs_gem.h41
-rw-r--r--libdrm/libdrm/radeon_cs_int.h67
-rw-r--r--libdrm/libdrm/radeon_drm.h1079
-rw-r--r--libdrm/libdrm/radeon_surface.h149
-rw-r--r--libdrm/libdrm/savage_drm.h220
-rw-r--r--libdrm/libdrm/sis_drm.h77
-rw-r--r--libdrm/libdrm/tegra_drm.h1060
-rw-r--r--libdrm/libdrm/vc4_drm.h442
-rw-r--r--libdrm/libdrm/via_drm.h283
-rw-r--r--libdrm/libdrm/virtgpu_drm.h182
-rw-r--r--libdrm/libdrm/vmwgfx_drm.h1128
-rw-r--r--libdrm/libsync.h148
-rw-r--r--libdrm/xf86drm.h969
-rw-r--r--libdrm/xf86drmMode.h536
-rw-r--r--musl/aio.h73
-rw-r--r--musl/alloca.h19
-rw-r--r--musl/ar.h25
-rw-r--r--musl/arpa/ftp.h35
-rw-r--r--musl/arpa/inet.h31
-rw-r--r--musl/arpa/nameser.h526
-rw-r--r--musl/arpa/nameser_compat.h2
-rw-r--r--musl/arpa/telnet.h251
-rw-r--r--musl/arpa/tftp.h31
-rw-r--r--musl/assert.h23
-rw-r--r--musl/bits/alltypes.h415
-rw-r--r--musl/bits/dirent.h11
-rw-r--r--musl/bits/errno.h134
-rw-r--r--musl/bits/fcntl.h46
-rw-r--r--musl/bits/fenv.h34
-rw-r--r--musl/bits/float.h20
-rw-r--r--musl/bits/hwcap.h0
-rw-r--r--musl/bits/io.h77
-rw-r--r--musl/bits/ioctl.h115
-rw-r--r--musl/bits/ioctl_fix.h0
-rw-r--r--musl/bits/ipc.h11
-rw-r--r--musl/bits/ipcstat.h1
-rw-r--r--musl/bits/kd.h1
-rw-r--r--musl/bits/limits.h1
-rw-r--r--musl/bits/link.h1
-rw-r--r--musl/bits/mman.h1
-rw-r--r--musl/bits/msg.h12
-rw-r--r--musl/bits/poll.h0
-rw-r--r--musl/bits/ptrace.h13
-rw-r--r--musl/bits/reg.h27
-rw-r--r--musl/bits/resource.h0
-rw-r--r--musl/bits/sem.h11
-rw-r--r--musl/bits/setjmp.h1
-rw-r--r--musl/bits/shm.h24
-rw-r--r--musl/bits/signal.h153
-rw-r--r--musl/bits/socket.h0
-rw-r--r--musl/bits/soundcard.h1
-rw-r--r--musl/bits/stat.h22
-rw-r--r--musl/bits/statfs.h7
-rw-r--r--musl/bits/stdint.h29
-rw-r--r--musl/bits/syscall.h727
-rw-r--r--musl/bits/termios.h166
-rw-r--r--musl/bits/user.h38
-rw-r--r--musl/bits/vt.h1
-rw-r--r--musl/byteswap.h26
-rw-r--r--musl/complex.h133
-rw-r--r--musl/cpio.h29
-rw-r--r--musl/crypt.h20
-rw-r--r--musl/ctype.h77
-rw-r--r--musl/dirent.h87
-rw-r--r--musl/dlfcn.h46
-rw-r--r--musl/elf.h3414
-rw-r--r--musl/endian.h80
-rw-r--r--musl/err.h25
-rw-r--r--musl/errno.h27
-rw-r--r--musl/fcntl.h218
-rw-r--r--musl/features.h40
-rw-r--r--musl/fenv.h28
-rw-r--r--musl/float.h52
-rw-r--r--musl/fmtmsg.h47
-rw-r--r--musl/fnmatch.h24
-rw-r--r--musl/ftw.h41
-rw-r--r--musl/getopt.h30
-rw-r--r--musl/glob.h52
-rw-r--r--musl/grp.h53
-rw-r--r--musl/iconv.h24
-rw-r--r--musl/ifaddrs.h35
-rw-r--r--musl/inttypes.h229
-rw-r--r--musl/iso646.h20
-rw-r--r--musl/langinfo.h98
-rw-r--r--musl/lastlog.h1
-rw-r--r--musl/libgen.h15
-rw-r--r--musl/libintl.h33
-rw-r--r--musl/limits.h166
-rw-r--r--musl/link.h53
-rw-r--r--musl/locale.h88
-rw-r--r--musl/malloc.h25
-rw-r--r--musl/math.h442
-rw-r--r--musl/memory.h1
-rw-r--r--musl/mntent.h43
-rw-r--r--musl/monetary.h23
-rw-r--r--musl/mqueue.h41
-rw-r--r--musl/net/ethernet.h55
-rw-r--r--musl/net/if.h141
-rw-r--r--musl/net/if_arp.h142
-rw-r--r--musl/net/route.h124
-rw-r--r--musl/netdb.h157
-rw-r--r--musl/netinet/ether.h22
-rw-r--r--musl/netinet/icmp6.h305
-rw-r--r--musl/netinet/if_ether.h149
-rw-r--r--musl/netinet/igmp.h45
-rw-r--r--musl/netinet/in.h417
-rw-r--r--musl/netinet/in_systm.h9
-rw-r--r--musl/netinet/ip.h199
-rw-r--r--musl/netinet/ip6.h141
-rw-r--r--musl/netinet/ip_icmp.h193
-rw-r--r--musl/netinet/tcp.h305
-rw-r--r--musl/netinet/udp.h46
-rw-r--r--musl/netpacket/packet.h62
-rw-r--r--musl/nl_types.h22
-rw-r--r--musl/paths.h31
-rw-r--r--musl/poll.h57
-rw-r--r--musl/pthread.h244
-rw-r--r--musl/pty.h18
-rw-r--r--musl/pwd.h50
-rw-r--r--musl/regex.h62
-rw-r--r--musl/resolv.h142
-rw-r--r--musl/sched.h148
-rw-r--r--musl/scsi/scsi.h150
-rw-r--r--musl/scsi/scsi_ioctl.h11
-rw-r--r--musl/scsi/sg.h129
-rw-r--r--musl/search.h63
-rw-r--r--musl/semaphore.h39
-rw-r--r--musl/setjmp.h49
-rw-r--r--musl/shadow.h44
-rw-r--r--musl/signal.h304
-rw-r--r--musl/spawn.h83
-rw-r--r--musl/stdalign.h20
-rw-r--r--musl/stdarg.h21
-rw-r--r--musl/stdbool.h14
-rw-r--r--musl/stdc-predef.h18
-rw-r--r--musl/stddef.h27
-rw-r--r--musl/stdint.h117
-rw-r--r--musl/stdio.h231
-rw-r--r--musl/stdio_ext.h34
-rw-r--r--musl/stdlib.h179
-rw-r--r--musl/stdnoreturn.h7
-rw-r--r--musl/string.h104
-rw-r--r--musl/strings.h40
-rw-r--r--musl/stropts.h139
-rw-r--r--musl/sys/acct.h72
-rw-r--r--musl/sys/auxv.h17
-rw-r--r--musl/sys/cachectl.h22
-rw-r--r--musl/sys/dir.h2
-rw-r--r--musl/sys/epoll.h81
-rw-r--r--musl/sys/errno.h2
-rw-r--r--musl/sys/eventfd.h26
-rw-r--r--musl/sys/fanotify.h111
-rw-r--r--musl/sys/fcntl.h2
-rw-r--r--musl/sys/file.h21
-rw-r--r--musl/sys/fsuid.h20
-rw-r--r--musl/sys/inotify.h58
-rw-r--r--musl/sys/io.h17
-rw-r--r--musl/sys/ioctl.h120
-rw-r--r--musl/sys/ipc.h42
-rw-r--r--musl/sys/kd.h1
-rw-r--r--musl/sys/klog.h14
-rw-r--r--musl/sys/membarrier.h21
-rw-r--r--musl/sys/mman.h152
-rw-r--r--musl/sys/mount.h75
-rw-r--r--musl/sys/msg.h53
-rw-r--r--musl/sys/mtio.h188
-rw-r--r--musl/sys/param.h35
-rw-r--r--musl/sys/personality.h49
-rw-r--r--musl/sys/poll.h2
-rw-r--r--musl/sys/prctl.h186
-rw-r--r--musl/sys/procfs.h63
-rw-r--r--musl/sys/ptrace.h147
-rw-r--r--musl/sys/quota.h102
-rw-r--r--musl/sys/random.h20
-rw-r--r--musl/sys/reboot.h20
-rw-r--r--musl/sys/reg.h18
-rw-r--r--musl/sys/resource.h116
-rw-r--r--musl/sys/select.h46
-rw-r--r--musl/sys/sem.h72
-rw-r--r--musl/sys/sendfile.h22
-rw-r--r--musl/sys/shm.h70
-rw-r--r--musl/sys/signal.h2
-rw-r--r--musl/sys/signalfd.h49
-rw-r--r--musl/sys/socket.h415
-rw-r--r--musl/sys/soundcard.h1
-rw-r--r--musl/sys/stat.h199
-rw-r--r--musl/sys/statfs.h32
-rw-r--r--musl/sys/statvfs.h57
-rw-r--r--musl/sys/stropts.h1
-rw-r--r--musl/sys/swap.h21
-rw-r--r--musl/sys/syscall.h6
-rw-r--r--musl/sys/sysinfo.h36
-rw-r--r--musl/sys/syslog.h1
-rw-r--r--musl/sys/sysmacros.h15
-rw-r--r--musl/sys/termios.h2
-rw-r--r--musl/sys/time.h76
-rw-r--r--musl/sys/timeb.h28
-rw-r--r--musl/sys/timerfd.h32
-rw-r--r--musl/sys/times.h25
-rw-r--r--musl/sys/timex.h103
-rw-r--r--musl/sys/ttydefaults.h34
-rw-r--r--musl/sys/types.h85
-rw-r--r--musl/sys/ucontext.h1
-rw-r--r--musl/sys/uio.h56
-rw-r--r--musl/sys/un.h31
-rw-r--r--musl/sys/user.h25
-rw-r--r--musl/sys/utsname.h29
-rw-r--r--musl/sys/vfs.h1
-rw-r--r--musl/sys/vt.h1
-rw-r--r--musl/sys/wait.h67
-rw-r--r--musl/sys/xattr.h32
-rw-r--r--musl/syscall.h1
-rw-r--r--musl/sysexits.h21
-rw-r--r--musl/syslog.h100
-rw-r--r--musl/tar.h33
-rw-r--r--musl/termios.h50
-rw-r--r--musl/tgmath.h270
-rw-r--r--musl/threads.h93
-rw-r--r--musl/time.h168
-rw-r--r--musl/uchar.h29
-rw-r--r--musl/ucontext.h25
-rw-r--r--musl/ulimit.h17
-rw-r--r--musl/unistd.h485
-rw-r--r--musl/utime.h29
-rw-r--r--musl/utmp.h52
-rw-r--r--musl/utmpx.h67
-rw-r--r--musl/values.h39
-rw-r--r--musl/wait.h2
-rw-r--r--musl/wchar.h207
-rw-r--r--musl/wctype.h79
-rw-r--r--musl/wordexp.h41
262 files changed, 1 insertions, 40288 deletions
diff --git a/.gitignore b/.gitignore
index 9209924..ba077a4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1 @@
-bin/*.o
-bin/engine33
+bin
diff --git a/libdrm/.xf86drmMode.h.swp b/libdrm/.xf86drmMode.h.swp
deleted file mode 100644
index fcb3dfc..0000000
--- a/libdrm/.xf86drmMode.h.swp
+++ /dev/null
Binary files differ
diff --git a/libdrm/libdrm/amdgpu.h b/libdrm/libdrm/amdgpu.h
deleted file mode 100644
index 5ef2524..0000000
--- a/libdrm/libdrm/amdgpu.h
+++ /dev/null
@@ -1,1876 +0,0 @@
-/*
- * Copyright 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/**
- * \file amdgpu.h
- *
- * Declare public libdrm_amdgpu API
- *
- * This file define API exposed by libdrm_amdgpu library.
- * User wanted to use libdrm_amdgpu functionality must include
- * this file.
- *
- */
-#ifndef _AMDGPU_H_
-#define _AMDGPU_H_
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct drm_amdgpu_info_hw_ip;
-struct drm_amdgpu_bo_list_entry;
-
-/*--------------------------------------------------------------------------*/
-/* --------------------------- Defines ------------------------------------ */
-/*--------------------------------------------------------------------------*/
-
-/**
- * Define max. number of Command Buffers (IB) which could be sent to the single
- * hardware IP to accommodate CE/DE requirements
- *
- * \sa amdgpu_cs_ib_info
-*/
-#define AMDGPU_CS_MAX_IBS_PER_SUBMIT 4
-
-/**
- * Special timeout value meaning that the timeout is infinite.
- */
-#define AMDGPU_TIMEOUT_INFINITE 0xffffffffffffffffull
-
-/**
- * Used in amdgpu_cs_query_fence_status(), meaning that the given timeout
- * is absolute.
- */
-#define AMDGPU_QUERY_FENCE_TIMEOUT_IS_ABSOLUTE (1 << 0)
-
-/*--------------------------------------------------------------------------*/
-/* ----------------------------- Enums ------------------------------------ */
-/*--------------------------------------------------------------------------*/
-
-/**
- * Enum describing possible handle types
- *
- * \sa amdgpu_bo_import, amdgpu_bo_export
- *
-*/
-enum amdgpu_bo_handle_type {
- /** GEM flink name (needs DRM authentication, used by DRI2) */
- amdgpu_bo_handle_type_gem_flink_name = 0,
-
- /** KMS handle which is used by all driver ioctls */
- amdgpu_bo_handle_type_kms = 1,
-
- /** DMA-buf fd handle */
- amdgpu_bo_handle_type_dma_buf_fd = 2,
-
- /** Deprecated in favour of and same behaviour as
- * amdgpu_bo_handle_type_kms, use that instead of this
- */
- amdgpu_bo_handle_type_kms_noimport = 3,
-};
-
-/** Define known types of GPU VM VA ranges */
-enum amdgpu_gpu_va_range
-{
- /** Allocate from "normal"/general range */
- amdgpu_gpu_va_range_general = 0
-};
-
-enum amdgpu_sw_info {
- amdgpu_sw_info_address32_hi = 0,
-};
-
-/*--------------------------------------------------------------------------*/
-/* -------------------------- Datatypes ----------------------------------- */
-/*--------------------------------------------------------------------------*/
-
-/**
- * Define opaque pointer to context associated with fd.
- * This context will be returned as the result of
- * "initialize" function and should be pass as the first
- * parameter to any API call
- */
-typedef struct amdgpu_device *amdgpu_device_handle;
-
-/**
- * Define GPU Context type as pointer to opaque structure
- * Example of GPU Context is the "rendering" context associated
- * with OpenGL context (glCreateContext)
- */
-typedef struct amdgpu_context *amdgpu_context_handle;
-
-/**
- * Define handle for amdgpu resources: buffer, GDS, etc.
- */
-typedef struct amdgpu_bo *amdgpu_bo_handle;
-
-/**
- * Define handle for list of BOs
- */
-typedef struct amdgpu_bo_list *amdgpu_bo_list_handle;
-
-/**
- * Define handle to be used to work with VA allocated ranges
- */
-typedef struct amdgpu_va *amdgpu_va_handle;
-
-/**
- * Define handle for semaphore
- */
-typedef struct amdgpu_semaphore *amdgpu_semaphore_handle;
-
-/*--------------------------------------------------------------------------*/
-/* -------------------------- Structures ---------------------------------- */
-/*--------------------------------------------------------------------------*/
-
-/**
- * Structure describing memory allocation request
- *
- * \sa amdgpu_bo_alloc()
- *
-*/
-struct amdgpu_bo_alloc_request {
- /** Allocation request. It must be aligned correctly. */
- uint64_t alloc_size;
-
- /**
- * It may be required to have some specific alignment requirements
- * for physical back-up storage (e.g. for displayable surface).
- * If 0 there is no special alignment requirement
- */
- uint64_t phys_alignment;
-
- /**
- * UMD should specify where to allocate memory and how it
- * will be accessed by the CPU.
- */
- uint32_t preferred_heap;
-
- /** Additional flags passed on allocation */
- uint64_t flags;
-};
-
-/**
- * Special UMD specific information associated with buffer.
- *
- * It may be need to pass some buffer charactersitic as part
- * of buffer sharing. Such information are defined UMD and
- * opaque for libdrm_amdgpu as well for kernel driver.
- *
- * \sa amdgpu_bo_set_metadata(), amdgpu_bo_query_info,
- * amdgpu_bo_import(), amdgpu_bo_export
- *
-*/
-struct amdgpu_bo_metadata {
- /** Special flag associated with surface */
- uint64_t flags;
-
- /**
- * ASIC-specific tiling information (also used by DCE).
- * The encoding is defined by the AMDGPU_TILING_* definitions.
- */
- uint64_t tiling_info;
-
- /** Size of metadata associated with the buffer, in bytes. */
- uint32_t size_metadata;
-
- /** UMD specific metadata. Opaque for kernel */
- uint32_t umd_metadata[64];
-};
-
-/**
- * Structure describing allocated buffer. Client may need
- * to query such information as part of 'sharing' buffers mechanism
- *
- * \sa amdgpu_bo_set_metadata(), amdgpu_bo_query_info(),
- * amdgpu_bo_import(), amdgpu_bo_export()
-*/
-struct amdgpu_bo_info {
- /** Allocated memory size */
- uint64_t alloc_size;
-
- /**
- * It may be required to have some specific alignment requirements
- * for physical back-up storage.
- */
- uint64_t phys_alignment;
-
- /** Heap where to allocate memory. */
- uint32_t preferred_heap;
-
- /** Additional allocation flags. */
- uint64_t alloc_flags;
-
- /** Metadata associated with buffer if any. */
- struct amdgpu_bo_metadata metadata;
-};
-
-/**
- * Structure with information about "imported" buffer
- *
- * \sa amdgpu_bo_import()
- *
- */
-struct amdgpu_bo_import_result {
- /** Handle of memory/buffer to use */
- amdgpu_bo_handle buf_handle;
-
- /** Buffer size */
- uint64_t alloc_size;
-};
-
-/**
- *
- * Structure to describe GDS partitioning information.
- * \note OA and GWS resources are asscoiated with GDS partition
- *
- * \sa amdgpu_gpu_resource_query_gds_info
- *
-*/
-struct amdgpu_gds_resource_info {
- uint32_t gds_gfx_partition_size;
- uint32_t compute_partition_size;
- uint32_t gds_total_size;
- uint32_t gws_per_gfx_partition;
- uint32_t gws_per_compute_partition;
- uint32_t oa_per_gfx_partition;
- uint32_t oa_per_compute_partition;
-};
-
-/**
- * Structure describing CS fence
- *
- * \sa amdgpu_cs_query_fence_status(), amdgpu_cs_request, amdgpu_cs_submit()
- *
-*/
-struct amdgpu_cs_fence {
-
- /** In which context IB was sent to execution */
- amdgpu_context_handle context;
-
- /** To which HW IP type the fence belongs */
- uint32_t ip_type;
-
- /** IP instance index if there are several IPs of the same type. */
- uint32_t ip_instance;
-
- /** Ring index of the HW IP */
- uint32_t ring;
-
- /** Specify fence for which we need to check submission status.*/
- uint64_t fence;
-};
-
-/**
- * Structure describing IB
- *
- * \sa amdgpu_cs_request, amdgpu_cs_submit()
- *
-*/
-struct amdgpu_cs_ib_info {
- /** Special flags */
- uint64_t flags;
-
- /** Virtual MC address of the command buffer */
- uint64_t ib_mc_address;
-
- /**
- * Size of Command Buffer to be submitted.
- * - The size is in units of dwords (4 bytes).
- * - Could be 0
- */
- uint32_t size;
-};
-
-/**
- * Structure describing fence information
- *
- * \sa amdgpu_cs_request, amdgpu_cs_query_fence,
- * amdgpu_cs_submit(), amdgpu_cs_query_fence_status()
-*/
-struct amdgpu_cs_fence_info {
- /** buffer object for the fence */
- amdgpu_bo_handle handle;
-
- /** fence offset in the unit of sizeof(uint64_t) */
- uint64_t offset;
-};
-
-/**
- * Structure describing submission request
- *
- * \note We could have several IBs as packet. e.g. CE, CE, DE case for gfx
- *
- * \sa amdgpu_cs_submit()
-*/
-struct amdgpu_cs_request {
- /** Specify flags with additional information */
- uint64_t flags;
-
- /** Specify HW IP block type to which to send the IB. */
- unsigned ip_type;
-
- /** IP instance index if there are several IPs of the same type. */
- unsigned ip_instance;
-
- /**
- * Specify ring index of the IP. We could have several rings
- * in the same IP. E.g. 0 for SDMA0 and 1 for SDMA1.
- */
- uint32_t ring;
-
- /**
- * List handle with resources used by this request.
- */
- amdgpu_bo_list_handle resources;
-
- /**
- * Number of dependencies this Command submission needs to
- * wait for before starting execution.
- */
- uint32_t number_of_dependencies;
-
- /**
- * Array of dependencies which need to be met before
- * execution can start.
- */
- struct amdgpu_cs_fence *dependencies;
-
- /** Number of IBs to submit in the field ibs. */
- uint32_t number_of_ibs;
-
- /**
- * IBs to submit. Those IBs will be submit together as single entity
- */
- struct amdgpu_cs_ib_info *ibs;
-
- /**
- * The returned sequence number for the command submission
- */
- uint64_t seq_no;
-
- /**
- * The fence information
- */
- struct amdgpu_cs_fence_info fence_info;
-};
-
-/**
- * Structure which provide information about GPU VM MC Address space
- * alignments requirements
- *
- * \sa amdgpu_query_buffer_size_alignment
- */
-struct amdgpu_buffer_size_alignments {
- /** Size alignment requirement for allocation in
- * local memory */
- uint64_t size_local;
-
- /**
- * Size alignment requirement for allocation in remote memory
- */
- uint64_t size_remote;
-};
-
-/**
- * Structure which provide information about heap
- *
- * \sa amdgpu_query_heap_info()
- *
- */
-struct amdgpu_heap_info {
- /** Theoretical max. available memory in the given heap */
- uint64_t heap_size;
-
- /**
- * Number of bytes allocated in the heap. This includes all processes
- * and private allocations in the kernel. It changes when new buffers
- * are allocated, freed, and moved. It cannot be larger than
- * heap_size.
- */
- uint64_t heap_usage;
-
- /**
- * Theoretical possible max. size of buffer which
- * could be allocated in the given heap
- */
- uint64_t max_allocation;
-};
-
-/**
- * Describe GPU h/w info needed for UMD correct initialization
- *
- * \sa amdgpu_query_gpu_info()
-*/
-struct amdgpu_gpu_info {
- /** Asic id */
- uint32_t asic_id;
- /** Chip revision */
- uint32_t chip_rev;
- /** Chip external revision */
- uint32_t chip_external_rev;
- /** Family ID */
- uint32_t family_id;
- /** Special flags */
- uint64_t ids_flags;
- /** max engine clock*/
- uint64_t max_engine_clk;
- /** max memory clock */
- uint64_t max_memory_clk;
- /** number of shader engines */
- uint32_t num_shader_engines;
- /** number of shader arrays per engine */
- uint32_t num_shader_arrays_per_engine;
- /** Number of available good shader pipes */
- uint32_t avail_quad_shader_pipes;
- /** Max. number of shader pipes.(including good and bad pipes */
- uint32_t max_quad_shader_pipes;
- /** Number of parameter cache entries per shader quad pipe */
- uint32_t cache_entries_per_quad_pipe;
- /** Number of available graphics context */
- uint32_t num_hw_gfx_contexts;
- /** Number of render backend pipes */
- uint32_t rb_pipes;
- /** Enabled render backend pipe mask */
- uint32_t enabled_rb_pipes_mask;
- /** Frequency of GPU Counter */
- uint32_t gpu_counter_freq;
- /** CC_RB_BACKEND_DISABLE.BACKEND_DISABLE per SE */
- uint32_t backend_disable[4];
- /** Value of MC_ARB_RAMCFG register*/
- uint32_t mc_arb_ramcfg;
- /** Value of GB_ADDR_CONFIG */
- uint32_t gb_addr_cfg;
- /** Values of the GB_TILE_MODE0..31 registers */
- uint32_t gb_tile_mode[32];
- /** Values of GB_MACROTILE_MODE0..15 registers */
- uint32_t gb_macro_tile_mode[16];
- /** Value of PA_SC_RASTER_CONFIG register per SE */
- uint32_t pa_sc_raster_cfg[4];
- /** Value of PA_SC_RASTER_CONFIG_1 register per SE */
- uint32_t pa_sc_raster_cfg1[4];
- /* CU info */
- uint32_t cu_active_number;
- uint32_t cu_ao_mask;
- uint32_t cu_bitmap[4][4];
- /* video memory type info*/
- uint32_t vram_type;
- /* video memory bit width*/
- uint32_t vram_bit_width;
- /** constant engine ram size*/
- uint32_t ce_ram_size;
- /* vce harvesting instance */
- uint32_t vce_harvest_config;
- /* PCI revision ID */
- uint32_t pci_rev_id;
-};
-
-
-/*--------------------------------------------------------------------------*/
-/*------------------------- Functions --------------------------------------*/
-/*--------------------------------------------------------------------------*/
-
-/*
- * Initialization / Cleanup
- *
-*/
-
-/**
- *
- * \param fd - \c [in] File descriptor for AMD GPU device
- * received previously as the result of
- * e.g. drmOpen() call.
- * For legacy fd type, the DRI2/DRI3
- * authentication should be done before
- * calling this function.
- * \param major_version - \c [out] Major version of library. It is assumed
- * that adding new functionality will cause
- * increase in major version
- * \param minor_version - \c [out] Minor version of library
- * \param device_handle - \c [out] Pointer to opaque context which should
- * be passed as the first parameter on each
- * API call
- *
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- *
- * \sa amdgpu_device_deinitialize()
-*/
-int amdgpu_device_initialize(int fd,
- uint32_t *major_version,
- uint32_t *minor_version,
- amdgpu_device_handle *device_handle);
-
-/**
- *
- * When access to such library does not needed any more the special
- * function must be call giving opportunity to clean up any
- * resources if needed.
- *
- * \param device_handle - \c [in] Context associated with file
- * descriptor for AMD GPU device
- * received previously as the
- * result e.g. of drmOpen() call.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_device_initialize()
- *
-*/
-int amdgpu_device_deinitialize(amdgpu_device_handle device_handle);
-
-/**
- *
- * /param device_handle - \c [in] Device handle.
- * See #amdgpu_device_initialize()
- *
- * \return Returns the drm fd used for operations on this
- * device. This is still owned by the library and hence
- * should not be closed. Guaranteed to be valid until
- * #amdgpu_device_deinitialize gets called.
- *
-*/
-int amdgpu_device_get_fd(amdgpu_device_handle device_handle);
-
-/*
- * Memory Management
- *
-*/
-
-/**
- * Allocate memory to be used by UMD for GPU related operations
- *
- * \param dev - \c [in] Device handle.
- * See #amdgpu_device_initialize()
- * \param alloc_buffer - \c [in] Pointer to the structure describing an
- * allocation request
- * \param buf_handle - \c [out] Allocated buffer handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_free()
-*/
-int amdgpu_bo_alloc(amdgpu_device_handle dev,
- struct amdgpu_bo_alloc_request *alloc_buffer,
- amdgpu_bo_handle *buf_handle);
-
-/**
- * Associate opaque data with buffer to be queried by another UMD
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param buf_handle - \c [in] Buffer handle
- * \param info - \c [in] Metadata to associated with buffer
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
-*/
-int amdgpu_bo_set_metadata(amdgpu_bo_handle buf_handle,
- struct amdgpu_bo_metadata *info);
-
-/**
- * Query buffer information including metadata previusly associated with
- * buffer.
- *
- * \param dev - \c [in] Device handle.
- * See #amdgpu_device_initialize()
- * \param buf_handle - \c [in] Buffer handle
- * \param info - \c [out] Structure describing buffer
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_set_metadata(), amdgpu_bo_alloc()
-*/
-int amdgpu_bo_query_info(amdgpu_bo_handle buf_handle,
- struct amdgpu_bo_info *info);
-
-/**
- * Allow others to get access to buffer
- *
- * \param dev - \c [in] Device handle.
- * See #amdgpu_device_initialize()
- * \param buf_handle - \c [in] Buffer handle
- * \param type - \c [in] Type of handle requested
- * \param shared_handle - \c [out] Special "shared" handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_import()
- *
-*/
-int amdgpu_bo_export(amdgpu_bo_handle buf_handle,
- enum amdgpu_bo_handle_type type,
- uint32_t *shared_handle);
-
-/**
- * Request access to "shared" buffer
- *
- * \param dev - \c [in] Device handle.
- * See #amdgpu_device_initialize()
- * \param type - \c [in] Type of handle requested
- * \param shared_handle - \c [in] Shared handle received as result "import"
- * operation
- * \param output - \c [out] Pointer to structure with information
- * about imported buffer
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \note Buffer must be "imported" only using new "fd" (different from
- * one used by "exporter").
- *
- * \sa amdgpu_bo_export()
- *
-*/
-int amdgpu_bo_import(amdgpu_device_handle dev,
- enum amdgpu_bo_handle_type type,
- uint32_t shared_handle,
- struct amdgpu_bo_import_result *output);
-
-/**
- * Request GPU access to user allocated memory e.g. via "malloc"
- *
- * \param dev - [in] Device handle. See #amdgpu_device_initialize()
- * \param cpu - [in] CPU address of user allocated memory which we
- * want to map to GPU address space (make GPU accessible)
- * (This address must be correctly aligned).
- * \param size - [in] Size of allocation (must be correctly aligned)
- * \param buf_handle - [out] Buffer handle for the userptr memory
- * resource on submission and be used in other operations.
- *
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \note
- * This call doesn't guarantee that such memory will be persistently
- * "locked" / make non-pageable. The purpose of this call is to provide
- * opportunity for GPU get access to this resource during submission.
- *
- * The maximum amount of memory which could be mapped in this call depends
- * if overcommit is disabled or not. If overcommit is disabled than the max.
- * amount of memory to be pinned will be limited by left "free" size in total
- * amount of memory which could be locked simultaneously ("GART" size).
- *
- * Supported (theoretical) max. size of mapping is restricted only by
- * "GART" size.
- *
- * It is responsibility of caller to correctly specify access rights
- * on VA assignment.
-*/
-int amdgpu_create_bo_from_user_mem(amdgpu_device_handle dev,
- void *cpu, uint64_t size,
- amdgpu_bo_handle *buf_handle);
-
-/**
- * Validate if the user memory comes from BO
- *
- * \param dev - [in] Device handle. See #amdgpu_device_initialize()
- * \param cpu - [in] CPU address of user allocated memory which we
- * want to map to GPU address space (make GPU accessible)
- * (This address must be correctly aligned).
- * \param size - [in] Size of allocation (must be correctly aligned)
- * \param buf_handle - [out] Buffer handle for the userptr memory
- * if the user memory is not from BO, the buf_handle will be NULL.
- * \param offset_in_bo - [out] offset in this BO for this user memory
- *
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_find_bo_by_cpu_mapping(amdgpu_device_handle dev,
- void *cpu,
- uint64_t size,
- amdgpu_bo_handle *buf_handle,
- uint64_t *offset_in_bo);
-
-/**
- * Free previously allocated memory
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param buf_handle - \c [in] Buffer handle to free
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \note In the case of memory shared between different applications all
- * resources will be “physically” freed only all such applications
- * will be terminated
- * \note If is UMD responsibility to ‘free’ buffer only when there is no
- * more GPU access
- *
- * \sa amdgpu_bo_set_metadata(), amdgpu_bo_alloc()
- *
-*/
-int amdgpu_bo_free(amdgpu_bo_handle buf_handle);
-
-/**
- * Increase the reference count of a buffer object
- *
- * \param bo - \c [in] Buffer object handle to increase the reference count
- *
- * \sa amdgpu_bo_alloc(), amdgpu_bo_free()
- *
-*/
-void amdgpu_bo_inc_ref(amdgpu_bo_handle bo);
-
-/**
- * Request CPU access to GPU accessible memory
- *
- * \param buf_handle - \c [in] Buffer handle
- * \param cpu - \c [out] CPU address to be used for access
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_cpu_unmap()
- *
-*/
-int amdgpu_bo_cpu_map(amdgpu_bo_handle buf_handle, void **cpu);
-
-/**
- * Release CPU access to GPU memory
- *
- * \param buf_handle - \c [in] Buffer handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_cpu_map()
- *
-*/
-int amdgpu_bo_cpu_unmap(amdgpu_bo_handle buf_handle);
-
-/**
- * Wait until a buffer is not used by the device.
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param buf_handle - \c [in] Buffer handle.
- * \param timeout_ns - Timeout in nanoseconds.
- * \param buffer_busy - 0 if buffer is idle, all GPU access was completed
- * and no GPU access is scheduled.
- * 1 GPU access is in fly or scheduled
- *
- * \return 0 - on success
- * <0 - Negative POSIX Error code
- */
-int amdgpu_bo_wait_for_idle(amdgpu_bo_handle buf_handle,
- uint64_t timeout_ns,
- bool *buffer_busy);
-
-/**
- * Creates a BO list handle for command submission.
- *
- * \param dev - \c [in] Device handle.
- * See #amdgpu_device_initialize()
- * \param number_of_buffers - \c [in] Number of BOs in the list
- * \param buffers - \c [in] List of BO handles
- * \param result - \c [out] Created BO list handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_list_destroy_raw(), amdgpu_cs_submit_raw2()
-*/
-int amdgpu_bo_list_create_raw(amdgpu_device_handle dev,
- uint32_t number_of_buffers,
- struct drm_amdgpu_bo_list_entry *buffers,
- uint32_t *result);
-
-/**
- * Destroys a BO list handle.
- *
- * \param bo_list - \c [in] BO list handle.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_list_create_raw(), amdgpu_cs_submit_raw2()
-*/
-int amdgpu_bo_list_destroy_raw(amdgpu_device_handle dev, uint32_t bo_list);
-
-/**
- * Creates a BO list handle for command submission.
- *
- * \param dev - \c [in] Device handle.
- * See #amdgpu_device_initialize()
- * \param number_of_resources - \c [in] Number of BOs in the list
- * \param resources - \c [in] List of BO handles
- * \param resource_prios - \c [in] Optional priority for each handle
- * \param result - \c [out] Created BO list handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_list_destroy()
-*/
-int amdgpu_bo_list_create(amdgpu_device_handle dev,
- uint32_t number_of_resources,
- amdgpu_bo_handle *resources,
- uint8_t *resource_prios,
- amdgpu_bo_list_handle *result);
-
-/**
- * Destroys a BO list handle.
- *
- * \param handle - \c [in] BO list handle.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_list_create()
-*/
-int amdgpu_bo_list_destroy(amdgpu_bo_list_handle handle);
-
-/**
- * Update resources for existing BO list
- *
- * \param handle - \c [in] BO list handle
- * \param number_of_resources - \c [in] Number of BOs in the list
- * \param resources - \c [in] List of BO handles
- * \param resource_prios - \c [in] Optional priority for each handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_list_update()
-*/
-int amdgpu_bo_list_update(amdgpu_bo_list_handle handle,
- uint32_t number_of_resources,
- amdgpu_bo_handle *resources,
- uint8_t *resource_prios);
-
-/*
- * GPU Execution context
- *
-*/
-
-/**
- * Create GPU execution Context
- *
- * For the purpose of GPU Scheduler and GPU Robustness extensions it is
- * necessary to have information/identify rendering/compute contexts.
- * It also may be needed to associate some specific requirements with such
- * contexts. Kernel driver will guarantee that submission from the same
- * context will always be executed in order (first come, first serve).
- *
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param priority - \c [in] Context creation flags. See AMDGPU_CTX_PRIORITY_*
- * \param context - \c [out] GPU Context handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_cs_ctx_free()
- *
-*/
-int amdgpu_cs_ctx_create2(amdgpu_device_handle dev,
- uint32_t priority,
- amdgpu_context_handle *context);
-/**
- * Create GPU execution Context
- *
- * Refer to amdgpu_cs_ctx_create2 for full documentation. This call
- * is missing the priority parameter.
- *
- * \sa amdgpu_cs_ctx_create2()
- *
-*/
-int amdgpu_cs_ctx_create(amdgpu_device_handle dev,
- amdgpu_context_handle *context);
-
-/**
- *
- * Destroy GPU execution context when not needed any more
- *
- * \param context - \c [in] GPU Context handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_cs_ctx_create()
- *
-*/
-int amdgpu_cs_ctx_free(amdgpu_context_handle context);
-
-/**
- * Override the submission priority for the given context using a master fd.
- *
- * \param dev - \c [in] device handle
- * \param context - \c [in] context handle for context id
- * \param master_fd - \c [in] The master fd to authorize the override.
- * \param priority - \c [in] The priority to assign to the context.
- *
- * \return 0 on success or a a negative Posix error code on failure.
- */
-int amdgpu_cs_ctx_override_priority(amdgpu_device_handle dev,
- amdgpu_context_handle context,
- int master_fd,
- unsigned priority);
-
-/**
- * Set or query the stable power state for GPU profiling.
- *
- * \param dev - \c [in] device handle
- * \param op - \c [in] AMDGPU_CTX_OP_{GET,SET}_STABLE_PSTATE
- * \param flags - \c [in] AMDGPU_CTX_STABLE_PSTATE_*
- * \param out_flags - \c [out] output current stable pstate
- *
- * \return 0 on success otherwise POSIX Error code.
- */
-int amdgpu_cs_ctx_stable_pstate(amdgpu_context_handle context,
- uint32_t op,
- uint32_t flags,
- uint32_t *out_flags);
-
-/**
- * Query reset state for the specific GPU Context
- *
- * \param context - \c [in] GPU Context handle
- * \param state - \c [out] One of AMDGPU_CTX_*_RESET
- * \param hangs - \c [out] Number of hangs caused by the context.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_cs_ctx_create()
- *
-*/
-int amdgpu_cs_query_reset_state(amdgpu_context_handle context,
- uint32_t *state, uint32_t *hangs);
-
-/**
- * Query reset state for the specific GPU Context.
- *
- * \param context - \c [in] GPU Context handle
- * \param flags - \c [out] A combination of AMDGPU_CTX_QUERY2_FLAGS_*
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_cs_ctx_create()
- *
-*/
-int amdgpu_cs_query_reset_state2(amdgpu_context_handle context,
- uint64_t *flags);
-
-/*
- * Command Buffers Management
- *
-*/
-
-/**
- * Send request to submit command buffers to hardware.
- *
- * Kernel driver could use GPU Scheduler to make decision when physically
- * sent this request to the hardware. Accordingly this request could be put
- * in queue and sent for execution later. The only guarantee is that request
- * from the same GPU context to the same ip:ip_instance:ring will be executed in
- * order.
- *
- * The caller can specify the user fence buffer/location with the fence_info in the
- * cs_request.The sequence number is returned via the 'seq_no' parameter
- * in ibs_request structure.
- *
- *
- * \param dev - \c [in] Device handle.
- * See #amdgpu_device_initialize()
- * \param context - \c [in] GPU Context
- * \param flags - \c [in] Global submission flags
- * \param ibs_request - \c [in/out] Pointer to submission requests.
- * We could submit to the several
- * engines/rings simulteniously as
- * 'atomic' operation
- * \param number_of_requests - \c [in] Number of submission requests
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \note It is required to pass correct resource list with buffer handles
- * which will be accessible by command buffers from submission
- * This will allow kernel driver to correctly implement "paging".
- * Failure to do so will have unpredictable results.
- *
- * \sa amdgpu_command_buffer_alloc(), amdgpu_command_buffer_free(),
- * amdgpu_cs_query_fence_status()
- *
-*/
-int amdgpu_cs_submit(amdgpu_context_handle context,
- uint64_t flags,
- struct amdgpu_cs_request *ibs_request,
- uint32_t number_of_requests);
-
-/**
- * Query status of Command Buffer Submission
- *
- * \param fence - \c [in] Structure describing fence to query
- * \param timeout_ns - \c [in] Timeout value to wait
- * \param flags - \c [in] Flags for the query
- * \param expired - \c [out] If fence expired or not.\n
- * 0 – if fence is not expired\n
- * !0 - otherwise
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \note If UMD wants only to check operation status and returned immediately
- * then timeout value as 0 must be passed. In this case success will be
- * returned in the case if submission was completed or timeout error
- * code.
- *
- * \sa amdgpu_cs_submit()
-*/
-int amdgpu_cs_query_fence_status(struct amdgpu_cs_fence *fence,
- uint64_t timeout_ns,
- uint64_t flags,
- uint32_t *expired);
-
-/**
- * Wait for multiple fences
- *
- * \param fences - \c [in] The fence array to wait
- * \param fence_count - \c [in] The fence count
- * \param wait_all - \c [in] If true, wait all fences to be signaled,
- * otherwise, wait at least one fence
- * \param timeout_ns - \c [in] The timeout to wait, in nanoseconds
- * \param status - \c [out] '1' for signaled, '0' for timeout
- * \param first - \c [out] the index of the first signaled fence from @fences
- *
- * \return 0 on success
- * <0 - Negative POSIX Error code
- *
- * \note Currently it supports only one amdgpu_device. All fences come from
- * the same amdgpu_device with the same fd.
-*/
-int amdgpu_cs_wait_fences(struct amdgpu_cs_fence *fences,
- uint32_t fence_count,
- bool wait_all,
- uint64_t timeout_ns,
- uint32_t *status, uint32_t *first);
-
-/*
- * Query / Info API
- *
-*/
-
-/**
- * Query allocation size alignments
- *
- * UMD should query information about GPU VM MC size alignments requirements
- * to be able correctly choose required allocation size and implement
- * internal optimization if needed.
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param info - \c [out] Pointer to structure to get size alignment
- * requirements
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_query_buffer_size_alignment(amdgpu_device_handle dev,
- struct amdgpu_buffer_size_alignments
- *info);
-
-/**
- * Query firmware versions
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param fw_type - \c [in] AMDGPU_INFO_FW_*
- * \param ip_instance - \c [in] Index of the IP block of the same type.
- * \param index - \c [in] Index of the engine. (for SDMA and MEC)
- * \param version - \c [out] Pointer to to the "version" return value
- * \param feature - \c [out] Pointer to to the "feature" return value
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_query_firmware_version(amdgpu_device_handle dev, unsigned fw_type,
- unsigned ip_instance, unsigned index,
- uint32_t *version, uint32_t *feature);
-
-/**
- * Query the number of HW IP instances of a certain type.
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param type - \c [in] Hardware IP block type = AMDGPU_HW_IP_*
- * \param count - \c [out] Pointer to structure to get information
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
-*/
-int amdgpu_query_hw_ip_count(amdgpu_device_handle dev, unsigned type,
- uint32_t *count);
-
-/**
- * Query engine information
- *
- * This query allows UMD to query information different engines and their
- * capabilities.
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param type - \c [in] Hardware IP block type = AMDGPU_HW_IP_*
- * \param ip_instance - \c [in] Index of the IP block of the same type.
- * \param info - \c [out] Pointer to structure to get information
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
-*/
-int amdgpu_query_hw_ip_info(amdgpu_device_handle dev, unsigned type,
- unsigned ip_instance,
- struct drm_amdgpu_info_hw_ip *info);
-
-/**
- * Query heap information
- *
- * This query allows UMD to query potentially available memory resources and
- * adjust their logic if necessary.
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param heap - \c [in] Heap type
- * \param info - \c [in] Pointer to structure to get needed information
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_query_heap_info(amdgpu_device_handle dev, uint32_t heap,
- uint32_t flags, struct amdgpu_heap_info *info);
-
-/**
- * Get the CRTC ID from the mode object ID
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param id - \c [in] Mode object ID
- * \param result - \c [in] Pointer to the CRTC ID
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_query_crtc_from_id(amdgpu_device_handle dev, unsigned id,
- int32_t *result);
-
-/**
- * Query GPU H/w Info
- *
- * Query hardware specific information
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param heap - \c [in] Heap type
- * \param info - \c [in] Pointer to structure to get needed information
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_query_gpu_info(amdgpu_device_handle dev,
- struct amdgpu_gpu_info *info);
-
-/**
- * Query hardware or driver information.
- *
- * The return size is query-specific and depends on the "info_id" parameter.
- * No more than "size" bytes is returned.
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param info_id - \c [in] AMDGPU_INFO_*
- * \param size - \c [in] Size of the returned value.
- * \param value - \c [out] Pointer to the return value.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX error code
- *
-*/
-int amdgpu_query_info(amdgpu_device_handle dev, unsigned info_id,
- unsigned size, void *value);
-
-/**
- * Query hardware or driver information.
- *
- * The return size is query-specific and depends on the "info_id" parameter.
- * No more than "size" bytes is returned.
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param info - \c [in] amdgpu_sw_info_*
- * \param value - \c [out] Pointer to the return value.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX error code
- *
-*/
-int amdgpu_query_sw_info(amdgpu_device_handle dev, enum amdgpu_sw_info info,
- void *value);
-
-/**
- * Query information about GDS
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param gds_info - \c [out] Pointer to structure to get GDS information
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_query_gds_info(amdgpu_device_handle dev,
- struct amdgpu_gds_resource_info *gds_info);
-
-/**
- * Query information about sensor.
- *
- * The return size is query-specific and depends on the "sensor_type"
- * parameter. No more than "size" bytes is returned.
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param sensor_type - \c [in] AMDGPU_INFO_SENSOR_*
- * \param size - \c [in] Size of the returned value.
- * \param value - \c [out] Pointer to the return value.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_query_sensor_info(amdgpu_device_handle dev, unsigned sensor_type,
- unsigned size, void *value);
-
-/**
- * Query information about video capabilities
- *
- * The return sizeof(struct drm_amdgpu_info_video_caps)
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- * \param caps_type - \c [in] AMDGPU_INFO_VIDEO_CAPS_DECODE(ENCODE)
- * \param size - \c [in] Size of the returned value.
- * \param value - \c [out] Pointer to the return value.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_query_video_caps_info(amdgpu_device_handle dev, unsigned cap_type,
- unsigned size, void *value);
-
-/**
- * Read a set of consecutive memory-mapped registers.
- * Not all registers are allowed to be read by userspace.
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize(
- * \param dword_offset - \c [in] Register offset in dwords
- * \param count - \c [in] The number of registers to read starting
- * from the offset
- * \param instance - \c [in] GRBM_GFX_INDEX selector. It may have other
- * uses. Set it to 0xffffffff if unsure.
- * \param flags - \c [in] Flags with additional information.
- * \param values - \c [out] The pointer to return values.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX error code
- *
-*/
-int amdgpu_read_mm_registers(amdgpu_device_handle dev, unsigned dword_offset,
- unsigned count, uint32_t instance, uint32_t flags,
- uint32_t *values);
-
-/**
- * Flag to request VA address range in the 32bit address space
-*/
-#define AMDGPU_VA_RANGE_32_BIT 0x1
-#define AMDGPU_VA_RANGE_HIGH 0x2
-#define AMDGPU_VA_RANGE_REPLAYABLE 0x4
-
-/**
- * Allocate virtual address range
- *
- * \param dev - [in] Device handle. See #amdgpu_device_initialize()
- * \param va_range_type - \c [in] Type of MC va range from which to allocate
- * \param size - \c [in] Size of range. Size must be correctly* aligned.
- * It is client responsibility to correctly aligned size based on the future
- * usage of allocated range.
- * \param va_base_alignment - \c [in] Overwrite base address alignment
- * requirement for GPU VM MC virtual
- * address assignment. Must be multiple of size alignments received as
- * 'amdgpu_buffer_size_alignments'.
- * If 0 use the default one.
- * \param va_base_required - \c [in] Specified required va base address.
- * If 0 then library choose available one.
- * If !0 value will be passed and those value already "in use" then
- * corresponding error status will be returned.
- * \param va_base_allocated - \c [out] On return: Allocated VA base to be used
- * by client.
- * \param va_range_handle - \c [out] On return: Handle assigned to allocation
- * \param flags - \c [in] flags for special VA range
- *
- * \return 0 on success\n
- * >0 - AMD specific error code\n
- * <0 - Negative POSIX Error code
- *
- * \notes \n
- * It is client responsibility to correctly handle VA assignments and usage.
- * Neither kernel driver nor libdrm_amdpgu are able to prevent and
- * detect wrong va assignment.
- *
- * It is client responsibility to correctly handle multi-GPU cases and to pass
- * the corresponding arrays of all devices handles where corresponding VA will
- * be used.
- *
-*/
-int amdgpu_va_range_alloc(amdgpu_device_handle dev,
- enum amdgpu_gpu_va_range va_range_type,
- uint64_t size,
- uint64_t va_base_alignment,
- uint64_t va_base_required,
- uint64_t *va_base_allocated,
- amdgpu_va_handle *va_range_handle,
- uint64_t flags);
-
-/**
- * Free previously allocated virtual address range
- *
- *
- * \param va_range_handle - \c [in] Handle assigned to VA allocation
- *
- * \return 0 on success\n
- * >0 - AMD specific error code\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_va_range_free(amdgpu_va_handle va_range_handle);
-
-/**
-* Query virtual address range
-*
-* UMD can query GPU VM range supported by each device
-* to initialize its own VAM accordingly.
-*
-* \param dev - [in] Device handle. See #amdgpu_device_initialize()
-* \param type - \c [in] Type of virtual address range
-* \param offset - \c [out] Start offset of virtual address range
-* \param size - \c [out] Size of virtual address range
-*
-* \return 0 on success\n
-* <0 - Negative POSIX Error code
-*
-*/
-
-int amdgpu_va_range_query(amdgpu_device_handle dev,
- enum amdgpu_gpu_va_range type,
- uint64_t *start,
- uint64_t *end);
-
-/**
- * VA mapping/unmapping for the buffer object
- *
- * \param bo - \c [in] BO handle
- * \param offset - \c [in] Start offset to map
- * \param size - \c [in] Size to map
- * \param addr - \c [in] Start virtual address.
- * \param flags - \c [in] Supported flags for mapping/unmapping
- * \param ops - \c [in] AMDGPU_VA_OP_MAP or AMDGPU_VA_OP_UNMAP
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-
-int amdgpu_bo_va_op(amdgpu_bo_handle bo,
- uint64_t offset,
- uint64_t size,
- uint64_t addr,
- uint64_t flags,
- uint32_t ops);
-
-/**
- * VA mapping/unmapping for a buffer object or PRT region.
- *
- * This is not a simple drop-in extension for amdgpu_bo_va_op; instead, all
- * parameters are treated "raw", i.e. size is not automatically aligned, and
- * all flags must be specified explicitly.
- *
- * \param dev - \c [in] device handle
- * \param bo - \c [in] BO handle (may be NULL)
- * \param offset - \c [in] Start offset to map
- * \param size - \c [in] Size to map
- * \param addr - \c [in] Start virtual address.
- * \param flags - \c [in] Supported flags for mapping/unmapping
- * \param ops - \c [in] AMDGPU_VA_OP_MAP or AMDGPU_VA_OP_UNMAP
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-
-int amdgpu_bo_va_op_raw(amdgpu_device_handle dev,
- amdgpu_bo_handle bo,
- uint64_t offset,
- uint64_t size,
- uint64_t addr,
- uint64_t flags,
- uint32_t ops);
-
-/**
- * create semaphore
- *
- * \param sem - \c [out] semaphore handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_create_semaphore(amdgpu_semaphore_handle *sem);
-
-/**
- * signal semaphore
- *
- * \param context - \c [in] GPU Context
- * \param ip_type - \c [in] Hardware IP block type = AMDGPU_HW_IP_*
- * \param ip_instance - \c [in] Index of the IP block of the same type
- * \param ring - \c [in] Specify ring index of the IP
- * \param sem - \c [in] semaphore handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_signal_semaphore(amdgpu_context_handle ctx,
- uint32_t ip_type,
- uint32_t ip_instance,
- uint32_t ring,
- amdgpu_semaphore_handle sem);
-
-/**
- * wait semaphore
- *
- * \param context - \c [in] GPU Context
- * \param ip_type - \c [in] Hardware IP block type = AMDGPU_HW_IP_*
- * \param ip_instance - \c [in] Index of the IP block of the same type
- * \param ring - \c [in] Specify ring index of the IP
- * \param sem - \c [in] semaphore handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_wait_semaphore(amdgpu_context_handle ctx,
- uint32_t ip_type,
- uint32_t ip_instance,
- uint32_t ring,
- amdgpu_semaphore_handle sem);
-
-/**
- * destroy semaphore
- *
- * \param sem - \c [in] semaphore handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_destroy_semaphore(amdgpu_semaphore_handle sem);
-
-/**
- * Get the ASIC marketing name
- *
- * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
- *
- * \return the constant string of the marketing name
- * "NULL" means the ASIC is not found
-*/
-const char *amdgpu_get_marketing_name(amdgpu_device_handle dev);
-
-/**
- * Create kernel sync object
- *
- * \param dev - \c [in] device handle
- * \param flags - \c [in] flags that affect creation
- * \param syncobj - \c [out] sync object handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_create_syncobj2(amdgpu_device_handle dev,
- uint32_t flags,
- uint32_t *syncobj);
-
-/**
- * Create kernel sync object
- *
- * \param dev - \c [in] device handle
- * \param syncobj - \c [out] sync object handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_create_syncobj(amdgpu_device_handle dev,
- uint32_t *syncobj);
-/**
- * Destroy kernel sync object
- *
- * \param dev - \c [in] device handle
- * \param syncobj - \c [in] sync object handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_destroy_syncobj(amdgpu_device_handle dev,
- uint32_t syncobj);
-
-/**
- * Reset kernel sync objects to unsignalled state.
- *
- * \param dev - \c [in] device handle
- * \param syncobjs - \c [in] array of sync object handles
- * \param syncobj_count - \c [in] number of handles in syncobjs
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_syncobj_reset(amdgpu_device_handle dev,
- const uint32_t *syncobjs, uint32_t syncobj_count);
-
-/**
- * Signal kernel sync objects.
- *
- * \param dev - \c [in] device handle
- * \param syncobjs - \c [in] array of sync object handles
- * \param syncobj_count - \c [in] number of handles in syncobjs
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_syncobj_signal(amdgpu_device_handle dev,
- const uint32_t *syncobjs, uint32_t syncobj_count);
-
-/**
- * Signal kernel timeline sync objects.
- *
- * \param dev - \c [in] device handle
- * \param syncobjs - \c [in] array of sync object handles
- * \param points - \c [in] array of timeline points
- * \param syncobj_count - \c [in] number of handles in syncobjs
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_syncobj_timeline_signal(amdgpu_device_handle dev,
- const uint32_t *syncobjs,
- uint64_t *points,
- uint32_t syncobj_count);
-
-/**
- * Wait for one or all sync objects to signal.
- *
- * \param dev - \c [in] self-explanatory
- * \param handles - \c [in] array of sync object handles
- * \param num_handles - \c [in] self-explanatory
- * \param timeout_nsec - \c [in] self-explanatory
- * \param flags - \c [in] a bitmask of DRM_SYNCOBJ_WAIT_FLAGS_*
- * \param first_signaled - \c [in] self-explanatory
- *
- * \return 0 on success\n
- * -ETIME - Timeout
- * <0 - Negative POSIX Error code
- *
- */
-int amdgpu_cs_syncobj_wait(amdgpu_device_handle dev,
- uint32_t *handles, unsigned num_handles,
- int64_t timeout_nsec, unsigned flags,
- uint32_t *first_signaled);
-
-/**
- * Wait for one or all sync objects on their points to signal.
- *
- * \param dev - \c [in] self-explanatory
- * \param handles - \c [in] array of sync object handles
- * \param points - \c [in] array of sync points to wait
- * \param num_handles - \c [in] self-explanatory
- * \param timeout_nsec - \c [in] self-explanatory
- * \param flags - \c [in] a bitmask of DRM_SYNCOBJ_WAIT_FLAGS_*
- * \param first_signaled - \c [in] self-explanatory
- *
- * \return 0 on success\n
- * -ETIME - Timeout
- * <0 - Negative POSIX Error code
- *
- */
-int amdgpu_cs_syncobj_timeline_wait(amdgpu_device_handle dev,
- uint32_t *handles, uint64_t *points,
- unsigned num_handles,
- int64_t timeout_nsec, unsigned flags,
- uint32_t *first_signaled);
-/**
- * Query sync objects payloads.
- *
- * \param dev - \c [in] self-explanatory
- * \param handles - \c [in] array of sync object handles
- * \param points - \c [out] array of sync points returned, which presents
- * syncobj payload.
- * \param num_handles - \c [in] self-explanatory
- *
- * \return 0 on success\n
- * -ETIME - Timeout
- * <0 - Negative POSIX Error code
- *
- */
-int amdgpu_cs_syncobj_query(amdgpu_device_handle dev,
- uint32_t *handles, uint64_t *points,
- unsigned num_handles);
-/**
- * Query sync objects last signaled or submitted point.
- *
- * \param dev - \c [in] self-explanatory
- * \param handles - \c [in] array of sync object handles
- * \param points - \c [out] array of sync points returned, which presents
- * syncobj payload.
- * \param num_handles - \c [in] self-explanatory
- * \param flags - \c [in] a bitmask of DRM_SYNCOBJ_QUERY_FLAGS_*
- *
- * \return 0 on success\n
- * -ETIME - Timeout
- * <0 - Negative POSIX Error code
- *
- */
-int amdgpu_cs_syncobj_query2(amdgpu_device_handle dev,
- uint32_t *handles, uint64_t *points,
- unsigned num_handles, uint32_t flags);
-
-/**
- * Export kernel sync object to shareable fd.
- *
- * \param dev - \c [in] device handle
- * \param syncobj - \c [in] sync object handle
- * \param shared_fd - \c [out] shared file descriptor.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_export_syncobj(amdgpu_device_handle dev,
- uint32_t syncobj,
- int *shared_fd);
-/**
- * Import kernel sync object from shareable fd.
- *
- * \param dev - \c [in] device handle
- * \param shared_fd - \c [in] shared file descriptor.
- * \param syncobj - \c [out] sync object handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
-*/
-int amdgpu_cs_import_syncobj(amdgpu_device_handle dev,
- int shared_fd,
- uint32_t *syncobj);
-
-/**
- * Export kernel sync object to a sync_file.
- *
- * \param dev - \c [in] device handle
- * \param syncobj - \c [in] sync object handle
- * \param sync_file_fd - \c [out] sync_file file descriptor.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- */
-int amdgpu_cs_syncobj_export_sync_file(amdgpu_device_handle dev,
- uint32_t syncobj,
- int *sync_file_fd);
-
-/**
- * Import kernel sync object from a sync_file.
- *
- * \param dev - \c [in] device handle
- * \param syncobj - \c [in] sync object handle
- * \param sync_file_fd - \c [in] sync_file file descriptor.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- */
-int amdgpu_cs_syncobj_import_sync_file(amdgpu_device_handle dev,
- uint32_t syncobj,
- int sync_file_fd);
-/**
- * Export kernel timeline sync object to a sync_file.
- *
- * \param dev - \c [in] device handle
- * \param syncobj - \c [in] sync object handle
- * \param point - \c [in] timeline point
- * \param flags - \c [in] flags
- * \param sync_file_fd - \c [out] sync_file file descriptor.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- */
-int amdgpu_cs_syncobj_export_sync_file2(amdgpu_device_handle dev,
- uint32_t syncobj,
- uint64_t point,
- uint32_t flags,
- int *sync_file_fd);
-
-/**
- * Import kernel timeline sync object from a sync_file.
- *
- * \param dev - \c [in] device handle
- * \param syncobj - \c [in] sync object handle
- * \param point - \c [in] timeline point
- * \param sync_file_fd - \c [in] sync_file file descriptor.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- */
-int amdgpu_cs_syncobj_import_sync_file2(amdgpu_device_handle dev,
- uint32_t syncobj,
- uint64_t point,
- int sync_file_fd);
-
-/**
- * transfer between syncbojs.
- *
- * \param dev - \c [in] device handle
- * \param dst_handle - \c [in] sync object handle
- * \param dst_point - \c [in] timeline point, 0 presents dst is binary
- * \param src_handle - \c [in] sync object handle
- * \param src_point - \c [in] timeline point, 0 presents src is binary
- * \param flags - \c [in] flags
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- */
-int amdgpu_cs_syncobj_transfer(amdgpu_device_handle dev,
- uint32_t dst_handle,
- uint64_t dst_point,
- uint32_t src_handle,
- uint64_t src_point,
- uint32_t flags);
-
-/**
- * Export an amdgpu fence as a handle (syncobj or fd).
- *
- * \param what AMDGPU_FENCE_TO_HANDLE_GET_{SYNCOBJ, FD}
- * \param out_handle returned handle
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- */
-int amdgpu_cs_fence_to_handle(amdgpu_device_handle dev,
- struct amdgpu_cs_fence *fence,
- uint32_t what,
- uint32_t *out_handle);
-
-/**
- * Submit raw command submission to kernel
- *
- * \param dev - \c [in] device handle
- * \param context - \c [in] context handle for context id
- * \param bo_list_handle - \c [in] request bo list handle (0 for none)
- * \param num_chunks - \c [in] number of CS chunks to submit
- * \param chunks - \c [in] array of CS chunks
- * \param seq_no - \c [out] output sequence number for submission.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- */
-struct drm_amdgpu_cs_chunk;
-struct drm_amdgpu_cs_chunk_dep;
-struct drm_amdgpu_cs_chunk_data;
-
-int amdgpu_cs_submit_raw(amdgpu_device_handle dev,
- amdgpu_context_handle context,
- amdgpu_bo_list_handle bo_list_handle,
- int num_chunks,
- struct drm_amdgpu_cs_chunk *chunks,
- uint64_t *seq_no);
-
-/**
- * Submit raw command submission to the kernel with a raw BO list handle.
- *
- * \param dev - \c [in] device handle
- * \param context - \c [in] context handle for context id
- * \param bo_list_handle - \c [in] raw bo list handle (0 for none)
- * \param num_chunks - \c [in] number of CS chunks to submit
- * \param chunks - \c [in] array of CS chunks
- * \param seq_no - \c [out] output sequence number for submission.
- *
- * \return 0 on success\n
- * <0 - Negative POSIX Error code
- *
- * \sa amdgpu_bo_list_create_raw(), amdgpu_bo_list_destroy_raw()
- */
-int amdgpu_cs_submit_raw2(amdgpu_device_handle dev,
- amdgpu_context_handle context,
- uint32_t bo_list_handle,
- int num_chunks,
- struct drm_amdgpu_cs_chunk *chunks,
- uint64_t *seq_no);
-
-void amdgpu_cs_chunk_fence_to_dep(struct amdgpu_cs_fence *fence,
- struct drm_amdgpu_cs_chunk_dep *dep);
-void amdgpu_cs_chunk_fence_info_to_data(struct amdgpu_cs_fence_info *fence_info,
- struct drm_amdgpu_cs_chunk_data *data);
-
-/**
- * Reserve VMID
- * \param context - \c [in] GPU Context
- * \param flags - \c [in] TBD
- *
- * \return 0 on success otherwise POSIX Error code
-*/
-int amdgpu_vm_reserve_vmid(amdgpu_device_handle dev, uint32_t flags);
-
-/**
- * Free reserved VMID
- * \param context - \c [in] GPU Context
- * \param flags - \c [in] TBD
- *
- * \return 0 on success otherwise POSIX Error code
-*/
-int amdgpu_vm_unreserve_vmid(amdgpu_device_handle dev, uint32_t flags);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* #ifdef _AMDGPU_H_ */
diff --git a/libdrm/libdrm/amdgpu_drm.h b/libdrm/libdrm/amdgpu_drm.h
deleted file mode 100644
index c0a0ad1..0000000
--- a/libdrm/libdrm/amdgpu_drm.h
+++ /dev/null
@@ -1,1161 +0,0 @@
-/* amdgpu_drm.h -- Public header for the amdgpu driver -*- linux-c -*-
- *
- * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
- * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
- * Copyright 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- * Kevin E. Martin <martin@valinux.com>
- * Gareth Hughes <gareth@valinux.com>
- * Keith Whitwell <keith@tungstengraphics.com>
- */
-
-#ifndef __AMDGPU_DRM_H__
-#define __AMDGPU_DRM_H__
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define DRM_AMDGPU_GEM_CREATE 0x00
-#define DRM_AMDGPU_GEM_MMAP 0x01
-#define DRM_AMDGPU_CTX 0x02
-#define DRM_AMDGPU_BO_LIST 0x03
-#define DRM_AMDGPU_CS 0x04
-#define DRM_AMDGPU_INFO 0x05
-#define DRM_AMDGPU_GEM_METADATA 0x06
-#define DRM_AMDGPU_GEM_WAIT_IDLE 0x07
-#define DRM_AMDGPU_GEM_VA 0x08
-#define DRM_AMDGPU_WAIT_CS 0x09
-#define DRM_AMDGPU_GEM_OP 0x10
-#define DRM_AMDGPU_GEM_USERPTR 0x11
-#define DRM_AMDGPU_WAIT_FENCES 0x12
-#define DRM_AMDGPU_VM 0x13
-#define DRM_AMDGPU_FENCE_TO_HANDLE 0x14
-#define DRM_AMDGPU_SCHED 0x15
-
-#define DRM_IOCTL_AMDGPU_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_CREATE, union drm_amdgpu_gem_create)
-#define DRM_IOCTL_AMDGPU_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_MMAP, union drm_amdgpu_gem_mmap)
-#define DRM_IOCTL_AMDGPU_CTX DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_CTX, union drm_amdgpu_ctx)
-#define DRM_IOCTL_AMDGPU_BO_LIST DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_BO_LIST, union drm_amdgpu_bo_list)
-#define DRM_IOCTL_AMDGPU_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_CS, union drm_amdgpu_cs)
-#define DRM_IOCTL_AMDGPU_INFO DRM_IOW(DRM_COMMAND_BASE + DRM_AMDGPU_INFO, struct drm_amdgpu_info)
-#define DRM_IOCTL_AMDGPU_GEM_METADATA DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_METADATA, struct drm_amdgpu_gem_metadata)
-#define DRM_IOCTL_AMDGPU_GEM_WAIT_IDLE DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_WAIT_IDLE, union drm_amdgpu_gem_wait_idle)
-#define DRM_IOCTL_AMDGPU_GEM_VA DRM_IOW(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_VA, struct drm_amdgpu_gem_va)
-#define DRM_IOCTL_AMDGPU_WAIT_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_WAIT_CS, union drm_amdgpu_wait_cs)
-#define DRM_IOCTL_AMDGPU_GEM_OP DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_OP, struct drm_amdgpu_gem_op)
-#define DRM_IOCTL_AMDGPU_GEM_USERPTR DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_USERPTR, struct drm_amdgpu_gem_userptr)
-#define DRM_IOCTL_AMDGPU_WAIT_FENCES DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_WAIT_FENCES, union drm_amdgpu_wait_fences)
-#define DRM_IOCTL_AMDGPU_VM DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_VM, union drm_amdgpu_vm)
-#define DRM_IOCTL_AMDGPU_FENCE_TO_HANDLE DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_FENCE_TO_HANDLE, union drm_amdgpu_fence_to_handle)
-#define DRM_IOCTL_AMDGPU_SCHED DRM_IOW(DRM_COMMAND_BASE + DRM_AMDGPU_SCHED, union drm_amdgpu_sched)
-
-/**
- * DOC: memory domains
- *
- * %AMDGPU_GEM_DOMAIN_CPU System memory that is not GPU accessible.
- * Memory in this pool could be swapped out to disk if there is pressure.
- *
- * %AMDGPU_GEM_DOMAIN_GTT GPU accessible system memory, mapped into the
- * GPU's virtual address space via gart. Gart memory linearizes non-contiguous
- * pages of system memory, allows GPU access system memory in a linearized
- * fashion.
- *
- * %AMDGPU_GEM_DOMAIN_VRAM Local video memory. For APUs, it is memory
- * carved out by the BIOS.
- *
- * %AMDGPU_GEM_DOMAIN_GDS Global on-chip data storage used to share data
- * across shader threads.
- *
- * %AMDGPU_GEM_DOMAIN_GWS Global wave sync, used to synchronize the
- * execution of all the waves on a device.
- *
- * %AMDGPU_GEM_DOMAIN_OA Ordered append, used by 3D or Compute engines
- * for appending data.
- */
-#define AMDGPU_GEM_DOMAIN_CPU 0x1
-#define AMDGPU_GEM_DOMAIN_GTT 0x2
-#define AMDGPU_GEM_DOMAIN_VRAM 0x4
-#define AMDGPU_GEM_DOMAIN_GDS 0x8
-#define AMDGPU_GEM_DOMAIN_GWS 0x10
-#define AMDGPU_GEM_DOMAIN_OA 0x20
-#define AMDGPU_GEM_DOMAIN_MASK (AMDGPU_GEM_DOMAIN_CPU | \
- AMDGPU_GEM_DOMAIN_GTT | \
- AMDGPU_GEM_DOMAIN_VRAM | \
- AMDGPU_GEM_DOMAIN_GDS | \
- AMDGPU_GEM_DOMAIN_GWS | \
- AMDGPU_GEM_DOMAIN_OA)
-
-/* Flag that CPU access will be required for the case of VRAM domain */
-#define AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED (1 << 0)
-/* Flag that CPU access will not work, this VRAM domain is invisible */
-#define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1)
-/* Flag that USWC attributes should be used for GTT */
-#define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2)
-/* Flag that the memory should be in VRAM and cleared */
-#define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3)
-/* Flag that allocating the BO should use linear VRAM */
-#define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5)
-/* Flag that BO is always valid in this VM */
-#define AMDGPU_GEM_CREATE_VM_ALWAYS_VALID (1 << 6)
-/* Flag that BO sharing will be explicitly synchronized */
-#define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7)
-/* Flag that indicates allocating MQD gart on GFX9, where the mtype
- * for the second page onward should be set to NC. It should never
- * be used by user space applications.
- */
-#define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8)
-/* Flag that BO may contain sensitive data that must be wiped before
- * releasing the memory
- */
-#define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE (1 << 9)
-/* Flag that BO will be encrypted and that the TMZ bit should be
- * set in the PTEs when mapping this buffer via GPUVM or
- * accessing it with various hw blocks
- */
-#define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10)
-/* Flag that BO will be used only in preemptible context, which does
- * not require GTT memory accounting
- */
-#define AMDGPU_GEM_CREATE_PREEMPTIBLE (1 << 11)
-
-struct drm_amdgpu_gem_create_in {
- /** the requested memory size */
- __u64 bo_size;
- /** physical start_addr alignment in bytes for some HW requirements */
- __u64 alignment;
- /** the requested memory domains */
- __u64 domains;
- /** allocation flags */
- __u64 domain_flags;
-};
-
-struct drm_amdgpu_gem_create_out {
- /** returned GEM object handle */
- __u32 handle;
- __u32 _pad;
-};
-
-union drm_amdgpu_gem_create {
- struct drm_amdgpu_gem_create_in in;
- struct drm_amdgpu_gem_create_out out;
-};
-
-/** Opcode to create new residency list. */
-#define AMDGPU_BO_LIST_OP_CREATE 0
-/** Opcode to destroy previously created residency list */
-#define AMDGPU_BO_LIST_OP_DESTROY 1
-/** Opcode to update resource information in the list */
-#define AMDGPU_BO_LIST_OP_UPDATE 2
-
-struct drm_amdgpu_bo_list_in {
- /** Type of operation */
- __u32 operation;
- /** Handle of list or 0 if we want to create one */
- __u32 list_handle;
- /** Number of BOs in list */
- __u32 bo_number;
- /** Size of each element describing BO */
- __u32 bo_info_size;
- /** Pointer to array describing BOs */
- __u64 bo_info_ptr;
-};
-
-struct drm_amdgpu_bo_list_entry {
- /** Handle of BO */
- __u32 bo_handle;
- /** New (if specified) BO priority to be used during migration */
- __u32 bo_priority;
-};
-
-struct drm_amdgpu_bo_list_out {
- /** Handle of resource list */
- __u32 list_handle;
- __u32 _pad;
-};
-
-union drm_amdgpu_bo_list {
- struct drm_amdgpu_bo_list_in in;
- struct drm_amdgpu_bo_list_out out;
-};
-
-/* context related */
-#define AMDGPU_CTX_OP_ALLOC_CTX 1
-#define AMDGPU_CTX_OP_FREE_CTX 2
-#define AMDGPU_CTX_OP_QUERY_STATE 3
-#define AMDGPU_CTX_OP_QUERY_STATE2 4
-#define AMDGPU_CTX_OP_GET_STABLE_PSTATE 5
-#define AMDGPU_CTX_OP_SET_STABLE_PSTATE 6
-
-/* GPU reset status */
-#define AMDGPU_CTX_NO_RESET 0
-/* this the context caused it */
-#define AMDGPU_CTX_GUILTY_RESET 1
-/* some other context caused it */
-#define AMDGPU_CTX_INNOCENT_RESET 2
-/* unknown cause */
-#define AMDGPU_CTX_UNKNOWN_RESET 3
-
-/* indicate gpu reset occured after ctx created */
-#define AMDGPU_CTX_QUERY2_FLAGS_RESET (1<<0)
-/* indicate vram lost occured after ctx created */
-#define AMDGPU_CTX_QUERY2_FLAGS_VRAMLOST (1<<1)
-/* indicate some job from this context once cause gpu hang */
-#define AMDGPU_CTX_QUERY2_FLAGS_GUILTY (1<<2)
-/* indicate some errors are detected by RAS */
-#define AMDGPU_CTX_QUERY2_FLAGS_RAS_CE (1<<3)
-#define AMDGPU_CTX_QUERY2_FLAGS_RAS_UE (1<<4)
-
-/* Context priority level */
-#define AMDGPU_CTX_PRIORITY_UNSET -2048
-#define AMDGPU_CTX_PRIORITY_VERY_LOW -1023
-#define AMDGPU_CTX_PRIORITY_LOW -512
-#define AMDGPU_CTX_PRIORITY_NORMAL 0
-/*
- * When used in struct drm_amdgpu_ctx_in, a priority above NORMAL requires
- * CAP_SYS_NICE or DRM_MASTER
-*/
-#define AMDGPU_CTX_PRIORITY_HIGH 512
-#define AMDGPU_CTX_PRIORITY_VERY_HIGH 1023
-
-/* select a stable profiling pstate for perfmon tools */
-#define AMDGPU_CTX_STABLE_PSTATE_FLAGS_MASK 0xf
-#define AMDGPU_CTX_STABLE_PSTATE_NONE 0
-#define AMDGPU_CTX_STABLE_PSTATE_STANDARD 1
-#define AMDGPU_CTX_STABLE_PSTATE_MIN_SCLK 2
-#define AMDGPU_CTX_STABLE_PSTATE_MIN_MCLK 3
-#define AMDGPU_CTX_STABLE_PSTATE_PEAK 4
-
-struct drm_amdgpu_ctx_in {
- /** AMDGPU_CTX_OP_* */
- __u32 op;
- /** Flags */
- __u32 flags;
- __u32 ctx_id;
- /** AMDGPU_CTX_PRIORITY_* */
- __s32 priority;
-};
-
-union drm_amdgpu_ctx_out {
- struct {
- __u32 ctx_id;
- __u32 _pad;
- } alloc;
-
- struct {
- /** For future use, no flags defined so far */
- __u64 flags;
- /** Number of resets caused by this context so far. */
- __u32 hangs;
- /** Reset status since the last call of the ioctl. */
- __u32 reset_status;
- } state;
-
- struct {
- __u32 flags;
- __u32 _pad;
- } pstate;
-};
-
-union drm_amdgpu_ctx {
- struct drm_amdgpu_ctx_in in;
- union drm_amdgpu_ctx_out out;
-};
-
-/* vm ioctl */
-#define AMDGPU_VM_OP_RESERVE_VMID 1
-#define AMDGPU_VM_OP_UNRESERVE_VMID 2
-
-struct drm_amdgpu_vm_in {
- /** AMDGPU_VM_OP_* */
- __u32 op;
- __u32 flags;
-};
-
-struct drm_amdgpu_vm_out {
- /** For future use, no flags defined so far */
- __u64 flags;
-};
-
-union drm_amdgpu_vm {
- struct drm_amdgpu_vm_in in;
- struct drm_amdgpu_vm_out out;
-};
-
-/* sched ioctl */
-#define AMDGPU_SCHED_OP_PROCESS_PRIORITY_OVERRIDE 1
-#define AMDGPU_SCHED_OP_CONTEXT_PRIORITY_OVERRIDE 2
-
-struct drm_amdgpu_sched_in {
- /* AMDGPU_SCHED_OP_* */
- __u32 op;
- __u32 fd;
- /** AMDGPU_CTX_PRIORITY_* */
- __s32 priority;
- __u32 ctx_id;
-};
-
-union drm_amdgpu_sched {
- struct drm_amdgpu_sched_in in;
-};
-
-/*
- * This is not a reliable API and you should expect it to fail for any
- * number of reasons and have fallback path that do not use userptr to
- * perform any operation.
- */
-#define AMDGPU_GEM_USERPTR_READONLY (1 << 0)
-#define AMDGPU_GEM_USERPTR_ANONONLY (1 << 1)
-#define AMDGPU_GEM_USERPTR_VALIDATE (1 << 2)
-#define AMDGPU_GEM_USERPTR_REGISTER (1 << 3)
-
-struct drm_amdgpu_gem_userptr {
- __u64 addr;
- __u64 size;
- /* AMDGPU_GEM_USERPTR_* */
- __u32 flags;
- /* Resulting GEM handle */
- __u32 handle;
-};
-
-/* SI-CI-VI: */
-/* same meaning as the GB_TILE_MODE and GL_MACRO_TILE_MODE fields */
-#define AMDGPU_TILING_ARRAY_MODE_SHIFT 0
-#define AMDGPU_TILING_ARRAY_MODE_MASK 0xf
-#define AMDGPU_TILING_PIPE_CONFIG_SHIFT 4
-#define AMDGPU_TILING_PIPE_CONFIG_MASK 0x1f
-#define AMDGPU_TILING_TILE_SPLIT_SHIFT 9
-#define AMDGPU_TILING_TILE_SPLIT_MASK 0x7
-#define AMDGPU_TILING_MICRO_TILE_MODE_SHIFT 12
-#define AMDGPU_TILING_MICRO_TILE_MODE_MASK 0x7
-#define AMDGPU_TILING_BANK_WIDTH_SHIFT 15
-#define AMDGPU_TILING_BANK_WIDTH_MASK 0x3
-#define AMDGPU_TILING_BANK_HEIGHT_SHIFT 17
-#define AMDGPU_TILING_BANK_HEIGHT_MASK 0x3
-#define AMDGPU_TILING_MACRO_TILE_ASPECT_SHIFT 19
-#define AMDGPU_TILING_MACRO_TILE_ASPECT_MASK 0x3
-#define AMDGPU_TILING_NUM_BANKS_SHIFT 21
-#define AMDGPU_TILING_NUM_BANKS_MASK 0x3
-
-/* GFX9 and later: */
-#define AMDGPU_TILING_SWIZZLE_MODE_SHIFT 0
-#define AMDGPU_TILING_SWIZZLE_MODE_MASK 0x1f
-#define AMDGPU_TILING_DCC_OFFSET_256B_SHIFT 5
-#define AMDGPU_TILING_DCC_OFFSET_256B_MASK 0xFFFFFF
-#define AMDGPU_TILING_DCC_PITCH_MAX_SHIFT 29
-#define AMDGPU_TILING_DCC_PITCH_MAX_MASK 0x3FFF
-#define AMDGPU_TILING_DCC_INDEPENDENT_64B_SHIFT 43
-#define AMDGPU_TILING_DCC_INDEPENDENT_64B_MASK 0x1
-#define AMDGPU_TILING_DCC_INDEPENDENT_128B_SHIFT 44
-#define AMDGPU_TILING_DCC_INDEPENDENT_128B_MASK 0x1
-#define AMDGPU_TILING_SCANOUT_SHIFT 63
-#define AMDGPU_TILING_SCANOUT_MASK 0x1
-
-/* Set/Get helpers for tiling flags. */
-#define AMDGPU_TILING_SET(field, value) \
- (((__u64)(value) & AMDGPU_TILING_##field##_MASK) << AMDGPU_TILING_##field##_SHIFT)
-#define AMDGPU_TILING_GET(value, field) \
- (((__u64)(value) >> AMDGPU_TILING_##field##_SHIFT) & AMDGPU_TILING_##field##_MASK)
-
-#define AMDGPU_GEM_METADATA_OP_SET_METADATA 1
-#define AMDGPU_GEM_METADATA_OP_GET_METADATA 2
-
-/** The same structure is shared for input/output */
-struct drm_amdgpu_gem_metadata {
- /** GEM Object handle */
- __u32 handle;
- /** Do we want get or set metadata */
- __u32 op;
- struct {
- /** For future use, no flags defined so far */
- __u64 flags;
- /** family specific tiling info */
- __u64 tiling_info;
- __u32 data_size_bytes;
- __u32 data[64];
- } data;
-};
-
-struct drm_amdgpu_gem_mmap_in {
- /** the GEM object handle */
- __u32 handle;
- __u32 _pad;
-};
-
-struct drm_amdgpu_gem_mmap_out {
- /** mmap offset from the vma offset manager */
- __u64 addr_ptr;
-};
-
-union drm_amdgpu_gem_mmap {
- struct drm_amdgpu_gem_mmap_in in;
- struct drm_amdgpu_gem_mmap_out out;
-};
-
-struct drm_amdgpu_gem_wait_idle_in {
- /** GEM object handle */
- __u32 handle;
- /** For future use, no flags defined so far */
- __u32 flags;
- /** Absolute timeout to wait */
- __u64 timeout;
-};
-
-struct drm_amdgpu_gem_wait_idle_out {
- /** BO status: 0 - BO is idle, 1 - BO is busy */
- __u32 status;
- /** Returned current memory domain */
- __u32 domain;
-};
-
-union drm_amdgpu_gem_wait_idle {
- struct drm_amdgpu_gem_wait_idle_in in;
- struct drm_amdgpu_gem_wait_idle_out out;
-};
-
-struct drm_amdgpu_wait_cs_in {
- /* Command submission handle
- * handle equals 0 means none to wait for
- * handle equals ~0ull means wait for the latest sequence number
- */
- __u64 handle;
- /** Absolute timeout to wait */
- __u64 timeout;
- __u32 ip_type;
- __u32 ip_instance;
- __u32 ring;
- __u32 ctx_id;
-};
-
-struct drm_amdgpu_wait_cs_out {
- /** CS status: 0 - CS completed, 1 - CS still busy */
- __u64 status;
-};
-
-union drm_amdgpu_wait_cs {
- struct drm_amdgpu_wait_cs_in in;
- struct drm_amdgpu_wait_cs_out out;
-};
-
-struct drm_amdgpu_fence {
- __u32 ctx_id;
- __u32 ip_type;
- __u32 ip_instance;
- __u32 ring;
- __u64 seq_no;
-};
-
-struct drm_amdgpu_wait_fences_in {
- /** This points to uint64_t * which points to fences */
- __u64 fences;
- __u32 fence_count;
- __u32 wait_all;
- __u64 timeout_ns;
-};
-
-struct drm_amdgpu_wait_fences_out {
- __u32 status;
- __u32 first_signaled;
-};
-
-union drm_amdgpu_wait_fences {
- struct drm_amdgpu_wait_fences_in in;
- struct drm_amdgpu_wait_fences_out out;
-};
-
-#define AMDGPU_GEM_OP_GET_GEM_CREATE_INFO 0
-#define AMDGPU_GEM_OP_SET_PLACEMENT 1
-
-/* Sets or returns a value associated with a buffer. */
-struct drm_amdgpu_gem_op {
- /** GEM object handle */
- __u32 handle;
- /** AMDGPU_GEM_OP_* */
- __u32 op;
- /** Input or return value */
- __u64 value;
-};
-
-#define AMDGPU_VA_OP_MAP 1
-#define AMDGPU_VA_OP_UNMAP 2
-#define AMDGPU_VA_OP_CLEAR 3
-#define AMDGPU_VA_OP_REPLACE 4
-
-/* Delay the page table update till the next CS */
-#define AMDGPU_VM_DELAY_UPDATE (1 << 0)
-
-/* Mapping flags */
-/* readable mapping */
-#define AMDGPU_VM_PAGE_READABLE (1 << 1)
-/* writable mapping */
-#define AMDGPU_VM_PAGE_WRITEABLE (1 << 2)
-/* executable mapping, new for VI */
-#define AMDGPU_VM_PAGE_EXECUTABLE (1 << 3)
-/* partially resident texture */
-#define AMDGPU_VM_PAGE_PRT (1 << 4)
-/* MTYPE flags use bit 5 to 8 */
-#define AMDGPU_VM_MTYPE_MASK (0xf << 5)
-/* Default MTYPE. Pre-AI must use this. Recommended for newer ASICs. */
-#define AMDGPU_VM_MTYPE_DEFAULT (0 << 5)
-/* Use Non Coherent MTYPE instead of default MTYPE */
-#define AMDGPU_VM_MTYPE_NC (1 << 5)
-/* Use Write Combine MTYPE instead of default MTYPE */
-#define AMDGPU_VM_MTYPE_WC (2 << 5)
-/* Use Cache Coherent MTYPE instead of default MTYPE */
-#define AMDGPU_VM_MTYPE_CC (3 << 5)
-/* Use UnCached MTYPE instead of default MTYPE */
-#define AMDGPU_VM_MTYPE_UC (4 << 5)
-/* Use Read Write MTYPE instead of default MTYPE */
-#define AMDGPU_VM_MTYPE_RW (5 << 5)
-
-struct drm_amdgpu_gem_va {
- /** GEM object handle */
- __u32 handle;
- __u32 _pad;
- /** AMDGPU_VA_OP_* */
- __u32 operation;
- /** AMDGPU_VM_PAGE_* */
- __u32 flags;
- /** va address to assign . Must be correctly aligned.*/
- __u64 va_address;
- /** Specify offset inside of BO to assign. Must be correctly aligned.*/
- __u64 offset_in_bo;
- /** Specify mapping size. Must be correctly aligned. */
- __u64 map_size;
-};
-
-#define AMDGPU_HW_IP_GFX 0
-#define AMDGPU_HW_IP_COMPUTE 1
-#define AMDGPU_HW_IP_DMA 2
-#define AMDGPU_HW_IP_UVD 3
-#define AMDGPU_HW_IP_VCE 4
-#define AMDGPU_HW_IP_UVD_ENC 5
-#define AMDGPU_HW_IP_VCN_DEC 6
-/*
- * From VCN4, AMDGPU_HW_IP_VCN_ENC is re-used to support
- * both encoding and decoding jobs.
- */
-#define AMDGPU_HW_IP_VCN_ENC 7
-#define AMDGPU_HW_IP_VCN_JPEG 8
-#define AMDGPU_HW_IP_NUM 9
-
-#define AMDGPU_HW_IP_INSTANCE_MAX_COUNT 1
-
-#define AMDGPU_CHUNK_ID_IB 0x01
-#define AMDGPU_CHUNK_ID_FENCE 0x02
-#define AMDGPU_CHUNK_ID_DEPENDENCIES 0x03
-#define AMDGPU_CHUNK_ID_SYNCOBJ_IN 0x04
-#define AMDGPU_CHUNK_ID_SYNCOBJ_OUT 0x05
-#define AMDGPU_CHUNK_ID_BO_HANDLES 0x06
-#define AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES 0x07
-#define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT 0x08
-#define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_SIGNAL 0x09
-
-struct drm_amdgpu_cs_chunk {
- __u32 chunk_id;
- __u32 length_dw;
- __u64 chunk_data;
-};
-
-struct drm_amdgpu_cs_in {
- /** Rendering context id */
- __u32 ctx_id;
- /** Handle of resource list associated with CS */
- __u32 bo_list_handle;
- __u32 num_chunks;
- __u32 flags;
- /** this points to __u64 * which point to cs chunks */
- __u64 chunks;
-};
-
-struct drm_amdgpu_cs_out {
- __u64 handle;
-};
-
-union drm_amdgpu_cs {
- struct drm_amdgpu_cs_in in;
- struct drm_amdgpu_cs_out out;
-};
-
-/* Specify flags to be used for IB */
-
-/* This IB should be submitted to CE */
-#define AMDGPU_IB_FLAG_CE (1<<0)
-
-/* Preamble flag, which means the IB could be dropped if no context switch */
-#define AMDGPU_IB_FLAG_PREAMBLE (1<<1)
-
-/* Preempt flag, IB should set Pre_enb bit if PREEMPT flag detected */
-#define AMDGPU_IB_FLAG_PREEMPT (1<<2)
-
-/* The IB fence should do the L2 writeback but not invalidate any shader
- * caches (L2/vL1/sL1/I$). */
-#define AMDGPU_IB_FLAG_TC_WB_NOT_INVALIDATE (1 << 3)
-
-/* Set GDS_COMPUTE_MAX_WAVE_ID = DEFAULT before PACKET3_INDIRECT_BUFFER.
- * This will reset wave ID counters for the IB.
- */
-#define AMDGPU_IB_FLAG_RESET_GDS_MAX_WAVE_ID (1 << 4)
-
-/* Flag the IB as secure (TMZ)
- */
-#define AMDGPU_IB_FLAGS_SECURE (1 << 5)
-
-/* Tell KMD to flush and invalidate caches
- */
-#define AMDGPU_IB_FLAG_EMIT_MEM_SYNC (1 << 6)
-
-struct drm_amdgpu_cs_chunk_ib {
- __u32 _pad;
- /** AMDGPU_IB_FLAG_* */
- __u32 flags;
- /** Virtual address to begin IB execution */
- __u64 va_start;
- /** Size of submission */
- __u32 ib_bytes;
- /** HW IP to submit to */
- __u32 ip_type;
- /** HW IP index of the same type to submit to */
- __u32 ip_instance;
- /** Ring index to submit to */
- __u32 ring;
-};
-
-struct drm_amdgpu_cs_chunk_dep {
- __u32 ip_type;
- __u32 ip_instance;
- __u32 ring;
- __u32 ctx_id;
- __u64 handle;
-};
-
-struct drm_amdgpu_cs_chunk_fence {
- __u32 handle;
- __u32 offset;
-};
-
-struct drm_amdgpu_cs_chunk_sem {
- __u32 handle;
-};
-
-struct drm_amdgpu_cs_chunk_syncobj {
- __u32 handle;
- __u32 flags;
- __u64 point;
-};
-
-#define AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ 0
-#define AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ_FD 1
-#define AMDGPU_FENCE_TO_HANDLE_GET_SYNC_FILE_FD 2
-
-union drm_amdgpu_fence_to_handle {
- struct {
- struct drm_amdgpu_fence fence;
- __u32 what;
- __u32 pad;
- } in;
- struct {
- __u32 handle;
- } out;
-};
-
-struct drm_amdgpu_cs_chunk_data {
- union {
- struct drm_amdgpu_cs_chunk_ib ib_data;
- struct drm_amdgpu_cs_chunk_fence fence_data;
- };
-};
-
-/*
- * Query h/w info: Flag that this is integrated (a.h.a. fusion) GPU
- *
- */
-#define AMDGPU_IDS_FLAGS_FUSION 0x1
-#define AMDGPU_IDS_FLAGS_PREEMPTION 0x2
-#define AMDGPU_IDS_FLAGS_TMZ 0x4
-
-/* indicate if acceleration can be working */
-#define AMDGPU_INFO_ACCEL_WORKING 0x00
-/* get the crtc_id from the mode object id? */
-#define AMDGPU_INFO_CRTC_FROM_ID 0x01
-/* query hw IP info */
-#define AMDGPU_INFO_HW_IP_INFO 0x02
-/* query hw IP instance count for the specified type */
-#define AMDGPU_INFO_HW_IP_COUNT 0x03
-/* timestamp for GL_ARB_timer_query */
-#define AMDGPU_INFO_TIMESTAMP 0x05
-/* Query the firmware version */
-#define AMDGPU_INFO_FW_VERSION 0x0e
- /* Subquery id: Query VCE firmware version */
- #define AMDGPU_INFO_FW_VCE 0x1
- /* Subquery id: Query UVD firmware version */
- #define AMDGPU_INFO_FW_UVD 0x2
- /* Subquery id: Query GMC firmware version */
- #define AMDGPU_INFO_FW_GMC 0x03
- /* Subquery id: Query GFX ME firmware version */
- #define AMDGPU_INFO_FW_GFX_ME 0x04
- /* Subquery id: Query GFX PFP firmware version */
- #define AMDGPU_INFO_FW_GFX_PFP 0x05
- /* Subquery id: Query GFX CE firmware version */
- #define AMDGPU_INFO_FW_GFX_CE 0x06
- /* Subquery id: Query GFX RLC firmware version */
- #define AMDGPU_INFO_FW_GFX_RLC 0x07
- /* Subquery id: Query GFX MEC firmware version */
- #define AMDGPU_INFO_FW_GFX_MEC 0x08
- /* Subquery id: Query SMC firmware version */
- #define AMDGPU_INFO_FW_SMC 0x0a
- /* Subquery id: Query SDMA firmware version */
- #define AMDGPU_INFO_FW_SDMA 0x0b
- /* Subquery id: Query PSP SOS firmware version */
- #define AMDGPU_INFO_FW_SOS 0x0c
- /* Subquery id: Query PSP ASD firmware version */
- #define AMDGPU_INFO_FW_ASD 0x0d
- /* Subquery id: Query VCN firmware version */
- #define AMDGPU_INFO_FW_VCN 0x0e
- /* Subquery id: Query GFX RLC SRLC firmware version */
- #define AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_CNTL 0x0f
- /* Subquery id: Query GFX RLC SRLG firmware version */
- #define AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_GPM_MEM 0x10
- /* Subquery id: Query GFX RLC SRLS firmware version */
- #define AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_SRM_MEM 0x11
- /* Subquery id: Query DMCU firmware version */
- #define AMDGPU_INFO_FW_DMCU 0x12
- #define AMDGPU_INFO_FW_TA 0x13
- /* Subquery id: Query DMCUB firmware version */
- #define AMDGPU_INFO_FW_DMCUB 0x14
- /* Subquery id: Query TOC firmware version */
- #define AMDGPU_INFO_FW_TOC 0x15
-
-/* number of bytes moved for TTM migration */
-#define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f
-/* the used VRAM size */
-#define AMDGPU_INFO_VRAM_USAGE 0x10
-/* the used GTT size */
-#define AMDGPU_INFO_GTT_USAGE 0x11
-/* Information about GDS, etc. resource configuration */
-#define AMDGPU_INFO_GDS_CONFIG 0x13
-/* Query information about VRAM and GTT domains */
-#define AMDGPU_INFO_VRAM_GTT 0x14
-/* Query information about register in MMR address space*/
-#define AMDGPU_INFO_READ_MMR_REG 0x15
-/* Query information about device: rev id, family, etc. */
-#define AMDGPU_INFO_DEV_INFO 0x16
-/* visible vram usage */
-#define AMDGPU_INFO_VIS_VRAM_USAGE 0x17
-/* number of TTM buffer evictions */
-#define AMDGPU_INFO_NUM_EVICTIONS 0x18
-/* Query memory about VRAM and GTT domains */
-#define AMDGPU_INFO_MEMORY 0x19
-/* Query vce clock table */
-#define AMDGPU_INFO_VCE_CLOCK_TABLE 0x1A
-/* Query vbios related information */
-#define AMDGPU_INFO_VBIOS 0x1B
- /* Subquery id: Query vbios size */
- #define AMDGPU_INFO_VBIOS_SIZE 0x1
- /* Subquery id: Query vbios image */
- #define AMDGPU_INFO_VBIOS_IMAGE 0x2
- /* Subquery id: Query vbios info */
- #define AMDGPU_INFO_VBIOS_INFO 0x3
-/* Query UVD handles */
-#define AMDGPU_INFO_NUM_HANDLES 0x1C
-/* Query sensor related information */
-#define AMDGPU_INFO_SENSOR 0x1D
- /* Subquery id: Query GPU shader clock */
- #define AMDGPU_INFO_SENSOR_GFX_SCLK 0x1
- /* Subquery id: Query GPU memory clock */
- #define AMDGPU_INFO_SENSOR_GFX_MCLK 0x2
- /* Subquery id: Query GPU temperature */
- #define AMDGPU_INFO_SENSOR_GPU_TEMP 0x3
- /* Subquery id: Query GPU load */
- #define AMDGPU_INFO_SENSOR_GPU_LOAD 0x4
- /* Subquery id: Query average GPU power */
- #define AMDGPU_INFO_SENSOR_GPU_AVG_POWER 0x5
- /* Subquery id: Query northbridge voltage */
- #define AMDGPU_INFO_SENSOR_VDDNB 0x6
- /* Subquery id: Query graphics voltage */
- #define AMDGPU_INFO_SENSOR_VDDGFX 0x7
- /* Subquery id: Query GPU stable pstate shader clock */
- #define AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_SCLK 0x8
- /* Subquery id: Query GPU stable pstate memory clock */
- #define AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_MCLK 0x9
-/* Number of VRAM page faults on CPU access. */
-#define AMDGPU_INFO_NUM_VRAM_CPU_PAGE_FAULTS 0x1E
-#define AMDGPU_INFO_VRAM_LOST_COUNTER 0x1F
-/* query ras mask of enabled features*/
-#define AMDGPU_INFO_RAS_ENABLED_FEATURES 0x20
-/* RAS MASK: UMC (VRAM) */
-#define AMDGPU_INFO_RAS_ENABLED_UMC (1 << 0)
-/* RAS MASK: SDMA */
-#define AMDGPU_INFO_RAS_ENABLED_SDMA (1 << 1)
-/* RAS MASK: GFX */
-#define AMDGPU_INFO_RAS_ENABLED_GFX (1 << 2)
-/* RAS MASK: MMHUB */
-#define AMDGPU_INFO_RAS_ENABLED_MMHUB (1 << 3)
-/* RAS MASK: ATHUB */
-#define AMDGPU_INFO_RAS_ENABLED_ATHUB (1 << 4)
-/* RAS MASK: PCIE */
-#define AMDGPU_INFO_RAS_ENABLED_PCIE (1 << 5)
-/* RAS MASK: HDP */
-#define AMDGPU_INFO_RAS_ENABLED_HDP (1 << 6)
-/* RAS MASK: XGMI */
-#define AMDGPU_INFO_RAS_ENABLED_XGMI (1 << 7)
-/* RAS MASK: DF */
-#define AMDGPU_INFO_RAS_ENABLED_DF (1 << 8)
-/* RAS MASK: SMN */
-#define AMDGPU_INFO_RAS_ENABLED_SMN (1 << 9)
-/* RAS MASK: SEM */
-#define AMDGPU_INFO_RAS_ENABLED_SEM (1 << 10)
-/* RAS MASK: MP0 */
-#define AMDGPU_INFO_RAS_ENABLED_MP0 (1 << 11)
-/* RAS MASK: MP1 */
-#define AMDGPU_INFO_RAS_ENABLED_MP1 (1 << 12)
-/* RAS MASK: FUSE */
-#define AMDGPU_INFO_RAS_ENABLED_FUSE (1 << 13)
-/* query video encode/decode caps */
-#define AMDGPU_INFO_VIDEO_CAPS 0x21
- /* Subquery id: Decode */
- #define AMDGPU_INFO_VIDEO_CAPS_DECODE 0
- /* Subquery id: Encode */
- #define AMDGPU_INFO_VIDEO_CAPS_ENCODE 1
-
-#define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
-#define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
-#define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8
-#define AMDGPU_INFO_MMR_SH_INDEX_MASK 0xff
-
-struct drm_amdgpu_query_fw {
- /** AMDGPU_INFO_FW_* */
- __u32 fw_type;
- /**
- * Index of the IP if there are more IPs of
- * the same type.
- */
- __u32 ip_instance;
- /**
- * Index of the engine. Whether this is used depends
- * on the firmware type. (e.g. MEC, SDMA)
- */
- __u32 index;
- __u32 _pad;
-};
-
-/* Input structure for the INFO ioctl */
-struct drm_amdgpu_info {
- /* Where the return value will be stored */
- __u64 return_pointer;
- /* The size of the return value. Just like "size" in "snprintf",
- * it limits how many bytes the kernel can write. */
- __u32 return_size;
- /* The query request id. */
- __u32 query;
-
- union {
- struct {
- __u32 id;
- __u32 _pad;
- } mode_crtc;
-
- struct {
- /** AMDGPU_HW_IP_* */
- __u32 type;
- /**
- * Index of the IP if there are more IPs of the same
- * type. Ignored by AMDGPU_INFO_HW_IP_COUNT.
- */
- __u32 ip_instance;
- } query_hw_ip;
-
- struct {
- __u32 dword_offset;
- /** number of registers to read */
- __u32 count;
- __u32 instance;
- /** For future use, no flags defined so far */
- __u32 flags;
- } read_mmr_reg;
-
- struct drm_amdgpu_query_fw query_fw;
-
- struct {
- __u32 type;
- __u32 offset;
- } vbios_info;
-
- struct {
- __u32 type;
- } sensor_info;
-
- struct {
- __u32 type;
- } video_cap;
- };
-};
-
-struct drm_amdgpu_info_gds {
- /** GDS GFX partition size */
- __u32 gds_gfx_partition_size;
- /** GDS compute partition size */
- __u32 compute_partition_size;
- /** total GDS memory size */
- __u32 gds_total_size;
- /** GWS size per GFX partition */
- __u32 gws_per_gfx_partition;
- /** GSW size per compute partition */
- __u32 gws_per_compute_partition;
- /** OA size per GFX partition */
- __u32 oa_per_gfx_partition;
- /** OA size per compute partition */
- __u32 oa_per_compute_partition;
- __u32 _pad;
-};
-
-struct drm_amdgpu_info_vram_gtt {
- __u64 vram_size;
- __u64 vram_cpu_accessible_size;
- __u64 gtt_size;
-};
-
-struct drm_amdgpu_heap_info {
- /** max. physical memory */
- __u64 total_heap_size;
-
- /** Theoretical max. available memory in the given heap */
- __u64 usable_heap_size;
-
- /**
- * Number of bytes allocated in the heap. This includes all processes
- * and private allocations in the kernel. It changes when new buffers
- * are allocated, freed, and moved. It cannot be larger than
- * heap_size.
- */
- __u64 heap_usage;
-
- /**
- * Theoretical possible max. size of buffer which
- * could be allocated in the given heap
- */
- __u64 max_allocation;
-};
-
-struct drm_amdgpu_memory_info {
- struct drm_amdgpu_heap_info vram;
- struct drm_amdgpu_heap_info cpu_accessible_vram;
- struct drm_amdgpu_heap_info gtt;
-};
-
-struct drm_amdgpu_info_firmware {
- __u32 ver;
- __u32 feature;
-};
-
-struct drm_amdgpu_info_vbios {
- __u8 name[64];
- __u8 vbios_pn[64];
- __u32 version;
- __u32 pad;
- __u8 vbios_ver_str[32];
- __u8 date[32];
-};
-
-#define AMDGPU_VRAM_TYPE_UNKNOWN 0
-#define AMDGPU_VRAM_TYPE_GDDR1 1
-#define AMDGPU_VRAM_TYPE_DDR2 2
-#define AMDGPU_VRAM_TYPE_GDDR3 3
-#define AMDGPU_VRAM_TYPE_GDDR4 4
-#define AMDGPU_VRAM_TYPE_GDDR5 5
-#define AMDGPU_VRAM_TYPE_HBM 6
-#define AMDGPU_VRAM_TYPE_DDR3 7
-#define AMDGPU_VRAM_TYPE_DDR4 8
-#define AMDGPU_VRAM_TYPE_GDDR6 9
-#define AMDGPU_VRAM_TYPE_DDR5 10
-
-struct drm_amdgpu_info_device {
- /** PCI Device ID */
- __u32 device_id;
- /** Internal chip revision: A0, A1, etc.) */
- __u32 chip_rev;
- __u32 external_rev;
- /** Revision id in PCI Config space */
- __u32 pci_rev;
- __u32 family;
- __u32 num_shader_engines;
- __u32 num_shader_arrays_per_engine;
- /* in KHz */
- __u32 gpu_counter_freq;
- __u64 max_engine_clock;
- __u64 max_memory_clock;
- /* cu information */
- __u32 cu_active_number;
- /* NOTE: cu_ao_mask is INVALID, DON'T use it */
- __u32 cu_ao_mask;
- __u32 cu_bitmap[4][4];
- /** Render backend pipe mask. One render backend is CB+DB. */
- __u32 enabled_rb_pipes_mask;
- __u32 num_rb_pipes;
- __u32 num_hw_gfx_contexts;
- __u32 _pad;
- __u64 ids_flags;
- /** Starting virtual address for UMDs. */
- __u64 virtual_address_offset;
- /** The maximum virtual address */
- __u64 virtual_address_max;
- /** Required alignment of virtual addresses. */
- __u32 virtual_address_alignment;
- /** Page table entry - fragment size */
- __u32 pte_fragment_size;
- __u32 gart_page_size;
- /** constant engine ram size*/
- __u32 ce_ram_size;
- /** video memory type info*/
- __u32 vram_type;
- /** video memory bit width*/
- __u32 vram_bit_width;
- /* vce harvesting instance */
- __u32 vce_harvest_config;
- /* gfx double offchip LDS buffers */
- __u32 gc_double_offchip_lds_buf;
- /* NGG Primitive Buffer */
- __u64 prim_buf_gpu_addr;
- /* NGG Position Buffer */
- __u64 pos_buf_gpu_addr;
- /* NGG Control Sideband */
- __u64 cntl_sb_buf_gpu_addr;
- /* NGG Parameter Cache */
- __u64 param_buf_gpu_addr;
- __u32 prim_buf_size;
- __u32 pos_buf_size;
- __u32 cntl_sb_buf_size;
- __u32 param_buf_size;
- /* wavefront size*/
- __u32 wave_front_size;
- /* shader visible vgprs*/
- __u32 num_shader_visible_vgprs;
- /* CU per shader array*/
- __u32 num_cu_per_sh;
- /* number of tcc blocks*/
- __u32 num_tcc_blocks;
- /* gs vgt table depth*/
- __u32 gs_vgt_table_depth;
- /* gs primitive buffer depth*/
- __u32 gs_prim_buffer_depth;
- /* max gs wavefront per vgt*/
- __u32 max_gs_waves_per_vgt;
- __u32 _pad1;
- /* always on cu bitmap */
- __u32 cu_ao_bitmap[4][4];
- /** Starting high virtual address for UMDs. */
- __u64 high_va_offset;
- /** The maximum high virtual address */
- __u64 high_va_max;
- /* gfx10 pa_sc_tile_steering_override */
- __u32 pa_sc_tile_steering_override;
- /* disabled TCCs */
- __u64 tcc_disabled_mask;
-};
-
-struct drm_amdgpu_info_hw_ip {
- /** Version of h/w IP */
- __u32 hw_ip_version_major;
- __u32 hw_ip_version_minor;
- /** Capabilities */
- __u64 capabilities_flags;
- /** command buffer address start alignment*/
- __u32 ib_start_alignment;
- /** command buffer size alignment*/
- __u32 ib_size_alignment;
- /** Bitmask of available rings. Bit 0 means ring 0, etc. */
- __u32 available_rings;
- __u32 _pad;
-};
-
-struct drm_amdgpu_info_num_handles {
- /** Max handles as supported by firmware for UVD */
- __u32 uvd_max_handles;
- /** Handles currently in use for UVD */
- __u32 uvd_used_handles;
-};
-
-#define AMDGPU_VCE_CLOCK_TABLE_ENTRIES 6
-
-struct drm_amdgpu_info_vce_clock_table_entry {
- /** System clock */
- __u32 sclk;
- /** Memory clock */
- __u32 mclk;
- /** VCE clock */
- __u32 eclk;
- __u32 pad;
-};
-
-struct drm_amdgpu_info_vce_clock_table {
- struct drm_amdgpu_info_vce_clock_table_entry entries[AMDGPU_VCE_CLOCK_TABLE_ENTRIES];
- __u32 num_valid_entries;
- __u32 pad;
-};
-
-/* query video encode/decode caps */
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2 0
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4 1
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1 2
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC 3
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC 4
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG 5
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9 6
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1 7
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT 8
-
-struct drm_amdgpu_info_video_codec_info {
- __u32 valid;
- __u32 max_width;
- __u32 max_height;
- __u32 max_pixels_per_frame;
- __u32 max_level;
- __u32 pad;
-};
-
-struct drm_amdgpu_info_video_caps {
- struct drm_amdgpu_info_video_codec_info codec_info[AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT];
-};
-
-/*
- * Supported GPU families
- */
-#define AMDGPU_FAMILY_UNKNOWN 0
-#define AMDGPU_FAMILY_SI 110 /* Hainan, Oland, Verde, Pitcairn, Tahiti */
-#define AMDGPU_FAMILY_CI 120 /* Bonaire, Hawaii */
-#define AMDGPU_FAMILY_KV 125 /* Kaveri, Kabini, Mullins */
-#define AMDGPU_FAMILY_VI 130 /* Iceland, Tonga */
-#define AMDGPU_FAMILY_CZ 135 /* Carrizo, Stoney */
-#define AMDGPU_FAMILY_AI 141 /* Vega10 */
-#define AMDGPU_FAMILY_RV 142 /* Raven */
-#define AMDGPU_FAMILY_NV 143 /* Navi10 */
-#define AMDGPU_FAMILY_VGH 144 /* Van Gogh */
-#define AMDGPU_FAMILY_YC 146 /* Yellow Carp */
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/drm.h b/libdrm/libdrm/drm.h
deleted file mode 100644
index 398c396..0000000
--- a/libdrm/libdrm/drm.h
+++ /dev/null
@@ -1,1183 +0,0 @@
-/*
- * Header for the Direct Rendering Manager
- *
- * Author: Rickard E. (Rik) Faith <faith@valinux.com>
- *
- * Acknowledgments:
- * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
- */
-
-/*
- * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _DRM_H_
-#define _DRM_H_
-
-#if defined(__linux__)
-
-#include <linux/types.h>
-#include <asm/ioctl.h>
-typedef unsigned int drm_handle_t;
-
-#else /* One of the BSDs */
-
-#include <stdint.h>
-#include <sys/ioccom.h>
-#include <sys/types.h>
-typedef int8_t __s8;
-typedef uint8_t __u8;
-typedef int16_t __s16;
-typedef uint16_t __u16;
-typedef int32_t __s32;
-typedef uint32_t __u32;
-typedef int64_t __s64;
-typedef uint64_t __u64;
-typedef size_t __kernel_size_t;
-typedef unsigned long drm_handle_t;
-
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define DRM_NAME "drm" /**< Name in kernel, /dev, and /proc */
-#define DRM_MIN_ORDER 5 /**< At least 2^5 bytes = 32 bytes */
-#define DRM_MAX_ORDER 22 /**< Up to 2^22 bytes = 4MB */
-#define DRM_RAM_PERCENT 10 /**< How much system ram can we lock? */
-
-#define _DRM_LOCK_HELD 0x80000000U /**< Hardware lock is held */
-#define _DRM_LOCK_CONT 0x40000000U /**< Hardware lock is contended */
-#define _DRM_LOCK_IS_HELD(lock) ((lock) & _DRM_LOCK_HELD)
-#define _DRM_LOCK_IS_CONT(lock) ((lock) & _DRM_LOCK_CONT)
-#define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT))
-
-typedef unsigned int drm_context_t;
-typedef unsigned int drm_drawable_t;
-typedef unsigned int drm_magic_t;
-
-/*
- * Cliprect.
- *
- * \warning: If you change this structure, make sure you change
- * XF86DRIClipRectRec in the server as well
- *
- * \note KW: Actually it's illegal to change either for
- * backwards-compatibility reasons.
- */
-struct drm_clip_rect {
- unsigned short x1;
- unsigned short y1;
- unsigned short x2;
- unsigned short y2;
-};
-
-/*
- * Drawable information.
- */
-struct drm_drawable_info {
- unsigned int num_rects;
- struct drm_clip_rect *rects;
-};
-
-/*
- * Texture region,
- */
-struct drm_tex_region {
- unsigned char next;
- unsigned char prev;
- unsigned char in_use;
- unsigned char padding;
- unsigned int age;
-};
-
-/*
- * Hardware lock.
- *
- * The lock structure is a simple cache-line aligned integer. To avoid
- * processor bus contention on a multiprocessor system, there should not be any
- * other data stored in the same cache line.
- */
-struct drm_hw_lock {
- __volatile__ unsigned int lock; /**< lock variable */
- char padding[60]; /**< Pad to cache line */
-};
-
-/*
- * DRM_IOCTL_VERSION ioctl argument type.
- *
- * \sa drmGetVersion().
- */
-struct drm_version {
- int version_major; /**< Major version */
- int version_minor; /**< Minor version */
- int version_patchlevel; /**< Patch level */
- __kernel_size_t name_len; /**< Length of name buffer */
- char *name; /**< Name of driver */
- __kernel_size_t date_len; /**< Length of date buffer */
- char *date; /**< User-space buffer to hold date */
- __kernel_size_t desc_len; /**< Length of desc buffer */
- char *desc; /**< User-space buffer to hold desc */
-};
-
-/*
- * DRM_IOCTL_GET_UNIQUE ioctl argument type.
- *
- * \sa drmGetBusid() and drmSetBusId().
- */
-struct drm_unique {
- __kernel_size_t unique_len; /**< Length of unique */
- char *unique; /**< Unique name for driver instantiation */
-};
-
-struct drm_list {
- int count; /**< Length of user-space structures */
- struct drm_version *version;
-};
-
-struct drm_block {
- int unused;
-};
-
-/*
- * DRM_IOCTL_CONTROL ioctl argument type.
- *
- * \sa drmCtlInstHandler() and drmCtlUninstHandler().
- */
-struct drm_control {
- enum {
- DRM_ADD_COMMAND,
- DRM_RM_COMMAND,
- DRM_INST_HANDLER,
- DRM_UNINST_HANDLER
- } func;
- int irq;
-};
-
-/*
- * Type of memory to map.
- */
-enum drm_map_type {
- _DRM_FRAME_BUFFER = 0, /**< WC (no caching), no core dump */
- _DRM_REGISTERS = 1, /**< no caching, no core dump */
- _DRM_SHM = 2, /**< shared, cached */
- _DRM_AGP = 3, /**< AGP/GART */
- _DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */
- _DRM_CONSISTENT = 5 /**< Consistent memory for PCI DMA */
-};
-
-/*
- * Memory mapping flags.
- */
-enum drm_map_flags {
- _DRM_RESTRICTED = 0x01, /**< Cannot be mapped to user-virtual */
- _DRM_READ_ONLY = 0x02,
- _DRM_LOCKED = 0x04, /**< shared, cached, locked */
- _DRM_KERNEL = 0x08, /**< kernel requires access */
- _DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */
- _DRM_CONTAINS_LOCK = 0x20, /**< SHM page that contains lock */
- _DRM_REMOVABLE = 0x40, /**< Removable mapping */
- _DRM_DRIVER = 0x80 /**< Managed by driver */
-};
-
-struct drm_ctx_priv_map {
- unsigned int ctx_id; /**< Context requesting private mapping */
- void *handle; /**< Handle of map */
-};
-
-/*
- * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls
- * argument type.
- *
- * \sa drmAddMap().
- */
-struct drm_map {
- unsigned long offset; /**< Requested physical address (0 for SAREA)*/
- unsigned long size; /**< Requested physical size (bytes) */
- enum drm_map_type type; /**< Type of memory to map */
- enum drm_map_flags flags; /**< Flags */
- void *handle; /**< User-space: "Handle" to pass to mmap() */
- /**< Kernel-space: kernel-virtual address */
- int mtrr; /**< MTRR slot used */
- /* Private data */
-};
-
-/*
- * DRM_IOCTL_GET_CLIENT ioctl argument type.
- */
-struct drm_client {
- int idx; /**< Which client desired? */
- int auth; /**< Is client authenticated? */
- unsigned long pid; /**< Process ID */
- unsigned long uid; /**< User ID */
- unsigned long magic; /**< Magic */
- unsigned long iocs; /**< Ioctl count */
-};
-
-enum drm_stat_type {
- _DRM_STAT_LOCK,
- _DRM_STAT_OPENS,
- _DRM_STAT_CLOSES,
- _DRM_STAT_IOCTLS,
- _DRM_STAT_LOCKS,
- _DRM_STAT_UNLOCKS,
- _DRM_STAT_VALUE, /**< Generic value */
- _DRM_STAT_BYTE, /**< Generic byte counter (1024bytes/K) */
- _DRM_STAT_COUNT, /**< Generic non-byte counter (1000/k) */
-
- _DRM_STAT_IRQ, /**< IRQ */
- _DRM_STAT_PRIMARY, /**< Primary DMA bytes */
- _DRM_STAT_SECONDARY, /**< Secondary DMA bytes */
- _DRM_STAT_DMA, /**< DMA */
- _DRM_STAT_SPECIAL, /**< Special DMA (e.g., priority or polled) */
- _DRM_STAT_MISSED /**< Missed DMA opportunity */
- /* Add to the *END* of the list */
-};
-
-/*
- * DRM_IOCTL_GET_STATS ioctl argument type.
- */
-struct drm_stats {
- unsigned long count;
- struct {
- unsigned long value;
- enum drm_stat_type type;
- } data[15];
-};
-
-/*
- * Hardware locking flags.
- */
-enum drm_lock_flags {
- _DRM_LOCK_READY = 0x01, /**< Wait until hardware is ready for DMA */
- _DRM_LOCK_QUIESCENT = 0x02, /**< Wait until hardware quiescent */
- _DRM_LOCK_FLUSH = 0x04, /**< Flush this context's DMA queue first */
- _DRM_LOCK_FLUSH_ALL = 0x08, /**< Flush all DMA queues first */
- /* These *HALT* flags aren't supported yet
- -- they will be used to support the
- full-screen DGA-like mode. */
- _DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */
- _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */
-};
-
-/*
- * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type.
- *
- * \sa drmGetLock() and drmUnlock().
- */
-struct drm_lock {
- int context;
- enum drm_lock_flags flags;
-};
-
-/*
- * DMA flags
- *
- * \warning
- * These values \e must match xf86drm.h.
- *
- * \sa drm_dma.
- */
-enum drm_dma_flags {
- /* Flags for DMA buffer dispatch */
- _DRM_DMA_BLOCK = 0x01, /**<
- * Block until buffer dispatched.
- *
- * \note The buffer may not yet have
- * been processed by the hardware --
- * getting a hardware lock with the
- * hardware quiescent will ensure
- * that the buffer has been
- * processed.
- */
- _DRM_DMA_WHILE_LOCKED = 0x02, /**< Dispatch while lock held */
- _DRM_DMA_PRIORITY = 0x04, /**< High priority dispatch */
-
- /* Flags for DMA buffer request */
- _DRM_DMA_WAIT = 0x10, /**< Wait for free buffers */
- _DRM_DMA_SMALLER_OK = 0x20, /**< Smaller-than-requested buffers OK */
- _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */
-};
-
-/*
- * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.
- *
- * \sa drmAddBufs().
- */
-struct drm_buf_desc {
- int count; /**< Number of buffers of this size */
- int size; /**< Size in bytes */
- int low_mark; /**< Low water mark */
- int high_mark; /**< High water mark */
- enum {
- _DRM_PAGE_ALIGN = 0x01, /**< Align on page boundaries for DMA */
- _DRM_AGP_BUFFER = 0x02, /**< Buffer is in AGP space */
- _DRM_SG_BUFFER = 0x04, /**< Scatter/gather memory buffer */
- _DRM_FB_BUFFER = 0x08, /**< Buffer is in frame buffer */
- _DRM_PCI_BUFFER_RO = 0x10 /**< Map PCI DMA buffer read-only */
- } flags;
- unsigned long agp_start; /**<
- * Start address of where the AGP buffers are
- * in the AGP aperture
- */
-};
-
-/*
- * DRM_IOCTL_INFO_BUFS ioctl argument type.
- */
-struct drm_buf_info {
- int count; /**< Entries in list */
- struct drm_buf_desc *list;
-};
-
-/*
- * DRM_IOCTL_FREE_BUFS ioctl argument type.
- */
-struct drm_buf_free {
- int count;
- int *list;
-};
-
-/*
- * Buffer information
- *
- * \sa drm_buf_map.
- */
-struct drm_buf_pub {
- int idx; /**< Index into the master buffer list */
- int total; /**< Buffer size */
- int used; /**< Amount of buffer in use (for DMA) */
- void *address; /**< Address of buffer */
-};
-
-/*
- * DRM_IOCTL_MAP_BUFS ioctl argument type.
- */
-struct drm_buf_map {
- int count; /**< Length of the buffer list */
-#ifdef __cplusplus
- void *virt;
-#else
- void *virtual; /**< Mmap'd area in user-virtual */
-#endif
- struct drm_buf_pub *list; /**< Buffer information */
-};
-
-/*
- * DRM_IOCTL_DMA ioctl argument type.
- *
- * Indices here refer to the offset into the buffer list in drm_buf_get.
- *
- * \sa drmDMA().
- */
-struct drm_dma {
- int context; /**< Context handle */
- int send_count; /**< Number of buffers to send */
- int *send_indices; /**< List of handles to buffers */
- int *send_sizes; /**< Lengths of data to send */
- enum drm_dma_flags flags; /**< Flags */
- int request_count; /**< Number of buffers requested */
- int request_size; /**< Desired size for buffers */
- int *request_indices; /**< Buffer information */
- int *request_sizes;
- int granted_count; /**< Number of buffers granted */
-};
-
-enum drm_ctx_flags {
- _DRM_CONTEXT_PRESERVED = 0x01,
- _DRM_CONTEXT_2DONLY = 0x02
-};
-
-/*
- * DRM_IOCTL_ADD_CTX ioctl argument type.
- *
- * \sa drmCreateContext() and drmDestroyContext().
- */
-struct drm_ctx {
- drm_context_t handle;
- enum drm_ctx_flags flags;
-};
-
-/*
- * DRM_IOCTL_RES_CTX ioctl argument type.
- */
-struct drm_ctx_res {
- int count;
- struct drm_ctx *contexts;
-};
-
-/*
- * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type.
- */
-struct drm_draw {
- drm_drawable_t handle;
-};
-
-/*
- * DRM_IOCTL_UPDATE_DRAW ioctl argument type.
- */
-typedef enum {
- DRM_DRAWABLE_CLIPRECTS
-} drm_drawable_info_type_t;
-
-struct drm_update_draw {
- drm_drawable_t handle;
- unsigned int type;
- unsigned int num;
- unsigned long long data;
-};
-
-/*
- * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.
- */
-struct drm_auth {
- drm_magic_t magic;
-};
-
-/*
- * DRM_IOCTL_IRQ_BUSID ioctl argument type.
- *
- * \sa drmGetInterruptFromBusID().
- */
-struct drm_irq_busid {
- int irq; /**< IRQ number */
- int busnum; /**< bus number */
- int devnum; /**< device number */
- int funcnum; /**< function number */
-};
-
-enum drm_vblank_seq_type {
- _DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */
- _DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */
- /* bits 1-6 are reserved for high crtcs */
- _DRM_VBLANK_HIGH_CRTC_MASK = 0x0000003e,
- _DRM_VBLANK_EVENT = 0x4000000, /**< Send event instead of blocking */
- _DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */
- _DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */
- _DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */
- _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking, unsupported */
-};
-#define _DRM_VBLANK_HIGH_CRTC_SHIFT 1
-
-#define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE)
-#define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_EVENT | _DRM_VBLANK_SIGNAL | \
- _DRM_VBLANK_SECONDARY | _DRM_VBLANK_NEXTONMISS)
-
-struct drm_wait_vblank_request {
- enum drm_vblank_seq_type type;
- unsigned int sequence;
- unsigned long signal;
-};
-
-struct drm_wait_vblank_reply {
- enum drm_vblank_seq_type type;
- unsigned int sequence;
- long tval_sec;
- long tval_usec;
-};
-
-/*
- * DRM_IOCTL_WAIT_VBLANK ioctl argument type.
- *
- * \sa drmWaitVBlank().
- */
-union drm_wait_vblank {
- struct drm_wait_vblank_request request;
- struct drm_wait_vblank_reply reply;
-};
-
-#define _DRM_PRE_MODESET 1
-#define _DRM_POST_MODESET 2
-
-/*
- * DRM_IOCTL_MODESET_CTL ioctl argument type
- *
- * \sa drmModesetCtl().
- */
-struct drm_modeset_ctl {
- __u32 crtc;
- __u32 cmd;
-};
-
-/*
- * DRM_IOCTL_AGP_ENABLE ioctl argument type.
- *
- * \sa drmAgpEnable().
- */
-struct drm_agp_mode {
- unsigned long mode; /**< AGP mode */
-};
-
-/*
- * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type.
- *
- * \sa drmAgpAlloc() and drmAgpFree().
- */
-struct drm_agp_buffer {
- unsigned long size; /**< In bytes -- will round to page boundary */
- unsigned long handle; /**< Used for binding / unbinding */
- unsigned long type; /**< Type of memory to allocate */
- unsigned long physical; /**< Physical used by i810 */
-};
-
-/*
- * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type.
- *
- * \sa drmAgpBind() and drmAgpUnbind().
- */
-struct drm_agp_binding {
- unsigned long handle; /**< From drm_agp_buffer */
- unsigned long offset; /**< In bytes -- will round to page boundary */
-};
-
-/*
- * DRM_IOCTL_AGP_INFO ioctl argument type.
- *
- * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(),
- * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(),
- * drmAgpVendorId() and drmAgpDeviceId().
- */
-struct drm_agp_info {
- int agp_version_major;
- int agp_version_minor;
- unsigned long mode;
- unsigned long aperture_base; /* physical address */
- unsigned long aperture_size; /* bytes */
- unsigned long memory_allowed; /* bytes */
- unsigned long memory_used;
-
- /* PCI information */
- unsigned short id_vendor;
- unsigned short id_device;
-};
-
-/*
- * DRM_IOCTL_SG_ALLOC ioctl argument type.
- */
-struct drm_scatter_gather {
- unsigned long size; /**< In bytes -- will round to page boundary */
- unsigned long handle; /**< Used for mapping / unmapping */
-};
-
-/*
- * DRM_IOCTL_SET_VERSION ioctl argument type.
- */
-struct drm_set_version {
- int drm_di_major;
- int drm_di_minor;
- int drm_dd_major;
- int drm_dd_minor;
-};
-
-/* DRM_IOCTL_GEM_CLOSE ioctl argument type */
-struct drm_gem_close {
- /** Handle of the object to be closed. */
- __u32 handle;
- __u32 pad;
-};
-
-/* DRM_IOCTL_GEM_FLINK ioctl argument type */
-struct drm_gem_flink {
- /** Handle for the object being named */
- __u32 handle;
-
- /** Returned global name */
- __u32 name;
-};
-
-/* DRM_IOCTL_GEM_OPEN ioctl argument type */
-struct drm_gem_open {
- /** Name of object being opened */
- __u32 name;
-
- /** Returned handle for the object */
- __u32 handle;
-
- /** Returned size of the object */
- __u64 size;
-};
-
-/**
- * DRM_CAP_DUMB_BUFFER
- *
- * If set to 1, the driver supports creating dumb buffers via the
- * &DRM_IOCTL_MODE_CREATE_DUMB ioctl.
- */
-#define DRM_CAP_DUMB_BUFFER 0x1
-/**
- * DRM_CAP_VBLANK_HIGH_CRTC
- *
- * If set to 1, the kernel supports specifying a CRTC index in the high bits of
- * &drm_wait_vblank_request.type.
- *
- * Starting kernel version 2.6.39, this capability is always set to 1.
- */
-#define DRM_CAP_VBLANK_HIGH_CRTC 0x2
-/**
- * DRM_CAP_DUMB_PREFERRED_DEPTH
- *
- * The preferred bit depth for dumb buffers.
- *
- * The bit depth is the number of bits used to indicate the color of a single
- * pixel excluding any padding. This is different from the number of bits per
- * pixel. For instance, XRGB8888 has a bit depth of 24 but has 32 bits per
- * pixel.
- *
- * Note that this preference only applies to dumb buffers, it's irrelevant for
- * other types of buffers.
- */
-#define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3
-/**
- * DRM_CAP_DUMB_PREFER_SHADOW
- *
- * If set to 1, the driver prefers userspace to render to a shadow buffer
- * instead of directly rendering to a dumb buffer. For best speed, userspace
- * should do streaming ordered memory copies into the dumb buffer and never
- * read from it.
- *
- * Note that this preference only applies to dumb buffers, it's irrelevant for
- * other types of buffers.
- */
-#define DRM_CAP_DUMB_PREFER_SHADOW 0x4
-/**
- * DRM_CAP_PRIME
- *
- * Bitfield of supported PRIME sharing capabilities. See &DRM_PRIME_CAP_IMPORT
- * and &DRM_PRIME_CAP_EXPORT.
- *
- * PRIME buffers are exposed as dma-buf file descriptors. See
- * Documentation/gpu/drm-mm.rst, section "PRIME Buffer Sharing".
- */
-#define DRM_CAP_PRIME 0x5
-/**
- * DRM_PRIME_CAP_IMPORT
- *
- * If this bit is set in &DRM_CAP_PRIME, the driver supports importing PRIME
- * buffers via the &DRM_IOCTL_PRIME_FD_TO_HANDLE ioctl.
- */
-#define DRM_PRIME_CAP_IMPORT 0x1
-/**
- * DRM_PRIME_CAP_EXPORT
- *
- * If this bit is set in &DRM_CAP_PRIME, the driver supports exporting PRIME
- * buffers via the &DRM_IOCTL_PRIME_HANDLE_TO_FD ioctl.
- */
-#define DRM_PRIME_CAP_EXPORT 0x2
-/**
- * DRM_CAP_TIMESTAMP_MONOTONIC
- *
- * If set to 0, the kernel will report timestamps with ``CLOCK_REALTIME`` in
- * struct drm_event_vblank. If set to 1, the kernel will report timestamps with
- * ``CLOCK_MONOTONIC``. See ``clock_gettime(2)`` for the definition of these
- * clocks.
- *
- * Starting from kernel version 2.6.39, the default value for this capability
- * is 1. Starting kernel version 4.15, this capability is always set to 1.
- */
-#define DRM_CAP_TIMESTAMP_MONOTONIC 0x6
-/**
- * DRM_CAP_ASYNC_PAGE_FLIP
- *
- * If set to 1, the driver supports &DRM_MODE_PAGE_FLIP_ASYNC.
- */
-#define DRM_CAP_ASYNC_PAGE_FLIP 0x7
-/**
- * DRM_CAP_CURSOR_WIDTH
- *
- * The ``CURSOR_WIDTH`` and ``CURSOR_HEIGHT`` capabilities return a valid
- * width x height combination for the hardware cursor. The intention is that a
- * hardware agnostic userspace can query a cursor plane size to use.
- *
- * Note that the cross-driver contract is to merely return a valid size;
- * drivers are free to attach another meaning on top, eg. i915 returns the
- * maximum plane size.
- */
-#define DRM_CAP_CURSOR_WIDTH 0x8
-/**
- * DRM_CAP_CURSOR_HEIGHT
- *
- * See &DRM_CAP_CURSOR_WIDTH.
- */
-#define DRM_CAP_CURSOR_HEIGHT 0x9
-/**
- * DRM_CAP_ADDFB2_MODIFIERS
- *
- * If set to 1, the driver supports supplying modifiers in the
- * &DRM_IOCTL_MODE_ADDFB2 ioctl.
- */
-#define DRM_CAP_ADDFB2_MODIFIERS 0x10
-/**
- * DRM_CAP_PAGE_FLIP_TARGET
- *
- * If set to 1, the driver supports the &DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE and
- * &DRM_MODE_PAGE_FLIP_TARGET_RELATIVE flags in
- * &drm_mode_crtc_page_flip_target.flags for the &DRM_IOCTL_MODE_PAGE_FLIP
- * ioctl.
- */
-#define DRM_CAP_PAGE_FLIP_TARGET 0x11
-/**
- * DRM_CAP_CRTC_IN_VBLANK_EVENT
- *
- * If set to 1, the kernel supports reporting the CRTC ID in
- * &drm_event_vblank.crtc_id for the &DRM_EVENT_VBLANK and
- * &DRM_EVENT_FLIP_COMPLETE events.
- *
- * Starting kernel version 4.12, this capability is always set to 1.
- */
-#define DRM_CAP_CRTC_IN_VBLANK_EVENT 0x12
-/**
- * DRM_CAP_SYNCOBJ
- *
- * If set to 1, the driver supports sync objects. See
- * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects".
- */
-#define DRM_CAP_SYNCOBJ 0x13
-/**
- * DRM_CAP_SYNCOBJ_TIMELINE
- *
- * If set to 1, the driver supports timeline operations on sync objects. See
- * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects".
- */
-#define DRM_CAP_SYNCOBJ_TIMELINE 0x14
-
-/* DRM_IOCTL_GET_CAP ioctl argument type */
-struct drm_get_cap {
- __u64 capability;
- __u64 value;
-};
-
-/**
- * DRM_CLIENT_CAP_STEREO_3D
- *
- * If set to 1, the DRM core will expose the stereo 3D capabilities of the
- * monitor by advertising the supported 3D layouts in the flags of struct
- * drm_mode_modeinfo. See ``DRM_MODE_FLAG_3D_*``.
- *
- * This capability is always supported for all drivers starting from kernel
- * version 3.13.
- */
-#define DRM_CLIENT_CAP_STEREO_3D 1
-
-/**
- * DRM_CLIENT_CAP_UNIVERSAL_PLANES
- *
- * If set to 1, the DRM core will expose all planes (overlay, primary, and
- * cursor) to userspace.
- *
- * This capability has been introduced in kernel version 3.15. Starting from
- * kernel version 3.17, this capability is always supported for all drivers.
- */
-#define DRM_CLIENT_CAP_UNIVERSAL_PLANES 2
-
-/**
- * DRM_CLIENT_CAP_ATOMIC
- *
- * If set to 1, the DRM core will expose atomic properties to userspace. This
- * implicitly enables &DRM_CLIENT_CAP_UNIVERSAL_PLANES and
- * &DRM_CLIENT_CAP_ASPECT_RATIO.
- *
- * If the driver doesn't support atomic mode-setting, enabling this capability
- * will fail with -EOPNOTSUPP.
- *
- * This capability has been introduced in kernel version 4.0. Starting from
- * kernel version 4.2, this capability is always supported for atomic-capable
- * drivers.
- */
-#define DRM_CLIENT_CAP_ATOMIC 3
-
-/**
- * DRM_CLIENT_CAP_ASPECT_RATIO
- *
- * If set to 1, the DRM core will provide aspect ratio information in modes.
- * See ``DRM_MODE_FLAG_PIC_AR_*``.
- *
- * This capability is always supported for all drivers starting from kernel
- * version 4.18.
- */
-#define DRM_CLIENT_CAP_ASPECT_RATIO 4
-
-/**
- * DRM_CLIENT_CAP_WRITEBACK_CONNECTORS
- *
- * If set to 1, the DRM core will expose special connectors to be used for
- * writing back to memory the scene setup in the commit. The client must enable
- * &DRM_CLIENT_CAP_ATOMIC first.
- *
- * This capability is always supported for atomic-capable drivers starting from
- * kernel version 4.19.
- */
-#define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5
-
-/* DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
-struct drm_set_client_cap {
- __u64 capability;
- __u64 value;
-};
-
-#define DRM_RDWR O_RDWR
-#define DRM_CLOEXEC O_CLOEXEC
-struct drm_prime_handle {
- __u32 handle;
-
- /** Flags.. only applicable for handle->fd */
- __u32 flags;
-
- /** Returned dmabuf file descriptor */
- __s32 fd;
-};
-
-struct drm_syncobj_create {
- __u32 handle;
-#define DRM_SYNCOBJ_CREATE_SIGNALED (1 << 0)
- __u32 flags;
-};
-
-struct drm_syncobj_destroy {
- __u32 handle;
- __u32 pad;
-};
-
-#define DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_IMPORT_SYNC_FILE (1 << 0)
-#define DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE (1 << 0)
-struct drm_syncobj_handle {
- __u32 handle;
- __u32 flags;
-
- __s32 fd;
- __u32 pad;
-};
-
-struct drm_syncobj_transfer {
- __u32 src_handle;
- __u32 dst_handle;
- __u64 src_point;
- __u64 dst_point;
- __u32 flags;
- __u32 pad;
-};
-
-#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
-#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
-#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE (1 << 2) /* wait for time point to become available */
-struct drm_syncobj_wait {
- __u64 handles;
- /* absolute timeout */
- __s64 timeout_nsec;
- __u32 count_handles;
- __u32 flags;
- __u32 first_signaled; /* only valid when not waiting all */
- __u32 pad;
-};
-
-struct drm_syncobj_timeline_wait {
- __u64 handles;
- /* wait on specific timeline point for every handles*/
- __u64 points;
- /* absolute timeout */
- __s64 timeout_nsec;
- __u32 count_handles;
- __u32 flags;
- __u32 first_signaled; /* only valid when not waiting all */
- __u32 pad;
-};
-
-
-struct drm_syncobj_array {
- __u64 handles;
- __u32 count_handles;
- __u32 pad;
-};
-
-#define DRM_SYNCOBJ_QUERY_FLAGS_LAST_SUBMITTED (1 << 0) /* last available point on timeline syncobj */
-struct drm_syncobj_timeline_array {
- __u64 handles;
- __u64 points;
- __u32 count_handles;
- __u32 flags;
-};
-
-
-/* Query current scanout sequence number */
-struct drm_crtc_get_sequence {
- __u32 crtc_id; /* requested crtc_id */
- __u32 active; /* return: crtc output is active */
- __u64 sequence; /* return: most recent vblank sequence */
- __s64 sequence_ns; /* return: most recent time of first pixel out */
-};
-
-/* Queue event to be delivered at specified sequence. Time stamp marks
- * when the first pixel of the refresh cycle leaves the display engine
- * for the display
- */
-#define DRM_CRTC_SEQUENCE_RELATIVE 0x00000001 /* sequence is relative to current */
-#define DRM_CRTC_SEQUENCE_NEXT_ON_MISS 0x00000002 /* Use next sequence if we've missed */
-
-struct drm_crtc_queue_sequence {
- __u32 crtc_id;
- __u32 flags;
- __u64 sequence; /* on input, target sequence. on output, actual sequence */
- __u64 user_data; /* user data passed to event */
-};
-
-#if defined(__cplusplus)
-}
-#endif
-
-#include "drm_mode.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define DRM_IOCTL_BASE 'd'
-#define DRM_IO(nr) _IO(DRM_IOCTL_BASE,nr)
-#define DRM_IOR(nr,type) _IOR(DRM_IOCTL_BASE,nr,type)
-#define DRM_IOW(nr,type) _IOW(DRM_IOCTL_BASE,nr,type)
-#define DRM_IOWR(nr,type) _IOWR(DRM_IOCTL_BASE,nr,type)
-
-#define DRM_IOCTL_VERSION DRM_IOWR(0x00, struct drm_version)
-#define DRM_IOCTL_GET_UNIQUE DRM_IOWR(0x01, struct drm_unique)
-#define DRM_IOCTL_GET_MAGIC DRM_IOR( 0x02, struct drm_auth)
-#define DRM_IOCTL_IRQ_BUSID DRM_IOWR(0x03, struct drm_irq_busid)
-#define DRM_IOCTL_GET_MAP DRM_IOWR(0x04, struct drm_map)
-#define DRM_IOCTL_GET_CLIENT DRM_IOWR(0x05, struct drm_client)
-#define DRM_IOCTL_GET_STATS DRM_IOR( 0x06, struct drm_stats)
-#define DRM_IOCTL_SET_VERSION DRM_IOWR(0x07, struct drm_set_version)
-#define DRM_IOCTL_MODESET_CTL DRM_IOW(0x08, struct drm_modeset_ctl)
-#define DRM_IOCTL_GEM_CLOSE DRM_IOW (0x09, struct drm_gem_close)
-#define DRM_IOCTL_GEM_FLINK DRM_IOWR(0x0a, struct drm_gem_flink)
-#define DRM_IOCTL_GEM_OPEN DRM_IOWR(0x0b, struct drm_gem_open)
-#define DRM_IOCTL_GET_CAP DRM_IOWR(0x0c, struct drm_get_cap)
-#define DRM_IOCTL_SET_CLIENT_CAP DRM_IOW( 0x0d, struct drm_set_client_cap)
-
-#define DRM_IOCTL_SET_UNIQUE DRM_IOW( 0x10, struct drm_unique)
-#define DRM_IOCTL_AUTH_MAGIC DRM_IOW( 0x11, struct drm_auth)
-#define DRM_IOCTL_BLOCK DRM_IOWR(0x12, struct drm_block)
-#define DRM_IOCTL_UNBLOCK DRM_IOWR(0x13, struct drm_block)
-#define DRM_IOCTL_CONTROL DRM_IOW( 0x14, struct drm_control)
-#define DRM_IOCTL_ADD_MAP DRM_IOWR(0x15, struct drm_map)
-#define DRM_IOCTL_ADD_BUFS DRM_IOWR(0x16, struct drm_buf_desc)
-#define DRM_IOCTL_MARK_BUFS DRM_IOW( 0x17, struct drm_buf_desc)
-#define DRM_IOCTL_INFO_BUFS DRM_IOWR(0x18, struct drm_buf_info)
-#define DRM_IOCTL_MAP_BUFS DRM_IOWR(0x19, struct drm_buf_map)
-#define DRM_IOCTL_FREE_BUFS DRM_IOW( 0x1a, struct drm_buf_free)
-
-#define DRM_IOCTL_RM_MAP DRM_IOW( 0x1b, struct drm_map)
-
-#define DRM_IOCTL_SET_SAREA_CTX DRM_IOW( 0x1c, struct drm_ctx_priv_map)
-#define DRM_IOCTL_GET_SAREA_CTX DRM_IOWR(0x1d, struct drm_ctx_priv_map)
-
-#define DRM_IOCTL_SET_MASTER DRM_IO(0x1e)
-#define DRM_IOCTL_DROP_MASTER DRM_IO(0x1f)
-
-#define DRM_IOCTL_ADD_CTX DRM_IOWR(0x20, struct drm_ctx)
-#define DRM_IOCTL_RM_CTX DRM_IOWR(0x21, struct drm_ctx)
-#define DRM_IOCTL_MOD_CTX DRM_IOW( 0x22, struct drm_ctx)
-#define DRM_IOCTL_GET_CTX DRM_IOWR(0x23, struct drm_ctx)
-#define DRM_IOCTL_SWITCH_CTX DRM_IOW( 0x24, struct drm_ctx)
-#define DRM_IOCTL_NEW_CTX DRM_IOW( 0x25, struct drm_ctx)
-#define DRM_IOCTL_RES_CTX DRM_IOWR(0x26, struct drm_ctx_res)
-#define DRM_IOCTL_ADD_DRAW DRM_IOWR(0x27, struct drm_draw)
-#define DRM_IOCTL_RM_DRAW DRM_IOWR(0x28, struct drm_draw)
-#define DRM_IOCTL_DMA DRM_IOWR(0x29, struct drm_dma)
-#define DRM_IOCTL_LOCK DRM_IOW( 0x2a, struct drm_lock)
-#define DRM_IOCTL_UNLOCK DRM_IOW( 0x2b, struct drm_lock)
-#define DRM_IOCTL_FINISH DRM_IOW( 0x2c, struct drm_lock)
-
-#define DRM_IOCTL_PRIME_HANDLE_TO_FD DRM_IOWR(0x2d, struct drm_prime_handle)
-#define DRM_IOCTL_PRIME_FD_TO_HANDLE DRM_IOWR(0x2e, struct drm_prime_handle)
-
-#define DRM_IOCTL_AGP_ACQUIRE DRM_IO( 0x30)
-#define DRM_IOCTL_AGP_RELEASE DRM_IO( 0x31)
-#define DRM_IOCTL_AGP_ENABLE DRM_IOW( 0x32, struct drm_agp_mode)
-#define DRM_IOCTL_AGP_INFO DRM_IOR( 0x33, struct drm_agp_info)
-#define DRM_IOCTL_AGP_ALLOC DRM_IOWR(0x34, struct drm_agp_buffer)
-#define DRM_IOCTL_AGP_FREE DRM_IOW( 0x35, struct drm_agp_buffer)
-#define DRM_IOCTL_AGP_BIND DRM_IOW( 0x36, struct drm_agp_binding)
-#define DRM_IOCTL_AGP_UNBIND DRM_IOW( 0x37, struct drm_agp_binding)
-
-#define DRM_IOCTL_SG_ALLOC DRM_IOWR(0x38, struct drm_scatter_gather)
-#define DRM_IOCTL_SG_FREE DRM_IOW( 0x39, struct drm_scatter_gather)
-
-#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, union drm_wait_vblank)
-
-#define DRM_IOCTL_CRTC_GET_SEQUENCE DRM_IOWR(0x3b, struct drm_crtc_get_sequence)
-#define DRM_IOCTL_CRTC_QUEUE_SEQUENCE DRM_IOWR(0x3c, struct drm_crtc_queue_sequence)
-
-#define DRM_IOCTL_UPDATE_DRAW DRM_IOW(0x3f, struct drm_update_draw)
-
-#define DRM_IOCTL_MODE_GETRESOURCES DRM_IOWR(0xA0, struct drm_mode_card_res)
-#define DRM_IOCTL_MODE_GETCRTC DRM_IOWR(0xA1, struct drm_mode_crtc)
-#define DRM_IOCTL_MODE_SETCRTC DRM_IOWR(0xA2, struct drm_mode_crtc)
-#define DRM_IOCTL_MODE_CURSOR DRM_IOWR(0xA3, struct drm_mode_cursor)
-#define DRM_IOCTL_MODE_GETGAMMA DRM_IOWR(0xA4, struct drm_mode_crtc_lut)
-#define DRM_IOCTL_MODE_SETGAMMA DRM_IOWR(0xA5, struct drm_mode_crtc_lut)
-#define DRM_IOCTL_MODE_GETENCODER DRM_IOWR(0xA6, struct drm_mode_get_encoder)
-#define DRM_IOCTL_MODE_GETCONNECTOR DRM_IOWR(0xA7, struct drm_mode_get_connector)
-#define DRM_IOCTL_MODE_ATTACHMODE DRM_IOWR(0xA8, struct drm_mode_mode_cmd) /* deprecated (never worked) */
-#define DRM_IOCTL_MODE_DETACHMODE DRM_IOWR(0xA9, struct drm_mode_mode_cmd) /* deprecated (never worked) */
-
-#define DRM_IOCTL_MODE_GETPROPERTY DRM_IOWR(0xAA, struct drm_mode_get_property)
-#define DRM_IOCTL_MODE_SETPROPERTY DRM_IOWR(0xAB, struct drm_mode_connector_set_property)
-#define DRM_IOCTL_MODE_GETPROPBLOB DRM_IOWR(0xAC, struct drm_mode_get_blob)
-#define DRM_IOCTL_MODE_GETFB DRM_IOWR(0xAD, struct drm_mode_fb_cmd)
-#define DRM_IOCTL_MODE_ADDFB DRM_IOWR(0xAE, struct drm_mode_fb_cmd)
-#define DRM_IOCTL_MODE_RMFB DRM_IOWR(0xAF, unsigned int)
-#define DRM_IOCTL_MODE_PAGE_FLIP DRM_IOWR(0xB0, struct drm_mode_crtc_page_flip)
-#define DRM_IOCTL_MODE_DIRTYFB DRM_IOWR(0xB1, struct drm_mode_fb_dirty_cmd)
-
-#define DRM_IOCTL_MODE_CREATE_DUMB DRM_IOWR(0xB2, struct drm_mode_create_dumb)
-#define DRM_IOCTL_MODE_MAP_DUMB DRM_IOWR(0xB3, struct drm_mode_map_dumb)
-#define DRM_IOCTL_MODE_DESTROY_DUMB DRM_IOWR(0xB4, struct drm_mode_destroy_dumb)
-#define DRM_IOCTL_MODE_GETPLANERESOURCES DRM_IOWR(0xB5, struct drm_mode_get_plane_res)
-#define DRM_IOCTL_MODE_GETPLANE DRM_IOWR(0xB6, struct drm_mode_get_plane)
-#define DRM_IOCTL_MODE_SETPLANE DRM_IOWR(0xB7, struct drm_mode_set_plane)
-#define DRM_IOCTL_MODE_ADDFB2 DRM_IOWR(0xB8, struct drm_mode_fb_cmd2)
-#define DRM_IOCTL_MODE_OBJ_GETPROPERTIES DRM_IOWR(0xB9, struct drm_mode_obj_get_properties)
-#define DRM_IOCTL_MODE_OBJ_SETPROPERTY DRM_IOWR(0xBA, struct drm_mode_obj_set_property)
-#define DRM_IOCTL_MODE_CURSOR2 DRM_IOWR(0xBB, struct drm_mode_cursor2)
-#define DRM_IOCTL_MODE_ATOMIC DRM_IOWR(0xBC, struct drm_mode_atomic)
-#define DRM_IOCTL_MODE_CREATEPROPBLOB DRM_IOWR(0xBD, struct drm_mode_create_blob)
-#define DRM_IOCTL_MODE_DESTROYPROPBLOB DRM_IOWR(0xBE, struct drm_mode_destroy_blob)
-
-#define DRM_IOCTL_SYNCOBJ_CREATE DRM_IOWR(0xBF, struct drm_syncobj_create)
-#define DRM_IOCTL_SYNCOBJ_DESTROY DRM_IOWR(0xC0, struct drm_syncobj_destroy)
-#define DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD DRM_IOWR(0xC1, struct drm_syncobj_handle)
-#define DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE DRM_IOWR(0xC2, struct drm_syncobj_handle)
-#define DRM_IOCTL_SYNCOBJ_WAIT DRM_IOWR(0xC3, struct drm_syncobj_wait)
-#define DRM_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct drm_syncobj_array)
-#define DRM_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct drm_syncobj_array)
-
-#define DRM_IOCTL_MODE_CREATE_LEASE DRM_IOWR(0xC6, struct drm_mode_create_lease)
-#define DRM_IOCTL_MODE_LIST_LESSEES DRM_IOWR(0xC7, struct drm_mode_list_lessees)
-#define DRM_IOCTL_MODE_GET_LEASE DRM_IOWR(0xC8, struct drm_mode_get_lease)
-#define DRM_IOCTL_MODE_REVOKE_LEASE DRM_IOWR(0xC9, struct drm_mode_revoke_lease)
-
-#define DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT DRM_IOWR(0xCA, struct drm_syncobj_timeline_wait)
-#define DRM_IOCTL_SYNCOBJ_QUERY DRM_IOWR(0xCB, struct drm_syncobj_timeline_array)
-#define DRM_IOCTL_SYNCOBJ_TRANSFER DRM_IOWR(0xCC, struct drm_syncobj_transfer)
-#define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL DRM_IOWR(0xCD, struct drm_syncobj_timeline_array)
-
-#define DRM_IOCTL_MODE_GETFB2 DRM_IOWR(0xCE, struct drm_mode_fb_cmd2)
-
-/*
- * Device specific ioctls should only be in their respective headers
- * The device specific ioctl range is from 0x40 to 0x9f.
- * Generic IOCTLS restart at 0xA0.
- *
- * \sa drmCommandNone(), drmCommandRead(), drmCommandWrite(), and
- * drmCommandReadWrite().
- */
-#define DRM_COMMAND_BASE 0x40
-#define DRM_COMMAND_END 0xA0
-
-/*
- * Header for events written back to userspace on the drm fd. The
- * type defines the type of event, the length specifies the total
- * length of the event (including the header), and user_data is
- * typically a 64 bit value passed with the ioctl that triggered the
- * event. A read on the drm fd will always only return complete
- * events, that is, if for example the read buffer is 100 bytes, and
- * there are two 64 byte events pending, only one will be returned.
- *
- * Event types 0 - 0x7fffffff are generic drm events, 0x80000000 and
- * up are chipset specific.
- */
-struct drm_event {
- __u32 type;
- __u32 length;
-};
-
-#define DRM_EVENT_VBLANK 0x01
-#define DRM_EVENT_FLIP_COMPLETE 0x02
-#define DRM_EVENT_CRTC_SEQUENCE 0x03
-
-struct drm_event_vblank {
- struct drm_event base;
- __u64 user_data;
- __u32 tv_sec;
- __u32 tv_usec;
- __u32 sequence;
- __u32 crtc_id; /* 0 on older kernels that do not support this */
-};
-
-/* Event delivered at sequence. Time stamp marks when the first pixel
- * of the refresh cycle leaves the display engine for the display
- */
-struct drm_event_crtc_sequence {
- struct drm_event base;
- __u64 user_data;
- __s64 time_ns;
- __u64 sequence;
-};
-
-/* typedef area */
-typedef struct drm_clip_rect drm_clip_rect_t;
-typedef struct drm_drawable_info drm_drawable_info_t;
-typedef struct drm_tex_region drm_tex_region_t;
-typedef struct drm_hw_lock drm_hw_lock_t;
-typedef struct drm_version drm_version_t;
-typedef struct drm_unique drm_unique_t;
-typedef struct drm_list drm_list_t;
-typedef struct drm_block drm_block_t;
-typedef struct drm_control drm_control_t;
-typedef enum drm_map_type drm_map_type_t;
-typedef enum drm_map_flags drm_map_flags_t;
-typedef struct drm_ctx_priv_map drm_ctx_priv_map_t;
-typedef struct drm_map drm_map_t;
-typedef struct drm_client drm_client_t;
-typedef enum drm_stat_type drm_stat_type_t;
-typedef struct drm_stats drm_stats_t;
-typedef enum drm_lock_flags drm_lock_flags_t;
-typedef struct drm_lock drm_lock_t;
-typedef enum drm_dma_flags drm_dma_flags_t;
-typedef struct drm_buf_desc drm_buf_desc_t;
-typedef struct drm_buf_info drm_buf_info_t;
-typedef struct drm_buf_free drm_buf_free_t;
-typedef struct drm_buf_pub drm_buf_pub_t;
-typedef struct drm_buf_map drm_buf_map_t;
-typedef struct drm_dma drm_dma_t;
-typedef union drm_wait_vblank drm_wait_vblank_t;
-typedef struct drm_agp_mode drm_agp_mode_t;
-typedef enum drm_ctx_flags drm_ctx_flags_t;
-typedef struct drm_ctx drm_ctx_t;
-typedef struct drm_ctx_res drm_ctx_res_t;
-typedef struct drm_draw drm_draw_t;
-typedef struct drm_update_draw drm_update_draw_t;
-typedef struct drm_auth drm_auth_t;
-typedef struct drm_irq_busid drm_irq_busid_t;
-typedef enum drm_vblank_seq_type drm_vblank_seq_type_t;
-
-typedef struct drm_agp_buffer drm_agp_buffer_t;
-typedef struct drm_agp_binding drm_agp_binding_t;
-typedef struct drm_agp_info drm_agp_info_t;
-typedef struct drm_scatter_gather drm_scatter_gather_t;
-typedef struct drm_set_version drm_set_version_t;
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/drm_fourcc.h b/libdrm/libdrm/drm_fourcc.h
deleted file mode 100644
index 2c9051f..0000000
--- a/libdrm/libdrm/drm_fourcc.h
+++ /dev/null
@@ -1,1459 +0,0 @@
-/*
- * Copyright 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef DRM_FOURCC_H
-#define DRM_FOURCC_H
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/**
- * DOC: overview
- *
- * In the DRM subsystem, framebuffer pixel formats are described using the
- * fourcc codes defined in `include/uapi/drm/drm_fourcc.h`. In addition to the
- * fourcc code, a Format Modifier may optionally be provided, in order to
- * further describe the buffer's format - for example tiling or compression.
- *
- * Format Modifiers
- * ----------------
- *
- * Format modifiers are used in conjunction with a fourcc code, forming a
- * unique fourcc:modifier pair. This format:modifier pair must fully define the
- * format and data layout of the buffer, and should be the only way to describe
- * that particular buffer.
- *
- * Having multiple fourcc:modifier pairs which describe the same layout should
- * be avoided, as such aliases run the risk of different drivers exposing
- * different names for the same data format, forcing userspace to understand
- * that they are aliases.
- *
- * Format modifiers may change any property of the buffer, including the number
- * of planes and/or the required allocation size. Format modifiers are
- * vendor-namespaced, and as such the relationship between a fourcc code and a
- * modifier is specific to the modifer being used. For example, some modifiers
- * may preserve meaning - such as number of planes - from the fourcc code,
- * whereas others may not.
- *
- * Modifiers must uniquely encode buffer layout. In other words, a buffer must
- * match only a single modifier. A modifier must not be a subset of layouts of
- * another modifier. For instance, it's incorrect to encode pitch alignment in
- * a modifier: a buffer may match a 64-pixel aligned modifier and a 32-pixel
- * aligned modifier. That said, modifiers can have implicit minimal
- * requirements.
- *
- * For modifiers where the combination of fourcc code and modifier can alias,
- * a canonical pair needs to be defined and used by all drivers. Preferred
- * combinations are also encouraged where all combinations might lead to
- * confusion and unnecessarily reduced interoperability. An example for the
- * latter is AFBC, where the ABGR layouts are preferred over ARGB layouts.
- *
- * There are two kinds of modifier users:
- *
- * - Kernel and user-space drivers: for drivers it's important that modifiers
- * don't alias, otherwise two drivers might support the same format but use
- * different aliases, preventing them from sharing buffers in an efficient
- * format.
- * - Higher-level programs interfacing with KMS/GBM/EGL/Vulkan/etc: these users
- * see modifiers as opaque tokens they can check for equality and intersect.
- * These users musn't need to know to reason about the modifier value
- * (i.e. they are not expected to extract information out of the modifier).
- *
- * Vendors should document their modifier usage in as much detail as
- * possible, to ensure maximum compatibility across devices, drivers and
- * applications.
- *
- * The authoritative list of format modifier codes is found in
- * `include/uapi/drm/drm_fourcc.h`
- */
-
-#define fourcc_code(a, b, c, d) ((__u32)(a) | ((__u32)(b) << 8) | \
- ((__u32)(c) << 16) | ((__u32)(d) << 24))
-
-#define DRM_FORMAT_BIG_ENDIAN (1U<<31) /* format is big endian instead of little endian */
-
-/* Reserve 0 for the invalid format specifier */
-#define DRM_FORMAT_INVALID 0
-
-/* color index */
-#define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ') /* [7:0] C */
-
-/* 8 bpp Red */
-#define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ') /* [7:0] R */
-
-/* 10 bpp Red */
-#define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ') /* [15:0] x:R 6:10 little endian */
-
-/* 12 bpp Red */
-#define DRM_FORMAT_R12 fourcc_code('R', '1', '2', ' ') /* [15:0] x:R 4:12 little endian */
-
-/* 16 bpp Red */
-#define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ') /* [15:0] R little endian */
-
-/* 16 bpp RG */
-#define DRM_FORMAT_RG88 fourcc_code('R', 'G', '8', '8') /* [15:0] R:G 8:8 little endian */
-#define DRM_FORMAT_GR88 fourcc_code('G', 'R', '8', '8') /* [15:0] G:R 8:8 little endian */
-
-/* 32 bpp RG */
-#define DRM_FORMAT_RG1616 fourcc_code('R', 'G', '3', '2') /* [31:0] R:G 16:16 little endian */
-#define DRM_FORMAT_GR1616 fourcc_code('G', 'R', '3', '2') /* [31:0] G:R 16:16 little endian */
-
-/* 8 bpp RGB */
-#define DRM_FORMAT_RGB332 fourcc_code('R', 'G', 'B', '8') /* [7:0] R:G:B 3:3:2 */
-#define DRM_FORMAT_BGR233 fourcc_code('B', 'G', 'R', '8') /* [7:0] B:G:R 2:3:3 */
-
-/* 16 bpp RGB */
-#define DRM_FORMAT_XRGB4444 fourcc_code('X', 'R', '1', '2') /* [15:0] x:R:G:B 4:4:4:4 little endian */
-#define DRM_FORMAT_XBGR4444 fourcc_code('X', 'B', '1', '2') /* [15:0] x:B:G:R 4:4:4:4 little endian */
-#define DRM_FORMAT_RGBX4444 fourcc_code('R', 'X', '1', '2') /* [15:0] R:G:B:x 4:4:4:4 little endian */
-#define DRM_FORMAT_BGRX4444 fourcc_code('B', 'X', '1', '2') /* [15:0] B:G:R:x 4:4:4:4 little endian */
-
-#define DRM_FORMAT_ARGB4444 fourcc_code('A', 'R', '1', '2') /* [15:0] A:R:G:B 4:4:4:4 little endian */
-#define DRM_FORMAT_ABGR4444 fourcc_code('A', 'B', '1', '2') /* [15:0] A:B:G:R 4:4:4:4 little endian */
-#define DRM_FORMAT_RGBA4444 fourcc_code('R', 'A', '1', '2') /* [15:0] R:G:B:A 4:4:4:4 little endian */
-#define DRM_FORMAT_BGRA4444 fourcc_code('B', 'A', '1', '2') /* [15:0] B:G:R:A 4:4:4:4 little endian */
-
-#define DRM_FORMAT_XRGB1555 fourcc_code('X', 'R', '1', '5') /* [15:0] x:R:G:B 1:5:5:5 little endian */
-#define DRM_FORMAT_XBGR1555 fourcc_code('X', 'B', '1', '5') /* [15:0] x:B:G:R 1:5:5:5 little endian */
-#define DRM_FORMAT_RGBX5551 fourcc_code('R', 'X', '1', '5') /* [15:0] R:G:B:x 5:5:5:1 little endian */
-#define DRM_FORMAT_BGRX5551 fourcc_code('B', 'X', '1', '5') /* [15:0] B:G:R:x 5:5:5:1 little endian */
-
-#define DRM_FORMAT_ARGB1555 fourcc_code('A', 'R', '1', '5') /* [15:0] A:R:G:B 1:5:5:5 little endian */
-#define DRM_FORMAT_ABGR1555 fourcc_code('A', 'B', '1', '5') /* [15:0] A:B:G:R 1:5:5:5 little endian */
-#define DRM_FORMAT_RGBA5551 fourcc_code('R', 'A', '1', '5') /* [15:0] R:G:B:A 5:5:5:1 little endian */
-#define DRM_FORMAT_BGRA5551 fourcc_code('B', 'A', '1', '5') /* [15:0] B:G:R:A 5:5:5:1 little endian */
-
-#define DRM_FORMAT_RGB565 fourcc_code('R', 'G', '1', '6') /* [15:0] R:G:B 5:6:5 little endian */
-#define DRM_FORMAT_BGR565 fourcc_code('B', 'G', '1', '6') /* [15:0] B:G:R 5:6:5 little endian */
-
-/* 24 bpp RGB */
-#define DRM_FORMAT_RGB888 fourcc_code('R', 'G', '2', '4') /* [23:0] R:G:B little endian */
-#define DRM_FORMAT_BGR888 fourcc_code('B', 'G', '2', '4') /* [23:0] B:G:R little endian */
-
-/* 32 bpp RGB */
-#define DRM_FORMAT_XRGB8888 fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 little endian */
-#define DRM_FORMAT_XBGR8888 fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 little endian */
-#define DRM_FORMAT_RGBX8888 fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 little endian */
-#define DRM_FORMAT_BGRX8888 fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 little endian */
-
-#define DRM_FORMAT_ARGB8888 fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 little endian */
-#define DRM_FORMAT_ABGR8888 fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 little endian */
-#define DRM_FORMAT_RGBA8888 fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 little endian */
-#define DRM_FORMAT_BGRA8888 fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 little endian */
-
-#define DRM_FORMAT_XRGB2101010 fourcc_code('X', 'R', '3', '0') /* [31:0] x:R:G:B 2:10:10:10 little endian */
-#define DRM_FORMAT_XBGR2101010 fourcc_code('X', 'B', '3', '0') /* [31:0] x:B:G:R 2:10:10:10 little endian */
-#define DRM_FORMAT_RGBX1010102 fourcc_code('R', 'X', '3', '0') /* [31:0] R:G:B:x 10:10:10:2 little endian */
-#define DRM_FORMAT_BGRX1010102 fourcc_code('B', 'X', '3', '0') /* [31:0] B:G:R:x 10:10:10:2 little endian */
-
-#define DRM_FORMAT_ARGB2101010 fourcc_code('A', 'R', '3', '0') /* [31:0] A:R:G:B 2:10:10:10 little endian */
-#define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0') /* [31:0] A:B:G:R 2:10:10:10 little endian */
-#define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */
-#define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */
-
-/* 64 bpp RGB */
-#define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8') /* [63:0] x:R:G:B 16:16:16:16 little endian */
-#define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8') /* [63:0] x:B:G:R 16:16:16:16 little endian */
-
-#define DRM_FORMAT_ARGB16161616 fourcc_code('A', 'R', '4', '8') /* [63:0] A:R:G:B 16:16:16:16 little endian */
-#define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8') /* [63:0] A:B:G:R 16:16:16:16 little endian */
-
-/*
- * Floating point 64bpp RGB
- * IEEE 754-2008 binary16 half-precision float
- * [15:0] sign:exponent:mantissa 1:5:10
- */
-#define DRM_FORMAT_XRGB16161616F fourcc_code('X', 'R', '4', 'H') /* [63:0] x:R:G:B 16:16:16:16 little endian */
-#define DRM_FORMAT_XBGR16161616F fourcc_code('X', 'B', '4', 'H') /* [63:0] x:B:G:R 16:16:16:16 little endian */
-
-#define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H') /* [63:0] A:R:G:B 16:16:16:16 little endian */
-#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H') /* [63:0] A:B:G:R 16:16:16:16 little endian */
-
-/*
- * RGBA format with 10-bit components packed in 64-bit per pixel, with 6 bits
- * of unused padding per component:
- */
-#define DRM_FORMAT_AXBXGXRX106106106106 fourcc_code('A', 'B', '1', '0') /* [63:0] A:x:B:x:G:x:R:x 10:6:10:6:10:6:10:6 little endian */
-
-/* packed YCbCr */
-#define DRM_FORMAT_YUYV fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */
-#define DRM_FORMAT_YVYU fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */
-#define DRM_FORMAT_UYVY fourcc_code('U', 'Y', 'V', 'Y') /* [31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian */
-#define DRM_FORMAT_VYUY fourcc_code('V', 'Y', 'U', 'Y') /* [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */
-
-#define DRM_FORMAT_AYUV fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */
-#define DRM_FORMAT_XYUV8888 fourcc_code('X', 'Y', 'U', 'V') /* [31:0] X:Y:Cb:Cr 8:8:8:8 little endian */
-#define DRM_FORMAT_VUY888 fourcc_code('V', 'U', '2', '4') /* [23:0] Cr:Cb:Y 8:8:8 little endian */
-#define DRM_FORMAT_VUY101010 fourcc_code('V', 'U', '3', '0') /* Y followed by U then V, 10:10:10. Non-linear modifier only */
-
-/*
- * packed Y2xx indicate for each component, xx valid data occupy msb
- * 16-xx padding occupy lsb
- */
-#define DRM_FORMAT_Y210 fourcc_code('Y', '2', '1', '0') /* [63:0] Cr0:0:Y1:0:Cb0:0:Y0:0 10:6:10:6:10:6:10:6 little endian per 2 Y pixels */
-#define DRM_FORMAT_Y212 fourcc_code('Y', '2', '1', '2') /* [63:0] Cr0:0:Y1:0:Cb0:0:Y0:0 12:4:12:4:12:4:12:4 little endian per 2 Y pixels */
-#define DRM_FORMAT_Y216 fourcc_code('Y', '2', '1', '6') /* [63:0] Cr0:Y1:Cb0:Y0 16:16:16:16 little endian per 2 Y pixels */
-
-/*
- * packed Y4xx indicate for each component, xx valid data occupy msb
- * 16-xx padding occupy lsb except Y410
- */
-#define DRM_FORMAT_Y410 fourcc_code('Y', '4', '1', '0') /* [31:0] A:Cr:Y:Cb 2:10:10:10 little endian */
-#define DRM_FORMAT_Y412 fourcc_code('Y', '4', '1', '2') /* [63:0] A:0:Cr:0:Y:0:Cb:0 12:4:12:4:12:4:12:4 little endian */
-#define DRM_FORMAT_Y416 fourcc_code('Y', '4', '1', '6') /* [63:0] A:Cr:Y:Cb 16:16:16:16 little endian */
-
-#define DRM_FORMAT_XVYU2101010 fourcc_code('X', 'V', '3', '0') /* [31:0] X:Cr:Y:Cb 2:10:10:10 little endian */
-#define DRM_FORMAT_XVYU12_16161616 fourcc_code('X', 'V', '3', '6') /* [63:0] X:0:Cr:0:Y:0:Cb:0 12:4:12:4:12:4:12:4 little endian */
-#define DRM_FORMAT_XVYU16161616 fourcc_code('X', 'V', '4', '8') /* [63:0] X:Cr:Y:Cb 16:16:16:16 little endian */
-
-/*
- * packed YCbCr420 2x2 tiled formats
- * first 64 bits will contain Y,Cb,Cr components for a 2x2 tile
- */
-/* [63:0] A3:A2:Y3:0:Cr0:0:Y2:0:A1:A0:Y1:0:Cb0:0:Y0:0 1:1:8:2:8:2:8:2:1:1:8:2:8:2:8:2 little endian */
-#define DRM_FORMAT_Y0L0 fourcc_code('Y', '0', 'L', '0')
-/* [63:0] X3:X2:Y3:0:Cr0:0:Y2:0:X1:X0:Y1:0:Cb0:0:Y0:0 1:1:8:2:8:2:8:2:1:1:8:2:8:2:8:2 little endian */
-#define DRM_FORMAT_X0L0 fourcc_code('X', '0', 'L', '0')
-
-/* [63:0] A3:A2:Y3:Cr0:Y2:A1:A0:Y1:Cb0:Y0 1:1:10:10:10:1:1:10:10:10 little endian */
-#define DRM_FORMAT_Y0L2 fourcc_code('Y', '0', 'L', '2')
-/* [63:0] X3:X2:Y3:Cr0:Y2:X1:X0:Y1:Cb0:Y0 1:1:10:10:10:1:1:10:10:10 little endian */
-#define DRM_FORMAT_X0L2 fourcc_code('X', '0', 'L', '2')
-
-/*
- * 1-plane YUV 4:2:0
- * In these formats, the component ordering is specified (Y, followed by U
- * then V), but the exact Linear layout is undefined.
- * These formats can only be used with a non-Linear modifier.
- */
-#define DRM_FORMAT_YUV420_8BIT fourcc_code('Y', 'U', '0', '8')
-#define DRM_FORMAT_YUV420_10BIT fourcc_code('Y', 'U', '1', '0')
-
-/*
- * 2 plane RGB + A
- * index 0 = RGB plane, same format as the corresponding non _A8 format has
- * index 1 = A plane, [7:0] A
- */
-#define DRM_FORMAT_XRGB8888_A8 fourcc_code('X', 'R', 'A', '8')
-#define DRM_FORMAT_XBGR8888_A8 fourcc_code('X', 'B', 'A', '8')
-#define DRM_FORMAT_RGBX8888_A8 fourcc_code('R', 'X', 'A', '8')
-#define DRM_FORMAT_BGRX8888_A8 fourcc_code('B', 'X', 'A', '8')
-#define DRM_FORMAT_RGB888_A8 fourcc_code('R', '8', 'A', '8')
-#define DRM_FORMAT_BGR888_A8 fourcc_code('B', '8', 'A', '8')
-#define DRM_FORMAT_RGB565_A8 fourcc_code('R', '5', 'A', '8')
-#define DRM_FORMAT_BGR565_A8 fourcc_code('B', '5', 'A', '8')
-
-/*
- * 2 plane YCbCr
- * index 0 = Y plane, [7:0] Y
- * index 1 = Cr:Cb plane, [15:0] Cr:Cb little endian
- * or
- * index 1 = Cb:Cr plane, [15:0] Cb:Cr little endian
- */
-#define DRM_FORMAT_NV12 fourcc_code('N', 'V', '1', '2') /* 2x2 subsampled Cr:Cb plane */
-#define DRM_FORMAT_NV21 fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */
-#define DRM_FORMAT_NV16 fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */
-#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
-#define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
-#define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
-/*
- * 2 plane YCbCr
- * index 0 = Y plane, [39:0] Y3:Y2:Y1:Y0 little endian
- * index 1 = Cr:Cb plane, [39:0] Cr1:Cb1:Cr0:Cb0 little endian
- */
-#define DRM_FORMAT_NV15 fourcc_code('N', 'V', '1', '5') /* 2x2 subsampled Cr:Cb plane */
-
-/*
- * 2 plane YCbCr MSB aligned
- * index 0 = Y plane, [15:0] Y:x [10:6] little endian
- * index 1 = Cr:Cb plane, [31:0] Cr:x:Cb:x [10:6:10:6] little endian
- */
-#define DRM_FORMAT_P210 fourcc_code('P', '2', '1', '0') /* 2x1 subsampled Cr:Cb plane, 10 bit per channel */
-
-/*
- * 2 plane YCbCr MSB aligned
- * index 0 = Y plane, [15:0] Y:x [10:6] little endian
- * index 1 = Cr:Cb plane, [31:0] Cr:x:Cb:x [10:6:10:6] little endian
- */
-#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel */
-
-/*
- * 2 plane YCbCr MSB aligned
- * index 0 = Y plane, [15:0] Y:x [12:4] little endian
- * index 1 = Cr:Cb plane, [31:0] Cr:x:Cb:x [12:4:12:4] little endian
- */
-#define DRM_FORMAT_P012 fourcc_code('P', '0', '1', '2') /* 2x2 subsampled Cr:Cb plane 12 bits per channel */
-
-/*
- * 2 plane YCbCr MSB aligned
- * index 0 = Y plane, [15:0] Y little endian
- * index 1 = Cr:Cb plane, [31:0] Cr:Cb [16:16] little endian
- */
-#define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
-
-/* 2 plane YCbCr420.
- * 3 10 bit components and 2 padding bits packed into 4 bytes.
- * index 0 = Y plane, [31:0] x:Y2:Y1:Y0 2:10:10:10 little endian
- * index 1 = Cr:Cb plane, [63:0] x:Cr2:Cb2:Cr1:x:Cb1:Cr0:Cb0 [2:10:10:10:2:10:10:10] little endian
- */
-#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel packed */
-
-/* 3 plane non-subsampled (444) YCbCr
- * 16 bits per component, but only 10 bits are used and 6 bits are padded
- * index 0: Y plane, [15:0] Y:x [10:6] little endian
- * index 1: Cb plane, [15:0] Cb:x [10:6] little endian
- * index 2: Cr plane, [15:0] Cr:x [10:6] little endian
- */
-#define DRM_FORMAT_Q410 fourcc_code('Q', '4', '1', '0')
-
-/* 3 plane non-subsampled (444) YCrCb
- * 16 bits per component, but only 10 bits are used and 6 bits are padded
- * index 0: Y plane, [15:0] Y:x [10:6] little endian
- * index 1: Cr plane, [15:0] Cr:x [10:6] little endian
- * index 2: Cb plane, [15:0] Cb:x [10:6] little endian
- */
-#define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1')
-
-/*
- * 3 plane YCbCr
- * index 0: Y plane, [7:0] Y
- * index 1: Cb plane, [7:0] Cb
- * index 2: Cr plane, [7:0] Cr
- * or
- * index 1: Cr plane, [7:0] Cr
- * index 2: Cb plane, [7:0] Cb
- */
-#define DRM_FORMAT_YUV410 fourcc_code('Y', 'U', 'V', '9') /* 4x4 subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU410 fourcc_code('Y', 'V', 'U', '9') /* 4x4 subsampled Cr (1) and Cb (2) planes */
-#define DRM_FORMAT_YUV411 fourcc_code('Y', 'U', '1', '1') /* 4x1 subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU411 fourcc_code('Y', 'V', '1', '1') /* 4x1 subsampled Cr (1) and Cb (2) planes */
-#define DRM_FORMAT_YUV420 fourcc_code('Y', 'U', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU420 fourcc_code('Y', 'V', '1', '2') /* 2x2 subsampled Cr (1) and Cb (2) planes */
-#define DRM_FORMAT_YUV422 fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU422 fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */
-#define DRM_FORMAT_YUV444 fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU444 fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */
-
-
-/*
- * Format Modifiers:
- *
- * Format modifiers describe, typically, a re-ordering or modification
- * of the data in a plane of an FB. This can be used to express tiled/
- * swizzled formats, or compression, or a combination of the two.
- *
- * The upper 8 bits of the format modifier are a vendor-id as assigned
- * below. The lower 56 bits are assigned as vendor sees fit.
- */
-
-/* Vendor Ids: */
-#define DRM_FORMAT_MOD_VENDOR_NONE 0
-#define DRM_FORMAT_MOD_VENDOR_INTEL 0x01
-#define DRM_FORMAT_MOD_VENDOR_AMD 0x02
-#define DRM_FORMAT_MOD_VENDOR_NVIDIA 0x03
-#define DRM_FORMAT_MOD_VENDOR_SAMSUNG 0x04
-#define DRM_FORMAT_MOD_VENDOR_QCOM 0x05
-#define DRM_FORMAT_MOD_VENDOR_VIVANTE 0x06
-#define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07
-#define DRM_FORMAT_MOD_VENDOR_ARM 0x08
-#define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
-#define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
-
-/* add more to the end as needed */
-
-#define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
-
-#define fourcc_mod_get_vendor(modifier) \
- (((modifier) >> 56) & 0xff)
-
-#define fourcc_mod_is_vendor(modifier, vendor) \
- (fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_## vendor)
-
-#define fourcc_mod_code(vendor, val) \
- ((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
-
-/*
- * Format Modifier tokens:
- *
- * When adding a new token please document the layout with a code comment,
- * similar to the fourcc codes above. drm_fourcc.h is considered the
- * authoritative source for all of these.
- *
- * Generic modifier names:
- *
- * DRM_FORMAT_MOD_GENERIC_* definitions are used to provide vendor-neutral names
- * for layouts which are common across multiple vendors. To preserve
- * compatibility, in cases where a vendor-specific definition already exists and
- * a generic name for it is desired, the common name is a purely symbolic alias
- * and must use the same numerical value as the original definition.
- *
- * Note that generic names should only be used for modifiers which describe
- * generic layouts (such as pixel re-ordering), which may have
- * independently-developed support across multiple vendors.
- *
- * In future cases where a generic layout is identified before merging with a
- * vendor-specific modifier, a new 'GENERIC' vendor or modifier using vendor
- * 'NONE' could be considered. This should only be for obvious, exceptional
- * cases to avoid polluting the 'GENERIC' namespace with modifiers which only
- * apply to a single vendor.
- *
- * Generic names should not be used for cases where multiple hardware vendors
- * have implementations of the same standardised compression scheme (such as
- * AFBC). In those cases, all implementations should use the same format
- * modifier(s), reflecting the vendor of the standard.
- */
-
-#define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
-
-/*
- * Invalid Modifier
- *
- * This modifier can be used as a sentinel to terminate the format modifiers
- * list, or to initialize a variable with an invalid modifier. It might also be
- * used to report an error back to userspace for certain APIs.
- */
-#define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
-
-/*
- * Linear Layout
- *
- * Just plain linear layout. Note that this is different from no specifying any
- * modifier (e.g. not setting DRM_MODE_FB_MODIFIERS in the DRM_ADDFB2 ioctl),
- * which tells the driver to also take driver-internal information into account
- * and so might actually result in a tiled framebuffer.
- */
-#define DRM_FORMAT_MOD_LINEAR fourcc_mod_code(NONE, 0)
-
-/*
- * Deprecated: use DRM_FORMAT_MOD_LINEAR instead
- *
- * The "none" format modifier doesn't actually mean that the modifier is
- * implicit, instead it means that the layout is linear. Whether modifiers are
- * used is out-of-band information carried in an API-specific way (e.g. in a
- * flag for drm_mode_fb_cmd2).
- */
-#define DRM_FORMAT_MOD_NONE 0
-
-/* Intel framebuffer modifiers */
-
-/*
- * Intel X-tiling layout
- *
- * This is a tiled layout using 4Kb tiles (except on gen2 where the tiles 2Kb)
- * in row-major layout. Within the tile bytes are laid out row-major, with
- * a platform-dependent stride. On top of that the memory can apply
- * platform-depending swizzling of some higher address bits into bit6.
- *
- * Note that this layout is only accurate on intel gen 8+ or valleyview chipsets.
- * On earlier platforms the is highly platforms specific and not useful for
- * cross-driver sharing. It exists since on a given platform it does uniquely
- * identify the layout in a simple way for i915-specific userspace, which
- * facilitated conversion of userspace to modifiers. Additionally the exact
- * format on some really old platforms is not known.
- */
-#define I915_FORMAT_MOD_X_TILED fourcc_mod_code(INTEL, 1)
-
-/*
- * Intel Y-tiling layout
- *
- * This is a tiled layout using 4Kb tiles (except on gen2 where the tiles 2Kb)
- * in row-major layout. Within the tile bytes are laid out in OWORD (16 bytes)
- * chunks column-major, with a platform-dependent height. On top of that the
- * memory can apply platform-depending swizzling of some higher address bits
- * into bit6.
- *
- * Note that this layout is only accurate on intel gen 8+ or valleyview chipsets.
- * On earlier platforms the is highly platforms specific and not useful for
- * cross-driver sharing. It exists since on a given platform it does uniquely
- * identify the layout in a simple way for i915-specific userspace, which
- * facilitated conversion of userspace to modifiers. Additionally the exact
- * format on some really old platforms is not known.
- */
-#define I915_FORMAT_MOD_Y_TILED fourcc_mod_code(INTEL, 2)
-
-/*
- * Intel Yf-tiling layout
- *
- * This is a tiled layout using 4Kb tiles in row-major layout.
- * Within the tile pixels are laid out in 16 256 byte units / sub-tiles which
- * are arranged in four groups (two wide, two high) with column-major layout.
- * Each group therefore consits out of four 256 byte units, which are also laid
- * out as 2x2 column-major.
- * 256 byte units are made out of four 64 byte blocks of pixels, producing
- * either a square block or a 2:1 unit.
- * 64 byte blocks of pixels contain four pixel rows of 16 bytes, where the width
- * in pixel depends on the pixel depth.
- */
-#define I915_FORMAT_MOD_Yf_TILED fourcc_mod_code(INTEL, 3)
-
-/*
- * Intel color control surface (CCS) for render compression
- *
- * The framebuffer format must be one of the 8:8:8:8 RGB formats.
- * The main surface will be plane index 0 and must be Y/Yf-tiled,
- * the CCS will be plane index 1.
- *
- * Each CCS tile matches a 1024x512 pixel area of the main surface.
- * To match certain aspects of the 3D hardware the CCS is
- * considered to be made up of normal 128Bx32 Y tiles, Thus
- * the CCS pitch must be specified in multiples of 128 bytes.
- *
- * In reality the CCS tile appears to be a 64Bx64 Y tile, composed
- * of QWORD (8 bytes) chunks instead of OWORD (16 bytes) chunks.
- * But that fact is not relevant unless the memory is accessed
- * directly.
- */
-#define I915_FORMAT_MOD_Y_TILED_CCS fourcc_mod_code(INTEL, 4)
-#define I915_FORMAT_MOD_Yf_TILED_CCS fourcc_mod_code(INTEL, 5)
-
-/*
- * Intel color control surfaces (CCS) for Gen-12 render compression.
- *
- * The main surface is Y-tiled and at plane index 0, the CCS is linear and
- * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in
- * main surface. In other words, 4 bits in CCS map to a main surface cache
- * line pair. The main surface pitch is required to be a multiple of four
- * Y-tile widths.
- */
-#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS fourcc_mod_code(INTEL, 6)
-
-/*
- * Intel color control surfaces (CCS) for Gen-12 media compression
- *
- * The main surface is Y-tiled and at plane index 0, the CCS is linear and
- * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in
- * main surface. In other words, 4 bits in CCS map to a main surface cache
- * line pair. The main surface pitch is required to be a multiple of four
- * Y-tile widths. For semi-planar formats like NV12, CCS planes follow the
- * Y and UV planes i.e., planes 0 and 1 are used for Y and UV surfaces,
- * planes 2 and 3 for the respective CCS.
- */
-#define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7)
-
-/*
- * Intel Color Control Surface with Clear Color (CCS) for Gen-12 render
- * compression.
- *
- * The main surface is Y-tiled and is at plane index 0 whereas CCS is linear
- * and at index 1. The clear color is stored at index 2, and the pitch should
- * be 64 bytes aligned. The clear color structure is 256 bits. The first 128 bits
- * represents Raw Clear Color Red, Green, Blue and Alpha color each represented
- * by 32 bits. The raw clear color is consumed by the 3d engine and generates
- * the converted clear color of size 64 bits. The first 32 bits store the Lower
- * Converted Clear Color value and the next 32 bits store the Higher Converted
- * Clear Color value when applicable. The Converted Clear Color values are
- * consumed by the DE. The last 64 bits are used to store Color Discard Enable
- * and Depth Clear Value Valid which are ignored by the DE. A CCS cache line
- * corresponds to an area of 4x1 tiles in the main surface. The main surface
- * pitch is required to be a multiple of 4 tile widths.
- */
-#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC fourcc_mod_code(INTEL, 8)
-
-/*
- * Intel Tile 4 layout
- *
- * This is a tiled layout using 4KB tiles in a row-major layout. It has the same
- * shape as Tile Y at two granularities: 4KB (128B x 32) and 64B (16B x 4). It
- * only differs from Tile Y at the 256B granularity in between. At this
- * granularity, Tile Y has a shape of 16B x 32 rows, but this tiling has a shape
- * of 64B x 8 rows.
- */
-#define I915_FORMAT_MOD_4_TILED fourcc_mod_code(INTEL, 9)
-
-/*
- * Intel color control surfaces (CCS) for DG2 render compression.
- *
- * The main surface is Tile 4 and at plane index 0. The CCS data is stored
- * outside of the GEM object in a reserved memory area dedicated for the
- * storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
- * main surface pitch is required to be a multiple of four Tile 4 widths.
- */
-#define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS fourcc_mod_code(INTEL, 10)
-
-/*
- * Intel color control surfaces (CCS) for DG2 media compression.
- *
- * The main surface is Tile 4 and at plane index 0. For semi-planar formats
- * like NV12, the Y and UV planes are Tile 4 and are located at plane indices
- * 0 and 1, respectively. The CCS for all planes are stored outside of the
- * GEM object in a reserved memory area dedicated for the storage of the
- * CCS data for all RC/RC_CC/MC compressible GEM objects. The main surface
- * pitch is required to be a multiple of four Tile 4 widths.
- */
-#define I915_FORMAT_MOD_4_TILED_DG2_MC_CCS fourcc_mod_code(INTEL, 11)
-
-/*
- * Intel Color Control Surface with Clear Color (CCS) for DG2 render compression.
- *
- * The main surface is Tile 4 and at plane index 0. The CCS data is stored
- * outside of the GEM object in a reserved memory area dedicated for the
- * storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
- * main surface pitch is required to be a multiple of four Tile 4 widths. The
- * clear color is stored at plane index 1 and the pitch should be 64 bytes
- * aligned. The format of the 256 bits of clear color data matches the one used
- * for the I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC modifier, see its description
- * for details.
- */
-#define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC fourcc_mod_code(INTEL, 12)
-
-/*
- * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
- *
- * Macroblocks are laid in a Z-shape, and each pixel data is following the
- * standard NV12 style.
- * As for NV12, an image is the result of two frame buffers: one for Y,
- * one for the interleaved Cb/Cr components (1/2 the height of the Y buffer).
- * Alignment requirements are (for each buffer):
- * - multiple of 128 pixels for the width
- * - multiple of 32 pixels for the height
- *
- * For more information: see https://linuxtv.org/downloads/v4l-dvb-apis/re32.html
- */
-#define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1)
-
-/*
- * Tiled, 16 (pixels) x 16 (lines) - sized macroblocks
- *
- * This is a simple tiled layout using tiles of 16x16 pixels in a row-major
- * layout. For YCbCr formats Cb/Cr components are taken in such a way that
- * they correspond to their 16x16 luma block.
- */
-#define DRM_FORMAT_MOD_SAMSUNG_16_16_TILE fourcc_mod_code(SAMSUNG, 2)
-
-/*
- * Qualcomm Compressed Format
- *
- * Refers to a compressed variant of the base format that is compressed.
- * Implementation may be platform and base-format specific.
- *
- * Each macrotile consists of m x n (mostly 4 x 4) tiles.
- * Pixel data pitch/stride is aligned with macrotile width.
- * Pixel data height is aligned with macrotile height.
- * Entire pixel data buffer is aligned with 4k(bytes).
- */
-#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
-
-/*
- * Qualcomm Tiled Format
- *
- * Similar to DRM_FORMAT_MOD_QCOM_COMPRESSED but not compressed.
- * Implementation may be platform and base-format specific.
- *
- * Each macrotile consists of m x n (mostly 4 x 4) tiles.
- * Pixel data pitch/stride is aligned with macrotile width.
- * Pixel data height is aligned with macrotile height.
- * Entire pixel data buffer is aligned with 4k(bytes).
- */
-#define DRM_FORMAT_MOD_QCOM_TILED3 fourcc_mod_code(QCOM, 3)
-
-/*
- * Qualcomm Alternate Tiled Format
- *
- * Alternate tiled format typically only used within GMEM.
- * Implementation may be platform and base-format specific.
- */
-#define DRM_FORMAT_MOD_QCOM_TILED2 fourcc_mod_code(QCOM, 2)
-
-
-/* Vivante framebuffer modifiers */
-
-/*
- * Vivante 4x4 tiling layout
- *
- * This is a simple tiled layout using tiles of 4x4 pixels in a row-major
- * layout.
- */
-#define DRM_FORMAT_MOD_VIVANTE_TILED fourcc_mod_code(VIVANTE, 1)
-
-/*
- * Vivante 64x64 super-tiling layout
- *
- * This is a tiled layout using 64x64 pixel super-tiles, where each super-tile
- * contains 8x4 groups of 2x4 tiles of 4x4 pixels (like above) each, all in row-
- * major layout.
- *
- * For more information: see
- * https://github.com/etnaviv/etna_viv/blob/master/doc/hardware.md#texture-tiling
- */
-#define DRM_FORMAT_MOD_VIVANTE_SUPER_TILED fourcc_mod_code(VIVANTE, 2)
-
-/*
- * Vivante 4x4 tiling layout for dual-pipe
- *
- * Same as the 4x4 tiling layout, except every second 4x4 pixel tile starts at a
- * different base address. Offsets from the base addresses are therefore halved
- * compared to the non-split tiled layout.
- */
-#define DRM_FORMAT_MOD_VIVANTE_SPLIT_TILED fourcc_mod_code(VIVANTE, 3)
-
-/*
- * Vivante 64x64 super-tiling layout for dual-pipe
- *
- * Same as the 64x64 super-tiling layout, except every second 4x4 pixel tile
- * starts at a different base address. Offsets from the base addresses are
- * therefore halved compared to the non-split super-tiled layout.
- */
-#define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4)
-
-/* NVIDIA frame buffer modifiers */
-
-/*
- * Tegra Tiled Layout, used by Tegra 2, 3 and 4.
- *
- * Pixels are arranged in simple tiles of 16 x 16 bytes.
- */
-#define DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED fourcc_mod_code(NVIDIA, 1)
-
-/*
- * Generalized Block Linear layout, used by desktop GPUs starting with NV50/G80,
- * and Tegra GPUs starting with Tegra K1.
- *
- * Pixels are arranged in Groups of Bytes (GOBs). GOB size and layout varies
- * based on the architecture generation. GOBs themselves are then arranged in
- * 3D blocks, with the block dimensions (in terms of GOBs) always being a power
- * of two, and hence expressible as their log2 equivalent (E.g., "2" represents
- * a block depth or height of "4").
- *
- * Chapter 20 "Pixel Memory Formats" of the Tegra X1 TRM describes this format
- * in full detail.
- *
- * Macro
- * Bits Param Description
- * ---- ----- -----------------------------------------------------------------
- *
- * 3:0 h log2(height) of each block, in GOBs. Placed here for
- * compatibility with the existing
- * DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK()-based modifiers.
- *
- * 4:4 - Must be 1, to indicate block-linear layout. Necessary for
- * compatibility with the existing
- * DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK()-based modifiers.
- *
- * 8:5 - Reserved (To support 3D-surfaces with variable log2(depth) block
- * size). Must be zero.
- *
- * Note there is no log2(width) parameter. Some portions of the
- * hardware support a block width of two gobs, but it is impractical
- * to use due to lack of support elsewhere, and has no known
- * benefits.
- *
- * 11:9 - Reserved (To support 2D-array textures with variable array stride
- * in blocks, specified via log2(tile width in blocks)). Must be
- * zero.
- *
- * 19:12 k Page Kind. This value directly maps to a field in the page
- * tables of all GPUs >= NV50. It affects the exact layout of bits
- * in memory and can be derived from the tuple
- *
- * (format, GPU model, compression type, samples per pixel)
- *
- * Where compression type is defined below. If GPU model were
- * implied by the format modifier, format, or memory buffer, page
- * kind would not need to be included in the modifier itself, but
- * since the modifier should define the layout of the associated
- * memory buffer independent from any device or other context, it
- * must be included here.
- *
- * 21:20 g GOB Height and Page Kind Generation. The height of a GOB changed
- * starting with Fermi GPUs. Additionally, the mapping between page
- * kind and bit layout has changed at various points.
- *
- * 0 = Gob Height 8, Fermi - Volta, Tegra K1+ Page Kind mapping
- * 1 = Gob Height 4, G80 - GT2XX Page Kind mapping
- * 2 = Gob Height 8, Turing+ Page Kind mapping
- * 3 = Reserved for future use.
- *
- * 22:22 s Sector layout. On Tegra GPUs prior to Xavier, there is a further
- * bit remapping step that occurs at an even lower level than the
- * page kind and block linear swizzles. This causes the layout of
- * surfaces mapped in those SOC's GPUs to be incompatible with the
- * equivalent mapping on other GPUs in the same system.
- *
- * 0 = Tegra K1 - Tegra Parker/TX2 Layout.
- * 1 = Desktop GPU and Tegra Xavier+ Layout
- *
- * 25:23 c Lossless Framebuffer Compression type.
- *
- * 0 = none
- * 1 = ROP/3D, layout 1, exact compression format implied by Page
- * Kind field
- * 2 = ROP/3D, layout 2, exact compression format implied by Page
- * Kind field
- * 3 = CDE horizontal
- * 4 = CDE vertical
- * 5 = Reserved for future use
- * 6 = Reserved for future use
- * 7 = Reserved for future use
- *
- * 55:25 - Reserved for future use. Must be zero.
- */
-#define DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(c, s, g, k, h) \
- fourcc_mod_code(NVIDIA, (0x10 | \
- ((h) & 0xf) | \
- (((k) & 0xff) << 12) | \
- (((g) & 0x3) << 20) | \
- (((s) & 0x1) << 22) | \
- (((c) & 0x7) << 23)))
-
-/* To grandfather in prior block linear format modifiers to the above layout,
- * the page kind "0", which corresponds to "pitch/linear" and hence is unusable
- * with block-linear layouts, is remapped within drivers to the value 0xfe,
- * which corresponds to the "generic" kind used for simple single-sample
- * uncompressed color formats on Fermi - Volta GPUs.
- */
-static __inline__ __u64
-drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
-{
- if (!(modifier & 0x10) || (modifier & (0xff << 12)))
- return modifier;
- else
- return modifier | (0xfe << 12);
-}
-
-/*
- * 16Bx2 Block Linear layout, used by Tegra K1 and later
- *
- * Pixels are arranged in 64x8 Groups Of Bytes (GOBs). GOBs are then stacked
- * vertically by a power of 2 (1 to 32 GOBs) to form a block.
- *
- * Within a GOB, data is ordered as 16B x 2 lines sectors laid in Z-shape.
- *
- * Parameter 'v' is the log2 encoding of the number of GOBs stacked vertically.
- * Valid values are:
- *
- * 0 == ONE_GOB
- * 1 == TWO_GOBS
- * 2 == FOUR_GOBS
- * 3 == EIGHT_GOBS
- * 4 == SIXTEEN_GOBS
- * 5 == THIRTYTWO_GOBS
- *
- * Chapter 20 "Pixel Memory Formats" of the Tegra X1 TRM describes this format
- * in full detail.
- */
-#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(v) \
- DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 0, 0, 0, (v))
-
-#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_ONE_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(0)
-#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_TWO_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(1)
-#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_FOUR_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(2)
-#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_EIGHT_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(3)
-#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_SIXTEEN_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(4)
-#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(5)
-
-/*
- * Some Broadcom modifiers take parameters, for example the number of
- * vertical lines in the image. Reserve the lower 32 bits for modifier
- * type, and the next 24 bits for parameters. Top 8 bits are the
- * vendor code.
- */
-#define __fourcc_mod_broadcom_param_shift 8
-#define __fourcc_mod_broadcom_param_bits 48
-#define fourcc_mod_broadcom_code(val, params) \
- fourcc_mod_code(BROADCOM, ((((__u64)params) << __fourcc_mod_broadcom_param_shift) | val))
-#define fourcc_mod_broadcom_param(m) \
- ((int)(((m) >> __fourcc_mod_broadcom_param_shift) & \
- ((1ULL << __fourcc_mod_broadcom_param_bits) - 1)))
-#define fourcc_mod_broadcom_mod(m) \
- ((m) & ~(((1ULL << __fourcc_mod_broadcom_param_bits) - 1) << \
- __fourcc_mod_broadcom_param_shift))
-
-/*
- * Broadcom VC4 "T" format
- *
- * This is the primary layout that the V3D GPU can texture from (it
- * can't do linear). The T format has:
- *
- * - 64b utiles of pixels in a raster-order grid according to cpp. It's 4x4
- * pixels at 32 bit depth.
- *
- * - 1k subtiles made of a 4x4 raster-order grid of 64b utiles (so usually
- * 16x16 pixels).
- *
- * - 4k tiles made of a 2x2 grid of 1k subtiles (so usually 32x32 pixels). On
- * even 4k tile rows, they're arranged as (BL, TL, TR, BR), and on odd rows
- * they're (TR, BR, BL, TL), where bottom left is start of memory.
- *
- * - an image made of 4k tiles in rows either left-to-right (even rows of 4k
- * tiles) or right-to-left (odd rows of 4k tiles).
- */
-#define DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED fourcc_mod_code(BROADCOM, 1)
-
-/*
- * Broadcom SAND format
- *
- * This is the native format that the H.264 codec block uses. For VC4
- * HVS, it is only valid for H.264 (NV12/21) and RGBA modes.
- *
- * The image can be considered to be split into columns, and the
- * columns are placed consecutively into memory. The width of those
- * columns can be either 32, 64, 128, or 256 pixels, but in practice
- * only 128 pixel columns are used.
- *
- * The pitch between the start of each column is set to optimally
- * switch between SDRAM banks. This is passed as the number of lines
- * of column width in the modifier (we can't use the stride value due
- * to various core checks that look at it , so you should set the
- * stride to width*cpp).
- *
- * Note that the column height for this format modifier is the same
- * for all of the planes, assuming that each column contains both Y
- * and UV. Some SAND-using hardware stores UV in a separate tiled
- * image from Y to reduce the column height, which is not supported
- * with these modifiers.
- *
- * The DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT modifier is also
- * supported for DRM_FORMAT_P030 where the columns remain as 128 bytes
- * wide, but as this is a 10 bpp format that translates to 96 pixels.
- */
-
-#define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \
- fourcc_mod_broadcom_code(2, v)
-#define DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(v) \
- fourcc_mod_broadcom_code(3, v)
-#define DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(v) \
- fourcc_mod_broadcom_code(4, v)
-#define DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(v) \
- fourcc_mod_broadcom_code(5, v)
-
-#define DRM_FORMAT_MOD_BROADCOM_SAND32 \
- DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(0)
-#define DRM_FORMAT_MOD_BROADCOM_SAND64 \
- DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(0)
-#define DRM_FORMAT_MOD_BROADCOM_SAND128 \
- DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(0)
-#define DRM_FORMAT_MOD_BROADCOM_SAND256 \
- DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(0)
-
-/* Broadcom UIF format
- *
- * This is the common format for the current Broadcom multimedia
- * blocks, including V3D 3.x and newer, newer video codecs, and
- * displays.
- *
- * The image consists of utiles (64b blocks), UIF blocks (2x2 utiles),
- * and macroblocks (4x4 UIF blocks). Those 4x4 UIF block groups are
- * stored in columns, with padding between the columns to ensure that
- * moving from one column to the next doesn't hit the same SDRAM page
- * bank.
- *
- * To calculate the padding, it is assumed that each hardware block
- * and the software driving it knows the platform's SDRAM page size,
- * number of banks, and XOR address, and that it's identical between
- * all blocks using the format. This tiling modifier will use XOR as
- * necessary to reduce the padding. If a hardware block can't do XOR,
- * the assumption is that a no-XOR tiling modifier will be created.
- */
-#define DRM_FORMAT_MOD_BROADCOM_UIF fourcc_mod_code(BROADCOM, 6)
-
-/*
- * Arm Framebuffer Compression (AFBC) modifiers
- *
- * AFBC is a proprietary lossless image compression protocol and format.
- * It provides fine-grained random access and minimizes the amount of data
- * transferred between IP blocks.
- *
- * AFBC has several features which may be supported and/or used, which are
- * represented using bits in the modifier. Not all combinations are valid,
- * and different devices or use-cases may support different combinations.
- *
- * Further information on the use of AFBC modifiers can be found in
- * Documentation/gpu/afbc.rst
- */
-
-/*
- * The top 4 bits (out of the 56 bits alloted for specifying vendor specific
- * modifiers) denote the category for modifiers. Currently we have three
- * categories of modifiers ie AFBC, MISC and AFRC. We can have a maximum of
- * sixteen different categories.
- */
-#define DRM_FORMAT_MOD_ARM_CODE(__type, __val) \
- fourcc_mod_code(ARM, ((__u64)(__type) << 52) | ((__val) & 0x000fffffffffffffULL))
-
-#define DRM_FORMAT_MOD_ARM_TYPE_AFBC 0x00
-#define DRM_FORMAT_MOD_ARM_TYPE_MISC 0x01
-
-#define DRM_FORMAT_MOD_ARM_AFBC(__afbc_mode) \
- DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFBC, __afbc_mode)
-
-/*
- * AFBC superblock size
- *
- * Indicates the superblock size(s) used for the AFBC buffer. The buffer
- * size (in pixels) must be aligned to a multiple of the superblock size.
- * Four lowest significant bits(LSBs) are reserved for block size.
- *
- * Where one superblock size is specified, it applies to all planes of the
- * buffer (e.g. 16x16, 32x8). When multiple superblock sizes are specified,
- * the first applies to the Luma plane and the second applies to the Chroma
- * plane(s). e.g. (32x8_64x4 means 32x8 Luma, with 64x4 Chroma).
- * Multiple superblock sizes are only valid for multi-plane YCbCr formats.
- */
-#define AFBC_FORMAT_MOD_BLOCK_SIZE_MASK 0xf
-#define AFBC_FORMAT_MOD_BLOCK_SIZE_16x16 (1ULL)
-#define AFBC_FORMAT_MOD_BLOCK_SIZE_32x8 (2ULL)
-#define AFBC_FORMAT_MOD_BLOCK_SIZE_64x4 (3ULL)
-#define AFBC_FORMAT_MOD_BLOCK_SIZE_32x8_64x4 (4ULL)
-
-/*
- * AFBC lossless colorspace transform
- *
- * Indicates that the buffer makes use of the AFBC lossless colorspace
- * transform.
- */
-#define AFBC_FORMAT_MOD_YTR (1ULL << 4)
-
-/*
- * AFBC block-split
- *
- * Indicates that the payload of each superblock is split. The second
- * half of the payload is positioned at a predefined offset from the start
- * of the superblock payload.
- */
-#define AFBC_FORMAT_MOD_SPLIT (1ULL << 5)
-
-/*
- * AFBC sparse layout
- *
- * This flag indicates that the payload of each superblock must be stored at a
- * predefined position relative to the other superblocks in the same AFBC
- * buffer. This order is the same order used by the header buffer. In this mode
- * each superblock is given the same amount of space as an uncompressed
- * superblock of the particular format would require, rounding up to the next
- * multiple of 128 bytes in size.
- */
-#define AFBC_FORMAT_MOD_SPARSE (1ULL << 6)
-
-/*
- * AFBC copy-block restrict
- *
- * Buffers with this flag must obey the copy-block restriction. The restriction
- * is such that there are no copy-blocks referring across the border of 8x8
- * blocks. For the subsampled data the 8x8 limitation is also subsampled.
- */
-#define AFBC_FORMAT_MOD_CBR (1ULL << 7)
-
-/*
- * AFBC tiled layout
- *
- * The tiled layout groups superblocks in 8x8 or 4x4 tiles, where all
- * superblocks inside a tile are stored together in memory. 8x8 tiles are used
- * for pixel formats up to and including 32 bpp while 4x4 tiles are used for
- * larger bpp formats. The order between the tiles is scan line.
- * When the tiled layout is used, the buffer size (in pixels) must be aligned
- * to the tile size.
- */
-#define AFBC_FORMAT_MOD_TILED (1ULL << 8)
-
-/*
- * AFBC solid color blocks
- *
- * Indicates that the buffer makes use of solid-color blocks, whereby bandwidth
- * can be reduced if a whole superblock is a single color.
- */
-#define AFBC_FORMAT_MOD_SC (1ULL << 9)
-
-/*
- * AFBC double-buffer
- *
- * Indicates that the buffer is allocated in a layout safe for front-buffer
- * rendering.
- */
-#define AFBC_FORMAT_MOD_DB (1ULL << 10)
-
-/*
- * AFBC buffer content hints
- *
- * Indicates that the buffer includes per-superblock content hints.
- */
-#define AFBC_FORMAT_MOD_BCH (1ULL << 11)
-
-/* AFBC uncompressed storage mode
- *
- * Indicates that the buffer is using AFBC uncompressed storage mode.
- * In this mode all superblock payloads in the buffer use the uncompressed
- * storage mode, which is usually only used for data which cannot be compressed.
- * The buffer layout is the same as for AFBC buffers without USM set, this only
- * affects the storage mode of the individual superblocks. Note that even a
- * buffer without USM set may use uncompressed storage mode for some or all
- * superblocks, USM just guarantees it for all.
- */
-#define AFBC_FORMAT_MOD_USM (1ULL << 12)
-
-/*
- * Arm Fixed-Rate Compression (AFRC) modifiers
- *
- * AFRC is a proprietary fixed rate image compression protocol and format,
- * designed to provide guaranteed bandwidth and memory footprint
- * reductions in graphics and media use-cases.
- *
- * AFRC buffers consist of one or more planes, with the same components
- * and meaning as an uncompressed buffer using the same pixel format.
- *
- * Within each plane, the pixel/luma/chroma values are grouped into
- * "coding unit" blocks which are individually compressed to a
- * fixed size (in bytes). All coding units within a given plane of a buffer
- * store the same number of values, and have the same compressed size.
- *
- * The coding unit size is configurable, allowing different rates of compression.
- *
- * The start of each AFRC buffer plane must be aligned to an alignment granule which
- * depends on the coding unit size.
- *
- * Coding Unit Size Plane Alignment
- * ---------------- ---------------
- * 16 bytes 1024 bytes
- * 24 bytes 512 bytes
- * 32 bytes 2048 bytes
- *
- * Coding units are grouped into paging tiles. AFRC buffer dimensions must be aligned
- * to a multiple of the paging tile dimensions.
- * The dimensions of each paging tile depend on whether the buffer is optimised for
- * scanline (SCAN layout) or rotated (ROT layout) access.
- *
- * Layout Paging Tile Width Paging Tile Height
- * ------ ----------------- ------------------
- * SCAN 16 coding units 4 coding units
- * ROT 8 coding units 8 coding units
- *
- * The dimensions of each coding unit depend on the number of components
- * in the compressed plane and whether the buffer is optimised for
- * scanline (SCAN layout) or rotated (ROT layout) access.
- *
- * Number of Components in Plane Layout Coding Unit Width Coding Unit Height
- * ----------------------------- --------- ----------------- ------------------
- * 1 SCAN 16 samples 4 samples
- * Example: 16x4 luma samples in a 'Y' plane
- * 16x4 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer
- * ----------------------------- --------- ----------------- ------------------
- * 1 ROT 8 samples 8 samples
- * Example: 8x8 luma samples in a 'Y' plane
- * 8x8 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer
- * ----------------------------- --------- ----------------- ------------------
- * 2 DONT CARE 8 samples 4 samples
- * Example: 8x4 chroma pairs in the 'UV' plane of a semi-planar YUV buffer
- * ----------------------------- --------- ----------------- ------------------
- * 3 DONT CARE 4 samples 4 samples
- * Example: 4x4 pixels in an RGB buffer without alpha
- * ----------------------------- --------- ----------------- ------------------
- * 4 DONT CARE 4 samples 4 samples
- * Example: 4x4 pixels in an RGB buffer with alpha
- */
-
-#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02
-
-#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) \
- DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode)
-
-/*
- * AFRC coding unit size modifier.
- *
- * Indicates the number of bytes used to store each compressed coding unit for
- * one or more planes in an AFRC encoded buffer. The coding unit size for chrominance
- * is the same for both Cb and Cr, which may be stored in separate planes.
- *
- * AFRC_FORMAT_MOD_CU_SIZE_P0 indicates the number of bytes used to store
- * each compressed coding unit in the first plane of the buffer. For RGBA buffers
- * this is the only plane, while for semi-planar and fully-planar YUV buffers,
- * this corresponds to the luma plane.
- *
- * AFRC_FORMAT_MOD_CU_SIZE_P12 indicates the number of bytes used to store
- * each compressed coding unit in the second and third planes in the buffer.
- * For semi-planar and fully-planar YUV buffers, this corresponds to the chroma plane(s).
- *
- * For single-plane buffers, AFRC_FORMAT_MOD_CU_SIZE_P0 must be specified
- * and AFRC_FORMAT_MOD_CU_SIZE_P12 must be zero.
- * For semi-planar and fully-planar buffers, both AFRC_FORMAT_MOD_CU_SIZE_P0 and
- * AFRC_FORMAT_MOD_CU_SIZE_P12 must be specified.
- */
-#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf
-#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL)
-#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL)
-#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL)
-
-#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size)
-#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4)
-
-/*
- * AFRC scanline memory layout.
- *
- * Indicates if the buffer uses the scanline-optimised layout
- * for an AFRC encoded buffer, otherwise, it uses the rotation-optimised layout.
- * The memory layout is the same for all planes.
- */
-#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8)
-
-/*
- * Arm 16x16 Block U-Interleaved modifier
- *
- * This is used by Arm Mali Utgard and Midgard GPUs. It divides the image
- * into 16x16 pixel blocks. Blocks are stored linearly in order, but pixels
- * in the block are reordered.
- */
-#define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED \
- DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
-
-/*
- * Allwinner tiled modifier
- *
- * This tiling mode is implemented by the VPU found on all Allwinner platforms,
- * codenamed sunxi. It is associated with a YUV format that uses either 2 or 3
- * planes.
- *
- * With this tiling, the luminance samples are disposed in tiles representing
- * 32x32 pixels and the chrominance samples in tiles representing 32x64 pixels.
- * The pixel order in each tile is linear and the tiles are disposed linearly,
- * both in row-major order.
- */
-#define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
-
-/*
- * Amlogic Video Framebuffer Compression modifiers
- *
- * Amlogic uses a proprietary lossless image compression protocol and format
- * for their hardware video codec accelerators, either video decoders or
- * video input encoders.
- *
- * It considerably reduces memory bandwidth while writing and reading
- * frames in memory.
- *
- * The underlying storage is considered to be 3 components, 8bit or 10-bit
- * per component YCbCr 420, single plane :
- * - DRM_FORMAT_YUV420_8BIT
- * - DRM_FORMAT_YUV420_10BIT
- *
- * The first 8 bits of the mode defines the layout, then the following 8 bits
- * defines the options changing the layout.
- *
- * Not all combinations are valid, and different SoCs may support different
- * combinations of layout and options.
- */
-#define __fourcc_mod_amlogic_layout_mask 0xff
-#define __fourcc_mod_amlogic_options_shift 8
-#define __fourcc_mod_amlogic_options_mask 0xff
-
-#define DRM_FORMAT_MOD_AMLOGIC_FBC(__layout, __options) \
- fourcc_mod_code(AMLOGIC, \
- ((__layout) & __fourcc_mod_amlogic_layout_mask) | \
- (((__options) & __fourcc_mod_amlogic_options_mask) \
- << __fourcc_mod_amlogic_options_shift))
-
-/* Amlogic FBC Layouts */
-
-/*
- * Amlogic FBC Basic Layout
- *
- * The basic layout is composed of:
- * - a body content organized in 64x32 superblocks with 4096 bytes per
- * superblock in default mode.
- * - a 32 bytes per 128x64 header block
- *
- * This layout is transferrable between Amlogic SoCs supporting this modifier.
- */
-#define AMLOGIC_FBC_LAYOUT_BASIC (1ULL)
-
-/*
- * Amlogic FBC Scatter Memory layout
- *
- * Indicates the header contains IOMMU references to the compressed
- * frames content to optimize memory access and layout.
- *
- * In this mode, only the header memory address is needed, thus the
- * content memory organization is tied to the current producer
- * execution and cannot be saved/dumped neither transferrable between
- * Amlogic SoCs supporting this modifier.
- *
- * Due to the nature of the layout, these buffers are not expected to
- * be accessible by the user-space clients, but only accessible by the
- * hardware producers and consumers.
- *
- * The user-space clients should expect a failure while trying to mmap
- * the DMA-BUF handle returned by the producer.
- */
-#define AMLOGIC_FBC_LAYOUT_SCATTER (2ULL)
-
-/* Amlogic FBC Layout Options Bit Mask */
-
-/*
- * Amlogic FBC Memory Saving mode
- *
- * Indicates the storage is packed when pixel size is multiple of word
- * boudaries, i.e. 8bit should be stored in this mode to save allocation
- * memory.
- *
- * This mode reduces body layout to 3072 bytes per 64x32 superblock with
- * the basic layout and 3200 bytes per 64x32 superblock combined with
- * the scatter layout.
- */
-#define AMLOGIC_FBC_OPTION_MEM_SAVING (1ULL << 0)
-
-/*
- * AMD modifiers
- *
- * Memory layout:
- *
- * without DCC:
- * - main surface
- *
- * with DCC & without DCC_RETILE:
- * - main surface in plane 0
- * - DCC surface in plane 1 (RB-aligned, pipe-aligned if DCC_PIPE_ALIGN is set)
- *
- * with DCC & DCC_RETILE:
- * - main surface in plane 0
- * - displayable DCC surface in plane 1 (not RB-aligned & not pipe-aligned)
- * - pipe-aligned DCC surface in plane 2 (RB-aligned & pipe-aligned)
- *
- * For multi-plane formats the above surfaces get merged into one plane for
- * each format plane, based on the required alignment only.
- *
- * Bits Parameter Notes
- * ----- ------------------------ ---------------------------------------------
- *
- * 7:0 TILE_VERSION Values are AMD_FMT_MOD_TILE_VER_*
- * 12:8 TILE Values are AMD_FMT_MOD_TILE_<version>_*
- * 13 DCC
- * 14 DCC_RETILE
- * 15 DCC_PIPE_ALIGN
- * 16 DCC_INDEPENDENT_64B
- * 17 DCC_INDEPENDENT_128B
- * 19:18 DCC_MAX_COMPRESSED_BLOCK Values are AMD_FMT_MOD_DCC_BLOCK_*
- * 20 DCC_CONSTANT_ENCODE
- * 23:21 PIPE_XOR_BITS Only for some chips
- * 26:24 BANK_XOR_BITS Only for some chips
- * 29:27 PACKERS Only for some chips
- * 32:30 RB Only for some chips
- * 35:33 PIPE Only for some chips
- * 55:36 - Reserved for future use, must be zero
- */
-#define AMD_FMT_MOD fourcc_mod_code(AMD, 0)
-
-#define IS_AMD_FMT_MOD(val) (((val) >> 56) == DRM_FORMAT_MOD_VENDOR_AMD)
-
-/* Reserve 0 for GFX8 and older */
-#define AMD_FMT_MOD_TILE_VER_GFX9 1
-#define AMD_FMT_MOD_TILE_VER_GFX10 2
-#define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3
-#define AMD_FMT_MOD_TILE_VER_GFX11 4
-
-/*
- * 64K_S is the same for GFX9/GFX10/GFX10_RBPLUS and hence has GFX9 as canonical
- * version.
- */
-#define AMD_FMT_MOD_TILE_GFX9_64K_S 9
-
-/*
- * 64K_D for non-32 bpp is the same for GFX9/GFX10/GFX10_RBPLUS and hence has
- * GFX9 as canonical version.
- */
-#define AMD_FMT_MOD_TILE_GFX9_64K_D 10
-#define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25
-#define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26
-#define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27
-#define AMD_FMT_MOD_TILE_GFX11_256K_R_X 31
-
-#define AMD_FMT_MOD_DCC_BLOCK_64B 0
-#define AMD_FMT_MOD_DCC_BLOCK_128B 1
-#define AMD_FMT_MOD_DCC_BLOCK_256B 2
-
-#define AMD_FMT_MOD_TILE_VERSION_SHIFT 0
-#define AMD_FMT_MOD_TILE_VERSION_MASK 0xFF
-#define AMD_FMT_MOD_TILE_SHIFT 8
-#define AMD_FMT_MOD_TILE_MASK 0x1F
-
-/* Whether DCC compression is enabled. */
-#define AMD_FMT_MOD_DCC_SHIFT 13
-#define AMD_FMT_MOD_DCC_MASK 0x1
-
-/*
- * Whether to include two DCC surfaces, one which is rb & pipe aligned, and
- * one which is not-aligned.
- */
-#define AMD_FMT_MOD_DCC_RETILE_SHIFT 14
-#define AMD_FMT_MOD_DCC_RETILE_MASK 0x1
-
-/* Only set if DCC_RETILE = false */
-#define AMD_FMT_MOD_DCC_PIPE_ALIGN_SHIFT 15
-#define AMD_FMT_MOD_DCC_PIPE_ALIGN_MASK 0x1
-
-#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_SHIFT 16
-#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_MASK 0x1
-#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_SHIFT 17
-#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_MASK 0x1
-#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_SHIFT 18
-#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_MASK 0x3
-
-/*
- * DCC supports embedding some clear colors directly in the DCC surface.
- * However, on older GPUs the rendering HW ignores the embedded clear color
- * and prefers the driver provided color. This necessitates doing a fastclear
- * eliminate operation before a process transfers control.
- *
- * If this bit is set that means the fastclear eliminate is not needed for these
- * embeddable colors.
- */
-#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_SHIFT 20
-#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_MASK 0x1
-
-/*
- * The below fields are for accounting for per GPU differences. These are only
- * relevant for GFX9 and later and if the tile field is *_X/_T.
- *
- * PIPE_XOR_BITS = always needed
- * BANK_XOR_BITS = only for TILE_VER_GFX9
- * PACKERS = only for TILE_VER_GFX10_RBPLUS
- * RB = only for TILE_VER_GFX9 & DCC
- * PIPE = only for TILE_VER_GFX9 & DCC & (DCC_RETILE | DCC_PIPE_ALIGN)
- */
-#define AMD_FMT_MOD_PIPE_XOR_BITS_SHIFT 21
-#define AMD_FMT_MOD_PIPE_XOR_BITS_MASK 0x7
-#define AMD_FMT_MOD_BANK_XOR_BITS_SHIFT 24
-#define AMD_FMT_MOD_BANK_XOR_BITS_MASK 0x7
-#define AMD_FMT_MOD_PACKERS_SHIFT 27
-#define AMD_FMT_MOD_PACKERS_MASK 0x7
-#define AMD_FMT_MOD_RB_SHIFT 30
-#define AMD_FMT_MOD_RB_MASK 0x7
-#define AMD_FMT_MOD_PIPE_SHIFT 33
-#define AMD_FMT_MOD_PIPE_MASK 0x7
-
-#define AMD_FMT_MOD_SET(field, value) \
- ((__u64)(value) << AMD_FMT_MOD_##field##_SHIFT)
-#define AMD_FMT_MOD_GET(field, value) \
- (((value) >> AMD_FMT_MOD_##field##_SHIFT) & AMD_FMT_MOD_##field##_MASK)
-#define AMD_FMT_MOD_CLEAR(field) \
- (~((__u64)AMD_FMT_MOD_##field##_MASK << AMD_FMT_MOD_##field##_SHIFT))
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* DRM_FOURCC_H */
diff --git a/libdrm/libdrm/drm_mode.h b/libdrm/libdrm/drm_mode.h
deleted file mode 100644
index 9b6722d..0000000
--- a/libdrm/libdrm/drm_mode.h
+++ /dev/null
@@ -1,1129 +0,0 @@
-/*
- * Copyright (c) 2007 Dave Airlie <airlied@linux.ie>
- * Copyright (c) 2007 Jakob Bornecrantz <wallbraker@gmail.com>
- * Copyright (c) 2008 Red Hat Inc.
- * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * Copyright (c) 2007-2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef _DRM_MODE_H
-#define _DRM_MODE_H
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/**
- * DOC: overview
- *
- * DRM exposes many UAPI and structure definition to have a consistent
- * and standardized interface with user.
- * Userspace can refer to these structure definitions and UAPI formats
- * to communicate to driver
- */
-
-#define DRM_CONNECTOR_NAME_LEN 32
-#define DRM_DISPLAY_MODE_LEN 32
-#define DRM_PROP_NAME_LEN 32
-
-#define DRM_MODE_TYPE_BUILTIN (1<<0) /* deprecated */
-#define DRM_MODE_TYPE_CLOCK_C ((1<<1) | DRM_MODE_TYPE_BUILTIN) /* deprecated */
-#define DRM_MODE_TYPE_CRTC_C ((1<<2) | DRM_MODE_TYPE_BUILTIN) /* deprecated */
-#define DRM_MODE_TYPE_PREFERRED (1<<3)
-#define DRM_MODE_TYPE_DEFAULT (1<<4) /* deprecated */
-#define DRM_MODE_TYPE_USERDEF (1<<5)
-#define DRM_MODE_TYPE_DRIVER (1<<6)
-
-#define DRM_MODE_TYPE_ALL (DRM_MODE_TYPE_PREFERRED | \
- DRM_MODE_TYPE_USERDEF | \
- DRM_MODE_TYPE_DRIVER)
-
-/* Video mode flags */
-/* bit compatible with the xrandr RR_ definitions (bits 0-13)
- *
- * ABI warning: Existing userspace really expects
- * the mode flags to match the xrandr definitions. Any
- * changes that don't match the xrandr definitions will
- * likely need a new client cap or some other mechanism
- * to avoid breaking existing userspace. This includes
- * allocating new flags in the previously unused bits!
- */
-#define DRM_MODE_FLAG_PHSYNC (1<<0)
-#define DRM_MODE_FLAG_NHSYNC (1<<1)
-#define DRM_MODE_FLAG_PVSYNC (1<<2)
-#define DRM_MODE_FLAG_NVSYNC (1<<3)
-#define DRM_MODE_FLAG_INTERLACE (1<<4)
-#define DRM_MODE_FLAG_DBLSCAN (1<<5)
-#define DRM_MODE_FLAG_CSYNC (1<<6)
-#define DRM_MODE_FLAG_PCSYNC (1<<7)
-#define DRM_MODE_FLAG_NCSYNC (1<<8)
-#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */
-#define DRM_MODE_FLAG_BCAST (1<<10) /* deprecated */
-#define DRM_MODE_FLAG_PIXMUX (1<<11) /* deprecated */
-#define DRM_MODE_FLAG_DBLCLK (1<<12)
-#define DRM_MODE_FLAG_CLKDIV2 (1<<13)
- /*
- * When adding a new stereo mode don't forget to adjust DRM_MODE_FLAGS_3D_MAX
- * (define not exposed to user space).
- */
-#define DRM_MODE_FLAG_3D_MASK (0x1f<<14)
-#define DRM_MODE_FLAG_3D_NONE (0<<14)
-#define DRM_MODE_FLAG_3D_FRAME_PACKING (1<<14)
-#define DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE (2<<14)
-#define DRM_MODE_FLAG_3D_LINE_ALTERNATIVE (3<<14)
-#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL (4<<14)
-#define DRM_MODE_FLAG_3D_L_DEPTH (5<<14)
-#define DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH (6<<14)
-#define DRM_MODE_FLAG_3D_TOP_AND_BOTTOM (7<<14)
-#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF (8<<14)
-
-/* Picture aspect ratio options */
-#define DRM_MODE_PICTURE_ASPECT_NONE 0
-#define DRM_MODE_PICTURE_ASPECT_4_3 1
-#define DRM_MODE_PICTURE_ASPECT_16_9 2
-#define DRM_MODE_PICTURE_ASPECT_64_27 3
-#define DRM_MODE_PICTURE_ASPECT_256_135 4
-
-/* Content type options */
-#define DRM_MODE_CONTENT_TYPE_NO_DATA 0
-#define DRM_MODE_CONTENT_TYPE_GRAPHICS 1
-#define DRM_MODE_CONTENT_TYPE_PHOTO 2
-#define DRM_MODE_CONTENT_TYPE_CINEMA 3
-#define DRM_MODE_CONTENT_TYPE_GAME 4
-
-/* Aspect ratio flag bitmask (4 bits 22:19) */
-#define DRM_MODE_FLAG_PIC_AR_MASK (0x0F<<19)
-#define DRM_MODE_FLAG_PIC_AR_NONE \
- (DRM_MODE_PICTURE_ASPECT_NONE<<19)
-#define DRM_MODE_FLAG_PIC_AR_4_3 \
- (DRM_MODE_PICTURE_ASPECT_4_3<<19)
-#define DRM_MODE_FLAG_PIC_AR_16_9 \
- (DRM_MODE_PICTURE_ASPECT_16_9<<19)
-#define DRM_MODE_FLAG_PIC_AR_64_27 \
- (DRM_MODE_PICTURE_ASPECT_64_27<<19)
-#define DRM_MODE_FLAG_PIC_AR_256_135 \
- (DRM_MODE_PICTURE_ASPECT_256_135<<19)
-
-#define DRM_MODE_FLAG_ALL (DRM_MODE_FLAG_PHSYNC | \
- DRM_MODE_FLAG_NHSYNC | \
- DRM_MODE_FLAG_PVSYNC | \
- DRM_MODE_FLAG_NVSYNC | \
- DRM_MODE_FLAG_INTERLACE | \
- DRM_MODE_FLAG_DBLSCAN | \
- DRM_MODE_FLAG_CSYNC | \
- DRM_MODE_FLAG_PCSYNC | \
- DRM_MODE_FLAG_NCSYNC | \
- DRM_MODE_FLAG_HSKEW | \
- DRM_MODE_FLAG_DBLCLK | \
- DRM_MODE_FLAG_CLKDIV2 | \
- DRM_MODE_FLAG_3D_MASK)
-
-/* DPMS flags */
-/* bit compatible with the xorg definitions. */
-#define DRM_MODE_DPMS_ON 0
-#define DRM_MODE_DPMS_STANDBY 1
-#define DRM_MODE_DPMS_SUSPEND 2
-#define DRM_MODE_DPMS_OFF 3
-
-/* Scaling mode options */
-#define DRM_MODE_SCALE_NONE 0 /* Unmodified timing (display or
- software can still scale) */
-#define DRM_MODE_SCALE_FULLSCREEN 1 /* Full screen, ignore aspect */
-#define DRM_MODE_SCALE_CENTER 2 /* Centered, no scaling */
-#define DRM_MODE_SCALE_ASPECT 3 /* Full screen, preserve aspect */
-
-/* Dithering mode options */
-#define DRM_MODE_DITHERING_OFF 0
-#define DRM_MODE_DITHERING_ON 1
-#define DRM_MODE_DITHERING_AUTO 2
-
-/* Dirty info options */
-#define DRM_MODE_DIRTY_OFF 0
-#define DRM_MODE_DIRTY_ON 1
-#define DRM_MODE_DIRTY_ANNOTATE 2
-
-/* Link Status options */
-#define DRM_MODE_LINK_STATUS_GOOD 0
-#define DRM_MODE_LINK_STATUS_BAD 1
-
-/*
- * DRM_MODE_ROTATE_<degrees>
- *
- * Signals that a drm plane is been rotated <degrees> degrees in counter
- * clockwise direction.
- *
- * This define is provided as a convenience, looking up the property id
- * using the name->prop id lookup is the preferred method.
- */
-#define DRM_MODE_ROTATE_0 (1<<0)
-#define DRM_MODE_ROTATE_90 (1<<1)
-#define DRM_MODE_ROTATE_180 (1<<2)
-#define DRM_MODE_ROTATE_270 (1<<3)
-
-/*
- * DRM_MODE_ROTATE_MASK
- *
- * Bitmask used to look for drm plane rotations.
- */
-#define DRM_MODE_ROTATE_MASK (\
- DRM_MODE_ROTATE_0 | \
- DRM_MODE_ROTATE_90 | \
- DRM_MODE_ROTATE_180 | \
- DRM_MODE_ROTATE_270)
-
-/*
- * DRM_MODE_REFLECT_<axis>
- *
- * Signals that the contents of a drm plane is reflected along the <axis> axis,
- * in the same way as mirroring.
- * See kerneldoc chapter "Plane Composition Properties" for more details.
- *
- * This define is provided as a convenience, looking up the property id
- * using the name->prop id lookup is the preferred method.
- */
-#define DRM_MODE_REFLECT_X (1<<4)
-#define DRM_MODE_REFLECT_Y (1<<5)
-
-/*
- * DRM_MODE_REFLECT_MASK
- *
- * Bitmask used to look for drm plane reflections.
- */
-#define DRM_MODE_REFLECT_MASK (\
- DRM_MODE_REFLECT_X | \
- DRM_MODE_REFLECT_Y)
-
-/* Content Protection Flags */
-#define DRM_MODE_CONTENT_PROTECTION_UNDESIRED 0
-#define DRM_MODE_CONTENT_PROTECTION_DESIRED 1
-#define DRM_MODE_CONTENT_PROTECTION_ENABLED 2
-
-/**
- * struct drm_mode_modeinfo - Display mode information.
- * @clock: pixel clock in kHz
- * @hdisplay: horizontal display size
- * @hsync_start: horizontal sync start
- * @hsync_end: horizontal sync end
- * @htotal: horizontal total size
- * @hskew: horizontal skew
- * @vdisplay: vertical display size
- * @vsync_start: vertical sync start
- * @vsync_end: vertical sync end
- * @vtotal: vertical total size
- * @vscan: vertical scan
- * @vrefresh: approximate vertical refresh rate in Hz
- * @flags: bitmask of misc. flags, see DRM_MODE_FLAG_* defines
- * @type: bitmask of type flags, see DRM_MODE_TYPE_* defines
- * @name: string describing the mode resolution
- *
- * This is the user-space API display mode information structure. For the
- * kernel version see struct drm_display_mode.
- */
-struct drm_mode_modeinfo {
- __u32 clock;
- __u16 hdisplay;
- __u16 hsync_start;
- __u16 hsync_end;
- __u16 htotal;
- __u16 hskew;
- __u16 vdisplay;
- __u16 vsync_start;
- __u16 vsync_end;
- __u16 vtotal;
- __u16 vscan;
-
- __u32 vrefresh;
-
- __u32 flags;
- __u32 type;
- char name[DRM_DISPLAY_MODE_LEN];
-};
-
-struct drm_mode_card_res {
- __u64 fb_id_ptr;
- __u64 crtc_id_ptr;
- __u64 connector_id_ptr;
- __u64 encoder_id_ptr;
- __u32 count_fbs;
- __u32 count_crtcs;
- __u32 count_connectors;
- __u32 count_encoders;
- __u32 min_width;
- __u32 max_width;
- __u32 min_height;
- __u32 max_height;
-};
-
-struct drm_mode_crtc {
- __u64 set_connectors_ptr;
- __u32 count_connectors;
-
- __u32 crtc_id; /**< Id */
- __u32 fb_id; /**< Id of framebuffer */
-
- __u32 x; /**< x Position on the framebuffer */
- __u32 y; /**< y Position on the framebuffer */
-
- __u32 gamma_size;
- __u32 mode_valid;
- struct drm_mode_modeinfo mode;
-};
-
-#define DRM_MODE_PRESENT_TOP_FIELD (1<<0)
-#define DRM_MODE_PRESENT_BOTTOM_FIELD (1<<1)
-
-/* Planes blend with or override other bits on the CRTC */
-struct drm_mode_set_plane {
- __u32 plane_id;
- __u32 crtc_id;
- __u32 fb_id; /* fb object contains surface format type */
- __u32 flags; /* see above flags */
-
- /* Signed dest location allows it to be partially off screen */
- __s32 crtc_x;
- __s32 crtc_y;
- __u32 crtc_w;
- __u32 crtc_h;
-
- /* Source values are 16.16 fixed point */
- __u32 src_x;
- __u32 src_y;
- __u32 src_h;
- __u32 src_w;
-};
-
-struct drm_mode_get_plane {
- __u32 plane_id;
-
- __u32 crtc_id;
- __u32 fb_id;
-
- __u32 possible_crtcs;
- __u32 gamma_size;
-
- __u32 count_format_types;
- __u64 format_type_ptr;
-};
-
-struct drm_mode_get_plane_res {
- __u64 plane_id_ptr;
- __u32 count_planes;
-};
-
-#define DRM_MODE_ENCODER_NONE 0
-#define DRM_MODE_ENCODER_DAC 1
-#define DRM_MODE_ENCODER_TMDS 2
-#define DRM_MODE_ENCODER_LVDS 3
-#define DRM_MODE_ENCODER_TVDAC 4
-#define DRM_MODE_ENCODER_VIRTUAL 5
-#define DRM_MODE_ENCODER_DSI 6
-#define DRM_MODE_ENCODER_DPMST 7
-#define DRM_MODE_ENCODER_DPI 8
-
-struct drm_mode_get_encoder {
- __u32 encoder_id;
- __u32 encoder_type;
-
- __u32 crtc_id; /**< Id of crtc */
-
- __u32 possible_crtcs;
- __u32 possible_clones;
-};
-
-/* This is for connectors with multiple signal types. */
-/* Try to match DRM_MODE_CONNECTOR_X as closely as possible. */
-enum drm_mode_subconnector {
- DRM_MODE_SUBCONNECTOR_Automatic = 0, /* DVI-I, TV */
- DRM_MODE_SUBCONNECTOR_Unknown = 0, /* DVI-I, TV, DP */
- DRM_MODE_SUBCONNECTOR_VGA = 1, /* DP */
- DRM_MODE_SUBCONNECTOR_DVID = 3, /* DVI-I DP */
- DRM_MODE_SUBCONNECTOR_DVIA = 4, /* DVI-I */
- DRM_MODE_SUBCONNECTOR_Composite = 5, /* TV */
- DRM_MODE_SUBCONNECTOR_SVIDEO = 6, /* TV */
- DRM_MODE_SUBCONNECTOR_Component = 8, /* TV */
- DRM_MODE_SUBCONNECTOR_SCART = 9, /* TV */
- DRM_MODE_SUBCONNECTOR_DisplayPort = 10, /* DP */
- DRM_MODE_SUBCONNECTOR_HDMIA = 11, /* DP */
- DRM_MODE_SUBCONNECTOR_Native = 15, /* DP */
- DRM_MODE_SUBCONNECTOR_Wireless = 18, /* DP */
-};
-
-#define DRM_MODE_CONNECTOR_Unknown 0
-#define DRM_MODE_CONNECTOR_VGA 1
-#define DRM_MODE_CONNECTOR_DVII 2
-#define DRM_MODE_CONNECTOR_DVID 3
-#define DRM_MODE_CONNECTOR_DVIA 4
-#define DRM_MODE_CONNECTOR_Composite 5
-#define DRM_MODE_CONNECTOR_SVIDEO 6
-#define DRM_MODE_CONNECTOR_LVDS 7
-#define DRM_MODE_CONNECTOR_Component 8
-#define DRM_MODE_CONNECTOR_9PinDIN 9
-#define DRM_MODE_CONNECTOR_DisplayPort 10
-#define DRM_MODE_CONNECTOR_HDMIA 11
-#define DRM_MODE_CONNECTOR_HDMIB 12
-#define DRM_MODE_CONNECTOR_TV 13
-#define DRM_MODE_CONNECTOR_eDP 14
-#define DRM_MODE_CONNECTOR_VIRTUAL 15
-#define DRM_MODE_CONNECTOR_DSI 16
-#define DRM_MODE_CONNECTOR_DPI 17
-#define DRM_MODE_CONNECTOR_WRITEBACK 18
-#define DRM_MODE_CONNECTOR_SPI 19
-#define DRM_MODE_CONNECTOR_USB 20
-
-/**
- * struct drm_mode_get_connector - Get connector metadata.
- *
- * User-space can perform a GETCONNECTOR ioctl to retrieve information about a
- * connector. User-space is expected to retrieve encoders, modes and properties
- * by performing this ioctl at least twice: the first time to retrieve the
- * number of elements, the second time to retrieve the elements themselves.
- *
- * To retrieve the number of elements, set @count_props and @count_encoders to
- * zero, set @count_modes to 1, and set @modes_ptr to a temporary struct
- * drm_mode_modeinfo element.
- *
- * To retrieve the elements, allocate arrays for @encoders_ptr, @modes_ptr,
- * @props_ptr and @prop_values_ptr, then set @count_modes, @count_props and
- * @count_encoders to their capacity.
- *
- * Performing the ioctl only twice may be racy: the number of elements may have
- * changed with a hotplug event in-between the two ioctls. User-space is
- * expected to retry the last ioctl until the number of elements stabilizes.
- * The kernel won't fill any array which doesn't have the expected length.
- *
- * **Force-probing a connector**
- *
- * If the @count_modes field is set to zero and the DRM client is the current
- * DRM master, the kernel will perform a forced probe on the connector to
- * refresh the connector status, modes and EDID. A forced-probe can be slow,
- * might cause flickering and the ioctl will block.
- *
- * User-space needs to force-probe connectors to ensure their metadata is
- * up-to-date at startup and after receiving a hot-plug event. User-space
- * may perform a forced-probe when the user explicitly requests it. User-space
- * shouldn't perform a forced-probe in other situations.
- */
-struct drm_mode_get_connector {
- /** @encoders_ptr: Pointer to ``__u32`` array of object IDs. */
- __u64 encoders_ptr;
- /** @modes_ptr: Pointer to struct drm_mode_modeinfo array. */
- __u64 modes_ptr;
- /** @props_ptr: Pointer to ``__u32`` array of property IDs. */
- __u64 props_ptr;
- /** @prop_values_ptr: Pointer to ``__u64`` array of property values. */
- __u64 prop_values_ptr;
-
- /** @count_modes: Number of modes. */
- __u32 count_modes;
- /** @count_props: Number of properties. */
- __u32 count_props;
- /** @count_encoders: Number of encoders. */
- __u32 count_encoders;
-
- /** @encoder_id: Object ID of the current encoder. */
- __u32 encoder_id;
- /** @connector_id: Object ID of the connector. */
- __u32 connector_id;
- /**
- * @connector_type: Type of the connector.
- *
- * See DRM_MODE_CONNECTOR_* defines.
- */
- __u32 connector_type;
- /**
- * @connector_type_id: Type-specific connector number.
- *
- * This is not an object ID. This is a per-type connector number. Each
- * (type, type_id) combination is unique across all connectors of a DRM
- * device.
- */
- __u32 connector_type_id;
-
- /**
- * @connection: Status of the connector.
- *
- * See enum drm_connector_status.
- */
- __u32 connection;
- /** @mm_width: Width of the connected sink in millimeters. */
- __u32 mm_width;
- /** @mm_height: Height of the connected sink in millimeters. */
- __u32 mm_height;
- /**
- * @subpixel: Subpixel order of the connected sink.
- *
- * See enum subpixel_order.
- */
- __u32 subpixel;
-
- /** @pad: Padding, must be zero. */
- __u32 pad;
-};
-
-#define DRM_MODE_PROP_PENDING (1<<0) /* deprecated, do not use */
-#define DRM_MODE_PROP_RANGE (1<<1)
-#define DRM_MODE_PROP_IMMUTABLE (1<<2)
-#define DRM_MODE_PROP_ENUM (1<<3) /* enumerated type with text strings */
-#define DRM_MODE_PROP_BLOB (1<<4)
-#define DRM_MODE_PROP_BITMASK (1<<5) /* bitmask of enumerated types */
-
-/* non-extended types: legacy bitmask, one bit per type: */
-#define DRM_MODE_PROP_LEGACY_TYPE ( \
- DRM_MODE_PROP_RANGE | \
- DRM_MODE_PROP_ENUM | \
- DRM_MODE_PROP_BLOB | \
- DRM_MODE_PROP_BITMASK)
-
-/* extended-types: rather than continue to consume a bit per type,
- * grab a chunk of the bits to use as integer type id.
- */
-#define DRM_MODE_PROP_EXTENDED_TYPE 0x0000ffc0
-#define DRM_MODE_PROP_TYPE(n) ((n) << 6)
-#define DRM_MODE_PROP_OBJECT DRM_MODE_PROP_TYPE(1)
-#define DRM_MODE_PROP_SIGNED_RANGE DRM_MODE_PROP_TYPE(2)
-
-/* the PROP_ATOMIC flag is used to hide properties from userspace that
- * is not aware of atomic properties. This is mostly to work around
- * older userspace (DDX drivers) that read/write each prop they find,
- * witout being aware that this could be triggering a lengthy modeset.
- */
-#define DRM_MODE_PROP_ATOMIC 0x80000000
-
-struct drm_mode_property_enum {
- __u64 value;
- char name[DRM_PROP_NAME_LEN];
-};
-
-struct drm_mode_get_property {
- __u64 values_ptr; /* values and blob lengths */
- __u64 enum_blob_ptr; /* enum and blob id ptrs */
-
- __u32 prop_id;
- __u32 flags;
- char name[DRM_PROP_NAME_LEN];
-
- __u32 count_values;
- /* This is only used to count enum values, not blobs. The _blobs is
- * simply because of a historical reason, i.e. backwards compat. */
- __u32 count_enum_blobs;
-};
-
-struct drm_mode_connector_set_property {
- __u64 value;
- __u32 prop_id;
- __u32 connector_id;
-};
-
-#define DRM_MODE_OBJECT_CRTC 0xcccccccc
-#define DRM_MODE_OBJECT_CONNECTOR 0xc0c0c0c0
-#define DRM_MODE_OBJECT_ENCODER 0xe0e0e0e0
-#define DRM_MODE_OBJECT_MODE 0xdededede
-#define DRM_MODE_OBJECT_PROPERTY 0xb0b0b0b0
-#define DRM_MODE_OBJECT_FB 0xfbfbfbfb
-#define DRM_MODE_OBJECT_BLOB 0xbbbbbbbb
-#define DRM_MODE_OBJECT_PLANE 0xeeeeeeee
-#define DRM_MODE_OBJECT_ANY 0
-
-struct drm_mode_obj_get_properties {
- __u64 props_ptr;
- __u64 prop_values_ptr;
- __u32 count_props;
- __u32 obj_id;
- __u32 obj_type;
-};
-
-struct drm_mode_obj_set_property {
- __u64 value;
- __u32 prop_id;
- __u32 obj_id;
- __u32 obj_type;
-};
-
-struct drm_mode_get_blob {
- __u32 blob_id;
- __u32 length;
- __u64 data;
-};
-
-struct drm_mode_fb_cmd {
- __u32 fb_id;
- __u32 width;
- __u32 height;
- __u32 pitch;
- __u32 bpp;
- __u32 depth;
- /* driver specific handle */
- __u32 handle;
-};
-
-#define DRM_MODE_FB_INTERLACED (1<<0) /* for interlaced framebuffers */
-#define DRM_MODE_FB_MODIFIERS (1<<1) /* enables ->modifer[] */
-
-struct drm_mode_fb_cmd2 {
- __u32 fb_id;
- __u32 width;
- __u32 height;
- __u32 pixel_format; /* fourcc code from drm_fourcc.h */
- __u32 flags; /* see above flags */
-
- /*
- * In case of planar formats, this ioctl allows up to 4
- * buffer objects with offsets and pitches per plane.
- * The pitch and offset order is dictated by the fourcc,
- * e.g. NV12 (https://fourcc.org/yuv.php#NV12) is described as:
- *
- * YUV 4:2:0 image with a plane of 8 bit Y samples
- * followed by an interleaved U/V plane containing
- * 8 bit 2x2 subsampled colour difference samples.
- *
- * So it would consist of Y as offsets[0] and UV as
- * offsets[1]. Note that offsets[0] will generally
- * be 0 (but this is not required).
- *
- * To accommodate tiled, compressed, etc formats, a
- * modifier can be specified. The default value of zero
- * indicates "native" format as specified by the fourcc.
- * Vendor specific modifier token. Note that even though
- * it looks like we have a modifier per-plane, we in fact
- * do not. The modifier for each plane must be identical.
- * Thus all combinations of different data layouts for
- * multi plane formats must be enumerated as separate
- * modifiers.
- */
- __u32 handles[4];
- __u32 pitches[4]; /* pitch for each plane */
- __u32 offsets[4]; /* offset of each plane */
- __u64 modifier[4]; /* ie, tiling, compress */
-};
-
-#define DRM_MODE_FB_DIRTY_ANNOTATE_COPY 0x01
-#define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02
-#define DRM_MODE_FB_DIRTY_FLAGS 0x03
-
-#define DRM_MODE_FB_DIRTY_MAX_CLIPS 256
-
-/*
- * Mark a region of a framebuffer as dirty.
- *
- * Some hardware does not automatically update display contents
- * as a hardware or software draw to a framebuffer. This ioctl
- * allows userspace to tell the kernel and the hardware what
- * regions of the framebuffer have changed.
- *
- * The kernel or hardware is free to update more then just the
- * region specified by the clip rects. The kernel or hardware
- * may also delay and/or coalesce several calls to dirty into a
- * single update.
- *
- * Userspace may annotate the updates, the annotates are a
- * promise made by the caller that the change is either a copy
- * of pixels or a fill of a single color in the region specified.
- *
- * If the DRM_MODE_FB_DIRTY_ANNOTATE_COPY flag is given then
- * the number of updated regions are half of num_clips given,
- * where the clip rects are paired in src and dst. The width and
- * height of each one of the pairs must match.
- *
- * If the DRM_MODE_FB_DIRTY_ANNOTATE_FILL flag is given the caller
- * promises that the region specified of the clip rects is filled
- * completely with a single color as given in the color argument.
- */
-
-struct drm_mode_fb_dirty_cmd {
- __u32 fb_id;
- __u32 flags;
- __u32 color;
- __u32 num_clips;
- __u64 clips_ptr;
-};
-
-struct drm_mode_mode_cmd {
- __u32 connector_id;
- struct drm_mode_modeinfo mode;
-};
-
-#define DRM_MODE_CURSOR_BO 0x01
-#define DRM_MODE_CURSOR_MOVE 0x02
-#define DRM_MODE_CURSOR_FLAGS 0x03
-
-/*
- * depending on the value in flags different members are used.
- *
- * CURSOR_BO uses
- * crtc_id
- * width
- * height
- * handle - if 0 turns the cursor off
- *
- * CURSOR_MOVE uses
- * crtc_id
- * x
- * y
- */
-struct drm_mode_cursor {
- __u32 flags;
- __u32 crtc_id;
- __s32 x;
- __s32 y;
- __u32 width;
- __u32 height;
- /* driver specific handle */
- __u32 handle;
-};
-
-struct drm_mode_cursor2 {
- __u32 flags;
- __u32 crtc_id;
- __s32 x;
- __s32 y;
- __u32 width;
- __u32 height;
- /* driver specific handle */
- __u32 handle;
- __s32 hot_x;
- __s32 hot_y;
-};
-
-struct drm_mode_crtc_lut {
- __u32 crtc_id;
- __u32 gamma_size;
-
- /* pointers to arrays */
- __u64 red;
- __u64 green;
- __u64 blue;
-};
-
-struct drm_color_ctm {
- /*
- * Conversion matrix in S31.32 sign-magnitude
- * (not two's complement!) format.
- */
- __u64 matrix[9];
-};
-
-struct drm_color_lut {
- /*
- * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and
- * 0xffff == 1.0.
- */
- __u16 red;
- __u16 green;
- __u16 blue;
- __u16 reserved;
-};
-
-/**
- * struct hdr_metadata_infoframe - HDR Metadata Infoframe Data.
- *
- * HDR Metadata Infoframe as per CTA 861.G spec. This is expected
- * to match exactly with the spec.
- *
- * Userspace is expected to pass the metadata information as per
- * the format described in this structure.
- */
-struct hdr_metadata_infoframe {
- /**
- * @eotf: Electro-Optical Transfer Function (EOTF)
- * used in the stream.
- */
- __u8 eotf;
- /**
- * @metadata_type: Static_Metadata_Descriptor_ID.
- */
- __u8 metadata_type;
- /**
- * @display_primaries: Color Primaries of the Data.
- * These are coded as unsigned 16-bit values in units of
- * 0.00002, where 0x0000 represents zero and 0xC350
- * represents 1.0000.
- * @display_primaries.x: X cordinate of color primary.
- * @display_primaries.y: Y cordinate of color primary.
- */
- struct {
- __u16 x, y;
- } display_primaries[3];
- /**
- * @white_point: White Point of Colorspace Data.
- * These are coded as unsigned 16-bit values in units of
- * 0.00002, where 0x0000 represents zero and 0xC350
- * represents 1.0000.
- * @white_point.x: X cordinate of whitepoint of color primary.
- * @white_point.y: Y cordinate of whitepoint of color primary.
- */
- struct {
- __u16 x, y;
- } white_point;
- /**
- * @max_display_mastering_luminance: Max Mastering Display Luminance.
- * This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
- * where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
- */
- __u16 max_display_mastering_luminance;
- /**
- * @min_display_mastering_luminance: Min Mastering Display Luminance.
- * This value is coded as an unsigned 16-bit value in units of
- * 0.0001 cd/m2, where 0x0001 represents 0.0001 cd/m2 and 0xFFFF
- * represents 6.5535 cd/m2.
- */
- __u16 min_display_mastering_luminance;
- /**
- * @max_cll: Max Content Light Level.
- * This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
- * where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
- */
- __u16 max_cll;
- /**
- * @max_fall: Max Frame Average Light Level.
- * This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
- * where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
- */
- __u16 max_fall;
-};
-
-/**
- * struct hdr_output_metadata - HDR output metadata
- *
- * Metadata Information to be passed from userspace
- */
-struct hdr_output_metadata {
- /**
- * @metadata_type: Static_Metadata_Descriptor_ID.
- */
- __u32 metadata_type;
- /**
- * @hdmi_metadata_type1: HDR Metadata Infoframe.
- */
- union {
- struct hdr_metadata_infoframe hdmi_metadata_type1;
- };
-};
-
-#define DRM_MODE_PAGE_FLIP_EVENT 0x01
-#define DRM_MODE_PAGE_FLIP_ASYNC 0x02
-#define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4
-#define DRM_MODE_PAGE_FLIP_TARGET_RELATIVE 0x8
-#define DRM_MODE_PAGE_FLIP_TARGET (DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE | \
- DRM_MODE_PAGE_FLIP_TARGET_RELATIVE)
-#define DRM_MODE_PAGE_FLIP_FLAGS (DRM_MODE_PAGE_FLIP_EVENT | \
- DRM_MODE_PAGE_FLIP_ASYNC | \
- DRM_MODE_PAGE_FLIP_TARGET)
-
-/*
- * Request a page flip on the specified crtc.
- *
- * This ioctl will ask KMS to schedule a page flip for the specified
- * crtc. Once any pending rendering targeting the specified fb (as of
- * ioctl time) has completed, the crtc will be reprogrammed to display
- * that fb after the next vertical refresh. The ioctl returns
- * immediately, but subsequent rendering to the current fb will block
- * in the execbuffer ioctl until the page flip happens. If a page
- * flip is already pending as the ioctl is called, EBUSY will be
- * returned.
- *
- * Flag DRM_MODE_PAGE_FLIP_EVENT requests that drm sends back a vblank
- * event (see drm.h: struct drm_event_vblank) when the page flip is
- * done. The user_data field passed in with this ioctl will be
- * returned as the user_data field in the vblank event struct.
- *
- * Flag DRM_MODE_PAGE_FLIP_ASYNC requests that the flip happen
- * 'as soon as possible', meaning that it not delay waiting for vblank.
- * This may cause tearing on the screen.
- *
- * The reserved field must be zero.
- */
-
-struct drm_mode_crtc_page_flip {
- __u32 crtc_id;
- __u32 fb_id;
- __u32 flags;
- __u32 reserved;
- __u64 user_data;
-};
-
-/*
- * Request a page flip on the specified crtc.
- *
- * Same as struct drm_mode_crtc_page_flip, but supports new flags and
- * re-purposes the reserved field:
- *
- * The sequence field must be zero unless either of the
- * DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE/RELATIVE flags is specified. When
- * the ABSOLUTE flag is specified, the sequence field denotes the absolute
- * vblank sequence when the flip should take effect. When the RELATIVE
- * flag is specified, the sequence field denotes the relative (to the
- * current one when the ioctl is called) vblank sequence when the flip
- * should take effect. NOTE: DRM_IOCTL_WAIT_VBLANK must still be used to
- * make sure the vblank sequence before the target one has passed before
- * calling this ioctl. The purpose of the
- * DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE/RELATIVE flags is merely to clarify
- * the target for when code dealing with a page flip runs during a
- * vertical blank period.
- */
-
-struct drm_mode_crtc_page_flip_target {
- __u32 crtc_id;
- __u32 fb_id;
- __u32 flags;
- __u32 sequence;
- __u64 user_data;
-};
-
-/* create a dumb scanout buffer */
-struct drm_mode_create_dumb {
- __u32 height;
- __u32 width;
- __u32 bpp;
- __u32 flags;
- /* handle, pitch, size will be returned */
- __u32 handle;
- __u32 pitch;
- __u64 size;
-};
-
-/* set up for mmap of a dumb scanout buffer */
-struct drm_mode_map_dumb {
- /** Handle for the object being mapped. */
- __u32 handle;
- __u32 pad;
- /**
- * Fake offset to use for subsequent mmap call
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 offset;
-};
-
-struct drm_mode_destroy_dumb {
- __u32 handle;
-};
-
-/* page-flip flags are valid, plus: */
-#define DRM_MODE_ATOMIC_TEST_ONLY 0x0100
-#define DRM_MODE_ATOMIC_NONBLOCK 0x0200
-#define DRM_MODE_ATOMIC_ALLOW_MODESET 0x0400
-
-#define DRM_MODE_ATOMIC_FLAGS (\
- DRM_MODE_PAGE_FLIP_EVENT |\
- DRM_MODE_PAGE_FLIP_ASYNC |\
- DRM_MODE_ATOMIC_TEST_ONLY |\
- DRM_MODE_ATOMIC_NONBLOCK |\
- DRM_MODE_ATOMIC_ALLOW_MODESET)
-
-struct drm_mode_atomic {
- __u32 flags;
- __u32 count_objs;
- __u64 objs_ptr;
- __u64 count_props_ptr;
- __u64 props_ptr;
- __u64 prop_values_ptr;
- __u64 reserved;
- __u64 user_data;
-};
-
-struct drm_format_modifier_blob {
-#define FORMAT_BLOB_CURRENT 1
- /* Version of this blob format */
- __u32 version;
-
- /* Flags */
- __u32 flags;
-
- /* Number of fourcc formats supported */
- __u32 count_formats;
-
- /* Where in this blob the formats exist (in bytes) */
- __u32 formats_offset;
-
- /* Number of drm_format_modifiers */
- __u32 count_modifiers;
-
- /* Where in this blob the modifiers exist (in bytes) */
- __u32 modifiers_offset;
-
- /* __u32 formats[] */
- /* struct drm_format_modifier modifiers[] */
-};
-
-struct drm_format_modifier {
- /* Bitmask of formats in get_plane format list this info applies to. The
- * offset allows a sliding window of which 64 formats (bits).
- *
- * Some examples:
- * In today's world with < 65 formats, and formats 0, and 2 are
- * supported
- * 0x0000000000000005
- * ^-offset = 0, formats = 5
- *
- * If the number formats grew to 128, and formats 98-102 are
- * supported with the modifier:
- *
- * 0x0000007c00000000 0000000000000000
- * ^
- * |__offset = 64, formats = 0x7c00000000
- *
- */
- __u64 formats;
- __u32 offset;
- __u32 pad;
-
- /* The modifier that applies to the >get_plane format list bitmask. */
- __u64 modifier;
-};
-
-/**
- * struct drm_mode_create_blob - Create New blob property
- *
- * Create a new 'blob' data property, copying length bytes from data pointer,
- * and returning new blob ID.
- */
-struct drm_mode_create_blob {
- /** @data: Pointer to data to copy. */
- __u64 data;
- /** @length: Length of data to copy. */
- __u32 length;
- /** @blob_id: Return: new property ID. */
- __u32 blob_id;
-};
-
-/**
- * struct drm_mode_destroy_blob - Destroy user blob
- * @blob_id: blob_id to destroy
- *
- * Destroy a user-created blob property.
- *
- * User-space can release blobs as soon as they do not need to refer to them by
- * their blob object ID. For instance, if you are using a MODE_ID blob in an
- * atomic commit and you will not make another commit re-using the same ID, you
- * can destroy the blob as soon as the commit has been issued, without waiting
- * for it to complete.
- */
-struct drm_mode_destroy_blob {
- __u32 blob_id;
-};
-
-/**
- * struct drm_mode_create_lease - Create lease
- *
- * Lease mode resources, creating another drm_master.
- */
-struct drm_mode_create_lease {
- /** @object_ids: Pointer to array of object ids (__u32) */
- __u64 object_ids;
- /** @object_count: Number of object ids */
- __u32 object_count;
- /** @flags: flags for new FD (O_CLOEXEC, etc) */
- __u32 flags;
-
- /** @lessee_id: Return: unique identifier for lessee. */
- __u32 lessee_id;
- /** @fd: Return: file descriptor to new drm_master file */
- __u32 fd;
-};
-
-/**
- * struct drm_mode_list_lessees - List lessees
- *
- * List lesses from a drm_master.
- */
-struct drm_mode_list_lessees {
- /**
- * @count_lessees: Number of lessees.
- *
- * On input, provides length of the array.
- * On output, provides total number. No
- * more than the input number will be written
- * back, so two calls can be used to get
- * the size and then the data.
- */
- __u32 count_lessees;
- /** @pad: Padding. */
- __u32 pad;
-
- /**
- * @lessees_ptr: Pointer to lessees.
- *
- * Pointer to __u64 array of lessee ids
- */
- __u64 lessees_ptr;
-};
-
-/**
- * struct drm_mode_get_lease - Get Lease
- *
- * Get leased objects.
- */
-struct drm_mode_get_lease {
- /**
- * @count_objects: Number of leased objects.
- *
- * On input, provides length of the array.
- * On output, provides total number. No
- * more than the input number will be written
- * back, so two calls can be used to get
- * the size and then the data.
- */
- __u32 count_objects;
- /** @pad: Padding. */
- __u32 pad;
-
- /**
- * @objects_ptr: Pointer to objects.
- *
- * Pointer to __u32 array of object ids.
- */
- __u64 objects_ptr;
-};
-
-/**
- * struct drm_mode_revoke_lease - Revoke lease
- */
-struct drm_mode_revoke_lease {
- /** @lessee_id: Unique ID of lessee */
- __u32 lessee_id;
-};
-
-/**
- * struct drm_mode_rect - Two dimensional rectangle.
- * @x1: Horizontal starting coordinate (inclusive).
- * @y1: Vertical starting coordinate (inclusive).
- * @x2: Horizontal ending coordinate (exclusive).
- * @y2: Vertical ending coordinate (exclusive).
- *
- * With drm subsystem using struct drm_rect to manage rectangular area this
- * export it to user-space.
- *
- * Currently used by drm_mode_atomic blob property FB_DAMAGE_CLIPS.
- */
-struct drm_mode_rect {
- __s32 x1;
- __s32 y1;
- __s32 x2;
- __s32 y2;
-};
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/drm_sarea.h b/libdrm/libdrm/drm_sarea.h
deleted file mode 100644
index 93025be..0000000
--- a/libdrm/libdrm/drm_sarea.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * \file drm_sarea.h
- * \brief SAREA definitions
- *
- * \author Michel Dänzer <michel@daenzer.net>
- */
-
-/*
- * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _DRM_SAREA_H_
-#define _DRM_SAREA_H_
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* SAREA area needs to be at least a page */
-#if defined(__alpha__)
-#define SAREA_MAX 0x2000U
-#elif defined(__mips__)
-#define SAREA_MAX 0x4000U
-#elif defined(__ia64__)
-#define SAREA_MAX 0x10000U /* 64kB */
-#else
-/* Intel 830M driver needs at least 8k SAREA */
-#define SAREA_MAX 0x2000U
-#endif
-
-/** Maximum number of drawables in the SAREA */
-#define SAREA_MAX_DRAWABLES 256
-
-#define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000
-
-/** SAREA drawable */
-struct drm_sarea_drawable {
- unsigned int stamp;
- unsigned int flags;
-};
-
-/** SAREA frame */
-struct drm_sarea_frame {
- unsigned int x;
- unsigned int y;
- unsigned int width;
- unsigned int height;
- unsigned int fullscreen;
-};
-
-/** SAREA */
-struct drm_sarea {
- /** first thing is always the DRM locking structure */
- struct drm_hw_lock lock;
- /** \todo Use readers/writer lock for drm_sarea::drawable_lock */
- struct drm_hw_lock drawable_lock;
- struct drm_sarea_drawable drawableTable[SAREA_MAX_DRAWABLES]; /**< drawables */
- struct drm_sarea_frame frame; /**< frame */
- drm_context_t dummy_context;
-};
-
-typedef struct drm_sarea_drawable drm_sarea_drawable_t;
-typedef struct drm_sarea_frame drm_sarea_frame_t;
-typedef struct drm_sarea drm_sarea_t;
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* _DRM_SAREA_H_ */
diff --git a/libdrm/libdrm/i915_drm.h b/libdrm/libdrm/i915_drm.h
deleted file mode 100644
index 1de0433..0000000
--- a/libdrm/libdrm/i915_drm.h
+++ /dev/null
@@ -1,3724 +0,0 @@
-/*
- * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef _I915_DRM_H_
-#define _I915_DRM_H_
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Please note that modifications to all structs defined here are
- * subject to backwards-compatibility constraints.
- */
-
-/**
- * DOC: uevents generated by i915 on it's device node
- *
- * I915_L3_PARITY_UEVENT - Generated when the driver receives a parity mismatch
- * event from the gpu l3 cache. Additional information supplied is ROW,
- * BANK, SUBBANK, SLICE of the affected cacheline. Userspace should keep
- * track of these events and if a specific cache-line seems to have a
- * persistent error remap it with the l3 remapping tool supplied in
- * intel-gpu-tools. The value supplied with the event is always 1.
- *
- * I915_ERROR_UEVENT - Generated upon error detection, currently only via
- * hangcheck. The error detection event is a good indicator of when things
- * began to go badly. The value supplied with the event is a 1 upon error
- * detection, and a 0 upon reset completion, signifying no more error
- * exists. NOTE: Disabling hangcheck or reset via module parameter will
- * cause the related events to not be seen.
- *
- * I915_RESET_UEVENT - Event is generated just before an attempt to reset the
- * GPU. The value supplied with the event is always 1. NOTE: Disable
- * reset via module parameter will cause this event to not be seen.
- */
-#define I915_L3_PARITY_UEVENT "L3_PARITY_ERROR"
-#define I915_ERROR_UEVENT "ERROR"
-#define I915_RESET_UEVENT "RESET"
-
-/**
- * struct i915_user_extension - Base class for defining a chain of extensions
- *
- * Many interfaces need to grow over time. In most cases we can simply
- * extend the struct and have userspace pass in more data. Another option,
- * as demonstrated by Vulkan's approach to providing extensions for forward
- * and backward compatibility, is to use a list of optional structs to
- * provide those extra details.
- *
- * The key advantage to using an extension chain is that it allows us to
- * redefine the interface more easily than an ever growing struct of
- * increasing complexity, and for large parts of that interface to be
- * entirely optional. The downside is more pointer chasing; chasing across
- * the boundary with pointers encapsulated inside u64.
- *
- * Example chaining:
- *
- * .. code-block:: C
- *
- * struct i915_user_extension ext3 {
- * .next_extension = 0, // end
- * .name = ...,
- * };
- * struct i915_user_extension ext2 {
- * .next_extension = (uintptr_t)&ext3,
- * .name = ...,
- * };
- * struct i915_user_extension ext1 {
- * .next_extension = (uintptr_t)&ext2,
- * .name = ...,
- * };
- *
- * Typically the struct i915_user_extension would be embedded in some uAPI
- * struct, and in this case we would feed it the head of the chain(i.e ext1),
- * which would then apply all of the above extensions.
- *
- */
-struct i915_user_extension {
- /**
- * @next_extension:
- *
- * Pointer to the next struct i915_user_extension, or zero if the end.
- */
- __u64 next_extension;
- /**
- * @name: Name of the extension.
- *
- * Note that the name here is just some integer.
- *
- * Also note that the name space for this is not global for the whole
- * driver, but rather its scope/meaning is limited to the specific piece
- * of uAPI which has embedded the struct i915_user_extension.
- */
- __u32 name;
- /**
- * @flags: MBZ
- *
- * All undefined bits must be zero.
- */
- __u32 flags;
- /**
- * @rsvd: MBZ
- *
- * Reserved for future use; must be zero.
- */
- __u32 rsvd[4];
-};
-
-/*
- * MOCS indexes used for GPU surfaces, defining the cacheability of the
- * surface data and the coherency for this data wrt. CPU vs. GPU accesses.
- */
-enum i915_mocs_table_index {
- /*
- * Not cached anywhere, coherency between CPU and GPU accesses is
- * guaranteed.
- */
- I915_MOCS_UNCACHED,
- /*
- * Cacheability and coherency controlled by the kernel automatically
- * based on the DRM_I915_GEM_SET_CACHING IOCTL setting and the current
- * usage of the surface (used for display scanout or not).
- */
- I915_MOCS_PTE,
- /*
- * Cached in all GPU caches available on the platform.
- * Coherency between CPU and GPU accesses to the surface is not
- * guaranteed without extra synchronization.
- */
- I915_MOCS_CACHED,
-};
-
-/**
- * enum drm_i915_gem_engine_class - uapi engine type enumeration
- *
- * Different engines serve different roles, and there may be more than one
- * engine serving each role. This enum provides a classification of the role
- * of the engine, which may be used when requesting operations to be performed
- * on a certain subset of engines, or for providing information about that
- * group.
- */
-enum drm_i915_gem_engine_class {
- /**
- * @I915_ENGINE_CLASS_RENDER:
- *
- * Render engines support instructions used for 3D, Compute (GPGPU),
- * and programmable media workloads. These instructions fetch data and
- * dispatch individual work items to threads that operate in parallel.
- * The threads run small programs (called "kernels" or "shaders") on
- * the GPU's execution units (EUs).
- */
- I915_ENGINE_CLASS_RENDER = 0,
-
- /**
- * @I915_ENGINE_CLASS_COPY:
- *
- * Copy engines (also referred to as "blitters") support instructions
- * that move blocks of data from one location in memory to another,
- * or that fill a specified location of memory with fixed data.
- * Copy engines can perform pre-defined logical or bitwise operations
- * on the source, destination, or pattern data.
- */
- I915_ENGINE_CLASS_COPY = 1,
-
- /**
- * @I915_ENGINE_CLASS_VIDEO:
- *
- * Video engines (also referred to as "bit stream decode" (BSD) or
- * "vdbox") support instructions that perform fixed-function media
- * decode and encode.
- */
- I915_ENGINE_CLASS_VIDEO = 2,
-
- /**
- * @I915_ENGINE_CLASS_VIDEO_ENHANCE:
- *
- * Video enhancement engines (also referred to as "vebox") support
- * instructions related to image enhancement.
- */
- I915_ENGINE_CLASS_VIDEO_ENHANCE = 3,
-
- /**
- * @I915_ENGINE_CLASS_COMPUTE:
- *
- * Compute engines support a subset of the instructions available
- * on render engines: compute engines support Compute (GPGPU) and
- * programmable media workloads, but do not support the 3D pipeline.
- */
- I915_ENGINE_CLASS_COMPUTE = 4,
-
- /* Values in this enum should be kept compact. */
-
- /**
- * @I915_ENGINE_CLASS_INVALID:
- *
- * Placeholder value to represent an invalid engine class assignment.
- */
- I915_ENGINE_CLASS_INVALID = -1
-};
-
-/**
- * struct i915_engine_class_instance - Engine class/instance identifier
- *
- * There may be more than one engine fulfilling any role within the system.
- * Each engine of a class is given a unique instance number and therefore
- * any engine can be specified by its class:instance tuplet. APIs that allow
- * access to any engine in the system will use struct i915_engine_class_instance
- * for this identification.
- */
-struct i915_engine_class_instance {
- /**
- * @engine_class:
- *
- * Engine class from enum drm_i915_gem_engine_class
- */
- __u16 engine_class;
-#define I915_ENGINE_CLASS_INVALID_NONE -1
-#define I915_ENGINE_CLASS_INVALID_VIRTUAL -2
-
- /**
- * @engine_instance:
- *
- * Engine instance.
- */
- __u16 engine_instance;
-};
-
-/**
- * DOC: perf_events exposed by i915 through /sys/bus/event_sources/drivers/i915
- *
- */
-
-enum drm_i915_pmu_engine_sample {
- I915_SAMPLE_BUSY = 0,
- I915_SAMPLE_WAIT = 1,
- I915_SAMPLE_SEMA = 2
-};
-
-#define I915_PMU_SAMPLE_BITS (4)
-#define I915_PMU_SAMPLE_MASK (0xf)
-#define I915_PMU_SAMPLE_INSTANCE_BITS (8)
-#define I915_PMU_CLASS_SHIFT \
- (I915_PMU_SAMPLE_BITS + I915_PMU_SAMPLE_INSTANCE_BITS)
-
-#define __I915_PMU_ENGINE(class, instance, sample) \
- ((class) << I915_PMU_CLASS_SHIFT | \
- (instance) << I915_PMU_SAMPLE_BITS | \
- (sample))
-
-#define I915_PMU_ENGINE_BUSY(class, instance) \
- __I915_PMU_ENGINE(class, instance, I915_SAMPLE_BUSY)
-
-#define I915_PMU_ENGINE_WAIT(class, instance) \
- __I915_PMU_ENGINE(class, instance, I915_SAMPLE_WAIT)
-
-#define I915_PMU_ENGINE_SEMA(class, instance) \
- __I915_PMU_ENGINE(class, instance, I915_SAMPLE_SEMA)
-
-#define __I915_PMU_OTHER(x) (__I915_PMU_ENGINE(0xff, 0xff, 0xf) + 1 + (x))
-
-#define I915_PMU_ACTUAL_FREQUENCY __I915_PMU_OTHER(0)
-#define I915_PMU_REQUESTED_FREQUENCY __I915_PMU_OTHER(1)
-#define I915_PMU_INTERRUPTS __I915_PMU_OTHER(2)
-#define I915_PMU_RC6_RESIDENCY __I915_PMU_OTHER(3)
-#define I915_PMU_SOFTWARE_GT_AWAKE_TIME __I915_PMU_OTHER(4)
-
-#define I915_PMU_LAST /* Deprecated - do not use */ I915_PMU_RC6_RESIDENCY
-
-/* Each region is a minimum of 16k, and there are at most 255 of them.
- */
-#define I915_NR_TEX_REGIONS 255 /* table size 2k - maximum due to use
- * of chars for next/prev indices */
-#define I915_LOG_MIN_TEX_REGION_SIZE 14
-
-typedef struct _drm_i915_init {
- enum {
- I915_INIT_DMA = 0x01,
- I915_CLEANUP_DMA = 0x02,
- I915_RESUME_DMA = 0x03
- } func;
- unsigned int mmio_offset;
- int sarea_priv_offset;
- unsigned int ring_start;
- unsigned int ring_end;
- unsigned int ring_size;
- unsigned int front_offset;
- unsigned int back_offset;
- unsigned int depth_offset;
- unsigned int w;
- unsigned int h;
- unsigned int pitch;
- unsigned int pitch_bits;
- unsigned int back_pitch;
- unsigned int depth_pitch;
- unsigned int cpp;
- unsigned int chipset;
-} drm_i915_init_t;
-
-typedef struct _drm_i915_sarea {
- struct drm_tex_region texList[I915_NR_TEX_REGIONS + 1];
- int last_upload; /* last time texture was uploaded */
- int last_enqueue; /* last time a buffer was enqueued */
- int last_dispatch; /* age of the most recently dispatched buffer */
- int ctxOwner; /* last context to upload state */
- int texAge;
- int pf_enabled; /* is pageflipping allowed? */
- int pf_active;
- int pf_current_page; /* which buffer is being displayed? */
- int perf_boxes; /* performance boxes to be displayed */
- int width, height; /* screen size in pixels */
-
- drm_handle_t front_handle;
- int front_offset;
- int front_size;
-
- drm_handle_t back_handle;
- int back_offset;
- int back_size;
-
- drm_handle_t depth_handle;
- int depth_offset;
- int depth_size;
-
- drm_handle_t tex_handle;
- int tex_offset;
- int tex_size;
- int log_tex_granularity;
- int pitch;
- int rotation; /* 0, 90, 180 or 270 */
- int rotated_offset;
- int rotated_size;
- int rotated_pitch;
- int virtualX, virtualY;
-
- unsigned int front_tiled;
- unsigned int back_tiled;
- unsigned int depth_tiled;
- unsigned int rotated_tiled;
- unsigned int rotated2_tiled;
-
- int pipeA_x;
- int pipeA_y;
- int pipeA_w;
- int pipeA_h;
- int pipeB_x;
- int pipeB_y;
- int pipeB_w;
- int pipeB_h;
-
- /* fill out some space for old userspace triple buffer */
- drm_handle_t unused_handle;
- __u32 unused1, unused2, unused3;
-
- /* buffer object handles for static buffers. May change
- * over the lifetime of the client.
- */
- __u32 front_bo_handle;
- __u32 back_bo_handle;
- __u32 unused_bo_handle;
- __u32 depth_bo_handle;
-
-} drm_i915_sarea_t;
-
-/* due to userspace building against these headers we need some compat here */
-#define planeA_x pipeA_x
-#define planeA_y pipeA_y
-#define planeA_w pipeA_w
-#define planeA_h pipeA_h
-#define planeB_x pipeB_x
-#define planeB_y pipeB_y
-#define planeB_w pipeB_w
-#define planeB_h pipeB_h
-
-/* Flags for perf_boxes
- */
-#define I915_BOX_RING_EMPTY 0x1
-#define I915_BOX_FLIP 0x2
-#define I915_BOX_WAIT 0x4
-#define I915_BOX_TEXTURE_LOAD 0x8
-#define I915_BOX_LOST_CONTEXT 0x10
-
-/*
- * i915 specific ioctls.
- *
- * The device specific ioctl range is [DRM_COMMAND_BASE, DRM_COMMAND_END) ie
- * [0x40, 0xa0) (a0 is excluded). The numbers below are defined as offset
- * against DRM_COMMAND_BASE and should be between [0x0, 0x60).
- */
-#define DRM_I915_INIT 0x00
-#define DRM_I915_FLUSH 0x01
-#define DRM_I915_FLIP 0x02
-#define DRM_I915_BATCHBUFFER 0x03
-#define DRM_I915_IRQ_EMIT 0x04
-#define DRM_I915_IRQ_WAIT 0x05
-#define DRM_I915_GETPARAM 0x06
-#define DRM_I915_SETPARAM 0x07
-#define DRM_I915_ALLOC 0x08
-#define DRM_I915_FREE 0x09
-#define DRM_I915_INIT_HEAP 0x0a
-#define DRM_I915_CMDBUFFER 0x0b
-#define DRM_I915_DESTROY_HEAP 0x0c
-#define DRM_I915_SET_VBLANK_PIPE 0x0d
-#define DRM_I915_GET_VBLANK_PIPE 0x0e
-#define DRM_I915_VBLANK_SWAP 0x0f
-#define DRM_I915_HWS_ADDR 0x11
-#define DRM_I915_GEM_INIT 0x13
-#define DRM_I915_GEM_EXECBUFFER 0x14
-#define DRM_I915_GEM_PIN 0x15
-#define DRM_I915_GEM_UNPIN 0x16
-#define DRM_I915_GEM_BUSY 0x17
-#define DRM_I915_GEM_THROTTLE 0x18
-#define DRM_I915_GEM_ENTERVT 0x19
-#define DRM_I915_GEM_LEAVEVT 0x1a
-#define DRM_I915_GEM_CREATE 0x1b
-#define DRM_I915_GEM_PREAD 0x1c
-#define DRM_I915_GEM_PWRITE 0x1d
-#define DRM_I915_GEM_MMAP 0x1e
-#define DRM_I915_GEM_SET_DOMAIN 0x1f
-#define DRM_I915_GEM_SW_FINISH 0x20
-#define DRM_I915_GEM_SET_TILING 0x21
-#define DRM_I915_GEM_GET_TILING 0x22
-#define DRM_I915_GEM_GET_APERTURE 0x23
-#define DRM_I915_GEM_MMAP_GTT 0x24
-#define DRM_I915_GET_PIPE_FROM_CRTC_ID 0x25
-#define DRM_I915_GEM_MADVISE 0x26
-#define DRM_I915_OVERLAY_PUT_IMAGE 0x27
-#define DRM_I915_OVERLAY_ATTRS 0x28
-#define DRM_I915_GEM_EXECBUFFER2 0x29
-#define DRM_I915_GEM_EXECBUFFER2_WR DRM_I915_GEM_EXECBUFFER2
-#define DRM_I915_GET_SPRITE_COLORKEY 0x2a
-#define DRM_I915_SET_SPRITE_COLORKEY 0x2b
-#define DRM_I915_GEM_WAIT 0x2c
-#define DRM_I915_GEM_CONTEXT_CREATE 0x2d
-#define DRM_I915_GEM_CONTEXT_DESTROY 0x2e
-#define DRM_I915_GEM_SET_CACHING 0x2f
-#define DRM_I915_GEM_GET_CACHING 0x30
-#define DRM_I915_REG_READ 0x31
-#define DRM_I915_GET_RESET_STATS 0x32
-#define DRM_I915_GEM_USERPTR 0x33
-#define DRM_I915_GEM_CONTEXT_GETPARAM 0x34
-#define DRM_I915_GEM_CONTEXT_SETPARAM 0x35
-#define DRM_I915_PERF_OPEN 0x36
-#define DRM_I915_PERF_ADD_CONFIG 0x37
-#define DRM_I915_PERF_REMOVE_CONFIG 0x38
-#define DRM_I915_QUERY 0x39
-#define DRM_I915_GEM_VM_CREATE 0x3a
-#define DRM_I915_GEM_VM_DESTROY 0x3b
-#define DRM_I915_GEM_CREATE_EXT 0x3c
-/* Must be kept compact -- no holes */
-
-#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
-#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
-#define DRM_IOCTL_I915_FLIP DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLIP)
-#define DRM_IOCTL_I915_BATCHBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_I915_BATCHBUFFER, drm_i915_batchbuffer_t)
-#define DRM_IOCTL_I915_IRQ_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_IRQ_EMIT, drm_i915_irq_emit_t)
-#define DRM_IOCTL_I915_IRQ_WAIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_IRQ_WAIT, drm_i915_irq_wait_t)
-#define DRM_IOCTL_I915_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GETPARAM, drm_i915_getparam_t)
-#define DRM_IOCTL_I915_SETPARAM DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SETPARAM, drm_i915_setparam_t)
-#define DRM_IOCTL_I915_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_ALLOC, drm_i915_mem_alloc_t)
-#define DRM_IOCTL_I915_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_I915_FREE, drm_i915_mem_free_t)
-#define DRM_IOCTL_I915_INIT_HEAP DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT_HEAP, drm_i915_mem_init_heap_t)
-#define DRM_IOCTL_I915_CMDBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_I915_CMDBUFFER, drm_i915_cmdbuffer_t)
-#define DRM_IOCTL_I915_DESTROY_HEAP DRM_IOW( DRM_COMMAND_BASE + DRM_I915_DESTROY_HEAP, drm_i915_mem_destroy_heap_t)
-#define DRM_IOCTL_I915_SET_VBLANK_PIPE DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
-#define DRM_IOCTL_I915_GET_VBLANK_PIPE DRM_IOR( DRM_COMMAND_BASE + DRM_I915_GET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
-#define DRM_IOCTL_I915_VBLANK_SWAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t)
-#define DRM_IOCTL_I915_HWS_ADDR DRM_IOW(DRM_COMMAND_BASE + DRM_I915_HWS_ADDR, struct drm_i915_gem_init)
-#define DRM_IOCTL_I915_GEM_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init)
-#define DRM_IOCTL_I915_GEM_EXECBUFFER DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer)
-#define DRM_IOCTL_I915_GEM_EXECBUFFER2 DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2, struct drm_i915_gem_execbuffer2)
-#define DRM_IOCTL_I915_GEM_EXECBUFFER2_WR DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2_WR, struct drm_i915_gem_execbuffer2)
-#define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin)
-#define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin)
-#define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy)
-#define DRM_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_SET_CACHING, struct drm_i915_gem_caching)
-#define DRM_IOCTL_I915_GEM_GET_CACHING DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_GET_CACHING, struct drm_i915_gem_caching)
-#define DRM_IOCTL_I915_GEM_THROTTLE DRM_IO ( DRM_COMMAND_BASE + DRM_I915_GEM_THROTTLE)
-#define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
-#define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
-#define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create)
-#define DRM_IOCTL_I915_GEM_CREATE_EXT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE_EXT, struct drm_i915_gem_create_ext)
-#define DRM_IOCTL_I915_GEM_PREAD DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
-#define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
-#define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
-#define DRM_IOCTL_I915_GEM_MMAP_GTT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_gtt)
-#define DRM_IOCTL_I915_GEM_MMAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_offset)
-#define DRM_IOCTL_I915_GEM_SET_DOMAIN DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SET_DOMAIN, struct drm_i915_gem_set_domain)
-#define DRM_IOCTL_I915_GEM_SW_FINISH DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish)
-#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
-#define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
-#define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
-#define DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_PIPE_FROM_CRTC_ID, struct drm_i915_get_pipe_from_crtc_id)
-#define DRM_IOCTL_I915_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MADVISE, struct drm_i915_gem_madvise)
-#define DRM_IOCTL_I915_OVERLAY_PUT_IMAGE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_OVERLAY_PUT_IMAGE, struct drm_intel_overlay_put_image)
-#define DRM_IOCTL_I915_OVERLAY_ATTRS DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_OVERLAY_ATTRS, struct drm_intel_overlay_attrs)
-#define DRM_IOCTL_I915_SET_SPRITE_COLORKEY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_SET_SPRITE_COLORKEY, struct drm_intel_sprite_colorkey)
-#define DRM_IOCTL_I915_GET_SPRITE_COLORKEY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_SPRITE_COLORKEY, struct drm_intel_sprite_colorkey)
-#define DRM_IOCTL_I915_GEM_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_WAIT, struct drm_i915_gem_wait)
-#define DRM_IOCTL_I915_GEM_CONTEXT_CREATE DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create)
-#define DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create_ext)
-#define DRM_IOCTL_I915_GEM_CONTEXT_DESTROY DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_DESTROY, struct drm_i915_gem_context_destroy)
-#define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read)
-#define DRM_IOCTL_I915_GET_RESET_STATS DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GET_RESET_STATS, struct drm_i915_reset_stats)
-#define DRM_IOCTL_I915_GEM_USERPTR DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_USERPTR, struct drm_i915_gem_userptr)
-#define DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_GETPARAM, struct drm_i915_gem_context_param)
-#define DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_SETPARAM, struct drm_i915_gem_context_param)
-#define DRM_IOCTL_I915_PERF_OPEN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_OPEN, struct drm_i915_perf_open_param)
-#define DRM_IOCTL_I915_PERF_ADD_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_ADD_CONFIG, struct drm_i915_perf_oa_config)
-#define DRM_IOCTL_I915_PERF_REMOVE_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_REMOVE_CONFIG, __u64)
-#define DRM_IOCTL_I915_QUERY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_QUERY, struct drm_i915_query)
-#define DRM_IOCTL_I915_GEM_VM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_VM_CREATE, struct drm_i915_gem_vm_control)
-#define DRM_IOCTL_I915_GEM_VM_DESTROY DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_VM_DESTROY, struct drm_i915_gem_vm_control)
-
-/* Allow drivers to submit batchbuffers directly to hardware, relying
- * on the security mechanisms provided by hardware.
- */
-typedef struct drm_i915_batchbuffer {
- int start; /* agp offset */
- int used; /* nr bytes in use */
- int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */
- int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */
- int num_cliprects; /* mulitpass with multiple cliprects? */
- struct drm_clip_rect *cliprects; /* pointer to userspace cliprects */
-} drm_i915_batchbuffer_t;
-
-/* As above, but pass a pointer to userspace buffer which can be
- * validated by the kernel prior to sending to hardware.
- */
-typedef struct _drm_i915_cmdbuffer {
- char *buf; /* pointer to userspace command buffer */
- int sz; /* nr bytes in buf */
- int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */
- int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */
- int num_cliprects; /* mulitpass with multiple cliprects? */
- struct drm_clip_rect *cliprects; /* pointer to userspace cliprects */
-} drm_i915_cmdbuffer_t;
-
-/* Userspace can request & wait on irq's:
- */
-typedef struct drm_i915_irq_emit {
- int *irq_seq;
-} drm_i915_irq_emit_t;
-
-typedef struct drm_i915_irq_wait {
- int irq_seq;
-} drm_i915_irq_wait_t;
-
-/*
- * Different modes of per-process Graphics Translation Table,
- * see I915_PARAM_HAS_ALIASING_PPGTT
- */
-#define I915_GEM_PPGTT_NONE 0
-#define I915_GEM_PPGTT_ALIASING 1
-#define I915_GEM_PPGTT_FULL 2
-
-/* Ioctl to query kernel params:
- */
-#define I915_PARAM_IRQ_ACTIVE 1
-#define I915_PARAM_ALLOW_BATCHBUFFER 2
-#define I915_PARAM_LAST_DISPATCH 3
-#define I915_PARAM_CHIPSET_ID 4
-#define I915_PARAM_HAS_GEM 5
-#define I915_PARAM_NUM_FENCES_AVAIL 6
-#define I915_PARAM_HAS_OVERLAY 7
-#define I915_PARAM_HAS_PAGEFLIPPING 8
-#define I915_PARAM_HAS_EXECBUF2 9
-#define I915_PARAM_HAS_BSD 10
-#define I915_PARAM_HAS_BLT 11
-#define I915_PARAM_HAS_RELAXED_FENCING 12
-#define I915_PARAM_HAS_COHERENT_RINGS 13
-#define I915_PARAM_HAS_EXEC_CONSTANTS 14
-#define I915_PARAM_HAS_RELAXED_DELTA 15
-#define I915_PARAM_HAS_GEN7_SOL_RESET 16
-#define I915_PARAM_HAS_LLC 17
-#define I915_PARAM_HAS_ALIASING_PPGTT 18
-#define I915_PARAM_HAS_WAIT_TIMEOUT 19
-#define I915_PARAM_HAS_SEMAPHORES 20
-#define I915_PARAM_HAS_PRIME_VMAP_FLUSH 21
-#define I915_PARAM_HAS_VEBOX 22
-#define I915_PARAM_HAS_SECURE_BATCHES 23
-#define I915_PARAM_HAS_PINNED_BATCHES 24
-#define I915_PARAM_HAS_EXEC_NO_RELOC 25
-#define I915_PARAM_HAS_EXEC_HANDLE_LUT 26
-#define I915_PARAM_HAS_WT 27
-#define I915_PARAM_CMD_PARSER_VERSION 28
-#define I915_PARAM_HAS_COHERENT_PHYS_GTT 29
-#define I915_PARAM_MMAP_VERSION 30
-#define I915_PARAM_HAS_BSD2 31
-#define I915_PARAM_REVISION 32
-#define I915_PARAM_SUBSLICE_TOTAL 33
-#define I915_PARAM_EU_TOTAL 34
-#define I915_PARAM_HAS_GPU_RESET 35
-#define I915_PARAM_HAS_RESOURCE_STREAMER 36
-#define I915_PARAM_HAS_EXEC_SOFTPIN 37
-#define I915_PARAM_HAS_POOLED_EU 38
-#define I915_PARAM_MIN_EU_IN_POOL 39
-#define I915_PARAM_MMAP_GTT_VERSION 40
-
-/*
- * Query whether DRM_I915_GEM_EXECBUFFER2 supports user defined execution
- * priorities and the driver will attempt to execute batches in priority order.
- * The param returns a capability bitmask, nonzero implies that the scheduler
- * is enabled, with different features present according to the mask.
- *
- * The initial priority for each batch is supplied by the context and is
- * controlled via I915_CONTEXT_PARAM_PRIORITY.
- */
-#define I915_PARAM_HAS_SCHEDULER 41
-#define I915_SCHEDULER_CAP_ENABLED (1ul << 0)
-#define I915_SCHEDULER_CAP_PRIORITY (1ul << 1)
-#define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2)
-#define I915_SCHEDULER_CAP_SEMAPHORES (1ul << 3)
-#define I915_SCHEDULER_CAP_ENGINE_BUSY_STATS (1ul << 4)
-/*
- * Indicates the 2k user priority levels are statically mapped into 3 buckets as
- * follows:
- *
- * -1k to -1 Low priority
- * 0 Normal priority
- * 1 to 1k Highest priority
- */
-#define I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP (1ul << 5)
-
-#define I915_PARAM_HUC_STATUS 42
-
-/* Query whether DRM_I915_GEM_EXECBUFFER2 supports the ability to opt-out of
- * synchronisation with implicit fencing on individual objects.
- * See EXEC_OBJECT_ASYNC.
- */
-#define I915_PARAM_HAS_EXEC_ASYNC 43
-
-/* Query whether DRM_I915_GEM_EXECBUFFER2 supports explicit fence support -
- * both being able to pass in a sync_file fd to wait upon before executing,
- * and being able to return a new sync_file fd that is signaled when the
- * current request is complete. See I915_EXEC_FENCE_IN and I915_EXEC_FENCE_OUT.
- */
-#define I915_PARAM_HAS_EXEC_FENCE 44
-
-/* Query whether DRM_I915_GEM_EXECBUFFER2 supports the ability to capture
- * user specified bufffers for post-mortem debugging of GPU hangs. See
- * EXEC_OBJECT_CAPTURE.
- */
-#define I915_PARAM_HAS_EXEC_CAPTURE 45
-
-#define I915_PARAM_SLICE_MASK 46
-
-/* Assuming it's uniform for each slice, this queries the mask of subslices
- * per-slice for this system.
- */
-#define I915_PARAM_SUBSLICE_MASK 47
-
-/*
- * Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying the batch buffer
- * as the first execobject as opposed to the last. See I915_EXEC_BATCH_FIRST.
- */
-#define I915_PARAM_HAS_EXEC_BATCH_FIRST 48
-
-/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of
- * drm_i915_gem_exec_fence structures. See I915_EXEC_FENCE_ARRAY.
- */
-#define I915_PARAM_HAS_EXEC_FENCE_ARRAY 49
-
-/*
- * Query whether every context (both per-file default and user created) is
- * isolated (insofar as HW supports). If this parameter is not true, then
- * freshly created contexts may inherit values from an existing context,
- * rather than default HW values. If true, it also ensures (insofar as HW
- * supports) that all state set by this context will not leak to any other
- * context.
- *
- * As not every engine across every gen support contexts, the returned
- * value reports the support of context isolation for individual engines by
- * returning a bitmask of each engine class set to true if that class supports
- * isolation.
- */
-#define I915_PARAM_HAS_CONTEXT_ISOLATION 50
-
-/* Frequency of the command streamer timestamps given by the *_TIMESTAMP
- * registers. This used to be fixed per platform but from CNL onwards, this
- * might vary depending on the parts.
- */
-#define I915_PARAM_CS_TIMESTAMP_FREQUENCY 51
-
-/*
- * Once upon a time we supposed that writes through the GGTT would be
- * immediately in physical memory (once flushed out of the CPU path). However,
- * on a few different processors and chipsets, this is not necessarily the case
- * as the writes appear to be buffered internally. Thus a read of the backing
- * storage (physical memory) via a different path (with different physical tags
- * to the indirect write via the GGTT) will see stale values from before
- * the GGTT write. Inside the kernel, we can for the most part keep track of
- * the different read/write domains in use (e.g. set-domain), but the assumption
- * of coherency is baked into the ABI, hence reporting its true state in this
- * parameter.
- *
- * Reports true when writes via mmap_gtt are immediately visible following an
- * lfence to flush the WCB.
- *
- * Reports false when writes via mmap_gtt are indeterminately delayed in an in
- * internal buffer and are _not_ immediately visible to third parties accessing
- * directly via mmap_cpu/mmap_wc. Use of mmap_gtt as part of an IPC
- * communications channel when reporting false is strongly disadvised.
- */
-#define I915_PARAM_MMAP_GTT_COHERENT 52
-
-/*
- * Query whether DRM_I915_GEM_EXECBUFFER2 supports coordination of parallel
- * execution through use of explicit fence support.
- * See I915_EXEC_FENCE_OUT and I915_EXEC_FENCE_SUBMIT.
- */
-#define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
-
-/*
- * Revision of the i915-perf uAPI. The value returned helps determine what
- * i915-perf features are available. See drm_i915_perf_property_id.
- */
-#define I915_PARAM_PERF_REVISION 54
-
-/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of
- * timeline syncobj through drm_i915_gem_execbuffer_ext_timeline_fences. See
- * I915_EXEC_USE_EXTENSIONS.
- */
-#define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
-
-/* Query if the kernel supports the I915_USERPTR_PROBE flag. */
-#define I915_PARAM_HAS_USERPTR_PROBE 56
-
-/* Must be kept compact -- no holes and well documented */
-
-/**
- * struct drm_i915_getparam - Driver parameter query structure.
- */
-struct drm_i915_getparam {
- /** @param: Driver parameter to query. */
- __s32 param;
-
- /**
- * @value: Address of memory where queried value should be put.
- *
- * WARNING: Using pointers instead of fixed-size u64 means we need to write
- * compat32 code. Don't repeat this mistake.
- */
- int *value;
-};
-
-/**
- * typedef drm_i915_getparam_t - Driver parameter query structure.
- * See struct drm_i915_getparam.
- */
-typedef struct drm_i915_getparam drm_i915_getparam_t;
-
-/* Ioctl to set kernel params:
- */
-#define I915_SETPARAM_USE_MI_BATCHBUFFER_START 1
-#define I915_SETPARAM_TEX_LRU_LOG_GRANULARITY 2
-#define I915_SETPARAM_ALLOW_BATCHBUFFER 3
-#define I915_SETPARAM_NUM_USED_FENCES 4
-/* Must be kept compact -- no holes */
-
-typedef struct drm_i915_setparam {
- int param;
- int value;
-} drm_i915_setparam_t;
-
-/* A memory manager for regions of shared memory:
- */
-#define I915_MEM_REGION_AGP 1
-
-typedef struct drm_i915_mem_alloc {
- int region;
- int alignment;
- int size;
- int *region_offset; /* offset from start of fb or agp */
-} drm_i915_mem_alloc_t;
-
-typedef struct drm_i915_mem_free {
- int region;
- int region_offset;
-} drm_i915_mem_free_t;
-
-typedef struct drm_i915_mem_init_heap {
- int region;
- int size;
- int start;
-} drm_i915_mem_init_heap_t;
-
-/* Allow memory manager to be torn down and re-initialized (eg on
- * rotate):
- */
-typedef struct drm_i915_mem_destroy_heap {
- int region;
-} drm_i915_mem_destroy_heap_t;
-
-/* Allow X server to configure which pipes to monitor for vblank signals
- */
-#define DRM_I915_VBLANK_PIPE_A 1
-#define DRM_I915_VBLANK_PIPE_B 2
-
-typedef struct drm_i915_vblank_pipe {
- int pipe;
-} drm_i915_vblank_pipe_t;
-
-/* Schedule buffer swap at given vertical blank:
- */
-typedef struct drm_i915_vblank_swap {
- drm_drawable_t drawable;
- enum drm_vblank_seq_type seqtype;
- unsigned int sequence;
-} drm_i915_vblank_swap_t;
-
-typedef struct drm_i915_hws_addr {
- __u64 addr;
-} drm_i915_hws_addr_t;
-
-struct drm_i915_gem_init {
- /**
- * Beginning offset in the GTT to be managed by the DRM memory
- * manager.
- */
- __u64 gtt_start;
- /**
- * Ending offset in the GTT to be managed by the DRM memory
- * manager.
- */
- __u64 gtt_end;
-};
-
-struct drm_i915_gem_create {
- /**
- * Requested size for the object.
- *
- * The (page-aligned) allocated size for the object will be returned.
- */
- __u64 size;
- /**
- * Returned handle for the object.
- *
- * Object handles are nonzero.
- */
- __u32 handle;
- __u32 pad;
-};
-
-struct drm_i915_gem_pread {
- /** Handle for the object being read. */
- __u32 handle;
- __u32 pad;
- /** Offset into the object to read from */
- __u64 offset;
- /** Length of data to read */
- __u64 size;
- /**
- * Pointer to write the data into.
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 data_ptr;
-};
-
-struct drm_i915_gem_pwrite {
- /** Handle for the object being written to. */
- __u32 handle;
- __u32 pad;
- /** Offset into the object to write to */
- __u64 offset;
- /** Length of data to write */
- __u64 size;
- /**
- * Pointer to read the data from.
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 data_ptr;
-};
-
-struct drm_i915_gem_mmap {
- /** Handle for the object being mapped. */
- __u32 handle;
- __u32 pad;
- /** Offset in the object to map. */
- __u64 offset;
- /**
- * Length of data to map.
- *
- * The value will be page-aligned.
- */
- __u64 size;
- /**
- * Returned pointer the data was mapped at.
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 addr_ptr;
-
- /**
- * Flags for extended behaviour.
- *
- * Added in version 2.
- */
- __u64 flags;
-#define I915_MMAP_WC 0x1
-};
-
-struct drm_i915_gem_mmap_gtt {
- /** Handle for the object being mapped. */
- __u32 handle;
- __u32 pad;
- /**
- * Fake offset to use for subsequent mmap call
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 offset;
-};
-
-/**
- * struct drm_i915_gem_mmap_offset - Retrieve an offset so we can mmap this buffer object.
- *
- * This struct is passed as argument to the `DRM_IOCTL_I915_GEM_MMAP_OFFSET` ioctl,
- * and is used to retrieve the fake offset to mmap an object specified by &handle.
- *
- * The legacy way of using `DRM_IOCTL_I915_GEM_MMAP` is removed on gen12+.
- * `DRM_IOCTL_I915_GEM_MMAP_GTT` is an older supported alias to this struct, but will behave
- * as setting the &extensions to 0, and &flags to `I915_MMAP_OFFSET_GTT`.
- */
-struct drm_i915_gem_mmap_offset {
- /** @handle: Handle for the object being mapped. */
- __u32 handle;
- /** @pad: Must be zero */
- __u32 pad;
- /**
- * @offset: The fake offset to use for subsequent mmap call
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 offset;
-
- /**
- * @flags: Flags for extended behaviour.
- *
- * It is mandatory that one of the `MMAP_OFFSET` types
- * should be included:
- *
- * - `I915_MMAP_OFFSET_GTT`: Use mmap with the object bound to GTT. (Write-Combined)
- * - `I915_MMAP_OFFSET_WC`: Use Write-Combined caching.
- * - `I915_MMAP_OFFSET_WB`: Use Write-Back caching.
- * - `I915_MMAP_OFFSET_FIXED`: Use object placement to determine caching.
- *
- * On devices with local memory `I915_MMAP_OFFSET_FIXED` is the only valid
- * type. On devices without local memory, this caching mode is invalid.
- *
- * As caching mode when specifying `I915_MMAP_OFFSET_FIXED`, WC or WB will
- * be used, depending on the object placement on creation. WB will be used
- * when the object can only exist in system memory, WC otherwise.
- */
- __u64 flags;
-
-#define I915_MMAP_OFFSET_GTT 0
-#define I915_MMAP_OFFSET_WC 1
-#define I915_MMAP_OFFSET_WB 2
-#define I915_MMAP_OFFSET_UC 3
-#define I915_MMAP_OFFSET_FIXED 4
-
- /**
- * @extensions: Zero-terminated chain of extensions.
- *
- * No current extensions defined; mbz.
- */
- __u64 extensions;
-};
-
-/**
- * struct drm_i915_gem_set_domain - Adjust the objects write or read domain, in
- * preparation for accessing the pages via some CPU domain.
- *
- * Specifying a new write or read domain will flush the object out of the
- * previous domain(if required), before then updating the objects domain
- * tracking with the new domain.
- *
- * Note this might involve waiting for the object first if it is still active on
- * the GPU.
- *
- * Supported values for @read_domains and @write_domain:
- *
- * - I915_GEM_DOMAIN_WC: Uncached write-combined domain
- * - I915_GEM_DOMAIN_CPU: CPU cache domain
- * - I915_GEM_DOMAIN_GTT: Mappable aperture domain
- *
- * All other domains are rejected.
- *
- * Note that for discrete, starting from DG1, this is no longer supported, and
- * is instead rejected. On such platforms the CPU domain is effectively static,
- * where we also only support a single &drm_i915_gem_mmap_offset cache mode,
- * which can't be set explicitly and instead depends on the object placements,
- * as per the below.
- *
- * Implicit caching rules, starting from DG1:
- *
- * - If any of the object placements (see &drm_i915_gem_create_ext_memory_regions)
- * contain I915_MEMORY_CLASS_DEVICE then the object will be allocated and
- * mapped as write-combined only.
- *
- * - Everything else is always allocated and mapped as write-back, with the
- * guarantee that everything is also coherent with the GPU.
- *
- * Note that this is likely to change in the future again, where we might need
- * more flexibility on future devices, so making this all explicit as part of a
- * new &drm_i915_gem_create_ext extension is probable.
- */
-struct drm_i915_gem_set_domain {
- /** @handle: Handle for the object. */
- __u32 handle;
-
- /** @read_domains: New read domains. */
- __u32 read_domains;
-
- /**
- * @write_domain: New write domain.
- *
- * Note that having something in the write domain implies it's in the
- * read domain, and only that read domain.
- */
- __u32 write_domain;
-};
-
-struct drm_i915_gem_sw_finish {
- /** Handle for the object */
- __u32 handle;
-};
-
-struct drm_i915_gem_relocation_entry {
- /**
- * Handle of the buffer being pointed to by this relocation entry.
- *
- * It's appealing to make this be an index into the mm_validate_entry
- * list to refer to the buffer, but this allows the driver to create
- * a relocation list for state buffers and not re-write it per
- * exec using the buffer.
- */
- __u32 target_handle;
-
- /**
- * Value to be added to the offset of the target buffer to make up
- * the relocation entry.
- */
- __u32 delta;
-
- /** Offset in the buffer the relocation entry will be written into */
- __u64 offset;
-
- /**
- * Offset value of the target buffer that the relocation entry was last
- * written as.
- *
- * If the buffer has the same offset as last time, we can skip syncing
- * and writing the relocation. This value is written back out by
- * the execbuffer ioctl when the relocation is written.
- */
- __u64 presumed_offset;
-
- /**
- * Target memory domains read by this operation.
- */
- __u32 read_domains;
-
- /**
- * Target memory domains written by this operation.
- *
- * Note that only one domain may be written by the whole
- * execbuffer operation, so that where there are conflicts,
- * the application will get -EINVAL back.
- */
- __u32 write_domain;
-};
-
-/** @{
- * Intel memory domains
- *
- * Most of these just align with the various caches in
- * the system and are used to flush and invalidate as
- * objects end up cached in different domains.
- */
-/** CPU cache */
-#define I915_GEM_DOMAIN_CPU 0x00000001
-/** Render cache, used by 2D and 3D drawing */
-#define I915_GEM_DOMAIN_RENDER 0x00000002
-/** Sampler cache, used by texture engine */
-#define I915_GEM_DOMAIN_SAMPLER 0x00000004
-/** Command queue, used to load batch buffers */
-#define I915_GEM_DOMAIN_COMMAND 0x00000008
-/** Instruction cache, used by shader programs */
-#define I915_GEM_DOMAIN_INSTRUCTION 0x00000010
-/** Vertex address cache */
-#define I915_GEM_DOMAIN_VERTEX 0x00000020
-/** GTT domain - aperture and scanout */
-#define I915_GEM_DOMAIN_GTT 0x00000040
-/** WC domain - uncached access */
-#define I915_GEM_DOMAIN_WC 0x00000080
-/** @} */
-
-struct drm_i915_gem_exec_object {
- /**
- * User's handle for a buffer to be bound into the GTT for this
- * operation.
- */
- __u32 handle;
-
- /** Number of relocations to be performed on this buffer */
- __u32 relocation_count;
- /**
- * Pointer to array of struct drm_i915_gem_relocation_entry containing
- * the relocations to be performed in this buffer.
- */
- __u64 relocs_ptr;
-
- /** Required alignment in graphics aperture */
- __u64 alignment;
-
- /**
- * Returned value of the updated offset of the object, for future
- * presumed_offset writes.
- */
- __u64 offset;
-};
-
-/* DRM_IOCTL_I915_GEM_EXECBUFFER was removed in Linux 5.13 */
-struct drm_i915_gem_execbuffer {
- /**
- * List of buffers to be validated with their relocations to be
- * performend on them.
- *
- * This is a pointer to an array of struct drm_i915_gem_validate_entry.
- *
- * These buffers must be listed in an order such that all relocations
- * a buffer is performing refer to buffers that have already appeared
- * in the validate list.
- */
- __u64 buffers_ptr;
- __u32 buffer_count;
-
- /** Offset in the batchbuffer to start execution from. */
- __u32 batch_start_offset;
- /** Bytes used in batchbuffer from batch_start_offset */
- __u32 batch_len;
- __u32 DR1;
- __u32 DR4;
- __u32 num_cliprects;
- /** This is a struct drm_clip_rect *cliprects */
- __u64 cliprects_ptr;
-};
-
-struct drm_i915_gem_exec_object2 {
- /**
- * User's handle for a buffer to be bound into the GTT for this
- * operation.
- */
- __u32 handle;
-
- /** Number of relocations to be performed on this buffer */
- __u32 relocation_count;
- /**
- * Pointer to array of struct drm_i915_gem_relocation_entry containing
- * the relocations to be performed in this buffer.
- */
- __u64 relocs_ptr;
-
- /** Required alignment in graphics aperture */
- __u64 alignment;
-
- /**
- * When the EXEC_OBJECT_PINNED flag is specified this is populated by
- * the user with the GTT offset at which this object will be pinned.
- *
- * When the I915_EXEC_NO_RELOC flag is specified this must contain the
- * presumed_offset of the object.
- *
- * During execbuffer2 the kernel populates it with the value of the
- * current GTT offset of the object, for future presumed_offset writes.
- *
- * See struct drm_i915_gem_create_ext for the rules when dealing with
- * alignment restrictions with I915_MEMORY_CLASS_DEVICE, on devices with
- * minimum page sizes, like DG2.
- */
- __u64 offset;
-
-#define EXEC_OBJECT_NEEDS_FENCE (1<<0)
-#define EXEC_OBJECT_NEEDS_GTT (1<<1)
-#define EXEC_OBJECT_WRITE (1<<2)
-#define EXEC_OBJECT_SUPPORTS_48B_ADDRESS (1<<3)
-#define EXEC_OBJECT_PINNED (1<<4)
-#define EXEC_OBJECT_PAD_TO_SIZE (1<<5)
-/* The kernel implicitly tracks GPU activity on all GEM objects, and
- * synchronises operations with outstanding rendering. This includes
- * rendering on other devices if exported via dma-buf. However, sometimes
- * this tracking is too coarse and the user knows better. For example,
- * if the object is split into non-overlapping ranges shared between different
- * clients or engines (i.e. suballocating objects), the implicit tracking
- * by kernel assumes that each operation affects the whole object rather
- * than an individual range, causing needless synchronisation between clients.
- * The kernel will also forgo any CPU cache flushes prior to rendering from
- * the object as the client is expected to be also handling such domain
- * tracking.
- *
- * The kernel maintains the implicit tracking in order to manage resources
- * used by the GPU - this flag only disables the synchronisation prior to
- * rendering with this object in this execbuf.
- *
- * Opting out of implicit synhronisation requires the user to do its own
- * explicit tracking to avoid rendering corruption. See, for example,
- * I915_PARAM_HAS_EXEC_FENCE to order execbufs and execute them asynchronously.
- */
-#define EXEC_OBJECT_ASYNC (1<<6)
-/* Request that the contents of this execobject be copied into the error
- * state upon a GPU hang involving this batch for post-mortem debugging.
- * These buffers are recorded in no particular order as "user" in
- * /sys/class/drm/cardN/error. Query I915_PARAM_HAS_EXEC_CAPTURE to see
- * if the kernel supports this flag.
- */
-#define EXEC_OBJECT_CAPTURE (1<<7)
-/* All remaining bits are MBZ and RESERVED FOR FUTURE USE */
-#define __EXEC_OBJECT_UNKNOWN_FLAGS -(EXEC_OBJECT_CAPTURE<<1)
- __u64 flags;
-
- union {
- __u64 rsvd1;
- __u64 pad_to_size;
- };
- __u64 rsvd2;
-};
-
-/**
- * struct drm_i915_gem_exec_fence - An input or output fence for the execbuf
- * ioctl.
- *
- * The request will wait for input fence to signal before submission.
- *
- * The returned output fence will be signaled after the completion of the
- * request.
- */
-struct drm_i915_gem_exec_fence {
- /** @handle: User's handle for a drm_syncobj to wait on or signal. */
- __u32 handle;
-
- /**
- * @flags: Supported flags are:
- *
- * I915_EXEC_FENCE_WAIT:
- * Wait for the input fence before request submission.
- *
- * I915_EXEC_FENCE_SIGNAL:
- * Return request completion fence as output
- */
- __u32 flags;
-#define I915_EXEC_FENCE_WAIT (1<<0)
-#define I915_EXEC_FENCE_SIGNAL (1<<1)
-#define __I915_EXEC_FENCE_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_SIGNAL << 1))
-};
-
-/**
- * struct drm_i915_gem_execbuffer_ext_timeline_fences - Timeline fences
- * for execbuf ioctl.
- *
- * This structure describes an array of drm_syncobj and associated points for
- * timeline variants of drm_syncobj. It is invalid to append this structure to
- * the execbuf if I915_EXEC_FENCE_ARRAY is set.
- */
-struct drm_i915_gem_execbuffer_ext_timeline_fences {
-#define DRM_I915_GEM_EXECBUFFER_EXT_TIMELINE_FENCES 0
- /** @base: Extension link. See struct i915_user_extension. */
- struct i915_user_extension base;
-
- /**
- * @fence_count: Number of elements in the @handles_ptr & @value_ptr
- * arrays.
- */
- __u64 fence_count;
-
- /**
- * @handles_ptr: Pointer to an array of struct drm_i915_gem_exec_fence
- * of length @fence_count.
- */
- __u64 handles_ptr;
-
- /**
- * @values_ptr: Pointer to an array of u64 values of length
- * @fence_count.
- * Values must be 0 for a binary drm_syncobj. A Value of 0 for a
- * timeline drm_syncobj is invalid as it turns a drm_syncobj into a
- * binary one.
- */
- __u64 values_ptr;
-};
-
-/**
- * struct drm_i915_gem_execbuffer2 - Structure for DRM_I915_GEM_EXECBUFFER2
- * ioctl.
- */
-struct drm_i915_gem_execbuffer2 {
- /** @buffers_ptr: Pointer to a list of gem_exec_object2 structs */
- __u64 buffers_ptr;
-
- /** @buffer_count: Number of elements in @buffers_ptr array */
- __u32 buffer_count;
-
- /**
- * @batch_start_offset: Offset in the batchbuffer to start execution
- * from.
- */
- __u32 batch_start_offset;
-
- /**
- * @batch_len: Length in bytes of the batch buffer, starting from the
- * @batch_start_offset. If 0, length is assumed to be the batch buffer
- * object size.
- */
- __u32 batch_len;
-
- /** @DR1: deprecated */
- __u32 DR1;
-
- /** @DR4: deprecated */
- __u32 DR4;
-
- /** @num_cliprects: See @cliprects_ptr */
- __u32 num_cliprects;
-
- /**
- * @cliprects_ptr: Kernel clipping was a DRI1 misfeature.
- *
- * It is invalid to use this field if I915_EXEC_FENCE_ARRAY or
- * I915_EXEC_USE_EXTENSIONS flags are not set.
- *
- * If I915_EXEC_FENCE_ARRAY is set, then this is a pointer to an array
- * of &drm_i915_gem_exec_fence and @num_cliprects is the length of the
- * array.
- *
- * If I915_EXEC_USE_EXTENSIONS is set, then this is a pointer to a
- * single &i915_user_extension and num_cliprects is 0.
- */
- __u64 cliprects_ptr;
-
- /** @flags: Execbuf flags */
- __u64 flags;
-#define I915_EXEC_RING_MASK (0x3f)
-#define I915_EXEC_DEFAULT (0<<0)
-#define I915_EXEC_RENDER (1<<0)
-#define I915_EXEC_BSD (2<<0)
-#define I915_EXEC_BLT (3<<0)
-#define I915_EXEC_VEBOX (4<<0)
-
-/* Used for switching the constants addressing mode on gen4+ RENDER ring.
- * Gen6+ only supports relative addressing to dynamic state (default) and
- * absolute addressing.
- *
- * These flags are ignored for the BSD and BLT rings.
- */
-#define I915_EXEC_CONSTANTS_MASK (3<<6)
-#define I915_EXEC_CONSTANTS_REL_GENERAL (0<<6) /* default */
-#define I915_EXEC_CONSTANTS_ABSOLUTE (1<<6)
-#define I915_EXEC_CONSTANTS_REL_SURFACE (2<<6) /* gen4/5 only */
-
-/** Resets the SO write offset registers for transform feedback on gen7. */
-#define I915_EXEC_GEN7_SOL_RESET (1<<8)
-
-/** Request a privileged ("secure") batch buffer. Note only available for
- * DRM_ROOT_ONLY | DRM_MASTER processes.
- */
-#define I915_EXEC_SECURE (1<<9)
-
-/** Inform the kernel that the batch is and will always be pinned. This
- * negates the requirement for a workaround to be performed to avoid
- * an incoherent CS (such as can be found on 830/845). If this flag is
- * not passed, the kernel will endeavour to make sure the batch is
- * coherent with the CS before execution. If this flag is passed,
- * userspace assumes the responsibility for ensuring the same.
- */
-#define I915_EXEC_IS_PINNED (1<<10)
-
-/** Provide a hint to the kernel that the command stream and auxiliary
- * state buffers already holds the correct presumed addresses and so the
- * relocation process may be skipped if no buffers need to be moved in
- * preparation for the execbuffer.
- */
-#define I915_EXEC_NO_RELOC (1<<11)
-
-/** Use the reloc.handle as an index into the exec object array rather
- * than as the per-file handle.
- */
-#define I915_EXEC_HANDLE_LUT (1<<12)
-
-/** Used for switching BSD rings on the platforms with two BSD rings */
-#define I915_EXEC_BSD_SHIFT (13)
-#define I915_EXEC_BSD_MASK (3 << I915_EXEC_BSD_SHIFT)
-/* default ping-pong mode */
-#define I915_EXEC_BSD_DEFAULT (0 << I915_EXEC_BSD_SHIFT)
-#define I915_EXEC_BSD_RING1 (1 << I915_EXEC_BSD_SHIFT)
-#define I915_EXEC_BSD_RING2 (2 << I915_EXEC_BSD_SHIFT)
-
-/** Tell the kernel that the batchbuffer is processed by
- * the resource streamer.
- */
-#define I915_EXEC_RESOURCE_STREAMER (1<<15)
-
-/* Setting I915_EXEC_FENCE_IN implies that lower_32_bits(rsvd2) represent
- * a sync_file fd to wait upon (in a nonblocking manner) prior to executing
- * the batch.
- *
- * Returns -EINVAL if the sync_file fd cannot be found.
- */
-#define I915_EXEC_FENCE_IN (1<<16)
-
-/* Setting I915_EXEC_FENCE_OUT causes the ioctl to return a sync_file fd
- * in the upper_32_bits(rsvd2) upon success. Ownership of the fd is given
- * to the caller, and it should be close() after use. (The fd is a regular
- * file descriptor and will be cleaned up on process termination. It holds
- * a reference to the request, but nothing else.)
- *
- * The sync_file fd can be combined with other sync_file and passed either
- * to execbuf using I915_EXEC_FENCE_IN, to atomic KMS ioctls (so that a flip
- * will only occur after this request completes), or to other devices.
- *
- * Using I915_EXEC_FENCE_OUT requires use of
- * DRM_IOCTL_I915_GEM_EXECBUFFER2_WR ioctl so that the result is written
- * back to userspace. Failure to do so will cause the out-fence to always
- * be reported as zero, and the real fence fd to be leaked.
- */
-#define I915_EXEC_FENCE_OUT (1<<17)
-
-/*
- * Traditionally the execbuf ioctl has only considered the final element in
- * the execobject[] to be the executable batch. Often though, the client
- * will known the batch object prior to construction and being able to place
- * it into the execobject[] array first can simplify the relocation tracking.
- * Setting I915_EXEC_BATCH_FIRST tells execbuf to use element 0 of the
- * execobject[] as the * batch instead (the default is to use the last
- * element).
- */
-#define I915_EXEC_BATCH_FIRST (1<<18)
-
-/* Setting I915_FENCE_ARRAY implies that num_cliprects and cliprects_ptr
- * define an array of i915_gem_exec_fence structures which specify a set of
- * dma fences to wait upon or signal.
- */
-#define I915_EXEC_FENCE_ARRAY (1<<19)
-
-/*
- * Setting I915_EXEC_FENCE_SUBMIT implies that lower_32_bits(rsvd2) represent
- * a sync_file fd to wait upon (in a nonblocking manner) prior to executing
- * the batch.
- *
- * Returns -EINVAL if the sync_file fd cannot be found.
- */
-#define I915_EXEC_FENCE_SUBMIT (1 << 20)
-
-/*
- * Setting I915_EXEC_USE_EXTENSIONS implies that
- * drm_i915_gem_execbuffer2.cliprects_ptr is treated as a pointer to an linked
- * list of i915_user_extension. Each i915_user_extension node is the base of a
- * larger structure. The list of supported structures are listed in the
- * drm_i915_gem_execbuffer_ext enum.
- */
-#define I915_EXEC_USE_EXTENSIONS (1 << 21)
-#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_USE_EXTENSIONS << 1))
-
- /** @rsvd1: Context id */
- __u64 rsvd1;
-
- /**
- * @rsvd2: in and out sync_file file descriptors.
- *
- * When I915_EXEC_FENCE_IN or I915_EXEC_FENCE_SUBMIT flag is set, the
- * lower 32 bits of this field will have the in sync_file fd (input).
- *
- * When I915_EXEC_FENCE_OUT flag is set, the upper 32 bits of this
- * field will have the out sync_file fd (output).
- */
- __u64 rsvd2;
-};
-
-#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
-#define i915_execbuffer2_set_context_id(eb2, context) \
- (eb2).rsvd1 = context & I915_EXEC_CONTEXT_ID_MASK
-#define i915_execbuffer2_get_context_id(eb2) \
- ((eb2).rsvd1 & I915_EXEC_CONTEXT_ID_MASK)
-
-struct drm_i915_gem_pin {
- /** Handle of the buffer to be pinned. */
- __u32 handle;
- __u32 pad;
-
- /** alignment required within the aperture */
- __u64 alignment;
-
- /** Returned GTT offset of the buffer. */
- __u64 offset;
-};
-
-struct drm_i915_gem_unpin {
- /** Handle of the buffer to be unpinned. */
- __u32 handle;
- __u32 pad;
-};
-
-struct drm_i915_gem_busy {
- /** Handle of the buffer to check for busy */
- __u32 handle;
-
- /** Return busy status
- *
- * A return of 0 implies that the object is idle (after
- * having flushed any pending activity), and a non-zero return that
- * the object is still in-flight on the GPU. (The GPU has not yet
- * signaled completion for all pending requests that reference the
- * object.) An object is guaranteed to become idle eventually (so
- * long as no new GPU commands are executed upon it). Due to the
- * asynchronous nature of the hardware, an object reported
- * as busy may become idle before the ioctl is completed.
- *
- * Furthermore, if the object is busy, which engine is busy is only
- * provided as a guide and only indirectly by reporting its class
- * (there may be more than one engine in each class). There are race
- * conditions which prevent the report of which engines are busy from
- * being always accurate. However, the converse is not true. If the
- * object is idle, the result of the ioctl, that all engines are idle,
- * is accurate.
- *
- * The returned dword is split into two fields to indicate both
- * the engine classess on which the object is being read, and the
- * engine class on which it is currently being written (if any).
- *
- * The low word (bits 0:15) indicate if the object is being written
- * to by any engine (there can only be one, as the GEM implicit
- * synchronisation rules force writes to be serialised). Only the
- * engine class (offset by 1, I915_ENGINE_CLASS_RENDER is reported as
- * 1 not 0 etc) for the last write is reported.
- *
- * The high word (bits 16:31) are a bitmask of which engines classes
- * are currently reading from the object. Multiple engines may be
- * reading from the object simultaneously.
- *
- * The value of each engine class is the same as specified in the
- * I915_CONTEXT_PARAM_ENGINES context parameter and via perf, i.e.
- * I915_ENGINE_CLASS_RENDER, I915_ENGINE_CLASS_COPY, etc.
- * Some hardware may have parallel execution engines, e.g. multiple
- * media engines, which are mapped to the same class identifier and so
- * are not separately reported for busyness.
- *
- * Caveat emptor:
- * Only the boolean result of this query is reliable; that is whether
- * the object is idle or busy. The report of which engines are busy
- * should be only used as a heuristic.
- */
- __u32 busy;
-};
-
-/**
- * struct drm_i915_gem_caching - Set or get the caching for given object
- * handle.
- *
- * Allow userspace to control the GTT caching bits for a given object when the
- * object is later mapped through the ppGTT(or GGTT on older platforms lacking
- * ppGTT support, or if the object is used for scanout). Note that this might
- * require unbinding the object from the GTT first, if its current caching value
- * doesn't match.
- *
- * Note that this all changes on discrete platforms, starting from DG1, the
- * set/get caching is no longer supported, and is now rejected. Instead the CPU
- * caching attributes(WB vs WC) will become an immutable creation time property
- * for the object, along with the GTT caching level. For now we don't expose any
- * new uAPI for this, instead on DG1 this is all implicit, although this largely
- * shouldn't matter since DG1 is coherent by default(without any way of
- * controlling it).
- *
- * Implicit caching rules, starting from DG1:
- *
- * - If any of the object placements (see &drm_i915_gem_create_ext_memory_regions)
- * contain I915_MEMORY_CLASS_DEVICE then the object will be allocated and
- * mapped as write-combined only.
- *
- * - Everything else is always allocated and mapped as write-back, with the
- * guarantee that everything is also coherent with the GPU.
- *
- * Note that this is likely to change in the future again, where we might need
- * more flexibility on future devices, so making this all explicit as part of a
- * new &drm_i915_gem_create_ext extension is probable.
- *
- * Side note: Part of the reason for this is that changing the at-allocation-time CPU
- * caching attributes for the pages might be required(and is expensive) if we
- * need to then CPU map the pages later with different caching attributes. This
- * inconsistent caching behaviour, while supported on x86, is not universally
- * supported on other architectures. So for simplicity we opt for setting
- * everything at creation time, whilst also making it immutable, on discrete
- * platforms.
- */
-struct drm_i915_gem_caching {
- /**
- * @handle: Handle of the buffer to set/get the caching level.
- */
- __u32 handle;
-
- /**
- * @caching: The GTT caching level to apply or possible return value.
- *
- * The supported @caching values:
- *
- * I915_CACHING_NONE:
- *
- * GPU access is not coherent with CPU caches. Default for machines
- * without an LLC. This means manual flushing might be needed, if we
- * want GPU access to be coherent.
- *
- * I915_CACHING_CACHED:
- *
- * GPU access is coherent with CPU caches and furthermore the data is
- * cached in last-level caches shared between CPU cores and the GPU GT.
- *
- * I915_CACHING_DISPLAY:
- *
- * Special GPU caching mode which is coherent with the scanout engines.
- * Transparently falls back to I915_CACHING_NONE on platforms where no
- * special cache mode (like write-through or gfdt flushing) is
- * available. The kernel automatically sets this mode when using a
- * buffer as a scanout target. Userspace can manually set this mode to
- * avoid a costly stall and clflush in the hotpath of drawing the first
- * frame.
- */
-#define I915_CACHING_NONE 0
-#define I915_CACHING_CACHED 1
-#define I915_CACHING_DISPLAY 2
- __u32 caching;
-};
-
-#define I915_TILING_NONE 0
-#define I915_TILING_X 1
-#define I915_TILING_Y 2
-/*
- * Do not add new tiling types here. The I915_TILING_* values are for
- * de-tiling fence registers that no longer exist on modern platforms. Although
- * the hardware may support new types of tiling in general (e.g., Tile4), we
- * do not need to add them to the uapi that is specific to now-defunct ioctls.
- */
-#define I915_TILING_LAST I915_TILING_Y
-
-#define I915_BIT_6_SWIZZLE_NONE 0
-#define I915_BIT_6_SWIZZLE_9 1
-#define I915_BIT_6_SWIZZLE_9_10 2
-#define I915_BIT_6_SWIZZLE_9_11 3
-#define I915_BIT_6_SWIZZLE_9_10_11 4
-/* Not seen by userland */
-#define I915_BIT_6_SWIZZLE_UNKNOWN 5
-/* Seen by userland. */
-#define I915_BIT_6_SWIZZLE_9_17 6
-#define I915_BIT_6_SWIZZLE_9_10_17 7
-
-struct drm_i915_gem_set_tiling {
- /** Handle of the buffer to have its tiling state updated */
- __u32 handle;
-
- /**
- * Tiling mode for the object (I915_TILING_NONE, I915_TILING_X,
- * I915_TILING_Y).
- *
- * This value is to be set on request, and will be updated by the
- * kernel on successful return with the actual chosen tiling layout.
- *
- * The tiling mode may be demoted to I915_TILING_NONE when the system
- * has bit 6 swizzling that can't be managed correctly by GEM.
- *
- * Buffer contents become undefined when changing tiling_mode.
- */
- __u32 tiling_mode;
-
- /**
- * Stride in bytes for the object when in I915_TILING_X or
- * I915_TILING_Y.
- */
- __u32 stride;
-
- /**
- * Returned address bit 6 swizzling required for CPU access through
- * mmap mapping.
- */
- __u32 swizzle_mode;
-};
-
-struct drm_i915_gem_get_tiling {
- /** Handle of the buffer to get tiling state for. */
- __u32 handle;
-
- /**
- * Current tiling mode for the object (I915_TILING_NONE, I915_TILING_X,
- * I915_TILING_Y).
- */
- __u32 tiling_mode;
-
- /**
- * Returned address bit 6 swizzling required for CPU access through
- * mmap mapping.
- */
- __u32 swizzle_mode;
-
- /**
- * Returned address bit 6 swizzling required for CPU access through
- * mmap mapping whilst bound.
- */
- __u32 phys_swizzle_mode;
-};
-
-struct drm_i915_gem_get_aperture {
- /** Total size of the aperture used by i915_gem_execbuffer, in bytes */
- __u64 aper_size;
-
- /**
- * Available space in the aperture used by i915_gem_execbuffer, in
- * bytes
- */
- __u64 aper_available_size;
-};
-
-struct drm_i915_get_pipe_from_crtc_id {
- /** ID of CRTC being requested **/
- __u32 crtc_id;
-
- /** pipe of requested CRTC **/
- __u32 pipe;
-};
-
-#define I915_MADV_WILLNEED 0
-#define I915_MADV_DONTNEED 1
-#define __I915_MADV_PURGED 2 /* internal state */
-
-struct drm_i915_gem_madvise {
- /** Handle of the buffer to change the backing store advice */
- __u32 handle;
-
- /* Advice: either the buffer will be needed again in the near future,
- * or wont be and could be discarded under memory pressure.
- */
- __u32 madv;
-
- /** Whether the backing store still exists. */
- __u32 retained;
-};
-
-/* flags */
-#define I915_OVERLAY_TYPE_MASK 0xff
-#define I915_OVERLAY_YUV_PLANAR 0x01
-#define I915_OVERLAY_YUV_PACKED 0x02
-#define I915_OVERLAY_RGB 0x03
-
-#define I915_OVERLAY_DEPTH_MASK 0xff00
-#define I915_OVERLAY_RGB24 0x1000
-#define I915_OVERLAY_RGB16 0x2000
-#define I915_OVERLAY_RGB15 0x3000
-#define I915_OVERLAY_YUV422 0x0100
-#define I915_OVERLAY_YUV411 0x0200
-#define I915_OVERLAY_YUV420 0x0300
-#define I915_OVERLAY_YUV410 0x0400
-
-#define I915_OVERLAY_SWAP_MASK 0xff0000
-#define I915_OVERLAY_NO_SWAP 0x000000
-#define I915_OVERLAY_UV_SWAP 0x010000
-#define I915_OVERLAY_Y_SWAP 0x020000
-#define I915_OVERLAY_Y_AND_UV_SWAP 0x030000
-
-#define I915_OVERLAY_FLAGS_MASK 0xff000000
-#define I915_OVERLAY_ENABLE 0x01000000
-
-struct drm_intel_overlay_put_image {
- /* various flags and src format description */
- __u32 flags;
- /* source picture description */
- __u32 bo_handle;
- /* stride values and offsets are in bytes, buffer relative */
- __u16 stride_Y; /* stride for packed formats */
- __u16 stride_UV;
- __u32 offset_Y; /* offset for packet formats */
- __u32 offset_U;
- __u32 offset_V;
- /* in pixels */
- __u16 src_width;
- __u16 src_height;
- /* to compensate the scaling factors for partially covered surfaces */
- __u16 src_scan_width;
- __u16 src_scan_height;
- /* output crtc description */
- __u32 crtc_id;
- __u16 dst_x;
- __u16 dst_y;
- __u16 dst_width;
- __u16 dst_height;
-};
-
-/* flags */
-#define I915_OVERLAY_UPDATE_ATTRS (1<<0)
-#define I915_OVERLAY_UPDATE_GAMMA (1<<1)
-#define I915_OVERLAY_DISABLE_DEST_COLORKEY (1<<2)
-struct drm_intel_overlay_attrs {
- __u32 flags;
- __u32 color_key;
- __s32 brightness;
- __u32 contrast;
- __u32 saturation;
- __u32 gamma0;
- __u32 gamma1;
- __u32 gamma2;
- __u32 gamma3;
- __u32 gamma4;
- __u32 gamma5;
-};
-
-/*
- * Intel sprite handling
- *
- * Color keying works with a min/mask/max tuple. Both source and destination
- * color keying is allowed.
- *
- * Source keying:
- * Sprite pixels within the min & max values, masked against the color channels
- * specified in the mask field, will be transparent. All other pixels will
- * be displayed on top of the primary plane. For RGB surfaces, only the min
- * and mask fields will be used; ranged compares are not allowed.
- *
- * Destination keying:
- * Primary plane pixels that match the min value, masked against the color
- * channels specified in the mask field, will be replaced by corresponding
- * pixels from the sprite plane.
- *
- * Note that source & destination keying are exclusive; only one can be
- * active on a given plane.
- */
-
-#define I915_SET_COLORKEY_NONE (1<<0) /* Deprecated. Instead set
- * flags==0 to disable colorkeying.
- */
-#define I915_SET_COLORKEY_DESTINATION (1<<1)
-#define I915_SET_COLORKEY_SOURCE (1<<2)
-struct drm_intel_sprite_colorkey {
- __u32 plane_id;
- __u32 min_value;
- __u32 channel_mask;
- __u32 max_value;
- __u32 flags;
-};
-
-struct drm_i915_gem_wait {
- /** Handle of BO we shall wait on */
- __u32 bo_handle;
- __u32 flags;
- /** Number of nanoseconds to wait, Returns time remaining. */
- __s64 timeout_ns;
-};
-
-struct drm_i915_gem_context_create {
- __u32 ctx_id; /* output: id of new context*/
- __u32 pad;
-};
-
-/**
- * struct drm_i915_gem_context_create_ext - Structure for creating contexts.
- */
-struct drm_i915_gem_context_create_ext {
- /** @ctx_id: Id of the created context (output) */
- __u32 ctx_id;
-
- /**
- * @flags: Supported flags are:
- *
- * I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS:
- *
- * Extensions may be appended to this structure and driver must check
- * for those. See @extensions.
- *
- * I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE
- *
- * Created context will have single timeline.
- */
- __u32 flags;
-#define I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS (1u << 0)
-#define I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE (1u << 1)
-#define I915_CONTEXT_CREATE_FLAGS_UNKNOWN \
- (-(I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE << 1))
-
- /**
- * @extensions: Zero-terminated chain of extensions.
- *
- * I915_CONTEXT_CREATE_EXT_SETPARAM:
- * Context parameter to set or query during context creation.
- * See struct drm_i915_gem_context_create_ext_setparam.
- *
- * I915_CONTEXT_CREATE_EXT_CLONE:
- * This extension has been removed. On the off chance someone somewhere
- * has attempted to use it, never re-use this extension number.
- */
- __u64 extensions;
-#define I915_CONTEXT_CREATE_EXT_SETPARAM 0
-#define I915_CONTEXT_CREATE_EXT_CLONE 1
-};
-
-/**
- * struct drm_i915_gem_context_param - Context parameter to set or query.
- */
-struct drm_i915_gem_context_param {
- /** @ctx_id: Context id */
- __u32 ctx_id;
-
- /** @size: Size of the parameter @value */
- __u32 size;
-
- /** @param: Parameter to set or query */
- __u64 param;
-#define I915_CONTEXT_PARAM_BAN_PERIOD 0x1
-/* I915_CONTEXT_PARAM_NO_ZEROMAP has been removed. On the off chance
- * someone somewhere has attempted to use it, never re-use this context
- * param number.
- */
-#define I915_CONTEXT_PARAM_NO_ZEROMAP 0x2
-#define I915_CONTEXT_PARAM_GTT_SIZE 0x3
-#define I915_CONTEXT_PARAM_NO_ERROR_CAPTURE 0x4
-#define I915_CONTEXT_PARAM_BANNABLE 0x5
-#define I915_CONTEXT_PARAM_PRIORITY 0x6
-#define I915_CONTEXT_MAX_USER_PRIORITY 1023 /* inclusive */
-#define I915_CONTEXT_DEFAULT_PRIORITY 0
-#define I915_CONTEXT_MIN_USER_PRIORITY -1023 /* inclusive */
- /*
- * When using the following param, value should be a pointer to
- * drm_i915_gem_context_param_sseu.
- */
-#define I915_CONTEXT_PARAM_SSEU 0x7
-
-/*
- * Not all clients may want to attempt automatic recover of a context after
- * a hang (for example, some clients may only submit very small incremental
- * batches relying on known logical state of previous batches which will never
- * recover correctly and each attempt will hang), and so would prefer that
- * the context is forever banned instead.
- *
- * If set to false (0), after a reset, subsequent (and in flight) rendering
- * from this context is discarded, and the client will need to create a new
- * context to use instead.
- *
- * If set to true (1), the kernel will automatically attempt to recover the
- * context by skipping the hanging batch and executing the next batch starting
- * from the default context state (discarding the incomplete logical context
- * state lost due to the reset).
- *
- * On creation, all new contexts are marked as recoverable.
- */
-#define I915_CONTEXT_PARAM_RECOVERABLE 0x8
-
- /*
- * The id of the associated virtual memory address space (ppGTT) of
- * this context. Can be retrieved and passed to another context
- * (on the same fd) for both to use the same ppGTT and so share
- * address layouts, and avoid reloading the page tables on context
- * switches between themselves.
- *
- * See DRM_I915_GEM_VM_CREATE and DRM_I915_GEM_VM_DESTROY.
- */
-#define I915_CONTEXT_PARAM_VM 0x9
-
-/*
- * I915_CONTEXT_PARAM_ENGINES:
- *
- * Bind this context to operate on this subset of available engines. Henceforth,
- * the I915_EXEC_RING selector for DRM_IOCTL_I915_GEM_EXECBUFFER2 operates as
- * an index into this array of engines; I915_EXEC_DEFAULT selecting engine[0]
- * and upwards. Slots 0...N are filled in using the specified (class, instance).
- * Use
- * engine_class: I915_ENGINE_CLASS_INVALID,
- * engine_instance: I915_ENGINE_CLASS_INVALID_NONE
- * to specify a gap in the array that can be filled in later, e.g. by a
- * virtual engine used for load balancing.
- *
- * Setting the number of engines bound to the context to 0, by passing a zero
- * sized argument, will revert back to default settings.
- *
- * See struct i915_context_param_engines.
- *
- * Extensions:
- * i915_context_engines_load_balance (I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE)
- * i915_context_engines_bond (I915_CONTEXT_ENGINES_EXT_BOND)
- * i915_context_engines_parallel_submit (I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT)
- */
-#define I915_CONTEXT_PARAM_ENGINES 0xa
-
-/*
- * I915_CONTEXT_PARAM_PERSISTENCE:
- *
- * Allow the context and active rendering to survive the process until
- * completion. Persistence allows fire-and-forget clients to queue up a
- * bunch of work, hand the output over to a display server and then quit.
- * If the context is marked as not persistent, upon closing (either via
- * an explicit DRM_I915_GEM_CONTEXT_DESTROY or implicitly from file closure
- * or process termination), the context and any outstanding requests will be
- * cancelled (and exported fences for cancelled requests marked as -EIO).
- *
- * By default, new contexts allow persistence.
- */
-#define I915_CONTEXT_PARAM_PERSISTENCE 0xb
-
-/* This API has been removed. On the off chance someone somewhere has
- * attempted to use it, never re-use this context param number.
- */
-#define I915_CONTEXT_PARAM_RINGSIZE 0xc
-
-/*
- * I915_CONTEXT_PARAM_PROTECTED_CONTENT:
- *
- * Mark that the context makes use of protected content, which will result
- * in the context being invalidated when the protected content session is.
- * Given that the protected content session is killed on suspend, the device
- * is kept awake for the lifetime of a protected context, so the user should
- * make sure to dispose of them once done.
- * This flag can only be set at context creation time and, when set to true,
- * must be preceded by an explicit setting of I915_CONTEXT_PARAM_RECOVERABLE
- * to false. This flag can't be set to true in conjunction with setting the
- * I915_CONTEXT_PARAM_BANNABLE flag to false. Creation example:
- *
- * .. code-block:: C
- *
- * struct drm_i915_gem_context_create_ext_setparam p_protected = {
- * .base = {
- * .name = I915_CONTEXT_CREATE_EXT_SETPARAM,
- * },
- * .param = {
- * .param = I915_CONTEXT_PARAM_PROTECTED_CONTENT,
- * .value = 1,
- * }
- * };
- * struct drm_i915_gem_context_create_ext_setparam p_norecover = {
- * .base = {
- * .name = I915_CONTEXT_CREATE_EXT_SETPARAM,
- * .next_extension = to_user_pointer(&p_protected),
- * },
- * .param = {
- * .param = I915_CONTEXT_PARAM_RECOVERABLE,
- * .value = 0,
- * }
- * };
- * struct drm_i915_gem_context_create_ext create = {
- * .flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS,
- * .extensions = to_user_pointer(&p_norecover);
- * };
- *
- * ctx_id = gem_context_create_ext(drm_fd, &create);
- *
- * In addition to the normal failure cases, setting this flag during context
- * creation can result in the following errors:
- *
- * -ENODEV: feature not available
- * -EPERM: trying to mark a recoverable or not bannable context as protected
- */
-#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd
-/* Must be kept compact -- no holes and well documented */
-
- /** @value: Context parameter value to be set or queried */
- __u64 value;
-};
-
-/*
- * Context SSEU programming
- *
- * It may be necessary for either functional or performance reason to configure
- * a context to run with a reduced number of SSEU (where SSEU stands for Slice/
- * Sub-slice/EU).
- *
- * This is done by configuring SSEU configuration using the below
- * @struct drm_i915_gem_context_param_sseu for every supported engine which
- * userspace intends to use.
- *
- * Not all GPUs or engines support this functionality in which case an error
- * code -ENODEV will be returned.
- *
- * Also, flexibility of possible SSEU configuration permutations varies between
- * GPU generations and software imposed limitations. Requesting such a
- * combination will return an error code of -EINVAL.
- *
- * NOTE: When perf/OA is active the context's SSEU configuration is ignored in
- * favour of a single global setting.
- */
-struct drm_i915_gem_context_param_sseu {
- /*
- * Engine class & instance to be configured or queried.
- */
- struct i915_engine_class_instance engine;
-
- /*
- * Unknown flags must be cleared to zero.
- */
- __u32 flags;
-#define I915_CONTEXT_SSEU_FLAG_ENGINE_INDEX (1u << 0)
-
- /*
- * Mask of slices to enable for the context. Valid values are a subset
- * of the bitmask value returned for I915_PARAM_SLICE_MASK.
- */
- __u64 slice_mask;
-
- /*
- * Mask of subslices to enable for the context. Valid values are a
- * subset of the bitmask value return by I915_PARAM_SUBSLICE_MASK.
- */
- __u64 subslice_mask;
-
- /*
- * Minimum/Maximum number of EUs to enable per subslice for the
- * context. min_eus_per_subslice must be inferior or equal to
- * max_eus_per_subslice.
- */
- __u16 min_eus_per_subslice;
- __u16 max_eus_per_subslice;
-
- /*
- * Unused for now. Must be cleared to zero.
- */
- __u32 rsvd;
-};
-
-/**
- * DOC: Virtual Engine uAPI
- *
- * Virtual engine is a concept where userspace is able to configure a set of
- * physical engines, submit a batch buffer, and let the driver execute it on any
- * engine from the set as it sees fit.
- *
- * This is primarily useful on parts which have multiple instances of a same
- * class engine, like for example GT3+ Skylake parts with their two VCS engines.
- *
- * For instance userspace can enumerate all engines of a certain class using the
- * previously described `Engine Discovery uAPI`_. After that userspace can
- * create a GEM context with a placeholder slot for the virtual engine (using
- * `I915_ENGINE_CLASS_INVALID` and `I915_ENGINE_CLASS_INVALID_NONE` for class
- * and instance respectively) and finally using the
- * `I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE` extension place a virtual engine in
- * the same reserved slot.
- *
- * Example of creating a virtual engine and submitting a batch buffer to it:
- *
- * .. code-block:: C
- *
- * I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(virtual, 2) = {
- * .base.name = I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE,
- * .engine_index = 0, // Place this virtual engine into engine map slot 0
- * .num_siblings = 2,
- * .engines = { { I915_ENGINE_CLASS_VIDEO, 0 },
- * { I915_ENGINE_CLASS_VIDEO, 1 }, },
- * };
- * I915_DEFINE_CONTEXT_PARAM_ENGINES(engines, 1) = {
- * .engines = { { I915_ENGINE_CLASS_INVALID,
- * I915_ENGINE_CLASS_INVALID_NONE } },
- * .extensions = to_user_pointer(&virtual), // Chains after load_balance extension
- * };
- * struct drm_i915_gem_context_create_ext_setparam p_engines = {
- * .base = {
- * .name = I915_CONTEXT_CREATE_EXT_SETPARAM,
- * },
- * .param = {
- * .param = I915_CONTEXT_PARAM_ENGINES,
- * .value = to_user_pointer(&engines),
- * .size = sizeof(engines),
- * },
- * };
- * struct drm_i915_gem_context_create_ext create = {
- * .flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS,
- * .extensions = to_user_pointer(&p_engines);
- * };
- *
- * ctx_id = gem_context_create_ext(drm_fd, &create);
- *
- * // Now we have created a GEM context with its engine map containing a
- * // single virtual engine. Submissions to this slot can go either to
- * // vcs0 or vcs1, depending on the load balancing algorithm used inside
- * // the driver. The load balancing is dynamic from one batch buffer to
- * // another and transparent to userspace.
- *
- * ...
- * execbuf.rsvd1 = ctx_id;
- * execbuf.flags = 0; // Submits to index 0 which is the virtual engine
- * gem_execbuf(drm_fd, &execbuf);
- */
-
-/*
- * i915_context_engines_load_balance:
- *
- * Enable load balancing across this set of engines.
- *
- * Into the I915_EXEC_DEFAULT slot [0], a virtual engine is created that when
- * used will proxy the execbuffer request onto one of the set of engines
- * in such a way as to distribute the load evenly across the set.
- *
- * The set of engines must be compatible (e.g. the same HW class) as they
- * will share the same logical GPU context and ring.
- *
- * To intermix rendering with the virtual engine and direct rendering onto
- * the backing engines (bypassing the load balancing proxy), the context must
- * be defined to use a single timeline for all engines.
- */
-struct i915_context_engines_load_balance {
- struct i915_user_extension base;
-
- __u16 engine_index;
- __u16 num_siblings;
- __u32 flags; /* all undefined flags must be zero */
-
- __u64 mbz64; /* reserved for future use; must be zero */
-
- struct i915_engine_class_instance engines[];
-} __attribute__((packed));
-
-#define I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(name__, N__) struct { \
- struct i915_user_extension base; \
- __u16 engine_index; \
- __u16 num_siblings; \
- __u32 flags; \
- __u64 mbz64; \
- struct i915_engine_class_instance engines[N__]; \
-} __attribute__((packed)) name__
-
-/*
- * i915_context_engines_bond:
- *
- * Constructed bonded pairs for execution within a virtual engine.
- *
- * All engines are equal, but some are more equal than others. Given
- * the distribution of resources in the HW, it may be preferable to run
- * a request on a given subset of engines in parallel to a request on a
- * specific engine. We enable this selection of engines within a virtual
- * engine by specifying bonding pairs, for any given master engine we will
- * only execute on one of the corresponding siblings within the virtual engine.
- *
- * To execute a request in parallel on the master engine and a sibling requires
- * coordination with a I915_EXEC_FENCE_SUBMIT.
- */
-struct i915_context_engines_bond {
- struct i915_user_extension base;
-
- struct i915_engine_class_instance master;
-
- __u16 virtual_index; /* index of virtual engine in ctx->engines[] */
- __u16 num_bonds;
-
- __u64 flags; /* all undefined flags must be zero */
- __u64 mbz64[4]; /* reserved for future use; must be zero */
-
- struct i915_engine_class_instance engines[];
-} __attribute__((packed));
-
-#define I915_DEFINE_CONTEXT_ENGINES_BOND(name__, N__) struct { \
- struct i915_user_extension base; \
- struct i915_engine_class_instance master; \
- __u16 virtual_index; \
- __u16 num_bonds; \
- __u64 flags; \
- __u64 mbz64[4]; \
- struct i915_engine_class_instance engines[N__]; \
-} __attribute__((packed)) name__
-
-/**
- * struct i915_context_engines_parallel_submit - Configure engine for
- * parallel submission.
- *
- * Setup a slot in the context engine map to allow multiple BBs to be submitted
- * in a single execbuf IOCTL. Those BBs will then be scheduled to run on the GPU
- * in parallel. Multiple hardware contexts are created internally in the i915 to
- * run these BBs. Once a slot is configured for N BBs only N BBs can be
- * submitted in each execbuf IOCTL and this is implicit behavior e.g. The user
- * doesn't tell the execbuf IOCTL there are N BBs, the execbuf IOCTL knows how
- * many BBs there are based on the slot's configuration. The N BBs are the last
- * N buffer objects or first N if I915_EXEC_BATCH_FIRST is set.
- *
- * The default placement behavior is to create implicit bonds between each
- * context if each context maps to more than 1 physical engine (e.g. context is
- * a virtual engine). Also we only allow contexts of same engine class and these
- * contexts must be in logically contiguous order. Examples of the placement
- * behavior are described below. Lastly, the default is to not allow BBs to be
- * preempted mid-batch. Rather insert coordinated preemption points on all
- * hardware contexts between each set of BBs. Flags could be added in the future
- * to change both of these default behaviors.
- *
- * Returns -EINVAL if hardware context placement configuration is invalid or if
- * the placement configuration isn't supported on the platform / submission
- * interface.
- * Returns -ENODEV if extension isn't supported on the platform / submission
- * interface.
- *
- * .. code-block:: none
- *
- * Examples syntax:
- * CS[X] = generic engine of same class, logical instance X
- * INVALID = I915_ENGINE_CLASS_INVALID, I915_ENGINE_CLASS_INVALID_NONE
- *
- * Example 1 pseudo code:
- * set_engines(INVALID)
- * set_parallel(engine_index=0, width=2, num_siblings=1,
- * engines=CS[0],CS[1])
- *
- * Results in the following valid placement:
- * CS[0], CS[1]
- *
- * Example 2 pseudo code:
- * set_engines(INVALID)
- * set_parallel(engine_index=0, width=2, num_siblings=2,
- * engines=CS[0],CS[2],CS[1],CS[3])
- *
- * Results in the following valid placements:
- * CS[0], CS[1]
- * CS[2], CS[3]
- *
- * This can be thought of as two virtual engines, each containing two
- * engines thereby making a 2D array. However, there are bonds tying the
- * entries together and placing restrictions on how they can be scheduled.
- * Specifically, the scheduler can choose only vertical columns from the 2D
- * array. That is, CS[0] is bonded to CS[1] and CS[2] to CS[3]. So if the
- * scheduler wants to submit to CS[0], it must also choose CS[1] and vice
- * versa. Same for CS[2] requires also using CS[3].
- * VE[0] = CS[0], CS[2]
- * VE[1] = CS[1], CS[3]
- *
- * Example 3 pseudo code:
- * set_engines(INVALID)
- * set_parallel(engine_index=0, width=2, num_siblings=2,
- * engines=CS[0],CS[1],CS[1],CS[3])
- *
- * Results in the following valid and invalid placements:
- * CS[0], CS[1]
- * CS[1], CS[3] - Not logically contiguous, return -EINVAL
- */
-struct i915_context_engines_parallel_submit {
- /**
- * @base: base user extension.
- */
- struct i915_user_extension base;
-
- /**
- * @engine_index: slot for parallel engine
- */
- __u16 engine_index;
-
- /**
- * @width: number of contexts per parallel engine or in other words the
- * number of batches in each submission
- */
- __u16 width;
-
- /**
- * @num_siblings: number of siblings per context or in other words the
- * number of possible placements for each submission
- */
- __u16 num_siblings;
-
- /**
- * @mbz16: reserved for future use; must be zero
- */
- __u16 mbz16;
-
- /**
- * @flags: all undefined flags must be zero, currently not defined flags
- */
- __u64 flags;
-
- /**
- * @mbz64: reserved for future use; must be zero
- */
- __u64 mbz64[3];
-
- /**
- * @engines: 2-d array of engine instances to configure parallel engine
- *
- * length = width (i) * num_siblings (j)
- * index = j + i * num_siblings
- */
- struct i915_engine_class_instance engines[];
-
-} __attribute__((packed));
-
-#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__, N__) struct { \
- struct i915_user_extension base; \
- __u16 engine_index; \
- __u16 width; \
- __u16 num_siblings; \
- __u16 mbz16; \
- __u64 flags; \
- __u64 mbz64[3]; \
- struct i915_engine_class_instance engines[N__]; \
-} __attribute__((packed)) name__
-
-/**
- * DOC: Context Engine Map uAPI
- *
- * Context engine map is a new way of addressing engines when submitting batch-
- * buffers, replacing the existing way of using identifiers like `I915_EXEC_BLT`
- * inside the flags field of `struct drm_i915_gem_execbuffer2`.
- *
- * To use it created GEM contexts need to be configured with a list of engines
- * the user is intending to submit to. This is accomplished using the
- * `I915_CONTEXT_PARAM_ENGINES` parameter and `struct
- * i915_context_param_engines`.
- *
- * For such contexts the `I915_EXEC_RING_MASK` field becomes an index into the
- * configured map.
- *
- * Example of creating such context and submitting against it:
- *
- * .. code-block:: C
- *
- * I915_DEFINE_CONTEXT_PARAM_ENGINES(engines, 2) = {
- * .engines = { { I915_ENGINE_CLASS_RENDER, 0 },
- * { I915_ENGINE_CLASS_COPY, 0 } }
- * };
- * struct drm_i915_gem_context_create_ext_setparam p_engines = {
- * .base = {
- * .name = I915_CONTEXT_CREATE_EXT_SETPARAM,
- * },
- * .param = {
- * .param = I915_CONTEXT_PARAM_ENGINES,
- * .value = to_user_pointer(&engines),
- * .size = sizeof(engines),
- * },
- * };
- * struct drm_i915_gem_context_create_ext create = {
- * .flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS,
- * .extensions = to_user_pointer(&p_engines);
- * };
- *
- * ctx_id = gem_context_create_ext(drm_fd, &create);
- *
- * // We have now created a GEM context with two engines in the map:
- * // Index 0 points to rcs0 while index 1 points to bcs0. Other engines
- * // will not be accessible from this context.
- *
- * ...
- * execbuf.rsvd1 = ctx_id;
- * execbuf.flags = 0; // Submits to index 0, which is rcs0 for this context
- * gem_execbuf(drm_fd, &execbuf);
- *
- * ...
- * execbuf.rsvd1 = ctx_id;
- * execbuf.flags = 1; // Submits to index 0, which is bcs0 for this context
- * gem_execbuf(drm_fd, &execbuf);
- */
-
-struct i915_context_param_engines {
- __u64 extensions; /* linked chain of extension blocks, 0 terminates */
-#define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0 /* see i915_context_engines_load_balance */
-#define I915_CONTEXT_ENGINES_EXT_BOND 1 /* see i915_context_engines_bond */
-#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2 /* see i915_context_engines_parallel_submit */
- struct i915_engine_class_instance engines[0];
-} __attribute__((packed));
-
-#define I915_DEFINE_CONTEXT_PARAM_ENGINES(name__, N__) struct { \
- __u64 extensions; \
- struct i915_engine_class_instance engines[N__]; \
-} __attribute__((packed)) name__
-
-/**
- * struct drm_i915_gem_context_create_ext_setparam - Context parameter
- * to set or query during context creation.
- */
-struct drm_i915_gem_context_create_ext_setparam {
- /** @base: Extension link. See struct i915_user_extension. */
- struct i915_user_extension base;
-
- /**
- * @param: Context parameter to set or query.
- * See struct drm_i915_gem_context_param.
- */
- struct drm_i915_gem_context_param param;
-};
-
-struct drm_i915_gem_context_destroy {
- __u32 ctx_id;
- __u32 pad;
-};
-
-/**
- * struct drm_i915_gem_vm_control - Structure to create or destroy VM.
- *
- * DRM_I915_GEM_VM_CREATE -
- *
- * Create a new virtual memory address space (ppGTT) for use within a context
- * on the same file. Extensions can be provided to configure exactly how the
- * address space is setup upon creation.
- *
- * The id of new VM (bound to the fd) for use with I915_CONTEXT_PARAM_VM is
- * returned in the outparam @id.
- *
- * An extension chain maybe provided, starting with @extensions, and terminated
- * by the @next_extension being 0. Currently, no extensions are defined.
- *
- * DRM_I915_GEM_VM_DESTROY -
- *
- * Destroys a previously created VM id, specified in @vm_id.
- *
- * No extensions or flags are allowed currently, and so must be zero.
- */
-struct drm_i915_gem_vm_control {
- /** @extensions: Zero-terminated chain of extensions. */
- __u64 extensions;
-
- /** @flags: reserved for future usage, currently MBZ */
- __u32 flags;
-
- /** @vm_id: Id of the VM created or to be destroyed */
- __u32 vm_id;
-};
-
-struct drm_i915_reg_read {
- /*
- * Register offset.
- * For 64bit wide registers where the upper 32bits don't immediately
- * follow the lower 32bits, the offset of the lower 32bits must
- * be specified
- */
- __u64 offset;
-#define I915_REG_READ_8B_WA (1ul << 0)
-
- __u64 val; /* Return value */
-};
-
-/* Known registers:
- *
- * Render engine timestamp - 0x2358 + 64bit - gen7+
- * - Note this register returns an invalid value if using the default
- * single instruction 8byte read, in order to workaround that pass
- * flag I915_REG_READ_8B_WA in offset field.
- *
- */
-
-struct drm_i915_reset_stats {
- __u32 ctx_id;
- __u32 flags;
-
- /* All resets since boot/module reload, for all contexts */
- __u32 reset_count;
-
- /* Number of batches lost when active in GPU, for this context */
- __u32 batch_active;
-
- /* Number of batches lost pending for execution, for this context */
- __u32 batch_pending;
-
- __u32 pad;
-};
-
-/**
- * struct drm_i915_gem_userptr - Create GEM object from user allocated memory.
- *
- * Userptr objects have several restrictions on what ioctls can be used with the
- * object handle.
- */
-struct drm_i915_gem_userptr {
- /**
- * @user_ptr: The pointer to the allocated memory.
- *
- * Needs to be aligned to PAGE_SIZE.
- */
- __u64 user_ptr;
-
- /**
- * @user_size:
- *
- * The size in bytes for the allocated memory. This will also become the
- * object size.
- *
- * Needs to be aligned to PAGE_SIZE, and should be at least PAGE_SIZE,
- * or larger.
- */
- __u64 user_size;
-
- /**
- * @flags:
- *
- * Supported flags:
- *
- * I915_USERPTR_READ_ONLY:
- *
- * Mark the object as readonly, this also means GPU access can only be
- * readonly. This is only supported on HW which supports readonly access
- * through the GTT. If the HW can't support readonly access, an error is
- * returned.
- *
- * I915_USERPTR_PROBE:
- *
- * Probe the provided @user_ptr range and validate that the @user_ptr is
- * indeed pointing to normal memory and that the range is also valid.
- * For example if some garbage address is given to the kernel, then this
- * should complain.
- *
- * Returns -EFAULT if the probe failed.
- *
- * Note that this doesn't populate the backing pages, and also doesn't
- * guarantee that the object will remain valid when the object is
- * eventually used.
- *
- * The kernel supports this feature if I915_PARAM_HAS_USERPTR_PROBE
- * returns a non-zero value.
- *
- * I915_USERPTR_UNSYNCHRONIZED:
- *
- * NOT USED. Setting this flag will result in an error.
- */
- __u32 flags;
-#define I915_USERPTR_READ_ONLY 0x1
-#define I915_USERPTR_PROBE 0x2
-#define I915_USERPTR_UNSYNCHRONIZED 0x80000000
- /**
- * @handle: Returned handle for the object.
- *
- * Object handles are nonzero.
- */
- __u32 handle;
-};
-
-enum drm_i915_oa_format {
- I915_OA_FORMAT_A13 = 1, /* HSW only */
- I915_OA_FORMAT_A29, /* HSW only */
- I915_OA_FORMAT_A13_B8_C8, /* HSW only */
- I915_OA_FORMAT_B4_C8, /* HSW only */
- I915_OA_FORMAT_A45_B8_C8, /* HSW only */
- I915_OA_FORMAT_B4_C8_A16, /* HSW only */
- I915_OA_FORMAT_C4_B8, /* HSW+ */
-
- /* Gen8+ */
- I915_OA_FORMAT_A12,
- I915_OA_FORMAT_A12_B8_C8,
- I915_OA_FORMAT_A32u40_A4u32_B8_C8,
-
- I915_OA_FORMAT_MAX /* non-ABI */
-};
-
-enum drm_i915_perf_property_id {
- /**
- * Open the stream for a specific context handle (as used with
- * execbuffer2). A stream opened for a specific context this way
- * won't typically require root privileges.
- *
- * This property is available in perf revision 1.
- */
- DRM_I915_PERF_PROP_CTX_HANDLE = 1,
-
- /**
- * A value of 1 requests the inclusion of raw OA unit reports as
- * part of stream samples.
- *
- * This property is available in perf revision 1.
- */
- DRM_I915_PERF_PROP_SAMPLE_OA,
-
- /**
- * The value specifies which set of OA unit metrics should be
- * configured, defining the contents of any OA unit reports.
- *
- * This property is available in perf revision 1.
- */
- DRM_I915_PERF_PROP_OA_METRICS_SET,
-
- /**
- * The value specifies the size and layout of OA unit reports.
- *
- * This property is available in perf revision 1.
- */
- DRM_I915_PERF_PROP_OA_FORMAT,
-
- /**
- * Specifying this property implicitly requests periodic OA unit
- * sampling and (at least on Haswell) the sampling frequency is derived
- * from this exponent as follows:
- *
- * 80ns * 2^(period_exponent + 1)
- *
- * This property is available in perf revision 1.
- */
- DRM_I915_PERF_PROP_OA_EXPONENT,
-
- /**
- * Specifying this property is only valid when specify a context to
- * filter with DRM_I915_PERF_PROP_CTX_HANDLE. Specifying this property
- * will hold preemption of the particular context we want to gather
- * performance data about. The execbuf2 submissions must include a
- * drm_i915_gem_execbuffer_ext_perf parameter for this to apply.
- *
- * This property is available in perf revision 3.
- */
- DRM_I915_PERF_PROP_HOLD_PREEMPTION,
-
- /**
- * Specifying this pins all contexts to the specified SSEU power
- * configuration for the duration of the recording.
- *
- * This parameter's value is a pointer to a struct
- * drm_i915_gem_context_param_sseu.
- *
- * This property is available in perf revision 4.
- */
- DRM_I915_PERF_PROP_GLOBAL_SSEU,
-
- /**
- * This optional parameter specifies the timer interval in nanoseconds
- * at which the i915 driver will check the OA buffer for available data.
- * Minimum allowed value is 100 microseconds. A default value is used by
- * the driver if this parameter is not specified. Note that larger timer
- * values will reduce cpu consumption during OA perf captures. However,
- * excessively large values would potentially result in OA buffer
- * overwrites as captures reach end of the OA buffer.
- *
- * This property is available in perf revision 5.
- */
- DRM_I915_PERF_PROP_POLL_OA_PERIOD,
-
- DRM_I915_PERF_PROP_MAX /* non-ABI */
-};
-
-struct drm_i915_perf_open_param {
- __u32 flags;
-#define I915_PERF_FLAG_FD_CLOEXEC (1<<0)
-#define I915_PERF_FLAG_FD_NONBLOCK (1<<1)
-#define I915_PERF_FLAG_DISABLED (1<<2)
-
- /** The number of u64 (id, value) pairs */
- __u32 num_properties;
-
- /**
- * Pointer to array of u64 (id, value) pairs configuring the stream
- * to open.
- */
- __u64 properties_ptr;
-};
-
-/*
- * Enable data capture for a stream that was either opened in a disabled state
- * via I915_PERF_FLAG_DISABLED or was later disabled via
- * I915_PERF_IOCTL_DISABLE.
- *
- * It is intended to be cheaper to disable and enable a stream than it may be
- * to close and re-open a stream with the same configuration.
- *
- * It's undefined whether any pending data for the stream will be lost.
- *
- * This ioctl is available in perf revision 1.
- */
-#define I915_PERF_IOCTL_ENABLE _IO('i', 0x0)
-
-/*
- * Disable data capture for a stream.
- *
- * It is an error to try and read a stream that is disabled.
- *
- * This ioctl is available in perf revision 1.
- */
-#define I915_PERF_IOCTL_DISABLE _IO('i', 0x1)
-
-/*
- * Change metrics_set captured by a stream.
- *
- * If the stream is bound to a specific context, the configuration change
- * will performed __inline__ with that context such that it takes effect before
- * the next execbuf submission.
- *
- * Returns the previously bound metrics set id, or a negative error code.
- *
- * This ioctl is available in perf revision 2.
- */
-#define I915_PERF_IOCTL_CONFIG _IO('i', 0x2)
-
-/*
- * Common to all i915 perf records
- */
-struct drm_i915_perf_record_header {
- __u32 type;
- __u16 pad;
- __u16 size;
-};
-
-enum drm_i915_perf_record_type {
-
- /**
- * Samples are the work horse record type whose contents are extensible
- * and defined when opening an i915 perf stream based on the given
- * properties.
- *
- * Boolean properties following the naming convention
- * DRM_I915_PERF_SAMPLE_xyz_PROP request the inclusion of 'xyz' data in
- * every sample.
- *
- * The order of these sample properties given by userspace has no
- * affect on the ordering of data within a sample. The order is
- * documented here.
- *
- * struct {
- * struct drm_i915_perf_record_header header;
- *
- * { u32 oa_report[]; } && DRM_I915_PERF_PROP_SAMPLE_OA
- * };
- */
- DRM_I915_PERF_RECORD_SAMPLE = 1,
-
- /*
- * Indicates that one or more OA reports were not written by the
- * hardware. This can happen for example if an MI_REPORT_PERF_COUNT
- * command collides with periodic sampling - which would be more likely
- * at higher sampling frequencies.
- */
- DRM_I915_PERF_RECORD_OA_REPORT_LOST = 2,
-
- /**
- * An error occurred that resulted in all pending OA reports being lost.
- */
- DRM_I915_PERF_RECORD_OA_BUFFER_LOST = 3,
-
- DRM_I915_PERF_RECORD_MAX /* non-ABI */
-};
-
-/**
- * struct drm_i915_perf_oa_config
- *
- * Structure to upload perf dynamic configuration into the kernel.
- */
-struct drm_i915_perf_oa_config {
- /**
- * @uuid:
- *
- * String formatted like "%\08x-%\04x-%\04x-%\04x-%\012x"
- */
- char uuid[36];
-
- /**
- * @n_mux_regs:
- *
- * Number of mux regs in &mux_regs_ptr.
- */
- __u32 n_mux_regs;
-
- /**
- * @n_boolean_regs:
- *
- * Number of boolean regs in &boolean_regs_ptr.
- */
- __u32 n_boolean_regs;
-
- /**
- * @n_flex_regs:
- *
- * Number of flex regs in &flex_regs_ptr.
- */
- __u32 n_flex_regs;
-
- /**
- * @mux_regs_ptr:
- *
- * Pointer to tuples of u32 values (register address, value) for mux
- * registers. Expected length of buffer is (2 * sizeof(u32) *
- * &n_mux_regs).
- */
- __u64 mux_regs_ptr;
-
- /**
- * @boolean_regs_ptr:
- *
- * Pointer to tuples of u32 values (register address, value) for mux
- * registers. Expected length of buffer is (2 * sizeof(u32) *
- * &n_boolean_regs).
- */
- __u64 boolean_regs_ptr;
-
- /**
- * @flex_regs_ptr:
- *
- * Pointer to tuples of u32 values (register address, value) for mux
- * registers. Expected length of buffer is (2 * sizeof(u32) *
- * &n_flex_regs).
- */
- __u64 flex_regs_ptr;
-};
-
-/**
- * struct drm_i915_query_item - An individual query for the kernel to process.
- *
- * The behaviour is determined by the @query_id. Note that exactly what
- * @data_ptr is also depends on the specific @query_id.
- */
-struct drm_i915_query_item {
- /**
- * @query_id:
- *
- * The id for this query. Currently accepted query IDs are:
- * - %DRM_I915_QUERY_TOPOLOGY_INFO (see struct drm_i915_query_topology_info)
- * - %DRM_I915_QUERY_ENGINE_INFO (see struct drm_i915_engine_info)
- * - %DRM_I915_QUERY_PERF_CONFIG (see struct drm_i915_query_perf_config)
- * - %DRM_I915_QUERY_MEMORY_REGIONS (see struct drm_i915_query_memory_regions)
- * - %DRM_I915_QUERY_HWCONFIG_BLOB (see `GuC HWCONFIG blob uAPI`)
- * - %DRM_I915_QUERY_GEOMETRY_SUBSLICES (see struct drm_i915_query_topology_info)
- */
- __u64 query_id;
-#define DRM_I915_QUERY_TOPOLOGY_INFO 1
-#define DRM_I915_QUERY_ENGINE_INFO 2
-#define DRM_I915_QUERY_PERF_CONFIG 3
-#define DRM_I915_QUERY_MEMORY_REGIONS 4
-#define DRM_I915_QUERY_HWCONFIG_BLOB 5
-#define DRM_I915_QUERY_GEOMETRY_SUBSLICES 6
-/* Must be kept compact -- no holes and well documented */
-
- /**
- * @length:
- *
- * When set to zero by userspace, this is filled with the size of the
- * data to be written at the @data_ptr pointer. The kernel sets this
- * value to a negative value to signal an error on a particular query
- * item.
- */
- __s32 length;
-
- /**
- * @flags:
- *
- * When &query_id == %DRM_I915_QUERY_TOPOLOGY_INFO, must be 0.
- *
- * When &query_id == %DRM_I915_QUERY_PERF_CONFIG, must be one of the
- * following:
- *
- * - %DRM_I915_QUERY_PERF_CONFIG_LIST
- * - %DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID
- * - %DRM_I915_QUERY_PERF_CONFIG_FOR_UUID
- *
- * When &query_id == %DRM_I915_QUERY_GEOMETRY_SUBSLICES must contain
- * a struct i915_engine_class_instance that references a render engine.
- */
- __u32 flags;
-#define DRM_I915_QUERY_PERF_CONFIG_LIST 1
-#define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID 2
-#define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID 3
-
- /**
- * @data_ptr:
- *
- * Data will be written at the location pointed by @data_ptr when the
- * value of @length matches the length of the data to be written by the
- * kernel.
- */
- __u64 data_ptr;
-};
-
-/**
- * struct drm_i915_query - Supply an array of struct drm_i915_query_item for the
- * kernel to fill out.
- *
- * Note that this is generally a two step process for each struct
- * drm_i915_query_item in the array:
- *
- * 1. Call the DRM_IOCTL_I915_QUERY, giving it our array of struct
- * drm_i915_query_item, with &drm_i915_query_item.length set to zero. The
- * kernel will then fill in the size, in bytes, which tells userspace how
- * memory it needs to allocate for the blob(say for an array of properties).
- *
- * 2. Next we call DRM_IOCTL_I915_QUERY again, this time with the
- * &drm_i915_query_item.data_ptr equal to our newly allocated blob. Note that
- * the &drm_i915_query_item.length should still be the same as what the
- * kernel previously set. At this point the kernel can fill in the blob.
- *
- * Note that for some query items it can make sense for userspace to just pass
- * in a buffer/blob equal to or larger than the required size. In this case only
- * a single ioctl call is needed. For some smaller query items this can work
- * quite well.
- *
- */
-struct drm_i915_query {
- /** @num_items: The number of elements in the @items_ptr array */
- __u32 num_items;
-
- /**
- * @flags: Unused for now. Must be cleared to zero.
- */
- __u32 flags;
-
- /**
- * @items_ptr:
- *
- * Pointer to an array of struct drm_i915_query_item. The number of
- * array elements is @num_items.
- */
- __u64 items_ptr;
-};
-
-/**
- * struct drm_i915_query_topology_info
- *
- * Describes slice/subslice/EU information queried by
- * %DRM_I915_QUERY_TOPOLOGY_INFO
- */
-struct drm_i915_query_topology_info {
- /**
- * @flags:
- *
- * Unused for now. Must be cleared to zero.
- */
- __u16 flags;
-
- /**
- * @max_slices:
- *
- * The number of bits used to express the slice mask.
- */
- __u16 max_slices;
-
- /**
- * @max_subslices:
- *
- * The number of bits used to express the subslice mask.
- */
- __u16 max_subslices;
-
- /**
- * @max_eus_per_subslice:
- *
- * The number of bits in the EU mask that correspond to a single
- * subslice's EUs.
- */
- __u16 max_eus_per_subslice;
-
- /**
- * @subslice_offset:
- *
- * Offset in data[] at which the subslice masks are stored.
- */
- __u16 subslice_offset;
-
- /**
- * @subslice_stride:
- *
- * Stride at which each of the subslice masks for each slice are
- * stored.
- */
- __u16 subslice_stride;
-
- /**
- * @eu_offset:
- *
- * Offset in data[] at which the EU masks are stored.
- */
- __u16 eu_offset;
-
- /**
- * @eu_stride:
- *
- * Stride at which each of the EU masks for each subslice are stored.
- */
- __u16 eu_stride;
-
- /**
- * @data:
- *
- * Contains 3 pieces of information :
- *
- * - The slice mask with one bit per slice telling whether a slice is
- * available. The availability of slice X can be queried with the
- * following formula :
- *
- * .. code:: c
- *
- * (data[X / 8] >> (X % 8)) & 1
- *
- * Starting with Xe_HP platforms, Intel hardware no longer has
- * traditional slices so i915 will always report a single slice
- * (hardcoded slicemask = 0x1) which contains all of the platform's
- * subslices. I.e., the mask here does not reflect any of the newer
- * hardware concepts such as "gslices" or "cslices" since userspace
- * is capable of inferring those from the subslice mask.
- *
- * - The subslice mask for each slice with one bit per subslice telling
- * whether a subslice is available. Starting with Gen12 we use the
- * term "subslice" to refer to what the hardware documentation
- * describes as a "dual-subslices." The availability of subslice Y
- * in slice X can be queried with the following formula :
- *
- * .. code:: c
- *
- * (data[subslice_offset + X * subslice_stride + Y / 8] >> (Y % 8)) & 1
- *
- * - The EU mask for each subslice in each slice, with one bit per EU
- * telling whether an EU is available. The availability of EU Z in
- * subslice Y in slice X can be queried with the following formula :
- *
- * .. code:: c
- *
- * (data[eu_offset +
- * (X * max_subslices + Y) * eu_stride +
- * Z / 8
- * ] >> (Z % 8)) & 1
- */
- __u8 data[];
-};
-
-/**
- * DOC: Engine Discovery uAPI
- *
- * Engine discovery uAPI is a way of enumerating physical engines present in a
- * GPU associated with an open i915 DRM file descriptor. This supersedes the old
- * way of using `DRM_IOCTL_I915_GETPARAM` and engine identifiers like
- * `I915_PARAM_HAS_BLT`.
- *
- * The need for this interface came starting with Icelake and newer GPUs, which
- * started to establish a pattern of having multiple engines of a same class,
- * where not all instances were always completely functionally equivalent.
- *
- * Entry point for this uapi is `DRM_IOCTL_I915_QUERY` with the
- * `DRM_I915_QUERY_ENGINE_INFO` as the queried item id.
- *
- * Example for getting the list of engines:
- *
- * .. code-block:: C
- *
- * struct drm_i915_query_engine_info *info;
- * struct drm_i915_query_item item = {
- * .query_id = DRM_I915_QUERY_ENGINE_INFO;
- * };
- * struct drm_i915_query query = {
- * .num_items = 1,
- * .items_ptr = (uintptr_t)&item,
- * };
- * int err, i;
- *
- * // First query the size of the blob we need, this needs to be large
- * // enough to hold our array of engines. The kernel will fill out the
- * // item.length for us, which is the number of bytes we need.
- * //
- * // Alternatively a large buffer can be allocated straight away enabling
- * // querying in one pass, in which case item.length should contain the
- * // length of the provided buffer.
- * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
- * if (err) ...
- *
- * info = calloc(1, item.length);
- * // Now that we allocated the required number of bytes, we call the ioctl
- * // again, this time with the data_ptr pointing to our newly allocated
- * // blob, which the kernel can then populate with info on all engines.
- * item.data_ptr = (uintptr_t)&info,
- *
- * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
- * if (err) ...
- *
- * // We can now access each engine in the array
- * for (i = 0; i < info->num_engines; i++) {
- * struct drm_i915_engine_info einfo = info->engines[i];
- * u16 class = einfo.engine.class;
- * u16 instance = einfo.engine.instance;
- * ....
- * }
- *
- * free(info);
- *
- * Each of the enumerated engines, apart from being defined by its class and
- * instance (see `struct i915_engine_class_instance`), also can have flags and
- * capabilities defined as documented in i915_drm.h.
- *
- * For instance video engines which support HEVC encoding will have the
- * `I915_VIDEO_CLASS_CAPABILITY_HEVC` capability bit set.
- *
- * Engine discovery only fully comes to its own when combined with the new way
- * of addressing engines when submitting batch buffers using contexts with
- * engine maps configured.
- */
-
-/**
- * struct drm_i915_engine_info
- *
- * Describes one engine and it's capabilities as known to the driver.
- */
-struct drm_i915_engine_info {
- /** @engine: Engine class and instance. */
- struct i915_engine_class_instance engine;
-
- /** @rsvd0: Reserved field. */
- __u32 rsvd0;
-
- /** @flags: Engine flags. */
- __u64 flags;
-#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE (1 << 0)
-
- /** @capabilities: Capabilities of this engine. */
- __u64 capabilities;
-#define I915_VIDEO_CLASS_CAPABILITY_HEVC (1 << 0)
-#define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC (1 << 1)
-
- /** @logical_instance: Logical instance of engine */
- __u16 logical_instance;
-
- /** @rsvd1: Reserved fields. */
- __u16 rsvd1[3];
- /** @rsvd2: Reserved fields. */
- __u64 rsvd2[3];
-};
-
-/**
- * struct drm_i915_query_engine_info
- *
- * Engine info query enumerates all engines known to the driver by filling in
- * an array of struct drm_i915_engine_info structures.
- */
-struct drm_i915_query_engine_info {
- /** @num_engines: Number of struct drm_i915_engine_info structs following. */
- __u32 num_engines;
-
- /** @rsvd: MBZ */
- __u32 rsvd[3];
-
- /** @engines: Marker for drm_i915_engine_info structures. */
- struct drm_i915_engine_info engines[];
-};
-
-/**
- * struct drm_i915_query_perf_config
- *
- * Data written by the kernel with query %DRM_I915_QUERY_PERF_CONFIG and
- * %DRM_I915_QUERY_GEOMETRY_SUBSLICES.
- */
-struct drm_i915_query_perf_config {
- union {
- /**
- * @n_configs:
- *
- * When &drm_i915_query_item.flags ==
- * %DRM_I915_QUERY_PERF_CONFIG_LIST, i915 sets this fields to
- * the number of configurations available.
- */
- __u64 n_configs;
-
- /**
- * @config:
- *
- * When &drm_i915_query_item.flags ==
- * %DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID, i915 will use the
- * value in this field as configuration identifier to decide
- * what data to write into config_ptr.
- */
- __u64 config;
-
- /**
- * @uuid:
- *
- * When &drm_i915_query_item.flags ==
- * %DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID, i915 will use the
- * value in this field as configuration identifier to decide
- * what data to write into config_ptr.
- *
- * String formatted like "%08x-%04x-%04x-%04x-%012x"
- */
- char uuid[36];
- };
-
- /**
- * @flags:
- *
- * Unused for now. Must be cleared to zero.
- */
- __u32 flags;
-
- /**
- * @data:
- *
- * When &drm_i915_query_item.flags == %DRM_I915_QUERY_PERF_CONFIG_LIST,
- * i915 will write an array of __u64 of configuration identifiers.
- *
- * When &drm_i915_query_item.flags == %DRM_I915_QUERY_PERF_CONFIG_DATA,
- * i915 will write a struct drm_i915_perf_oa_config. If the following
- * fields of struct drm_i915_perf_oa_config are not set to 0, i915 will
- * write into the associated pointers the values of submitted when the
- * configuration was created :
- *
- * - &drm_i915_perf_oa_config.n_mux_regs
- * - &drm_i915_perf_oa_config.n_boolean_regs
- * - &drm_i915_perf_oa_config.n_flex_regs
- */
- __u8 data[];
-};
-
-/**
- * enum drm_i915_gem_memory_class - Supported memory classes
- */
-enum drm_i915_gem_memory_class {
- /** @I915_MEMORY_CLASS_SYSTEM: System memory */
- I915_MEMORY_CLASS_SYSTEM = 0,
- /** @I915_MEMORY_CLASS_DEVICE: Device local-memory */
- I915_MEMORY_CLASS_DEVICE,
-};
-
-/**
- * struct drm_i915_gem_memory_class_instance - Identify particular memory region
- */
-struct drm_i915_gem_memory_class_instance {
- /** @memory_class: See enum drm_i915_gem_memory_class */
- __u16 memory_class;
-
- /** @memory_instance: Which instance */
- __u16 memory_instance;
-};
-
-/**
- * struct drm_i915_memory_region_info - Describes one region as known to the
- * driver.
- *
- * Note this is using both struct drm_i915_query_item and struct drm_i915_query.
- * For this new query we are adding the new query id DRM_I915_QUERY_MEMORY_REGIONS
- * at &drm_i915_query_item.query_id.
- */
-struct drm_i915_memory_region_info {
- /** @region: The class:instance pair encoding */
- struct drm_i915_gem_memory_class_instance region;
-
- /** @rsvd0: MBZ */
- __u32 rsvd0;
-
- /**
- * @probed_size: Memory probed by the driver
- *
- * Note that it should not be possible to ever encounter a zero value
- * here, also note that no current region type will ever return -1 here.
- * Although for future region types, this might be a possibility. The
- * same applies to the other size fields.
- */
- __u64 probed_size;
-
- /**
- * @unallocated_size: Estimate of memory remaining
- *
- * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable accounting.
- * Without this (or if this is an older kernel) the value here will
- * always equal the @probed_size. Note this is only currently tracked
- * for I915_MEMORY_CLASS_DEVICE regions (for other types the value here
- * will always equal the @probed_size).
- */
- __u64 unallocated_size;
-
- union {
- /** @rsvd1: MBZ */
- __u64 rsvd1[8];
- struct {
- /**
- * @probed_cpu_visible_size: Memory probed by the driver
- * that is CPU accessible.
- *
- * This will be always be <= @probed_size, and the
- * remainder (if there is any) will not be CPU
- * accessible.
- *
- * On systems without small BAR, the @probed_size will
- * always equal the @probed_cpu_visible_size, since all
- * of it will be CPU accessible.
- *
- * Note this is only tracked for
- * I915_MEMORY_CLASS_DEVICE regions (for other types the
- * value here will always equal the @probed_size).
- *
- * Note that if the value returned here is zero, then
- * this must be an old kernel which lacks the relevant
- * small-bar uAPI support (including
- * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS), but on
- * such systems we should never actually end up with a
- * small BAR configuration, assuming we are able to load
- * the kernel module. Hence it should be safe to treat
- * this the same as when @probed_cpu_visible_size ==
- * @probed_size.
- */
- __u64 probed_cpu_visible_size;
-
- /**
- * @unallocated_cpu_visible_size: Estimate of CPU
- * visible memory remaining.
- *
- * Note this is only tracked for
- * I915_MEMORY_CLASS_DEVICE regions (for other types the
- * value here will always equal the
- * @probed_cpu_visible_size).
- *
- * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable
- * accounting. Without this the value here will always
- * equal the @probed_cpu_visible_size. Note this is only
- * currently tracked for I915_MEMORY_CLASS_DEVICE
- * regions (for other types the value here will also
- * always equal the @probed_cpu_visible_size).
- *
- * If this is an older kernel the value here will be
- * zero, see also @probed_cpu_visible_size.
- */
- __u64 unallocated_cpu_visible_size;
- };
- };
-};
-
-/**
- * struct drm_i915_query_memory_regions
- *
- * The region info query enumerates all regions known to the driver by filling
- * in an array of struct drm_i915_memory_region_info structures.
- *
- * Example for getting the list of supported regions:
- *
- * .. code-block:: C
- *
- * struct drm_i915_query_memory_regions *info;
- * struct drm_i915_query_item item = {
- * .query_id = DRM_I915_QUERY_MEMORY_REGIONS;
- * };
- * struct drm_i915_query query = {
- * .num_items = 1,
- * .items_ptr = (uintptr_t)&item,
- * };
- * int err, i;
- *
- * // First query the size of the blob we need, this needs to be large
- * // enough to hold our array of regions. The kernel will fill out the
- * // item.length for us, which is the number of bytes we need.
- * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
- * if (err) ...
- *
- * info = calloc(1, item.length);
- * // Now that we allocated the required number of bytes, we call the ioctl
- * // again, this time with the data_ptr pointing to our newly allocated
- * // blob, which the kernel can then populate with the all the region info.
- * item.data_ptr = (uintptr_t)&info,
- *
- * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
- * if (err) ...
- *
- * // We can now access each region in the array
- * for (i = 0; i < info->num_regions; i++) {
- * struct drm_i915_memory_region_info mr = info->regions[i];
- * u16 class = mr.region.class;
- * u16 instance = mr.region.instance;
- *
- * ....
- * }
- *
- * free(info);
- */
-struct drm_i915_query_memory_regions {
- /** @num_regions: Number of supported regions */
- __u32 num_regions;
-
- /** @rsvd: MBZ */
- __u32 rsvd[3];
-
- /** @regions: Info about each supported region */
- struct drm_i915_memory_region_info regions[];
-};
-
-/**
- * DOC: GuC HWCONFIG blob uAPI
- *
- * The GuC produces a blob with information about the current device.
- * i915 reads this blob from GuC and makes it available via this uAPI.
- *
- * The format and meaning of the blob content are documented in the
- * Programmer's Reference Manual.
- */
-
-/**
- * struct drm_i915_gem_create_ext - Existing gem_create behaviour, with added
- * extension support using struct i915_user_extension.
- *
- * Note that new buffer flags should be added here, at least for the stuff that
- * is immutable. Previously we would have two ioctls, one to create the object
- * with gem_create, and another to apply various parameters, however this
- * creates some ambiguity for the params which are considered immutable. Also in
- * general we're phasing out the various SET/GET ioctls.
- */
-struct drm_i915_gem_create_ext {
- /**
- * @size: Requested size for the object.
- *
- * The (page-aligned) allocated size for the object will be returned.
- *
- * DG2 64K min page size implications:
- *
- * On discrete platforms, starting from DG2, we have to contend with GTT
- * page size restrictions when dealing with I915_MEMORY_CLASS_DEVICE
- * objects. Specifically the hardware only supports 64K or larger GTT
- * page sizes for such memory. The kernel will already ensure that all
- * I915_MEMORY_CLASS_DEVICE memory is allocated using 64K or larger page
- * sizes underneath.
- *
- * Note that the returned size here will always reflect any required
- * rounding up done by the kernel, i.e 4K will now become 64K on devices
- * such as DG2. The kernel will always select the largest minimum
- * page-size for the set of possible placements as the value to use when
- * rounding up the @size.
- *
- * Special DG2 GTT address alignment requirement:
- *
- * The GTT alignment will also need to be at least 2M for such objects.
- *
- * Note that due to how the hardware implements 64K GTT page support, we
- * have some further complications:
- *
- * 1) The entire PDE (which covers a 2MB virtual address range), must
- * contain only 64K PTEs, i.e mixing 4K and 64K PTEs in the same
- * PDE is forbidden by the hardware.
- *
- * 2) We still need to support 4K PTEs for I915_MEMORY_CLASS_SYSTEM
- * objects.
- *
- * To keep things simple for userland, we mandate that any GTT mappings
- * must be aligned to and rounded up to 2MB. The kernel will internally
- * pad them out to the next 2MB boundary. As this only wastes virtual
- * address space and avoids userland having to copy any needlessly
- * complicated PDE sharing scheme (coloring) and only affects DG2, this
- * is deemed to be a good compromise.
- */
- __u64 size;
-
- /**
- * @handle: Returned handle for the object.
- *
- * Object handles are nonzero.
- */
- __u32 handle;
-
- /**
- * @flags: Optional flags.
- *
- * Supported values:
- *
- * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS - Signal to the kernel that
- * the object will need to be accessed via the CPU.
- *
- * Only valid when placing objects in I915_MEMORY_CLASS_DEVICE, and only
- * strictly required on configurations where some subset of the device
- * memory is directly visible/mappable through the CPU (which we also
- * call small BAR), like on some DG2+ systems. Note that this is quite
- * undesirable, but due to various factors like the client CPU, BIOS etc
- * it's something we can expect to see in the wild. See
- * &drm_i915_memory_region_info.probed_cpu_visible_size for how to
- * determine if this system applies.
- *
- * Note that one of the placements MUST be I915_MEMORY_CLASS_SYSTEM, to
- * ensure the kernel can always spill the allocation to system memory,
- * if the object can't be allocated in the mappable part of
- * I915_MEMORY_CLASS_DEVICE.
- *
- * Also note that since the kernel only supports flat-CCS on objects
- * that can *only* be placed in I915_MEMORY_CLASS_DEVICE, we therefore
- * don't support I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS together with
- * flat-CCS.
- *
- * Without this hint, the kernel will assume that non-mappable
- * I915_MEMORY_CLASS_DEVICE is preferred for this object. Note that the
- * kernel can still migrate the object to the mappable part, as a last
- * resort, if userspace ever CPU faults this object, but this might be
- * expensive, and so ideally should be avoided.
- *
- * On older kernels which lack the relevant small-bar uAPI support (see
- * also &drm_i915_memory_region_info.probed_cpu_visible_size),
- * usage of the flag will result in an error, but it should NEVER be
- * possible to end up with a small BAR configuration, assuming we can
- * also successfully load the i915 kernel module. In such cases the
- * entire I915_MEMORY_CLASS_DEVICE region will be CPU accessible, and as
- * such there are zero restrictions on where the object can be placed.
- */
-#define I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS (1 << 0)
- __u32 flags;
-
- /**
- * @extensions: The chain of extensions to apply to this object.
- *
- * This will be useful in the future when we need to support several
- * different extensions, and we need to apply more than one when
- * creating the object. See struct i915_user_extension.
- *
- * If we don't supply any extensions then we get the same old gem_create
- * behaviour.
- *
- * For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see
- * struct drm_i915_gem_create_ext_memory_regions.
- *
- * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see
- * struct drm_i915_gem_create_ext_protected_content.
- */
-#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
-#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
- __u64 extensions;
-};
-
-/**
- * struct drm_i915_gem_create_ext_memory_regions - The
- * I915_GEM_CREATE_EXT_MEMORY_REGIONS extension.
- *
- * Set the object with the desired set of placements/regions in priority
- * order. Each entry must be unique and supported by the device.
- *
- * This is provided as an array of struct drm_i915_gem_memory_class_instance, or
- * an equivalent layout of class:instance pair encodings. See struct
- * drm_i915_query_memory_regions and DRM_I915_QUERY_MEMORY_REGIONS for how to
- * query the supported regions for a device.
- *
- * As an example, on discrete devices, if we wish to set the placement as
- * device local-memory we can do something like:
- *
- * .. code-block:: C
- *
- * struct drm_i915_gem_memory_class_instance region_lmem = {
- * .memory_class = I915_MEMORY_CLASS_DEVICE,
- * .memory_instance = 0,
- * };
- * struct drm_i915_gem_create_ext_memory_regions regions = {
- * .base = { .name = I915_GEM_CREATE_EXT_MEMORY_REGIONS },
- * .regions = (uintptr_t)&region_lmem,
- * .num_regions = 1,
- * };
- * struct drm_i915_gem_create_ext create_ext = {
- * .size = 16 * PAGE_SIZE,
- * .extensions = (uintptr_t)&regions,
- * };
- *
- * int err = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE_EXT, &create_ext);
- * if (err) ...
- *
- * At which point we get the object handle in &drm_i915_gem_create_ext.handle,
- * along with the final object size in &drm_i915_gem_create_ext.size, which
- * should account for any rounding up, if required.
- *
- * Note that userspace has no means of knowing the current backing region
- * for objects where @num_regions is larger than one. The kernel will only
- * ensure that the priority order of the @regions array is honoured, either
- * when initially placing the object, or when moving memory around due to
- * memory pressure
- *
- * On Flat-CCS capable HW, compression is supported for the objects residing
- * in I915_MEMORY_CLASS_DEVICE. When such objects (compressed) have other
- * memory class in @regions and migrated (by i915, due to memory
- * constraints) to the non I915_MEMORY_CLASS_DEVICE region, then i915 needs to
- * decompress the content. But i915 doesn't have the required information to
- * decompress the userspace compressed objects.
- *
- * So i915 supports Flat-CCS, on the objects which can reside only on
- * I915_MEMORY_CLASS_DEVICE regions.
- */
-struct drm_i915_gem_create_ext_memory_regions {
- /** @base: Extension link. See struct i915_user_extension. */
- struct i915_user_extension base;
-
- /** @pad: MBZ */
- __u32 pad;
- /** @num_regions: Number of elements in the @regions array. */
- __u32 num_regions;
- /**
- * @regions: The regions/placements array.
- *
- * An array of struct drm_i915_gem_memory_class_instance.
- */
- __u64 regions;
-};
-
-/**
- * struct drm_i915_gem_create_ext_protected_content - The
- * I915_OBJECT_PARAM_PROTECTED_CONTENT extension.
- *
- * If this extension is provided, buffer contents are expected to be protected
- * by PXP encryption and require decryption for scan out and processing. This
- * is only possible on platforms that have PXP enabled, on all other scenarios
- * using this extension will cause the ioctl to fail and return -ENODEV. The
- * flags parameter is reserved for future expansion and must currently be set
- * to zero.
- *
- * The buffer contents are considered invalid after a PXP session teardown.
- *
- * The encryption is guaranteed to be processed correctly only if the object
- * is submitted with a context created using the
- * I915_CONTEXT_PARAM_PROTECTED_CONTENT flag. This will also enable extra checks
- * at submission time on the validity of the objects involved.
- *
- * Below is an example on how to create a protected object:
- *
- * .. code-block:: C
- *
- * struct drm_i915_gem_create_ext_protected_content protected_ext = {
- * .base = { .name = I915_GEM_CREATE_EXT_PROTECTED_CONTENT },
- * .flags = 0,
- * };
- * struct drm_i915_gem_create_ext create_ext = {
- * .size = PAGE_SIZE,
- * .extensions = (uintptr_t)&protected_ext,
- * };
- *
- * int err = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE_EXT, &create_ext);
- * if (err) ...
- */
-struct drm_i915_gem_create_ext_protected_content {
- /** @base: Extension link. See struct i915_user_extension. */
- struct i915_user_extension base;
- /** @flags: reserved for future usage, currently MBZ */
- __u32 flags;
-};
-
-/* ID of the protected content session managed by i915 when PXP is active */
-#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* _I915_DRM_H_ */
diff --git a/libdrm/libdrm/intel_aub.h b/libdrm/libdrm/intel_aub.h
deleted file mode 100644
index 5f0aba8..0000000
--- a/libdrm/libdrm/intel_aub.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright © 2010 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- * Eric Anholt <eric@anholt.net>
- *
- */
-
-/** @file intel_aub.h
- *
- * The AUB file is a file format used by Intel's internal simulation
- * and other validation tools. It can be used at various levels by a
- * driver to input state to the simulated hardware or a replaying
- * debugger.
- *
- * We choose to dump AUB files using the trace block format for ease
- * of implementation -- dump out the blocks of memory as plain blobs
- * and insert ring commands to execute the batchbuffer blob.
- */
-
-#ifndef _INTEL_AUB_H
-#define _INTEL_AUB_H
-
-#define AUB_MI_NOOP (0)
-#define AUB_MI_BATCH_BUFFER_START (0x31 << 23)
-#define AUB_PIPE_CONTROL (0x7a000002)
-
-/* DW0: instruction type. */
-
-#define CMD_AUB (7 << 29)
-
-#define CMD_AUB_HEADER (CMD_AUB | (1 << 23) | (0x05 << 16))
-/* DW1 */
-# define AUB_HEADER_MAJOR_SHIFT 24
-# define AUB_HEADER_MINOR_SHIFT 16
-
-#define CMD_AUB_TRACE_HEADER_BLOCK (CMD_AUB | (1 << 23) | (0x41 << 16))
-#define CMD_AUB_DUMP_BMP (CMD_AUB | (1 << 23) | (0x9e << 16))
-
-/* DW1 */
-#define AUB_TRACE_OPERATION_MASK 0x000000ff
-#define AUB_TRACE_OP_COMMENT 0x00000000
-#define AUB_TRACE_OP_DATA_WRITE 0x00000001
-#define AUB_TRACE_OP_COMMAND_WRITE 0x00000002
-#define AUB_TRACE_OP_MMIO_WRITE 0x00000003
-// operation = TRACE_DATA_WRITE, Type
-#define AUB_TRACE_TYPE_MASK 0x0000ff00
-#define AUB_TRACE_TYPE_NOTYPE (0 << 8)
-#define AUB_TRACE_TYPE_BATCH (1 << 8)
-#define AUB_TRACE_TYPE_VERTEX_BUFFER (5 << 8)
-#define AUB_TRACE_TYPE_2D_MAP (6 << 8)
-#define AUB_TRACE_TYPE_CUBE_MAP (7 << 8)
-#define AUB_TRACE_TYPE_VOLUME_MAP (9 << 8)
-#define AUB_TRACE_TYPE_1D_MAP (10 << 8)
-#define AUB_TRACE_TYPE_CONSTANT_BUFFER (11 << 8)
-#define AUB_TRACE_TYPE_CONSTANT_URB (12 << 8)
-#define AUB_TRACE_TYPE_INDEX_BUFFER (13 << 8)
-#define AUB_TRACE_TYPE_GENERAL (14 << 8)
-#define AUB_TRACE_TYPE_SURFACE (15 << 8)
-
-
-// operation = TRACE_COMMAND_WRITE, Type =
-#define AUB_TRACE_TYPE_RING_HWB (1 << 8)
-#define AUB_TRACE_TYPE_RING_PRB0 (2 << 8)
-#define AUB_TRACE_TYPE_RING_PRB1 (3 << 8)
-#define AUB_TRACE_TYPE_RING_PRB2 (4 << 8)
-
-// Address space
-#define AUB_TRACE_ADDRESS_SPACE_MASK 0x00ff0000
-#define AUB_TRACE_MEMTYPE_GTT (0 << 16)
-#define AUB_TRACE_MEMTYPE_LOCAL (1 << 16)
-#define AUB_TRACE_MEMTYPE_NONLOCAL (2 << 16)
-#define AUB_TRACE_MEMTYPE_PCI (3 << 16)
-#define AUB_TRACE_MEMTYPE_GTT_ENTRY (4 << 16)
-
-/* DW2 */
-
-/**
- * aub_state_struct_type enum values are encoded with the top 16 bits
- * representing the type to be delivered to the .aub file, and the bottom 16
- * bits representing the subtype. This macro performs the encoding.
- */
-#define ENCODE_SS_TYPE(type, subtype) (((type) << 16) | (subtype))
-
-enum aub_state_struct_type {
- AUB_TRACE_VS_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 1),
- AUB_TRACE_GS_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 2),
- AUB_TRACE_CLIP_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 3),
- AUB_TRACE_SF_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 4),
- AUB_TRACE_WM_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 5),
- AUB_TRACE_CC_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 6),
- AUB_TRACE_CLIP_VP_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 7),
- AUB_TRACE_SF_VP_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 8),
- AUB_TRACE_CC_VP_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0x9),
- AUB_TRACE_SAMPLER_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0xa),
- AUB_TRACE_KERNEL_INSTRUCTIONS = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0xb),
- AUB_TRACE_SCRATCH_SPACE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0xc),
- AUB_TRACE_SAMPLER_DEFAULT_COLOR = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0xd),
-
- AUB_TRACE_SCISSOR_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0x15),
- AUB_TRACE_BLEND_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0x16),
- AUB_TRACE_DEPTH_STENCIL_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0x17),
-
- AUB_TRACE_VERTEX_BUFFER = ENCODE_SS_TYPE(AUB_TRACE_TYPE_VERTEX_BUFFER, 0),
- AUB_TRACE_BINDING_TABLE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_SURFACE, 0x100),
- AUB_TRACE_SURFACE_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_SURFACE, 0x200),
- AUB_TRACE_VS_CONSTANTS = ENCODE_SS_TYPE(AUB_TRACE_TYPE_CONSTANT_BUFFER, 0),
- AUB_TRACE_WM_CONSTANTS = ENCODE_SS_TYPE(AUB_TRACE_TYPE_CONSTANT_BUFFER, 1),
-};
-
-#undef ENCODE_SS_TYPE
-
-/**
- * Decode a aub_state_struct_type value to determine the type that should be
- * stored in the .aub file.
- */
-static inline uint32_t AUB_TRACE_TYPE(enum aub_state_struct_type ss_type)
-{
- return (ss_type & 0xFFFF0000) >> 16;
-}
-
-/**
- * Decode a state_struct_type value to determine the subtype that should be
- * stored in the .aub file.
- */
-static inline uint32_t AUB_TRACE_SUBTYPE(enum aub_state_struct_type ss_type)
-{
- return ss_type & 0xFFFF;
-}
-
-/* DW3: address */
-/* DW4: len */
-
-#endif /* _INTEL_AUB_H */
diff --git a/libdrm/libdrm/intel_bufmgr.h b/libdrm/libdrm/intel_bufmgr.h
deleted file mode 100644
index 693472a..0000000
--- a/libdrm/libdrm/intel_bufmgr.h
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * Copyright © 2008-2012 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- * Eric Anholt <eric@anholt.net>
- *
- */
-
-/**
- * @file intel_bufmgr.h
- *
- * Public definitions of Intel-specific bufmgr functions.
- */
-
-#ifndef INTEL_BUFMGR_H
-#define INTEL_BUFMGR_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stdio.h>
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-struct drm_clip_rect;
-
-typedef struct _drm_intel_bufmgr drm_intel_bufmgr;
-typedef struct _drm_intel_context drm_intel_context;
-typedef struct _drm_intel_bo drm_intel_bo;
-
-struct _drm_intel_bo {
- /**
- * Size in bytes of the buffer object.
- *
- * The size may be larger than the size originally requested for the
- * allocation, such as being aligned to page size.
- */
- unsigned long size;
-
- /**
- * Alignment requirement for object
- *
- * Used for GTT mapping & pinning the object.
- */
- unsigned long align;
-
- /**
- * Deprecated field containing (possibly the low 32-bits of) the last
- * seen virtual card address. Use offset64 instead.
- */
- unsigned long offset;
-
- /**
- * Virtual address for accessing the buffer data. Only valid while
- * mapped.
- */
-#ifdef __cplusplus
- void *virt;
-#else
- void *virtual;
-#endif
-
- /** Buffer manager context associated with this buffer object */
- drm_intel_bufmgr *bufmgr;
-
- /**
- * MM-specific handle for accessing object
- */
- int handle;
-
- /**
- * Last seen card virtual address (offset from the beginning of the
- * aperture) for the object. This should be used to fill relocation
- * entries when calling drm_intel_bo_emit_reloc()
- */
- uint64_t offset64;
-};
-
-enum aub_dump_bmp_format {
- AUB_DUMP_BMP_FORMAT_8BIT = 1,
- AUB_DUMP_BMP_FORMAT_ARGB_4444 = 4,
- AUB_DUMP_BMP_FORMAT_ARGB_0888 = 6,
- AUB_DUMP_BMP_FORMAT_ARGB_8888 = 7,
-};
-
-typedef struct _drm_intel_aub_annotation {
- uint32_t type;
- uint32_t subtype;
- uint32_t ending_offset;
-} drm_intel_aub_annotation;
-
-#define BO_ALLOC_FOR_RENDER (1<<0)
-
-drm_intel_bo *drm_intel_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name,
- unsigned long size, unsigned int alignment);
-drm_intel_bo *drm_intel_bo_alloc_for_render(drm_intel_bufmgr *bufmgr,
- const char *name,
- unsigned long size,
- unsigned int alignment);
-drm_intel_bo *drm_intel_bo_alloc_userptr(drm_intel_bufmgr *bufmgr,
- const char *name,
- void *addr, uint32_t tiling_mode,
- uint32_t stride, unsigned long size,
- unsigned long flags);
-drm_intel_bo *drm_intel_bo_alloc_tiled(drm_intel_bufmgr *bufmgr,
- const char *name,
- int x, int y, int cpp,
- uint32_t *tiling_mode,
- unsigned long *pitch,
- unsigned long flags);
-void drm_intel_bo_reference(drm_intel_bo *bo);
-void drm_intel_bo_unreference(drm_intel_bo *bo);
-int drm_intel_bo_map(drm_intel_bo *bo, int write_enable);
-int drm_intel_bo_unmap(drm_intel_bo *bo);
-
-int drm_intel_bo_subdata(drm_intel_bo *bo, unsigned long offset,
- unsigned long size, const void *data);
-int drm_intel_bo_get_subdata(drm_intel_bo *bo, unsigned long offset,
- unsigned long size, void *data);
-void drm_intel_bo_wait_rendering(drm_intel_bo *bo);
-
-void drm_intel_bufmgr_set_debug(drm_intel_bufmgr *bufmgr, int enable_debug);
-void drm_intel_bufmgr_destroy(drm_intel_bufmgr *bufmgr);
-int drm_intel_bo_exec(drm_intel_bo *bo, int used,
- struct drm_clip_rect *cliprects, int num_cliprects, int DR4);
-int drm_intel_bo_mrb_exec(drm_intel_bo *bo, int used,
- struct drm_clip_rect *cliprects, int num_cliprects, int DR4,
- unsigned int flags);
-int drm_intel_bufmgr_check_aperture_space(drm_intel_bo ** bo_array, int count);
-
-int drm_intel_bo_emit_reloc(drm_intel_bo *bo, uint32_t offset,
- drm_intel_bo *target_bo, uint32_t target_offset,
- uint32_t read_domains, uint32_t write_domain);
-int drm_intel_bo_emit_reloc_fence(drm_intel_bo *bo, uint32_t offset,
- drm_intel_bo *target_bo,
- uint32_t target_offset,
- uint32_t read_domains, uint32_t write_domain);
-int drm_intel_bo_pin(drm_intel_bo *bo, uint32_t alignment);
-int drm_intel_bo_unpin(drm_intel_bo *bo);
-int drm_intel_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
- uint32_t stride);
-int drm_intel_bo_get_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
- uint32_t * swizzle_mode);
-int drm_intel_bo_flink(drm_intel_bo *bo, uint32_t * name);
-int drm_intel_bo_busy(drm_intel_bo *bo);
-int drm_intel_bo_madvise(drm_intel_bo *bo, int madv);
-int drm_intel_bo_use_48b_address_range(drm_intel_bo *bo, uint32_t enable);
-int drm_intel_bo_set_softpin_offset(drm_intel_bo *bo, uint64_t offset);
-
-int drm_intel_bo_disable_reuse(drm_intel_bo *bo);
-int drm_intel_bo_is_reusable(drm_intel_bo *bo);
-int drm_intel_bo_references(drm_intel_bo *bo, drm_intel_bo *target_bo);
-
-/* drm_intel_bufmgr_gem.c */
-drm_intel_bufmgr *drm_intel_bufmgr_gem_init(int fd, int batch_size);
-drm_intel_bo *drm_intel_bo_gem_create_from_name(drm_intel_bufmgr *bufmgr,
- const char *name,
- unsigned int handle);
-void drm_intel_bufmgr_gem_enable_reuse(drm_intel_bufmgr *bufmgr);
-void drm_intel_bufmgr_gem_enable_fenced_relocs(drm_intel_bufmgr *bufmgr);
-void drm_intel_bufmgr_gem_set_vma_cache_size(drm_intel_bufmgr *bufmgr,
- int limit);
-int drm_intel_gem_bo_map_unsynchronized(drm_intel_bo *bo);
-int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo);
-int drm_intel_gem_bo_unmap_gtt(drm_intel_bo *bo);
-
-#define HAVE_DRM_INTEL_GEM_BO_DISABLE_IMPLICIT_SYNC 1
-int drm_intel_bufmgr_gem_can_disable_implicit_sync(drm_intel_bufmgr *bufmgr);
-void drm_intel_gem_bo_disable_implicit_sync(drm_intel_bo *bo);
-void drm_intel_gem_bo_enable_implicit_sync(drm_intel_bo *bo);
-
-void *drm_intel_gem_bo_map__cpu(drm_intel_bo *bo);
-void *drm_intel_gem_bo_map__gtt(drm_intel_bo *bo);
-void *drm_intel_gem_bo_map__wc(drm_intel_bo *bo);
-
-int drm_intel_gem_bo_get_reloc_count(drm_intel_bo *bo);
-void drm_intel_gem_bo_clear_relocs(drm_intel_bo *bo, int start);
-void drm_intel_gem_bo_start_gtt_access(drm_intel_bo *bo, int write_enable);
-
-void
-drm_intel_bufmgr_gem_set_aub_filename(drm_intel_bufmgr *bufmgr,
- const char *filename);
-void drm_intel_bufmgr_gem_set_aub_dump(drm_intel_bufmgr *bufmgr, int enable);
-void drm_intel_gem_bo_aub_dump_bmp(drm_intel_bo *bo,
- int x1, int y1, int width, int height,
- enum aub_dump_bmp_format format,
- int pitch, int offset);
-void
-drm_intel_bufmgr_gem_set_aub_annotations(drm_intel_bo *bo,
- drm_intel_aub_annotation *annotations,
- unsigned count);
-
-int drm_intel_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, int crtc_id);
-
-int drm_intel_get_aperture_sizes(int fd, size_t *mappable, size_t *total);
-int drm_intel_bufmgr_gem_get_devid(drm_intel_bufmgr *bufmgr);
-int drm_intel_gem_bo_wait(drm_intel_bo *bo, int64_t timeout_ns);
-
-drm_intel_context *drm_intel_gem_context_create(drm_intel_bufmgr *bufmgr);
-int drm_intel_gem_context_get_id(drm_intel_context *ctx,
- uint32_t *ctx_id);
-void drm_intel_gem_context_destroy(drm_intel_context *ctx);
-int drm_intel_gem_bo_context_exec(drm_intel_bo *bo, drm_intel_context *ctx,
- int used, unsigned int flags);
-int drm_intel_gem_bo_fence_exec(drm_intel_bo *bo,
- drm_intel_context *ctx,
- int used,
- int in_fence,
- int *out_fence,
- unsigned int flags);
-
-int drm_intel_bo_gem_export_to_prime(drm_intel_bo *bo, int *prime_fd);
-drm_intel_bo *drm_intel_bo_gem_create_from_prime(drm_intel_bufmgr *bufmgr,
- int prime_fd, int size);
-
-/* drm_intel_bufmgr_fake.c */
-drm_intel_bufmgr *drm_intel_bufmgr_fake_init(int fd,
- unsigned long low_offset,
- void *low_virtual,
- unsigned long size,
- volatile unsigned int
- *last_dispatch);
-void drm_intel_bufmgr_fake_set_last_dispatch(drm_intel_bufmgr *bufmgr,
- volatile unsigned int
- *last_dispatch);
-void drm_intel_bufmgr_fake_set_exec_callback(drm_intel_bufmgr *bufmgr,
- int (*exec) (drm_intel_bo *bo,
- unsigned int used,
- void *priv),
- void *priv);
-void drm_intel_bufmgr_fake_set_fence_callback(drm_intel_bufmgr *bufmgr,
- unsigned int (*emit) (void *priv),
- void (*wait) (unsigned int fence,
- void *priv),
- void *priv);
-drm_intel_bo *drm_intel_bo_fake_alloc_static(drm_intel_bufmgr *bufmgr,
- const char *name,
- unsigned long offset,
- unsigned long size, void *virt);
-void drm_intel_bo_fake_disable_backing_store(drm_intel_bo *bo,
- void (*invalidate_cb) (drm_intel_bo
- * bo,
- void *ptr),
- void *ptr);
-
-void drm_intel_bufmgr_fake_contended_lock_take(drm_intel_bufmgr *bufmgr);
-void drm_intel_bufmgr_fake_evict_all(drm_intel_bufmgr *bufmgr);
-
-struct drm_intel_decode *drm_intel_decode_context_alloc(uint32_t devid);
-void drm_intel_decode_context_free(struct drm_intel_decode *ctx);
-void drm_intel_decode_set_batch_pointer(struct drm_intel_decode *ctx,
- void *data, uint32_t hw_offset,
- int count);
-void drm_intel_decode_set_dump_past_end(struct drm_intel_decode *ctx,
- int dump_past_end);
-void drm_intel_decode_set_head_tail(struct drm_intel_decode *ctx,
- uint32_t head, uint32_t tail);
-void drm_intel_decode_set_output_file(struct drm_intel_decode *ctx, FILE *out);
-void drm_intel_decode(struct drm_intel_decode *ctx);
-
-int drm_intel_reg_read(drm_intel_bufmgr *bufmgr,
- uint32_t offset,
- uint64_t *result);
-
-int drm_intel_get_reset_stats(drm_intel_context *ctx,
- uint32_t *reset_count,
- uint32_t *active,
- uint32_t *pending);
-
-int drm_intel_get_subslice_total(int fd, unsigned int *subslice_total);
-int drm_intel_get_eu_total(int fd, unsigned int *eu_total);
-
-int drm_intel_get_pooled_eu(int fd);
-int drm_intel_get_min_eu_in_pool(int fd);
-
-/** @{ Compatibility defines to keep old code building despite the symbol rename
- * from dri_* to drm_intel_*
- */
-#define dri_bo drm_intel_bo
-#define dri_bufmgr drm_intel_bufmgr
-#define dri_bo_alloc drm_intel_bo_alloc
-#define dri_bo_reference drm_intel_bo_reference
-#define dri_bo_unreference drm_intel_bo_unreference
-#define dri_bo_map drm_intel_bo_map
-#define dri_bo_unmap drm_intel_bo_unmap
-#define dri_bo_subdata drm_intel_bo_subdata
-#define dri_bo_get_subdata drm_intel_bo_get_subdata
-#define dri_bo_wait_rendering drm_intel_bo_wait_rendering
-#define dri_bufmgr_set_debug drm_intel_bufmgr_set_debug
-#define dri_bufmgr_destroy drm_intel_bufmgr_destroy
-#define dri_bo_exec drm_intel_bo_exec
-#define dri_bufmgr_check_aperture_space drm_intel_bufmgr_check_aperture_space
-#define dri_bo_emit_reloc(reloc_bo, read, write, target_offset, \
- reloc_offset, target_bo) \
- drm_intel_bo_emit_reloc(reloc_bo, reloc_offset, \
- target_bo, target_offset, \
- read, write);
-#define dri_bo_pin drm_intel_bo_pin
-#define dri_bo_unpin drm_intel_bo_unpin
-#define dri_bo_get_tiling drm_intel_bo_get_tiling
-#define dri_bo_set_tiling(bo, mode) drm_intel_bo_set_tiling(bo, mode, 0)
-#define dri_bo_flink drm_intel_bo_flink
-#define intel_bufmgr_gem_init drm_intel_bufmgr_gem_init
-#define intel_bo_gem_create_from_name drm_intel_bo_gem_create_from_name
-#define intel_bufmgr_gem_enable_reuse drm_intel_bufmgr_gem_enable_reuse
-#define intel_bufmgr_fake_init drm_intel_bufmgr_fake_init
-#define intel_bufmgr_fake_set_last_dispatch drm_intel_bufmgr_fake_set_last_dispatch
-#define intel_bufmgr_fake_set_exec_callback drm_intel_bufmgr_fake_set_exec_callback
-#define intel_bufmgr_fake_set_fence_callback drm_intel_bufmgr_fake_set_fence_callback
-#define intel_bo_fake_alloc_static drm_intel_bo_fake_alloc_static
-#define intel_bo_fake_disable_backing_store drm_intel_bo_fake_disable_backing_store
-#define intel_bufmgr_fake_contended_lock_take drm_intel_bufmgr_fake_contended_lock_take
-#define intel_bufmgr_fake_evict_all drm_intel_bufmgr_fake_evict_all
-
-/** @{ */
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* INTEL_BUFMGR_H */
diff --git a/libdrm/libdrm/intel_debug.h b/libdrm/libdrm/intel_debug.h
deleted file mode 100644
index fa0737c..0000000
--- a/libdrm/libdrm/intel_debug.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- * Ben Widawsky <ben@bwidawsk.net>
- *
- */
-
-#ifndef INTEL_DEBUG_H
-#define INTEL_DEBUG_H
-
-#include <stdint.h>
-
-#define SHADER_DEBUG_SOCKET "/var/run/gen_debug"
-#define DEBUG_HANDSHAKE_VERSION 0x3
-#define DEBUG_HANDSHAKE_ACK "okay"
-
-/* First byte must always be the 1 byte version */
-struct intel_debug_handshake {
- uint32_t version;
- int flink_handle;
- uint32_t per_thread_scratch;
-} __attribute__((packed));
-
-#endif
diff --git a/libdrm/libdrm/mach64_drm.h b/libdrm/libdrm/mach64_drm.h
deleted file mode 100644
index 1f5fd84..0000000
--- a/libdrm/libdrm/mach64_drm.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/* mach64_drm.h -- Public header for the mach64 driver -*- linux-c -*-
- * Created: Thu Nov 30 20:04:32 2000 by gareth@valinux.com
- */
-/*
- * Copyright 2000 Gareth Hughes
- * Copyright 2002 Frank C. Earl
- * Copyright 2002-2003 Leif Delgass
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT OWNER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- * Gareth Hughes <gareth@valinux.com>
- * Frank C. Earl <fearl@airmail.net>
- * Leif Delgass <ldelgass@retinalburn.net>
- */
-
-#ifndef __MACH64_DRM_H__
-#define __MACH64_DRM_H__
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the Xserver file (mach64_sarea.h)
- */
-#ifndef __MACH64_SAREA_DEFINES__
-#define __MACH64_SAREA_DEFINES__
-
-/* What needs to be changed for the current vertex buffer?
- * GH: We're going to be pedantic about this. We want the card to do as
- * little as possible, so let's avoid having it fetch a whole bunch of
- * register values that don't change all that often, if at all.
- */
-#define MACH64_UPLOAD_DST_OFF_PITCH 0x0001
-#define MACH64_UPLOAD_Z_OFF_PITCH 0x0002
-#define MACH64_UPLOAD_Z_ALPHA_CNTL 0x0004
-#define MACH64_UPLOAD_SCALE_3D_CNTL 0x0008
-#define MACH64_UPLOAD_DP_FOG_CLR 0x0010
-#define MACH64_UPLOAD_DP_WRITE_MASK 0x0020
-#define MACH64_UPLOAD_DP_PIX_WIDTH 0x0040
-#define MACH64_UPLOAD_SETUP_CNTL 0x0080
-#define MACH64_UPLOAD_MISC 0x0100
-#define MACH64_UPLOAD_TEXTURE 0x0200
-#define MACH64_UPLOAD_TEX0IMAGE 0x0400
-#define MACH64_UPLOAD_TEX1IMAGE 0x0800
-#define MACH64_UPLOAD_CLIPRECTS 0x1000 /* handled client-side */
-#define MACH64_UPLOAD_CONTEXT 0x00ff
-#define MACH64_UPLOAD_ALL 0x1fff
-
-/* DMA buffer size
- */
-#define MACH64_BUFFER_SIZE 16384
-
-/* Max number of swaps allowed on the ring
- * before the client must wait
- */
-#define MACH64_MAX_QUEUED_FRAMES 3U
-
-/* Byte offsets for host blit buffer data
- */
-#define MACH64_HOSTDATA_BLIT_OFFSET 104
-
-/* Keep these small for testing.
- */
-#define MACH64_NR_SAREA_CLIPRECTS 8
-
-#define MACH64_CARD_HEAP 0
-#define MACH64_AGP_HEAP 1
-#define MACH64_NR_TEX_HEAPS 2
-#define MACH64_NR_TEX_REGIONS 64
-#define MACH64_LOG_TEX_GRANULARITY 16
-
-#define MACH64_TEX_MAXLEVELS 1
-
-#define MACH64_NR_CONTEXT_REGS 15
-#define MACH64_NR_TEXTURE_REGS 4
-
-#endif /* __MACH64_SAREA_DEFINES__ */
-
-typedef struct {
- unsigned int dst_off_pitch;
-
- unsigned int z_off_pitch;
- unsigned int z_cntl;
- unsigned int alpha_tst_cntl;
-
- unsigned int scale_3d_cntl;
-
- unsigned int sc_left_right;
- unsigned int sc_top_bottom;
-
- unsigned int dp_fog_clr;
- unsigned int dp_write_mask;
- unsigned int dp_pix_width;
- unsigned int dp_mix;
- unsigned int dp_src;
-
- unsigned int clr_cmp_cntl;
- unsigned int gui_traj_cntl;
-
- unsigned int setup_cntl;
-
- unsigned int tex_size_pitch;
- unsigned int tex_cntl;
- unsigned int secondary_tex_off;
- unsigned int tex_offset;
-} drm_mach64_context_regs_t;
-
-typedef struct drm_mach64_sarea {
- /* The channel for communication of state information to the kernel
- * on firing a vertex dma buffer.
- */
- drm_mach64_context_regs_t context_state;
- unsigned int dirty;
- unsigned int vertsize;
-
- /* The current cliprects, or a subset thereof.
- */
- struct drm_clip_rect boxes[MACH64_NR_SAREA_CLIPRECTS];
- unsigned int nbox;
-
- /* Counters for client-side throttling of rendering clients.
- */
- unsigned int frames_queued;
-
- /* Texture memory LRU.
- */
- struct drm_tex_region tex_list[MACH64_NR_TEX_HEAPS][MACH64_NR_TEX_REGIONS +
- 1];
- unsigned int tex_age[MACH64_NR_TEX_HEAPS];
- int ctx_owner;
-} drm_mach64_sarea_t;
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the Xserver file (mach64_common.h)
- */
-
-/* Mach64 specific ioctls
- * The device specific ioctl range is 0x40 to 0x79.
- */
-
-#define DRM_MACH64_INIT 0x00
-#define DRM_MACH64_IDLE 0x01
-#define DRM_MACH64_RESET 0x02
-#define DRM_MACH64_SWAP 0x03
-#define DRM_MACH64_CLEAR 0x04
-#define DRM_MACH64_VERTEX 0x05
-#define DRM_MACH64_BLIT 0x06
-#define DRM_MACH64_FLUSH 0x07
-#define DRM_MACH64_GETPARAM 0x08
-
-#define DRM_IOCTL_MACH64_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_MACH64_INIT, drm_mach64_init_t)
-#define DRM_IOCTL_MACH64_IDLE DRM_IO( DRM_COMMAND_BASE + DRM_MACH64_IDLE )
-#define DRM_IOCTL_MACH64_RESET DRM_IO( DRM_COMMAND_BASE + DRM_MACH64_RESET )
-#define DRM_IOCTL_MACH64_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_MACH64_SWAP )
-#define DRM_IOCTL_MACH64_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_MACH64_CLEAR, drm_mach64_clear_t)
-#define DRM_IOCTL_MACH64_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_MACH64_VERTEX, drm_mach64_vertex_t)
-#define DRM_IOCTL_MACH64_BLIT DRM_IOW( DRM_COMMAND_BASE + DRM_MACH64_BLIT, drm_mach64_blit_t)
-#define DRM_IOCTL_MACH64_FLUSH DRM_IO( DRM_COMMAND_BASE + DRM_MACH64_FLUSH )
-#define DRM_IOCTL_MACH64_GETPARAM DRM_IOWR( DRM_COMMAND_BASE + DRM_MACH64_GETPARAM, drm_mach64_getparam_t)
-
-/* Buffer flags for clears
- */
-#define MACH64_FRONT 0x1
-#define MACH64_BACK 0x2
-#define MACH64_DEPTH 0x4
-
-/* Primitive types for vertex buffers
- */
-#define MACH64_PRIM_POINTS 0x00000000
-#define MACH64_PRIM_LINES 0x00000001
-#define MACH64_PRIM_LINE_LOOP 0x00000002
-#define MACH64_PRIM_LINE_STRIP 0x00000003
-#define MACH64_PRIM_TRIANGLES 0x00000004
-#define MACH64_PRIM_TRIANGLE_STRIP 0x00000005
-#define MACH64_PRIM_TRIANGLE_FAN 0x00000006
-#define MACH64_PRIM_QUADS 0x00000007
-#define MACH64_PRIM_QUAD_STRIP 0x00000008
-#define MACH64_PRIM_POLYGON 0x00000009
-
-typedef enum _drm_mach64_dma_mode_t {
- MACH64_MODE_DMA_ASYNC,
- MACH64_MODE_DMA_SYNC,
- MACH64_MODE_MMIO
-} drm_mach64_dma_mode_t;
-
-typedef struct drm_mach64_init {
- enum {
- DRM_MACH64_INIT_DMA = 0x01,
- DRM_MACH64_CLEANUP_DMA = 0x02
- } func;
-
- unsigned long sarea_priv_offset;
- int is_pci;
- drm_mach64_dma_mode_t dma_mode;
-
- unsigned int fb_bpp;
- unsigned int front_offset, front_pitch;
- unsigned int back_offset, back_pitch;
-
- unsigned int depth_bpp;
- unsigned int depth_offset, depth_pitch;
-
- unsigned long fb_offset;
- unsigned long mmio_offset;
- unsigned long ring_offset;
- unsigned long buffers_offset;
- unsigned long agp_textures_offset;
-} drm_mach64_init_t;
-
-typedef struct drm_mach64_clear {
- unsigned int flags;
- int x, y, w, h;
- unsigned int clear_color;
- unsigned int clear_depth;
-} drm_mach64_clear_t;
-
-typedef struct drm_mach64_vertex {
- int prim;
- void *buf; /* Address of vertex buffer */
- unsigned long used; /* Number of bytes in buffer */
- int discard; /* Client finished with buffer? */
-} drm_mach64_vertex_t;
-
-typedef struct drm_mach64_blit {
- void *buf;
- int pitch;
- int offset;
- int format;
- unsigned short x, y;
- unsigned short width, height;
-} drm_mach64_blit_t;
-
-typedef struct drm_mach64_getparam {
- enum {
- MACH64_PARAM_FRAMES_QUEUED = 0x01,
- MACH64_PARAM_IRQ_NR = 0x02
- } param;
- void *value;
-} drm_mach64_getparam_t;
-
-#endif
diff --git a/libdrm/libdrm/mga_drm.h b/libdrm/libdrm/mga_drm.h
deleted file mode 100644
index 7930011..0000000
--- a/libdrm/libdrm/mga_drm.h
+++ /dev/null
@@ -1,427 +0,0 @@
-/* mga_drm.h -- Public header for the Matrox g200/g400 driver -*- linux-c -*-
- * Created: Tue Jan 25 01:50:01 1999 by jhartmann@precisioninsight.com
- *
- * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- * Jeff Hartmann <jhartmann@valinux.com>
- * Keith Whitwell <keith@tungstengraphics.com>
- *
- * Rewritten by:
- * Gareth Hughes <gareth@valinux.com>
- */
-
-#ifndef __MGA_DRM_H__
-#define __MGA_DRM_H__
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the Xserver file (mga_sarea.h)
- */
-
-#ifndef __MGA_SAREA_DEFINES__
-#define __MGA_SAREA_DEFINES__
-
-/* WARP pipe flags
- */
-#define MGA_F 0x1 /* fog */
-#define MGA_A 0x2 /* alpha */
-#define MGA_S 0x4 /* specular */
-#define MGA_T2 0x8 /* multitexture */
-
-#define MGA_WARP_TGZ 0
-#define MGA_WARP_TGZF (MGA_F)
-#define MGA_WARP_TGZA (MGA_A)
-#define MGA_WARP_TGZAF (MGA_F|MGA_A)
-#define MGA_WARP_TGZS (MGA_S)
-#define MGA_WARP_TGZSF (MGA_S|MGA_F)
-#define MGA_WARP_TGZSA (MGA_S|MGA_A)
-#define MGA_WARP_TGZSAF (MGA_S|MGA_F|MGA_A)
-#define MGA_WARP_T2GZ (MGA_T2)
-#define MGA_WARP_T2GZF (MGA_T2|MGA_F)
-#define MGA_WARP_T2GZA (MGA_T2|MGA_A)
-#define MGA_WARP_T2GZAF (MGA_T2|MGA_A|MGA_F)
-#define MGA_WARP_T2GZS (MGA_T2|MGA_S)
-#define MGA_WARP_T2GZSF (MGA_T2|MGA_S|MGA_F)
-#define MGA_WARP_T2GZSA (MGA_T2|MGA_S|MGA_A)
-#define MGA_WARP_T2GZSAF (MGA_T2|MGA_S|MGA_F|MGA_A)
-
-#define MGA_MAX_G200_PIPES 8 /* no multitex */
-#define MGA_MAX_G400_PIPES 16
-#define MGA_MAX_WARP_PIPES MGA_MAX_G400_PIPES
-#define MGA_WARP_UCODE_SIZE 32768 /* in bytes */
-
-#define MGA_CARD_TYPE_G200 1
-#define MGA_CARD_TYPE_G400 2
-#define MGA_CARD_TYPE_G450 3 /* not currently used */
-#define MGA_CARD_TYPE_G550 4
-
-#define MGA_FRONT 0x1
-#define MGA_BACK 0x2
-#define MGA_DEPTH 0x4
-
-/* What needs to be changed for the current vertex dma buffer?
- */
-#define MGA_UPLOAD_CONTEXT 0x1
-#define MGA_UPLOAD_TEX0 0x2
-#define MGA_UPLOAD_TEX1 0x4
-#define MGA_UPLOAD_PIPE 0x8
-#define MGA_UPLOAD_TEX0IMAGE 0x10 /* handled client-side */
-#define MGA_UPLOAD_TEX1IMAGE 0x20 /* handled client-side */
-#define MGA_UPLOAD_2D 0x40
-#define MGA_WAIT_AGE 0x80 /* handled client-side */
-#define MGA_UPLOAD_CLIPRECTS 0x100 /* handled client-side */
-#if 0
-#define MGA_DMA_FLUSH 0x200 /* set when someone gets the lock
- quiescent */
-#endif
-
-/* 32 buffers of 64k each, total 2 meg.
- */
-#define MGA_BUFFER_SIZE (1 << 16)
-#define MGA_NUM_BUFFERS 128
-
-/* Keep these small for testing.
- */
-#define MGA_NR_SAREA_CLIPRECTS 8
-
-/* 2 heaps (1 for card, 1 for agp), each divided into up to 128
- * regions, subject to a minimum region size of (1<<16) == 64k.
- *
- * Clients may subdivide regions internally, but when sharing between
- * clients, the region size is the minimum granularity.
- */
-
-#define MGA_CARD_HEAP 0
-#define MGA_AGP_HEAP 1
-#define MGA_NR_TEX_HEAPS 2
-#define MGA_NR_TEX_REGIONS 16
-#define MGA_LOG_MIN_TEX_REGION_SIZE 16
-
-#define DRM_MGA_IDLE_RETRY 2048
-
-#endif /* __MGA_SAREA_DEFINES__ */
-
-/* Setup registers for 3D context
- */
-typedef struct {
- unsigned int dstorg;
- unsigned int maccess;
- unsigned int plnwt;
- unsigned int dwgctl;
- unsigned int alphactrl;
- unsigned int fogcolor;
- unsigned int wflag;
- unsigned int tdualstage0;
- unsigned int tdualstage1;
- unsigned int fcol;
- unsigned int stencil;
- unsigned int stencilctl;
-} drm_mga_context_regs_t;
-
-/* Setup registers for 2D, X server
- */
-typedef struct {
- unsigned int pitch;
-} drm_mga_server_regs_t;
-
-/* Setup registers for each texture unit
- */
-typedef struct {
- unsigned int texctl;
- unsigned int texctl2;
- unsigned int texfilter;
- unsigned int texbordercol;
- unsigned int texorg;
- unsigned int texwidth;
- unsigned int texheight;
- unsigned int texorg1;
- unsigned int texorg2;
- unsigned int texorg3;
- unsigned int texorg4;
-} drm_mga_texture_regs_t;
-
-/* General aging mechanism
- */
-typedef struct {
- unsigned int head; /* Position of head pointer */
- unsigned int wrap; /* Primary DMA wrap count */
-} drm_mga_age_t;
-
-typedef struct _drm_mga_sarea {
- /* The channel for communication of state information to the kernel
- * on firing a vertex dma buffer.
- */
- drm_mga_context_regs_t context_state;
- drm_mga_server_regs_t server_state;
- drm_mga_texture_regs_t tex_state[2];
- unsigned int warp_pipe;
- unsigned int dirty;
- unsigned int vertsize;
-
- /* The current cliprects, or a subset thereof.
- */
- struct drm_clip_rect boxes[MGA_NR_SAREA_CLIPRECTS];
- unsigned int nbox;
-
- /* Information about the most recently used 3d drawable. The
- * client fills in the req_* fields, the server fills in the
- * exported_ fields and puts the cliprects into boxes, above.
- *
- * The client clears the exported_drawable field before
- * clobbering the boxes data.
- */
- unsigned int req_drawable; /* the X drawable id */
- unsigned int req_draw_buffer; /* MGA_FRONT or MGA_BACK */
-
- unsigned int exported_drawable;
- unsigned int exported_index;
- unsigned int exported_stamp;
- unsigned int exported_buffers;
- unsigned int exported_nfront;
- unsigned int exported_nback;
- int exported_back_x, exported_front_x, exported_w;
- int exported_back_y, exported_front_y, exported_h;
- struct drm_clip_rect exported_boxes[MGA_NR_SAREA_CLIPRECTS];
-
- /* Counters for aging textures and for client-side throttling.
- */
- unsigned int status[4];
- unsigned int last_wrap;
-
- drm_mga_age_t last_frame;
- unsigned int last_enqueue; /* last time a buffer was enqueued */
- unsigned int last_dispatch; /* age of the most recently dispatched buffer */
- unsigned int last_quiescent; /* */
-
- /* LRU lists for texture memory in agp space and on the card.
- */
- struct drm_tex_region texList[MGA_NR_TEX_HEAPS][MGA_NR_TEX_REGIONS + 1];
- unsigned int texAge[MGA_NR_TEX_HEAPS];
-
- /* Mechanism to validate card state.
- */
- int ctxOwner;
-} drm_mga_sarea_t;
-
-/* MGA specific ioctls
- * The device specific ioctl range is 0x40 to 0x79.
- */
-#define DRM_MGA_INIT 0x00
-#define DRM_MGA_FLUSH 0x01
-#define DRM_MGA_RESET 0x02
-#define DRM_MGA_SWAP 0x03
-#define DRM_MGA_CLEAR 0x04
-#define DRM_MGA_VERTEX 0x05
-#define DRM_MGA_INDICES 0x06
-#define DRM_MGA_ILOAD 0x07
-#define DRM_MGA_BLIT 0x08
-#define DRM_MGA_GETPARAM 0x09
-
-/* 3.2:
- * ioctls for operating on fences.
- */
-#define DRM_MGA_SET_FENCE 0x0a
-#define DRM_MGA_WAIT_FENCE 0x0b
-#define DRM_MGA_DMA_BOOTSTRAP 0x0c
-
-#define DRM_IOCTL_MGA_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_INIT, drm_mga_init_t)
-#define DRM_IOCTL_MGA_FLUSH DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_FLUSH, struct drm_lock)
-#define DRM_IOCTL_MGA_RESET DRM_IO( DRM_COMMAND_BASE + DRM_MGA_RESET)
-#define DRM_IOCTL_MGA_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_MGA_SWAP)
-#define DRM_IOCTL_MGA_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_CLEAR, drm_mga_clear_t)
-#define DRM_IOCTL_MGA_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_VERTEX, drm_mga_vertex_t)
-#define DRM_IOCTL_MGA_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_INDICES, drm_mga_indices_t)
-#define DRM_IOCTL_MGA_ILOAD DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_ILOAD, drm_mga_iload_t)
-#define DRM_IOCTL_MGA_BLIT DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_BLIT, drm_mga_blit_t)
-#define DRM_IOCTL_MGA_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_GETPARAM, drm_mga_getparam_t)
-#define DRM_IOCTL_MGA_SET_FENCE DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_SET_FENCE, __u32)
-#define DRM_IOCTL_MGA_WAIT_FENCE DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_WAIT_FENCE, __u32)
-#define DRM_IOCTL_MGA_DMA_BOOTSTRAP DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_DMA_BOOTSTRAP, drm_mga_dma_bootstrap_t)
-
-typedef struct _drm_mga_warp_index {
- int installed;
- unsigned long phys_addr;
- int size;
-} drm_mga_warp_index_t;
-
-typedef struct drm_mga_init {
- enum {
- MGA_INIT_DMA = 0x01,
- MGA_CLEANUP_DMA = 0x02
- } func;
-
- unsigned long sarea_priv_offset;
-
- int chipset;
- int sgram;
-
- unsigned int maccess;
-
- unsigned int fb_cpp;
- unsigned int front_offset, front_pitch;
- unsigned int back_offset, back_pitch;
-
- unsigned int depth_cpp;
- unsigned int depth_offset, depth_pitch;
-
- unsigned int texture_offset[MGA_NR_TEX_HEAPS];
- unsigned int texture_size[MGA_NR_TEX_HEAPS];
-
- unsigned long fb_offset;
- unsigned long mmio_offset;
- unsigned long status_offset;
- unsigned long warp_offset;
- unsigned long primary_offset;
- unsigned long buffers_offset;
-} drm_mga_init_t;
-
-typedef struct drm_mga_dma_bootstrap {
- /**
- * \name AGP texture region
- *
- * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, these fields will
- * be filled in with the actual AGP texture settings.
- *
- * \warning
- * If these fields are non-zero, but dma_mga_dma_bootstrap::agp_mode
- * is zero, it means that PCI memory (most likely through the use of
- * an IOMMU) is being used for "AGP" textures.
- */
- /*@{ */
- unsigned long texture_handle; /**< Handle used to map AGP textures. */
- __u32 texture_size; /**< Size of the AGP texture region. */
- /*@} */
-
- /**
- * Requested size of the primary DMA region.
- *
- * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, this field will be
- * filled in with the actual AGP mode. If AGP was not available
- */
- __u32 primary_size;
-
- /**
- * Requested number of secondary DMA buffers.
- *
- * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, this field will be
- * filled in with the actual number of secondary DMA buffers
- * allocated. Particularly when PCI DMA is used, this may be
- * (subtantially) less than the number requested.
- */
- __u32 secondary_bin_count;
-
- /**
- * Requested size of each secondary DMA buffer.
- *
- * While the kernel \b is free to reduce
- * dma_mga_dma_bootstrap::secondary_bin_count, it is \b not allowed
- * to reduce dma_mga_dma_bootstrap::secondary_bin_size.
- */
- __u32 secondary_bin_size;
-
- /**
- * Bit-wise mask of AGPSTAT2_* values. Currently only \c AGPSTAT2_1X,
- * \c AGPSTAT2_2X, and \c AGPSTAT2_4X are supported. If this value is
- * zero, it means that PCI DMA should be used, even if AGP is
- * possible.
- *
- * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, this field will be
- * filled in with the actual AGP mode. If AGP was not available
- * (i.e., PCI DMA was used), this value will be zero.
- */
- __u32 agp_mode;
-
- /**
- * Desired AGP GART size, measured in megabytes.
- */
- __u8 agp_size;
-} drm_mga_dma_bootstrap_t;
-
-typedef struct drm_mga_clear {
- unsigned int flags;
- unsigned int clear_color;
- unsigned int clear_depth;
- unsigned int color_mask;
- unsigned int depth_mask;
-} drm_mga_clear_t;
-
-typedef struct drm_mga_vertex {
- int idx; /* buffer to queue */
- int used; /* bytes in use */
- int discard; /* client finished with buffer? */
-} drm_mga_vertex_t;
-
-typedef struct drm_mga_indices {
- int idx; /* buffer to queue */
- unsigned int start;
- unsigned int end;
- int discard; /* client finished with buffer? */
-} drm_mga_indices_t;
-
-typedef struct drm_mga_iload {
- int idx;
- unsigned int dstorg;
- unsigned int length;
-} drm_mga_iload_t;
-
-typedef struct _drm_mga_blit {
- unsigned int planemask;
- unsigned int srcorg;
- unsigned int dstorg;
- int src_pitch, dst_pitch;
- int delta_sx, delta_sy;
- int delta_dx, delta_dy;
- int height, ydir; /* flip image vertically */
- int source_pitch, dest_pitch;
-} drm_mga_blit_t;
-
-/* 3.1: An ioctl to get parameters that aren't available to the 3d
- * client any other way.
- */
-#define MGA_PARAM_IRQ_NR 1
-
-/* 3.2: Query the actual card type. The DDX only distinguishes between
- * G200 chips and non-G200 chips, which it calls G400. It turns out that
- * there are some very sublte differences between the G4x0 chips and the G550
- * chips. Using this parameter query, a client-side driver can detect the
- * difference between a G4x0 and a G550.
- */
-#define MGA_PARAM_CARD_TYPE 2
-
-typedef struct drm_mga_getparam {
- int param;
- void *value;
-} drm_mga_getparam_t;
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/msm_drm.h b/libdrm/libdrm/msm_drm.h
deleted file mode 100644
index c06d0a5..0000000
--- a/libdrm/libdrm/msm_drm.h
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Copyright (C) 2013 Red Hat
- * Author: Rob Clark <robdclark@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef __MSM_DRM_H__
-#define __MSM_DRM_H__
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Please note that modifications to all structs defined here are
- * subject to backwards-compatibility constraints:
- * 1) Do not use pointers, use __u64 instead for 32 bit / 64 bit
- * user/kernel compatibility
- * 2) Keep fields aligned to their size
- * 3) Because of how drm_ioctl() works, we can add new fields at
- * the end of an ioctl if some care is taken: drm_ioctl() will
- * zero out the new fields at the tail of the ioctl, so a zero
- * value should have a backwards compatible meaning. And for
- * output params, userspace won't see the newly added output
- * fields.. so that has to be somehow ok.
- */
-
-#define MSM_PIPE_NONE 0x00
-#define MSM_PIPE_2D0 0x01
-#define MSM_PIPE_2D1 0x02
-#define MSM_PIPE_3D0 0x10
-
-/* The pipe-id just uses the lower bits, so can be OR'd with flags in
- * the upper 16 bits (which could be extended further, if needed, maybe
- * we extend/overload the pipe-id some day to deal with multiple rings,
- * but even then I don't think we need the full lower 16 bits).
- */
-#define MSM_PIPE_ID_MASK 0xffff
-#define MSM_PIPE_ID(x) ((x) & MSM_PIPE_ID_MASK)
-#define MSM_PIPE_FLAGS(x) ((x) & ~MSM_PIPE_ID_MASK)
-
-/* timeouts are specified in clock-monotonic absolute times (to simplify
- * restarting interrupted ioctls). The following struct is logically the
- * same as 'struct timespec' but 32/64b ABI safe.
- */
-struct drm_msm_timespec {
- __s64 tv_sec; /* seconds */
- __s64 tv_nsec; /* nanoseconds */
-};
-
-#define MSM_PARAM_GPU_ID 0x01
-#define MSM_PARAM_GMEM_SIZE 0x02
-#define MSM_PARAM_CHIP_ID 0x03
-#define MSM_PARAM_MAX_FREQ 0x04
-#define MSM_PARAM_TIMESTAMP 0x05
-#define MSM_PARAM_GMEM_BASE 0x06
-#define MSM_PARAM_NR_RINGS 0x07
-
-struct drm_msm_param {
- __u32 pipe; /* in, MSM_PIPE_x */
- __u32 param; /* in, MSM_PARAM_x */
- __u64 value; /* out (get_param) or in (set_param) */
-};
-
-/*
- * GEM buffers:
- */
-
-#define MSM_BO_SCANOUT 0x00000001 /* scanout capable */
-#define MSM_BO_GPU_READONLY 0x00000002
-#define MSM_BO_CACHE_MASK 0x000f0000
-/* cache modes */
-#define MSM_BO_CACHED 0x00010000
-#define MSM_BO_WC 0x00020000
-#define MSM_BO_UNCACHED 0x00040000
-
-#define MSM_BO_FLAGS (MSM_BO_SCANOUT | \
- MSM_BO_GPU_READONLY | \
- MSM_BO_CACHED | \
- MSM_BO_WC | \
- MSM_BO_UNCACHED)
-
-struct drm_msm_gem_new {
- __u64 size; /* in */
- __u32 flags; /* in, mask of MSM_BO_x */
- __u32 handle; /* out */
-};
-
-#define MSM_INFO_IOVA 0x01
-
-#define MSM_INFO_FLAGS (MSM_INFO_IOVA)
-
-struct drm_msm_gem_info {
- __u32 handle; /* in */
- __u32 flags; /* in - combination of MSM_INFO_* flags */
- __u64 offset; /* out, mmap() offset or iova */
-};
-
-#define MSM_PREP_READ 0x01
-#define MSM_PREP_WRITE 0x02
-#define MSM_PREP_NOSYNC 0x04
-
-#define MSM_PREP_FLAGS (MSM_PREP_READ | MSM_PREP_WRITE | MSM_PREP_NOSYNC)
-
-struct drm_msm_gem_cpu_prep {
- __u32 handle; /* in */
- __u32 op; /* in, mask of MSM_PREP_x */
- struct drm_msm_timespec timeout; /* in */
-};
-
-struct drm_msm_gem_cpu_fini {
- __u32 handle; /* in */
-};
-
-/*
- * Cmdstream Submission:
- */
-
-/* The value written into the cmdstream is logically:
- *
- * ((relocbuf->gpuaddr + reloc_offset) << shift) | or
- *
- * When we have GPU's w/ >32bit ptrs, it should be possible to deal
- * with this by emit'ing two reloc entries with appropriate shift
- * values. Or a new MSM_SUBMIT_CMD_x type would also be an option.
- *
- * NOTE that reloc's must be sorted by order of increasing submit_offset,
- * otherwise EINVAL.
- */
-struct drm_msm_gem_submit_reloc {
- __u32 submit_offset; /* in, offset from submit_bo */
- __u32 or; /* in, value OR'd with result */
- __s32 shift; /* in, amount of left shift (can be negative) */
- __u32 reloc_idx; /* in, index of reloc_bo buffer */
- __u64 reloc_offset; /* in, offset from start of reloc_bo */
-};
-
-/* submit-types:
- * BUF - this cmd buffer is executed normally.
- * IB_TARGET_BUF - this cmd buffer is an IB target. Reloc's are
- * processed normally, but the kernel does not setup an IB to
- * this buffer in the first-level ringbuffer
- * CTX_RESTORE_BUF - only executed if there has been a GPU context
- * switch since the last SUBMIT ioctl
- */
-#define MSM_SUBMIT_CMD_BUF 0x0001
-#define MSM_SUBMIT_CMD_IB_TARGET_BUF 0x0002
-#define MSM_SUBMIT_CMD_CTX_RESTORE_BUF 0x0003
-struct drm_msm_gem_submit_cmd {
- __u32 type; /* in, one of MSM_SUBMIT_CMD_x */
- __u32 submit_idx; /* in, index of submit_bo cmdstream buffer */
- __u32 submit_offset; /* in, offset into submit_bo */
- __u32 size; /* in, cmdstream size */
- __u32 pad;
- __u32 nr_relocs; /* in, number of submit_reloc's */
- __u64 relocs; /* in, ptr to array of submit_reloc's */
-};
-
-/* Each buffer referenced elsewhere in the cmdstream submit (ie. the
- * cmdstream buffer(s) themselves or reloc entries) has one (and only
- * one) entry in the submit->bos[] table.
- *
- * As a optimization, the current buffer (gpu virtual address) can be
- * passed back through the 'presumed' field. If on a subsequent reloc,
- * userspace passes back a 'presumed' address that is still valid,
- * then patching the cmdstream for this entry is skipped. This can
- * avoid kernel needing to map/access the cmdstream bo in the common
- * case.
- */
-#define MSM_SUBMIT_BO_READ 0x0001
-#define MSM_SUBMIT_BO_WRITE 0x0002
-
-#define MSM_SUBMIT_BO_FLAGS (MSM_SUBMIT_BO_READ | MSM_SUBMIT_BO_WRITE)
-
-struct drm_msm_gem_submit_bo {
- __u32 flags; /* in, mask of MSM_SUBMIT_BO_x */
- __u32 handle; /* in, GEM handle */
- __u64 presumed; /* in/out, presumed buffer address */
-};
-
-/* Valid submit ioctl flags: */
-#define MSM_SUBMIT_NO_IMPLICIT 0x80000000 /* disable implicit sync */
-#define MSM_SUBMIT_FENCE_FD_IN 0x40000000 /* enable input fence_fd */
-#define MSM_SUBMIT_FENCE_FD_OUT 0x20000000 /* enable output fence_fd */
-#define MSM_SUBMIT_SUDO 0x10000000 /* run submitted cmds from RB */
-#define MSM_SUBMIT_FLAGS ( \
- MSM_SUBMIT_NO_IMPLICIT | \
- MSM_SUBMIT_FENCE_FD_IN | \
- MSM_SUBMIT_FENCE_FD_OUT | \
- MSM_SUBMIT_SUDO | \
- 0)
-
-/* Each cmdstream submit consists of a table of buffers involved, and
- * one or more cmdstream buffers. This allows for conditional execution
- * (context-restore), and IB buffers needed for per tile/bin draw cmds.
- */
-struct drm_msm_gem_submit {
- __u32 flags; /* MSM_PIPE_x | MSM_SUBMIT_x */
- __u32 fence; /* out */
- __u32 nr_bos; /* in, number of submit_bo's */
- __u32 nr_cmds; /* in, number of submit_cmd's */
- __u64 bos; /* in, ptr to array of submit_bo's */
- __u64 cmds; /* in, ptr to array of submit_cmd's */
- __s32 fence_fd; /* in/out fence fd (see MSM_SUBMIT_FENCE_FD_IN/OUT) */
- __u32 queueid; /* in, submitqueue id */
-};
-
-/* The normal way to synchronize with the GPU is just to CPU_PREP on
- * a buffer if you need to access it from the CPU (other cmdstream
- * submission from same or other contexts, PAGE_FLIP ioctl, etc, all
- * handle the required synchronization under the hood). This ioctl
- * mainly just exists as a way to implement the gallium pipe_fence
- * APIs without requiring a dummy bo to synchronize on.
- */
-struct drm_msm_wait_fence {
- __u32 fence; /* in */
- __u32 pad;
- struct drm_msm_timespec timeout; /* in */
- __u32 queueid; /* in, submitqueue id */
-};
-
-/* madvise provides a way to tell the kernel in case a buffers contents
- * can be discarded under memory pressure, which is useful for userspace
- * bo cache where we want to optimistically hold on to buffer allocate
- * and potential mmap, but allow the pages to be discarded under memory
- * pressure.
- *
- * Typical usage would involve madvise(DONTNEED) when buffer enters BO
- * cache, and madvise(WILLNEED) if trying to recycle buffer from BO cache.
- * In the WILLNEED case, 'retained' indicates to userspace whether the
- * backing pages still exist.
- */
-#define MSM_MADV_WILLNEED 0 /* backing pages are needed, status returned in 'retained' */
-#define MSM_MADV_DONTNEED 1 /* backing pages not needed */
-#define __MSM_MADV_PURGED 2 /* internal state */
-
-struct drm_msm_gem_madvise {
- __u32 handle; /* in, GEM handle */
- __u32 madv; /* in, MSM_MADV_x */
- __u32 retained; /* out, whether backing store still exists */
-};
-
-/*
- * Draw queues allow the user to set specific submission parameter. Command
- * submissions specify a specific submitqueue to use. ID 0 is reserved for
- * backwards compatibility as a "default" submitqueue
- */
-
-#define MSM_SUBMITQUEUE_FLAGS (0)
-
-struct drm_msm_submitqueue {
- __u32 flags; /* in, MSM_SUBMITQUEUE_x */
- __u32 prio; /* in, Priority level */
- __u32 id; /* out, identifier */
-};
-
-#define DRM_MSM_GET_PARAM 0x00
-/* placeholder:
-#define DRM_MSM_SET_PARAM 0x01
- */
-#define DRM_MSM_GEM_NEW 0x02
-#define DRM_MSM_GEM_INFO 0x03
-#define DRM_MSM_GEM_CPU_PREP 0x04
-#define DRM_MSM_GEM_CPU_FINI 0x05
-#define DRM_MSM_GEM_SUBMIT 0x06
-#define DRM_MSM_WAIT_FENCE 0x07
-#define DRM_MSM_GEM_MADVISE 0x08
-/* placeholder:
-#define DRM_MSM_GEM_SVM_NEW 0x09
- */
-#define DRM_MSM_SUBMITQUEUE_NEW 0x0A
-#define DRM_MSM_SUBMITQUEUE_CLOSE 0x0B
-
-#define DRM_IOCTL_MSM_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GET_PARAM, struct drm_msm_param)
-#define DRM_IOCTL_MSM_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_NEW, struct drm_msm_gem_new)
-#define DRM_IOCTL_MSM_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_INFO, struct drm_msm_gem_info)
-#define DRM_IOCTL_MSM_GEM_CPU_PREP DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_PREP, struct drm_msm_gem_cpu_prep)
-#define DRM_IOCTL_MSM_GEM_CPU_FINI DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_FINI, struct drm_msm_gem_cpu_fini)
-#define DRM_IOCTL_MSM_GEM_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_SUBMIT, struct drm_msm_gem_submit)
-#define DRM_IOCTL_MSM_WAIT_FENCE DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_WAIT_FENCE, struct drm_msm_wait_fence)
-#define DRM_IOCTL_MSM_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_MADVISE, struct drm_msm_gem_madvise)
-#define DRM_IOCTL_MSM_SUBMITQUEUE_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_NEW, struct drm_msm_submitqueue)
-#define DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_CLOSE, __u32)
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* __MSM_DRM_H__ */
diff --git a/libdrm/libdrm/nouveau/nouveau.h b/libdrm/libdrm/nouveau/nouveau.h
deleted file mode 100644
index 0c632fe..0000000
--- a/libdrm/libdrm/nouveau/nouveau.h
+++ /dev/null
@@ -1,280 +0,0 @@
-#ifndef __NOUVEAU_H__
-#define __NOUVEAU_H__
-
-#include <stdint.h>
-#include <stdbool.h>
-
-/* Supported class information, provided by the kernel */
-struct nouveau_sclass {
- int32_t oclass;
- int minver;
- int maxver;
-};
-
-/* Client-provided array describing class versions that are desired.
- *
- * These are used to match against the kernel's list of supported classes.
- */
-struct nouveau_mclass {
- int32_t oclass;
- int version;
- void *data;
-};
-
-struct nouveau_object {
- struct nouveau_object *parent;
- uint64_t handle;
- uint32_t oclass;
- uint32_t length; /* deprecated */
- void *data; /* deprecated */
-};
-
-int nouveau_object_new(struct nouveau_object *parent, uint64_t handle,
- uint32_t oclass, void *data, uint32_t length,
- struct nouveau_object **);
-void nouveau_object_del(struct nouveau_object **);
-int nouveau_object_mthd(struct nouveau_object *, uint32_t mthd,
- void *data, uint32_t size);
-int nouveau_object_sclass_get(struct nouveau_object *,
- struct nouveau_sclass **);
-void nouveau_object_sclass_put(struct nouveau_sclass **);
-int nouveau_object_mclass(struct nouveau_object *,
- const struct nouveau_mclass *);
-
-struct nouveau_drm {
- struct nouveau_object client;
- int fd;
- uint32_t version;
- bool nvif;
-};
-
-static inline struct nouveau_drm *
-nouveau_drm(struct nouveau_object *obj)
-{
- while (obj && obj->parent)
- obj = obj->parent;
- return (struct nouveau_drm *)obj;
-}
-
-int nouveau_drm_new(int fd, struct nouveau_drm **);
-void nouveau_drm_del(struct nouveau_drm **);
-
-struct nouveau_device {
- struct nouveau_object object;
- int fd; /* deprecated */
- uint32_t lib_version; /* deprecated */
- uint32_t drm_version; /* deprecated */
- uint32_t chipset;
- uint64_t vram_size;
- uint64_t gart_size;
- uint64_t vram_limit;
- uint64_t gart_limit;
-};
-
-int nouveau_device_new(struct nouveau_object *parent, int32_t oclass,
- void *data, uint32_t size, struct nouveau_device **);
-void nouveau_device_del(struct nouveau_device **);
-
-int nouveau_getparam(struct nouveau_device *, uint64_t param, uint64_t *value);
-int nouveau_setparam(struct nouveau_device *, uint64_t param, uint64_t value);
-
-/* deprecated */
-int nouveau_device_wrap(int fd, int close, struct nouveau_device **);
-int nouveau_device_open(const char *busid, struct nouveau_device **);
-
-struct nouveau_client {
- struct nouveau_device *device;
- int id;
-};
-
-int nouveau_client_new(struct nouveau_device *, struct nouveau_client **);
-void nouveau_client_del(struct nouveau_client **);
-
-union nouveau_bo_config {
- struct {
-#define NV04_BO_16BPP 0x00000001
-#define NV04_BO_32BPP 0x00000002
-#define NV04_BO_ZETA 0x00000004
- uint32_t surf_flags;
- uint32_t surf_pitch;
- } nv04;
- struct {
- uint32_t memtype;
- uint32_t tile_mode;
- } nv50;
- struct {
- uint32_t memtype;
- uint32_t tile_mode;
- } nvc0;
- uint32_t data[8];
-};
-
-#define NOUVEAU_BO_VRAM 0x00000001
-#define NOUVEAU_BO_GART 0x00000002
-#define NOUVEAU_BO_APER (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART)
-#define NOUVEAU_BO_RD 0x00000100
-#define NOUVEAU_BO_WR 0x00000200
-#define NOUVEAU_BO_RDWR (NOUVEAU_BO_RD | NOUVEAU_BO_WR)
-#define NOUVEAU_BO_NOBLOCK 0x00000400
-#define NOUVEAU_BO_LOW 0x00001000
-#define NOUVEAU_BO_HIGH 0x00002000
-#define NOUVEAU_BO_OR 0x00004000
-#define NOUVEAU_BO_MAP 0x80000000
-#define NOUVEAU_BO_CONTIG 0x40000000
-#define NOUVEAU_BO_NOSNOOP 0x20000000
-#define NOUVEAU_BO_COHERENT 0x10000000
-
-struct nouveau_bo {
- struct nouveau_device *device;
- uint32_t handle;
- uint64_t size;
- uint32_t flags;
- uint64_t offset;
- void *map;
- union nouveau_bo_config config;
-};
-
-int nouveau_bo_new(struct nouveau_device *, uint32_t flags, uint32_t align,
- uint64_t size, union nouveau_bo_config *,
- struct nouveau_bo **);
-int nouveau_bo_wrap(struct nouveau_device *, uint32_t handle,
- struct nouveau_bo **);
-int nouveau_bo_name_ref(struct nouveau_device *v, uint32_t name,
- struct nouveau_bo **);
-int nouveau_bo_name_get(struct nouveau_bo *, uint32_t *name);
-void nouveau_bo_ref(struct nouveau_bo *, struct nouveau_bo **);
-int nouveau_bo_map(struct nouveau_bo *, uint32_t access,
- struct nouveau_client *);
-int nouveau_bo_wait(struct nouveau_bo *, uint32_t access,
- struct nouveau_client *);
-int nouveau_bo_prime_handle_ref(struct nouveau_device *, int prime_fd,
- struct nouveau_bo **);
-int nouveau_bo_set_prime(struct nouveau_bo *, int *prime_fd);
-
-struct nouveau_list {
- struct nouveau_list *prev;
- struct nouveau_list *next;
-};
-
-struct nouveau_bufref {
- struct nouveau_list thead;
- struct nouveau_bo *bo;
- uint32_t packet;
- uint32_t flags;
- uint32_t data;
- uint32_t vor;
- uint32_t tor;
- uint32_t priv_data;
- void *priv;
-};
-
-struct nouveau_bufctx {
- struct nouveau_client *client;
- struct nouveau_list head;
- struct nouveau_list pending;
- struct nouveau_list current;
- int relocs;
-};
-
-int nouveau_bufctx_new(struct nouveau_client *, int bins,
- struct nouveau_bufctx **);
-void nouveau_bufctx_del(struct nouveau_bufctx **);
-struct nouveau_bufref *
-nouveau_bufctx_refn(struct nouveau_bufctx *, int bin,
- struct nouveau_bo *, uint32_t flags);
-struct nouveau_bufref *
-nouveau_bufctx_mthd(struct nouveau_bufctx *, int bin, uint32_t packet,
- struct nouveau_bo *, uint64_t data, uint32_t flags,
- uint32_t vor, uint32_t tor);
-void nouveau_bufctx_reset(struct nouveau_bufctx *, int bin);
-
-struct nouveau_pushbuf_krec;
-struct nouveau_pushbuf {
- struct nouveau_client *client;
- struct nouveau_object *channel;
- struct nouveau_bufctx *bufctx;
- void (*kick_notify)(struct nouveau_pushbuf *);
- void *user_priv;
- uint32_t rsvd_kick;
- uint32_t flags;
- uint32_t *cur;
- uint32_t *end;
-};
-
-struct nouveau_pushbuf_refn {
- struct nouveau_bo *bo;
- uint32_t flags;
-};
-
-int nouveau_pushbuf_new(struct nouveau_client *, struct nouveau_object *chan,
- int nr, uint32_t size, bool immediate,
- struct nouveau_pushbuf **);
-void nouveau_pushbuf_del(struct nouveau_pushbuf **);
-int nouveau_pushbuf_space(struct nouveau_pushbuf *, uint32_t dwords,
- uint32_t relocs, uint32_t pushes);
-void nouveau_pushbuf_data(struct nouveau_pushbuf *, struct nouveau_bo *,
- uint64_t offset, uint64_t length);
-int nouveau_pushbuf_refn(struct nouveau_pushbuf *,
- struct nouveau_pushbuf_refn *, int nr);
-/* Emits a reloc into the push buffer at the current position, you *must*
- * have previously added the referenced buffer to a buffer context, and
- * validated it against the current push buffer.
- */
-void nouveau_pushbuf_reloc(struct nouveau_pushbuf *, struct nouveau_bo *,
- uint32_t data, uint32_t flags,
- uint32_t vor, uint32_t tor);
-int nouveau_pushbuf_validate(struct nouveau_pushbuf *);
-uint32_t nouveau_pushbuf_refd(struct nouveau_pushbuf *, struct nouveau_bo *);
-int nouveau_pushbuf_kick(struct nouveau_pushbuf *, struct nouveau_object *chan);
-struct nouveau_bufctx *
-nouveau_pushbuf_bufctx(struct nouveau_pushbuf *, struct nouveau_bufctx *);
-
-#define NOUVEAU_DEVICE_CLASS 0x80000000
-#define NOUVEAU_FIFO_CHANNEL_CLASS 0x80000001
-#define NOUVEAU_NOTIFIER_CLASS 0x80000002
-
-struct nouveau_fifo {
- struct nouveau_object *object;
- uint32_t channel;
- uint32_t pushbuf;
- uint64_t unused1[3];
-};
-
-struct nv04_fifo {
- struct nouveau_fifo base;
- uint32_t vram;
- uint32_t gart;
- uint32_t notify;
-};
-
-struct nvc0_fifo {
- struct nouveau_fifo base;
- uint32_t notify;
-};
-
-#define NVE0_FIFO_ENGINE_GR 0x00000001
-#define NVE0_FIFO_ENGINE_VP 0x00000002
-#define NVE0_FIFO_ENGINE_PPP 0x00000004
-#define NVE0_FIFO_ENGINE_BSP 0x00000008
-#define NVE0_FIFO_ENGINE_CE0 0x00000010
-#define NVE0_FIFO_ENGINE_CE1 0x00000020
-#define NVE0_FIFO_ENGINE_ENC 0x00000040
-
-struct nve0_fifo {
- struct {
- struct nouveau_fifo base;
- uint32_t notify;
- };
- uint32_t engine;
-};
-
-struct nv04_notify {
- struct nouveau_object *object;
- uint32_t offset;
- uint32_t length;
-};
-
-bool
-nouveau_check_dead_channel(struct nouveau_drm *, struct nouveau_object *chan);
-
-#endif
diff --git a/libdrm/libdrm/nouveau/nvif/cl0080.h b/libdrm/libdrm/nouveau/nvif/cl0080.h
deleted file mode 100644
index 331620a..0000000
--- a/libdrm/libdrm/nouveau/nvif/cl0080.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef __NVIF_CL0080_H__
-#define __NVIF_CL0080_H__
-
-struct nv_device_v0 {
- __u8 version;
- __u8 pad01[7];
- __u64 device; /* device identifier, ~0 for client default */
-};
-
-#define NV_DEVICE_V0_INFO 0x00
-#define NV_DEVICE_V0_TIME 0x01
-
-struct nv_device_info_v0 {
- __u8 version;
-#define NV_DEVICE_INFO_V0_IGP 0x00
-#define NV_DEVICE_INFO_V0_PCI 0x01
-#define NV_DEVICE_INFO_V0_AGP 0x02
-#define NV_DEVICE_INFO_V0_PCIE 0x03
-#define NV_DEVICE_INFO_V0_SOC 0x04
- __u8 platform;
- __u16 chipset; /* from NV_PMC_BOOT_0 */
- __u8 revision; /* from NV_PMC_BOOT_0 */
-#define NV_DEVICE_INFO_V0_TNT 0x01
-#define NV_DEVICE_INFO_V0_CELSIUS 0x02
-#define NV_DEVICE_INFO_V0_KELVIN 0x03
-#define NV_DEVICE_INFO_V0_RANKINE 0x04
-#define NV_DEVICE_INFO_V0_CURIE 0x05
-#define NV_DEVICE_INFO_V0_TESLA 0x06
-#define NV_DEVICE_INFO_V0_FERMI 0x07
-#define NV_DEVICE_INFO_V0_KEPLER 0x08
-#define NV_DEVICE_INFO_V0_MAXWELL 0x09
- __u8 family;
- __u8 pad06[2];
- __u64 ram_size;
- __u64 ram_user;
- char chip[16];
- char name[64];
-};
-
-struct nv_device_time_v0 {
- __u8 version;
- __u8 pad01[7];
- __u64 time;
-};
-#endif
diff --git a/libdrm/libdrm/nouveau/nvif/cl9097.h b/libdrm/libdrm/nouveau/nvif/cl9097.h
deleted file mode 100644
index 4057676..0000000
--- a/libdrm/libdrm/nouveau/nvif/cl9097.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __NVIF_CL9097_H__
-#define __NVIF_CL9097_H__
-
-#define FERMI_A_ZBC_COLOR 0x00
-#define FERMI_A_ZBC_DEPTH 0x01
-
-struct fermi_a_zbc_color_v0 {
- __u8 version;
-#define FERMI_A_ZBC_COLOR_V0_FMT_ZERO 0x01
-#define FERMI_A_ZBC_COLOR_V0_FMT_UNORM_ONE 0x02
-#define FERMI_A_ZBC_COLOR_V0_FMT_RF32_GF32_BF32_AF32 0x04
-#define FERMI_A_ZBC_COLOR_V0_FMT_R16_G16_B16_A16 0x08
-#define FERMI_A_ZBC_COLOR_V0_FMT_RN16_GN16_BN16_AN16 0x0c
-#define FERMI_A_ZBC_COLOR_V0_FMT_RS16_GS16_BS16_AS16 0x10
-#define FERMI_A_ZBC_COLOR_V0_FMT_RU16_GU16_BU16_AU16 0x14
-#define FERMI_A_ZBC_COLOR_V0_FMT_RF16_GF16_BF16_AF16 0x16
-#define FERMI_A_ZBC_COLOR_V0_FMT_A8R8G8B8 0x18
-#define FERMI_A_ZBC_COLOR_V0_FMT_A8RL8GL8BL8 0x1c
-#define FERMI_A_ZBC_COLOR_V0_FMT_A2B10G10R10 0x20
-#define FERMI_A_ZBC_COLOR_V0_FMT_AU2BU10GU10RU10 0x24
-#define FERMI_A_ZBC_COLOR_V0_FMT_A8B8G8R8 0x28
-#define FERMI_A_ZBC_COLOR_V0_FMT_A8BL8GL8RL8 0x2c
-#define FERMI_A_ZBC_COLOR_V0_FMT_AN8BN8GN8RN8 0x30
-#define FERMI_A_ZBC_COLOR_V0_FMT_AS8BS8GS8RS8 0x34
-#define FERMI_A_ZBC_COLOR_V0_FMT_AU8BU8GU8RU8 0x38
-#define FERMI_A_ZBC_COLOR_V0_FMT_A2R10G10B10 0x3c
-#define FERMI_A_ZBC_COLOR_V0_FMT_BF10GF11RF11 0x40
- __u8 format;
- __u8 index;
- __u8 pad03[5];
- __u32 ds[4];
- __u32 l2[4];
-};
-
-struct fermi_a_zbc_depth_v0 {
- __u8 version;
-#define FERMI_A_ZBC_DEPTH_V0_FMT_FP32 0x01
- __u8 format;
- __u8 index;
- __u8 pad03[5];
- __u32 ds;
- __u32 l2;
-};
-#endif
diff --git a/libdrm/libdrm/nouveau/nvif/class.h b/libdrm/libdrm/nouveau/nvif/class.h
deleted file mode 100644
index 4179cd6..0000000
--- a/libdrm/libdrm/nouveau/nvif/class.h
+++ /dev/null
@@ -1,141 +0,0 @@
-#ifndef __NVIF_CLASS_H__
-#define __NVIF_CLASS_H__
-
-/* these class numbers are made up by us, and not nvidia-assigned */
-#define NVIF_CLASS_CONTROL /* if0001.h */ -1
-#define NVIF_CLASS_PERFMON /* if0002.h */ -2
-#define NVIF_CLASS_PERFDOM /* if0003.h */ -3
-#define NVIF_CLASS_SW_NV04 /* if0004.h */ -4
-#define NVIF_CLASS_SW_NV10 /* if0005.h */ -5
-#define NVIF_CLASS_SW_NV50 /* if0005.h */ -6
-#define NVIF_CLASS_SW_GF100 /* if0005.h */ -7
-
-/* the below match nvidia-assigned (either in hw, or sw) class numbers */
-#define NV_DEVICE /* cl0080.h */ 0x00000080
-
-#define NV_DMA_FROM_MEMORY /* cl0002.h */ 0x00000002
-#define NV_DMA_TO_MEMORY /* cl0002.h */ 0x00000003
-#define NV_DMA_IN_MEMORY /* cl0002.h */ 0x0000003d
-
-#define FERMI_TWOD_A 0x0000902d
-
-#define FERMI_MEMORY_TO_MEMORY_FORMAT_A 0x00009039
-
-#define KEPLER_INLINE_TO_MEMORY_A 0x0000a040
-#define KEPLER_INLINE_TO_MEMORY_B 0x0000a140
-
-#define NV04_DISP /* cl0046.h */ 0x00000046
-
-#define NV03_CHANNEL_DMA /* cl506b.h */ 0x0000006b
-#define NV10_CHANNEL_DMA /* cl506b.h */ 0x0000006e
-#define NV17_CHANNEL_DMA /* cl506b.h */ 0x0000176e
-#define NV40_CHANNEL_DMA /* cl506b.h */ 0x0000406e
-#define NV50_CHANNEL_DMA /* cl506e.h */ 0x0000506e
-#define G82_CHANNEL_DMA /* cl826e.h */ 0x0000826e
-
-#define NV50_CHANNEL_GPFIFO /* cl506f.h */ 0x0000506f
-#define G82_CHANNEL_GPFIFO /* cl826f.h */ 0x0000826f
-#define FERMI_CHANNEL_GPFIFO /* cl906f.h */ 0x0000906f
-#define KEPLER_CHANNEL_GPFIFO_A /* cla06f.h */ 0x0000a06f
-#define MAXWELL_CHANNEL_GPFIFO_A /* cla06f.h */ 0x0000b06f
-
-#define NV50_DISP /* cl5070.h */ 0x00005070
-#define G82_DISP /* cl5070.h */ 0x00008270
-#define GT200_DISP /* cl5070.h */ 0x00008370
-#define GT214_DISP /* cl5070.h */ 0x00008570
-#define GT206_DISP /* cl5070.h */ 0x00008870
-#define GF110_DISP /* cl5070.h */ 0x00009070
-#define GK104_DISP /* cl5070.h */ 0x00009170
-#define GK110_DISP /* cl5070.h */ 0x00009270
-#define GM107_DISP /* cl5070.h */ 0x00009470
-#define GM204_DISP /* cl5070.h */ 0x00009570
-
-#define NV31_MPEG 0x00003174
-#define G82_MPEG 0x00008274
-
-#define NV74_VP2 0x00007476
-
-#define NV50_DISP_CURSOR /* cl507a.h */ 0x0000507a
-#define G82_DISP_CURSOR /* cl507a.h */ 0x0000827a
-#define GT214_DISP_CURSOR /* cl507a.h */ 0x0000857a
-#define GF110_DISP_CURSOR /* cl507a.h */ 0x0000907a
-#define GK104_DISP_CURSOR /* cl507a.h */ 0x0000917a
-
-#define NV50_DISP_OVERLAY /* cl507b.h */ 0x0000507b
-#define G82_DISP_OVERLAY /* cl507b.h */ 0x0000827b
-#define GT214_DISP_OVERLAY /* cl507b.h */ 0x0000857b
-#define GF110_DISP_OVERLAY /* cl507b.h */ 0x0000907b
-#define GK104_DISP_OVERLAY /* cl507b.h */ 0x0000917b
-
-#define NV50_DISP_BASE_CHANNEL_DMA /* cl507c.h */ 0x0000507c
-#define G82_DISP_BASE_CHANNEL_DMA /* cl507c.h */ 0x0000827c
-#define GT200_DISP_BASE_CHANNEL_DMA /* cl507c.h */ 0x0000837c
-#define GT214_DISP_BASE_CHANNEL_DMA /* cl507c.h */ 0x0000857c
-#define GF110_DISP_BASE_CHANNEL_DMA /* cl507c.h */ 0x0000907c
-#define GK104_DISP_BASE_CHANNEL_DMA /* cl507c.h */ 0x0000917c
-#define GK110_DISP_BASE_CHANNEL_DMA /* cl507c.h */ 0x0000927c
-
-#define NV50_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000507d
-#define G82_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000827d
-#define GT200_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000837d
-#define GT214_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000857d
-#define GT206_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000887d
-#define GF110_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000907d
-#define GK104_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000917d
-#define GK110_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000927d
-#define GM107_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000947d
-#define GM204_DISP_CORE_CHANNEL_DMA /* cl507d.h */ 0x0000957d
-
-#define NV50_DISP_OVERLAY_CHANNEL_DMA /* cl507e.h */ 0x0000507e
-#define G82_DISP_OVERLAY_CHANNEL_DMA /* cl507e.h */ 0x0000827e
-#define GT200_DISP_OVERLAY_CHANNEL_DMA /* cl507e.h */ 0x0000837e
-#define GT214_DISP_OVERLAY_CHANNEL_DMA /* cl507e.h */ 0x0000857e
-#define GF110_DISP_OVERLAY_CONTROL_DMA /* cl507e.h */ 0x0000907e
-#define GK104_DISP_OVERLAY_CONTROL_DMA /* cl507e.h */ 0x0000917e
-
-#define FERMI_A /* cl9097.h */ 0x00009097
-#define FERMI_B /* cl9097.h */ 0x00009197
-#define FERMI_C /* cl9097.h */ 0x00009297
-
-#define KEPLER_A /* cl9097.h */ 0x0000a097
-#define KEPLER_B /* cl9097.h */ 0x0000a197
-#define KEPLER_C /* cl9097.h */ 0x0000a297
-
-#define MAXWELL_A /* cl9097.h */ 0x0000b097
-#define MAXWELL_B /* cl9097.h */ 0x0000b197
-
-#define NV74_BSP 0x000074b0
-
-#define GT212_MSVLD 0x000085b1
-#define IGT21A_MSVLD 0x000086b1
-#define G98_MSVLD 0x000088b1
-#define GF100_MSVLD 0x000090b1
-#define GK104_MSVLD 0x000095b1
-
-#define GT212_MSPDEC 0x000085b2
-#define G98_MSPDEC 0x000088b2
-#define GF100_MSPDEC 0x000090b2
-#define GK104_MSPDEC 0x000095b2
-
-#define GT212_MSPPP 0x000085b3
-#define G98_MSPPP 0x000088b3
-#define GF100_MSPPP 0x000090b3
-
-#define G98_SEC 0x000088b4
-
-#define GT212_DMA 0x000085b5
-#define FERMI_DMA 0x000090b5
-#define KEPLER_DMA_COPY_A 0x0000a0b5
-#define MAXWELL_DMA_COPY_A 0x0000b0b5
-
-#define FERMI_DECOMPRESS 0x000090b8
-
-#define FERMI_COMPUTE_A 0x000090c0
-#define FERMI_COMPUTE_B 0x000091c0
-#define KEPLER_COMPUTE_A 0x0000a0c0
-#define KEPLER_COMPUTE_B 0x0000a1c0
-#define MAXWELL_COMPUTE_A 0x0000b0c0
-#define MAXWELL_COMPUTE_B 0x0000b1c0
-
-#define NV74_CIPHER 0x000074c1
-#endif
diff --git a/libdrm/libdrm/nouveau/nvif/if0002.h b/libdrm/libdrm/nouveau/nvif/if0002.h
deleted file mode 100644
index c04c91d..0000000
--- a/libdrm/libdrm/nouveau/nvif/if0002.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef __NVIF_IF0002_H__
-#define __NVIF_IF0002_H__
-
-#define NVIF_PERFMON_V0_QUERY_DOMAIN 0x00
-#define NVIF_PERFMON_V0_QUERY_SIGNAL 0x01
-#define NVIF_PERFMON_V0_QUERY_SOURCE 0x02
-
-struct nvif_perfmon_query_domain_v0 {
- __u8 version;
- __u8 id;
- __u8 counter_nr;
- __u8 iter;
- __u16 signal_nr;
- __u8 pad05[2];
- char name[64];
-};
-
-struct nvif_perfmon_query_signal_v0 {
- __u8 version;
- __u8 domain;
- __u16 iter;
- __u8 signal;
- __u8 source_nr;
- __u8 pad05[2];
- char name[64];
-};
-
-struct nvif_perfmon_query_source_v0 {
- __u8 version;
- __u8 domain;
- __u8 signal;
- __u8 iter;
- __u8 pad04[4];
- __u32 source;
- __u32 mask;
- char name[64];
-};
-#endif
diff --git a/libdrm/libdrm/nouveau/nvif/if0003.h b/libdrm/libdrm/nouveau/nvif/if0003.h
deleted file mode 100644
index 0cd03ef..0000000
--- a/libdrm/libdrm/nouveau/nvif/if0003.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef __NVIF_IF0003_H__
-#define __NVIF_IF0003_H__
-
-struct nvif_perfdom_v0 {
- __u8 version;
- __u8 domain;
- __u8 mode;
- __u8 pad03[1];
- struct {
- __u8 signal[4];
- __u64 source[4][8];
- __u16 logic_op;
- } ctr[4];
-};
-
-#define NVIF_PERFDOM_V0_INIT 0x00
-#define NVIF_PERFDOM_V0_SAMPLE 0x01
-#define NVIF_PERFDOM_V0_READ 0x02
-
-struct nvif_perfdom_init {
-};
-
-struct nvif_perfdom_sample {
-};
-
-struct nvif_perfdom_read_v0 {
- __u8 version;
- __u8 pad01[7];
- __u32 ctr[4];
- __u32 clk;
- __u8 pad04[4];
-};
-#endif
diff --git a/libdrm/libdrm/nouveau/nvif/ioctl.h b/libdrm/libdrm/nouveau/nvif/ioctl.h
deleted file mode 100644
index c5f5eb8..0000000
--- a/libdrm/libdrm/nouveau/nvif/ioctl.h
+++ /dev/null
@@ -1,132 +0,0 @@
-#ifndef __NVIF_IOCTL_H__
-#define __NVIF_IOCTL_H__
-
-#define NVIF_VERSION_LATEST 0x0000000000000000ULL
-
-struct nvif_ioctl_v0 {
- __u8 version;
-#define NVIF_IOCTL_V0_NOP 0x00
-#define NVIF_IOCTL_V0_SCLASS 0x01
-#define NVIF_IOCTL_V0_NEW 0x02
-#define NVIF_IOCTL_V0_DEL 0x03
-#define NVIF_IOCTL_V0_MTHD 0x04
-#define NVIF_IOCTL_V0_RD 0x05
-#define NVIF_IOCTL_V0_WR 0x06
-#define NVIF_IOCTL_V0_MAP 0x07
-#define NVIF_IOCTL_V0_UNMAP 0x08
-#define NVIF_IOCTL_V0_NTFY_NEW 0x09
-#define NVIF_IOCTL_V0_NTFY_DEL 0x0a
-#define NVIF_IOCTL_V0_NTFY_GET 0x0b
-#define NVIF_IOCTL_V0_NTFY_PUT 0x0c
- __u8 type;
- __u8 pad02[4];
-#define NVIF_IOCTL_V0_OWNER_NVIF 0x00
-#define NVIF_IOCTL_V0_OWNER_ANY 0xff
- __u8 owner;
-#define NVIF_IOCTL_V0_ROUTE_NVIF 0x00
-#define NVIF_IOCTL_V0_ROUTE_HIDDEN 0xff
- __u8 route;
- __u64 token;
- __u64 object;
- __u8 data[]; /* ioctl data (below) */
-};
-
-struct nvif_ioctl_nop_v0 {
- __u64 version;
-};
-
-struct nvif_ioctl_sclass_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 count;
- __u8 pad02[6];
- struct nvif_ioctl_sclass_oclass_v0 {
- __s32 oclass;
- __s16 minver;
- __s16 maxver;
- } oclass[];
-};
-
-struct nvif_ioctl_new_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 pad01[6];
- __u8 route;
- __u64 token;
- __u64 object;
- __u32 handle;
- __s32 oclass;
- __u8 data[]; /* class data (class.h) */
-};
-
-struct nvif_ioctl_del {
-};
-
-struct nvif_ioctl_rd_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 size;
- __u8 pad02[2];
- __u32 data;
- __u64 addr;
-};
-
-struct nvif_ioctl_wr_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 size;
- __u8 pad02[2];
- __u32 data;
- __u64 addr;
-};
-
-struct nvif_ioctl_map_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 pad01[3];
- __u32 length;
- __u64 handle;
-};
-
-struct nvif_ioctl_unmap {
-};
-
-struct nvif_ioctl_ntfy_new_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 event;
- __u8 index;
- __u8 pad03[5];
- __u8 data[]; /* event request data (event.h) */
-};
-
-struct nvif_ioctl_ntfy_del_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 index;
- __u8 pad02[6];
-};
-
-struct nvif_ioctl_ntfy_get_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 index;
- __u8 pad02[6];
-};
-
-struct nvif_ioctl_ntfy_put_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 index;
- __u8 pad02[6];
-};
-
-struct nvif_ioctl_mthd_v0 {
- /* nvif_ioctl ... */
- __u8 version;
- __u8 method;
- __u8 pad02[6];
- __u8 data[]; /* method data (class.h) */
-};
-
-#endif
diff --git a/libdrm/libdrm/nouveau/nvif/unpack.h b/libdrm/libdrm/nouveau/nvif/unpack.h
deleted file mode 100644
index 751bcf4..0000000
--- a/libdrm/libdrm/nouveau/nvif/unpack.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __NVIF_UNPACK_H__
-#define __NVIF_UNPACK_H__
-
-#define nvif_unvers(r,d,s,m) ({ \
- void **_data = (d); __u32 *_size = (s); int _ret = (r); \
- if (_ret == -ENOSYS && *_size == sizeof(m)) { \
- *_data = NULL; \
- *_size = _ret = 0; \
- } \
- _ret; \
-})
-
-#define nvif_unpack(r,d,s,m,vl,vh,x) ({ \
- void **_data = (d); __u32 *_size = (s); \
- int _ret = (r), _vl = (vl), _vh = (vh); \
- if (_ret == -ENOSYS && *_size >= sizeof(m) && \
- (m).version >= _vl && (m).version <= _vh) { \
- *_data = (__u8 *)*_data + sizeof(m); \
- *_size = *_size - sizeof(m); \
- if (_ret = 0, !(x)) { \
- _ret = *_size ? -E2BIG : 0; \
- *_data = NULL; \
- *_size = 0; \
- } \
- } \
- _ret; \
-})
-#endif
diff --git a/libdrm/libdrm/nouveau_drm.h b/libdrm/libdrm/nouveau_drm.h
deleted file mode 100644
index 4f94148..0000000
--- a/libdrm/libdrm/nouveau_drm.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * Copyright 2005 Stephane Marchesin.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __NOUVEAU_DRM_H__
-#define __NOUVEAU_DRM_H__
-
-#define NOUVEAU_DRM_HEADER_PATCHLEVEL 16
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-struct drm_nouveau_channel_alloc {
- uint32_t fb_ctxdma_handle;
- uint32_t tt_ctxdma_handle;
-
- int channel;
- uint32_t pushbuf_domains;
-
- /* Notifier memory */
- uint32_t notifier_handle;
-
- /* DRM-enforced subchannel assignments */
- struct {
- uint32_t handle;
- uint32_t grclass;
- } subchan[8];
- uint32_t nr_subchan;
-};
-
-struct drm_nouveau_channel_free {
- int channel;
-};
-
-struct drm_nouveau_grobj_alloc {
- int channel;
- uint32_t handle;
- int class;
-};
-
-struct drm_nouveau_notifierobj_alloc {
- uint32_t channel;
- uint32_t handle;
- uint32_t size;
- uint32_t offset;
-};
-
-struct drm_nouveau_gpuobj_free {
- int channel;
- uint32_t handle;
-};
-
-#define NOUVEAU_GETPARAM_PCI_VENDOR 3
-#define NOUVEAU_GETPARAM_PCI_DEVICE 4
-#define NOUVEAU_GETPARAM_BUS_TYPE 5
-#define NOUVEAU_GETPARAM_FB_SIZE 8
-#define NOUVEAU_GETPARAM_AGP_SIZE 9
-#define NOUVEAU_GETPARAM_CHIPSET_ID 11
-#define NOUVEAU_GETPARAM_VM_VRAM_BASE 12
-#define NOUVEAU_GETPARAM_GRAPH_UNITS 13
-#define NOUVEAU_GETPARAM_PTIMER_TIME 14
-#define NOUVEAU_GETPARAM_HAS_BO_USAGE 15
-#define NOUVEAU_GETPARAM_HAS_PAGEFLIP 16
-struct drm_nouveau_getparam {
- uint64_t param;
- uint64_t value;
-};
-
-struct drm_nouveau_setparam {
- uint64_t param;
- uint64_t value;
-};
-
-#define NOUVEAU_GEM_DOMAIN_CPU (1 << 0)
-#define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1)
-#define NOUVEAU_GEM_DOMAIN_GART (1 << 2)
-#define NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3)
-#define NOUVEAU_GEM_DOMAIN_COHERENT (1 << 4)
-
-#define NOUVEAU_GEM_TILE_COMP 0x00030000 /* nv50-only */
-#define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00
-#define NOUVEAU_GEM_TILE_16BPP 0x00000001
-#define NOUVEAU_GEM_TILE_32BPP 0x00000002
-#define NOUVEAU_GEM_TILE_ZETA 0x00000004
-#define NOUVEAU_GEM_TILE_NONCONTIG 0x00000008
-
-struct drm_nouveau_gem_info {
- __u32 handle;
- __u32 domain;
- __u64 size;
- __u64 offset;
- __u64 map_handle;
- __u32 tile_mode;
- __u32 tile_flags;
-};
-
-struct drm_nouveau_gem_new {
- struct drm_nouveau_gem_info info;
- __u32 channel_hint;
- __u32 align;
-};
-
-#define NOUVEAU_GEM_MAX_BUFFERS 1024
-struct drm_nouveau_gem_pushbuf_bo_presumed {
- __u32 valid;
- __u32 domain;
- __u64 offset;
-};
-
-struct drm_nouveau_gem_pushbuf_bo {
- __u64 user_priv;
- __u32 handle;
- __u32 read_domains;
- __u32 write_domains;
- __u32 valid_domains;
- struct drm_nouveau_gem_pushbuf_bo_presumed presumed;
-};
-
-#define NOUVEAU_GEM_RELOC_LOW (1 << 0)
-#define NOUVEAU_GEM_RELOC_HIGH (1 << 1)
-#define NOUVEAU_GEM_RELOC_OR (1 << 2)
-#define NOUVEAU_GEM_MAX_RELOCS 1024
-struct drm_nouveau_gem_pushbuf_reloc {
- __u32 reloc_bo_index;
- __u32 reloc_bo_offset;
- __u32 bo_index;
- __u32 flags;
- __u32 data;
- __u32 vor;
- __u32 tor;
-};
-
-#define NOUVEAU_GEM_MAX_PUSH 512
-struct drm_nouveau_gem_pushbuf_push {
- __u32 bo_index;
- __u32 pad;
- __u64 offset;
- __u64 length;
-};
-
-struct drm_nouveau_gem_pushbuf {
- __u32 channel;
- __u32 nr_buffers;
- __u64 buffers;
- __u32 nr_relocs;
- __u32 nr_push;
- __u64 relocs;
- __u64 push;
- __u32 suffix0;
- __u32 suffix1;
-#define NOUVEAU_GEM_PUSHBUF_SYNC (1ULL << 0)
- __u64 vram_available;
- __u64 gart_available;
-};
-
-#define NOUVEAU_GEM_CPU_PREP_NOWAIT 0x00000001
-#define NOUVEAU_GEM_CPU_PREP_WRITE 0x00000004
-struct drm_nouveau_gem_cpu_prep {
- __u32 handle;
- __u32 flags;
-};
-
-struct drm_nouveau_gem_cpu_fini {
- __u32 handle;
-};
-
-#define DRM_NOUVEAU_GETPARAM 0x00 /* deprecated */
-#define DRM_NOUVEAU_SETPARAM 0x01 /* deprecated */
-#define DRM_NOUVEAU_CHANNEL_ALLOC 0x02 /* deprecated */
-#define DRM_NOUVEAU_CHANNEL_FREE 0x03 /* deprecated */
-#define DRM_NOUVEAU_GROBJ_ALLOC 0x04 /* deprecated */
-#define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC 0x05 /* deprecated */
-#define DRM_NOUVEAU_GPUOBJ_FREE 0x06 /* deprecated */
-#define DRM_NOUVEAU_NVIF 0x07
-#define DRM_NOUVEAU_SVM_INIT 0x08
-#define DRM_NOUVEAU_SVM_BIND 0x09
-#define DRM_NOUVEAU_GEM_NEW 0x40
-#define DRM_NOUVEAU_GEM_PUSHBUF 0x41
-#define DRM_NOUVEAU_GEM_CPU_PREP 0x42
-#define DRM_NOUVEAU_GEM_CPU_FINI 0x43
-#define DRM_NOUVEAU_GEM_INFO 0x44
-
-struct drm_nouveau_svm_init {
- __u64 unmanaged_addr;
- __u64 unmanaged_size;
-};
-
-struct drm_nouveau_svm_bind {
- __u64 header;
- __u64 va_start;
- __u64 va_end;
- __u64 npages;
- __u64 stride;
- __u64 result;
- __u64 reserved0;
- __u64 reserved1;
-};
-
-#define NOUVEAU_SVM_BIND_COMMAND_SHIFT 0
-#define NOUVEAU_SVM_BIND_COMMAND_BITS 8
-#define NOUVEAU_SVM_BIND_COMMAND_MASK ((1 << 8) - 1)
-#define NOUVEAU_SVM_BIND_PRIORITY_SHIFT 8
-#define NOUVEAU_SVM_BIND_PRIORITY_BITS 8
-#define NOUVEAU_SVM_BIND_PRIORITY_MASK ((1 << 8) - 1)
-#define NOUVEAU_SVM_BIND_TARGET_SHIFT 16
-#define NOUVEAU_SVM_BIND_TARGET_BITS 32
-#define NOUVEAU_SVM_BIND_TARGET_MASK 0xffffffff
-
-/*
- * Below is use to validate ioctl argument, userspace can also use it to make
- * sure that no bit are set beyond known fields for a given kernel version.
- */
-#define NOUVEAU_SVM_BIND_VALID_BITS 48
-#define NOUVEAU_SVM_BIND_VALID_MASK ((1ULL << NOUVEAU_SVM_BIND_VALID_BITS) - 1)
-
-
-/*
- * NOUVEAU_BIND_COMMAND__MIGRATE: synchronous migrate to target memory.
- * result: number of page successfuly migrate to the target memory.
- */
-#define NOUVEAU_SVM_BIND_COMMAND__MIGRATE 0
-
-/*
- * NOUVEAU_SVM_BIND_HEADER_TARGET__GPU_VRAM: target the GPU VRAM memory.
- */
-#define NOUVEAU_SVM_BIND_TARGET__GPU_VRAM (1UL << 31)
-
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* __NOUVEAU_DRM_H__ */
diff --git a/libdrm/libdrm/qxl_drm.h b/libdrm/libdrm/qxl_drm.h
deleted file mode 100644
index 880999d..0000000
--- a/libdrm/libdrm/qxl_drm.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright 2013 Red Hat
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-#ifndef QXL_DRM_H
-#define QXL_DRM_H
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Please note that modifications to all structs defined here are
- * subject to backwards-compatibility constraints.
- *
- * Do not use pointers, use __u64 instead for 32 bit / 64 bit user/kernel
- * compatibility Keep fields aligned to their size
- */
-
-#define QXL_GEM_DOMAIN_CPU 0
-#define QXL_GEM_DOMAIN_VRAM 1
-#define QXL_GEM_DOMAIN_SURFACE 2
-
-#define DRM_QXL_ALLOC 0x00
-#define DRM_QXL_MAP 0x01
-#define DRM_QXL_EXECBUFFER 0x02
-#define DRM_QXL_UPDATE_AREA 0x03
-#define DRM_QXL_GETPARAM 0x04
-#define DRM_QXL_CLIENTCAP 0x05
-
-#define DRM_QXL_ALLOC_SURF 0x06
-
-struct drm_qxl_alloc {
- __u32 size;
- __u32 handle; /* 0 is an invalid handle */
-};
-
-struct drm_qxl_map {
- __u64 offset; /* use for mmap system call */
- __u32 handle;
- __u32 pad;
-};
-
-/*
- * dest is the bo we are writing the relocation into
- * src is bo we are relocating.
- * *(dest_handle.base_addr + dest_offset) = physical_address(src_handle.addr +
- * src_offset)
- */
-#define QXL_RELOC_TYPE_BO 1
-#define QXL_RELOC_TYPE_SURF 2
-
-struct drm_qxl_reloc {
- __u64 src_offset; /* offset into src_handle or src buffer */
- __u64 dst_offset; /* offset in dest handle */
- __u32 src_handle; /* dest handle to compute address from */
- __u32 dst_handle; /* 0 if to command buffer */
- __u32 reloc_type;
- __u32 pad;
-};
-
-struct drm_qxl_command {
- __u64 command; /* void* */
- __u64 relocs; /* struct drm_qxl_reloc* */
- __u32 type;
- __u32 command_size;
- __u32 relocs_num;
- __u32 pad;
-};
-
-struct drm_qxl_execbuffer {
- __u32 flags; /* for future use */
- __u32 commands_num;
- __u64 commands; /* struct drm_qxl_command* */
-};
-
-struct drm_qxl_update_area {
- __u32 handle;
- __u32 top;
- __u32 left;
- __u32 bottom;
- __u32 right;
- __u32 pad;
-};
-
-#define QXL_PARAM_NUM_SURFACES 1 /* rom->n_surfaces */
-#define QXL_PARAM_MAX_RELOCS 2
-struct drm_qxl_getparam {
- __u64 param;
- __u64 value;
-};
-
-/* these are one bit values */
-struct drm_qxl_clientcap {
- __u32 index;
- __u32 pad;
-};
-
-struct drm_qxl_alloc_surf {
- __u32 format;
- __u32 width;
- __u32 height;
- __s32 stride;
- __u32 handle;
- __u32 pad;
-};
-
-#define DRM_IOCTL_QXL_ALLOC \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC, struct drm_qxl_alloc)
-
-#define DRM_IOCTL_QXL_MAP \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_MAP, struct drm_qxl_map)
-
-#define DRM_IOCTL_QXL_EXECBUFFER \
- DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_EXECBUFFER,\
- struct drm_qxl_execbuffer)
-
-#define DRM_IOCTL_QXL_UPDATE_AREA \
- DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_UPDATE_AREA,\
- struct drm_qxl_update_area)
-
-#define DRM_IOCTL_QXL_GETPARAM \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_GETPARAM,\
- struct drm_qxl_getparam)
-
-#define DRM_IOCTL_QXL_CLIENTCAP \
- DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_CLIENTCAP,\
- struct drm_qxl_clientcap)
-
-#define DRM_IOCTL_QXL_ALLOC_SURF \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC_SURF,\
- struct drm_qxl_alloc_surf)
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/r128_drm.h b/libdrm/libdrm/r128_drm.h
deleted file mode 100644
index bf431a0..0000000
--- a/libdrm/libdrm/r128_drm.h
+++ /dev/null
@@ -1,336 +0,0 @@
-/* r128_drm.h -- Public header for the r128 driver -*- linux-c -*-
- * Created: Wed Apr 5 19:24:19 2000 by kevin@precisioninsight.com
- */
-/*
- * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- * Gareth Hughes <gareth@valinux.com>
- * Kevin E. Martin <martin@valinux.com>
- */
-
-#ifndef __R128_DRM_H__
-#define __R128_DRM_H__
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the X server file (r128_sarea.h)
- */
-#ifndef __R128_SAREA_DEFINES__
-#define __R128_SAREA_DEFINES__
-
-/* What needs to be changed for the current vertex buffer?
- */
-#define R128_UPLOAD_CONTEXT 0x001
-#define R128_UPLOAD_SETUP 0x002
-#define R128_UPLOAD_TEX0 0x004
-#define R128_UPLOAD_TEX1 0x008
-#define R128_UPLOAD_TEX0IMAGES 0x010
-#define R128_UPLOAD_TEX1IMAGES 0x020
-#define R128_UPLOAD_CORE 0x040
-#define R128_UPLOAD_MASKS 0x080
-#define R128_UPLOAD_WINDOW 0x100
-#define R128_UPLOAD_CLIPRECTS 0x200 /* handled client-side */
-#define R128_REQUIRE_QUIESCENCE 0x400
-#define R128_UPLOAD_ALL 0x7ff
-
-#define R128_FRONT 0x1
-#define R128_BACK 0x2
-#define R128_DEPTH 0x4
-
-/* Primitive types
- */
-#define R128_POINTS 0x1
-#define R128_LINES 0x2
-#define R128_LINE_STRIP 0x3
-#define R128_TRIANGLES 0x4
-#define R128_TRIANGLE_FAN 0x5
-#define R128_TRIANGLE_STRIP 0x6
-
-/* Vertex/indirect buffer size
- */
-#define R128_BUFFER_SIZE 16384
-
-/* Byte offsets for indirect buffer data
- */
-#define R128_INDEX_PRIM_OFFSET 20
-#define R128_HOSTDATA_BLIT_OFFSET 32
-
-/* Keep these small for testing.
- */
-#define R128_NR_SAREA_CLIPRECTS 12
-
-/* There are 2 heaps (local/AGP). Each region within a heap is a
- * minimum of 64k, and there are at most 64 of them per heap.
- */
-#define R128_LOCAL_TEX_HEAP 0
-#define R128_AGP_TEX_HEAP 1
-#define R128_NR_TEX_HEAPS 2
-#define R128_NR_TEX_REGIONS 64
-#define R128_LOG_TEX_GRANULARITY 16
-
-#define R128_NR_CONTEXT_REGS 12
-
-#define R128_MAX_TEXTURE_LEVELS 11
-#define R128_MAX_TEXTURE_UNITS 2
-
-#endif /* __R128_SAREA_DEFINES__ */
-
-typedef struct {
- /* Context state - can be written in one large chunk */
- unsigned int dst_pitch_offset_c;
- unsigned int dp_gui_master_cntl_c;
- unsigned int sc_top_left_c;
- unsigned int sc_bottom_right_c;
- unsigned int z_offset_c;
- unsigned int z_pitch_c;
- unsigned int z_sten_cntl_c;
- unsigned int tex_cntl_c;
- unsigned int misc_3d_state_cntl_reg;
- unsigned int texture_clr_cmp_clr_c;
- unsigned int texture_clr_cmp_msk_c;
- unsigned int fog_color_c;
-
- /* Texture state */
- unsigned int tex_size_pitch_c;
- unsigned int constant_color_c;
-
- /* Setup state */
- unsigned int pm4_vc_fpu_setup;
- unsigned int setup_cntl;
-
- /* Mask state */
- unsigned int dp_write_mask;
- unsigned int sten_ref_mask_c;
- unsigned int plane_3d_mask_c;
-
- /* Window state */
- unsigned int window_xy_offset;
-
- /* Core state */
- unsigned int scale_3d_cntl;
-} drm_r128_context_regs_t;
-
-/* Setup registers for each texture unit
- */
-typedef struct {
- unsigned int tex_cntl;
- unsigned int tex_combine_cntl;
- unsigned int tex_size_pitch;
- unsigned int tex_offset[R128_MAX_TEXTURE_LEVELS];
- unsigned int tex_border_color;
-} drm_r128_texture_regs_t;
-
-typedef struct drm_r128_sarea {
- /* The channel for communication of state information to the kernel
- * on firing a vertex buffer.
- */
- drm_r128_context_regs_t context_state;
- drm_r128_texture_regs_t tex_state[R128_MAX_TEXTURE_UNITS];
- unsigned int dirty;
- unsigned int vertsize;
- unsigned int vc_format;
-
- /* The current cliprects, or a subset thereof.
- */
- struct drm_clip_rect boxes[R128_NR_SAREA_CLIPRECTS];
- unsigned int nbox;
-
- /* Counters for client-side throttling of rendering clients.
- */
- unsigned int last_frame;
- unsigned int last_dispatch;
-
- struct drm_tex_region tex_list[R128_NR_TEX_HEAPS][R128_NR_TEX_REGIONS + 1];
- unsigned int tex_age[R128_NR_TEX_HEAPS];
- int ctx_owner;
- int pfAllowPageFlip; /* number of 3d windows (0,1,2 or more) */
- int pfCurrentPage; /* which buffer is being displayed? */
-} drm_r128_sarea_t;
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the Xserver file (xf86drmR128.h)
- */
-
-/* Rage 128 specific ioctls
- * The device specific ioctl range is 0x40 to 0x79.
- */
-#define DRM_R128_INIT 0x00
-#define DRM_R128_CCE_START 0x01
-#define DRM_R128_CCE_STOP 0x02
-#define DRM_R128_CCE_RESET 0x03
-#define DRM_R128_CCE_IDLE 0x04
-/* 0x05 not used */
-#define DRM_R128_RESET 0x06
-#define DRM_R128_SWAP 0x07
-#define DRM_R128_CLEAR 0x08
-#define DRM_R128_VERTEX 0x09
-#define DRM_R128_INDICES 0x0a
-#define DRM_R128_BLIT 0x0b
-#define DRM_R128_DEPTH 0x0c
-#define DRM_R128_STIPPLE 0x0d
-/* 0x0e not used */
-#define DRM_R128_INDIRECT 0x0f
-#define DRM_R128_FULLSCREEN 0x10
-#define DRM_R128_CLEAR2 0x11
-#define DRM_R128_GETPARAM 0x12
-#define DRM_R128_FLIP 0x13
-
-#define DRM_IOCTL_R128_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_R128_INIT, drm_r128_init_t)
-#define DRM_IOCTL_R128_CCE_START DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_START)
-#define DRM_IOCTL_R128_CCE_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CCE_STOP, drm_r128_cce_stop_t)
-#define DRM_IOCTL_R128_CCE_RESET DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_RESET)
-#define DRM_IOCTL_R128_CCE_IDLE DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_IDLE)
-/* 0x05 not used */
-#define DRM_IOCTL_R128_RESET DRM_IO( DRM_COMMAND_BASE + DRM_R128_RESET)
-#define DRM_IOCTL_R128_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_R128_SWAP)
-#define DRM_IOCTL_R128_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CLEAR, drm_r128_clear_t)
-#define DRM_IOCTL_R128_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_R128_VERTEX, drm_r128_vertex_t)
-#define DRM_IOCTL_R128_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_R128_INDICES, drm_r128_indices_t)
-#define DRM_IOCTL_R128_BLIT DRM_IOW( DRM_COMMAND_BASE + DRM_R128_BLIT, drm_r128_blit_t)
-#define DRM_IOCTL_R128_DEPTH DRM_IOW( DRM_COMMAND_BASE + DRM_R128_DEPTH, drm_r128_depth_t)
-#define DRM_IOCTL_R128_STIPPLE DRM_IOW( DRM_COMMAND_BASE + DRM_R128_STIPPLE, drm_r128_stipple_t)
-/* 0x0e not used */
-#define DRM_IOCTL_R128_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_R128_INDIRECT, drm_r128_indirect_t)
-#define DRM_IOCTL_R128_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_R128_FULLSCREEN, drm_r128_fullscreen_t)
-#define DRM_IOCTL_R128_CLEAR2 DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CLEAR2, drm_r128_clear2_t)
-#define DRM_IOCTL_R128_GETPARAM DRM_IOWR( DRM_COMMAND_BASE + DRM_R128_GETPARAM, drm_r128_getparam_t)
-#define DRM_IOCTL_R128_FLIP DRM_IO( DRM_COMMAND_BASE + DRM_R128_FLIP)
-
-typedef struct drm_r128_init {
- enum {
- R128_INIT_CCE = 0x01,
- R128_CLEANUP_CCE = 0x02
- } func;
- unsigned long sarea_priv_offset;
- int is_pci;
- int cce_mode;
- int cce_secure;
- int ring_size;
- int usec_timeout;
-
- unsigned int fb_bpp;
- unsigned int front_offset, front_pitch;
- unsigned int back_offset, back_pitch;
- unsigned int depth_bpp;
- unsigned int depth_offset, depth_pitch;
- unsigned int span_offset;
-
- unsigned long fb_offset;
- unsigned long mmio_offset;
- unsigned long ring_offset;
- unsigned long ring_rptr_offset;
- unsigned long buffers_offset;
- unsigned long agp_textures_offset;
-} drm_r128_init_t;
-
-typedef struct drm_r128_cce_stop {
- int flush;
- int idle;
-} drm_r128_cce_stop_t;
-
-typedef struct drm_r128_clear {
- unsigned int flags;
- unsigned int clear_color;
- unsigned int clear_depth;
- unsigned int color_mask;
- unsigned int depth_mask;
-} drm_r128_clear_t;
-
-typedef struct drm_r128_vertex {
- int prim;
- int idx; /* Index of vertex buffer */
- int count; /* Number of vertices in buffer */
- int discard; /* Client finished with buffer? */
-} drm_r128_vertex_t;
-
-typedef struct drm_r128_indices {
- int prim;
- int idx;
- int start;
- int end;
- int discard; /* Client finished with buffer? */
-} drm_r128_indices_t;
-
-typedef struct drm_r128_blit {
- int idx;
- int pitch;
- int offset;
- int format;
- unsigned short x, y;
- unsigned short width, height;
-} drm_r128_blit_t;
-
-typedef struct drm_r128_depth {
- enum {
- R128_WRITE_SPAN = 0x01,
- R128_WRITE_PIXELS = 0x02,
- R128_READ_SPAN = 0x03,
- R128_READ_PIXELS = 0x04
- } func;
- int n;
- int *x;
- int *y;
- unsigned int *buffer;
- unsigned char *mask;
-} drm_r128_depth_t;
-
-typedef struct drm_r128_stipple {
- unsigned int *mask;
-} drm_r128_stipple_t;
-
-typedef struct drm_r128_indirect {
- int idx;
- int start;
- int end;
- int discard;
-} drm_r128_indirect_t;
-
-typedef struct drm_r128_fullscreen {
- enum {
- R128_INIT_FULLSCREEN = 0x01,
- R128_CLEANUP_FULLSCREEN = 0x02
- } func;
-} drm_r128_fullscreen_t;
-
-/* 2.3: An ioctl to get parameters that aren't available to the 3d
- * client any other way.
- */
-#define R128_PARAM_IRQ_NR 1
-
-typedef struct drm_r128_getparam {
- int param;
- void *value;
-} drm_r128_getparam_t;
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/r600_pci_ids.h b/libdrm/libdrm/r600_pci_ids.h
deleted file mode 100644
index a3b2eac..0000000
--- a/libdrm/libdrm/r600_pci_ids.h
+++ /dev/null
@@ -1,487 +0,0 @@
-CHIPSET(0x9400, R600_9400, R600)
-CHIPSET(0x9401, R600_9401, R600)
-CHIPSET(0x9402, R600_9402, R600)
-CHIPSET(0x9403, R600_9403, R600)
-CHIPSET(0x9405, R600_9405, R600)
-CHIPSET(0x940A, R600_940A, R600)
-CHIPSET(0x940B, R600_940B, R600)
-CHIPSET(0x940F, R600_940F, R600)
-
-CHIPSET(0x94C0, RV610_94C0, RV610)
-CHIPSET(0x94C1, RV610_94C1, RV610)
-CHIPSET(0x94C3, RV610_94C3, RV610)
-CHIPSET(0x94C4, RV610_94C4, RV610)
-CHIPSET(0x94C5, RV610_94C5, RV610)
-CHIPSET(0x94C6, RV610_94C6, RV610)
-CHIPSET(0x94C7, RV610_94C7, RV610)
-CHIPSET(0x94C8, RV610_94C8, RV610)
-CHIPSET(0x94C9, RV610_94C9, RV610)
-CHIPSET(0x94CB, RV610_94CB, RV610)
-CHIPSET(0x94CC, RV610_94CC, RV610)
-CHIPSET(0x94CD, RV610_94CD, RV610)
-
-CHIPSET(0x9580, RV630_9580, RV630)
-CHIPSET(0x9581, RV630_9581, RV630)
-CHIPSET(0x9583, RV630_9583, RV630)
-CHIPSET(0x9586, RV630_9586, RV630)
-CHIPSET(0x9587, RV630_9587, RV630)
-CHIPSET(0x9588, RV630_9588, RV630)
-CHIPSET(0x9589, RV630_9589, RV630)
-CHIPSET(0x958A, RV630_958A, RV630)
-CHIPSET(0x958B, RV630_958B, RV630)
-CHIPSET(0x958C, RV630_958C, RV630)
-CHIPSET(0x958D, RV630_958D, RV630)
-CHIPSET(0x958E, RV630_958E, RV630)
-CHIPSET(0x958F, RV630_958F, RV630)
-
-CHIPSET(0x9500, RV670_9500, RV670)
-CHIPSET(0x9501, RV670_9501, RV670)
-CHIPSET(0x9504, RV670_9504, RV670)
-CHIPSET(0x9505, RV670_9505, RV670)
-CHIPSET(0x9506, RV670_9506, RV670)
-CHIPSET(0x9507, RV670_9507, RV670)
-CHIPSET(0x9508, RV670_9508, RV670)
-CHIPSET(0x9509, RV670_9509, RV670)
-CHIPSET(0x950F, RV670_950F, RV670)
-CHIPSET(0x9511, RV670_9511, RV670)
-CHIPSET(0x9515, RV670_9515, RV670)
-CHIPSET(0x9517, RV670_9517, RV670)
-CHIPSET(0x9519, RV670_9519, RV670)
-
-CHIPSET(0x95C0, RV620_95C0, RV620)
-CHIPSET(0x95C2, RV620_95C2, RV620)
-CHIPSET(0x95C4, RV620_95C4, RV620)
-CHIPSET(0x95C5, RV620_95C5, RV620)
-CHIPSET(0x95C6, RV620_95C6, RV620)
-CHIPSET(0x95C7, RV620_95C7, RV620)
-CHIPSET(0x95C9, RV620_95C9, RV620)
-CHIPSET(0x95CC, RV620_95CC, RV620)
-CHIPSET(0x95CD, RV620_95CD, RV620)
-CHIPSET(0x95CE, RV620_95CE, RV620)
-CHIPSET(0x95CF, RV620_95CF, RV620)
-
-CHIPSET(0x9590, RV635_9590, RV635)
-CHIPSET(0x9591, RV635_9591, RV635)
-CHIPSET(0x9593, RV635_9593, RV635)
-CHIPSET(0x9595, RV635_9595, RV635)
-CHIPSET(0x9596, RV635_9596, RV635)
-CHIPSET(0x9597, RV635_9597, RV635)
-CHIPSET(0x9598, RV635_9598, RV635)
-CHIPSET(0x9599, RV635_9599, RV635)
-CHIPSET(0x959B, RV635_959B, RV635)
-
-CHIPSET(0x9610, RS780_9610, RS780)
-CHIPSET(0x9611, RS780_9611, RS780)
-CHIPSET(0x9612, RS780_9612, RS780)
-CHIPSET(0x9613, RS780_9613, RS780)
-CHIPSET(0x9614, RS780_9614, RS780)
-CHIPSET(0x9615, RS780_9615, RS780)
-CHIPSET(0x9616, RS780_9616, RS780)
-
-CHIPSET(0x9710, RS880_9710, RS880)
-CHIPSET(0x9711, RS880_9711, RS880)
-CHIPSET(0x9712, RS880_9712, RS880)
-CHIPSET(0x9713, RS880_9713, RS880)
-CHIPSET(0x9714, RS880_9714, RS880)
-CHIPSET(0x9715, RS880_9715, RS880)
-
-CHIPSET(0x9440, RV770_9440, RV770)
-CHIPSET(0x9441, RV770_9441, RV770)
-CHIPSET(0x9442, RV770_9442, RV770)
-CHIPSET(0x9443, RV770_9443, RV770)
-CHIPSET(0x9444, RV770_9444, RV770)
-CHIPSET(0x9446, RV770_9446, RV770)
-CHIPSET(0x944A, RV770_944A, RV770)
-CHIPSET(0x944B, RV770_944B, RV770)
-CHIPSET(0x944C, RV770_944C, RV770)
-CHIPSET(0x944E, RV770_944E, RV770)
-CHIPSET(0x9450, RV770_9450, RV770)
-CHIPSET(0x9452, RV770_9452, RV770)
-CHIPSET(0x9456, RV770_9456, RV770)
-CHIPSET(0x945A, RV770_945A, RV770)
-CHIPSET(0x945B, RV770_945B, RV770)
-CHIPSET(0x945E, RV770_945E, RV770)
-CHIPSET(0x9460, RV790_9460, RV770)
-CHIPSET(0x9462, RV790_9462, RV770)
-CHIPSET(0x946A, RV770_946A, RV770)
-CHIPSET(0x946B, RV770_946B, RV770)
-CHIPSET(0x947A, RV770_947A, RV770)
-CHIPSET(0x947B, RV770_947B, RV770)
-
-CHIPSET(0x9480, RV730_9480, RV730)
-CHIPSET(0x9487, RV730_9487, RV730)
-CHIPSET(0x9488, RV730_9488, RV730)
-CHIPSET(0x9489, RV730_9489, RV730)
-CHIPSET(0x948A, RV730_948A, RV730)
-CHIPSET(0x948F, RV730_948F, RV730)
-CHIPSET(0x9490, RV730_9490, RV730)
-CHIPSET(0x9491, RV730_9491, RV730)
-CHIPSET(0x9495, RV730_9495, RV730)
-CHIPSET(0x9498, RV730_9498, RV730)
-CHIPSET(0x949C, RV730_949C, RV730)
-CHIPSET(0x949E, RV730_949E, RV730)
-CHIPSET(0x949F, RV730_949F, RV730)
-
-CHIPSET(0x9540, RV710_9540, RV710)
-CHIPSET(0x9541, RV710_9541, RV710)
-CHIPSET(0x9542, RV710_9542, RV710)
-CHIPSET(0x954E, RV710_954E, RV710)
-CHIPSET(0x954F, RV710_954F, RV710)
-CHIPSET(0x9552, RV710_9552, RV710)
-CHIPSET(0x9553, RV710_9553, RV710)
-CHIPSET(0x9555, RV710_9555, RV710)
-CHIPSET(0x9557, RV710_9557, RV710)
-CHIPSET(0x955F, RV710_955F, RV710)
-
-CHIPSET(0x94A0, RV740_94A0, RV740)
-CHIPSET(0x94A1, RV740_94A1, RV740)
-CHIPSET(0x94A3, RV740_94A3, RV740)
-CHIPSET(0x94B1, RV740_94B1, RV740)
-CHIPSET(0x94B3, RV740_94B3, RV740)
-CHIPSET(0x94B4, RV740_94B4, RV740)
-CHIPSET(0x94B5, RV740_94B5, RV740)
-CHIPSET(0x94B9, RV740_94B9, RV740)
-
-CHIPSET(0x68E0, CEDAR_68E0, CEDAR)
-CHIPSET(0x68E1, CEDAR_68E1, CEDAR)
-CHIPSET(0x68E4, CEDAR_68E4, CEDAR)
-CHIPSET(0x68E5, CEDAR_68E5, CEDAR)
-CHIPSET(0x68E8, CEDAR_68E8, CEDAR)
-CHIPSET(0x68E9, CEDAR_68E9, CEDAR)
-CHIPSET(0x68F1, CEDAR_68F1, CEDAR)
-CHIPSET(0x68F2, CEDAR_68F2, CEDAR)
-CHIPSET(0x68F8, CEDAR_68F8, CEDAR)
-CHIPSET(0x68F9, CEDAR_68F9, CEDAR)
-CHIPSET(0x68FA, CEDAR_68FA, CEDAR)
-CHIPSET(0x68FE, CEDAR_68FE, CEDAR)
-
-CHIPSET(0x68C0, REDWOOD_68C0, REDWOOD)
-CHIPSET(0x68C1, REDWOOD_68C1, REDWOOD)
-CHIPSET(0x68C7, REDWOOD_68C7, REDWOOD)
-CHIPSET(0x68C8, REDWOOD_68C8, REDWOOD)
-CHIPSET(0x68C9, REDWOOD_68C9, REDWOOD)
-CHIPSET(0x68D8, REDWOOD_68D8, REDWOOD)
-CHIPSET(0x68D9, REDWOOD_68D9, REDWOOD)
-CHIPSET(0x68DA, REDWOOD_68DA, REDWOOD)
-CHIPSET(0x68DE, REDWOOD_68DE, REDWOOD)
-
-CHIPSET(0x68A0, JUNIPER_68A0, JUNIPER)
-CHIPSET(0x68A1, JUNIPER_68A1, JUNIPER)
-CHIPSET(0x68A8, JUNIPER_68A8, JUNIPER)
-CHIPSET(0x68A9, JUNIPER_68A9, JUNIPER)
-CHIPSET(0x68B0, JUNIPER_68B0, JUNIPER)
-CHIPSET(0x68B8, JUNIPER_68B8, JUNIPER)
-CHIPSET(0x68B9, JUNIPER_68B9, JUNIPER)
-CHIPSET(0x68BA, JUNIPER_68BA, JUNIPER)
-CHIPSET(0x68BE, JUNIPER_68BE, JUNIPER)
-CHIPSET(0x68BF, JUNIPER_68BF, JUNIPER)
-
-CHIPSET(0x6880, CYPRESS_6880, CYPRESS)
-CHIPSET(0x6888, CYPRESS_6888, CYPRESS)
-CHIPSET(0x6889, CYPRESS_6889, CYPRESS)
-CHIPSET(0x688A, CYPRESS_688A, CYPRESS)
-CHIPSET(0x688C, CYPRESS_688C, CYPRESS)
-CHIPSET(0x688D, CYPRESS_688D, CYPRESS)
-CHIPSET(0x6898, CYPRESS_6898, CYPRESS)
-CHIPSET(0x6899, CYPRESS_6899, CYPRESS)
-CHIPSET(0x689B, CYPRESS_689B, CYPRESS)
-CHIPSET(0x689E, CYPRESS_689E, CYPRESS)
-
-CHIPSET(0x689C, HEMLOCK_689C, HEMLOCK)
-CHIPSET(0x689D, HEMLOCK_689D, HEMLOCK)
-
-CHIPSET(0x9802, PALM_9802, PALM)
-CHIPSET(0x9803, PALM_9803, PALM)
-CHIPSET(0x9804, PALM_9804, PALM)
-CHIPSET(0x9805, PALM_9805, PALM)
-CHIPSET(0x9806, PALM_9806, PALM)
-CHIPSET(0x9807, PALM_9807, PALM)
-CHIPSET(0x9808, PALM_9808, PALM)
-CHIPSET(0x9809, PALM_9809, PALM)
-CHIPSET(0x980A, PALM_980A, PALM)
-
-CHIPSET(0x9640, SUMO_9640, SUMO)
-CHIPSET(0x9641, SUMO_9641, SUMO)
-CHIPSET(0x9642, SUMO2_9642, SUMO2)
-CHIPSET(0x9643, SUMO2_9643, SUMO2)
-CHIPSET(0x9644, SUMO2_9644, SUMO2)
-CHIPSET(0x9645, SUMO2_9645, SUMO2)
-CHIPSET(0x9647, SUMO_9647, SUMO)
-CHIPSET(0x9648, SUMO_9648, SUMO)
-CHIPSET(0x9649, SUMO2_9649, SUMO2)
-CHIPSET(0x964a, SUMO_964A, SUMO)
-CHIPSET(0x964b, SUMO_964B, SUMO)
-CHIPSET(0x964c, SUMO_964C, SUMO)
-CHIPSET(0x964e, SUMO_964E, SUMO)
-CHIPSET(0x964f, SUMO_964F, SUMO)
-
-CHIPSET(0x6700, CAYMAN_6700, CAYMAN)
-CHIPSET(0x6701, CAYMAN_6701, CAYMAN)
-CHIPSET(0x6702, CAYMAN_6702, CAYMAN)
-CHIPSET(0x6703, CAYMAN_6703, CAYMAN)
-CHIPSET(0x6704, CAYMAN_6704, CAYMAN)
-CHIPSET(0x6705, CAYMAN_6705, CAYMAN)
-CHIPSET(0x6706, CAYMAN_6706, CAYMAN)
-CHIPSET(0x6707, CAYMAN_6707, CAYMAN)
-CHIPSET(0x6708, CAYMAN_6708, CAYMAN)
-CHIPSET(0x6709, CAYMAN_6709, CAYMAN)
-CHIPSET(0x6718, CAYMAN_6718, CAYMAN)
-CHIPSET(0x6719, CAYMAN_6719, CAYMAN)
-CHIPSET(0x671C, CAYMAN_671C, CAYMAN)
-CHIPSET(0x671D, CAYMAN_671D, CAYMAN)
-CHIPSET(0x671F, CAYMAN_671F, CAYMAN)
-
-CHIPSET(0x6720, BARTS_6720, BARTS)
-CHIPSET(0x6721, BARTS_6721, BARTS)
-CHIPSET(0x6722, BARTS_6722, BARTS)
-CHIPSET(0x6723, BARTS_6723, BARTS)
-CHIPSET(0x6724, BARTS_6724, BARTS)
-CHIPSET(0x6725, BARTS_6725, BARTS)
-CHIPSET(0x6726, BARTS_6726, BARTS)
-CHIPSET(0x6727, BARTS_6727, BARTS)
-CHIPSET(0x6728, BARTS_6728, BARTS)
-CHIPSET(0x6729, BARTS_6729, BARTS)
-CHIPSET(0x6738, BARTS_6738, BARTS)
-CHIPSET(0x6739, BARTS_6739, BARTS)
-CHIPSET(0x673E, BARTS_673E, BARTS)
-
-CHIPSET(0x6740, TURKS_6740, TURKS)
-CHIPSET(0x6741, TURKS_6741, TURKS)
-CHIPSET(0x6742, TURKS_6742, TURKS)
-CHIPSET(0x6743, TURKS_6743, TURKS)
-CHIPSET(0x6744, TURKS_6744, TURKS)
-CHIPSET(0x6745, TURKS_6745, TURKS)
-CHIPSET(0x6746, TURKS_6746, TURKS)
-CHIPSET(0x6747, TURKS_6747, TURKS)
-CHIPSET(0x6748, TURKS_6748, TURKS)
-CHIPSET(0x6749, TURKS_6749, TURKS)
-CHIPSET(0x674A, TURKS_674A, TURKS)
-CHIPSET(0x6750, TURKS_6750, TURKS)
-CHIPSET(0x6751, TURKS_6751, TURKS)
-CHIPSET(0x6758, TURKS_6758, TURKS)
-CHIPSET(0x6759, TURKS_6759, TURKS)
-CHIPSET(0x675B, TURKS_675B, TURKS)
-CHIPSET(0x675D, TURKS_675D, TURKS)
-CHIPSET(0x675F, TURKS_675F, TURKS)
-CHIPSET(0x6840, TURKS_6840, TURKS)
-CHIPSET(0x6841, TURKS_6841, TURKS)
-CHIPSET(0x6842, TURKS_6842, TURKS)
-CHIPSET(0x6843, TURKS_6843, TURKS)
-CHIPSET(0x6849, TURKS_6849, TURKS)
-CHIPSET(0x6850, TURKS_6850, TURKS)
-CHIPSET(0x6858, TURKS_6858, TURKS)
-CHIPSET(0x6859, TURKS_6859, TURKS)
-
-CHIPSET(0x6760, CAICOS_6760, CAICOS)
-CHIPSET(0x6761, CAICOS_6761, CAICOS)
-CHIPSET(0x6762, CAICOS_6762, CAICOS)
-CHIPSET(0x6763, CAICOS_6763, CAICOS)
-CHIPSET(0x6764, CAICOS_6764, CAICOS)
-CHIPSET(0x6765, CAICOS_6765, CAICOS)
-CHIPSET(0x6766, CAICOS_6766, CAICOS)
-CHIPSET(0x6767, CAICOS_6767, CAICOS)
-CHIPSET(0x6768, CAICOS_6768, CAICOS)
-CHIPSET(0x6770, CAICOS_6770, CAICOS)
-CHIPSET(0x6771, CAICOS_6771, CAICOS)
-CHIPSET(0x6772, CAICOS_6772, CAICOS)
-CHIPSET(0x6778, CAICOS_6778, CAICOS)
-CHIPSET(0x6779, CAICOS_6779, CAICOS)
-CHIPSET(0x677B, CAICOS_677B, CAICOS)
-
-CHIPSET(0x9900, ARUBA_9900, ARUBA)
-CHIPSET(0x9901, ARUBA_9901, ARUBA)
-CHIPSET(0x9903, ARUBA_9903, ARUBA)
-CHIPSET(0x9904, ARUBA_9904, ARUBA)
-CHIPSET(0x9905, ARUBA_9905, ARUBA)
-CHIPSET(0x9906, ARUBA_9906, ARUBA)
-CHIPSET(0x9907, ARUBA_9907, ARUBA)
-CHIPSET(0x9908, ARUBA_9908, ARUBA)
-CHIPSET(0x9909, ARUBA_9909, ARUBA)
-CHIPSET(0x990A, ARUBA_990A, ARUBA)
-CHIPSET(0x990B, ARUBA_990B, ARUBA)
-CHIPSET(0x990C, ARUBA_990C, ARUBA)
-CHIPSET(0x990D, ARUBA_990D, ARUBA)
-CHIPSET(0x990E, ARUBA_990E, ARUBA)
-CHIPSET(0x990F, ARUBA_990F, ARUBA)
-CHIPSET(0x9910, ARUBA_9910, ARUBA)
-CHIPSET(0x9913, ARUBA_9913, ARUBA)
-CHIPSET(0x9917, ARUBA_9917, ARUBA)
-CHIPSET(0x9918, ARUBA_9918, ARUBA)
-CHIPSET(0x9919, ARUBA_9919, ARUBA)
-CHIPSET(0x9990, ARUBA_9990, ARUBA)
-CHIPSET(0x9991, ARUBA_9991, ARUBA)
-CHIPSET(0x9992, ARUBA_9992, ARUBA)
-CHIPSET(0x9993, ARUBA_9993, ARUBA)
-CHIPSET(0x9994, ARUBA_9994, ARUBA)
-CHIPSET(0x9995, ARUBA_9995, ARUBA)
-CHIPSET(0x9996, ARUBA_9996, ARUBA)
-CHIPSET(0x9997, ARUBA_9997, ARUBA)
-CHIPSET(0x9998, ARUBA_9998, ARUBA)
-CHIPSET(0x9999, ARUBA_9999, ARUBA)
-CHIPSET(0x999A, ARUBA_999A, ARUBA)
-CHIPSET(0x999B, ARUBA_999B, ARUBA)
-CHIPSET(0x999C, ARUBA_999C, ARUBA)
-CHIPSET(0x999D, ARUBA_999D, ARUBA)
-CHIPSET(0x99A0, ARUBA_99A0, ARUBA)
-CHIPSET(0x99A2, ARUBA_99A2, ARUBA)
-CHIPSET(0x99A4, ARUBA_99A4, ARUBA)
-
-CHIPSET(0x6780, TAHITI_6780, TAHITI)
-CHIPSET(0x6784, TAHITI_6784, TAHITI)
-CHIPSET(0x6788, TAHITI_6788, TAHITI)
-CHIPSET(0x678A, TAHITI_678A, TAHITI)
-CHIPSET(0x6790, TAHITI_6790, TAHITI)
-CHIPSET(0x6791, TAHITI_6791, TAHITI)
-CHIPSET(0x6792, TAHITI_6792, TAHITI)
-CHIPSET(0x6798, TAHITI_6798, TAHITI)
-CHIPSET(0x6799, TAHITI_6799, TAHITI)
-CHIPSET(0x679A, TAHITI_679A, TAHITI)
-CHIPSET(0x679B, TAHITI_679B, TAHITI)
-CHIPSET(0x679E, TAHITI_679E, TAHITI)
-CHIPSET(0x679F, TAHITI_679F, TAHITI)
-
-CHIPSET(0x6800, PITCAIRN_6800, PITCAIRN)
-CHIPSET(0x6801, PITCAIRN_6801, PITCAIRN)
-CHIPSET(0x6802, PITCAIRN_6802, PITCAIRN)
-CHIPSET(0x6806, PITCAIRN_6806, PITCAIRN)
-CHIPSET(0x6808, PITCAIRN_6808, PITCAIRN)
-CHIPSET(0x6809, PITCAIRN_6809, PITCAIRN)
-CHIPSET(0x6810, PITCAIRN_6810, PITCAIRN)
-CHIPSET(0x6811, PITCAIRN_6811, PITCAIRN)
-CHIPSET(0x6816, PITCAIRN_6816, PITCAIRN)
-CHIPSET(0x6817, PITCAIRN_6817, PITCAIRN)
-CHIPSET(0x6818, PITCAIRN_6818, PITCAIRN)
-CHIPSET(0x6819, PITCAIRN_6819, PITCAIRN)
-CHIPSET(0x684C, PITCAIRN_684C, PITCAIRN)
-
-CHIPSET(0x6820, VERDE_6820, VERDE)
-CHIPSET(0x6821, VERDE_6821, VERDE)
-CHIPSET(0x6822, VERDE_6822, VERDE)
-CHIPSET(0x6823, VERDE_6823, VERDE)
-CHIPSET(0x6824, VERDE_6824, VERDE)
-CHIPSET(0x6825, VERDE_6825, VERDE)
-CHIPSET(0x6826, VERDE_6826, VERDE)
-CHIPSET(0x6827, VERDE_6827, VERDE)
-CHIPSET(0x6828, VERDE_6828, VERDE)
-CHIPSET(0x6829, VERDE_6829, VERDE)
-CHIPSET(0x682A, VERDE_682A, VERDE)
-CHIPSET(0x682B, VERDE_682B, VERDE)
-CHIPSET(0x682C, VERDE_682C, VERDE)
-CHIPSET(0x682D, VERDE_682D, VERDE)
-CHIPSET(0x682F, VERDE_682F, VERDE)
-CHIPSET(0x6830, VERDE_6830, VERDE)
-CHIPSET(0x6831, VERDE_6831, VERDE)
-CHIPSET(0x6835, VERDE_6835, VERDE)
-CHIPSET(0x6837, VERDE_6837, VERDE)
-CHIPSET(0x6838, VERDE_6838, VERDE)
-CHIPSET(0x6839, VERDE_6839, VERDE)
-CHIPSET(0x683B, VERDE_683B, VERDE)
-CHIPSET(0x683D, VERDE_683D, VERDE)
-CHIPSET(0x683F, VERDE_683F, VERDE)
-
-CHIPSET(0x6600, OLAND_6600, OLAND)
-CHIPSET(0x6601, OLAND_6601, OLAND)
-CHIPSET(0x6602, OLAND_6602, OLAND)
-CHIPSET(0x6603, OLAND_6603, OLAND)
-CHIPSET(0x6604, OLAND_6604, OLAND)
-CHIPSET(0x6605, OLAND_6605, OLAND)
-CHIPSET(0x6606, OLAND_6606, OLAND)
-CHIPSET(0x6607, OLAND_6607, OLAND)
-CHIPSET(0x6608, OLAND_6608, OLAND)
-CHIPSET(0x6610, OLAND_6610, OLAND)
-CHIPSET(0x6611, OLAND_6611, OLAND)
-CHIPSET(0x6613, OLAND_6613, OLAND)
-CHIPSET(0x6617, OLAND_6617, OLAND)
-CHIPSET(0x6620, OLAND_6620, OLAND)
-CHIPSET(0x6621, OLAND_6621, OLAND)
-CHIPSET(0x6623, OLAND_6623, OLAND)
-CHIPSET(0x6631, OLAND_6631, OLAND)
-
-CHIPSET(0x6660, HAINAN_6660, HAINAN)
-CHIPSET(0x6663, HAINAN_6663, HAINAN)
-CHIPSET(0x6664, HAINAN_6664, HAINAN)
-CHIPSET(0x6665, HAINAN_6665, HAINAN)
-CHIPSET(0x6667, HAINAN_6667, HAINAN)
-CHIPSET(0x666F, HAINAN_666F, HAINAN)
-
-CHIPSET(0x6640, BONAIRE_6640, BONAIRE)
-CHIPSET(0x6641, BONAIRE_6641, BONAIRE)
-CHIPSET(0x6646, BONAIRE_6646, BONAIRE)
-CHIPSET(0x6647, BONAIRE_6647, BONAIRE)
-CHIPSET(0x6649, BONAIRE_6649, BONAIRE)
-CHIPSET(0x6650, BONAIRE_6650, BONAIRE)
-CHIPSET(0x6651, BONAIRE_6651, BONAIRE)
-CHIPSET(0x6658, BONAIRE_6658, BONAIRE)
-CHIPSET(0x665C, BONAIRE_665C, BONAIRE)
-CHIPSET(0x665D, BONAIRE_665D, BONAIRE)
-CHIPSET(0x665F, BONAIRE_665F, BONAIRE)
-
-CHIPSET(0x9830, KABINI_9830, KABINI)
-CHIPSET(0x9831, KABINI_9831, KABINI)
-CHIPSET(0x9832, KABINI_9832, KABINI)
-CHIPSET(0x9833, KABINI_9833, KABINI)
-CHIPSET(0x9834, KABINI_9834, KABINI)
-CHIPSET(0x9835, KABINI_9835, KABINI)
-CHIPSET(0x9836, KABINI_9836, KABINI)
-CHIPSET(0x9837, KABINI_9837, KABINI)
-CHIPSET(0x9838, KABINI_9838, KABINI)
-CHIPSET(0x9839, KABINI_9839, KABINI)
-CHIPSET(0x983A, KABINI_983A, KABINI)
-CHIPSET(0x983B, KABINI_983B, KABINI)
-CHIPSET(0x983C, KABINI_983C, KABINI)
-CHIPSET(0x983D, KABINI_983D, KABINI)
-CHIPSET(0x983E, KABINI_983E, KABINI)
-CHIPSET(0x983F, KABINI_983F, KABINI)
-
-CHIPSET(0x9850, MULLINS_9850, MULLINS)
-CHIPSET(0x9851, MULLINS_9851, MULLINS)
-CHIPSET(0x9852, MULLINS_9852, MULLINS)
-CHIPSET(0x9853, MULLINS_9853, MULLINS)
-CHIPSET(0x9854, MULLINS_9854, MULLINS)
-CHIPSET(0x9855, MULLINS_9855, MULLINS)
-CHIPSET(0x9856, MULLINS_9856, MULLINS)
-CHIPSET(0x9857, MULLINS_9857, MULLINS)
-CHIPSET(0x9858, MULLINS_9858, MULLINS)
-CHIPSET(0x9859, MULLINS_9859, MULLINS)
-CHIPSET(0x985A, MULLINS_985A, MULLINS)
-CHIPSET(0x985B, MULLINS_985B, MULLINS)
-CHIPSET(0x985C, MULLINS_985C, MULLINS)
-CHIPSET(0x985D, MULLINS_985D, MULLINS)
-CHIPSET(0x985E, MULLINS_985E, MULLINS)
-CHIPSET(0x985F, MULLINS_985F, MULLINS)
-
-CHIPSET(0x1304, KAVERI_1304, KAVERI)
-CHIPSET(0x1305, KAVERI_1305, KAVERI)
-CHIPSET(0x1306, KAVERI_1306, KAVERI)
-CHIPSET(0x1307, KAVERI_1307, KAVERI)
-CHIPSET(0x1309, KAVERI_1309, KAVERI)
-CHIPSET(0x130A, KAVERI_130A, KAVERI)
-CHIPSET(0x130B, KAVERI_130B, KAVERI)
-CHIPSET(0x130C, KAVERI_130C, KAVERI)
-CHIPSET(0x130D, KAVERI_130D, KAVERI)
-CHIPSET(0x130E, KAVERI_130E, KAVERI)
-CHIPSET(0x130F, KAVERI_130F, KAVERI)
-CHIPSET(0x1310, KAVERI_1310, KAVERI)
-CHIPSET(0x1311, KAVERI_1311, KAVERI)
-CHIPSET(0x1312, KAVERI_1312, KAVERI)
-CHIPSET(0x1313, KAVERI_1313, KAVERI)
-CHIPSET(0x1315, KAVERI_1315, KAVERI)
-CHIPSET(0x1316, KAVERI_1316, KAVERI)
-CHIPSET(0x1317, KAVERI_1317, KAVERI)
-CHIPSET(0x1318, KAVERI_1318, KAVERI)
-CHIPSET(0x131B, KAVERI_131B, KAVERI)
-CHIPSET(0x131C, KAVERI_131C, KAVERI)
-CHIPSET(0x131D, KAVERI_131D, KAVERI)
-
-CHIPSET(0x67A0, HAWAII_67A0, HAWAII)
-CHIPSET(0x67A1, HAWAII_67A1, HAWAII)
-CHIPSET(0x67A2, HAWAII_67A2, HAWAII)
-CHIPSET(0x67A8, HAWAII_67A8, HAWAII)
-CHIPSET(0x67A9, HAWAII_67A9, HAWAII)
-CHIPSET(0x67AA, HAWAII_67AA, HAWAII)
-CHIPSET(0x67B0, HAWAII_67B0, HAWAII)
-CHIPSET(0x67B1, HAWAII_67B1, HAWAII)
-CHIPSET(0x67B8, HAWAII_67B8, HAWAII)
-CHIPSET(0x67B9, HAWAII_67B9, HAWAII)
-CHIPSET(0x67BA, HAWAII_67BA, HAWAII)
-CHIPSET(0x67BE, HAWAII_67BE, HAWAII)
diff --git a/libdrm/libdrm/radeon_bo.h b/libdrm/libdrm/radeon_bo.h
deleted file mode 100644
index 6e20c6c..0000000
--- a/libdrm/libdrm/radeon_bo.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright © 2008 Jérôme Glisse
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
- * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- */
-/*
- * Authors:
- * Jérôme Glisse <glisse@freedesktop.org>
- */
-#ifndef RADEON_BO_H
-#define RADEON_BO_H
-
-#include <stdio.h>
-#include <stdint.h>
-
-/* bo object */
-#define RADEON_BO_FLAGS_MACRO_TILE 1
-#define RADEON_BO_FLAGS_MICRO_TILE 2
-#define RADEON_BO_FLAGS_MICRO_TILE_SQUARE 0x20
-
-struct radeon_bo_manager;
-struct radeon_cs;
-
-struct radeon_bo {
- void *ptr;
- uint32_t flags;
- uint32_t handle;
- uint32_t size;
-};
-
-
-void radeon_bo_debug(struct radeon_bo *bo, const char *op);
-
-struct radeon_bo *radeon_bo_open(struct radeon_bo_manager *bom,
- uint32_t handle,
- uint32_t size,
- uint32_t alignment,
- uint32_t domains,
- uint32_t flags);
-
-void radeon_bo_ref(struct radeon_bo *bo);
-struct radeon_bo *radeon_bo_unref(struct radeon_bo *bo);
-int radeon_bo_map(struct radeon_bo *bo, int write);
-int radeon_bo_unmap(struct radeon_bo *bo);
-int radeon_bo_wait(struct radeon_bo *bo);
-int radeon_bo_is_busy(struct radeon_bo *bo, uint32_t *domain);
-int radeon_bo_set_tiling(struct radeon_bo *bo, uint32_t tiling_flags, uint32_t pitch);
-int radeon_bo_get_tiling(struct radeon_bo *bo, uint32_t *tiling_flags, uint32_t *pitch);
-int radeon_bo_is_static(struct radeon_bo *bo);
-int radeon_bo_is_referenced_by_cs(struct radeon_bo *bo, struct radeon_cs *cs);
-uint32_t radeon_bo_get_handle(struct radeon_bo *bo);
-uint32_t radeon_bo_get_src_domain(struct radeon_bo *bo);
-#endif
diff --git a/libdrm/libdrm/radeon_bo_gem.h b/libdrm/libdrm/radeon_bo_gem.h
deleted file mode 100644
index 08965f3..0000000
--- a/libdrm/libdrm/radeon_bo_gem.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright © 2008 Dave Airlie
- * Copyright © 2008 Jérôme Glisse
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
- * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- */
-/*
- * Authors:
- * Dave Airlie
- * Jérôme Glisse <glisse@freedesktop.org>
- */
-#ifndef RADEON_BO_GEM_H
-#define RADEON_BO_GEM_H
-
-#include "radeon_bo.h"
-
-struct radeon_bo_manager *radeon_bo_manager_gem_ctor(int fd);
-void radeon_bo_manager_gem_dtor(struct radeon_bo_manager *bom);
-
-uint32_t radeon_gem_name_bo(struct radeon_bo *bo);
-void *radeon_gem_get_reloc_in_cs(struct radeon_bo *bo);
-int radeon_gem_set_domain(struct radeon_bo *bo, uint32_t read_domains, uint32_t write_domain);
-int radeon_gem_get_kernel_name(struct radeon_bo *bo, uint32_t *name);
-int radeon_gem_prime_share_bo(struct radeon_bo *bo, int *handle);
-struct radeon_bo *radeon_gem_bo_open_prime(struct radeon_bo_manager *bom,
- int fd_handle,
- uint32_t size);
-#endif
diff --git a/libdrm/libdrm/radeon_bo_int.h b/libdrm/libdrm/radeon_bo_int.h
deleted file mode 100644
index de981b0..0000000
--- a/libdrm/libdrm/radeon_bo_int.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef RADEON_BO_INT
-#define RADEON_BO_INT
-
-struct radeon_bo_manager {
- const struct radeon_bo_funcs *funcs;
- int fd;
-};
-
-struct radeon_bo_int {
- void *ptr;
- uint32_t flags;
- uint32_t handle;
- uint32_t size;
- /* private members */
- uint32_t alignment;
- uint32_t domains;
- unsigned cref;
- struct radeon_bo_manager *bom;
- uint32_t space_accounted;
- uint32_t referenced_in_cs;
-};
-
-/* bo functions */
-struct radeon_bo_funcs {
- struct radeon_bo *(*bo_open)(struct radeon_bo_manager *bom,
- uint32_t handle,
- uint32_t size,
- uint32_t alignment,
- uint32_t domains,
- uint32_t flags);
- void (*bo_ref)(struct radeon_bo_int *bo);
- struct radeon_bo *(*bo_unref)(struct radeon_bo_int *bo);
- int (*bo_map)(struct radeon_bo_int *bo, int write);
- int (*bo_unmap)(struct radeon_bo_int *bo);
- int (*bo_wait)(struct radeon_bo_int *bo);
- int (*bo_is_static)(struct radeon_bo_int *bo);
- int (*bo_set_tiling)(struct radeon_bo_int *bo, uint32_t tiling_flags,
- uint32_t pitch);
- int (*bo_get_tiling)(struct radeon_bo_int *bo, uint32_t *tiling_flags,
- uint32_t *pitch);
- int (*bo_is_busy)(struct radeon_bo_int *bo, uint32_t *domain);
- int (*bo_is_referenced_by_cs)(struct radeon_bo_int *bo, struct radeon_cs *cs);
-};
-
-#endif
diff --git a/libdrm/libdrm/radeon_cs.h b/libdrm/libdrm/radeon_cs.h
deleted file mode 100644
index f68a624..0000000
--- a/libdrm/libdrm/radeon_cs.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright © 2008 Nicolai Haehnle
- * Copyright © 2008 Jérôme Glisse
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- */
-/*
- * Authors:
- * Aapo Tahkola <aet@rasterburn.org>
- * Nicolai Haehnle <prefect_@gmx.net>
- * Jérôme Glisse <glisse@freedesktop.org>
- */
-#ifndef RADEON_CS_H
-#define RADEON_CS_H
-
-#include <stdint.h>
-#include <string.h>
-#include "drm.h"
-#include "radeon_drm.h"
-#include "radeon_bo.h"
-
-struct radeon_cs_reloc {
- struct radeon_bo *bo;
- uint32_t read_domain;
- uint32_t write_domain;
- uint32_t flags;
-};
-
-
-#define RADEON_CS_SPACE_OK 0
-#define RADEON_CS_SPACE_OP_TO_BIG 1
-#define RADEON_CS_SPACE_FLUSH 2
-
-struct radeon_cs {
- uint32_t *packets;
- unsigned cdw;
- unsigned ndw;
- unsigned section_ndw;
- unsigned section_cdw;
-};
-
-#define MAX_SPACE_BOS (32)
-
-struct radeon_cs_manager;
-
-extern struct radeon_cs *radeon_cs_create(struct radeon_cs_manager *csm,
- uint32_t ndw);
-
-extern int radeon_cs_begin(struct radeon_cs *cs,
- uint32_t ndw,
- const char *file,
- const char *func, int line);
-extern int radeon_cs_end(struct radeon_cs *cs,
- const char *file,
- const char *func,
- int line);
-extern int radeon_cs_emit(struct radeon_cs *cs);
-extern int radeon_cs_destroy(struct radeon_cs *cs);
-extern int radeon_cs_erase(struct radeon_cs *cs);
-extern int radeon_cs_need_flush(struct radeon_cs *cs);
-extern void radeon_cs_print(struct radeon_cs *cs, FILE *file);
-extern void radeon_cs_set_limit(struct radeon_cs *cs, uint32_t domain, uint32_t limit);
-extern void radeon_cs_space_set_flush(struct radeon_cs *cs, void (*fn)(void *), void *data);
-extern int radeon_cs_write_reloc(struct radeon_cs *cs,
- struct radeon_bo *bo,
- uint32_t read_domain,
- uint32_t write_domain,
- uint32_t flags);
-extern uint32_t radeon_cs_get_id(struct radeon_cs *cs);
-/*
- * add a persistent BO to the list
- * a persistent BO is one that will be referenced across flushes,
- * i.e. colorbuffer, textures etc.
- * They get reset when a new "operation" happens, where an operation
- * is a state emission with a color/textures etc followed by a bunch of vertices.
- */
-void radeon_cs_space_add_persistent_bo(struct radeon_cs *cs,
- struct radeon_bo *bo,
- uint32_t read_domains,
- uint32_t write_domain);
-
-/* reset the persistent BO list */
-void radeon_cs_space_reset_bos(struct radeon_cs *cs);
-
-/* do a space check with the current persistent BO list */
-int radeon_cs_space_check(struct radeon_cs *cs);
-
-/* do a space check with the current persistent BO list and a temporary BO
- * a temporary BO is like a DMA buffer, which gets flushed with the
- * command buffer */
-int radeon_cs_space_check_with_bo(struct radeon_cs *cs,
- struct radeon_bo *bo,
- uint32_t read_domains,
- uint32_t write_domain);
-
-static inline void radeon_cs_write_dword(struct radeon_cs *cs, uint32_t dword)
-{
- cs->packets[cs->cdw++] = dword;
- if (cs->section_ndw) {
- cs->section_cdw++;
- }
-}
-
-static inline void radeon_cs_write_qword(struct radeon_cs *cs, uint64_t qword)
-{
- memcpy(cs->packets + cs->cdw, &qword, sizeof(uint64_t));
- cs->cdw += 2;
- if (cs->section_ndw) {
- cs->section_cdw += 2;
- }
-}
-
-static inline void radeon_cs_write_table(struct radeon_cs *cs,
- const void *data, uint32_t size)
-{
- memcpy(cs->packets + cs->cdw, data, size * 4);
- cs->cdw += size;
- if (cs->section_ndw) {
- cs->section_cdw += size;
- }
-}
-#endif
diff --git a/libdrm/libdrm/radeon_cs_gem.h b/libdrm/libdrm/radeon_cs_gem.h
deleted file mode 100644
index 5dea38a..0000000
--- a/libdrm/libdrm/radeon_cs_gem.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright © 2008 Nicolai Haehnle
- * Copyright © 2008 Jérôme Glisse
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
- * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- */
-/*
- * Authors:
- * Aapo Tahkola <aet@rasterburn.org>
- * Nicolai Haehnle <prefect_@gmx.net>
- * Jérôme Glisse <glisse@freedesktop.org>
- */
-#ifndef RADEON_CS_GEM_H
-#define RADEON_CS_GEM_H
-
-#include "radeon_cs.h"
-
-struct radeon_cs_manager *radeon_cs_manager_gem_ctor(int fd);
-void radeon_cs_manager_gem_dtor(struct radeon_cs_manager *csm);
-
-#endif
diff --git a/libdrm/libdrm/radeon_cs_int.h b/libdrm/libdrm/radeon_cs_int.h
deleted file mode 100644
index d906ad4..0000000
--- a/libdrm/libdrm/radeon_cs_int.h
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#ifndef _RADEON_CS_INT_H_
-#define _RADEON_CS_INT_H_
-
-struct radeon_cs_space_check {
- struct radeon_bo_int *bo;
- uint32_t read_domains;
- uint32_t write_domain;
- uint32_t new_accounted;
-};
-
-struct radeon_cs_int {
- /* keep first two in same place */
- uint32_t *packets;
- unsigned cdw;
- unsigned ndw;
- unsigned section_ndw;
- unsigned section_cdw;
- /* private members */
- struct radeon_cs_manager *csm;
- void *relocs;
- unsigned crelocs;
- unsigned relocs_total_size;
- const char *section_file;
- const char *section_func;
- int section_line;
- struct radeon_cs_space_check bos[MAX_SPACE_BOS];
- int bo_count;
- void (*space_flush_fn)(void *);
- void *space_flush_data;
- uint32_t id;
-};
-
-/* cs functions */
-struct radeon_cs_funcs {
- struct radeon_cs_int *(*cs_create)(struct radeon_cs_manager *csm,
- uint32_t ndw);
- int (*cs_write_reloc)(struct radeon_cs_int *cs,
- struct radeon_bo *bo,
- uint32_t read_domain,
- uint32_t write_domain,
- uint32_t flags);
- int (*cs_begin)(struct radeon_cs_int *cs,
- uint32_t ndw,
- const char *file,
- const char *func,
- int line);
- int (*cs_end)(struct radeon_cs_int *cs,
- const char *file, const char *func,
- int line);
-
-
- int (*cs_emit)(struct radeon_cs_int *cs);
- int (*cs_destroy)(struct radeon_cs_int *cs);
- int (*cs_erase)(struct radeon_cs_int *cs);
- int (*cs_need_flush)(struct radeon_cs_int *cs);
- void (*cs_print)(struct radeon_cs_int *cs, FILE *file);
-};
-
-struct radeon_cs_manager {
- const struct radeon_cs_funcs *funcs;
- int fd;
- int32_t vram_limit, gart_limit;
- int32_t vram_write_used, gart_write_used;
- int32_t read_used;
-};
-#endif
diff --git a/libdrm/libdrm/radeon_drm.h b/libdrm/libdrm/radeon_drm.h
deleted file mode 100644
index a1e385d..0000000
--- a/libdrm/libdrm/radeon_drm.h
+++ /dev/null
@@ -1,1079 +0,0 @@
-/* radeon_drm.h -- Public header for the radeon driver -*- linux-c -*-
- *
- * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
- * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- * Kevin E. Martin <martin@valinux.com>
- * Gareth Hughes <gareth@valinux.com>
- * Keith Whitwell <keith@tungstengraphics.com>
- */
-
-#ifndef __RADEON_DRM_H__
-#define __RADEON_DRM_H__
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the X server file (radeon_sarea.h)
- */
-#ifndef __RADEON_SAREA_DEFINES__
-#define __RADEON_SAREA_DEFINES__
-
-/* Old style state flags, required for sarea interface (1.1 and 1.2
- * clears) and 1.2 drm_vertex2 ioctl.
- */
-#define RADEON_UPLOAD_CONTEXT 0x00000001
-#define RADEON_UPLOAD_VERTFMT 0x00000002
-#define RADEON_UPLOAD_LINE 0x00000004
-#define RADEON_UPLOAD_BUMPMAP 0x00000008
-#define RADEON_UPLOAD_MASKS 0x00000010
-#define RADEON_UPLOAD_VIEWPORT 0x00000020
-#define RADEON_UPLOAD_SETUP 0x00000040
-#define RADEON_UPLOAD_TCL 0x00000080
-#define RADEON_UPLOAD_MISC 0x00000100
-#define RADEON_UPLOAD_TEX0 0x00000200
-#define RADEON_UPLOAD_TEX1 0x00000400
-#define RADEON_UPLOAD_TEX2 0x00000800
-#define RADEON_UPLOAD_TEX0IMAGES 0x00001000
-#define RADEON_UPLOAD_TEX1IMAGES 0x00002000
-#define RADEON_UPLOAD_TEX2IMAGES 0x00004000
-#define RADEON_UPLOAD_CLIPRECTS 0x00008000 /* handled client-side */
-#define RADEON_REQUIRE_QUIESCENCE 0x00010000
-#define RADEON_UPLOAD_ZBIAS 0x00020000 /* version 1.2 and newer */
-#define RADEON_UPLOAD_ALL 0x003effff
-#define RADEON_UPLOAD_CONTEXT_ALL 0x003e01ff
-
-/* New style per-packet identifiers for use in cmd_buffer ioctl with
- * the RADEON_EMIT_PACKET command. Comments relate new packets to old
- * state bits and the packet size:
- */
-#define RADEON_EMIT_PP_MISC 0 /* context/7 */
-#define RADEON_EMIT_PP_CNTL 1 /* context/3 */
-#define RADEON_EMIT_RB3D_COLORPITCH 2 /* context/1 */
-#define RADEON_EMIT_RE_LINE_PATTERN 3 /* line/2 */
-#define RADEON_EMIT_SE_LINE_WIDTH 4 /* line/1 */
-#define RADEON_EMIT_PP_LUM_MATRIX 5 /* bumpmap/1 */
-#define RADEON_EMIT_PP_ROT_MATRIX_0 6 /* bumpmap/2 */
-#define RADEON_EMIT_RB3D_STENCILREFMASK 7 /* masks/3 */
-#define RADEON_EMIT_SE_VPORT_XSCALE 8 /* viewport/6 */
-#define RADEON_EMIT_SE_CNTL 9 /* setup/2 */
-#define RADEON_EMIT_SE_CNTL_STATUS 10 /* setup/1 */
-#define RADEON_EMIT_RE_MISC 11 /* misc/1 */
-#define RADEON_EMIT_PP_TXFILTER_0 12 /* tex0/6 */
-#define RADEON_EMIT_PP_BORDER_COLOR_0 13 /* tex0/1 */
-#define RADEON_EMIT_PP_TXFILTER_1 14 /* tex1/6 */
-#define RADEON_EMIT_PP_BORDER_COLOR_1 15 /* tex1/1 */
-#define RADEON_EMIT_PP_TXFILTER_2 16 /* tex2/6 */
-#define RADEON_EMIT_PP_BORDER_COLOR_2 17 /* tex2/1 */
-#define RADEON_EMIT_SE_ZBIAS_FACTOR 18 /* zbias/2 */
-#define RADEON_EMIT_SE_TCL_OUTPUT_VTX_FMT 19 /* tcl/11 */
-#define RADEON_EMIT_SE_TCL_MATERIAL_EMMISSIVE_RED 20 /* material/17 */
-#define R200_EMIT_PP_TXCBLEND_0 21 /* tex0/4 */
-#define R200_EMIT_PP_TXCBLEND_1 22 /* tex1/4 */
-#define R200_EMIT_PP_TXCBLEND_2 23 /* tex2/4 */
-#define R200_EMIT_PP_TXCBLEND_3 24 /* tex3/4 */
-#define R200_EMIT_PP_TXCBLEND_4 25 /* tex4/4 */
-#define R200_EMIT_PP_TXCBLEND_5 26 /* tex5/4 */
-#define R200_EMIT_PP_TXCBLEND_6 27 /* /4 */
-#define R200_EMIT_PP_TXCBLEND_7 28 /* /4 */
-#define R200_EMIT_TCL_LIGHT_MODEL_CTL_0 29 /* tcl/7 */
-#define R200_EMIT_TFACTOR_0 30 /* tf/7 */
-#define R200_EMIT_VTX_FMT_0 31 /* vtx/5 */
-#define R200_EMIT_VAP_CTL 32 /* vap/1 */
-#define R200_EMIT_MATRIX_SELECT_0 33 /* msl/5 */
-#define R200_EMIT_TEX_PROC_CTL_2 34 /* tcg/5 */
-#define R200_EMIT_TCL_UCP_VERT_BLEND_CTL 35 /* tcl/1 */
-#define R200_EMIT_PP_TXFILTER_0 36 /* tex0/6 */
-#define R200_EMIT_PP_TXFILTER_1 37 /* tex1/6 */
-#define R200_EMIT_PP_TXFILTER_2 38 /* tex2/6 */
-#define R200_EMIT_PP_TXFILTER_3 39 /* tex3/6 */
-#define R200_EMIT_PP_TXFILTER_4 40 /* tex4/6 */
-#define R200_EMIT_PP_TXFILTER_5 41 /* tex5/6 */
-#define R200_EMIT_PP_TXOFFSET_0 42 /* tex0/1 */
-#define R200_EMIT_PP_TXOFFSET_1 43 /* tex1/1 */
-#define R200_EMIT_PP_TXOFFSET_2 44 /* tex2/1 */
-#define R200_EMIT_PP_TXOFFSET_3 45 /* tex3/1 */
-#define R200_EMIT_PP_TXOFFSET_4 46 /* tex4/1 */
-#define R200_EMIT_PP_TXOFFSET_5 47 /* tex5/1 */
-#define R200_EMIT_VTE_CNTL 48 /* vte/1 */
-#define R200_EMIT_OUTPUT_VTX_COMP_SEL 49 /* vtx/1 */
-#define R200_EMIT_PP_TAM_DEBUG3 50 /* tam/1 */
-#define R200_EMIT_PP_CNTL_X 51 /* cst/1 */
-#define R200_EMIT_RB3D_DEPTHXY_OFFSET 52 /* cst/1 */
-#define R200_EMIT_RE_AUX_SCISSOR_CNTL 53 /* cst/1 */
-#define R200_EMIT_RE_SCISSOR_TL_0 54 /* cst/2 */
-#define R200_EMIT_RE_SCISSOR_TL_1 55 /* cst/2 */
-#define R200_EMIT_RE_SCISSOR_TL_2 56 /* cst/2 */
-#define R200_EMIT_SE_VAP_CNTL_STATUS 57 /* cst/1 */
-#define R200_EMIT_SE_VTX_STATE_CNTL 58 /* cst/1 */
-#define R200_EMIT_RE_POINTSIZE 59 /* cst/1 */
-#define R200_EMIT_TCL_INPUT_VTX_VECTOR_ADDR_0 60 /* cst/4 */
-#define R200_EMIT_PP_CUBIC_FACES_0 61
-#define R200_EMIT_PP_CUBIC_OFFSETS_0 62
-#define R200_EMIT_PP_CUBIC_FACES_1 63
-#define R200_EMIT_PP_CUBIC_OFFSETS_1 64
-#define R200_EMIT_PP_CUBIC_FACES_2 65
-#define R200_EMIT_PP_CUBIC_OFFSETS_2 66
-#define R200_EMIT_PP_CUBIC_FACES_3 67
-#define R200_EMIT_PP_CUBIC_OFFSETS_3 68
-#define R200_EMIT_PP_CUBIC_FACES_4 69
-#define R200_EMIT_PP_CUBIC_OFFSETS_4 70
-#define R200_EMIT_PP_CUBIC_FACES_5 71
-#define R200_EMIT_PP_CUBIC_OFFSETS_5 72
-#define RADEON_EMIT_PP_TEX_SIZE_0 73
-#define RADEON_EMIT_PP_TEX_SIZE_1 74
-#define RADEON_EMIT_PP_TEX_SIZE_2 75
-#define R200_EMIT_RB3D_BLENDCOLOR 76
-#define R200_EMIT_TCL_POINT_SPRITE_CNTL 77
-#define RADEON_EMIT_PP_CUBIC_FACES_0 78
-#define RADEON_EMIT_PP_CUBIC_OFFSETS_T0 79
-#define RADEON_EMIT_PP_CUBIC_FACES_1 80
-#define RADEON_EMIT_PP_CUBIC_OFFSETS_T1 81
-#define RADEON_EMIT_PP_CUBIC_FACES_2 82
-#define RADEON_EMIT_PP_CUBIC_OFFSETS_T2 83
-#define R200_EMIT_PP_TRI_PERF_CNTL 84
-#define R200_EMIT_PP_AFS_0 85
-#define R200_EMIT_PP_AFS_1 86
-#define R200_EMIT_ATF_TFACTOR 87
-#define R200_EMIT_PP_TXCTLALL_0 88
-#define R200_EMIT_PP_TXCTLALL_1 89
-#define R200_EMIT_PP_TXCTLALL_2 90
-#define R200_EMIT_PP_TXCTLALL_3 91
-#define R200_EMIT_PP_TXCTLALL_4 92
-#define R200_EMIT_PP_TXCTLALL_5 93
-#define R200_EMIT_VAP_PVS_CNTL 94
-#define RADEON_MAX_STATE_PACKETS 95
-
-/* Commands understood by cmd_buffer ioctl. More can be added but
- * obviously these can't be removed or changed:
- */
-#define RADEON_CMD_PACKET 1 /* emit one of the register packets above */
-#define RADEON_CMD_SCALARS 2 /* emit scalar data */
-#define RADEON_CMD_VECTORS 3 /* emit vector data */
-#define RADEON_CMD_DMA_DISCARD 4 /* discard current dma buf */
-#define RADEON_CMD_PACKET3 5 /* emit hw packet */
-#define RADEON_CMD_PACKET3_CLIP 6 /* emit hw packet wrapped in cliprects */
-#define RADEON_CMD_SCALARS2 7 /* r200 stopgap */
-#define RADEON_CMD_WAIT 8 /* emit hw wait commands -- note:
- * doesn't make the cpu wait, just
- * the graphics hardware */
-#define RADEON_CMD_VECLINEAR 9 /* another r200 stopgap */
-
-typedef union {
- int i;
- struct {
- unsigned char cmd_type, pad0, pad1, pad2;
- } header;
- struct {
- unsigned char cmd_type, packet_id, pad0, pad1;
- } packet;
- struct {
- unsigned char cmd_type, offset, stride, count;
- } scalars;
- struct {
- unsigned char cmd_type, offset, stride, count;
- } vectors;
- struct {
- unsigned char cmd_type, addr_lo, addr_hi, count;
- } veclinear;
- struct {
- unsigned char cmd_type, buf_idx, pad0, pad1;
- } dma;
- struct {
- unsigned char cmd_type, flags, pad0, pad1;
- } wait;
-} drm_radeon_cmd_header_t;
-
-#define RADEON_WAIT_2D 0x1
-#define RADEON_WAIT_3D 0x2
-
-/* Allowed parameters for R300_CMD_PACKET3
- */
-#define R300_CMD_PACKET3_CLEAR 0
-#define R300_CMD_PACKET3_RAW 1
-
-/* Commands understood by cmd_buffer ioctl for R300.
- * The interface has not been stabilized, so some of these may be removed
- * and eventually reordered before stabilization.
- */
-#define R300_CMD_PACKET0 1
-#define R300_CMD_VPU 2 /* emit vertex program upload */
-#define R300_CMD_PACKET3 3 /* emit a packet3 */
-#define R300_CMD_END3D 4 /* emit sequence ending 3d rendering */
-#define R300_CMD_CP_DELAY 5
-#define R300_CMD_DMA_DISCARD 6
-#define R300_CMD_WAIT 7
-# define R300_WAIT_2D 0x1
-# define R300_WAIT_3D 0x2
-/* these two defines are DOING IT WRONG - however
- * we have userspace which relies on using these.
- * The wait interface is backwards compat new
- * code should use the NEW_WAIT defines below
- * THESE ARE NOT BIT FIELDS
- */
-# define R300_WAIT_2D_CLEAN 0x3
-# define R300_WAIT_3D_CLEAN 0x4
-
-# define R300_NEW_WAIT_2D_3D 0x3
-# define R300_NEW_WAIT_2D_2D_CLEAN 0x4
-# define R300_NEW_WAIT_3D_3D_CLEAN 0x6
-# define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN 0x8
-
-#define R300_CMD_SCRATCH 8
-#define R300_CMD_R500FP 9
-
-typedef union {
- unsigned int u;
- struct {
- unsigned char cmd_type, pad0, pad1, pad2;
- } header;
- struct {
- unsigned char cmd_type, count, reglo, reghi;
- } packet0;
- struct {
- unsigned char cmd_type, count, adrlo, adrhi;
- } vpu;
- struct {
- unsigned char cmd_type, packet, pad0, pad1;
- } packet3;
- struct {
- unsigned char cmd_type, packet;
- unsigned short count; /* amount of packet2 to emit */
- } delay;
- struct {
- unsigned char cmd_type, buf_idx, pad0, pad1;
- } dma;
- struct {
- unsigned char cmd_type, flags, pad0, pad1;
- } wait;
- struct {
- unsigned char cmd_type, reg, n_bufs, flags;
- } scratch;
- struct {
- unsigned char cmd_type, count, adrlo, adrhi_flags;
- } r500fp;
-} drm_r300_cmd_header_t;
-
-#define RADEON_FRONT 0x1
-#define RADEON_BACK 0x2
-#define RADEON_DEPTH 0x4
-#define RADEON_STENCIL 0x8
-#define RADEON_CLEAR_FASTZ 0x80000000
-#define RADEON_USE_HIERZ 0x40000000
-#define RADEON_USE_COMP_ZBUF 0x20000000
-
-#define R500FP_CONSTANT_TYPE (1 << 1)
-#define R500FP_CONSTANT_CLAMP (1 << 2)
-
-/* Primitive types
- */
-#define RADEON_POINTS 0x1
-#define RADEON_LINES 0x2
-#define RADEON_LINE_STRIP 0x3
-#define RADEON_TRIANGLES 0x4
-#define RADEON_TRIANGLE_FAN 0x5
-#define RADEON_TRIANGLE_STRIP 0x6
-
-/* Vertex/indirect buffer size
- */
-#define RADEON_BUFFER_SIZE 65536
-
-/* Byte offsets for indirect buffer data
- */
-#define RADEON_INDEX_PRIM_OFFSET 20
-
-#define RADEON_SCRATCH_REG_OFFSET 32
-
-#define R600_SCRATCH_REG_OFFSET 256
-
-#define RADEON_NR_SAREA_CLIPRECTS 12
-
-/* There are 2 heaps (local/GART). Each region within a heap is a
- * minimum of 64k, and there are at most 64 of them per heap.
- */
-#define RADEON_LOCAL_TEX_HEAP 0
-#define RADEON_GART_TEX_HEAP 1
-#define RADEON_NR_TEX_HEAPS 2
-#define RADEON_NR_TEX_REGIONS 64
-#define RADEON_LOG_TEX_GRANULARITY 16
-
-#define RADEON_MAX_TEXTURE_LEVELS 12
-#define RADEON_MAX_TEXTURE_UNITS 3
-
-#define RADEON_MAX_SURFACES 8
-
-/* Blits have strict offset rules. All blit offset must be aligned on
- * a 1K-byte boundary.
- */
-#define RADEON_OFFSET_SHIFT 10
-#define RADEON_OFFSET_ALIGN (1 << RADEON_OFFSET_SHIFT)
-#define RADEON_OFFSET_MASK (RADEON_OFFSET_ALIGN - 1)
-
-#endif /* __RADEON_SAREA_DEFINES__ */
-
-typedef struct {
- unsigned int red;
- unsigned int green;
- unsigned int blue;
- unsigned int alpha;
-} radeon_color_regs_t;
-
-typedef struct {
- /* Context state */
- unsigned int pp_misc; /* 0x1c14 */
- unsigned int pp_fog_color;
- unsigned int re_solid_color;
- unsigned int rb3d_blendcntl;
- unsigned int rb3d_depthoffset;
- unsigned int rb3d_depthpitch;
- unsigned int rb3d_zstencilcntl;
-
- unsigned int pp_cntl; /* 0x1c38 */
- unsigned int rb3d_cntl;
- unsigned int rb3d_coloroffset;
- unsigned int re_width_height;
- unsigned int rb3d_colorpitch;
- unsigned int se_cntl;
-
- /* Vertex format state */
- unsigned int se_coord_fmt; /* 0x1c50 */
-
- /* Line state */
- unsigned int re_line_pattern; /* 0x1cd0 */
- unsigned int re_line_state;
-
- unsigned int se_line_width; /* 0x1db8 */
-
- /* Bumpmap state */
- unsigned int pp_lum_matrix; /* 0x1d00 */
-
- unsigned int pp_rot_matrix_0; /* 0x1d58 */
- unsigned int pp_rot_matrix_1;
-
- /* Mask state */
- unsigned int rb3d_stencilrefmask; /* 0x1d7c */
- unsigned int rb3d_ropcntl;
- unsigned int rb3d_planemask;
-
- /* Viewport state */
- unsigned int se_vport_xscale; /* 0x1d98 */
- unsigned int se_vport_xoffset;
- unsigned int se_vport_yscale;
- unsigned int se_vport_yoffset;
- unsigned int se_vport_zscale;
- unsigned int se_vport_zoffset;
-
- /* Setup state */
- unsigned int se_cntl_status; /* 0x2140 */
-
- /* Misc state */
- unsigned int re_top_left; /* 0x26c0 */
- unsigned int re_misc;
-} drm_radeon_context_regs_t;
-
-typedef struct {
- /* Zbias state */
- unsigned int se_zbias_factor; /* 0x1dac */
- unsigned int se_zbias_constant;
-} drm_radeon_context2_regs_t;
-
-/* Setup registers for each texture unit
- */
-typedef struct {
- unsigned int pp_txfilter;
- unsigned int pp_txformat;
- unsigned int pp_txoffset;
- unsigned int pp_txcblend;
- unsigned int pp_txablend;
- unsigned int pp_tfactor;
- unsigned int pp_border_color;
-} drm_radeon_texture_regs_t;
-
-typedef struct {
- unsigned int start;
- unsigned int finish;
- unsigned int prim:8;
- unsigned int stateidx:8;
- unsigned int numverts:16; /* overloaded as offset/64 for elt prims */
- unsigned int vc_format; /* vertex format */
-} drm_radeon_prim_t;
-
-typedef struct {
- drm_radeon_context_regs_t context;
- drm_radeon_texture_regs_t tex[RADEON_MAX_TEXTURE_UNITS];
- drm_radeon_context2_regs_t context2;
- unsigned int dirty;
-} drm_radeon_state_t;
-
-typedef struct {
- /* The channel for communication of state information to the
- * kernel on firing a vertex buffer with either of the
- * obsoleted vertex/index ioctls.
- */
- drm_radeon_context_regs_t context_state;
- drm_radeon_texture_regs_t tex_state[RADEON_MAX_TEXTURE_UNITS];
- unsigned int dirty;
- unsigned int vertsize;
- unsigned int vc_format;
-
- /* The current cliprects, or a subset thereof.
- */
- struct drm_clip_rect boxes[RADEON_NR_SAREA_CLIPRECTS];
- unsigned int nbox;
-
- /* Counters for client-side throttling of rendering clients.
- */
- unsigned int last_frame;
- unsigned int last_dispatch;
- unsigned int last_clear;
-
- struct drm_tex_region tex_list[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS +
- 1];
- unsigned int tex_age[RADEON_NR_TEX_HEAPS];
- int ctx_owner;
- int pfState; /* number of 3d windows (0,1,2ormore) */
- int pfCurrentPage; /* which buffer is being displayed? */
- int crtc2_base; /* CRTC2 frame offset */
- int tiling_enabled; /* set by drm, read by 2d + 3d clients */
-} drm_radeon_sarea_t;
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the Xserver file (xf86drmRadeon.h)
- *
- * KW: actually it's illegal to change any of this (backwards compatibility).
- */
-
-/* Radeon specific ioctls
- * The device specific ioctl range is 0x40 to 0x79.
- */
-#define DRM_RADEON_CP_INIT 0x00
-#define DRM_RADEON_CP_START 0x01
-#define DRM_RADEON_CP_STOP 0x02
-#define DRM_RADEON_CP_RESET 0x03
-#define DRM_RADEON_CP_IDLE 0x04
-#define DRM_RADEON_RESET 0x05
-#define DRM_RADEON_FULLSCREEN 0x06
-#define DRM_RADEON_SWAP 0x07
-#define DRM_RADEON_CLEAR 0x08
-#define DRM_RADEON_VERTEX 0x09
-#define DRM_RADEON_INDICES 0x0A
-#define DRM_RADEON_NOT_USED
-#define DRM_RADEON_STIPPLE 0x0C
-#define DRM_RADEON_INDIRECT 0x0D
-#define DRM_RADEON_TEXTURE 0x0E
-#define DRM_RADEON_VERTEX2 0x0F
-#define DRM_RADEON_CMDBUF 0x10
-#define DRM_RADEON_GETPARAM 0x11
-#define DRM_RADEON_FLIP 0x12
-#define DRM_RADEON_ALLOC 0x13
-#define DRM_RADEON_FREE 0x14
-#define DRM_RADEON_INIT_HEAP 0x15
-#define DRM_RADEON_IRQ_EMIT 0x16
-#define DRM_RADEON_IRQ_WAIT 0x17
-#define DRM_RADEON_CP_RESUME 0x18
-#define DRM_RADEON_SETPARAM 0x19
-#define DRM_RADEON_SURF_ALLOC 0x1a
-#define DRM_RADEON_SURF_FREE 0x1b
-/* KMS ioctl */
-#define DRM_RADEON_GEM_INFO 0x1c
-#define DRM_RADEON_GEM_CREATE 0x1d
-#define DRM_RADEON_GEM_MMAP 0x1e
-#define DRM_RADEON_GEM_PREAD 0x21
-#define DRM_RADEON_GEM_PWRITE 0x22
-#define DRM_RADEON_GEM_SET_DOMAIN 0x23
-#define DRM_RADEON_GEM_WAIT_IDLE 0x24
-#define DRM_RADEON_CS 0x26
-#define DRM_RADEON_INFO 0x27
-#define DRM_RADEON_GEM_SET_TILING 0x28
-#define DRM_RADEON_GEM_GET_TILING 0x29
-#define DRM_RADEON_GEM_BUSY 0x2a
-#define DRM_RADEON_GEM_VA 0x2b
-#define DRM_RADEON_GEM_OP 0x2c
-#define DRM_RADEON_GEM_USERPTR 0x2d
-
-#define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t)
-#define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START)
-#define DRM_IOCTL_RADEON_CP_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t)
-#define DRM_IOCTL_RADEON_CP_RESET DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_RESET)
-#define DRM_IOCTL_RADEON_CP_IDLE DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_IDLE)
-#define DRM_IOCTL_RADEON_RESET DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_RESET)
-#define DRM_IOCTL_RADEON_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FULLSCREEN, drm_radeon_fullscreen_t)
-#define DRM_IOCTL_RADEON_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_SWAP)
-#define DRM_IOCTL_RADEON_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CLEAR, drm_radeon_clear_t)
-#define DRM_IOCTL_RADEON_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX, drm_radeon_vertex_t)
-#define DRM_IOCTL_RADEON_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INDICES, drm_radeon_indices_t)
-#define DRM_IOCTL_RADEON_STIPPLE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_STIPPLE, drm_radeon_stipple_t)
-#define DRM_IOCTL_RADEON_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INDIRECT, drm_radeon_indirect_t)
-#define DRM_IOCTL_RADEON_TEXTURE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_TEXTURE, drm_radeon_texture_t)
-#define DRM_IOCTL_RADEON_VERTEX2 DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX2, drm_radeon_vertex2_t)
-#define DRM_IOCTL_RADEON_CMDBUF DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CMDBUF, drm_radeon_cmd_buffer_t)
-#define DRM_IOCTL_RADEON_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GETPARAM, drm_radeon_getparam_t)
-#define DRM_IOCTL_RADEON_FLIP DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_FLIP)
-#define DRM_IOCTL_RADEON_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_ALLOC, drm_radeon_mem_alloc_t)
-#define DRM_IOCTL_RADEON_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FREE, drm_radeon_mem_free_t)
-#define DRM_IOCTL_RADEON_INIT_HEAP DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INIT_HEAP, drm_radeon_mem_init_heap_t)
-#define DRM_IOCTL_RADEON_IRQ_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_IRQ_EMIT, drm_radeon_irq_emit_t)
-#define DRM_IOCTL_RADEON_IRQ_WAIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_IRQ_WAIT, drm_radeon_irq_wait_t)
-#define DRM_IOCTL_RADEON_CP_RESUME DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_RESUME)
-#define DRM_IOCTL_RADEON_SETPARAM DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SETPARAM, drm_radeon_setparam_t)
-#define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t)
-#define DRM_IOCTL_RADEON_SURF_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t)
-/* KMS */
-#define DRM_IOCTL_RADEON_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_INFO, struct drm_radeon_gem_info)
-#define DRM_IOCTL_RADEON_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_CREATE, struct drm_radeon_gem_create)
-#define DRM_IOCTL_RADEON_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_MMAP, struct drm_radeon_gem_mmap)
-#define DRM_IOCTL_RADEON_GEM_PREAD DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PREAD, struct drm_radeon_gem_pread)
-#define DRM_IOCTL_RADEON_GEM_PWRITE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PWRITE, struct drm_radeon_gem_pwrite)
-#define DRM_IOCTL_RADEON_GEM_SET_DOMAIN DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_DOMAIN, struct drm_radeon_gem_set_domain)
-#define DRM_IOCTL_RADEON_GEM_WAIT_IDLE DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_GEM_WAIT_IDLE, struct drm_radeon_gem_wait_idle)
-#define DRM_IOCTL_RADEON_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS, struct drm_radeon_cs)
-#define DRM_IOCTL_RADEON_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INFO, struct drm_radeon_info)
-#define DRM_IOCTL_RADEON_GEM_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_TILING, struct drm_radeon_gem_set_tiling)
-#define DRM_IOCTL_RADEON_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_GET_TILING, struct drm_radeon_gem_get_tiling)
-#define DRM_IOCTL_RADEON_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_BUSY, struct drm_radeon_gem_busy)
-#define DRM_IOCTL_RADEON_GEM_VA DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_VA, struct drm_radeon_gem_va)
-#define DRM_IOCTL_RADEON_GEM_OP DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_OP, struct drm_radeon_gem_op)
-#define DRM_IOCTL_RADEON_GEM_USERPTR DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_USERPTR, struct drm_radeon_gem_userptr)
-
-typedef struct drm_radeon_init {
- enum {
- RADEON_INIT_CP = 0x01,
- RADEON_CLEANUP_CP = 0x02,
- RADEON_INIT_R200_CP = 0x03,
- RADEON_INIT_R300_CP = 0x04,
- RADEON_INIT_R600_CP = 0x05
- } func;
- unsigned long sarea_priv_offset;
- int is_pci;
- int cp_mode;
- int gart_size;
- int ring_size;
- int usec_timeout;
-
- unsigned int fb_bpp;
- unsigned int front_offset, front_pitch;
- unsigned int back_offset, back_pitch;
- unsigned int depth_bpp;
- unsigned int depth_offset, depth_pitch;
-
- unsigned long fb_offset;
- unsigned long mmio_offset;
- unsigned long ring_offset;
- unsigned long ring_rptr_offset;
- unsigned long buffers_offset;
- unsigned long gart_textures_offset;
-} drm_radeon_init_t;
-
-typedef struct drm_radeon_cp_stop {
- int flush;
- int idle;
-} drm_radeon_cp_stop_t;
-
-typedef struct drm_radeon_fullscreen {
- enum {
- RADEON_INIT_FULLSCREEN = 0x01,
- RADEON_CLEANUP_FULLSCREEN = 0x02
- } func;
-} drm_radeon_fullscreen_t;
-
-#define CLEAR_X1 0
-#define CLEAR_Y1 1
-#define CLEAR_X2 2
-#define CLEAR_Y2 3
-#define CLEAR_DEPTH 4
-
-typedef union drm_radeon_clear_rect {
- float f[5];
- unsigned int ui[5];
-} drm_radeon_clear_rect_t;
-
-typedef struct drm_radeon_clear {
- unsigned int flags;
- unsigned int clear_color;
- unsigned int clear_depth;
- unsigned int color_mask;
- unsigned int depth_mask; /* misnamed field: should be stencil */
- drm_radeon_clear_rect_t *depth_boxes;
-} drm_radeon_clear_t;
-
-typedef struct drm_radeon_vertex {
- int prim;
- int idx; /* Index of vertex buffer */
- int count; /* Number of vertices in buffer */
- int discard; /* Client finished with buffer? */
-} drm_radeon_vertex_t;
-
-typedef struct drm_radeon_indices {
- int prim;
- int idx;
- int start;
- int end;
- int discard; /* Client finished with buffer? */
-} drm_radeon_indices_t;
-
-/* v1.2 - obsoletes drm_radeon_vertex and drm_radeon_indices
- * - allows multiple primitives and state changes in a single ioctl
- * - supports driver change to emit native primitives
- */
-typedef struct drm_radeon_vertex2 {
- int idx; /* Index of vertex buffer */
- int discard; /* Client finished with buffer? */
- int nr_states;
- drm_radeon_state_t *state;
- int nr_prims;
- drm_radeon_prim_t *prim;
-} drm_radeon_vertex2_t;
-
-/* v1.3 - obsoletes drm_radeon_vertex2
- * - allows arbitrarily large cliprect list
- * - allows updating of tcl packet, vector and scalar state
- * - allows memory-efficient description of state updates
- * - allows state to be emitted without a primitive
- * (for clears, ctx switches)
- * - allows more than one dma buffer to be referenced per ioctl
- * - supports tcl driver
- * - may be extended in future versions with new cmd types, packets
- */
-typedef struct drm_radeon_cmd_buffer {
- int bufsz;
- char *buf;
- int nbox;
- struct drm_clip_rect *boxes;
-} drm_radeon_cmd_buffer_t;
-
-typedef struct drm_radeon_tex_image {
- unsigned int x, y; /* Blit coordinates */
- unsigned int width, height;
- const void *data;
-} drm_radeon_tex_image_t;
-
-typedef struct drm_radeon_texture {
- unsigned int offset;
- int pitch;
- int format;
- int width; /* Texture image coordinates */
- int height;
- drm_radeon_tex_image_t *image;
-} drm_radeon_texture_t;
-
-typedef struct drm_radeon_stipple {
- unsigned int *mask;
-} drm_radeon_stipple_t;
-
-typedef struct drm_radeon_indirect {
- int idx;
- int start;
- int end;
- int discard;
-} drm_radeon_indirect_t;
-
-/* enum for card type parameters */
-#define RADEON_CARD_PCI 0
-#define RADEON_CARD_AGP 1
-#define RADEON_CARD_PCIE 2
-
-/* 1.3: An ioctl to get parameters that aren't available to the 3d
- * client any other way.
- */
-#define RADEON_PARAM_GART_BUFFER_OFFSET 1 /* card offset of 1st GART buffer */
-#define RADEON_PARAM_LAST_FRAME 2
-#define RADEON_PARAM_LAST_DISPATCH 3
-#define RADEON_PARAM_LAST_CLEAR 4
-/* Added with DRM version 1.6. */
-#define RADEON_PARAM_IRQ_NR 5
-#define RADEON_PARAM_GART_BASE 6 /* card offset of GART base */
-/* Added with DRM version 1.8. */
-#define RADEON_PARAM_REGISTER_HANDLE 7 /* for drmMap() */
-#define RADEON_PARAM_STATUS_HANDLE 8
-#define RADEON_PARAM_SAREA_HANDLE 9
-#define RADEON_PARAM_GART_TEX_HANDLE 10
-#define RADEON_PARAM_SCRATCH_OFFSET 11
-#define RADEON_PARAM_CARD_TYPE 12
-#define RADEON_PARAM_VBLANK_CRTC 13 /* VBLANK CRTC */
-#define RADEON_PARAM_FB_LOCATION 14 /* FB location */
-#define RADEON_PARAM_NUM_GB_PIPES 15 /* num GB pipes */
-#define RADEON_PARAM_DEVICE_ID 16
-#define RADEON_PARAM_NUM_Z_PIPES 17 /* num Z pipes */
-
-typedef struct drm_radeon_getparam {
- int param;
- void *value;
-} drm_radeon_getparam_t;
-
-/* 1.6: Set up a memory manager for regions of shared memory:
- */
-#define RADEON_MEM_REGION_GART 1
-#define RADEON_MEM_REGION_FB 2
-
-typedef struct drm_radeon_mem_alloc {
- int region;
- int alignment;
- int size;
- int *region_offset; /* offset from start of fb or GART */
-} drm_radeon_mem_alloc_t;
-
-typedef struct drm_radeon_mem_free {
- int region;
- int region_offset;
-} drm_radeon_mem_free_t;
-
-typedef struct drm_radeon_mem_init_heap {
- int region;
- int size;
- int start;
-} drm_radeon_mem_init_heap_t;
-
-/* 1.6: Userspace can request & wait on irq's:
- */
-typedef struct drm_radeon_irq_emit {
- int *irq_seq;
-} drm_radeon_irq_emit_t;
-
-typedef struct drm_radeon_irq_wait {
- int irq_seq;
-} drm_radeon_irq_wait_t;
-
-/* 1.10: Clients tell the DRM where they think the framebuffer is located in
- * the card's address space, via a new generic ioctl to set parameters
- */
-
-typedef struct drm_radeon_setparam {
- unsigned int param;
- __s64 value;
-} drm_radeon_setparam_t;
-
-#define RADEON_SETPARAM_FB_LOCATION 1 /* determined framebuffer location */
-#define RADEON_SETPARAM_SWITCH_TILING 2 /* enable/disable color tiling */
-#define RADEON_SETPARAM_PCIGART_LOCATION 3 /* PCI Gart Location */
-#define RADEON_SETPARAM_NEW_MEMMAP 4 /* Use new memory map */
-#define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5 /* PCI GART Table Size */
-#define RADEON_SETPARAM_VBLANK_CRTC 6 /* VBLANK CRTC */
-/* 1.14: Clients can allocate/free a surface
- */
-typedef struct drm_radeon_surface_alloc {
- unsigned int address;
- unsigned int size;
- unsigned int flags;
-} drm_radeon_surface_alloc_t;
-
-typedef struct drm_radeon_surface_free {
- unsigned int address;
-} drm_radeon_surface_free_t;
-
-#define DRM_RADEON_VBLANK_CRTC1 1
-#define DRM_RADEON_VBLANK_CRTC2 2
-
-/*
- * Kernel modesetting world below.
- */
-#define RADEON_GEM_DOMAIN_CPU 0x1
-#define RADEON_GEM_DOMAIN_GTT 0x2
-#define RADEON_GEM_DOMAIN_VRAM 0x4
-
-struct drm_radeon_gem_info {
- __u64 gart_size;
- __u64 vram_size;
- __u64 vram_visible;
-};
-
-#define RADEON_GEM_NO_BACKING_STORE (1 << 0)
-#define RADEON_GEM_GTT_UC (1 << 1)
-#define RADEON_GEM_GTT_WC (1 << 2)
-/* BO is expected to be accessed by the CPU */
-#define RADEON_GEM_CPU_ACCESS (1 << 3)
-/* CPU access is not expected to work for this BO */
-#define RADEON_GEM_NO_CPU_ACCESS (1 << 4)
-
-struct drm_radeon_gem_create {
- __u64 size;
- __u64 alignment;
- __u32 handle;
- __u32 initial_domain;
- __u32 flags;
-};
-
-/*
- * This is not a reliable API and you should expect it to fail for any
- * number of reasons and have fallback path that do not use userptr to
- * perform any operation.
- */
-#define RADEON_GEM_USERPTR_READONLY (1 << 0)
-#define RADEON_GEM_USERPTR_ANONONLY (1 << 1)
-#define RADEON_GEM_USERPTR_VALIDATE (1 << 2)
-#define RADEON_GEM_USERPTR_REGISTER (1 << 3)
-
-struct drm_radeon_gem_userptr {
- __u64 addr;
- __u64 size;
- __u32 flags;
- __u32 handle;
-};
-
-#define RADEON_TILING_MACRO 0x1
-#define RADEON_TILING_MICRO 0x2
-#define RADEON_TILING_SWAP_16BIT 0x4
-#define RADEON_TILING_R600_NO_SCANOUT RADEON_TILING_SWAP_16BIT
-#define RADEON_TILING_SWAP_32BIT 0x8
-/* this object requires a surface when mapped - i.e. front buffer */
-#define RADEON_TILING_SURFACE 0x10
-#define RADEON_TILING_MICRO_SQUARE 0x20
-#define RADEON_TILING_EG_BANKW_SHIFT 8
-#define RADEON_TILING_EG_BANKW_MASK 0xf
-#define RADEON_TILING_EG_BANKH_SHIFT 12
-#define RADEON_TILING_EG_BANKH_MASK 0xf
-#define RADEON_TILING_EG_MACRO_TILE_ASPECT_SHIFT 16
-#define RADEON_TILING_EG_MACRO_TILE_ASPECT_MASK 0xf
-#define RADEON_TILING_EG_TILE_SPLIT_SHIFT 24
-#define RADEON_TILING_EG_TILE_SPLIT_MASK 0xf
-#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_SHIFT 28
-#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_MASK 0xf
-
-struct drm_radeon_gem_set_tiling {
- __u32 handle;
- __u32 tiling_flags;
- __u32 pitch;
-};
-
-struct drm_radeon_gem_get_tiling {
- __u32 handle;
- __u32 tiling_flags;
- __u32 pitch;
-};
-
-struct drm_radeon_gem_mmap {
- __u32 handle;
- __u32 pad;
- __u64 offset;
- __u64 size;
- __u64 addr_ptr;
-};
-
-struct drm_radeon_gem_set_domain {
- __u32 handle;
- __u32 read_domains;
- __u32 write_domain;
-};
-
-struct drm_radeon_gem_wait_idle {
- __u32 handle;
- __u32 pad;
-};
-
-struct drm_radeon_gem_busy {
- __u32 handle;
- __u32 domain;
-};
-
-struct drm_radeon_gem_pread {
- /** Handle for the object being read. */
- __u32 handle;
- __u32 pad;
- /** Offset into the object to read from */
- __u64 offset;
- /** Length of data to read */
- __u64 size;
- /** Pointer to write the data into. */
- /* void *, but pointers are not 32/64 compatible */
- __u64 data_ptr;
-};
-
-struct drm_radeon_gem_pwrite {
- /** Handle for the object being written to. */
- __u32 handle;
- __u32 pad;
- /** Offset into the object to write to */
- __u64 offset;
- /** Length of data to write */
- __u64 size;
- /** Pointer to read the data from. */
- /* void *, but pointers are not 32/64 compatible */
- __u64 data_ptr;
-};
-
-/* Sets or returns a value associated with a buffer. */
-struct drm_radeon_gem_op {
- __u32 handle; /* buffer */
- __u32 op; /* RADEON_GEM_OP_* */
- __u64 value; /* input or return value */
-};
-
-#define RADEON_GEM_OP_GET_INITIAL_DOMAIN 0
-#define RADEON_GEM_OP_SET_INITIAL_DOMAIN 1
-
-#define RADEON_VA_MAP 1
-#define RADEON_VA_UNMAP 2
-
-#define RADEON_VA_RESULT_OK 0
-#define RADEON_VA_RESULT_ERROR 1
-#define RADEON_VA_RESULT_VA_EXIST 2
-
-#define RADEON_VM_PAGE_VALID (1 << 0)
-#define RADEON_VM_PAGE_READABLE (1 << 1)
-#define RADEON_VM_PAGE_WRITEABLE (1 << 2)
-#define RADEON_VM_PAGE_SYSTEM (1 << 3)
-#define RADEON_VM_PAGE_SNOOPED (1 << 4)
-
-struct drm_radeon_gem_va {
- __u32 handle;
- __u32 operation;
- __u32 vm_id;
- __u32 flags;
- __u64 offset;
-};
-
-#define RADEON_CHUNK_ID_RELOCS 0x01
-#define RADEON_CHUNK_ID_IB 0x02
-#define RADEON_CHUNK_ID_FLAGS 0x03
-#define RADEON_CHUNK_ID_CONST_IB 0x04
-
-/* The first dword of RADEON_CHUNK_ID_FLAGS is a uint32 of these flags: */
-#define RADEON_CS_KEEP_TILING_FLAGS 0x01
-#define RADEON_CS_USE_VM 0x02
-#define RADEON_CS_END_OF_FRAME 0x04 /* a hint from userspace which CS is the last one */
-/* The second dword of RADEON_CHUNK_ID_FLAGS is a uint32 that sets the ring type */
-#define RADEON_CS_RING_GFX 0
-#define RADEON_CS_RING_COMPUTE 1
-#define RADEON_CS_RING_DMA 2
-#define RADEON_CS_RING_UVD 3
-#define RADEON_CS_RING_VCE 4
-/* The third dword of RADEON_CHUNK_ID_FLAGS is a sint32 that sets the priority */
-/* 0 = normal, + = higher priority, - = lower priority */
-
-struct drm_radeon_cs_chunk {
- __u32 chunk_id;
- __u32 length_dw;
- __u64 chunk_data;
-};
-
-/* drm_radeon_cs_reloc.flags */
-#define RADEON_RELOC_PRIO_MASK (0xf << 0)
-
-struct drm_radeon_cs_reloc {
- __u32 handle;
- __u32 read_domains;
- __u32 write_domain;
- __u32 flags;
-};
-
-struct drm_radeon_cs {
- __u32 num_chunks;
- __u32 cs_id;
- /* this points to __u64 * which point to cs chunks */
- __u64 chunks;
- /* updates to the limits after this CS ioctl */
- __u64 gart_limit;
- __u64 vram_limit;
-};
-
-#define RADEON_INFO_DEVICE_ID 0x00
-#define RADEON_INFO_NUM_GB_PIPES 0x01
-#define RADEON_INFO_NUM_Z_PIPES 0x02
-#define RADEON_INFO_ACCEL_WORKING 0x03
-#define RADEON_INFO_CRTC_FROM_ID 0x04
-#define RADEON_INFO_ACCEL_WORKING2 0x05
-#define RADEON_INFO_TILING_CONFIG 0x06
-#define RADEON_INFO_WANT_HYPERZ 0x07
-#define RADEON_INFO_WANT_CMASK 0x08 /* get access to CMASK on r300 */
-#define RADEON_INFO_CLOCK_CRYSTAL_FREQ 0x09 /* clock crystal frequency */
-#define RADEON_INFO_NUM_BACKENDS 0x0a /* DB/backends for r600+ - need for OQ */
-#define RADEON_INFO_NUM_TILE_PIPES 0x0b /* tile pipes for r600+ */
-#define RADEON_INFO_FUSION_GART_WORKING 0x0c /* fusion writes to GTT were broken before this */
-#define RADEON_INFO_BACKEND_MAP 0x0d /* pipe to backend map, needed by mesa */
-/* virtual address start, va < start are reserved by the kernel */
-#define RADEON_INFO_VA_START 0x0e
-/* maximum size of ib using the virtual memory cs */
-#define RADEON_INFO_IB_VM_MAX_SIZE 0x0f
-/* max pipes - needed for compute shaders */
-#define RADEON_INFO_MAX_PIPES 0x10
-/* timestamp for GL_ARB_timer_query (OpenGL), returns the current GPU clock */
-#define RADEON_INFO_TIMESTAMP 0x11
-/* max shader engines (SE) - needed for geometry shaders, etc. */
-#define RADEON_INFO_MAX_SE 0x12
-/* max SH per SE */
-#define RADEON_INFO_MAX_SH_PER_SE 0x13
-/* fast fb access is enabled */
-#define RADEON_INFO_FASTFB_WORKING 0x14
-/* query if a RADEON_CS_RING_* submission is supported */
-#define RADEON_INFO_RING_WORKING 0x15
-/* SI tile mode array */
-#define RADEON_INFO_SI_TILE_MODE_ARRAY 0x16
-/* query if CP DMA is supported on the compute ring */
-#define RADEON_INFO_SI_CP_DMA_COMPUTE 0x17
-/* CIK macrotile mode array */
-#define RADEON_INFO_CIK_MACROTILE_MODE_ARRAY 0x18
-/* query the number of render backends */
-#define RADEON_INFO_SI_BACKEND_ENABLED_MASK 0x19
-/* max engine clock - needed for OpenCL */
-#define RADEON_INFO_MAX_SCLK 0x1a
-/* version of VCE firmware */
-#define RADEON_INFO_VCE_FW_VERSION 0x1b
-/* version of VCE feedback */
-#define RADEON_INFO_VCE_FB_VERSION 0x1c
-#define RADEON_INFO_NUM_BYTES_MOVED 0x1d
-#define RADEON_INFO_VRAM_USAGE 0x1e
-#define RADEON_INFO_GTT_USAGE 0x1f
-#define RADEON_INFO_ACTIVE_CU_COUNT 0x20
-#define RADEON_INFO_CURRENT_GPU_TEMP 0x21
-#define RADEON_INFO_CURRENT_GPU_SCLK 0x22
-#define RADEON_INFO_CURRENT_GPU_MCLK 0x23
-#define RADEON_INFO_READ_REG 0x24
-#define RADEON_INFO_VA_UNMAP_WORKING 0x25
-#define RADEON_INFO_GPU_RESET_COUNTER 0x26
-
-struct drm_radeon_info {
- __u32 request;
- __u32 pad;
- __u64 value;
-};
-
-/* Those correspond to the tile index to use, this is to explicitly state
- * the API that is implicitly defined by the tile mode array.
- */
-#define SI_TILE_MODE_COLOR_LINEAR_ALIGNED 8
-#define SI_TILE_MODE_COLOR_1D 13
-#define SI_TILE_MODE_COLOR_1D_SCANOUT 9
-#define SI_TILE_MODE_COLOR_2D_8BPP 14
-#define SI_TILE_MODE_COLOR_2D_16BPP 15
-#define SI_TILE_MODE_COLOR_2D_32BPP 16
-#define SI_TILE_MODE_COLOR_2D_64BPP 17
-#define SI_TILE_MODE_COLOR_2D_SCANOUT_16BPP 11
-#define SI_TILE_MODE_COLOR_2D_SCANOUT_32BPP 12
-#define SI_TILE_MODE_DEPTH_STENCIL_1D 4
-#define SI_TILE_MODE_DEPTH_STENCIL_2D 0
-#define SI_TILE_MODE_DEPTH_STENCIL_2D_2AA 3
-#define SI_TILE_MODE_DEPTH_STENCIL_2D_4AA 3
-#define SI_TILE_MODE_DEPTH_STENCIL_2D_8AA 2
-
-#define CIK_TILE_MODE_DEPTH_STENCIL_1D 5
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/radeon_surface.h b/libdrm/libdrm/radeon_surface.h
deleted file mode 100644
index af7cab6..0000000
--- a/libdrm/libdrm/radeon_surface.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright © 2011 Red Hat All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
- * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- */
-/*
- * Authors:
- * Jérôme Glisse <jglisse@redhat.com>
- */
-#ifndef RADEON_SURFACE_H
-#define RADEON_SURFACE_H
-
-/* Note :
- *
- * For texture array, the n layer are stored one after the other within each
- * mipmap level. 0 value for field than can be hint is always valid.
- */
-
-#define RADEON_SURF_MAX_LEVEL 32
-
-#define RADEON_SURF_TYPE_MASK 0xFF
-#define RADEON_SURF_TYPE_SHIFT 0
-#define RADEON_SURF_TYPE_1D 0
-#define RADEON_SURF_TYPE_2D 1
-#define RADEON_SURF_TYPE_3D 2
-#define RADEON_SURF_TYPE_CUBEMAP 3
-#define RADEON_SURF_TYPE_1D_ARRAY 4
-#define RADEON_SURF_TYPE_2D_ARRAY 5
-#define RADEON_SURF_MODE_MASK 0xFF
-#define RADEON_SURF_MODE_SHIFT 8
-#define RADEON_SURF_MODE_LINEAR 0
-#define RADEON_SURF_MODE_LINEAR_ALIGNED 1
-#define RADEON_SURF_MODE_1D 2
-#define RADEON_SURF_MODE_2D 3
-#define RADEON_SURF_SCANOUT (1 << 16)
-#define RADEON_SURF_ZBUFFER (1 << 17)
-#define RADEON_SURF_SBUFFER (1 << 18)
-#define RADEON_SURF_Z_OR_SBUFFER (RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER)
-#define RADEON_SURF_HAS_SBUFFER_MIPTREE (1 << 19)
-#define RADEON_SURF_HAS_TILE_MODE_INDEX (1 << 20)
-#define RADEON_SURF_FMASK (1 << 21)
-
-#define RADEON_SURF_GET(v, field) (((v) >> RADEON_SURF_ ## field ## _SHIFT) & RADEON_SURF_ ## field ## _MASK)
-#define RADEON_SURF_SET(v, field) (((v) & RADEON_SURF_ ## field ## _MASK) << RADEON_SURF_ ## field ## _SHIFT)
-#define RADEON_SURF_CLR(v, field) ((v) & ~(RADEON_SURF_ ## field ## _MASK << RADEON_SURF_ ## field ## _SHIFT))
-
-/* first field up to mode need to match r6 struct so that we can reuse
- * same function for linear & linear aligned
- */
-struct radeon_surface_level {
- uint64_t offset;
- uint64_t slice_size;
- uint32_t npix_x;
- uint32_t npix_y;
- uint32_t npix_z;
- uint32_t nblk_x;
- uint32_t nblk_y;
- uint32_t nblk_z;
- uint32_t pitch_bytes;
- uint32_t mode;
-};
-
-enum si_tiling_mode {
- SI_TILING_AUTO = 0,
-
- SI_TILING_COLOR_1D,
- SI_TILING_COLOR_1D_SCANOUT,
- SI_TILING_COLOR_2D_8BPP,
- SI_TILING_COLOR_2D_16BPP,
- SI_TILING_COLOR_2D_32BPP,
- SI_TILING_COLOR_2D_64BPP,
- SI_TILING_COLOR_2D_SCANOUT_16BPP,
- SI_TILING_COLOR_2D_SCANOUT_32BPP,
- SI_TILING_COLOR_LINEAR,
-
- SI_TILING_STENCIL_1D,
- SI_TILING_STENCIL_2D,
- SI_TILING_STENCIL_2D_2AA,
- SI_TILING_STENCIL_2D_4AA,
- SI_TILING_STENCIL_2D_8AA,
-
- SI_TILING_DEPTH_1D,
- SI_TILING_DEPTH_2D,
- SI_TILING_DEPTH_2D_2AA,
- SI_TILING_DEPTH_2D_4AA,
- SI_TILING_DEPTH_2D_8AA,
-
- SI_TILING_LAST_MODE,
-};
-
-struct radeon_surface {
- uint32_t npix_x;
- uint32_t npix_y;
- uint32_t npix_z;
- uint32_t blk_w;
- uint32_t blk_h;
- uint32_t blk_d;
- uint32_t array_size;
- uint32_t last_level;
- uint32_t bpe;
- uint32_t nsamples;
- uint32_t flags;
- /* Following is updated/fill by the allocator. It's allowed to
- * set some of the value but they are use as hint and can be
- * overridden (things lile bankw/bankh on evergreen for
- * instance).
- */
- uint64_t bo_size;
- uint64_t bo_alignment;
- /* apply to eg */
- uint32_t bankw;
- uint32_t bankh;
- uint32_t mtilea;
- uint32_t tile_split;
- uint32_t stencil_tile_split;
- uint64_t stencil_offset;
- struct radeon_surface_level level[RADEON_SURF_MAX_LEVEL];
- struct radeon_surface_level stencil_level[RADEON_SURF_MAX_LEVEL];
- uint32_t tiling_index[RADEON_SURF_MAX_LEVEL];
- uint32_t stencil_tiling_index[RADEON_SURF_MAX_LEVEL];
-};
-
-struct radeon_surface_manager *radeon_surface_manager_new(int fd);
-void radeon_surface_manager_free(struct radeon_surface_manager *surf_man);
-int radeon_surface_init(struct radeon_surface_manager *surf_man,
- struct radeon_surface *surf);
-int radeon_surface_best(struct radeon_surface_manager *surf_man,
- struct radeon_surface *surf);
-
-#endif
diff --git a/libdrm/libdrm/savage_drm.h b/libdrm/libdrm/savage_drm.h
deleted file mode 100644
index 1a91234..0000000
--- a/libdrm/libdrm/savage_drm.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/* savage_drm.h -- Public header for the savage driver
- *
- * Copyright 2004 Felix Kuehling
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sub license,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NON-INFRINGEMENT. IN NO EVENT SHALL FELIX KUEHLING BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __SAVAGE_DRM_H__
-#define __SAVAGE_DRM_H__
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#ifndef __SAVAGE_SAREA_DEFINES__
-#define __SAVAGE_SAREA_DEFINES__
-
-/* 2 heaps (1 for card, 1 for agp), each divided into up to 128
- * regions, subject to a minimum region size of (1<<16) == 64k.
- *
- * Clients may subdivide regions internally, but when sharing between
- * clients, the region size is the minimum granularity.
- */
-
-#define SAVAGE_CARD_HEAP 0
-#define SAVAGE_AGP_HEAP 1
-#define SAVAGE_NR_TEX_HEAPS 2
-#define SAVAGE_NR_TEX_REGIONS 16
-#define SAVAGE_LOG_MIN_TEX_REGION_SIZE 16
-
-#endif /* __SAVAGE_SAREA_DEFINES__ */
-
-typedef struct _drm_savage_sarea {
- /* LRU lists for texture memory in agp space and on the card.
- */
- struct drm_tex_region texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS +
- 1];
- unsigned int texAge[SAVAGE_NR_TEX_HEAPS];
-
- /* Mechanism to validate card state.
- */
- int ctxOwner;
-} drm_savage_sarea_t, *drm_savage_sarea_ptr;
-
-/* Savage-specific ioctls
- */
-#define DRM_SAVAGE_BCI_INIT 0x00
-#define DRM_SAVAGE_BCI_CMDBUF 0x01
-#define DRM_SAVAGE_BCI_EVENT_EMIT 0x02
-#define DRM_SAVAGE_BCI_EVENT_WAIT 0x03
-
-#define DRM_IOCTL_SAVAGE_BCI_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_SAVAGE_BCI_INIT, drm_savage_init_t)
-#define DRM_IOCTL_SAVAGE_BCI_CMDBUF DRM_IOW( DRM_COMMAND_BASE + DRM_SAVAGE_BCI_CMDBUF, drm_savage_cmdbuf_t)
-#define DRM_IOCTL_SAVAGE_BCI_EVENT_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_SAVAGE_BCI_EVENT_EMIT, drm_savage_event_emit_t)
-#define DRM_IOCTL_SAVAGE_BCI_EVENT_WAIT DRM_IOW( DRM_COMMAND_BASE + DRM_SAVAGE_BCI_EVENT_WAIT, drm_savage_event_wait_t)
-
-#define SAVAGE_DMA_PCI 1
-#define SAVAGE_DMA_AGP 3
-typedef struct drm_savage_init {
- enum {
- SAVAGE_INIT_BCI = 1,
- SAVAGE_CLEANUP_BCI = 2
- } func;
- unsigned int sarea_priv_offset;
-
- /* some parameters */
- unsigned int cob_size;
- unsigned int bci_threshold_lo, bci_threshold_hi;
- unsigned int dma_type;
-
- /* frame buffer layout */
- unsigned int fb_bpp;
- unsigned int front_offset, front_pitch;
- unsigned int back_offset, back_pitch;
- unsigned int depth_bpp;
- unsigned int depth_offset, depth_pitch;
-
- /* local textures */
- unsigned int texture_offset;
- unsigned int texture_size;
-
- /* physical locations of non-permanent maps */
- unsigned long status_offset;
- unsigned long buffers_offset;
- unsigned long agp_textures_offset;
- unsigned long cmd_dma_offset;
-} drm_savage_init_t;
-
-typedef union drm_savage_cmd_header drm_savage_cmd_header_t;
-typedef struct drm_savage_cmdbuf {
- /* command buffer in client's address space */
- drm_savage_cmd_header_t *cmd_addr;
- unsigned int size; /* size of the command buffer in 64bit units */
-
- unsigned int dma_idx; /* DMA buffer index to use */
- int discard; /* discard DMA buffer when done */
- /* vertex buffer in client's address space */
- unsigned int *vb_addr;
- unsigned int vb_size; /* size of client vertex buffer in bytes */
- unsigned int vb_stride; /* stride of vertices in 32bit words */
- /* boxes in client's address space */
- struct drm_clip_rect *box_addr;
- unsigned int nbox; /* number of clipping boxes */
-} drm_savage_cmdbuf_t;
-
-#define SAVAGE_WAIT_2D 0x1 /* wait for 2D idle before updating event tag */
-#define SAVAGE_WAIT_3D 0x2 /* wait for 3D idle before updating event tag */
-#define SAVAGE_WAIT_IRQ 0x4 /* emit or wait for IRQ, not implemented yet */
-typedef struct drm_savage_event {
- unsigned int count;
- unsigned int flags;
-} drm_savage_event_emit_t, drm_savage_event_wait_t;
-
-/* Commands for the cmdbuf ioctl
- */
-#define SAVAGE_CMD_STATE 0 /* a range of state registers */
-#define SAVAGE_CMD_DMA_PRIM 1 /* vertices from DMA buffer */
-#define SAVAGE_CMD_VB_PRIM 2 /* vertices from client vertex buffer */
-#define SAVAGE_CMD_DMA_IDX 3 /* indexed vertices from DMA buffer */
-#define SAVAGE_CMD_VB_IDX 4 /* indexed vertices client vertex buffer */
-#define SAVAGE_CMD_CLEAR 5 /* clear buffers */
-#define SAVAGE_CMD_SWAP 6 /* swap buffers */
-
-/* Primitive types
-*/
-#define SAVAGE_PRIM_TRILIST 0 /* triangle list */
-#define SAVAGE_PRIM_TRISTRIP 1 /* triangle strip */
-#define SAVAGE_PRIM_TRIFAN 2 /* triangle fan */
-#define SAVAGE_PRIM_TRILIST_201 3 /* reorder verts for correct flat
- * shading on s3d */
-
-/* Skip flags (vertex format)
- */
-#define SAVAGE_SKIP_Z 0x01
-#define SAVAGE_SKIP_W 0x02
-#define SAVAGE_SKIP_C0 0x04
-#define SAVAGE_SKIP_C1 0x08
-#define SAVAGE_SKIP_S0 0x10
-#define SAVAGE_SKIP_T0 0x20
-#define SAVAGE_SKIP_ST0 0x30
-#define SAVAGE_SKIP_S1 0x40
-#define SAVAGE_SKIP_T1 0x80
-#define SAVAGE_SKIP_ST1 0xc0
-#define SAVAGE_SKIP_ALL_S3D 0x3f
-#define SAVAGE_SKIP_ALL_S4 0xff
-
-/* Buffer names for clear command
- */
-#define SAVAGE_FRONT 0x1
-#define SAVAGE_BACK 0x2
-#define SAVAGE_DEPTH 0x4
-
-/* 64-bit command header
- */
-union drm_savage_cmd_header {
- struct {
- unsigned char cmd; /* command */
- unsigned char pad0;
- unsigned short pad1;
- unsigned short pad2;
- unsigned short pad3;
- } cmd; /* generic */
- struct {
- unsigned char cmd;
- unsigned char global; /* need idle engine? */
- unsigned short count; /* number of consecutive registers */
- unsigned short start; /* first register */
- unsigned short pad3;
- } state; /* SAVAGE_CMD_STATE */
- struct {
- unsigned char cmd;
- unsigned char prim; /* primitive type */
- unsigned short skip; /* vertex format (skip flags) */
- unsigned short count; /* number of vertices */
- unsigned short start; /* first vertex in DMA/vertex buffer */
- } prim; /* SAVAGE_CMD_DMA_PRIM, SAVAGE_CMD_VB_PRIM */
- struct {
- unsigned char cmd;
- unsigned char prim;
- unsigned short skip;
- unsigned short count; /* number of indices that follow */
- unsigned short pad3;
- } idx; /* SAVAGE_CMD_DMA_IDX, SAVAGE_CMD_VB_IDX */
- struct {
- unsigned char cmd;
- unsigned char pad0;
- unsigned short pad1;
- unsigned int flags;
- } clear0; /* SAVAGE_CMD_CLEAR */
- struct {
- unsigned int mask;
- unsigned int value;
- } clear1; /* SAVAGE_CMD_CLEAR data */
-};
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/sis_drm.h b/libdrm/libdrm/sis_drm.h
deleted file mode 100644
index 8e51bb9..0000000
--- a/libdrm/libdrm/sis_drm.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* sis_drv.h -- Private header for sis driver -*- linux-c -*- */
-/*
- * Copyright 2005 Eric Anholt
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-#ifndef __SIS_DRM_H__
-#define __SIS_DRM_H__
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* SiS specific ioctls */
-#define NOT_USED_0_3
-#define DRM_SIS_FB_ALLOC 0x04
-#define DRM_SIS_FB_FREE 0x05
-#define NOT_USED_6_12
-#define DRM_SIS_AGP_INIT 0x13
-#define DRM_SIS_AGP_ALLOC 0x14
-#define DRM_SIS_AGP_FREE 0x15
-#define DRM_SIS_FB_INIT 0x16
-
-#define DRM_IOCTL_SIS_FB_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_FB_ALLOC, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_FB_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_FB_FREE, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_INIT, drm_sis_agp_t)
-#define DRM_IOCTL_SIS_AGP_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_ALLOC, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_AGP_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_AGP_FREE, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_FB_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_FB_INIT, drm_sis_fb_t)
-/*
-#define DRM_IOCTL_SIS_FLIP DRM_IOW( 0x48, drm_sis_flip_t)
-#define DRM_IOCTL_SIS_FLIP_INIT DRM_IO( 0x49)
-#define DRM_IOCTL_SIS_FLIP_FINAL DRM_IO( 0x50)
-*/
-
-typedef struct {
- int context;
- unsigned int offset;
- unsigned int size;
- unsigned long free;
-} drm_sis_mem_t;
-
-typedef struct {
- unsigned int offset, size;
-} drm_sis_agp_t;
-
-typedef struct {
- unsigned int offset, size;
-} drm_sis_fb_t;
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* __SIS_DRM_H__ */
diff --git a/libdrm/libdrm/tegra_drm.h b/libdrm/libdrm/tegra_drm.h
deleted file mode 100644
index 94cfc30..0000000
--- a/libdrm/libdrm/tegra_drm.h
+++ /dev/null
@@ -1,1060 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/* Copyright (c) 2012-2020 NVIDIA Corporation */
-
-#ifndef _UAPI_TEGRA_DRM_H_
-#define _UAPI_TEGRA_DRM_H_
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Tegra DRM legacy UAPI. Only enabled with STAGING */
-
-#define DRM_TEGRA_GEM_CREATE_TILED (1 << 0)
-#define DRM_TEGRA_GEM_CREATE_BOTTOM_UP (1 << 1)
-
-/**
- * struct drm_tegra_gem_create - parameters for the GEM object creation IOCTL
- */
-struct drm_tegra_gem_create {
- /**
- * @size:
- *
- * The size, in bytes, of the buffer object to be created.
- */
- __u64 size;
-
- /**
- * @flags:
- *
- * A bitmask of flags that influence the creation of GEM objects:
- *
- * DRM_TEGRA_GEM_CREATE_TILED
- * Use the 16x16 tiling format for this buffer.
- *
- * DRM_TEGRA_GEM_CREATE_BOTTOM_UP
- * The buffer has a bottom-up layout.
- */
- __u32 flags;
-
- /**
- * @handle:
- *
- * The handle of the created GEM object. Set by the kernel upon
- * successful completion of the IOCTL.
- */
- __u32 handle;
-};
-
-/**
- * struct drm_tegra_gem_mmap - parameters for the GEM mmap IOCTL
- */
-struct drm_tegra_gem_mmap {
- /**
- * @handle:
- *
- * Handle of the GEM object to obtain an mmap offset for.
- */
- __u32 handle;
-
- /**
- * @pad:
- *
- * Structure padding that may be used in the future. Must be 0.
- */
- __u32 pad;
-
- /**
- * @offset:
- *
- * The mmap offset for the given GEM object. Set by the kernel upon
- * successful completion of the IOCTL.
- */
- __u64 offset;
-};
-
-/**
- * struct drm_tegra_syncpt_read - parameters for the read syncpoint IOCTL
- */
-struct drm_tegra_syncpt_read {
- /**
- * @id:
- *
- * ID of the syncpoint to read the current value from.
- */
- __u32 id;
-
- /**
- * @value:
- *
- * The current syncpoint value. Set by the kernel upon successful
- * completion of the IOCTL.
- */
- __u32 value;
-};
-
-/**
- * struct drm_tegra_syncpt_incr - parameters for the increment syncpoint IOCTL
- */
-struct drm_tegra_syncpt_incr {
- /**
- * @id:
- *
- * ID of the syncpoint to increment.
- */
- __u32 id;
-
- /**
- * @pad:
- *
- * Structure padding that may be used in the future. Must be 0.
- */
- __u32 pad;
-};
-
-/**
- * struct drm_tegra_syncpt_wait - parameters for the wait syncpoint IOCTL
- */
-struct drm_tegra_syncpt_wait {
- /**
- * @id:
- *
- * ID of the syncpoint to wait on.
- */
- __u32 id;
-
- /**
- * @thresh:
- *
- * Threshold value for which to wait.
- */
- __u32 thresh;
-
- /**
- * @timeout:
- *
- * Timeout, in milliseconds, to wait.
- */
- __u32 timeout;
-
- /**
- * @value:
- *
- * The new syncpoint value after the wait. Set by the kernel upon
- * successful completion of the IOCTL.
- */
- __u32 value;
-};
-
-#define DRM_TEGRA_NO_TIMEOUT (0xffffffff)
-
-/**
- * struct drm_tegra_open_channel - parameters for the open channel IOCTL
- */
-struct drm_tegra_open_channel {
- /**
- * @client:
- *
- * The client ID for this channel.
- */
- __u32 client;
-
- /**
- * @pad:
- *
- * Structure padding that may be used in the future. Must be 0.
- */
- __u32 pad;
-
- /**
- * @context:
- *
- * The application context of this channel. Set by the kernel upon
- * successful completion of the IOCTL. This context needs to be passed
- * to the DRM_TEGRA_CHANNEL_CLOSE or the DRM_TEGRA_SUBMIT IOCTLs.
- */
- __u64 context;
-};
-
-/**
- * struct drm_tegra_close_channel - parameters for the close channel IOCTL
- */
-struct drm_tegra_close_channel {
- /**
- * @context:
- *
- * The application context of this channel. This is obtained from the
- * DRM_TEGRA_OPEN_CHANNEL IOCTL.
- */
- __u64 context;
-};
-
-/**
- * struct drm_tegra_get_syncpt - parameters for the get syncpoint IOCTL
- */
-struct drm_tegra_get_syncpt {
- /**
- * @context:
- *
- * The application context identifying the channel for which to obtain
- * the syncpoint ID.
- */
- __u64 context;
-
- /**
- * @index:
- *
- * Index of the client syncpoint for which to obtain the ID.
- */
- __u32 index;
-
- /**
- * @id:
- *
- * The ID of the given syncpoint. Set by the kernel upon successful
- * completion of the IOCTL.
- */
- __u32 id;
-};
-
-/**
- * struct drm_tegra_get_syncpt_base - parameters for the get wait base IOCTL
- */
-struct drm_tegra_get_syncpt_base {
- /**
- * @context:
- *
- * The application context identifying for which channel to obtain the
- * wait base.
- */
- __u64 context;
-
- /**
- * @syncpt:
- *
- * ID of the syncpoint for which to obtain the wait base.
- */
- __u32 syncpt;
-
- /**
- * @id:
- *
- * The ID of the wait base corresponding to the client syncpoint. Set
- * by the kernel upon successful completion of the IOCTL.
- */
- __u32 id;
-};
-
-/**
- * struct drm_tegra_syncpt - syncpoint increment operation
- */
-struct drm_tegra_syncpt {
- /**
- * @id:
- *
- * ID of the syncpoint to operate on.
- */
- __u32 id;
-
- /**
- * @incrs:
- *
- * Number of increments to perform for the syncpoint.
- */
- __u32 incrs;
-};
-
-/**
- * struct drm_tegra_cmdbuf - structure describing a command buffer
- */
-struct drm_tegra_cmdbuf {
- /**
- * @handle:
- *
- * Handle to a GEM object containing the command buffer.
- */
- __u32 handle;
-
- /**
- * @offset:
- *
- * Offset, in bytes, into the GEM object identified by @handle at
- * which the command buffer starts.
- */
- __u32 offset;
-
- /**
- * @words:
- *
- * Number of 32-bit words in this command buffer.
- */
- __u32 words;
-
- /**
- * @pad:
- *
- * Structure padding that may be used in the future. Must be 0.
- */
- __u32 pad;
-};
-
-/**
- * struct drm_tegra_reloc - GEM object relocation structure
- */
-struct drm_tegra_reloc {
- struct {
- /**
- * @cmdbuf.handle:
- *
- * Handle to the GEM object containing the command buffer for
- * which to perform this GEM object relocation.
- */
- __u32 handle;
-
- /**
- * @cmdbuf.offset:
- *
- * Offset, in bytes, into the command buffer at which to
- * insert the relocated address.
- */
- __u32 offset;
- } cmdbuf;
- struct {
- /**
- * @target.handle:
- *
- * Handle to the GEM object to be relocated.
- */
- __u32 handle;
-
- /**
- * @target.offset:
- *
- * Offset, in bytes, into the target GEM object at which the
- * relocated data starts.
- */
- __u32 offset;
- } target;
-
- /**
- * @shift:
- *
- * The number of bits by which to shift relocated addresses.
- */
- __u32 shift;
-
- /**
- * @pad:
- *
- * Structure padding that may be used in the future. Must be 0.
- */
- __u32 pad;
-};
-
-/**
- * struct drm_tegra_waitchk - wait check structure
- */
-struct drm_tegra_waitchk {
- /**
- * @handle:
- *
- * Handle to the GEM object containing a command stream on which to
- * perform the wait check.
- */
- __u32 handle;
-
- /**
- * @offset:
- *
- * Offset, in bytes, of the location in the command stream to perform
- * the wait check on.
- */
- __u32 offset;
-
- /**
- * @syncpt:
- *
- * ID of the syncpoint to wait check.
- */
- __u32 syncpt;
-
- /**
- * @thresh:
- *
- * Threshold value for which to check.
- */
- __u32 thresh;
-};
-
-/**
- * struct drm_tegra_submit - job submission structure
- */
-struct drm_tegra_submit {
- /**
- * @context:
- *
- * The application context identifying the channel to use for the
- * execution of this job.
- */
- __u64 context;
-
- /**
- * @num_syncpts:
- *
- * The number of syncpoints operated on by this job. This defines the
- * length of the array pointed to by @syncpts.
- */
- __u32 num_syncpts;
-
- /**
- * @num_cmdbufs:
- *
- * The number of command buffers to execute as part of this job. This
- * defines the length of the array pointed to by @cmdbufs.
- */
- __u32 num_cmdbufs;
-
- /**
- * @num_relocs:
- *
- * The number of relocations to perform before executing this job.
- * This defines the length of the array pointed to by @relocs.
- */
- __u32 num_relocs;
-
- /**
- * @num_waitchks:
- *
- * The number of wait checks to perform as part of this job. This
- * defines the length of the array pointed to by @waitchks.
- */
- __u32 num_waitchks;
-
- /**
- * @waitchk_mask:
- *
- * Bitmask of valid wait checks.
- */
- __u32 waitchk_mask;
-
- /**
- * @timeout:
- *
- * Timeout, in milliseconds, before this job is cancelled.
- */
- __u32 timeout;
-
- /**
- * @syncpts:
- *
- * A pointer to an array of &struct drm_tegra_syncpt structures that
- * specify the syncpoint operations performed as part of this job.
- * The number of elements in the array must be equal to the value
- * given by @num_syncpts.
- */
- __u64 syncpts;
-
- /**
- * @cmdbufs:
- *
- * A pointer to an array of &struct drm_tegra_cmdbuf structures that
- * define the command buffers to execute as part of this job. The
- * number of elements in the array must be equal to the value given
- * by @num_syncpts.
- */
- __u64 cmdbufs;
-
- /**
- * @relocs:
- *
- * A pointer to an array of &struct drm_tegra_reloc structures that
- * specify the relocations that need to be performed before executing
- * this job. The number of elements in the array must be equal to the
- * value given by @num_relocs.
- */
- __u64 relocs;
-
- /**
- * @waitchks:
- *
- * A pointer to an array of &struct drm_tegra_waitchk structures that
- * specify the wait checks to be performed while executing this job.
- * The number of elements in the array must be equal to the value
- * given by @num_waitchks.
- */
- __u64 waitchks;
-
- /**
- * @fence:
- *
- * The threshold of the syncpoint associated with this job after it
- * has been completed. Set by the kernel upon successful completion of
- * the IOCTL. This can be used with the DRM_TEGRA_SYNCPT_WAIT IOCTL to
- * wait for this job to be finished.
- */
- __u32 fence;
-
- /**
- * @reserved:
- *
- * This field is reserved for future use. Must be 0.
- */
- __u32 reserved[5];
-};
-
-#define DRM_TEGRA_GEM_TILING_MODE_PITCH 0
-#define DRM_TEGRA_GEM_TILING_MODE_TILED 1
-#define DRM_TEGRA_GEM_TILING_MODE_BLOCK 2
-
-/**
- * struct drm_tegra_gem_set_tiling - parameters for the set tiling IOCTL
- */
-struct drm_tegra_gem_set_tiling {
- /**
- * @handle:
- *
- * Handle to the GEM object for which to set the tiling parameters.
- */
- __u32 handle;
-
- /**
- * @mode:
- *
- * The tiling mode to set. Must be one of:
- *
- * DRM_TEGRA_GEM_TILING_MODE_PITCH
- * pitch linear format
- *
- * DRM_TEGRA_GEM_TILING_MODE_TILED
- * 16x16 tiling format
- *
- * DRM_TEGRA_GEM_TILING_MODE_BLOCK
- * 16Bx2 tiling format
- */
- __u32 mode;
-
- /**
- * @value:
- *
- * The value to set for the tiling mode parameter.
- */
- __u32 value;
-
- /**
- * @pad:
- *
- * Structure padding that may be used in the future. Must be 0.
- */
- __u32 pad;
-};
-
-/**
- * struct drm_tegra_gem_get_tiling - parameters for the get tiling IOCTL
- */
-struct drm_tegra_gem_get_tiling {
- /**
- * @handle:
- *
- * Handle to the GEM object for which to query the tiling parameters.
- */
- __u32 handle;
-
- /**
- * @mode:
- *
- * The tiling mode currently associated with the GEM object. Set by
- * the kernel upon successful completion of the IOCTL.
- */
- __u32 mode;
-
- /**
- * @value:
- *
- * The tiling mode parameter currently associated with the GEM object.
- * Set by the kernel upon successful completion of the IOCTL.
- */
- __u32 value;
-
- /**
- * @pad:
- *
- * Structure padding that may be used in the future. Must be 0.
- */
- __u32 pad;
-};
-
-#define DRM_TEGRA_GEM_BOTTOM_UP (1 << 0)
-#define DRM_TEGRA_GEM_FLAGS (DRM_TEGRA_GEM_BOTTOM_UP)
-
-/**
- * struct drm_tegra_gem_set_flags - parameters for the set flags IOCTL
- */
-struct drm_tegra_gem_set_flags {
- /**
- * @handle:
- *
- * Handle to the GEM object for which to set the flags.
- */
- __u32 handle;
-
- /**
- * @flags:
- *
- * The flags to set for the GEM object.
- */
- __u32 flags;
-};
-
-/**
- * struct drm_tegra_gem_get_flags - parameters for the get flags IOCTL
- */
-struct drm_tegra_gem_get_flags {
- /**
- * @handle:
- *
- * Handle to the GEM object for which to query the flags.
- */
- __u32 handle;
-
- /**
- * @flags:
- *
- * The flags currently associated with the GEM object. Set by the
- * kernel upon successful completion of the IOCTL.
- */
- __u32 flags;
-};
-
-#define DRM_TEGRA_GEM_CREATE 0x00
-#define DRM_TEGRA_GEM_MMAP 0x01
-#define DRM_TEGRA_SYNCPT_READ 0x02
-#define DRM_TEGRA_SYNCPT_INCR 0x03
-#define DRM_TEGRA_SYNCPT_WAIT 0x04
-#define DRM_TEGRA_OPEN_CHANNEL 0x05
-#define DRM_TEGRA_CLOSE_CHANNEL 0x06
-#define DRM_TEGRA_GET_SYNCPT 0x07
-#define DRM_TEGRA_SUBMIT 0x08
-#define DRM_TEGRA_GET_SYNCPT_BASE 0x09
-#define DRM_TEGRA_GEM_SET_TILING 0x0a
-#define DRM_TEGRA_GEM_GET_TILING 0x0b
-#define DRM_TEGRA_GEM_SET_FLAGS 0x0c
-#define DRM_TEGRA_GEM_GET_FLAGS 0x0d
-
-#define DRM_IOCTL_TEGRA_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_CREATE, struct drm_tegra_gem_create)
-#define DRM_IOCTL_TEGRA_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_MMAP, struct drm_tegra_gem_mmap)
-#define DRM_IOCTL_TEGRA_SYNCPT_READ DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_READ, struct drm_tegra_syncpt_read)
-#define DRM_IOCTL_TEGRA_SYNCPT_INCR DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_INCR, struct drm_tegra_syncpt_incr)
-#define DRM_IOCTL_TEGRA_SYNCPT_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_WAIT, struct drm_tegra_syncpt_wait)
-#define DRM_IOCTL_TEGRA_OPEN_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_OPEN_CHANNEL, struct drm_tegra_open_channel)
-#define DRM_IOCTL_TEGRA_CLOSE_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_CLOSE_CHANNEL, struct drm_tegra_close_channel)
-#define DRM_IOCTL_TEGRA_GET_SYNCPT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GET_SYNCPT, struct drm_tegra_get_syncpt)
-#define DRM_IOCTL_TEGRA_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SUBMIT, struct drm_tegra_submit)
-#define DRM_IOCTL_TEGRA_GET_SYNCPT_BASE DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GET_SYNCPT_BASE, struct drm_tegra_get_syncpt_base)
-#define DRM_IOCTL_TEGRA_GEM_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_TILING, struct drm_tegra_gem_set_tiling)
-#define DRM_IOCTL_TEGRA_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_TILING, struct drm_tegra_gem_get_tiling)
-#define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
-#define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
-
-/* New Tegra DRM UAPI */
-
-/*
- * Reported by the driver in the `capabilities` field.
- *
- * DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT: If set, the engine is cache coherent
- * with regard to the system memory.
- */
-#define DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT (1 << 0)
-
-struct drm_tegra_channel_open {
- /**
- * @host1x_class: [in]
- *
- * Host1x class of the engine that will be programmed using this
- * channel.
- */
- __u32 host1x_class;
-
- /**
- * @flags: [in]
- *
- * Flags.
- */
- __u32 flags;
-
- /**
- * @context: [out]
- *
- * Opaque identifier corresponding to the opened channel.
- */
- __u32 context;
-
- /**
- * @version: [out]
- *
- * Version of the engine hardware. This can be used by userspace
- * to determine how the engine needs to be programmed.
- */
- __u32 version;
-
- /**
- * @capabilities: [out]
- *
- * Flags describing the hardware capabilities.
- */
- __u32 capabilities;
- __u32 padding;
-};
-
-struct drm_tegra_channel_close {
- /**
- * @context: [in]
- *
- * Identifier of the channel to close.
- */
- __u32 context;
- __u32 padding;
-};
-
-/*
- * Mapping flags that can be used to influence how the mapping is created.
- *
- * DRM_TEGRA_CHANNEL_MAP_READ: create mapping that allows HW read access
- * DRM_TEGRA_CHANNEL_MAP_WRITE: create mapping that allows HW write access
- */
-#define DRM_TEGRA_CHANNEL_MAP_READ (1 << 0)
-#define DRM_TEGRA_CHANNEL_MAP_WRITE (1 << 1)
-#define DRM_TEGRA_CHANNEL_MAP_READ_WRITE (DRM_TEGRA_CHANNEL_MAP_READ | \
- DRM_TEGRA_CHANNEL_MAP_WRITE)
-
-struct drm_tegra_channel_map {
- /**
- * @context: [in]
- *
- * Identifier of the channel to which make memory available for.
- */
- __u32 context;
-
- /**
- * @handle: [in]
- *
- * GEM handle of the memory to map.
- */
- __u32 handle;
-
- /**
- * @flags: [in]
- *
- * Flags.
- */
- __u32 flags;
-
- /**
- * @mapping: [out]
- *
- * Identifier corresponding to the mapping, to be used for
- * relocations or unmapping later.
- */
- __u32 mapping;
-};
-
-struct drm_tegra_channel_unmap {
- /**
- * @context: [in]
- *
- * Channel identifier of the channel to unmap memory from.
- */
- __u32 context;
-
- /**
- * @mapping: [in]
- *
- * Mapping identifier of the memory mapping to unmap.
- */
- __u32 mapping;
-};
-
-/* Submission */
-
-/**
- * Specify that bit 39 of the patched-in address should be set to switch
- * swizzling between Tegra and non-Tegra sector layout on systems that store
- * surfaces in system memory in non-Tegra sector layout.
- */
-#define DRM_TEGRA_SUBMIT_RELOC_SECTOR_LAYOUT (1 << 0)
-
-struct drm_tegra_submit_buf {
- /**
- * @mapping: [in]
- *
- * Identifier of the mapping to use in the submission.
- */
- __u32 mapping;
-
- /**
- * @flags: [in]
- *
- * Flags.
- */
- __u32 flags;
-
- /**
- * Information for relocation patching.
- */
- struct {
- /**
- * @target_offset: [in]
- *
- * Offset from the start of the mapping of the data whose
- * address is to be patched into the gather.
- */
- __u64 target_offset;
-
- /**
- * @gather_offset_words: [in]
- *
- * Offset in words from the start of the gather data to
- * where the address should be patched into.
- */
- __u32 gather_offset_words;
-
- /**
- * @shift: [in]
- *
- * Number of bits the address should be shifted right before
- * patching in.
- */
- __u32 shift;
- } reloc;
-};
-
-/**
- * Execute `words` words of Host1x opcodes specified in the `gather_data_ptr`
- * buffer. Each GATHER_UPTR command uses successive words from the buffer.
- */
-#define DRM_TEGRA_SUBMIT_CMD_GATHER_UPTR 0
-/**
- * Wait for a syncpoint to reach a value before continuing with further
- * commands.
- */
-#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT 1
-/**
- * Wait for a syncpoint to reach a value before continuing with further
- * commands. The threshold is calculated relative to the start of the job.
- */
-#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT_RELATIVE 2
-
-struct drm_tegra_submit_cmd_gather_uptr {
- __u32 words;
- __u32 reserved[3];
-};
-
-struct drm_tegra_submit_cmd_wait_syncpt {
- __u32 id;
- __u32 value;
- __u32 reserved[2];
-};
-
-struct drm_tegra_submit_cmd {
- /**
- * @type: [in]
- *
- * Command type to execute. One of the DRM_TEGRA_SUBMIT_CMD*
- * defines.
- */
- __u32 type;
-
- /**
- * @flags: [in]
- *
- * Flags.
- */
- __u32 flags;
-
- union {
- struct drm_tegra_submit_cmd_gather_uptr gather_uptr;
- struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt;
- __u32 reserved[4];
- };
-};
-
-struct drm_tegra_submit_syncpt {
- /**
- * @id: [in]
- *
- * ID of the syncpoint that the job will increment.
- */
- __u32 id;
-
- /**
- * @flags: [in]
- *
- * Flags.
- */
- __u32 flags;
-
- /**
- * @increments: [in]
- *
- * Number of times the job will increment this syncpoint.
- */
- __u32 increments;
-
- /**
- * @value: [out]
- *
- * Value the syncpoint will have once the job has completed all
- * its specified syncpoint increments.
- *
- * Note that the kernel may increment the syncpoint before or after
- * the job. These increments are not reflected in this field.
- *
- * If the job hangs or times out, not all of the increments may
- * get executed.
- */
- __u32 value;
-};
-
-struct drm_tegra_channel_submit {
- /**
- * @context: [in]
- *
- * Identifier of the channel to submit this job to.
- */
- __u32 context;
-
- /**
- * @num_bufs: [in]
- *
- * Number of elements in the `bufs_ptr` array.
- */
- __u32 num_bufs;
-
- /**
- * @num_cmds: [in]
- *
- * Number of elements in the `cmds_ptr` array.
- */
- __u32 num_cmds;
-
- /**
- * @gather_data_words: [in]
- *
- * Number of 32-bit words in the `gather_data_ptr` array.
- */
- __u32 gather_data_words;
-
- /**
- * @bufs_ptr: [in]
- *
- * Pointer to an array of drm_tegra_submit_buf structures.
- */
- __u64 bufs_ptr;
-
- /**
- * @cmds_ptr: [in]
- *
- * Pointer to an array of drm_tegra_submit_cmd structures.
- */
- __u64 cmds_ptr;
-
- /**
- * @gather_data_ptr: [in]
- *
- * Pointer to an array of Host1x opcodes to be used by GATHER_UPTR
- * commands.
- */
- __u64 gather_data_ptr;
-
- /**
- * @syncobj_in: [in]
- *
- * Handle for DRM syncobj that will be waited before submission.
- * Ignored if zero.
- */
- __u32 syncobj_in;
-
- /**
- * @syncobj_out: [in]
- *
- * Handle for DRM syncobj that will have its fence replaced with
- * the job's completion fence. Ignored if zero.
- */
- __u32 syncobj_out;
-
- /**
- * @syncpt_incr: [in,out]
- *
- * Information about the syncpoint the job will increment.
- */
- struct drm_tegra_submit_syncpt syncpt;
-};
-
-struct drm_tegra_syncpoint_allocate {
- /**
- * @id: [out]
- *
- * ID of allocated syncpoint.
- */
- __u32 id;
- __u32 padding;
-};
-
-struct drm_tegra_syncpoint_free {
- /**
- * @id: [in]
- *
- * ID of syncpoint to free.
- */
- __u32 id;
- __u32 padding;
-};
-
-struct drm_tegra_syncpoint_wait {
- /**
- * @timeout: [in]
- *
- * Absolute timestamp at which the wait will time out.
- */
- __s64 timeout_ns;
-
- /**
- * @id: [in]
- *
- * ID of syncpoint to wait on.
- */
- __u32 id;
-
- /**
- * @threshold: [in]
- *
- * Threshold to wait for.
- */
- __u32 threshold;
-
- /**
- * @value: [out]
- *
- * Value of the syncpoint upon wait completion.
- */
- __u32 value;
-
- __u32 padding;
-};
-
-#define DRM_IOCTL_TEGRA_CHANNEL_OPEN DRM_IOWR(DRM_COMMAND_BASE + 0x10, struct drm_tegra_channel_open)
-#define DRM_IOCTL_TEGRA_CHANNEL_CLOSE DRM_IOWR(DRM_COMMAND_BASE + 0x11, struct drm_tegra_channel_close)
-#define DRM_IOCTL_TEGRA_CHANNEL_MAP DRM_IOWR(DRM_COMMAND_BASE + 0x12, struct drm_tegra_channel_map)
-#define DRM_IOCTL_TEGRA_CHANNEL_UNMAP DRM_IOWR(DRM_COMMAND_BASE + 0x13, struct drm_tegra_channel_unmap)
-#define DRM_IOCTL_TEGRA_CHANNEL_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + 0x14, struct drm_tegra_channel_submit)
-
-#define DRM_IOCTL_TEGRA_SYNCPOINT_ALLOCATE DRM_IOWR(DRM_COMMAND_BASE + 0x20, struct drm_tegra_syncpoint_allocate)
-#define DRM_IOCTL_TEGRA_SYNCPOINT_FREE DRM_IOWR(DRM_COMMAND_BASE + 0x21, struct drm_tegra_syncpoint_free)
-#define DRM_IOCTL_TEGRA_SYNCPOINT_WAIT DRM_IOWR(DRM_COMMAND_BASE + 0x22, struct drm_tegra_syncpoint_wait)
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/vc4_drm.h b/libdrm/libdrm/vc4_drm.h
deleted file mode 100644
index 31f50de..0000000
--- a/libdrm/libdrm/vc4_drm.h
+++ /dev/null
@@ -1,442 +0,0 @@
-/*
- * Copyright © 2014-2015 Broadcom
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef _VC4_DRM_H_
-#define _VC4_DRM_H_
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define DRM_VC4_SUBMIT_CL 0x00
-#define DRM_VC4_WAIT_SEQNO 0x01
-#define DRM_VC4_WAIT_BO 0x02
-#define DRM_VC4_CREATE_BO 0x03
-#define DRM_VC4_MMAP_BO 0x04
-#define DRM_VC4_CREATE_SHADER_BO 0x05
-#define DRM_VC4_GET_HANG_STATE 0x06
-#define DRM_VC4_GET_PARAM 0x07
-#define DRM_VC4_SET_TILING 0x08
-#define DRM_VC4_GET_TILING 0x09
-#define DRM_VC4_LABEL_BO 0x0a
-#define DRM_VC4_GEM_MADVISE 0x0b
-#define DRM_VC4_PERFMON_CREATE 0x0c
-#define DRM_VC4_PERFMON_DESTROY 0x0d
-#define DRM_VC4_PERFMON_GET_VALUES 0x0e
-
-#define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl)
-#define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno)
-#define DRM_IOCTL_VC4_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_BO, struct drm_vc4_wait_bo)
-#define DRM_IOCTL_VC4_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_BO, struct drm_vc4_create_bo)
-#define DRM_IOCTL_VC4_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_MMAP_BO, struct drm_vc4_mmap_bo)
-#define DRM_IOCTL_VC4_CREATE_SHADER_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_SHADER_BO, struct drm_vc4_create_shader_bo)
-#define DRM_IOCTL_VC4_GET_HANG_STATE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_HANG_STATE, struct drm_vc4_get_hang_state)
-#define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param)
-#define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling)
-#define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling)
-#define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo)
-#define DRM_IOCTL_VC4_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GEM_MADVISE, struct drm_vc4_gem_madvise)
-#define DRM_IOCTL_VC4_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_PERFMON_CREATE, struct drm_vc4_perfmon_create)
-#define DRM_IOCTL_VC4_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_PERFMON_DESTROY, struct drm_vc4_perfmon_destroy)
-#define DRM_IOCTL_VC4_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_PERFMON_GET_VALUES, struct drm_vc4_perfmon_get_values)
-
-struct drm_vc4_submit_rcl_surface {
- __u32 hindex; /* Handle index, or ~0 if not present. */
- __u32 offset; /* Offset to start of buffer. */
- /*
- * Bits for either render config (color_write) or load/store packet.
- * Bits should all be 0 for MSAA load/stores.
- */
- __u16 bits;
-
-#define VC4_SUBMIT_RCL_SURFACE_READ_IS_FULL_RES (1 << 0)
- __u16 flags;
-};
-
-/**
- * struct drm_vc4_submit_cl - ioctl argument for submitting commands to the 3D
- * engine.
- *
- * Drivers typically use GPU BOs to store batchbuffers / command lists and
- * their associated state. However, because the VC4 lacks an MMU, we have to
- * do validation of memory accesses by the GPU commands. If we were to store
- * our commands in BOs, we'd need to do uncached readback from them to do the
- * validation process, which is too expensive. Instead, userspace accumulates
- * commands and associated state in plain memory, then the kernel copies the
- * data to its own address space, and then validates and stores it in a GPU
- * BO.
- */
-struct drm_vc4_submit_cl {
- /* Pointer to the binner command list.
- *
- * This is the first set of commands executed, which runs the
- * coordinate shader to determine where primitives land on the screen,
- * then writes out the state updates and draw calls necessary per tile
- * to the tile allocation BO.
- */
- __u64 bin_cl;
-
- /* Pointer to the shader records.
- *
- * Shader records are the structures read by the hardware that contain
- * pointers to uniforms, shaders, and vertex attributes. The
- * reference to the shader record has enough information to determine
- * how many pointers are necessary (fixed number for shaders/uniforms,
- * and an attribute count), so those BO indices into bo_handles are
- * just stored as __u32s before each shader record passed in.
- */
- __u64 shader_rec;
-
- /* Pointer to uniform data and texture handles for the textures
- * referenced by the shader.
- *
- * For each shader state record, there is a set of uniform data in the
- * order referenced by the record (FS, VS, then CS). Each set of
- * uniform data has a __u32 index into bo_handles per texture
- * sample operation, in the order the QPU_W_TMUn_S writes appear in
- * the program. Following the texture BO handle indices is the actual
- * uniform data.
- *
- * The individual uniform state blocks don't have sizes passed in,
- * because the kernel has to determine the sizes anyway during shader
- * code validation.
- */
- __u64 uniforms;
- __u64 bo_handles;
-
- /* Size in bytes of the binner command list. */
- __u32 bin_cl_size;
- /* Size in bytes of the set of shader records. */
- __u32 shader_rec_size;
- /* Number of shader records.
- *
- * This could just be computed from the contents of shader_records and
- * the address bits of references to them from the bin CL, but it
- * keeps the kernel from having to resize some allocations it makes.
- */
- __u32 shader_rec_count;
- /* Size in bytes of the uniform state. */
- __u32 uniforms_size;
-
- /* Number of BO handles passed in (size is that times 4). */
- __u32 bo_handle_count;
-
- /* RCL setup: */
- __u16 width;
- __u16 height;
- __u8 min_x_tile;
- __u8 min_y_tile;
- __u8 max_x_tile;
- __u8 max_y_tile;
- struct drm_vc4_submit_rcl_surface color_read;
- struct drm_vc4_submit_rcl_surface color_write;
- struct drm_vc4_submit_rcl_surface zs_read;
- struct drm_vc4_submit_rcl_surface zs_write;
- struct drm_vc4_submit_rcl_surface msaa_color_write;
- struct drm_vc4_submit_rcl_surface msaa_zs_write;
- __u32 clear_color[2];
- __u32 clear_z;
- __u8 clear_s;
-
- __u32 pad:24;
-
-#define VC4_SUBMIT_CL_USE_CLEAR_COLOR (1 << 0)
-/* By default, the kernel gets to choose the order that the tiles are
- * rendered in. If this is set, then the tiles will be rendered in a
- * raster order, with the right-to-left vs left-to-right and
- * top-to-bottom vs bottom-to-top dictated by
- * VC4_SUBMIT_CL_RCL_ORDER_INCREASING_*. This allows overlapping
- * blits to be implemented using the 3D engine.
- */
-#define VC4_SUBMIT_CL_FIXED_RCL_ORDER (1 << 1)
-#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_X (1 << 2)
-#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_Y (1 << 3)
- __u32 flags;
-
- /* Returned value of the seqno of this render job (for the
- * wait ioctl).
- */
- __u64 seqno;
-
- /* ID of the perfmon to attach to this job. 0 means no perfmon. */
- __u32 perfmonid;
-
- /* Syncobj handle to wait on. If set, processing of this render job
- * will not start until the syncobj is signaled. 0 means ignore.
- */
- __u32 in_sync;
-
- /* Syncobj handle to export fence to. If set, the fence in the syncobj
- * will be replaced with a fence that signals upon completion of this
- * render job. 0 means ignore.
- */
- __u32 out_sync;
-
- __u32 pad2;
-};
-
-/**
- * struct drm_vc4_wait_seqno - ioctl argument for waiting for
- * DRM_VC4_SUBMIT_CL completion using its returned seqno.
- *
- * timeout_ns is the timeout in nanoseconds, where "0" means "don't
- * block, just return the status."
- */
-struct drm_vc4_wait_seqno {
- __u64 seqno;
- __u64 timeout_ns;
-};
-
-/**
- * struct drm_vc4_wait_bo - ioctl argument for waiting for
- * completion of the last DRM_VC4_SUBMIT_CL on a BO.
- *
- * This is useful for cases where multiple processes might be
- * rendering to a BO and you want to wait for all rendering to be
- * completed.
- */
-struct drm_vc4_wait_bo {
- __u32 handle;
- __u32 pad;
- __u64 timeout_ns;
-};
-
-/**
- * struct drm_vc4_create_bo - ioctl argument for creating VC4 BOs.
- *
- * There are currently no values for the flags argument, but it may be
- * used in a future extension.
- */
-struct drm_vc4_create_bo {
- __u32 size;
- __u32 flags;
- /** Returned GEM handle for the BO. */
- __u32 handle;
- __u32 pad;
-};
-
-/**
- * struct drm_vc4_mmap_bo - ioctl argument for mapping VC4 BOs.
- *
- * This doesn't actually perform an mmap. Instead, it returns the
- * offset you need to use in an mmap on the DRM device node. This
- * means that tools like valgrind end up knowing about the mapped
- * memory.
- *
- * There are currently no values for the flags argument, but it may be
- * used in a future extension.
- */
-struct drm_vc4_mmap_bo {
- /** Handle for the object being mapped. */
- __u32 handle;
- __u32 flags;
- /** offset into the drm node to use for subsequent mmap call. */
- __u64 offset;
-};
-
-/**
- * struct drm_vc4_create_shader_bo - ioctl argument for creating VC4
- * shader BOs.
- *
- * Since allowing a shader to be overwritten while it's also being
- * executed from would allow privlege escalation, shaders must be
- * created using this ioctl, and they can't be mmapped later.
- */
-struct drm_vc4_create_shader_bo {
- /* Size of the data argument. */
- __u32 size;
- /* Flags, currently must be 0. */
- __u32 flags;
-
- /* Pointer to the data. */
- __u64 data;
-
- /** Returned GEM handle for the BO. */
- __u32 handle;
- /* Pad, must be 0. */
- __u32 pad;
-};
-
-struct drm_vc4_get_hang_state_bo {
- __u32 handle;
- __u32 paddr;
- __u32 size;
- __u32 pad;
-};
-
-/**
- * struct drm_vc4_hang_state - ioctl argument for collecting state
- * from a GPU hang for analysis.
-*/
-struct drm_vc4_get_hang_state {
- /** Pointer to array of struct drm_vc4_get_hang_state_bo. */
- __u64 bo;
- /**
- * On input, the size of the bo array. Output is the number
- * of bos to be returned.
- */
- __u32 bo_count;
-
- __u32 start_bin, start_render;
-
- __u32 ct0ca, ct0ea;
- __u32 ct1ca, ct1ea;
- __u32 ct0cs, ct1cs;
- __u32 ct0ra0, ct1ra0;
-
- __u32 bpca, bpcs;
- __u32 bpoa, bpos;
-
- __u32 vpmbase;
-
- __u32 dbge;
- __u32 fdbgo;
- __u32 fdbgb;
- __u32 fdbgr;
- __u32 fdbgs;
- __u32 errstat;
-
- /* Pad that we may save more registers into in the future. */
- __u32 pad[16];
-};
-
-#define DRM_VC4_PARAM_V3D_IDENT0 0
-#define DRM_VC4_PARAM_V3D_IDENT1 1
-#define DRM_VC4_PARAM_V3D_IDENT2 2
-#define DRM_VC4_PARAM_SUPPORTS_BRANCHES 3
-#define DRM_VC4_PARAM_SUPPORTS_ETC1 4
-#define DRM_VC4_PARAM_SUPPORTS_THREADED_FS 5
-#define DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER 6
-#define DRM_VC4_PARAM_SUPPORTS_MADVISE 7
-#define DRM_VC4_PARAM_SUPPORTS_PERFMON 8
-
-struct drm_vc4_get_param {
- __u32 param;
- __u32 pad;
- __u64 value;
-};
-
-struct drm_vc4_get_tiling {
- __u32 handle;
- __u32 flags;
- __u64 modifier;
-};
-
-struct drm_vc4_set_tiling {
- __u32 handle;
- __u32 flags;
- __u64 modifier;
-};
-
-/**
- * struct drm_vc4_label_bo - Attach a name to a BO for debug purposes.
- */
-struct drm_vc4_label_bo {
- __u32 handle;
- __u32 len;
- __u64 name;
-};
-
-/*
- * States prefixed with '__' are internal states and cannot be passed to the
- * DRM_IOCTL_VC4_GEM_MADVISE ioctl.
- */
-#define VC4_MADV_WILLNEED 0
-#define VC4_MADV_DONTNEED 1
-#define __VC4_MADV_PURGED 2
-#define __VC4_MADV_NOTSUPP 3
-
-struct drm_vc4_gem_madvise {
- __u32 handle;
- __u32 madv;
- __u32 retained;
- __u32 pad;
-};
-
-enum {
- VC4_PERFCNT_FEP_VALID_PRIMS_NO_RENDER,
- VC4_PERFCNT_FEP_VALID_PRIMS_RENDER,
- VC4_PERFCNT_FEP_CLIPPED_QUADS,
- VC4_PERFCNT_FEP_VALID_QUADS,
- VC4_PERFCNT_TLB_QUADS_NOT_PASSING_STENCIL,
- VC4_PERFCNT_TLB_QUADS_NOT_PASSING_Z_AND_STENCIL,
- VC4_PERFCNT_TLB_QUADS_PASSING_Z_AND_STENCIL,
- VC4_PERFCNT_TLB_QUADS_ZERO_COVERAGE,
- VC4_PERFCNT_TLB_QUADS_NON_ZERO_COVERAGE,
- VC4_PERFCNT_TLB_QUADS_WRITTEN_TO_COLOR_BUF,
- VC4_PERFCNT_PLB_PRIMS_OUTSIDE_VIEWPORT,
- VC4_PERFCNT_PLB_PRIMS_NEED_CLIPPING,
- VC4_PERFCNT_PSE_PRIMS_REVERSED,
- VC4_PERFCNT_QPU_TOTAL_IDLE_CYCLES,
- VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_VERTEX_COORD_SHADING,
- VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_FRAGMENT_SHADING,
- VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_EXEC_VALID_INST,
- VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_WAITING_TMUS,
- VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_WAITING_SCOREBOARD,
- VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_WAITING_VARYINGS,
- VC4_PERFCNT_QPU_TOTAL_INST_CACHE_HIT,
- VC4_PERFCNT_QPU_TOTAL_INST_CACHE_MISS,
- VC4_PERFCNT_QPU_TOTAL_UNIFORM_CACHE_HIT,
- VC4_PERFCNT_QPU_TOTAL_UNIFORM_CACHE_MISS,
- VC4_PERFCNT_TMU_TOTAL_TEXT_QUADS_PROCESSED,
- VC4_PERFCNT_TMU_TOTAL_TEXT_CACHE_MISS,
- VC4_PERFCNT_VPM_TOTAL_CLK_CYCLES_VDW_STALLED,
- VC4_PERFCNT_VPM_TOTAL_CLK_CYCLES_VCD_STALLED,
- VC4_PERFCNT_L2C_TOTAL_L2_CACHE_HIT,
- VC4_PERFCNT_L2C_TOTAL_L2_CACHE_MISS,
- VC4_PERFCNT_NUM_EVENTS,
-};
-
-#define DRM_VC4_MAX_PERF_COUNTERS 16
-
-struct drm_vc4_perfmon_create {
- __u32 id;
- __u32 ncounters;
- __u8 events[DRM_VC4_MAX_PERF_COUNTERS];
-};
-
-struct drm_vc4_perfmon_destroy {
- __u32 id;
-};
-
-/*
- * Returns the values of the performance counters tracked by this
- * perfmon (as an array of ncounters u64 values).
- *
- * No implicit synchronization is performed, so the user has to
- * guarantee that any jobs using this perfmon have already been
- * completed (probably by blocking on the seqno returned by the
- * last exec that used the perfmon).
- */
-struct drm_vc4_perfmon_get_values {
- __u32 id;
- __u64 values_ptr;
-};
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* _VC4_DRM_H_ */
diff --git a/libdrm/libdrm/via_drm.h b/libdrm/libdrm/via_drm.h
deleted file mode 100644
index 8b69e81..0000000
--- a/libdrm/libdrm/via_drm.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
- * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sub license,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-#ifndef _VIA_DRM_H_
-#define _VIA_DRM_H_
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* WARNING: These defines must be the same as what the Xserver uses.
- * if you change them, you must change the defines in the Xserver.
- */
-
-#ifndef _VIA_DEFINES_
-#define _VIA_DEFINES_
-
-#include "via_drmclient.h"
-
-#define VIA_NR_SAREA_CLIPRECTS 8
-#define VIA_NR_XVMC_PORTS 10
-#define VIA_NR_XVMC_LOCKS 5
-#define VIA_MAX_CACHELINE_SIZE 64
-#define XVMCLOCKPTR(saPriv,lockNo) \
- ((__volatile__ struct drm_hw_lock *)(((((unsigned long) (saPriv)->XvMCLockArea) + \
- (VIA_MAX_CACHELINE_SIZE - 1)) & \
- ~(VIA_MAX_CACHELINE_SIZE - 1)) + \
- VIA_MAX_CACHELINE_SIZE*(lockNo)))
-
-/* Each region is a minimum of 64k, and there are at most 64 of them.
- */
-#define VIA_NR_TEX_REGIONS 64
-#define VIA_LOG_MIN_TEX_REGION_SIZE 16
-#endif
-
-#define VIA_UPLOAD_TEX0IMAGE 0x1 /* handled clientside */
-#define VIA_UPLOAD_TEX1IMAGE 0x2 /* handled clientside */
-#define VIA_UPLOAD_CTX 0x4
-#define VIA_UPLOAD_BUFFERS 0x8
-#define VIA_UPLOAD_TEX0 0x10
-#define VIA_UPLOAD_TEX1 0x20
-#define VIA_UPLOAD_CLIPRECTS 0x40
-#define VIA_UPLOAD_ALL 0xff
-
-/* VIA specific ioctls */
-#define DRM_VIA_ALLOCMEM 0x00
-#define DRM_VIA_FREEMEM 0x01
-#define DRM_VIA_AGP_INIT 0x02
-#define DRM_VIA_FB_INIT 0x03
-#define DRM_VIA_MAP_INIT 0x04
-#define DRM_VIA_DEC_FUTEX 0x05
-#define NOT_USED
-#define DRM_VIA_DMA_INIT 0x07
-#define DRM_VIA_CMDBUFFER 0x08
-#define DRM_VIA_FLUSH 0x09
-#define DRM_VIA_PCICMD 0x0a
-#define DRM_VIA_CMDBUF_SIZE 0x0b
-#define NOT_USED
-#define DRM_VIA_WAIT_IRQ 0x0d
-#define DRM_VIA_DMA_BLIT 0x0e
-#define DRM_VIA_BLIT_SYNC 0x0f
-
-#define DRM_IOCTL_VIA_ALLOCMEM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_ALLOCMEM, drm_via_mem_t)
-#define DRM_IOCTL_VIA_FREEMEM DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_FREEMEM, drm_via_mem_t)
-#define DRM_IOCTL_VIA_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_AGP_INIT, drm_via_agp_t)
-#define DRM_IOCTL_VIA_FB_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_FB_INIT, drm_via_fb_t)
-#define DRM_IOCTL_VIA_MAP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_MAP_INIT, drm_via_init_t)
-#define DRM_IOCTL_VIA_DEC_FUTEX DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_DEC_FUTEX, drm_via_futex_t)
-#define DRM_IOCTL_VIA_DMA_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_DMA_INIT, drm_via_dma_init_t)
-#define DRM_IOCTL_VIA_CMDBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_CMDBUFFER, drm_via_cmdbuffer_t)
-#define DRM_IOCTL_VIA_FLUSH DRM_IO( DRM_COMMAND_BASE + DRM_VIA_FLUSH)
-#define DRM_IOCTL_VIA_PCICMD DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_PCICMD, drm_via_cmdbuffer_t)
-#define DRM_IOCTL_VIA_CMDBUF_SIZE DRM_IOWR( DRM_COMMAND_BASE + DRM_VIA_CMDBUF_SIZE, \
- drm_via_cmdbuf_size_t)
-#define DRM_IOCTL_VIA_WAIT_IRQ DRM_IOWR( DRM_COMMAND_BASE + DRM_VIA_WAIT_IRQ, drm_via_irqwait_t)
-#define DRM_IOCTL_VIA_DMA_BLIT DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_DMA_BLIT, drm_via_dmablit_t)
-#define DRM_IOCTL_VIA_BLIT_SYNC DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_BLIT_SYNC, drm_via_blitsync_t)
-
-/* Indices into buf.Setup where various bits of state are mirrored per
- * context and per buffer. These can be fired at the card as a unit,
- * or in a piecewise fashion as required.
- */
-
-#define VIA_TEX_SETUP_SIZE 8
-
-/* Flags for clear ioctl
- */
-#define VIA_FRONT 0x1
-#define VIA_BACK 0x2
-#define VIA_DEPTH 0x4
-#define VIA_STENCIL 0x8
-#define VIA_MEM_VIDEO 0 /* matches drm constant */
-#define VIA_MEM_AGP 1 /* matches drm constant */
-#define VIA_MEM_SYSTEM 2
-#define VIA_MEM_MIXED 3
-#define VIA_MEM_UNKNOWN 4
-
-typedef struct {
- __u32 offset;
- __u32 size;
-} drm_via_agp_t;
-
-typedef struct {
- __u32 offset;
- __u32 size;
-} drm_via_fb_t;
-
-typedef struct {
- __u32 context;
- __u32 type;
- __u32 size;
- unsigned long index;
- unsigned long offset;
-} drm_via_mem_t;
-
-typedef struct _drm_via_init {
- enum {
- VIA_INIT_MAP = 0x01,
- VIA_CLEANUP_MAP = 0x02
- } func;
-
- unsigned long sarea_priv_offset;
- unsigned long fb_offset;
- unsigned long mmio_offset;
- unsigned long agpAddr;
-} drm_via_init_t;
-
-typedef struct _drm_via_futex {
- enum {
- VIA_FUTEX_WAIT = 0x00,
- VIA_FUTEX_WAKE = 0X01
- } func;
- __u32 ms;
- __u32 lock;
- __u32 val;
-} drm_via_futex_t;
-
-typedef struct _drm_via_dma_init {
- enum {
- VIA_INIT_DMA = 0x01,
- VIA_CLEANUP_DMA = 0x02,
- VIA_DMA_INITIALIZED = 0x03
- } func;
-
- unsigned long offset;
- unsigned long size;
- unsigned long reg_pause_addr;
-} drm_via_dma_init_t;
-
-typedef struct _drm_via_cmdbuffer {
- char *buf;
- unsigned long size;
-} drm_via_cmdbuffer_t;
-
-/* Warning: If you change the SAREA structure you must change the Xserver
- * structure as well */
-
-typedef struct _drm_via_tex_region {
- unsigned char next, prev; /* indices to form a circular LRU */
- unsigned char inUse; /* owned by a client, or free? */
- int age; /* tracked by clients to update local LRU's */
-} drm_via_tex_region_t;
-
-typedef struct _drm_via_sarea {
- unsigned int dirty;
- unsigned int nbox;
- struct drm_clip_rect boxes[VIA_NR_SAREA_CLIPRECTS];
- drm_via_tex_region_t texList[VIA_NR_TEX_REGIONS + 1];
- int texAge; /* last time texture was uploaded */
- int ctxOwner; /* last context to upload state */
- int vertexPrim;
-
- /*
- * Below is for XvMC.
- * We want the lock integers alone on, and aligned to, a cache line.
- * Therefore this somewhat strange construct.
- */
-
- char XvMCLockArea[VIA_MAX_CACHELINE_SIZE * (VIA_NR_XVMC_LOCKS + 1)];
-
- unsigned int XvMCDisplaying[VIA_NR_XVMC_PORTS];
- unsigned int XvMCSubPicOn[VIA_NR_XVMC_PORTS];
- unsigned int XvMCCtxNoGrabbed; /* Last context to hold decoder */
-
- /* Used by the 3d driver only at this point, for pageflipping:
- */
- unsigned int pfCurrentOffset;
-} drm_via_sarea_t;
-
-typedef struct _drm_via_cmdbuf_size {
- enum {
- VIA_CMDBUF_SPACE = 0x01,
- VIA_CMDBUF_LAG = 0x02
- } func;
- int wait;
- __u32 size;
-} drm_via_cmdbuf_size_t;
-
-typedef enum {
- VIA_IRQ_ABSOLUTE = 0x0,
- VIA_IRQ_RELATIVE = 0x1,
- VIA_IRQ_SIGNAL = 0x10000000,
- VIA_IRQ_FORCE_SEQUENCE = 0x20000000
-} via_irq_seq_type_t;
-
-#define VIA_IRQ_FLAGS_MASK 0xF0000000
-
-enum drm_via_irqs {
- drm_via_irq_hqv0 = 0,
- drm_via_irq_hqv1,
- drm_via_irq_dma0_dd,
- drm_via_irq_dma0_td,
- drm_via_irq_dma1_dd,
- drm_via_irq_dma1_td,
- drm_via_irq_num
-};
-
-struct drm_via_wait_irq_request {
- unsigned irq;
- via_irq_seq_type_t type;
- __u32 sequence;
- __u32 signal;
-};
-
-typedef union drm_via_irqwait {
- struct drm_via_wait_irq_request request;
- struct drm_wait_vblank_reply reply;
-} drm_via_irqwait_t;
-
-typedef struct drm_via_blitsync {
- __u32 sync_handle;
- unsigned engine;
-} drm_via_blitsync_t;
-
-/* - * Below,"flags" is currently unused but will be used for possible future
- * extensions like kernel space bounce buffers for bad alignments and
- * blit engine busy-wait polling for better latency in the absence of
- * interrupts.
- */
-
-typedef struct drm_via_dmablit {
- __u32 num_lines;
- __u32 line_length;
-
- __u32 fb_addr;
- __u32 fb_stride;
-
- unsigned char *mem_addr;
- __u32 mem_stride;
-
- __u32 flags;
- int to_fb;
-
- drm_via_blitsync_t sync;
-} drm_via_dmablit_t;
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* _VIA_DRM_H_ */
diff --git a/libdrm/libdrm/virtgpu_drm.h b/libdrm/libdrm/virtgpu_drm.h
deleted file mode 100644
index f06a789..0000000
--- a/libdrm/libdrm/virtgpu_drm.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright 2013 Red Hat
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-#ifndef VIRTGPU_DRM_H
-#define VIRTGPU_DRM_H
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Please note that modifications to all structs defined here are
- * subject to backwards-compatibility constraints.
- *
- * Do not use pointers, use __u64 instead for 32 bit / 64 bit user/kernel
- * compatibility Keep fields aligned to their size
- */
-
-#define DRM_VIRTGPU_MAP 0x01
-#define DRM_VIRTGPU_EXECBUFFER 0x02
-#define DRM_VIRTGPU_GETPARAM 0x03
-#define DRM_VIRTGPU_RESOURCE_CREATE 0x04
-#define DRM_VIRTGPU_RESOURCE_INFO 0x05
-#define DRM_VIRTGPU_TRANSFER_FROM_HOST 0x06
-#define DRM_VIRTGPU_TRANSFER_TO_HOST 0x07
-#define DRM_VIRTGPU_WAIT 0x08
-#define DRM_VIRTGPU_GET_CAPS 0x09
-
-#define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01
-#define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02
-#define VIRTGPU_EXECBUF_FLAGS (\
- VIRTGPU_EXECBUF_FENCE_FD_IN |\
- VIRTGPU_EXECBUF_FENCE_FD_OUT |\
- 0)
-
-struct drm_virtgpu_map {
- __u64 offset; /* use for mmap system call */
- __u32 handle;
- __u32 pad;
-};
-
-struct drm_virtgpu_execbuffer {
- __u32 flags;
- __u32 size;
- __u64 command; /* void* */
- __u64 bo_handles;
- __u32 num_bo_handles;
- __s32 fence_fd; /* in/out fence fd (see VIRTGPU_EXECBUF_FENCE_FD_IN/OUT) */
-};
-
-#define VIRTGPU_PARAM_3D_FEATURES 1 /* do we have 3D features in the hw */
-#define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2 /* do we have the capset fix */
-
-struct drm_virtgpu_getparam {
- __u64 param;
- __u64 value;
-};
-
-/* NO_BO flags? NO resource flag? */
-/* resource flag for y_0_top */
-struct drm_virtgpu_resource_create {
- __u32 target;
- __u32 format;
- __u32 bind;
- __u32 width;
- __u32 height;
- __u32 depth;
- __u32 array_size;
- __u32 last_level;
- __u32 nr_samples;
- __u32 flags;
- __u32 bo_handle; /* if this is set - recreate a new resource attached to this bo ? */
- __u32 res_handle; /* returned by kernel */
- __u32 size; /* validate transfer in the host */
- __u32 stride; /* validate transfer in the host */
-};
-
-struct drm_virtgpu_resource_info {
- __u32 bo_handle;
- __u32 res_handle;
- __u32 size;
- __u32 stride;
-};
-
-struct drm_virtgpu_3d_box {
- __u32 x;
- __u32 y;
- __u32 z;
- __u32 w;
- __u32 h;
- __u32 d;
-};
-
-struct drm_virtgpu_3d_transfer_to_host {
- __u32 bo_handle;
- struct drm_virtgpu_3d_box box;
- __u32 level;
- __u32 offset;
-};
-
-struct drm_virtgpu_3d_transfer_from_host {
- __u32 bo_handle;
- struct drm_virtgpu_3d_box box;
- __u32 level;
- __u32 offset;
-};
-
-#define VIRTGPU_WAIT_NOWAIT 1 /* like it */
-struct drm_virtgpu_3d_wait {
- __u32 handle; /* 0 is an invalid handle */
- __u32 flags;
-};
-
-struct drm_virtgpu_get_caps {
- __u32 cap_set_id;
- __u32 cap_set_ver;
- __u64 addr;
- __u32 size;
- __u32 pad;
-};
-
-#define DRM_IOCTL_VIRTGPU_MAP \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map)
-
-#define DRM_IOCTL_VIRTGPU_EXECBUFFER \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_EXECBUFFER,\
- struct drm_virtgpu_execbuffer)
-
-#define DRM_IOCTL_VIRTGPU_GETPARAM \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GETPARAM,\
- struct drm_virtgpu_getparam)
-
-#define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE, \
- struct drm_virtgpu_resource_create)
-
-#define DRM_IOCTL_VIRTGPU_RESOURCE_INFO \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_INFO, \
- struct drm_virtgpu_resource_info)
-
-#define DRM_IOCTL_VIRTGPU_TRANSFER_FROM_HOST \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_TRANSFER_FROM_HOST, \
- struct drm_virtgpu_3d_transfer_from_host)
-
-#define DRM_IOCTL_VIRTGPU_TRANSFER_TO_HOST \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_TRANSFER_TO_HOST, \
- struct drm_virtgpu_3d_transfer_to_host)
-
-#define DRM_IOCTL_VIRTGPU_WAIT \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_WAIT, \
- struct drm_virtgpu_3d_wait)
-
-#define DRM_IOCTL_VIRTGPU_GET_CAPS \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, \
- struct drm_virtgpu_get_caps)
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libdrm/vmwgfx_drm.h b/libdrm/libdrm/vmwgfx_drm.h
deleted file mode 100644
index 2b8d47e..0000000
--- a/libdrm/libdrm/vmwgfx_drm.h
+++ /dev/null
@@ -1,1128 +0,0 @@
-/**************************************************************************
- *
- * Copyright © 2009-2015 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-
-#ifndef __VMWGFX_DRM_H__
-#define __VMWGFX_DRM_H__
-
-#include "drm.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define DRM_VMW_MAX_SURFACE_FACES 6
-#define DRM_VMW_MAX_MIP_LEVELS 24
-
-
-#define DRM_VMW_GET_PARAM 0
-#define DRM_VMW_ALLOC_DMABUF 1
-#define DRM_VMW_UNREF_DMABUF 2
-#define DRM_VMW_HANDLE_CLOSE 2
-#define DRM_VMW_CURSOR_BYPASS 3
-/* guarded by DRM_VMW_PARAM_NUM_STREAMS != 0*/
-#define DRM_VMW_CONTROL_STREAM 4
-#define DRM_VMW_CLAIM_STREAM 5
-#define DRM_VMW_UNREF_STREAM 6
-/* guarded by DRM_VMW_PARAM_3D == 1 */
-#define DRM_VMW_CREATE_CONTEXT 7
-#define DRM_VMW_UNREF_CONTEXT 8
-#define DRM_VMW_CREATE_SURFACE 9
-#define DRM_VMW_UNREF_SURFACE 10
-#define DRM_VMW_REF_SURFACE 11
-#define DRM_VMW_EXECBUF 12
-#define DRM_VMW_GET_3D_CAP 13
-#define DRM_VMW_FENCE_WAIT 14
-#define DRM_VMW_FENCE_SIGNALED 15
-#define DRM_VMW_FENCE_UNREF 16
-#define DRM_VMW_FENCE_EVENT 17
-#define DRM_VMW_PRESENT 18
-#define DRM_VMW_PRESENT_READBACK 19
-#define DRM_VMW_UPDATE_LAYOUT 20
-#define DRM_VMW_CREATE_SHADER 21
-#define DRM_VMW_UNREF_SHADER 22
-#define DRM_VMW_GB_SURFACE_CREATE 23
-#define DRM_VMW_GB_SURFACE_REF 24
-#define DRM_VMW_SYNCCPU 25
-#define DRM_VMW_CREATE_EXTENDED_CONTEXT 26
-
-/*************************************************************************/
-/**
- * DRM_VMW_GET_PARAM - get device information.
- *
- * DRM_VMW_PARAM_FIFO_OFFSET:
- * Offset to use to map the first page of the FIFO read-only.
- * The fifo is mapped using the mmap() system call on the drm device.
- *
- * DRM_VMW_PARAM_OVERLAY_IOCTL:
- * Does the driver support the overlay ioctl.
- */
-
-#define DRM_VMW_PARAM_NUM_STREAMS 0
-#define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
-#define DRM_VMW_PARAM_3D 2
-#define DRM_VMW_PARAM_HW_CAPS 3
-#define DRM_VMW_PARAM_FIFO_CAPS 4
-#define DRM_VMW_PARAM_MAX_FB_SIZE 5
-#define DRM_VMW_PARAM_FIFO_HW_VERSION 6
-#define DRM_VMW_PARAM_MAX_SURF_MEMORY 7
-#define DRM_VMW_PARAM_3D_CAPS_SIZE 8
-#define DRM_VMW_PARAM_MAX_MOB_MEMORY 9
-#define DRM_VMW_PARAM_MAX_MOB_SIZE 10
-#define DRM_VMW_PARAM_SCREEN_TARGET 11
-#define DRM_VMW_PARAM_DX 12
-
-/**
- * enum drm_vmw_handle_type - handle type for ref ioctls
- *
- */
-enum drm_vmw_handle_type {
- DRM_VMW_HANDLE_LEGACY = 0,
- DRM_VMW_HANDLE_PRIME = 1
-};
-
-/**
- * struct drm_vmw_getparam_arg
- *
- * @value: Returned value. //Out
- * @param: Parameter to query. //In.
- *
- * Argument to the DRM_VMW_GET_PARAM Ioctl.
- */
-
-struct drm_vmw_getparam_arg {
- __u64 value;
- __u32 param;
- __u32 pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_CREATE_CONTEXT - Create a host context.
- *
- * Allocates a device unique context id, and queues a create context command
- * for the host. Does not wait for host completion.
- */
-
-/**
- * struct drm_vmw_context_arg
- *
- * @cid: Device unique context ID.
- *
- * Output argument to the DRM_VMW_CREATE_CONTEXT Ioctl.
- * Input argument to the DRM_VMW_UNREF_CONTEXT Ioctl.
- */
-
-struct drm_vmw_context_arg {
- __s32 cid;
- __u32 pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UNREF_CONTEXT - Create a host context.
- *
- * Frees a global context id, and queues a destroy host command for the host.
- * Does not wait for host completion. The context ID can be used directly
- * in the command stream and shows up as the same context ID on the host.
- */
-
-/*************************************************************************/
-/**
- * DRM_VMW_CREATE_SURFACE - Create a host suface.
- *
- * Allocates a device unique surface id, and queues a create surface command
- * for the host. Does not wait for host completion. The surface ID can be
- * used directly in the command stream and shows up as the same surface
- * ID on the host.
- */
-
-/**
- * struct drm_wmv_surface_create_req
- *
- * @flags: Surface flags as understood by the host.
- * @format: Surface format as understood by the host.
- * @mip_levels: Number of mip levels for each face.
- * An unused face should have 0 encoded.
- * @size_addr: Address of a user-space array of sruct drm_vmw_size
- * cast to an __u64 for 32-64 bit compatibility.
- * The size of the array should equal the total number of mipmap levels.
- * @shareable: Boolean whether other clients (as identified by file descriptors)
- * may reference this surface.
- * @scanout: Boolean whether the surface is intended to be used as a
- * scanout.
- *
- * Input data to the DRM_VMW_CREATE_SURFACE Ioctl.
- * Output data from the DRM_VMW_REF_SURFACE Ioctl.
- */
-
-struct drm_vmw_surface_create_req {
- __u32 flags;
- __u32 format;
- __u32 mip_levels[DRM_VMW_MAX_SURFACE_FACES];
- __u64 size_addr;
- __s32 shareable;
- __s32 scanout;
-};
-
-/**
- * struct drm_wmv_surface_arg
- *
- * @sid: Surface id of created surface or surface to destroy or reference.
- * @handle_type: Handle type for DRM_VMW_REF_SURFACE Ioctl.
- *
- * Output data from the DRM_VMW_CREATE_SURFACE Ioctl.
- * Input argument to the DRM_VMW_UNREF_SURFACE Ioctl.
- * Input argument to the DRM_VMW_REF_SURFACE Ioctl.
- */
-
-struct drm_vmw_surface_arg {
- __s32 sid;
- enum drm_vmw_handle_type handle_type;
-};
-
-/**
- * struct drm_vmw_size ioctl.
- *
- * @width - mip level width
- * @height - mip level height
- * @depth - mip level depth
- *
- * Description of a mip level.
- * Input data to the DRM_WMW_CREATE_SURFACE Ioctl.
- */
-
-struct drm_vmw_size {
- __u32 width;
- __u32 height;
- __u32 depth;
- __u32 pad64;
-};
-
-/**
- * union drm_vmw_surface_create_arg
- *
- * @rep: Output data as described above.
- * @req: Input data as described above.
- *
- * Argument to the DRM_VMW_CREATE_SURFACE Ioctl.
- */
-
-union drm_vmw_surface_create_arg {
- struct drm_vmw_surface_arg rep;
- struct drm_vmw_surface_create_req req;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_REF_SURFACE - Reference a host surface.
- *
- * Puts a reference on a host surface with a give sid, as previously
- * returned by the DRM_VMW_CREATE_SURFACE ioctl.
- * A reference will make sure the surface isn't destroyed while we hold
- * it and will allow the calling client to use the surface ID in the command
- * stream.
- *
- * On successful return, the Ioctl returns the surface information given
- * in the DRM_VMW_CREATE_SURFACE ioctl.
- */
-
-/**
- * union drm_vmw_surface_reference_arg
- *
- * @rep: Output data as described above.
- * @req: Input data as described above.
- *
- * Argument to the DRM_VMW_REF_SURFACE Ioctl.
- */
-
-union drm_vmw_surface_reference_arg {
- struct drm_vmw_surface_create_req rep;
- struct drm_vmw_surface_arg req;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UNREF_SURFACE - Unreference a host surface.
- *
- * Clear a reference previously put on a host surface.
- * When all references are gone, including the one implicitly placed
- * on creation,
- * a destroy surface command will be queued for the host.
- * Does not wait for completion.
- */
-
-/*************************************************************************/
-/**
- * DRM_VMW_EXECBUF
- *
- * Submit a command buffer for execution on the host, and return a
- * fence seqno that when signaled, indicates that the command buffer has
- * executed.
- */
-
-/**
- * struct drm_vmw_execbuf_arg
- *
- * @commands: User-space address of a command buffer cast to an __u64.
- * @command-size: Size in bytes of the command buffer.
- * @throttle-us: Sleep until software is less than @throttle_us
- * microseconds ahead of hardware. The driver may round this value
- * to the nearest kernel tick.
- * @fence_rep: User-space address of a struct drm_vmw_fence_rep cast to an
- * __u64.
- * @version: Allows expanding the execbuf ioctl parameters without breaking
- * backwards compatibility, since user-space will always tell the kernel
- * which version it uses.
- * @flags: Execbuf flags.
- * @imported_fence_fd: FD for a fence imported from another device
- *
- * Argument to the DRM_VMW_EXECBUF Ioctl.
- */
-
-#define DRM_VMW_EXECBUF_VERSION 2
-
-#define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0)
-#define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1)
-
-struct drm_vmw_execbuf_arg {
- __u64 commands;
- __u32 command_size;
- __u32 throttle_us;
- __u64 fence_rep;
- __u32 version;
- __u32 flags;
- __u32 context_handle;
- __s32 imported_fence_fd;
-};
-
-/**
- * struct drm_vmw_fence_rep
- *
- * @handle: Fence object handle for fence associated with a command submission.
- * @mask: Fence flags relevant for this fence object.
- * @seqno: Fence sequence number in fifo. A fence object with a lower
- * seqno will signal the EXEC flag before a fence object with a higher
- * seqno. This can be used by user-space to avoid kernel calls to determine
- * whether a fence has signaled the EXEC flag. Note that @seqno will
- * wrap at 32-bit.
- * @passed_seqno: The highest seqno number processed by the hardware
- * so far. This can be used to mark user-space fence objects as signaled, and
- * to determine whether a fence seqno might be stale.
- * @fd: FD associated with the fence, -1 if not exported
- * @error: This member should've been set to -EFAULT on submission.
- * The following actions should be take on completion:
- * error == -EFAULT: Fence communication failed. The host is synchronized.
- * Use the last fence id read from the FIFO fence register.
- * error != 0 && error != -EFAULT:
- * Fence submission failed. The host is synchronized. Use the fence_seq member.
- * error == 0: All is OK, The host may not be synchronized.
- * Use the fence_seq member.
- *
- * Input / Output data to the DRM_VMW_EXECBUF Ioctl.
- */
-
-struct drm_vmw_fence_rep {
- __u32 handle;
- __u32 mask;
- __u32 seqno;
- __u32 passed_seqno;
- __s32 fd;
- __s32 error;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_ALLOC_DMABUF
- *
- * Allocate a DMA buffer that is visible also to the host.
- * NOTE: The buffer is
- * identified by a handle and an offset, which are private to the guest, but
- * usable in the command stream. The guest kernel may translate these
- * and patch up the command stream accordingly. In the future, the offset may
- * be zero at all times, or it may disappear from the interface before it is
- * fixed.
- *
- * The DMA buffer may stay user-space mapped in the guest at all times,
- * and is thus suitable for sub-allocation.
- *
- * DMA buffers are mapped using the mmap() syscall on the drm device.
- */
-
-/**
- * struct drm_vmw_alloc_dmabuf_req
- *
- * @size: Required minimum size of the buffer.
- *
- * Input data to the DRM_VMW_ALLOC_DMABUF Ioctl.
- */
-
-struct drm_vmw_alloc_dmabuf_req {
- __u32 size;
- __u32 pad64;
-};
-
-/**
- * struct drm_vmw_dmabuf_rep
- *
- * @map_handle: Offset to use in the mmap() call used to map the buffer.
- * @handle: Handle unique to this buffer. Used for unreferencing.
- * @cur_gmr_id: GMR id to use in the command stream when this buffer is
- * referenced. See not above.
- * @cur_gmr_offset: Offset to use in the command stream when this buffer is
- * referenced. See note above.
- *
- * Output data from the DRM_VMW_ALLOC_DMABUF Ioctl.
- */
-
-struct drm_vmw_dmabuf_rep {
- __u64 map_handle;
- __u32 handle;
- __u32 cur_gmr_id;
- __u32 cur_gmr_offset;
- __u32 pad64;
-};
-
-/**
- * union drm_vmw_dmabuf_arg
- *
- * @req: Input data as described above.
- * @rep: Output data as described above.
- *
- * Argument to the DRM_VMW_ALLOC_DMABUF Ioctl.
- */
-
-union drm_vmw_alloc_dmabuf_arg {
- struct drm_vmw_alloc_dmabuf_req req;
- struct drm_vmw_dmabuf_rep rep;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UNREF_DMABUF - Free a DMA buffer.
- *
- */
-
-/**
- * struct drm_vmw_unref_dmabuf_arg
- *
- * @handle: Handle indicating what buffer to free. Obtained from the
- * DRM_VMW_ALLOC_DMABUF Ioctl.
- *
- * Argument to the DRM_VMW_UNREF_DMABUF Ioctl.
- */
-
-struct drm_vmw_unref_dmabuf_arg {
- __u32 handle;
- __u32 pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_CONTROL_STREAM - Control overlays, aka streams.
- *
- * This IOCTL controls the overlay units of the svga device.
- * The SVGA overlay units does not work like regular hardware units in
- * that they do not automatically read back the contents of the given dma
- * buffer. But instead only read back for each call to this ioctl, and
- * at any point between this call being made and a following call that
- * either changes the buffer or disables the stream.
- */
-
-/**
- * struct drm_vmw_rect
- *
- * Defines a rectangle. Used in the overlay ioctl to define
- * source and destination rectangle.
- */
-
-struct drm_vmw_rect {
- __s32 x;
- __s32 y;
- __u32 w;
- __u32 h;
-};
-
-/**
- * struct drm_vmw_control_stream_arg
- *
- * @stream_id: Stearm to control
- * @enabled: If false all following arguments are ignored.
- * @handle: Handle to buffer for getting data from.
- * @format: Format of the overlay as understood by the host.
- * @width: Width of the overlay.
- * @height: Height of the overlay.
- * @size: Size of the overlay in bytes.
- * @pitch: Array of pitches, the two last are only used for YUV12 formats.
- * @offset: Offset from start of dma buffer to overlay.
- * @src: Source rect, must be within the defined area above.
- * @dst: Destination rect, x and y may be negative.
- *
- * Argument to the DRM_VMW_CONTROL_STREAM Ioctl.
- */
-
-struct drm_vmw_control_stream_arg {
- __u32 stream_id;
- __u32 enabled;
-
- __u32 flags;
- __u32 color_key;
-
- __u32 handle;
- __u32 offset;
- __s32 format;
- __u32 size;
- __u32 width;
- __u32 height;
- __u32 pitch[3];
-
- __u32 pad64;
- struct drm_vmw_rect src;
- struct drm_vmw_rect dst;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_CURSOR_BYPASS - Give extra information about cursor bypass.
- *
- */
-
-#define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0)
-#define DRM_VMW_CURSOR_BYPASS_FLAGS (1)
-
-/**
- * struct drm_vmw_cursor_bypass_arg
- *
- * @flags: Flags.
- * @crtc_id: Crtc id, only used if DMR_CURSOR_BYPASS_ALL isn't passed.
- * @xpos: X position of cursor.
- * @ypos: Y position of cursor.
- * @xhot: X hotspot.
- * @yhot: Y hotspot.
- *
- * Argument to the DRM_VMW_CURSOR_BYPASS Ioctl.
- */
-
-struct drm_vmw_cursor_bypass_arg {
- __u32 flags;
- __u32 crtc_id;
- __s32 xpos;
- __s32 ypos;
- __s32 xhot;
- __s32 yhot;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_CLAIM_STREAM - Claim a single stream.
- */
-
-/**
- * struct drm_vmw_context_arg
- *
- * @stream_id: Device unique context ID.
- *
- * Output argument to the DRM_VMW_CREATE_CONTEXT Ioctl.
- * Input argument to the DRM_VMW_UNREF_CONTEXT Ioctl.
- */
-
-struct drm_vmw_stream_arg {
- __u32 stream_id;
- __u32 pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UNREF_STREAM - Unclaim a stream.
- *
- * Return a single stream that was claimed by this process. Also makes
- * sure that the stream has been stopped.
- */
-
-/*************************************************************************/
-/**
- * DRM_VMW_GET_3D_CAP
- *
- * Read 3D capabilities from the FIFO
- *
- */
-
-/**
- * struct drm_vmw_get_3d_cap_arg
- *
- * @buffer: Pointer to a buffer for capability data, cast to an __u64
- * @size: Max size to copy
- *
- * Input argument to the DRM_VMW_GET_3D_CAP_IOCTL
- * ioctls.
- */
-
-struct drm_vmw_get_3d_cap_arg {
- __u64 buffer;
- __u32 max_size;
- __u32 pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_FENCE_WAIT
- *
- * Waits for a fence object to signal. The wait is interruptible, so that
- * signals may be delivered during the interrupt. The wait may timeout,
- * in which case the calls returns -EBUSY. If the wait is restarted,
- * that is restarting without resetting @cookie_valid to zero,
- * the timeout is computed from the first call.
- *
- * The flags argument to the DRM_VMW_FENCE_WAIT ioctl indicates what to wait
- * on:
- * DRM_VMW_FENCE_FLAG_EXEC: All commands ahead of the fence in the command
- * stream
- * have executed.
- * DRM_VMW_FENCE_FLAG_QUERY: All query results resulting from query finish
- * commands
- * in the buffer given to the EXECBUF ioctl returning the fence object handle
- * are available to user-space.
- *
- * DRM_VMW_WAIT_OPTION_UNREF: If this wait option is given, and the
- * fenc wait ioctl returns 0, the fence object has been unreferenced after
- * the wait.
- */
-
-#define DRM_VMW_FENCE_FLAG_EXEC (1 << 0)
-#define DRM_VMW_FENCE_FLAG_QUERY (1 << 1)
-
-#define DRM_VMW_WAIT_OPTION_UNREF (1 << 0)
-
-/**
- * struct drm_vmw_fence_wait_arg
- *
- * @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl.
- * @cookie_valid: Must be reset to 0 on first call. Left alone on restart.
- * @kernel_cookie: Set to 0 on first call. Left alone on restart.
- * @timeout_us: Wait timeout in microseconds. 0 for indefinite timeout.
- * @lazy: Set to 1 if timing is not critical. Allow more than a kernel tick
- * before returning.
- * @flags: Fence flags to wait on.
- * @wait_options: Options that control the behaviour of the wait ioctl.
- *
- * Input argument to the DRM_VMW_FENCE_WAIT ioctl.
- */
-
-struct drm_vmw_fence_wait_arg {
- __u32 handle;
- __s32 cookie_valid;
- __u64 kernel_cookie;
- __u64 timeout_us;
- __s32 lazy;
- __s32 flags;
- __s32 wait_options;
- __s32 pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_FENCE_SIGNALED
- *
- * Checks if a fence object is signaled..
- */
-
-/**
- * struct drm_vmw_fence_signaled_arg
- *
- * @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl.
- * @flags: Fence object flags input to DRM_VMW_FENCE_SIGNALED ioctl
- * @signaled: Out: Flags signaled.
- * @sequence: Out: Highest sequence passed so far. Can be used to signal the
- * EXEC flag of user-space fence objects.
- *
- * Input/Output argument to the DRM_VMW_FENCE_SIGNALED and DRM_VMW_FENCE_UNREF
- * ioctls.
- */
-
-struct drm_vmw_fence_signaled_arg {
- __u32 handle;
- __u32 flags;
- __s32 signaled;
- __u32 passed_seqno;
- __u32 signaled_flags;
- __u32 pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_FENCE_UNREF
- *
- * Unreferences a fence object, and causes it to be destroyed if there are no
- * other references to it.
- *
- */
-
-/**
- * struct drm_vmw_fence_arg
- *
- * @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl.
- *
- * Input/Output argument to the DRM_VMW_FENCE_UNREF ioctl..
- */
-
-struct drm_vmw_fence_arg {
- __u32 handle;
- __u32 pad64;
-};
-
-
-/*************************************************************************/
-/**
- * DRM_VMW_FENCE_EVENT
- *
- * Queues an event on a fence to be delivered on the drm character device
- * when the fence has signaled the DRM_VMW_FENCE_FLAG_EXEC flag.
- * Optionally the approximate time when the fence signaled is
- * given by the event.
- */
-
-/*
- * The event type
- */
-#define DRM_VMW_EVENT_FENCE_SIGNALED 0x80000000
-
-struct drm_vmw_event_fence {
- struct drm_event base;
- __u64 user_data;
- __u32 tv_sec;
- __u32 tv_usec;
-};
-
-/*
- * Flags that may be given to the command.
- */
-/* Request fence signaled time on the event. */
-#define DRM_VMW_FE_FLAG_REQ_TIME (1 << 0)
-
-/**
- * struct drm_vmw_fence_event_arg
- *
- * @fence_rep: Pointer to fence_rep structure cast to __u64 or 0 if
- * the fence is not supposed to be referenced by user-space.
- * @user_info: Info to be delivered with the event.
- * @handle: Attach the event to this fence only.
- * @flags: A set of flags as defined above.
- */
-struct drm_vmw_fence_event_arg {
- __u64 fence_rep;
- __u64 user_data;
- __u32 handle;
- __u32 flags;
-};
-
-
-/*************************************************************************/
-/**
- * DRM_VMW_PRESENT
- *
- * Executes an SVGA present on a given fb for a given surface. The surface
- * is placed on the framebuffer. Cliprects are given relative to the given
- * point (the point disignated by dest_{x|y}).
- *
- */
-
-/**
- * struct drm_vmw_present_arg
- * @fb_id: framebuffer id to present / read back from.
- * @sid: Surface id to present from.
- * @dest_x: X placement coordinate for surface.
- * @dest_y: Y placement coordinate for surface.
- * @clips_ptr: Pointer to an array of clip rects cast to an __u64.
- * @num_clips: Number of cliprects given relative to the framebuffer origin,
- * in the same coordinate space as the frame buffer.
- * @pad64: Unused 64-bit padding.
- *
- * Input argument to the DRM_VMW_PRESENT ioctl.
- */
-
-struct drm_vmw_present_arg {
- __u32 fb_id;
- __u32 sid;
- __s32 dest_x;
- __s32 dest_y;
- __u64 clips_ptr;
- __u32 num_clips;
- __u32 pad64;
-};
-
-
-/*************************************************************************/
-/**
- * DRM_VMW_PRESENT_READBACK
- *
- * Executes an SVGA present readback from a given fb to the dma buffer
- * currently bound as the fb. If there is no dma buffer bound to the fb,
- * an error will be returned.
- *
- */
-
-/**
- * struct drm_vmw_present_arg
- * @fb_id: fb_id to present / read back from.
- * @num_clips: Number of cliprects.
- * @clips_ptr: Pointer to an array of clip rects cast to an __u64.
- * @fence_rep: Pointer to a struct drm_vmw_fence_rep, cast to an __u64.
- * If this member is NULL, then the ioctl should not return a fence.
- */
-
-struct drm_vmw_present_readback_arg {
- __u32 fb_id;
- __u32 num_clips;
- __u64 clips_ptr;
- __u64 fence_rep;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UPDATE_LAYOUT - Update layout
- *
- * Updates the preferred modes and connection status for connectors. The
- * command consists of one drm_vmw_update_layout_arg pointing to an array
- * of num_outputs drm_vmw_rect's.
- */
-
-/**
- * struct drm_vmw_update_layout_arg
- *
- * @num_outputs: number of active connectors
- * @rects: pointer to array of drm_vmw_rect cast to an __u64
- *
- * Input argument to the DRM_VMW_UPDATE_LAYOUT Ioctl.
- */
-struct drm_vmw_update_layout_arg {
- __u32 num_outputs;
- __u32 pad64;
- __u64 rects;
-};
-
-
-/*************************************************************************/
-/**
- * DRM_VMW_CREATE_SHADER - Create shader
- *
- * Creates a shader and optionally binds it to a dma buffer containing
- * the shader byte-code.
- */
-
-/**
- * enum drm_vmw_shader_type - Shader types
- */
-enum drm_vmw_shader_type {
- drm_vmw_shader_type_vs = 0,
- drm_vmw_shader_type_ps,
-};
-
-
-/**
- * struct drm_vmw_shader_create_arg
- *
- * @shader_type: Shader type of the shader to create.
- * @size: Size of the byte-code in bytes.
- * where the shader byte-code starts
- * @buffer_handle: Buffer handle identifying the buffer containing the
- * shader byte-code
- * @shader_handle: On successful completion contains a handle that
- * can be used to subsequently identify the shader.
- * @offset: Offset in bytes into the buffer given by @buffer_handle,
- *
- * Input / Output argument to the DRM_VMW_CREATE_SHADER Ioctl.
- */
-struct drm_vmw_shader_create_arg {
- enum drm_vmw_shader_type shader_type;
- __u32 size;
- __u32 buffer_handle;
- __u32 shader_handle;
- __u64 offset;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UNREF_SHADER - Unreferences a shader
- *
- * Destroys a user-space reference to a shader, optionally destroying
- * it.
- */
-
-/**
- * struct drm_vmw_shader_arg
- *
- * @handle: Handle identifying the shader to destroy.
- *
- * Input argument to the DRM_VMW_UNREF_SHADER ioctl.
- */
-struct drm_vmw_shader_arg {
- __u32 handle;
- __u32 pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_GB_SURFACE_CREATE - Create a host guest-backed surface.
- *
- * Allocates a surface handle and queues a create surface command
- * for the host on the first use of the surface. The surface ID can
- * be used as the surface ID in commands referencing the surface.
- */
-
-/**
- * enum drm_vmw_surface_flags
- *
- * @drm_vmw_surface_flag_shareable: Whether the surface is shareable
- * @drm_vmw_surface_flag_scanout: Whether the surface is a scanout
- * surface.
- * @drm_vmw_surface_flag_create_buffer: Create a backup buffer if none is
- * given.
- */
-enum drm_vmw_surface_flags {
- drm_vmw_surface_flag_shareable = (1 << 0),
- drm_vmw_surface_flag_scanout = (1 << 1),
- drm_vmw_surface_flag_create_buffer = (1 << 2)
-};
-
-/**
- * struct drm_vmw_gb_surface_create_req
- *
- * @svga3d_flags: SVGA3d surface flags for the device.
- * @format: SVGA3d format.
- * @mip_level: Number of mip levels for all faces.
- * @drm_surface_flags Flags as described above.
- * @multisample_count Future use. Set to 0.
- * @autogen_filter Future use. Set to 0.
- * @buffer_handle Buffer handle of backup buffer. SVGA3D_INVALID_ID
- * if none.
- * @base_size Size of the base mip level for all faces.
- * @array_size Must be zero for non-DX hardware, and if non-zero
- * svga3d_flags must have proper bind flags setup.
- *
- * Input argument to the DRM_VMW_GB_SURFACE_CREATE Ioctl.
- * Part of output argument for the DRM_VMW_GB_SURFACE_REF Ioctl.
- */
-struct drm_vmw_gb_surface_create_req {
- __u32 svga3d_flags;
- __u32 format;
- __u32 mip_levels;
- enum drm_vmw_surface_flags drm_surface_flags;
- __u32 multisample_count;
- __u32 autogen_filter;
- __u32 buffer_handle;
- __u32 array_size;
- struct drm_vmw_size base_size;
-};
-
-/**
- * struct drm_vmw_gb_surface_create_rep
- *
- * @handle: Surface handle.
- * @backup_size: Size of backup buffers for this surface.
- * @buffer_handle: Handle of backup buffer. SVGA3D_INVALID_ID if none.
- * @buffer_size: Actual size of the buffer identified by
- * @buffer_handle
- * @buffer_map_handle: Offset into device address space for the buffer
- * identified by @buffer_handle.
- *
- * Part of output argument for the DRM_VMW_GB_SURFACE_REF ioctl.
- * Output argument for the DRM_VMW_GB_SURFACE_CREATE ioctl.
- */
-struct drm_vmw_gb_surface_create_rep {
- __u32 handle;
- __u32 backup_size;
- __u32 buffer_handle;
- __u32 buffer_size;
- __u64 buffer_map_handle;
-};
-
-/**
- * union drm_vmw_gb_surface_create_arg
- *
- * @req: Input argument as described above.
- * @rep: Output argument as described above.
- *
- * Argument to the DRM_VMW_GB_SURFACE_CREATE ioctl.
- */
-union drm_vmw_gb_surface_create_arg {
- struct drm_vmw_gb_surface_create_rep rep;
- struct drm_vmw_gb_surface_create_req req;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_GB_SURFACE_REF - Reference a host surface.
- *
- * Puts a reference on a host surface with a given handle, as previously
- * returned by the DRM_VMW_GB_SURFACE_CREATE ioctl.
- * A reference will make sure the surface isn't destroyed while we hold
- * it and will allow the calling client to use the surface handle in
- * the command stream.
- *
- * On successful return, the Ioctl returns the surface information given
- * to and returned from the DRM_VMW_GB_SURFACE_CREATE ioctl.
- */
-
-/**
- * struct drm_vmw_gb_surface_reference_arg
- *
- * @creq: The data used as input when the surface was created, as described
- * above at "struct drm_vmw_gb_surface_create_req"
- * @crep: Additional data output when the surface was created, as described
- * above at "struct drm_vmw_gb_surface_create_rep"
- *
- * Output Argument to the DRM_VMW_GB_SURFACE_REF ioctl.
- */
-struct drm_vmw_gb_surface_ref_rep {
- struct drm_vmw_gb_surface_create_req creq;
- struct drm_vmw_gb_surface_create_rep crep;
-};
-
-/**
- * union drm_vmw_gb_surface_reference_arg
- *
- * @req: Input data as described above at "struct drm_vmw_surface_arg"
- * @rep: Output data as described above at "struct drm_vmw_gb_surface_ref_rep"
- *
- * Argument to the DRM_VMW_GB_SURFACE_REF Ioctl.
- */
-union drm_vmw_gb_surface_reference_arg {
- struct drm_vmw_gb_surface_ref_rep rep;
- struct drm_vmw_surface_arg req;
-};
-
-
-/*************************************************************************/
-/**
- * DRM_VMW_SYNCCPU - Sync a DMA buffer / MOB for CPU access.
- *
- * Idles any previously submitted GPU operations on the buffer and
- * by default blocks command submissions that reference the buffer.
- * If the file descriptor used to grab a blocking CPU sync is closed, the
- * cpu sync is released.
- * The flags argument indicates how the grab / release operation should be
- * performed:
- */
-
-/**
- * enum drm_vmw_synccpu_flags - Synccpu flags:
- *
- * @drm_vmw_synccpu_read: Sync for read. If sync is done for read only, it's a
- * hint to the kernel to allow command submissions that references the buffer
- * for read-only.
- * @drm_vmw_synccpu_write: Sync for write. Block all command submissions
- * referencing this buffer.
- * @drm_vmw_synccpu_dontblock: Don't wait for GPU idle, but rather return
- * -EBUSY should the buffer be busy.
- * @drm_vmw_synccpu_allow_cs: Allow command submission that touches the buffer
- * while the buffer is synced for CPU. This is similar to the GEM bo idle
- * behavior.
- */
-enum drm_vmw_synccpu_flags {
- drm_vmw_synccpu_read = (1 << 0),
- drm_vmw_synccpu_write = (1 << 1),
- drm_vmw_synccpu_dontblock = (1 << 2),
- drm_vmw_synccpu_allow_cs = (1 << 3)
-};
-
-/**
- * enum drm_vmw_synccpu_op - Synccpu operations:
- *
- * @drm_vmw_synccpu_grab: Grab the buffer for CPU operations
- * @drm_vmw_synccpu_release: Release a previous grab.
- */
-enum drm_vmw_synccpu_op {
- drm_vmw_synccpu_grab,
- drm_vmw_synccpu_release
-};
-
-/**
- * struct drm_vmw_synccpu_arg
- *
- * @op: The synccpu operation as described above.
- * @handle: Handle identifying the buffer object.
- * @flags: Flags as described above.
- */
-struct drm_vmw_synccpu_arg {
- enum drm_vmw_synccpu_op op;
- enum drm_vmw_synccpu_flags flags;
- __u32 handle;
- __u32 pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_CREATE_EXTENDED_CONTEXT - Create a host context.
- *
- * Allocates a device unique context id, and queues a create context command
- * for the host. Does not wait for host completion.
- */
-enum drm_vmw_extended_context {
- drm_vmw_context_legacy,
- drm_vmw_context_dx
-};
-
-/**
- * union drm_vmw_extended_context_arg
- *
- * @req: Context type.
- * @rep: Context identifier.
- *
- * Argument to the DRM_VMW_CREATE_EXTENDED_CONTEXT Ioctl.
- */
-union drm_vmw_extended_context_arg {
- enum drm_vmw_extended_context req;
- struct drm_vmw_context_arg rep;
-};
-
-/*************************************************************************/
-/*
- * DRM_VMW_HANDLE_CLOSE - Close a user-space handle and release its
- * underlying resource.
- *
- * Note that this ioctl is overlaid on the DRM_VMW_UNREF_DMABUF Ioctl.
- * The ioctl arguments therefore need to be identical in layout.
- *
- */
-
-/**
- * struct drm_vmw_handle_close_arg
- *
- * @handle: Handle to close.
- *
- * Argument to the DRM_VMW_HANDLE_CLOSE Ioctl.
- */
-struct drm_vmw_handle_close_arg {
- __u32 handle;
- __u32 pad64;
-};
-
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/libsync.h b/libdrm/libsync.h
deleted file mode 100644
index f1a2f96..0000000
--- a/libdrm/libsync.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * sync abstraction
- * Copyright 2015-2016 Collabora Ltd.
- *
- * Based on the implementation from the Android Open Source Project,
- *
- * Copyright 2012 Google, Inc
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _LIBSYNC_H
-#define _LIBSYNC_H
-
-#include <assert.h>
-#include <errno.h>
-#include <stdint.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <sys/poll.h>
-#include <unistd.h>
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#ifndef SYNC_IOC_MERGE
-/* duplicated from linux/sync_file.h to avoid build-time dependency
- * on new (v4.7) kernel headers. Once distro's are mostly using
- * something newer than v4.7 drop this and #include <linux/sync_file.h>
- * instead.
- */
-struct sync_merge_data {
- char name[32];
- int32_t fd2;
- int32_t fence;
- uint32_t flags;
- uint32_t pad;
-};
-#define SYNC_IOC_MAGIC '>'
-#define SYNC_IOC_MERGE _IOWR(SYNC_IOC_MAGIC, 3, struct sync_merge_data)
-#endif
-
-
-static inline int sync_wait(int fd, int timeout)
-{
- struct pollfd fds = {0};
- int ret;
-
- fds.fd = fd;
- fds.events = POLLIN;
-
- do {
- ret = poll(&fds, 1, timeout);
- if (ret > 0) {
- if (fds.revents & (POLLERR | POLLNVAL)) {
- errno = EINVAL;
- return -1;
- }
- return 0;
- } else if (ret == 0) {
- errno = ETIME;
- return -1;
- }
- } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-
- return ret;
-}
-
-static inline int sync_merge(const char *name, int fd1, int fd2)
-{
- struct sync_merge_data data = {0};
- int ret;
-
- data.fd2 = fd2;
- strncpy(data.name, name, sizeof(data.name));
-
- do {
- ret = ioctl(fd1, SYNC_IOC_MERGE, &data);
- } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-
- if (ret < 0)
- return ret;
-
- return data.fence;
-}
-
-/* accumulate fd2 into fd1. If *fd1 is not a valid fd then dup fd2,
- * otherwise sync_merge() and close the old *fd1. This can be used
- * to implement the pattern:
- *
- * init()
- * {
- * batch.fence_fd = -1;
- * }
- *
- * // does *NOT* take ownership of fd
- * server_sync(int fd)
- * {
- * if (sync_accumulate("foo", &batch.fence_fd, fd)) {
- * ... error ...
- * }
- * }
- */
-static inline int sync_accumulate(const char *name, int *fd1, int fd2)
-{
- int ret;
-
- assert(fd2 >= 0);
-
- if (*fd1 < 0) {
- *fd1 = dup(fd2);
- return 0;
- }
-
- ret = sync_merge(name, *fd1, fd2);
- if (ret < 0) {
- /* leave *fd1 as it is */
- return ret;
- }
-
- close(*fd1);
- *fd1 = ret;
-
- return 0;
-}
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/xf86drm.h b/libdrm/xf86drm.h
deleted file mode 100644
index 4badaae..0000000
--- a/libdrm/xf86drm.h
+++ /dev/null
@@ -1,969 +0,0 @@
-/**
- * \file xf86drm.h
- * OS-independent header for DRM user-level library interface.
- *
- * \author Rickard E. (Rik) Faith <faith@valinux.com>
- */
-
-/*
- * Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef _XF86DRM_H_
-#define _XF86DRM_H_
-
-#include <stdarg.h>
-#include <sys/types.h>
-#include <stdint.h>
-#include <drm.h>
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#ifndef DRM_MAX_MINOR
-#define DRM_MAX_MINOR 16
-#endif
-
-#if defined(__linux__)
-
-#define DRM_IOCTL_NR(n) _IOC_NR(n)
-#define DRM_IOC_VOID _IOC_NONE
-#define DRM_IOC_READ _IOC_READ
-#define DRM_IOC_WRITE _IOC_WRITE
-#define DRM_IOC_READWRITE _IOC_READ|_IOC_WRITE
-#define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
-
-#else /* One of the *BSDs */
-
-#include <sys/ioccom.h>
-#define DRM_IOCTL_NR(n) ((n) & 0xff)
-#define DRM_IOC_VOID IOC_VOID
-#define DRM_IOC_READ IOC_OUT
-#define DRM_IOC_WRITE IOC_IN
-#define DRM_IOC_READWRITE IOC_INOUT
-#define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
-
-#endif
-
- /* Defaults, if nothing set in xf86config */
-#define DRM_DEV_UID 0
-#define DRM_DEV_GID 0
-/* Default /dev/dri directory permissions 0755 */
-#define DRM_DEV_DIRMODE \
- (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
-#define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP)
-
-#ifdef __OpenBSD__
-#define DRM_DIR_NAME "/dev"
-#define DRM_PRIMARY_MINOR_NAME "drm"
-#define DRM_CONTROL_MINOR_NAME "drmC"
-#define DRM_RENDER_MINOR_NAME "drmR"
-#else
-#define DRM_DIR_NAME "/dev/dri"
-#define DRM_PRIMARY_MINOR_NAME "card"
-#define DRM_CONTROL_MINOR_NAME "controlD"
-#define DRM_RENDER_MINOR_NAME "renderD"
-#define DRM_PROC_NAME "/proc/dri/" /* For backward Linux compatibility */
-#endif
-
-#define DRM_DEV_NAME "%s/" DRM_PRIMARY_MINOR_NAME "%d"
-#define DRM_CONTROL_DEV_NAME "%s/" DRM_CONTROL_MINOR_NAME "%d"
-#define DRM_RENDER_DEV_NAME "%s/" DRM_RENDER_MINOR_NAME "%d"
-
-#define DRM_NODE_NAME_MAX \
- (sizeof(DRM_DIR_NAME) + 1 /* slash */ \
- + MAX3(sizeof(DRM_PRIMARY_MINOR_NAME), \
- sizeof(DRM_CONTROL_MINOR_NAME), \
- sizeof(DRM_RENDER_MINOR_NAME)) \
- + sizeof("144") /* highest possible node number */ \
- + 1) /* NULL-terminator */
-
-#define DRM_ERR_NO_DEVICE (-1001)
-#define DRM_ERR_NO_ACCESS (-1002)
-#define DRM_ERR_NOT_ROOT (-1003)
-#define DRM_ERR_INVALID (-1004)
-#define DRM_ERR_NO_FD (-1005)
-
-#define DRM_AGP_NO_HANDLE 0
-
-typedef unsigned int drmSize, *drmSizePtr; /**< For mapped regions */
-typedef void *drmAddress, **drmAddressPtr; /**< For mapped regions */
-
-#if (__GNUC__ >= 3)
-#define DRM_PRINTFLIKE(f, a) __attribute__ ((format(__printf__, f, a)))
-#else
-#define DRM_PRINTFLIKE(f, a)
-#endif
-
-typedef struct _drmServerInfo {
- int (*debug_print)(const char *format, va_list ap) DRM_PRINTFLIKE(1,0);
- int (*load_module)(const char *name);
- void (*get_perms)(gid_t *, mode_t *);
-} drmServerInfo, *drmServerInfoPtr;
-
-typedef struct drmHashEntry {
- int fd;
- void (*f)(int, void *, void *);
- void *tagTable;
-} drmHashEntry;
-
-extern int drmIoctl(int fd, unsigned long request, void *arg);
-extern void *drmGetHashTable(void);
-extern drmHashEntry *drmGetEntry(int fd);
-
-/**
- * Driver version information.
- *
- * \sa drmGetVersion() and drmSetVersion().
- */
-typedef struct _drmVersion {
- int version_major; /**< Major version */
- int version_minor; /**< Minor version */
- int version_patchlevel; /**< Patch level */
- int name_len; /**< Length of name buffer */
- char *name; /**< Name of driver */
- int date_len; /**< Length of date buffer */
- char *date; /**< User-space buffer to hold date */
- int desc_len; /**< Length of desc buffer */
- char *desc; /**< User-space buffer to hold desc */
-} drmVersion, *drmVersionPtr;
-
-typedef struct _drmStats {
- unsigned long count; /**< Number of data */
- struct {
- unsigned long value; /**< Value from kernel */
- const char *long_format; /**< Suggested format for long_name */
- const char *long_name; /**< Long name for value */
- const char *rate_format; /**< Suggested format for rate_name */
- const char *rate_name; /**< Short name for value per second */
- int isvalue; /**< True if value (vs. counter) */
- const char *mult_names; /**< Multiplier names (e.g., "KGM") */
- int mult; /**< Multiplier value (e.g., 1024) */
- int verbose; /**< Suggest only in verbose output */
- } data[15];
-} drmStatsT;
-
-
- /* All of these enums *MUST* match with the
- kernel implementation -- so do *NOT*
- change them! (The drmlib implementation
- will just copy the flags instead of
- translating them.) */
-typedef enum {
- DRM_FRAME_BUFFER = 0, /**< WC, no caching, no core dump */
- DRM_REGISTERS = 1, /**< no caching, no core dump */
- DRM_SHM = 2, /**< shared, cached */
- DRM_AGP = 3, /**< AGP/GART */
- DRM_SCATTER_GATHER = 4, /**< PCI scatter/gather */
- DRM_CONSISTENT = 5 /**< PCI consistent */
-} drmMapType;
-
-typedef enum {
- DRM_RESTRICTED = 0x0001, /**< Cannot be mapped to client-virtual */
- DRM_READ_ONLY = 0x0002, /**< Read-only in client-virtual */
- DRM_LOCKED = 0x0004, /**< Physical pages locked */
- DRM_KERNEL = 0x0008, /**< Kernel requires access */
- DRM_WRITE_COMBINING = 0x0010, /**< Use write-combining, if available */
- DRM_CONTAINS_LOCK = 0x0020, /**< SHM page that contains lock */
- DRM_REMOVABLE = 0x0040 /**< Removable mapping */
-} drmMapFlags;
-
-/**
- * \warning These values *MUST* match drm.h
- */
-typedef enum {
- /** \name Flags for DMA buffer dispatch */
- /*@{*/
- DRM_DMA_BLOCK = 0x01, /**<
- * Block until buffer dispatched.
- *
- * \note the buffer may not yet have been
- * processed by the hardware -- getting a
- * hardware lock with the hardware quiescent
- * will ensure that the buffer has been
- * processed.
- */
- DRM_DMA_WHILE_LOCKED = 0x02, /**< Dispatch while lock held */
- DRM_DMA_PRIORITY = 0x04, /**< High priority dispatch */
- /*@}*/
-
- /** \name Flags for DMA buffer request */
- /*@{*/
- DRM_DMA_WAIT = 0x10, /**< Wait for free buffers */
- DRM_DMA_SMALLER_OK = 0x20, /**< Smaller-than-requested buffers OK */
- DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */
- /*@}*/
-} drmDMAFlags;
-
-typedef enum {
- DRM_PAGE_ALIGN = 0x01,
- DRM_AGP_BUFFER = 0x02,
- DRM_SG_BUFFER = 0x04,
- DRM_FB_BUFFER = 0x08,
- DRM_PCI_BUFFER_RO = 0x10
-} drmBufDescFlags;
-
-typedef enum {
- DRM_LOCK_READY = 0x01, /**< Wait until hardware is ready for DMA */
- DRM_LOCK_QUIESCENT = 0x02, /**< Wait until hardware quiescent */
- DRM_LOCK_FLUSH = 0x04, /**< Flush this context's DMA queue first */
- DRM_LOCK_FLUSH_ALL = 0x08, /**< Flush all DMA queues first */
- /* These *HALT* flags aren't supported yet
- -- they will be used to support the
- full-screen DGA-like mode. */
- DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */
- DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */
-} drmLockFlags;
-
-typedef enum {
- DRM_CONTEXT_PRESERVED = 0x01, /**< This context is preserved and
- never swapped. */
- DRM_CONTEXT_2DONLY = 0x02 /**< This context is for 2D rendering only. */
-} drm_context_tFlags, *drm_context_tFlagsPtr;
-
-typedef struct _drmBufDesc {
- int count; /**< Number of buffers of this size */
- int size; /**< Size in bytes */
- int low_mark; /**< Low water mark */
- int high_mark; /**< High water mark */
-} drmBufDesc, *drmBufDescPtr;
-
-typedef struct _drmBufInfo {
- int count; /**< Number of buffers described in list */
- drmBufDescPtr list; /**< List of buffer descriptions */
-} drmBufInfo, *drmBufInfoPtr;
-
-typedef struct _drmBuf {
- int idx; /**< Index into the master buffer list */
- int total; /**< Buffer size */
- int used; /**< Amount of buffer in use (for DMA) */
- drmAddress address; /**< Address */
-} drmBuf, *drmBufPtr;
-
-/**
- * Buffer mapping information.
- *
- * Used by drmMapBufs() and drmUnmapBufs() to store information about the
- * mapped buffers.
- */
-typedef struct _drmBufMap {
- int count; /**< Number of buffers mapped */
- drmBufPtr list; /**< Buffers */
-} drmBufMap, *drmBufMapPtr;
-
-typedef struct _drmLock {
- volatile unsigned int lock;
- char padding[60];
- /* This is big enough for most current (and future?) architectures:
- DEC Alpha: 32 bytes
- Intel Merced: ?
- Intel P5/PPro/PII/PIII: 32 bytes
- Intel StrongARM: 32 bytes
- Intel i386/i486: 16 bytes
- MIPS: 32 bytes (?)
- Motorola 68k: 16 bytes
- Motorola PowerPC: 32 bytes
- Sun SPARC: 32 bytes
- */
-} drmLock, *drmLockPtr;
-
-/**
- * Indices here refer to the offset into
- * list in drmBufInfo
- */
-typedef struct _drmDMAReq {
- drm_context_t context; /**< Context handle */
- int send_count; /**< Number of buffers to send */
- int *send_list; /**< List of handles to buffers */
- int *send_sizes; /**< Lengths of data to send, in bytes */
- drmDMAFlags flags; /**< Flags */
- int request_count; /**< Number of buffers requested */
- int request_size; /**< Desired size of buffers requested */
- int *request_list; /**< Buffer information */
- int *request_sizes; /**< Minimum acceptable sizes */
- int granted_count; /**< Number of buffers granted at this size */
-} drmDMAReq, *drmDMAReqPtr;
-
-typedef struct _drmRegion {
- drm_handle_t handle;
- unsigned int offset;
- drmSize size;
- drmAddress map;
-} drmRegion, *drmRegionPtr;
-
-typedef struct _drmTextureRegion {
- unsigned char next;
- unsigned char prev;
- unsigned char in_use;
- unsigned char padding; /**< Explicitly pad this out */
- unsigned int age;
-} drmTextureRegion, *drmTextureRegionPtr;
-
-
-typedef enum {
- DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */
- DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */
- /* bits 1-6 are reserved for high crtcs */
- DRM_VBLANK_HIGH_CRTC_MASK = 0x0000003e,
- DRM_VBLANK_EVENT = 0x4000000, /**< Send event instead of blocking */
- DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */
- DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */
- DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */
- DRM_VBLANK_SIGNAL = 0x40000000 /* Send signal instead of blocking */
-} drmVBlankSeqType;
-#define DRM_VBLANK_HIGH_CRTC_SHIFT 1
-
-typedef struct _drmVBlankReq {
- drmVBlankSeqType type;
- unsigned int sequence;
- unsigned long signal;
-} drmVBlankReq, *drmVBlankReqPtr;
-
-typedef struct _drmVBlankReply {
- drmVBlankSeqType type;
- unsigned int sequence;
- long tval_sec;
- long tval_usec;
-} drmVBlankReply, *drmVBlankReplyPtr;
-
-typedef union _drmVBlank {
- drmVBlankReq request;
- drmVBlankReply reply;
-} drmVBlank, *drmVBlankPtr;
-
-typedef struct _drmSetVersion {
- int drm_di_major;
- int drm_di_minor;
- int drm_dd_major;
- int drm_dd_minor;
-} drmSetVersion, *drmSetVersionPtr;
-
-#define __drm_dummy_lock(lock) (*(__volatile__ unsigned int *)lock)
-
-#define DRM_LOCK_HELD 0x80000000U /**< Hardware lock is held */
-#define DRM_LOCK_CONT 0x40000000U /**< Hardware lock is contended */
-
-#if defined(__GNUC__) && (__GNUC__ >= 2)
-# if defined(__i386) || defined(__AMD64__) || defined(__x86_64__) || defined(__amd64__)
- /* Reflect changes here to drmP.h */
-#define DRM_CAS(lock,old,new,__ret) \
- do { \
- int __dummy; /* Can't mark eax as clobbered */ \
- __asm__ __volatile__( \
- "lock ; cmpxchg %4,%1\n\t" \
- "setnz %0" \
- : "=d" (__ret), \
- "=m" (__drm_dummy_lock(lock)), \
- "=a" (__dummy) \
- : "2" (old), \
- "r" (new)); \
- } while (0)
-
-#elif defined(__alpha__)
-
-#define DRM_CAS(lock, old, new, ret) \
- do { \
- int tmp, old32; \
- __asm__ __volatile__( \
- " addl $31, %5, %3\n" \
- "1: ldl_l %0, %2\n" \
- " cmpeq %0, %3, %1\n" \
- " beq %1, 2f\n" \
- " mov %4, %0\n" \
- " stl_c %0, %2\n" \
- " beq %0, 3f\n" \
- " mb\n" \
- "2: cmpeq %1, 0, %1\n" \
- ".subsection 2\n" \
- "3: br 1b\n" \
- ".previous" \
- : "=&r"(tmp), "=&r"(ret), \
- "=m"(__drm_dummy_lock(lock)), \
- "=&r"(old32) \
- : "r"(new), "r"(old) \
- : "memory"); \
- } while (0)
-
-#elif defined(__sparc__)
-
-#define DRM_CAS(lock,old,new,__ret) \
-do { register unsigned int __old __asm("o0"); \
- register unsigned int __new __asm("o1"); \
- register volatile unsigned int *__lock __asm("o2"); \
- __old = old; \
- __new = new; \
- __lock = (volatile unsigned int *)lock; \
- __asm__ __volatile__( \
- /*"cas [%2], %3, %0"*/ \
- ".word 0xd3e29008\n\t" \
- /*"membar #StoreStore | #StoreLoad"*/ \
- ".word 0x8143e00a" \
- : "=&r" (__new) \
- : "0" (__new), \
- "r" (__lock), \
- "r" (__old) \
- : "memory"); \
- __ret = (__new != __old); \
-} while(0)
-
-#elif defined(__ia64__)
-
-#ifdef __INTEL_COMPILER
-/* this currently generates bad code (missing stop bits)... */
-#include <ia64intrin.h>
-
-#define DRM_CAS(lock,old,new,__ret) \
- do { \
- unsigned long __result, __old = (old) & 0xffffffff; \
- __mf(); \
- __result = _InterlockedCompareExchange_acq(&__drm_dummy_lock(lock), (new), __old);\
- __ret = (__result) != (__old); \
-/* __ret = (__sync_val_compare_and_swap(&__drm_dummy_lock(lock), \
- (old), (new)) \
- != (old)); */\
- } while (0)
-
-#else
-#define DRM_CAS(lock,old,new,__ret) \
- do { \
- unsigned int __result, __old = (old); \
- __asm__ __volatile__( \
- "mf\n" \
- "mov ar.ccv=%2\n" \
- ";;\n" \
- "cmpxchg4.acq %0=%1,%3,ar.ccv" \
- : "=r" (__result), "=m" (__drm_dummy_lock(lock)) \
- : "r" ((unsigned long)__old), "r" (new) \
- : "memory"); \
- __ret = (__result) != (__old); \
- } while (0)
-
-#endif
-
-#elif defined(__powerpc__)
-
-#define DRM_CAS(lock,old,new,__ret) \
- do { \
- __asm__ __volatile__( \
- "sync;" \
- "0: lwarx %0,0,%1;" \
- " xor. %0,%3,%0;" \
- " bne 1f;" \
- " stwcx. %2,0,%1;" \
- " bne- 0b;" \
- "1: " \
- "sync;" \
- : "=&r"(__ret) \
- : "r"(lock), "r"(new), "r"(old) \
- : "cr0", "memory"); \
- } while (0)
-
-# elif defined (__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
- || defined (__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) \
- || defined (__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) \
- || defined (__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
- || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \
- || defined(__ARM_ARCH_7EM__)
- /* excluding ARMv4/ARMv5 and lower (lacking ldrex/strex support) */
- #undef DRM_DEV_MODE
- #define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
-
- #define DRM_CAS(lock,old,new,__ret) \
- do { \
- __asm__ __volatile__ ( \
- "1: ldrex %0, [%1]\n" \
- " teq %0, %2\n" \
- " ite eq\n" \
- " strexeq %0, %3, [%1]\n" \
- " movne %0, #1\n" \
- : "=&r" (__ret) \
- : "r" (lock), "r" (old), "r" (new) \
- : "cc","memory"); \
- } while (0)
-
-#endif /* architecture */
-#endif /* __GNUC__ >= 2 */
-
-#ifndef DRM_CAS
-#define DRM_CAS(lock,old,new,ret) do { ret=1; } while (0) /* FAST LOCK FAILS */
-#endif
-
-#if defined(__alpha__)
-#define DRM_CAS_RESULT(_result) long _result
-#elif defined(__powerpc__)
-#define DRM_CAS_RESULT(_result) int _result
-#else
-#define DRM_CAS_RESULT(_result) char _result
-#endif
-
-#define DRM_LIGHT_LOCK(fd,lock,context) \
- do { \
- DRM_CAS_RESULT(__ret); \
- DRM_CAS(lock,context,DRM_LOCK_HELD|context,__ret); \
- if (__ret) drmGetLock(fd,context,0); \
- } while(0)
-
- /* This one counts fast locks -- for
- benchmarking only. */
-#define DRM_LIGHT_LOCK_COUNT(fd,lock,context,count) \
- do { \
- DRM_CAS_RESULT(__ret); \
- DRM_CAS(lock,context,DRM_LOCK_HELD|context,__ret); \
- if (__ret) drmGetLock(fd,context,0); \
- else ++count; \
- } while(0)
-
-#define DRM_LOCK(fd,lock,context,flags) \
- do { \
- if (flags) drmGetLock(fd,context,flags); \
- else DRM_LIGHT_LOCK(fd,lock,context); \
- } while(0)
-
-#define DRM_UNLOCK(fd,lock,context) \
- do { \
- DRM_CAS_RESULT(__ret); \
- DRM_CAS(lock,DRM_LOCK_HELD|context,context,__ret); \
- if (__ret) drmUnlock(fd,context); \
- } while(0)
-
- /* Simple spin locks */
-#define DRM_SPINLOCK(spin,val) \
- do { \
- DRM_CAS_RESULT(__ret); \
- do { \
- DRM_CAS(spin,0,val,__ret); \
- if (__ret) while ((spin)->lock); \
- } while (__ret); \
- } while(0)
-
-#define DRM_SPINLOCK_TAKE(spin,val) \
- do { \
- DRM_CAS_RESULT(__ret); \
- int cur; \
- do { \
- cur = (*spin).lock; \
- DRM_CAS(spin,cur,val,__ret); \
- } while (__ret); \
- } while(0)
-
-#define DRM_SPINLOCK_COUNT(spin,val,count,__ret) \
- do { \
- int __i; \
- __ret = 1; \
- for (__i = 0; __ret && __i < count; __i++) { \
- DRM_CAS(spin,0,val,__ret); \
- if (__ret) for (;__i < count && (spin)->lock; __i++); \
- } \
- } while(0)
-
-#define DRM_SPINUNLOCK(spin,val) \
- do { \
- DRM_CAS_RESULT(__ret); \
- if ((*spin).lock == val) { /* else server stole lock */ \
- do { \
- DRM_CAS(spin,val,0,__ret); \
- } while (__ret); \
- } \
- } while(0)
-
-
-
-/* General user-level programmer's API: unprivileged */
-extern int drmAvailable(void);
-extern int drmOpen(const char *name, const char *busid);
-
-#define DRM_NODE_PRIMARY 0
-#define DRM_NODE_CONTROL 1
-#define DRM_NODE_RENDER 2
-#define DRM_NODE_MAX 3
-
-extern int drmOpenWithType(const char *name, const char *busid,
- int type);
-
-extern int drmOpenControl(int minor);
-extern int drmOpenRender(int minor);
-extern int drmClose(int fd);
-extern drmVersionPtr drmGetVersion(int fd);
-extern drmVersionPtr drmGetLibVersion(int fd);
-extern int drmGetCap(int fd, uint64_t capability, uint64_t *value);
-extern void drmFreeVersion(drmVersionPtr);
-extern int drmGetMagic(int fd, drm_magic_t * magic);
-extern char *drmGetBusid(int fd);
-extern int drmGetInterruptFromBusID(int fd, int busnum, int devnum,
- int funcnum);
-extern int drmGetMap(int fd, int idx, drm_handle_t *offset,
- drmSize *size, drmMapType *type,
- drmMapFlags *flags, drm_handle_t *handle,
- int *mtrr);
-extern int drmGetClient(int fd, int idx, int *auth, int *pid,
- int *uid, unsigned long *magic,
- unsigned long *iocs);
-extern int drmGetStats(int fd, drmStatsT *stats);
-extern int drmSetInterfaceVersion(int fd, drmSetVersion *version);
-extern int drmCommandNone(int fd, unsigned long drmCommandIndex);
-extern int drmCommandRead(int fd, unsigned long drmCommandIndex,
- void *data, unsigned long size);
-extern int drmCommandWrite(int fd, unsigned long drmCommandIndex,
- void *data, unsigned long size);
-extern int drmCommandWriteRead(int fd, unsigned long drmCommandIndex,
- void *data, unsigned long size);
-
-/* General user-level programmer's API: X server (root) only */
-extern void drmFreeBusid(const char *busid);
-extern int drmSetBusid(int fd, const char *busid);
-extern int drmAuthMagic(int fd, drm_magic_t magic);
-extern int drmAddMap(int fd,
- drm_handle_t offset,
- drmSize size,
- drmMapType type,
- drmMapFlags flags,
- drm_handle_t * handle);
-extern int drmRmMap(int fd, drm_handle_t handle);
-extern int drmAddContextPrivateMapping(int fd, drm_context_t ctx_id,
- drm_handle_t handle);
-
-extern int drmAddBufs(int fd, int count, int size,
- drmBufDescFlags flags,
- int agp_offset);
-extern int drmMarkBufs(int fd, double low, double high);
-extern int drmCreateContext(int fd, drm_context_t * handle);
-extern int drmSetContextFlags(int fd, drm_context_t context,
- drm_context_tFlags flags);
-extern int drmGetContextFlags(int fd, drm_context_t context,
- drm_context_tFlagsPtr flags);
-extern int drmAddContextTag(int fd, drm_context_t context, void *tag);
-extern int drmDelContextTag(int fd, drm_context_t context);
-extern void *drmGetContextTag(int fd, drm_context_t context);
-extern drm_context_t * drmGetReservedContextList(int fd, int *count);
-extern void drmFreeReservedContextList(drm_context_t *);
-extern int drmSwitchToContext(int fd, drm_context_t context);
-extern int drmDestroyContext(int fd, drm_context_t handle);
-extern int drmCreateDrawable(int fd, drm_drawable_t * handle);
-extern int drmDestroyDrawable(int fd, drm_drawable_t handle);
-extern int drmUpdateDrawableInfo(int fd, drm_drawable_t handle,
- drm_drawable_info_type_t type,
- unsigned int num, void *data);
-extern int drmCtlInstHandler(int fd, int irq);
-extern int drmCtlUninstHandler(int fd);
-extern int drmSetClientCap(int fd, uint64_t capability,
- uint64_t value);
-
-extern int drmCrtcGetSequence(int fd, uint32_t crtcId,
- uint64_t *sequence, uint64_t *ns);
-extern int drmCrtcQueueSequence(int fd, uint32_t crtcId,
- uint32_t flags, uint64_t sequence,
- uint64_t *sequence_queued,
- uint64_t user_data);
-/* General user-level programmer's API: authenticated client and/or X */
-extern int drmMap(int fd,
- drm_handle_t handle,
- drmSize size,
- drmAddressPtr address);
-extern int drmUnmap(drmAddress address, drmSize size);
-extern drmBufInfoPtr drmGetBufInfo(int fd);
-extern drmBufMapPtr drmMapBufs(int fd);
-extern int drmUnmapBufs(drmBufMapPtr bufs);
-extern int drmDMA(int fd, drmDMAReqPtr request);
-extern int drmFreeBufs(int fd, int count, int *list);
-extern int drmGetLock(int fd,
- drm_context_t context,
- drmLockFlags flags);
-extern int drmUnlock(int fd, drm_context_t context);
-extern int drmFinish(int fd, int context, drmLockFlags flags);
-extern int drmGetContextPrivateMapping(int fd, drm_context_t ctx_id,
- drm_handle_t * handle);
-
-/* AGP/GART support: X server (root) only */
-extern int drmAgpAcquire(int fd);
-extern int drmAgpRelease(int fd);
-extern int drmAgpEnable(int fd, unsigned long mode);
-extern int drmAgpAlloc(int fd, unsigned long size,
- unsigned long type, unsigned long *address,
- drm_handle_t *handle);
-extern int drmAgpFree(int fd, drm_handle_t handle);
-extern int drmAgpBind(int fd, drm_handle_t handle,
- unsigned long offset);
-extern int drmAgpUnbind(int fd, drm_handle_t handle);
-
-/* AGP/GART info: authenticated client and/or X */
-extern int drmAgpVersionMajor(int fd);
-extern int drmAgpVersionMinor(int fd);
-extern unsigned long drmAgpGetMode(int fd);
-extern unsigned long drmAgpBase(int fd); /* Physical location */
-extern unsigned long drmAgpSize(int fd); /* Bytes */
-extern unsigned long drmAgpMemoryUsed(int fd);
-extern unsigned long drmAgpMemoryAvail(int fd);
-extern unsigned int drmAgpVendorId(int fd);
-extern unsigned int drmAgpDeviceId(int fd);
-
-/* PCI scatter/gather support: X server (root) only */
-extern int drmScatterGatherAlloc(int fd, unsigned long size,
- drm_handle_t *handle);
-extern int drmScatterGatherFree(int fd, drm_handle_t handle);
-
-extern int drmWaitVBlank(int fd, drmVBlankPtr vbl);
-
-/* Support routines */
-extern void drmSetServerInfo(drmServerInfoPtr info);
-extern int drmError(int err, const char *label);
-extern void *drmMalloc(int size);
-extern void drmFree(void *pt);
-
-/* Hash table routines */
-extern void *drmHashCreate(void);
-extern int drmHashDestroy(void *t);
-extern int drmHashLookup(void *t, unsigned long key, void **value);
-extern int drmHashInsert(void *t, unsigned long key, void *value);
-extern int drmHashDelete(void *t, unsigned long key);
-extern int drmHashFirst(void *t, unsigned long *key, void **value);
-extern int drmHashNext(void *t, unsigned long *key, void **value);
-
-/* PRNG routines */
-extern void *drmRandomCreate(unsigned long seed);
-extern int drmRandomDestroy(void *state);
-extern unsigned long drmRandom(void *state);
-extern double drmRandomDouble(void *state);
-
-/* Skip list routines */
-
-extern void *drmSLCreate(void);
-extern int drmSLDestroy(void *l);
-extern int drmSLLookup(void *l, unsigned long key, void **value);
-extern int drmSLInsert(void *l, unsigned long key, void *value);
-extern int drmSLDelete(void *l, unsigned long key);
-extern int drmSLNext(void *l, unsigned long *key, void **value);
-extern int drmSLFirst(void *l, unsigned long *key, void **value);
-extern void drmSLDump(void *l);
-extern int drmSLLookupNeighbors(void *l, unsigned long key,
- unsigned long *prev_key, void **prev_value,
- unsigned long *next_key, void **next_value);
-
-extern int drmOpenOnce(void *unused, const char *BusID, int *newlyopened);
-extern int drmOpenOnceWithType(const char *BusID, int *newlyopened, int type);
-extern void drmCloseOnce(int fd);
-extern void drmMsg(const char *format, ...) DRM_PRINTFLIKE(1, 2);
-
-extern int drmSetMaster(int fd);
-extern int drmDropMaster(int fd);
-extern int drmIsMaster(int fd);
-
-#define DRM_EVENT_CONTEXT_VERSION 4
-
-typedef struct _drmEventContext {
-
- /* This struct is versioned so we can add more pointers if we
- * add more events. */
- int version;
-
- void (*vblank_handler)(int fd,
- unsigned int sequence,
- unsigned int tv_sec,
- unsigned int tv_usec,
- void *user_data);
-
- void (*page_flip_handler)(int fd,
- unsigned int sequence,
- unsigned int tv_sec,
- unsigned int tv_usec,
- void *user_data);
-
- void (*page_flip_handler2)(int fd,
- unsigned int sequence,
- unsigned int tv_sec,
- unsigned int tv_usec,
- unsigned int crtc_id,
- void *user_data);
-
- void (*sequence_handler)(int fd,
- uint64_t sequence,
- uint64_t ns,
- uint64_t user_data);
-} drmEventContext, *drmEventContextPtr;
-
-extern int drmHandleEvent(int fd, drmEventContextPtr evctx);
-
-extern char *drmGetDeviceNameFromFd(int fd);
-
-/* Improved version of drmGetDeviceNameFromFd which attributes for any type of
- * device/node - card, control or renderD.
- */
-extern char *drmGetDeviceNameFromFd2(int fd);
-extern int drmGetNodeTypeFromFd(int fd);
-
-/* Convert between GEM handles and DMA-BUF file descriptors.
- *
- * Warning: since GEM handles are not reference-counted and are unique per
- * DRM file description, the caller is expected to perform its own reference
- * counting. drmPrimeFDToHandle is guaranteed to return the same handle for
- * different FDs if they reference the same underlying buffer object. This
- * could even be a buffer object originally created on the same DRM FD.
- *
- * When sharing a DRM FD with an API such as EGL or GBM, the caller must not
- * use drmPrimeHandleToFD nor drmPrimeFDToHandle. A single user-space
- * reference-counting implementation is necessary to avoid double-closing GEM
- * handles.
- *
- * Two processes can't share the same DRM FD and both use it to create or
- * import GEM handles, even when using a single user-space reference-counting
- * implementation like GBM, because GBM doesn't share its state between
- * processes.
- */
-extern int drmPrimeHandleToFD(int fd, uint32_t handle, uint32_t flags, int *prime_fd);
-extern int drmPrimeFDToHandle(int fd, int prime_fd, uint32_t *handle);
-
-extern int drmCloseBufferHandle(int fd, uint32_t handle);
-
-extern char *drmGetPrimaryDeviceNameFromFd(int fd);
-extern char *drmGetRenderDeviceNameFromFd(int fd);
-
-#define DRM_BUS_PCI 0
-#define DRM_BUS_USB 1
-#define DRM_BUS_PLATFORM 2
-#define DRM_BUS_HOST1X 3
-
-typedef struct _drmPciBusInfo {
- uint16_t domain;
- uint8_t bus;
- uint8_t dev;
- uint8_t func;
-} drmPciBusInfo, *drmPciBusInfoPtr;
-
-typedef struct _drmPciDeviceInfo {
- uint16_t vendor_id;
- uint16_t device_id;
- uint16_t subvendor_id;
- uint16_t subdevice_id;
- uint8_t revision_id;
-} drmPciDeviceInfo, *drmPciDeviceInfoPtr;
-
-typedef struct _drmUsbBusInfo {
- uint8_t bus;
- uint8_t dev;
-} drmUsbBusInfo, *drmUsbBusInfoPtr;
-
-typedef struct _drmUsbDeviceInfo {
- uint16_t vendor;
- uint16_t product;
-} drmUsbDeviceInfo, *drmUsbDeviceInfoPtr;
-
-#define DRM_PLATFORM_DEVICE_NAME_LEN 512
-
-typedef struct _drmPlatformBusInfo {
- char fullname[DRM_PLATFORM_DEVICE_NAME_LEN];
-} drmPlatformBusInfo, *drmPlatformBusInfoPtr;
-
-typedef struct _drmPlatformDeviceInfo {
- char **compatible; /* NULL terminated list of compatible strings */
-} drmPlatformDeviceInfo, *drmPlatformDeviceInfoPtr;
-
-#define DRM_HOST1X_DEVICE_NAME_LEN 512
-
-typedef struct _drmHost1xBusInfo {
- char fullname[DRM_HOST1X_DEVICE_NAME_LEN];
-} drmHost1xBusInfo, *drmHost1xBusInfoPtr;
-
-typedef struct _drmHost1xDeviceInfo {
- char **compatible; /* NULL terminated list of compatible strings */
-} drmHost1xDeviceInfo, *drmHost1xDeviceInfoPtr;
-
-typedef struct _drmDevice {
- char **nodes; /* DRM_NODE_MAX sized array */
- int available_nodes; /* DRM_NODE_* bitmask */
- int bustype;
- union {
- drmPciBusInfoPtr pci;
- drmUsbBusInfoPtr usb;
- drmPlatformBusInfoPtr platform;
- drmHost1xBusInfoPtr host1x;
- } businfo;
- union {
- drmPciDeviceInfoPtr pci;
- drmUsbDeviceInfoPtr usb;
- drmPlatformDeviceInfoPtr platform;
- drmHost1xDeviceInfoPtr host1x;
- } deviceinfo;
-} drmDevice, *drmDevicePtr;
-
-extern int drmGetDevice(int fd, drmDevicePtr *device);
-extern void drmFreeDevice(drmDevicePtr *device);
-
-extern int drmGetDevices(drmDevicePtr devices[], int max_devices);
-extern void drmFreeDevices(drmDevicePtr devices[], int count);
-
-#define DRM_DEVICE_GET_PCI_REVISION (1 << 0)
-extern int drmGetDevice2(int fd, uint32_t flags, drmDevicePtr *device);
-extern int drmGetDevices2(uint32_t flags, drmDevicePtr devices[], int max_devices);
-
-extern int drmGetDeviceFromDevId(dev_t dev_id, uint32_t flags, drmDevicePtr *device);
-
-extern int drmDevicesEqual(drmDevicePtr a, drmDevicePtr b);
-
-extern int drmSyncobjCreate(int fd, uint32_t flags, uint32_t *handle);
-extern int drmSyncobjDestroy(int fd, uint32_t handle);
-extern int drmSyncobjHandleToFD(int fd, uint32_t handle, int *obj_fd);
-extern int drmSyncobjFDToHandle(int fd, int obj_fd, uint32_t *handle);
-
-extern int drmSyncobjImportSyncFile(int fd, uint32_t handle, int sync_file_fd);
-extern int drmSyncobjExportSyncFile(int fd, uint32_t handle, int *sync_file_fd);
-extern int drmSyncobjWait(int fd, uint32_t *handles, unsigned num_handles,
- int64_t timeout_nsec, unsigned flags,
- uint32_t *first_signaled);
-extern int drmSyncobjReset(int fd, const uint32_t *handles, uint32_t handle_count);
-extern int drmSyncobjSignal(int fd, const uint32_t *handles, uint32_t handle_count);
-extern int drmSyncobjTimelineSignal(int fd, const uint32_t *handles,
- uint64_t *points, uint32_t handle_count);
-extern int drmSyncobjTimelineWait(int fd, uint32_t *handles, uint64_t *points,
- unsigned num_handles,
- int64_t timeout_nsec, unsigned flags,
- uint32_t *first_signaled);
-extern int drmSyncobjQuery(int fd, uint32_t *handles, uint64_t *points,
- uint32_t handle_count);
-extern int drmSyncobjQuery2(int fd, uint32_t *handles, uint64_t *points,
- uint32_t handle_count, uint32_t flags);
-extern int drmSyncobjTransfer(int fd,
- uint32_t dst_handle, uint64_t dst_point,
- uint32_t src_handle, uint64_t src_point,
- uint32_t flags);
-
-extern char *
-drmGetFormatModifierVendor(uint64_t modifier);
-
-extern char *
-drmGetFormatModifierName(uint64_t modifier);
-
-extern char *
-drmGetFormatName(uint32_t format);
-
-#ifndef fourcc_mod_get_vendor
-#define fourcc_mod_get_vendor(modifier) \
- (((modifier) >> 56) & 0xff)
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/libdrm/xf86drmMode.h b/libdrm/xf86drmMode.h
deleted file mode 100644
index d911c9a..0000000
--- a/libdrm/xf86drmMode.h
+++ /dev/null
@@ -1,536 +0,0 @@
-/*
- * \file xf86drmMode.h
- * Header for DRM modesetting interface.
- *
- * \author Jakob Bornecrantz <wallbraker@gmail.com>
- *
- * \par Acknowledgements:
- * Feb 2007, Dave Airlie <airlied@linux.ie>
- */
-
-/*
- * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, Texas.
- * Copyright (c) 2007-2008 Dave Airlie <airlied@linux.ie>
- * Copyright (c) 2007-2008 Jakob Bornecrantz <wallbraker@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- */
-
-#ifndef _XF86DRMMODE_H_
-#define _XF86DRMMODE_H_
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#include <drm.h>
-#include <drm_mode.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdint.h>
-
-/*
- * This is the interface for modesetting for drm.
- *
- * It aims to provide a randr1.2 compatible interface for modesettings in the
- * kernel, the interface is also meant to be used by libraries like EGL.
- *
- * More information can be found in randrproto.txt which can be found here:
- * http://gitweb.freedesktop.org/?p=xorg/proto/randrproto.git
- *
- * There are some major differences to be noted. Unlike the randr1.2 proto you
- * need to create the memory object of the framebuffer yourself with the ttm
- * buffer object interface. This object needs to be pinned.
- */
-
-/*
- * Feature defines
- *
- * Just because these are defined doesn't mean that the kernel
- * can do that feature, its just for new code vs old libdrm.
- */
-#define DRM_MODE_FEATURE_KMS 1
-#define DRM_MODE_FEATURE_DIRTYFB 1
-
-
-typedef struct _drmModeRes {
-
- int count_fbs;
- uint32_t *fbs;
-
- int count_crtcs;
- uint32_t *crtcs;
-
- int count_connectors;
- uint32_t *connectors;
-
- int count_encoders;
- uint32_t *encoders;
-
- uint32_t min_width, max_width;
- uint32_t min_height, max_height;
-} drmModeRes, *drmModeResPtr;
-
-typedef struct _drmModeModeInfo {
- uint32_t clock;
- uint16_t hdisplay, hsync_start, hsync_end, htotal, hskew;
- uint16_t vdisplay, vsync_start, vsync_end, vtotal, vscan;
-
- uint32_t vrefresh;
-
- uint32_t flags;
- uint32_t type;
- char name[DRM_DISPLAY_MODE_LEN];
-} drmModeModeInfo, *drmModeModeInfoPtr;
-
-typedef struct _drmModeFB {
- uint32_t fb_id;
- uint32_t width, height;
- uint32_t pitch;
- uint32_t bpp;
- uint32_t depth;
- /* driver specific handle */
- uint32_t handle;
-} drmModeFB, *drmModeFBPtr;
-
-typedef struct _drmModeFB2 {
- uint32_t fb_id;
- uint32_t width, height;
- uint32_t pixel_format; /* fourcc code from drm_fourcc.h */
- uint64_t modifier; /* applies to all buffers */
- uint32_t flags;
-
- /* per-plane GEM handle; may be duplicate entries for multiple planes */
- uint32_t handles[4];
- uint32_t pitches[4]; /* bytes */
- uint32_t offsets[4]; /* bytes */
-} drmModeFB2, *drmModeFB2Ptr;
-
-typedef struct drm_clip_rect drmModeClip, *drmModeClipPtr;
-
-typedef struct _drmModePropertyBlob {
- uint32_t id;
- uint32_t length;
- void *data;
-} drmModePropertyBlobRes, *drmModePropertyBlobPtr;
-
-typedef struct _drmModeProperty {
- uint32_t prop_id;
- uint32_t flags;
- char name[DRM_PROP_NAME_LEN];
- int count_values;
- uint64_t *values; /* store the blob lengths */
- int count_enums;
- struct drm_mode_property_enum *enums;
- int count_blobs;
- uint32_t *blob_ids; /* store the blob IDs */
-} drmModePropertyRes, *drmModePropertyPtr;
-
-static inline uint32_t drmModeGetPropertyType(const drmModePropertyRes *prop)
-{
- return prop->flags & (DRM_MODE_PROP_LEGACY_TYPE | DRM_MODE_PROP_EXTENDED_TYPE);
-}
-
-static inline int drm_property_type_is(const drmModePropertyPtr property,
- uint32_t type)
-{
- return drmModeGetPropertyType(property) == type;
-}
-
-typedef struct _drmModeCrtc {
- uint32_t crtc_id;
- uint32_t buffer_id; /**< FB id to connect to 0 = disconnect */
-
- uint32_t x, y; /**< Position on the framebuffer */
- uint32_t width, height;
- int mode_valid;
- drmModeModeInfo mode;
-
- int gamma_size; /**< Number of gamma stops */
-
-} drmModeCrtc, *drmModeCrtcPtr;
-
-typedef struct _drmModeEncoder {
- uint32_t encoder_id;
- uint32_t encoder_type;
- uint32_t crtc_id;
- uint32_t possible_crtcs;
- uint32_t possible_clones;
-} drmModeEncoder, *drmModeEncoderPtr;
-
-/**
- * Describes the connector status.
- *
- * DRM_MODE_CONNECTED means that the connector has a sink plugged in.
- * DRM_MODE_DISCONNECTED means the contrary. DRM_MODE_UNKNOWNCONNECTION is used
- * when it could be either.
- *
- * User-space should first try to enable DRM_MODE_CONNECTED connectors and
- * ignore other connectors. If there are no DRM_MODE_CONNECTED connectors,
- * user-space should then try to probe and enable DRM_MODE_UNKNOWNCONNECTION
- * connectors.
- */
-typedef enum {
- DRM_MODE_CONNECTED = 1,
- DRM_MODE_DISCONNECTED = 2,
- DRM_MODE_UNKNOWNCONNECTION = 3
-} drmModeConnection;
-
-typedef enum {
- DRM_MODE_SUBPIXEL_UNKNOWN = 1,
- DRM_MODE_SUBPIXEL_HORIZONTAL_RGB = 2,
- DRM_MODE_SUBPIXEL_HORIZONTAL_BGR = 3,
- DRM_MODE_SUBPIXEL_VERTICAL_RGB = 4,
- DRM_MODE_SUBPIXEL_VERTICAL_BGR = 5,
- DRM_MODE_SUBPIXEL_NONE = 6
-} drmModeSubPixel;
-
-typedef struct _drmModeConnector {
- uint32_t connector_id;
- uint32_t encoder_id; /**< Encoder currently connected to */
- uint32_t connector_type;
- uint32_t connector_type_id;
- drmModeConnection connection;
- uint32_t mmWidth, mmHeight; /**< HxW in millimeters */
- drmModeSubPixel subpixel;
-
- int count_modes;
- drmModeModeInfoPtr modes;
-
- int count_props;
- uint32_t *props; /**< List of property ids */
- uint64_t *prop_values; /**< List of property values */
-
- int count_encoders;
- uint32_t *encoders; /**< List of encoder ids */
-} drmModeConnector, *drmModeConnectorPtr;
-
-#define DRM_PLANE_TYPE_OVERLAY 0
-#define DRM_PLANE_TYPE_PRIMARY 1
-#define DRM_PLANE_TYPE_CURSOR 2
-
-typedef struct _drmModeObjectProperties {
- uint32_t count_props;
- uint32_t *props;
- uint64_t *prop_values;
-} drmModeObjectProperties, *drmModeObjectPropertiesPtr;
-
-typedef struct _drmModeFormatModifierIterator {
- uint32_t fmt_idx, mod_idx;
- uint32_t fmt;
- uint64_t mod;
-} drmModeFormatModifierIterator;
-
-typedef struct _drmModePlane {
- uint32_t count_formats;
- uint32_t *formats;
- uint32_t plane_id;
-
- uint32_t crtc_id;
- uint32_t fb_id;
-
- uint32_t crtc_x, crtc_y;
- uint32_t x, y;
-
- uint32_t possible_crtcs;
- uint32_t gamma_size;
-} drmModePlane, *drmModePlanePtr;
-
-typedef struct _drmModePlaneRes {
- uint32_t count_planes;
- uint32_t *planes;
-} drmModePlaneRes, *drmModePlaneResPtr;
-
-extern void drmModeFreeModeInfo( drmModeModeInfoPtr ptr );
-extern void drmModeFreeResources( drmModeResPtr ptr );
-extern void drmModeFreeFB( drmModeFBPtr ptr );
-extern void drmModeFreeFB2( drmModeFB2Ptr ptr );
-extern void drmModeFreeCrtc( drmModeCrtcPtr ptr );
-extern void drmModeFreeConnector( drmModeConnectorPtr ptr );
-extern void drmModeFreeEncoder( drmModeEncoderPtr ptr );
-extern void drmModeFreePlane( drmModePlanePtr ptr );
-extern void drmModeFreePlaneResources(drmModePlaneResPtr ptr);
-
-/**
- * Check whether the DRM node supports Kernel Mode-Setting.
- *
- * Returns 1 if suitable for KMS, 0 otherwise.
- */
-extern int drmIsKMS(int fd);
-
-/**
- * Retrieves all of the resources associated with a card.
- */
-extern drmModeResPtr drmModeGetResources(int fd);
-
-/*
- * FrameBuffer manipulation.
- */
-
-/**
- * Retrieve information about framebuffer bufferId
- */
-extern drmModeFBPtr drmModeGetFB(int fd, uint32_t bufferId);
-extern drmModeFB2Ptr drmModeGetFB2(int fd, uint32_t bufferId);
-
-/**
- * Creates a new framebuffer with an buffer object as its scanout buffer.
- */
-extern int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth,
- uint8_t bpp, uint32_t pitch, uint32_t bo_handle,
- uint32_t *buf_id);
-/* ...with a specific pixel format */
-extern int drmModeAddFB2(int fd, uint32_t width, uint32_t height,
- uint32_t pixel_format, const uint32_t bo_handles[4],
- const uint32_t pitches[4], const uint32_t offsets[4],
- uint32_t *buf_id, uint32_t flags);
-
-/* ...with format modifiers */
-int drmModeAddFB2WithModifiers(int fd, uint32_t width, uint32_t height,
- uint32_t pixel_format, const uint32_t bo_handles[4],
- const uint32_t pitches[4], const uint32_t offsets[4],
- const uint64_t modifier[4], uint32_t *buf_id,
- uint32_t flags);
-
-/**
- * Destroies the given framebuffer.
- */
-extern int drmModeRmFB(int fd, uint32_t bufferId);
-
-/**
- * Mark a region of a framebuffer as dirty.
- */
-extern int drmModeDirtyFB(int fd, uint32_t bufferId,
- drmModeClipPtr clips, uint32_t num_clips);
-
-
-/*
- * Crtc functions
- */
-
-/**
- * Retrieve information about the ctrt crtcId
- */
-extern drmModeCrtcPtr drmModeGetCrtc(int fd, uint32_t crtcId);
-
-/**
- * Set the mode on a crtc crtcId with the given mode modeId.
- */
-int drmModeSetCrtc(int fd, uint32_t crtcId, uint32_t bufferId,
- uint32_t x, uint32_t y, uint32_t *connectors, int count,
- drmModeModeInfoPtr mode);
-
-/*
- * Cursor functions
- */
-
-/**
- * Set the cursor on crtc
- */
-int drmModeSetCursor(int fd, uint32_t crtcId, uint32_t bo_handle, uint32_t width, uint32_t height);
-
-int drmModeSetCursor2(int fd, uint32_t crtcId, uint32_t bo_handle, uint32_t width, uint32_t height, int32_t hot_x, int32_t hot_y);
-/**
- * Move the cursor on crtc
- */
-int drmModeMoveCursor(int fd, uint32_t crtcId, int x, int y);
-
-/**
- * Encoder functions
- */
-drmModeEncoderPtr drmModeGetEncoder(int fd, uint32_t encoder_id);
-
-/*
- * Connector manipulation
- */
-
-/**
- * Retrieve all information about the connector connectorId. This will do a
- * forced probe on the connector to retrieve remote information such as EDIDs
- * from the display device.
- */
-extern drmModeConnectorPtr drmModeGetConnector(int fd,
- uint32_t connectorId);
-
-/**
- * Retrieve current information, i.e the currently active mode and encoder,
- * about the connector connectorId. This will not do any probing on the
- * connector or remote device, and only reports what is currently known.
- * For the complete set of modes and encoders associated with the connector
- * use drmModeGetConnector() which will do a probe to determine any display
- * link changes first.
- */
-extern drmModeConnectorPtr drmModeGetConnectorCurrent(int fd,
- uint32_t connector_id);
-
-/**
- * Get a bitmask of CRTCs a connector is compatible with.
- *
- * The bits reference CRTC indices. If the n-th CRTC is compatible with the
- * connector, the n-th bit will be set. The indices are taken from the array
- * returned by drmModeGetResources(). The indices are different from the object
- * IDs.
- *
- * Zero is returned on error.
- */
-extern uint32_t drmModeConnectorGetPossibleCrtcs(int fd,
- const drmModeConnector *connector);
-
-/**
- * Attaches the given mode to an connector.
- */
-extern int drmModeAttachMode(int fd, uint32_t connectorId, drmModeModeInfoPtr mode_info);
-
-/**
- * Detaches a mode from the connector
- * must be unused, by the given mode.
- */
-extern int drmModeDetachMode(int fd, uint32_t connectorId, drmModeModeInfoPtr mode_info);
-
-extern drmModePropertyPtr drmModeGetProperty(int fd, uint32_t propertyId);
-extern void drmModeFreeProperty(drmModePropertyPtr ptr);
-
-extern drmModePropertyBlobPtr drmModeGetPropertyBlob(int fd, uint32_t blob_id);
-extern bool drmModeFormatModifierBlobIterNext(const drmModePropertyBlobRes *blob,
- drmModeFormatModifierIterator *iter);
-extern void drmModeFreePropertyBlob(drmModePropertyBlobPtr ptr);
-extern int drmModeConnectorSetProperty(int fd, uint32_t connector_id, uint32_t property_id,
- uint64_t value);
-extern int drmCheckModesettingSupported(const char *busid);
-
-extern int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size,
- uint16_t *red, uint16_t *green, uint16_t *blue);
-extern int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
- uint16_t *red, uint16_t *green, uint16_t *blue);
-extern int drmModePageFlip(int fd, uint32_t crtc_id, uint32_t fb_id,
- uint32_t flags, void *user_data);
-extern int drmModePageFlipTarget(int fd, uint32_t crtc_id, uint32_t fb_id,
- uint32_t flags, void *user_data,
- uint32_t target_vblank);
-
-extern drmModePlaneResPtr drmModeGetPlaneResources(int fd);
-extern drmModePlanePtr drmModeGetPlane(int fd, uint32_t plane_id);
-extern int drmModeSetPlane(int fd, uint32_t plane_id, uint32_t crtc_id,
- uint32_t fb_id, uint32_t flags,
- int32_t crtc_x, int32_t crtc_y,
- uint32_t crtc_w, uint32_t crtc_h,
- uint32_t src_x, uint32_t src_y,
- uint32_t src_w, uint32_t src_h);
-
-extern drmModeObjectPropertiesPtr drmModeObjectGetProperties(int fd,
- uint32_t object_id,
- uint32_t object_type);
-extern void drmModeFreeObjectProperties(drmModeObjectPropertiesPtr ptr);
-extern int drmModeObjectSetProperty(int fd, uint32_t object_id,
- uint32_t object_type, uint32_t property_id,
- uint64_t value);
-
-
-typedef struct _drmModeAtomicReq drmModeAtomicReq, *drmModeAtomicReqPtr;
-
-extern drmModeAtomicReqPtr drmModeAtomicAlloc(void);
-extern drmModeAtomicReqPtr drmModeAtomicDuplicate(const drmModeAtomicReqPtr req);
-extern int drmModeAtomicMerge(drmModeAtomicReqPtr base,
- const drmModeAtomicReqPtr augment);
-extern void drmModeAtomicFree(drmModeAtomicReqPtr req);
-extern int drmModeAtomicGetCursor(const drmModeAtomicReqPtr req);
-extern void drmModeAtomicSetCursor(drmModeAtomicReqPtr req, int cursor);
-extern int drmModeAtomicAddProperty(drmModeAtomicReqPtr req,
- uint32_t object_id,
- uint32_t property_id,
- uint64_t value);
-extern int drmModeAtomicCommit(int fd,
- const drmModeAtomicReqPtr req,
- uint32_t flags,
- void *user_data);
-
-extern int drmModeCreatePropertyBlob(int fd, const void *data, size_t size,
- uint32_t *id);
-extern int drmModeDestroyPropertyBlob(int fd, uint32_t id);
-
-/*
- * DRM mode lease APIs. These create and manage new drm_masters with
- * access to a subset of the available DRM resources
- */
-
-extern int drmModeCreateLease(int fd, const uint32_t *objects, int num_objects, int flags, uint32_t *lessee_id);
-
-typedef struct drmModeLesseeList {
- uint32_t count;
- uint32_t lessees[];
-} drmModeLesseeListRes, *drmModeLesseeListPtr;
-
-extern drmModeLesseeListPtr drmModeListLessees(int fd);
-
-typedef struct drmModeObjectList {
- uint32_t count;
- uint32_t objects[];
-} drmModeObjectListRes, *drmModeObjectListPtr;
-
-extern drmModeObjectListPtr drmModeGetLease(int fd);
-
-extern int drmModeRevokeLease(int fd, uint32_t lessee_id);
-
-/**
- * Get a string describing a connector type.
- *
- * NULL is returned if the connector type is unsupported. Callers should handle
- * this gracefully, e.g. by falling back to "Unknown" or printing the raw value.
- */
-extern const char *
-drmModeGetConnectorTypeName(uint32_t connector_type);
-
-/**
- * Create a dumb buffer.
- *
- * Given a width, height and bits-per-pixel, the kernel will return a buffer
- * handle, pitch and size. The flags must be zero.
- *
- * Returns 0 on success, negative errno on error.
- */
-extern int
-drmModeCreateDumbBuffer(int fd, uint32_t width, uint32_t height, uint32_t bpp,
- uint32_t flags, uint32_t *handle, uint32_t *pitch,
- uint64_t *size);
-
-/**
- * Destroy a dumb buffer.
- *
- * Returns 0 on success, negative errno on error.
- */
-extern int
-drmModeDestroyDumbBuffer(int fd, uint32_t handle);
-
-/**
- * Prepare a dumb buffer for mapping.
- *
- * The kernel returns an offset which can be used as an argument to mmap(2) on
- * the DRM FD.
- *
- * Returns 0 on success, negative errno on error.
- */
-extern int
-drmModeMapDumbBuffer(int fd, uint32_t handle, uint64_t *offset);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/musl/aio.h b/musl/aio.h
deleted file mode 100644
index a938fca..0000000
--- a/musl/aio.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef _AIO_H
-#define _AIO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <signal.h>
-#include <time.h>
-
-#define __NEED_ssize_t
-#define __NEED_off_t
-
-#include <bits/alltypes.h>
-
-struct aiocb {
- int aio_fildes, aio_lio_opcode, aio_reqprio;
- volatile void *aio_buf;
- size_t aio_nbytes;
- struct sigevent aio_sigevent;
- void *__td;
- int __lock[2];
- volatile int __err;
- ssize_t __ret;
- off_t aio_offset;
- void *__next, *__prev;
- char __dummy4[32-2*sizeof(void *)];
-};
-
-#define AIO_CANCELED 0
-#define AIO_NOTCANCELED 1
-#define AIO_ALLDONE 2
-
-#define LIO_READ 0
-#define LIO_WRITE 1
-#define LIO_NOP 2
-
-#define LIO_WAIT 0
-#define LIO_NOWAIT 1
-
-int aio_read(struct aiocb *);
-int aio_write(struct aiocb *);
-int aio_error(const struct aiocb *);
-ssize_t aio_return(struct aiocb *);
-int aio_cancel(int, struct aiocb *);
-int aio_suspend(const struct aiocb *const [], int, const struct timespec *);
-int aio_fsync(int, struct aiocb *);
-
-int lio_listio(int, struct aiocb *__restrict const *__restrict, int, struct sigevent *__restrict);
-
-#if defined(_LARGEFILE64_SOURCE)
-#define aiocb64 aiocb
-#define aio_read64 aio_read
-#define aio_write64 aio_write
-#define aio_error64 aio_error
-#define aio_return64 aio_return
-#define aio_cancel64 aio_cancel
-#define aio_suspend64 aio_suspend
-#define aio_fsync64 aio_fsync
-#define lio_listio64 lio_listio
-#define off64_t off_t
-#endif
-
-#if _REDIR_TIME64
-__REDIR(aio_suspend, __aio_suspend_time64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/alloca.h b/musl/alloca.h
deleted file mode 100644
index b8d183d..0000000
--- a/musl/alloca.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _ALLOCA_H
-#define _ALLOCA_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_size_t
-#include <bits/alltypes.h>
-
-void *alloca(size_t);
-
-#define alloca __builtin_alloca
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/ar.h b/musl/ar.h
deleted file mode 100644
index eafd51d..0000000
--- a/musl/ar.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _AR_H
-#define _AR_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ARMAG "!<arch>\n"
-#define SARMAG 8
-#define ARFMAG "`\n"
-
-struct ar_hdr {
- char ar_name[16];
- char ar_date[12];
- char ar_uid[6], ar_gid[6];
- char ar_mode[8];
- char ar_size[10];
- char ar_fmag[2];
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/arpa/ftp.h b/musl/arpa/ftp.h
deleted file mode 100644
index fb0a46f..0000000
--- a/musl/arpa/ftp.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _ARPA_FTP_H
-#define _ARPA_FTP_H
-#define PRELIM 1
-#define COMPLETE 2
-#define CONTINUE 3
-#define TRANSIENT 4
-#define ERROR 5
-#define TYPE_A 1
-#define TYPE_E 2
-#define TYPE_I 3
-#define TYPE_L 4
-#define FORM_N 1
-#define FORM_T 2
-#define FORM_C 3
-#define STRU_F 1
-#define STRU_R 2
-#define STRU_P 3
-#define MODE_S 1
-#define MODE_B 2
-#define MODE_C 3
-#define REC_ESC '\377'
-#define REC_EOR '\001'
-#define REC_EOF '\002'
-#define BLK_EOR 0x80
-#define BLK_EOF 0x40
-#define BLK_ERRORS 0x20
-#define BLK_RESTART 0x10
-#define BLK_BYTECOUNT 2
-#ifdef FTP_NAMES
-char *modenames[] = {"0", "Stream", "Block", "Compressed" };
-char *strunames[] = {"0", "File", "Record", "Page" };
-char *typenames[] = {"0", "ASCII", "EBCDIC", "Image", "Local" };
-char *formnames[] = {"0", "Nonprint", "Telnet", "Carriage-control" };
-#endif
-#endif
diff --git a/musl/arpa/inet.h b/musl/arpa/inet.h
deleted file mode 100644
index 9d20a15..0000000
--- a/musl/arpa/inet.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _ARPA_INET_H
-#define _ARPA_INET_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <netinet/in.h>
-
-uint32_t htonl(uint32_t);
-uint16_t htons(uint16_t);
-uint32_t ntohl(uint32_t);
-uint16_t ntohs(uint16_t);
-
-in_addr_t inet_addr (const char *);
-in_addr_t inet_network (const char *);
-char *inet_ntoa (struct in_addr);
-int inet_pton (int, const char *__restrict, void *__restrict);
-const char *inet_ntop (int, const void *__restrict, char *__restrict, socklen_t);
-
-int inet_aton (const char *, struct in_addr *);
-struct in_addr inet_makeaddr(in_addr_t, in_addr_t);
-in_addr_t inet_lnaof(struct in_addr);
-in_addr_t inet_netof(struct in_addr);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/arpa/nameser.h b/musl/arpa/nameser.h
deleted file mode 100644
index 9c1327a..0000000
--- a/musl/arpa/nameser.h
+++ /dev/null
@@ -1,526 +0,0 @@
-#ifndef _ARPA_NAMESER_H
-#define _ARPA_NAMESER_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stddef.h>
-#include <stdint.h>
-
-#define __NAMESER 19991006
-#define NS_PACKETSZ 512
-#define NS_MAXDNAME 1025
-#define NS_MAXMSG 65535
-#define NS_MAXCDNAME 255
-#define NS_MAXLABEL 63
-#define NS_HFIXEDSZ 12
-#define NS_QFIXEDSZ 4
-#define NS_RRFIXEDSZ 10
-#define NS_INT32SZ 4
-#define NS_INT16SZ 2
-#define NS_INT8SZ 1
-#define NS_INADDRSZ 4
-#define NS_IN6ADDRSZ 16
-#define NS_CMPRSFLGS 0xc0
-#define NS_DEFAULTPORT 53
-
-typedef enum __ns_sect {
- ns_s_qd = 0,
- ns_s_zn = 0,
- ns_s_an = 1,
- ns_s_pr = 1,
- ns_s_ns = 2,
- ns_s_ud = 2,
- ns_s_ar = 3,
- ns_s_max = 4
-} ns_sect;
-
-typedef struct __ns_msg {
- const unsigned char *_msg, *_eom;
- uint16_t _id, _flags, _counts[ns_s_max];
- const unsigned char *_sections[ns_s_max];
- ns_sect _sect;
- int _rrnum;
- const unsigned char *_msg_ptr;
-} ns_msg;
-
-struct _ns_flagdata { int mask, shift; };
-extern const struct _ns_flagdata _ns_flagdata[];
-
-#define ns_msg_id(handle) ((handle)._id + 0)
-#define ns_msg_base(handle) ((handle)._msg + 0)
-#define ns_msg_end(handle) ((handle)._eom + 0)
-#define ns_msg_size(handle) ((handle)._eom - (handle)._msg)
-#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)
-#define ns_msg_getflag(handle, flag) \
- (((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift)
-
-typedef struct __ns_rr {
- char name[NS_MAXDNAME];
- uint16_t type;
- uint16_t rr_class;
- uint32_t ttl;
- uint16_t rdlength;
- const unsigned char *rdata;
-} ns_rr;
-
-#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")
-#define ns_rr_type(rr) ((ns_type)((rr).type + 0))
-#define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0))
-#define ns_rr_ttl(rr) ((rr).ttl + 0)
-#define ns_rr_rdlen(rr) ((rr).rdlength + 0)
-#define ns_rr_rdata(rr) ((rr).rdata + 0)
-
-typedef enum __ns_flag {
- ns_f_qr,
- ns_f_opcode,
- ns_f_aa,
- ns_f_tc,
- ns_f_rd,
- ns_f_ra,
- ns_f_z,
- ns_f_ad,
- ns_f_cd,
- ns_f_rcode,
- ns_f_max
-} ns_flag;
-
-typedef enum __ns_opcode {
- ns_o_query = 0,
- ns_o_iquery = 1,
- ns_o_status = 2,
- ns_o_notify = 4,
- ns_o_update = 5,
- ns_o_max = 6
-} ns_opcode;
-
-typedef enum __ns_rcode {
- ns_r_noerror = 0,
- ns_r_formerr = 1,
- ns_r_servfail = 2,
- ns_r_nxdomain = 3,
- ns_r_notimpl = 4,
- ns_r_refused = 5,
- ns_r_yxdomain = 6,
- ns_r_yxrrset = 7,
- ns_r_nxrrset = 8,
- ns_r_notauth = 9,
- ns_r_notzone = 10,
- ns_r_max = 11,
- ns_r_badvers = 16,
- ns_r_badsig = 16,
- ns_r_badkey = 17,
- ns_r_badtime = 18
-} ns_rcode;
-
-typedef enum __ns_update_operation {
- ns_uop_delete = 0,
- ns_uop_add = 1,
- ns_uop_max = 2
-} ns_update_operation;
-
-struct ns_tsig_key {
- char name[NS_MAXDNAME], alg[NS_MAXDNAME];
- unsigned char *data;
- int len;
-};
-typedef struct ns_tsig_key ns_tsig_key;
-
-struct ns_tcp_tsig_state {
- int counter;
- struct dst_key *key;
- void *ctx;
- unsigned char sig[NS_PACKETSZ];
- int siglen;
-};
-typedef struct ns_tcp_tsig_state ns_tcp_tsig_state;
-
-#define NS_TSIG_FUDGE 300
-#define NS_TSIG_TCP_COUNT 100
-#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
-
-#define NS_TSIG_ERROR_NO_TSIG -10
-#define NS_TSIG_ERROR_NO_SPACE -11
-#define NS_TSIG_ERROR_FORMERR -12
-
-typedef enum __ns_type {
- ns_t_invalid = 0,
- ns_t_a = 1,
- ns_t_ns = 2,
- ns_t_md = 3,
- ns_t_mf = 4,
- ns_t_cname = 5,
- ns_t_soa = 6,
- ns_t_mb = 7,
- ns_t_mg = 8,
- ns_t_mr = 9,
- ns_t_null = 10,
- ns_t_wks = 11,
- ns_t_ptr = 12,
- ns_t_hinfo = 13,
- ns_t_minfo = 14,
- ns_t_mx = 15,
- ns_t_txt = 16,
- ns_t_rp = 17,
- ns_t_afsdb = 18,
- ns_t_x25 = 19,
- ns_t_isdn = 20,
- ns_t_rt = 21,
- ns_t_nsap = 22,
- ns_t_nsap_ptr = 23,
- ns_t_sig = 24,
- ns_t_key = 25,
- ns_t_px = 26,
- ns_t_gpos = 27,
- ns_t_aaaa = 28,
- ns_t_loc = 29,
- ns_t_nxt = 30,
- ns_t_eid = 31,
- ns_t_nimloc = 32,
- ns_t_srv = 33,
- ns_t_atma = 34,
- ns_t_naptr = 35,
- ns_t_kx = 36,
- ns_t_cert = 37,
- ns_t_a6 = 38,
- ns_t_dname = 39,
- ns_t_sink = 40,
- ns_t_opt = 41,
- ns_t_apl = 42,
- ns_t_ds = 43,
- ns_t_sshfp = 44,
- ns_t_ipseckey = 45,
- ns_t_rrsig = 46,
- ns_t_nsec = 47,
- ns_t_dnskey = 48,
- ns_t_dhcid = 49,
- ns_t_nsec3 = 50,
- ns_t_nsec3param = 51,
- ns_t_tlsa = 52,
- ns_t_smimea = 53,
- ns_t_hip = 55,
- ns_t_ninfo = 56,
- ns_t_rkey = 57,
- ns_t_talink = 58,
- ns_t_cds = 59,
- ns_t_cdnskey = 60,
- ns_t_openpgpkey = 61,
- ns_t_csync = 62,
- ns_t_spf = 99,
- ns_t_uinfo = 100,
- ns_t_uid = 101,
- ns_t_gid = 102,
- ns_t_unspec = 103,
- ns_t_nid = 104,
- ns_t_l32 = 105,
- ns_t_l64 = 106,
- ns_t_lp = 107,
- ns_t_eui48 = 108,
- ns_t_eui64 = 109,
- ns_t_tkey = 249,
- ns_t_tsig = 250,
- ns_t_ixfr = 251,
- ns_t_axfr = 252,
- ns_t_mailb = 253,
- ns_t_maila = 254,
- ns_t_any = 255,
- ns_t_zxfr = 256,
- ns_t_uri = 256,
- ns_t_caa = 257,
- ns_t_avc = 258,
- ns_t_ta = 32768,
- ns_t_dlv = 32769,
- ns_t_max = 65536
-} ns_type;
-
-#define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
- (t) == ns_t_mailb || (t) == ns_t_maila)
-#define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
-#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
-#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
-#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
- (t) == ns_t_zxfr)
-
-typedef enum __ns_class {
- ns_c_invalid = 0,
- ns_c_in = 1,
- ns_c_2 = 2,
- ns_c_chaos = 3,
- ns_c_hs = 4,
- ns_c_none = 254,
- ns_c_any = 255,
- ns_c_max = 65536
-} ns_class;
-
-typedef enum __ns_key_types {
- ns_kt_rsa = 1,
- ns_kt_dh = 2,
- ns_kt_dsa = 3,
- ns_kt_private = 254
-} ns_key_types;
-
-typedef enum __ns_cert_types {
- cert_t_pkix = 1,
- cert_t_spki = 2,
- cert_t_pgp = 3,
- cert_t_url = 253,
- cert_t_oid = 254
-} ns_cert_types;
-
-#define NS_KEY_TYPEMASK 0xC000
-#define NS_KEY_TYPE_AUTH_CONF 0x0000
-#define NS_KEY_TYPE_CONF_ONLY 0x8000
-#define NS_KEY_TYPE_AUTH_ONLY 0x4000
-#define NS_KEY_TYPE_NO_KEY 0xC000
-#define NS_KEY_NO_AUTH 0x8000
-#define NS_KEY_NO_CONF 0x4000
-#define NS_KEY_RESERVED2 0x2000
-#define NS_KEY_EXTENDED_FLAGS 0x1000
-#define NS_KEY_RESERVED4 0x0800
-#define NS_KEY_RESERVED5 0x0400
-#define NS_KEY_NAME_TYPE 0x0300
-#define NS_KEY_NAME_USER 0x0000
-#define NS_KEY_NAME_ENTITY 0x0200
-#define NS_KEY_NAME_ZONE 0x0100
-#define NS_KEY_NAME_RESERVED 0x0300
-#define NS_KEY_RESERVED8 0x0080
-#define NS_KEY_RESERVED9 0x0040
-#define NS_KEY_RESERVED10 0x0020
-#define NS_KEY_RESERVED11 0x0010
-#define NS_KEY_SIGNATORYMASK 0x000F
-#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
- NS_KEY_RESERVED4 | \
- NS_KEY_RESERVED5 | \
- NS_KEY_RESERVED8 | \
- NS_KEY_RESERVED9 | \
- NS_KEY_RESERVED10 | \
- NS_KEY_RESERVED11 )
-#define NS_KEY_RESERVED_BITMASK2 0xFFFF
-#define NS_ALG_MD5RSA 1
-#define NS_ALG_DH 2
-#define NS_ALG_DSA 3
-#define NS_ALG_DSS NS_ALG_DSA
-#define NS_ALG_EXPIRE_ONLY 253
-#define NS_ALG_PRIVATE_OID 254
-
-#define NS_KEY_PROT_TLS 1
-#define NS_KEY_PROT_EMAIL 2
-#define NS_KEY_PROT_DNSSEC 3
-#define NS_KEY_PROT_IPSEC 4
-#define NS_KEY_PROT_ANY 255
-
-#define NS_MD5RSA_MIN_BITS 512
-#define NS_MD5RSA_MAX_BITS 4096
-#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
-#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
-#define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)
-#define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)
-
-#define NS_DSA_SIG_SIZE 41
-#define NS_DSA_MIN_SIZE 213
-#define NS_DSA_MAX_BYTES 405
-
-#define NS_SIG_TYPE 0
-#define NS_SIG_ALG 2
-#define NS_SIG_LABELS 3
-#define NS_SIG_OTTL 4
-#define NS_SIG_EXPIR 8
-#define NS_SIG_SIGNED 12
-#define NS_SIG_FOOT 16
-#define NS_SIG_SIGNER 18
-#define NS_NXT_BITS 8
-#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))
-#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
-#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))
-#define NS_NXT_MAX 127
-
-#define NS_OPT_DNSSEC_OK 0x8000U
-#define NS_OPT_NSID 3
-
-#define NS_GET16(s, cp) (void)((s) = ns_get16(((cp)+=2)-2))
-#define NS_GET32(l, cp) (void)((l) = ns_get32(((cp)+=4)-4))
-#define NS_PUT16(s, cp) ns_put16((s), ((cp)+=2)-2)
-#define NS_PUT32(l, cp) ns_put32((l), ((cp)+=4)-4)
-
-unsigned ns_get16(const unsigned char *);
-unsigned long ns_get32(const unsigned char *);
-void ns_put16(unsigned, unsigned char *);
-void ns_put32(unsigned long, unsigned char *);
-
-int ns_initparse(const unsigned char *, int, ns_msg *);
-int ns_parserr(ns_msg *, ns_sect, int, ns_rr *);
-int ns_skiprr(const unsigned char *, const unsigned char *, ns_sect, int);
-int ns_name_uncompress(const unsigned char *, const unsigned char *, const unsigned char *, char *, size_t);
-
-
-#define __BIND 19950621
-
-typedef struct {
- unsigned id :16;
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned qr: 1;
- unsigned opcode: 4;
- unsigned aa: 1;
- unsigned tc: 1;
- unsigned rd: 1;
- unsigned ra: 1;
- unsigned unused :1;
- unsigned ad: 1;
- unsigned cd: 1;
- unsigned rcode :4;
-#else
- unsigned rd :1;
- unsigned tc :1;
- unsigned aa :1;
- unsigned opcode :4;
- unsigned qr :1;
- unsigned rcode :4;
- unsigned cd: 1;
- unsigned ad: 1;
- unsigned unused :1;
- unsigned ra :1;
-#endif
- unsigned qdcount :16;
- unsigned ancount :16;
- unsigned nscount :16;
- unsigned arcount :16;
-} HEADER;
-
-#define PACKETSZ NS_PACKETSZ
-#define MAXDNAME NS_MAXDNAME
-#define MAXCDNAME NS_MAXCDNAME
-#define MAXLABEL NS_MAXLABEL
-#define HFIXEDSZ NS_HFIXEDSZ
-#define QFIXEDSZ NS_QFIXEDSZ
-#define RRFIXEDSZ NS_RRFIXEDSZ
-#define INT32SZ NS_INT32SZ
-#define INT16SZ NS_INT16SZ
-#define INT8SZ NS_INT8SZ
-#define INADDRSZ NS_INADDRSZ
-#define IN6ADDRSZ NS_IN6ADDRSZ
-#define INDIR_MASK NS_CMPRSFLGS
-#define NAMESERVER_PORT NS_DEFAULTPORT
-
-#define S_ZONE ns_s_zn
-#define S_PREREQ ns_s_pr
-#define S_UPDATE ns_s_ud
-#define S_ADDT ns_s_ar
-
-#define QUERY ns_o_query
-#define IQUERY ns_o_iquery
-#define STATUS ns_o_status
-#define NS_NOTIFY_OP ns_o_notify
-#define NS_UPDATE_OP ns_o_update
-
-#define NOERROR ns_r_noerror
-#define FORMERR ns_r_formerr
-#define SERVFAIL ns_r_servfail
-#define NXDOMAIN ns_r_nxdomain
-#define NOTIMP ns_r_notimpl
-#define REFUSED ns_r_refused
-#define YXDOMAIN ns_r_yxdomain
-#define YXRRSET ns_r_yxrrset
-#define NXRRSET ns_r_nxrrset
-#define NOTAUTH ns_r_notauth
-#define NOTZONE ns_r_notzone
-
-#define DELETE ns_uop_delete
-#define ADD ns_uop_add
-
-#define T_A ns_t_a
-#define T_NS ns_t_ns
-#define T_MD ns_t_md
-#define T_MF ns_t_mf
-#define T_CNAME ns_t_cname
-#define T_SOA ns_t_soa
-#define T_MB ns_t_mb
-#define T_MG ns_t_mg
-#define T_MR ns_t_mr
-#define T_NULL ns_t_null
-#define T_WKS ns_t_wks
-#define T_PTR ns_t_ptr
-#define T_HINFO ns_t_hinfo
-#define T_MINFO ns_t_minfo
-#define T_MX ns_t_mx
-#define T_TXT ns_t_txt
-#define T_RP ns_t_rp
-#define T_AFSDB ns_t_afsdb
-#define T_X25 ns_t_x25
-#define T_ISDN ns_t_isdn
-#define T_RT ns_t_rt
-#define T_NSAP ns_t_nsap
-#define T_NSAP_PTR ns_t_nsap_ptr
-#define T_SIG ns_t_sig
-#define T_KEY ns_t_key
-#define T_PX ns_t_px
-#define T_GPOS ns_t_gpos
-#define T_AAAA ns_t_aaaa
-#define T_LOC ns_t_loc
-#define T_NXT ns_t_nxt
-#define T_EID ns_t_eid
-#define T_NIMLOC ns_t_nimloc
-#define T_SRV ns_t_srv
-#define T_ATMA ns_t_atma
-#define T_NAPTR ns_t_naptr
-#define T_A6 ns_t_a6
-#define T_DNAME ns_t_dname
-#define T_DS ns_t_ds
-#define T_SSHFP ns_t_sshfp
-#define T_IPSECKEY ns_t_ipseckey
-#define T_RRSIG ns_t_rrsig
-#define T_NSEC ns_t_nsec
-#define T_DNSKEY ns_t_dnskey
-#define T_DHCID ns_t_dhcid
-#define T_NSEC3 ns_t_nsec3
-#define T_NSEC3PARAM ns_t_nsec3param
-#define T_TLSA ns_t_tlsa
-#define T_SMIMEA ns_t_smimea
-#define T_HIP ns_t_hip
-#define T_NINFO ns_t_ninfo
-#define T_RKEY ns_t_rkey
-#define T_TALINK ns_t_talink
-#define T_CDS ns_t_cds
-#define T_CDNSKEY ns_t_cdnskey
-#define T_OPENPGPKEY ns_t_openpgpkey
-#define T_CSYNC ns_t_csync
-#define T_SPF ns_t_spf
-#define T_UINFO ns_t_uinfo
-#define T_UID ns_t_uid
-#define T_GID ns_t_gid
-#define T_UNSPEC ns_t_unspec
-#define T_NID ns_t_nid
-#define T_L32 ns_t_l32
-#define T_L64 ns_t_l64
-#define T_LP ns_t_lp
-#define T_EUI48 ns_t_eui48
-#define T_EUI64 ns_t_eui64
-#define T_TKEY ns_t_tkey
-#define T_TSIG ns_t_tsig
-#define T_IXFR ns_t_ixfr
-#define T_AXFR ns_t_axfr
-#define T_MAILB ns_t_mailb
-#define T_MAILA ns_t_maila
-#define T_ANY ns_t_any
-#define T_URI ns_t_uri
-#define T_CAA ns_t_caa
-#define T_AVC ns_t_avc
-#define T_TA ns_t_ta
-#define T_DLV ns_t_dlv
-
-#define C_IN ns_c_in
-#define C_CHAOS ns_c_chaos
-#define C_HS ns_c_hs
-#define C_NONE ns_c_none
-#define C_ANY ns_c_any
-
-#define GETSHORT NS_GET16
-#define GETLONG NS_GET32
-#define PUTSHORT NS_PUT16
-#define PUTLONG NS_PUT32
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/arpa/nameser_compat.h b/musl/arpa/nameser_compat.h
deleted file mode 100644
index 3aac25c..0000000
--- a/musl/arpa/nameser_compat.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <arpa/nameser.h>
-
diff --git a/musl/arpa/telnet.h b/musl/arpa/telnet.h
deleted file mode 100644
index e2ad974..0000000
--- a/musl/arpa/telnet.h
+++ /dev/null
@@ -1,251 +0,0 @@
-#ifndef _ARPA_TELNET_H
-#define _ARPA_TELNET_H
-
-#define IAC 255
-#define DONT 254
-#define DO 253
-#define WONT 252
-#define WILL 251
-#define SB 250
-#define GA 249
-#define EL 248
-#define EC 247
-#define AYT 246
-#define AO 245
-#define IP 244
-#define BREAK 243
-#define DM 242
-#define NOP 241
-#define SE 240
-#define EOR 239
-#define ABORT 238
-#define SUSP 237
-#define xEOF 236
-
-#define SYNCH 242
-
-#define telcmds ((char [][6]){ "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 })
-
-#define TELCMD_FIRST xEOF
-#define TELCMD_LAST IAC
-#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \
- (unsigned int)(x) >= TELCMD_FIRST)
-#define TELCMD(x) telcmds[(x)-TELCMD_FIRST]
-
-#define TELOPT_BINARY 0
-#define TELOPT_ECHO 1
-#define TELOPT_RCP 2
-#define TELOPT_SGA 3
-#define TELOPT_NAMS 4
-#define TELOPT_STATUS 5
-#define TELOPT_TM 6
-#define TELOPT_RCTE 7
-#define TELOPT_NAOL 8
-#define TELOPT_NAOP 9
-#define TELOPT_NAOCRD 10
-#define TELOPT_NAOHTS 11
-#define TELOPT_NAOHTD 12
-#define TELOPT_NAOFFD 13
-#define TELOPT_NAOVTS 14
-#define TELOPT_NAOVTD 15
-#define TELOPT_NAOLFD 16
-#define TELOPT_XASCII 17
-#define TELOPT_LOGOUT 18
-#define TELOPT_BM 19
-#define TELOPT_DET 20
-#define TELOPT_SUPDUP 21
-#define TELOPT_SUPDUPOUTPUT 22
-#define TELOPT_SNDLOC 23
-#define TELOPT_TTYPE 24
-#define TELOPT_EOR 25
-#define TELOPT_TUID 26
-#define TELOPT_OUTMRK 27
-#define TELOPT_TTYLOC 28
-#define TELOPT_3270REGIME 29
-#define TELOPT_X3PAD 30
-#define TELOPT_NAWS 31
-#define TELOPT_TSPEED 32
-#define TELOPT_LFLOW 33
-#define TELOPT_LINEMODE 34
-#define TELOPT_XDISPLOC 35
-#define TELOPT_OLD_ENVIRON 36
-#define TELOPT_AUTHENTICATION 37/* Authenticate */
-#define TELOPT_ENCRYPT 38
-#define TELOPT_NEW_ENVIRON 39
-#define TELOPT_EXOPL 255
-
-
-#define NTELOPTS (1+TELOPT_NEW_ENVIRON)
-#ifdef TELOPTS
-char *telopts[NTELOPTS+1] = {
- "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
- "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
- "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",
- "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",
- "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",
- "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",
- "TACACS UID", "OUTPUT MARKING", "TTYLOC",
- "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
- "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
- "ENCRYPT", "NEW-ENVIRON",
- 0,
-};
-#define TELOPT_FIRST TELOPT_BINARY
-#define TELOPT_LAST TELOPT_NEW_ENVIRON
-#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST)
-#define TELOPT(x) telopts[(x)-TELOPT_FIRST]
-#endif
-
-#define TELQUAL_IS 0
-#define TELQUAL_SEND 1
-#define TELQUAL_INFO 2
-#define TELQUAL_REPLY 2
-#define TELQUAL_NAME 3
-
-#define LFLOW_OFF 0
-#define LFLOW_ON 1
-#define LFLOW_RESTART_ANY 2
-#define LFLOW_RESTART_XON 3
-
-
-#define LM_MODE 1
-#define LM_FORWARDMASK 2
-#define LM_SLC 3
-
-#define MODE_EDIT 0x01
-#define MODE_TRAPSIG 0x02
-#define MODE_ACK 0x04
-#define MODE_SOFT_TAB 0x08
-#define MODE_LIT_ECHO 0x10
-
-#define MODE_MASK 0x1f
-
-#define MODE_FLOW 0x0100
-#define MODE_ECHO 0x0200
-#define MODE_INBIN 0x0400
-#define MODE_OUTBIN 0x0800
-#define MODE_FORCE 0x1000
-
-#define SLC_SYNCH 1
-#define SLC_BRK 2
-#define SLC_IP 3
-#define SLC_AO 4
-#define SLC_AYT 5
-#define SLC_EOR 6
-#define SLC_ABORT 7
-#define SLC_EOF 8
-#define SLC_SUSP 9
-#define SLC_EC 10
-#define SLC_EL 11
-#define SLC_EW 12
-#define SLC_RP 13
-#define SLC_LNEXT 14
-#define SLC_XON 15
-#define SLC_XOFF 16
-#define SLC_FORW1 17
-#define SLC_FORW2 18
-
-#define NSLC 18
-
-#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \
- "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \
- "LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0,
-#ifdef SLC_NAMES
-char *slc_names[] = {
- SLC_NAMELIST
-};
-#else
-extern char *slc_names[];
-#define SLC_NAMES SLC_NAMELIST
-#endif
-
-#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC)
-#define SLC_NAME(x) slc_names[x]
-
-#define SLC_NOSUPPORT 0
-#define SLC_CANTCHANGE 1
-#define SLC_VARIABLE 2
-#define SLC_DEFAULT 3
-#define SLC_LEVELBITS 0x03
-
-#define SLC_FUNC 0
-#define SLC_FLAGS 1
-#define SLC_VALUE 2
-
-#define SLC_ACK 0x80
-#define SLC_FLUSHIN 0x40
-#define SLC_FLUSHOUT 0x20
-
-#define OLD_ENV_VAR 1
-#define OLD_ENV_VALUE 0
-#define NEW_ENV_VAR 0
-#define NEW_ENV_VALUE 1
-#define ENV_ESC 2
-#define ENV_USERVAR 3
-
-#define AUTH_WHO_CLIENT 0
-#define AUTH_WHO_SERVER 1
-#define AUTH_WHO_MASK 1
-
-#define AUTH_HOW_ONE_WAY 0
-#define AUTH_HOW_MUTUAL 2
-#define AUTH_HOW_MASK 2
-
-#define AUTHTYPE_NULL 0
-#define AUTHTYPE_KERBEROS_V4 1
-#define AUTHTYPE_KERBEROS_V5 2
-#define AUTHTYPE_SPX 3
-#define AUTHTYPE_MINK 4
-#define AUTHTYPE_CNT 5
-
-#define AUTHTYPE_TEST 99
-
-#ifdef AUTH_NAMES
-char *authtype_names[] = {
- "NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0,
-};
-#else
-extern char *authtype_names[];
-#endif
-
-#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT)
-#define AUTHTYPE_NAME(x) authtype_names[x]
-
-#define ENCRYPT_IS 0
-#define ENCRYPT_SUPPORT 1
-#define ENCRYPT_REPLY 2
-#define ENCRYPT_START 3
-#define ENCRYPT_END 4
-#define ENCRYPT_REQSTART 5
-#define ENCRYPT_REQEND 6
-#define ENCRYPT_ENC_KEYID 7
-#define ENCRYPT_DEC_KEYID 8
-#define ENCRYPT_CNT 9
-
-#define ENCTYPE_ANY 0
-#define ENCTYPE_DES_CFB64 1
-#define ENCTYPE_DES_OFB64 2
-#define ENCTYPE_CNT 3
-
-#ifdef ENCRYPT_NAMES
-char *encrypt_names[] = {
- "IS", "SUPPORT", "REPLY", "START", "END",
- "REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",
- 0,
-};
-char *enctype_names[] = {
- "ANY", "DES_CFB64", "DES_OFB64", 0,
-};
-#else
-extern char *encrypt_names[];
-extern char *enctype_names[];
-#endif
-
-
-#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT)
-#define ENCRYPT_NAME(x) encrypt_names[x]
-
-#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT)
-#define ENCTYPE_NAME(x) enctype_names[x]
-
-#endif
diff --git a/musl/arpa/tftp.h b/musl/arpa/tftp.h
deleted file mode 100644
index 799c54f..0000000
--- a/musl/arpa/tftp.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _ARPA_TFTP_H
-#define _ARPA_TFTP_H
-#define SEGSIZE 512
-#define RRQ 01
-#define WRQ 02
-#define DATA 03
-#define ACK 04
-#define ERROR 05
-struct tftphdr {
- short th_opcode;
- union {
- unsigned short tu_block;
- short tu_code;
- char tu_stuff[1];
- } th_u;
- char th_data[1];
-};
-#define th_block th_u.tu_block
-#define th_code th_u.tu_code
-#define th_stuff th_u.tu_stuff
-#define th_msg th_data
-#define EUNDEF 0
-#define ENOTFOUND 1
-#define EACCESS 2
-#define ENOSPACE 3
-#define EBADOP 4
-#define EBADID 5
-#define EEXISTS 6
-#define ENOUSER 7
-#endif
-
diff --git a/musl/assert.h b/musl/assert.h
deleted file mode 100644
index d14ec94..0000000
--- a/musl/assert.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <features.h>
-
-#undef assert
-
-#ifdef NDEBUG
-#define assert(x) (void)0
-#else
-#define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0)))
-#endif
-
-#if __STDC_VERSION__ >= 201112L && !defined(__cplusplus)
-#define static_assert _Static_assert
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_Noreturn void __assert_fail (const char *, const char *, int, const char *);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/musl/bits/alltypes.h b/musl/bits/alltypes.h
deleted file mode 100644
index b5d6f52..0000000
--- a/musl/bits/alltypes.h
+++ /dev/null
@@ -1,415 +0,0 @@
-#define _Addr long
-#define _Int64 long
-#define _Reg long
-
-#define __BYTE_ORDER 1234
-#define __LONG_MAX 0x7fffffffffffffffL
-
-#ifndef __cplusplus
-#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)
-typedef int wchar_t;
-#define __DEFINED_wchar_t
-#endif
-
-#endif
-
-#if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 2
-#if defined(__NEED_float_t) && !defined(__DEFINED_float_t)
-typedef long double float_t;
-#define __DEFINED_float_t
-#endif
-
-#if defined(__NEED_double_t) && !defined(__DEFINED_double_t)
-typedef long double double_t;
-#define __DEFINED_double_t
-#endif
-
-#else
-#if defined(__NEED_float_t) && !defined(__DEFINED_float_t)
-typedef float float_t;
-#define __DEFINED_float_t
-#endif
-
-#if defined(__NEED_double_t) && !defined(__DEFINED_double_t)
-typedef double double_t;
-#define __DEFINED_double_t
-#endif
-
-#endif
-
-#if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t)
-typedef struct { long long __ll; long double __ld; } max_align_t;
-#define __DEFINED_max_align_t
-#endif
-
-#define __LITTLE_ENDIAN 1234
-#define __BIG_ENDIAN 4321
-#define __USE_TIME_BITS64 1
-
-#if defined(__NEED_size_t) && !defined(__DEFINED_size_t)
-typedef unsigned _Addr size_t;
-#define __DEFINED_size_t
-#endif
-
-#if defined(__NEED_uintptr_t) && !defined(__DEFINED_uintptr_t)
-typedef unsigned _Addr uintptr_t;
-#define __DEFINED_uintptr_t
-#endif
-
-#if defined(__NEED_ptrdiff_t) && !defined(__DEFINED_ptrdiff_t)
-typedef _Addr ptrdiff_t;
-#define __DEFINED_ptrdiff_t
-#endif
-
-#if defined(__NEED_ssize_t) && !defined(__DEFINED_ssize_t)
-typedef _Addr ssize_t;
-#define __DEFINED_ssize_t
-#endif
-
-#if defined(__NEED_intptr_t) && !defined(__DEFINED_intptr_t)
-typedef _Addr intptr_t;
-#define __DEFINED_intptr_t
-#endif
-
-#if defined(__NEED_regoff_t) && !defined(__DEFINED_regoff_t)
-typedef _Addr regoff_t;
-#define __DEFINED_regoff_t
-#endif
-
-#if defined(__NEED_register_t) && !defined(__DEFINED_register_t)
-typedef _Reg register_t;
-#define __DEFINED_register_t
-#endif
-
-#if defined(__NEED_time_t) && !defined(__DEFINED_time_t)
-typedef _Int64 time_t;
-#define __DEFINED_time_t
-#endif
-
-#if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t)
-typedef _Int64 suseconds_t;
-#define __DEFINED_suseconds_t
-#endif
-
-
-#if defined(__NEED_int8_t) && !defined(__DEFINED_int8_t)
-typedef signed char int8_t;
-#define __DEFINED_int8_t
-#endif
-
-#if defined(__NEED_int16_t) && !defined(__DEFINED_int16_t)
-typedef signed short int16_t;
-#define __DEFINED_int16_t
-#endif
-
-#if defined(__NEED_int32_t) && !defined(__DEFINED_int32_t)
-typedef signed int int32_t;
-#define __DEFINED_int32_t
-#endif
-
-#if defined(__NEED_int64_t) && !defined(__DEFINED_int64_t)
-typedef signed _Int64 int64_t;
-#define __DEFINED_int64_t
-#endif
-
-#if defined(__NEED_intmax_t) && !defined(__DEFINED_intmax_t)
-typedef signed _Int64 intmax_t;
-#define __DEFINED_intmax_t
-#endif
-
-#if defined(__NEED_uint8_t) && !defined(__DEFINED_uint8_t)
-typedef unsigned char uint8_t;
-#define __DEFINED_uint8_t
-#endif
-
-#if defined(__NEED_uint16_t) && !defined(__DEFINED_uint16_t)
-typedef unsigned short uint16_t;
-#define __DEFINED_uint16_t
-#endif
-
-#if defined(__NEED_uint32_t) && !defined(__DEFINED_uint32_t)
-typedef unsigned int uint32_t;
-#define __DEFINED_uint32_t
-#endif
-
-#if defined(__NEED_uint64_t) && !defined(__DEFINED_uint64_t)
-typedef unsigned _Int64 uint64_t;
-#define __DEFINED_uint64_t
-#endif
-
-#if defined(__NEED_u_int64_t) && !defined(__DEFINED_u_int64_t)
-typedef unsigned _Int64 u_int64_t;
-#define __DEFINED_u_int64_t
-#endif
-
-#if defined(__NEED_uintmax_t) && !defined(__DEFINED_uintmax_t)
-typedef unsigned _Int64 uintmax_t;
-#define __DEFINED_uintmax_t
-#endif
-
-
-#if defined(__NEED_mode_t) && !defined(__DEFINED_mode_t)
-typedef unsigned mode_t;
-#define __DEFINED_mode_t
-#endif
-
-#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)
-typedef unsigned _Reg nlink_t;
-#define __DEFINED_nlink_t
-#endif
-
-#if defined(__NEED_off_t) && !defined(__DEFINED_off_t)
-typedef _Int64 off_t;
-#define __DEFINED_off_t
-#endif
-
-#if defined(__NEED_ino_t) && !defined(__DEFINED_ino_t)
-typedef unsigned _Int64 ino_t;
-#define __DEFINED_ino_t
-#endif
-
-#if defined(__NEED_dev_t) && !defined(__DEFINED_dev_t)
-typedef unsigned _Int64 dev_t;
-#define __DEFINED_dev_t
-#endif
-
-#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)
-typedef long blksize_t;
-#define __DEFINED_blksize_t
-#endif
-
-#if defined(__NEED_blkcnt_t) && !defined(__DEFINED_blkcnt_t)
-typedef _Int64 blkcnt_t;
-#define __DEFINED_blkcnt_t
-#endif
-
-#if defined(__NEED_fsblkcnt_t) && !defined(__DEFINED_fsblkcnt_t)
-typedef unsigned _Int64 fsblkcnt_t;
-#define __DEFINED_fsblkcnt_t
-#endif
-
-#if defined(__NEED_fsfilcnt_t) && !defined(__DEFINED_fsfilcnt_t)
-typedef unsigned _Int64 fsfilcnt_t;
-#define __DEFINED_fsfilcnt_t
-#endif
-
-
-#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)
-typedef unsigned wint_t;
-#define __DEFINED_wint_t
-#endif
-
-#if defined(__NEED_wctype_t) && !defined(__DEFINED_wctype_t)
-typedef unsigned long wctype_t;
-#define __DEFINED_wctype_t
-#endif
-
-
-#if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t)
-typedef void * timer_t;
-#define __DEFINED_timer_t
-#endif
-
-#if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t)
-typedef int clockid_t;
-#define __DEFINED_clockid_t
-#endif
-
-#if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t)
-typedef long clock_t;
-#define __DEFINED_clock_t
-#endif
-
-#if defined(__NEED_struct_timeval) && !defined(__DEFINED_struct_timeval)
-struct timeval { time_t tv_sec; suseconds_t tv_usec; };
-#define __DEFINED_struct_timeval
-#endif
-
-#if defined(__NEED_struct_timespec) && !defined(__DEFINED_struct_timespec)
-struct timespec { time_t tv_sec; int :8*(sizeof(time_t)-sizeof(long))*(__BYTE_ORDER==4321); long tv_nsec; int :8*(sizeof(time_t)-sizeof(long))*(__BYTE_ORDER!=4321); };
-#define __DEFINED_struct_timespec
-#endif
-
-
-#if defined(__NEED_pid_t) && !defined(__DEFINED_pid_t)
-typedef int pid_t;
-#define __DEFINED_pid_t
-#endif
-
-#if defined(__NEED_id_t) && !defined(__DEFINED_id_t)
-typedef unsigned id_t;
-#define __DEFINED_id_t
-#endif
-
-#if defined(__NEED_uid_t) && !defined(__DEFINED_uid_t)
-typedef unsigned uid_t;
-#define __DEFINED_uid_t
-#endif
-
-#if defined(__NEED_gid_t) && !defined(__DEFINED_gid_t)
-typedef unsigned gid_t;
-#define __DEFINED_gid_t
-#endif
-
-#if defined(__NEED_key_t) && !defined(__DEFINED_key_t)
-typedef int key_t;
-#define __DEFINED_key_t
-#endif
-
-#if defined(__NEED_useconds_t) && !defined(__DEFINED_useconds_t)
-typedef unsigned useconds_t;
-#define __DEFINED_useconds_t
-#endif
-
-
-#ifdef __cplusplus
-#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
-typedef unsigned long pthread_t;
-#define __DEFINED_pthread_t
-#endif
-
-#else
-#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
-typedef struct __pthread * pthread_t;
-#define __DEFINED_pthread_t
-#endif
-
-#endif
-#if defined(__NEED_pthread_once_t) && !defined(__DEFINED_pthread_once_t)
-typedef int pthread_once_t;
-#define __DEFINED_pthread_once_t
-#endif
-
-#if defined(__NEED_pthread_key_t) && !defined(__DEFINED_pthread_key_t)
-typedef unsigned pthread_key_t;
-#define __DEFINED_pthread_key_t
-#endif
-
-#if defined(__NEED_pthread_spinlock_t) && !defined(__DEFINED_pthread_spinlock_t)
-typedef int pthread_spinlock_t;
-#define __DEFINED_pthread_spinlock_t
-#endif
-
-#if defined(__NEED_pthread_mutexattr_t) && !defined(__DEFINED_pthread_mutexattr_t)
-typedef struct { unsigned __attr; } pthread_mutexattr_t;
-#define __DEFINED_pthread_mutexattr_t
-#endif
-
-#if defined(__NEED_pthread_condattr_t) && !defined(__DEFINED_pthread_condattr_t)
-typedef struct { unsigned __attr; } pthread_condattr_t;
-#define __DEFINED_pthread_condattr_t
-#endif
-
-#if defined(__NEED_pthread_barrierattr_t) && !defined(__DEFINED_pthread_barrierattr_t)
-typedef struct { unsigned __attr; } pthread_barrierattr_t;
-#define __DEFINED_pthread_barrierattr_t
-#endif
-
-#if defined(__NEED_pthread_rwlockattr_t) && !defined(__DEFINED_pthread_rwlockattr_t)
-typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;
-#define __DEFINED_pthread_rwlockattr_t
-#endif
-
-
-#if defined(__NEED_struct__IO_FILE) && !defined(__DEFINED_struct__IO_FILE)
-struct _IO_FILE { char __x; };
-#define __DEFINED_struct__IO_FILE
-#endif
-
-#if defined(__NEED_FILE) && !defined(__DEFINED_FILE)
-typedef struct _IO_FILE FILE;
-#define __DEFINED_FILE
-#endif
-
-
-#if defined(__NEED_va_list) && !defined(__DEFINED_va_list)
-typedef __builtin_va_list va_list;
-#define __DEFINED_va_list
-#endif
-
-#if defined(__NEED___isoc_va_list) && !defined(__DEFINED___isoc_va_list)
-typedef __builtin_va_list __isoc_va_list;
-#define __DEFINED___isoc_va_list
-#endif
-
-
-#if defined(__NEED_mbstate_t) && !defined(__DEFINED_mbstate_t)
-typedef struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t;
-#define __DEFINED_mbstate_t
-#endif
-
-
-#if defined(__NEED_locale_t) && !defined(__DEFINED_locale_t)
-typedef struct __locale_struct * locale_t;
-#define __DEFINED_locale_t
-#endif
-
-
-#if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t)
-typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;
-#define __DEFINED_sigset_t
-#endif
-
-
-#if defined(__NEED_struct_iovec) && !defined(__DEFINED_struct_iovec)
-struct iovec { void *iov_base; size_t iov_len; };
-#define __DEFINED_struct_iovec
-#endif
-
-
-#if defined(__NEED_struct_winsize) && !defined(__DEFINED_struct_winsize)
-struct winsize { unsigned short ws_row, ws_col, ws_xpixel, ws_ypixel; };
-#define __DEFINED_struct_winsize
-#endif
-
-
-#if defined(__NEED_socklen_t) && !defined(__DEFINED_socklen_t)
-typedef unsigned socklen_t;
-#define __DEFINED_socklen_t
-#endif
-
-#if defined(__NEED_sa_family_t) && !defined(__DEFINED_sa_family_t)
-typedef unsigned short sa_family_t;
-#define __DEFINED_sa_family_t
-#endif
-
-
-#if defined(__NEED_pthread_attr_t) && !defined(__DEFINED_pthread_attr_t)
-typedef struct { union { int __i[sizeof(long)==8?14:9]; volatile int __vi[sizeof(long)==8?14:9]; unsigned long __s[sizeof(long)==8?7:9]; } __u; } pthread_attr_t;
-#define __DEFINED_pthread_attr_t
-#endif
-
-#if defined(__NEED_pthread_mutex_t) && !defined(__DEFINED_pthread_mutex_t)
-typedef struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } pthread_mutex_t;
-#define __DEFINED_pthread_mutex_t
-#endif
-
-#if defined(__NEED_mtx_t) && !defined(__DEFINED_mtx_t)
-typedef struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } mtx_t;
-#define __DEFINED_mtx_t
-#endif
-
-#if defined(__NEED_pthread_cond_t) && !defined(__DEFINED_pthread_cond_t)
-typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } pthread_cond_t;
-#define __DEFINED_pthread_cond_t
-#endif
-
-#if defined(__NEED_cnd_t) && !defined(__DEFINED_cnd_t)
-typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } cnd_t;
-#define __DEFINED_cnd_t
-#endif
-
-#if defined(__NEED_pthread_rwlock_t) && !defined(__DEFINED_pthread_rwlock_t)
-typedef struct { union { int __i[sizeof(long)==8?14:8]; volatile int __vi[sizeof(long)==8?14:8]; void *__p[sizeof(long)==8?7:8]; } __u; } pthread_rwlock_t;
-#define __DEFINED_pthread_rwlock_t
-#endif
-
-#if defined(__NEED_pthread_barrier_t) && !defined(__DEFINED_pthread_barrier_t)
-typedef struct { union { int __i[sizeof(long)==8?8:5]; volatile int __vi[sizeof(long)==8?8:5]; void *__p[sizeof(long)==8?4:5]; } __u; } pthread_barrier_t;
-#define __DEFINED_pthread_barrier_t
-#endif
-
-
-#undef _Addr
-#undef _Int64
-#undef _Reg
diff --git a/musl/bits/dirent.h b/musl/bits/dirent.h
deleted file mode 100644
index c845fe8..0000000
--- a/musl/bits/dirent.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#define _DIRENT_HAVE_D_RECLEN
-#define _DIRENT_HAVE_D_OFF
-#define _DIRENT_HAVE_D_TYPE
-
-struct dirent {
- ino_t d_ino;
- off_t d_off;
- unsigned short d_reclen;
- unsigned char d_type;
- char d_name[256];
-};
diff --git a/musl/bits/errno.h b/musl/bits/errno.h
deleted file mode 100644
index d2e1eee..0000000
--- a/musl/bits/errno.h
+++ /dev/null
@@ -1,134 +0,0 @@
-#define EPERM 1
-#define ENOENT 2
-#define ESRCH 3
-#define EINTR 4
-#define EIO 5
-#define ENXIO 6
-#define E2BIG 7
-#define ENOEXEC 8
-#define EBADF 9
-#define ECHILD 10
-#define EAGAIN 11
-#define ENOMEM 12
-#define EACCES 13
-#define EFAULT 14
-#define ENOTBLK 15
-#define EBUSY 16
-#define EEXIST 17
-#define EXDEV 18
-#define ENODEV 19
-#define ENOTDIR 20
-#define EISDIR 21
-#define EINVAL 22
-#define ENFILE 23
-#define EMFILE 24
-#define ENOTTY 25
-#define ETXTBSY 26
-#define EFBIG 27
-#define ENOSPC 28
-#define ESPIPE 29
-#define EROFS 30
-#define EMLINK 31
-#define EPIPE 32
-#define EDOM 33
-#define ERANGE 34
-#define EDEADLK 35
-#define ENAMETOOLONG 36
-#define ENOLCK 37
-#define ENOSYS 38
-#define ENOTEMPTY 39
-#define ELOOP 40
-#define EWOULDBLOCK EAGAIN
-#define ENOMSG 42
-#define EIDRM 43
-#define ECHRNG 44
-#define EL2NSYNC 45
-#define EL3HLT 46
-#define EL3RST 47
-#define ELNRNG 48
-#define EUNATCH 49
-#define ENOCSI 50
-#define EL2HLT 51
-#define EBADE 52
-#define EBADR 53
-#define EXFULL 54
-#define ENOANO 55
-#define EBADRQC 56
-#define EBADSLT 57
-#define EDEADLOCK EDEADLK
-#define EBFONT 59
-#define ENOSTR 60
-#define ENODATA 61
-#define ETIME 62
-#define ENOSR 63
-#define ENONET 64
-#define ENOPKG 65
-#define EREMOTE 66
-#define ENOLINK 67
-#define EADV 68
-#define ESRMNT 69
-#define ECOMM 70
-#define EPROTO 71
-#define EMULTIHOP 72
-#define EDOTDOT 73
-#define EBADMSG 74
-#define EOVERFLOW 75
-#define ENOTUNIQ 76
-#define EBADFD 77
-#define EREMCHG 78
-#define ELIBACC 79
-#define ELIBBAD 80
-#define ELIBSCN 81
-#define ELIBMAX 82
-#define ELIBEXEC 83
-#define EILSEQ 84
-#define ERESTART 85
-#define ESTRPIPE 86
-#define EUSERS 87
-#define ENOTSOCK 88
-#define EDESTADDRREQ 89
-#define EMSGSIZE 90
-#define EPROTOTYPE 91
-#define ENOPROTOOPT 92
-#define EPROTONOSUPPORT 93
-#define ESOCKTNOSUPPORT 94
-#define EOPNOTSUPP 95
-#define ENOTSUP EOPNOTSUPP
-#define EPFNOSUPPORT 96
-#define EAFNOSUPPORT 97
-#define EADDRINUSE 98
-#define EADDRNOTAVAIL 99
-#define ENETDOWN 100
-#define ENETUNREACH 101
-#define ENETRESET 102
-#define ECONNABORTED 103
-#define ECONNRESET 104
-#define ENOBUFS 105
-#define EISCONN 106
-#define ENOTCONN 107
-#define ESHUTDOWN 108
-#define ETOOMANYREFS 109
-#define ETIMEDOUT 110
-#define ECONNREFUSED 111
-#define EHOSTDOWN 112
-#define EHOSTUNREACH 113
-#define EALREADY 114
-#define EINPROGRESS 115
-#define ESTALE 116
-#define EUCLEAN 117
-#define ENOTNAM 118
-#define ENAVAIL 119
-#define EISNAM 120
-#define EREMOTEIO 121
-#define EDQUOT 122
-#define ENOMEDIUM 123
-#define EMEDIUMTYPE 124
-#define ECANCELED 125
-#define ENOKEY 126
-#define EKEYEXPIRED 127
-#define EKEYREVOKED 128
-#define EKEYREJECTED 129
-#define EOWNERDEAD 130
-#define ENOTRECOVERABLE 131
-#define ERFKILL 132
-#define EHWPOISON 133
diff --git a/musl/bits/fcntl.h b/musl/bits/fcntl.h
deleted file mode 100644
index 730a98c..0000000
--- a/musl/bits/fcntl.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#define O_CREAT 0100
-#define O_EXCL 0200
-#define O_NOCTTY 0400
-#define O_TRUNC 01000
-#define O_APPEND 02000
-#define O_NONBLOCK 04000
-#define O_DSYNC 010000
-#define O_SYNC 04010000
-#define O_RSYNC 04010000
-#define O_DIRECTORY 0200000
-#define O_NOFOLLOW 0400000
-#define O_CLOEXEC 02000000
-
-#define O_ASYNC 020000
-#define O_DIRECT 040000
-#define O_LARGEFILE 0100000
-#define O_NOATIME 01000000
-#define O_PATH 010000000
-#define O_TMPFILE 020200000
-#define O_NDELAY O_NONBLOCK
-
-#define F_DUPFD 0
-#define F_GETFD 1
-#define F_SETFD 2
-#define F_GETFL 3
-#define F_SETFL 4
-
-#define F_SETOWN 8
-#define F_GETOWN 9
-#define F_SETSIG 10
-#define F_GETSIG 11
-
-#if __LONG_MAX == 0x7fffffffL
-#define F_GETLK 12
-#define F_SETLK 13
-#define F_SETLKW 14
-#else
-#define F_GETLK 5
-#define F_SETLK 6
-#define F_SETLKW 7
-#endif
-
-#define F_SETOWN_EX 15
-#define F_GETOWN_EX 16
-
-#define F_GETOWNER_UIDS 17
diff --git a/musl/bits/fenv.h b/musl/bits/fenv.h
deleted file mode 100644
index 24df041..0000000
--- a/musl/bits/fenv.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#define FE_INVALID 1
-#define __FE_DENORM 2
-#define FE_DIVBYZERO 4
-#define FE_OVERFLOW 8
-#define FE_UNDERFLOW 16
-#define FE_INEXACT 32
-
-#define FE_ALL_EXCEPT 63
-
-#define FE_TONEAREST 0
-#define FE_DOWNWARD 0x400
-#define FE_UPWARD 0x800
-#define FE_TOWARDZERO 0xc00
-
-typedef unsigned short fexcept_t;
-
-typedef struct {
- unsigned short __control_word;
- unsigned short __unused1;
- unsigned short __status_word;
- unsigned short __unused2;
- unsigned short __tags;
- unsigned short __unused3;
- unsigned int __eip;
- unsigned short __cs_selector;
- unsigned int __opcode:11;
- unsigned int __unused4:5;
- unsigned int __data_offset;
- unsigned short __data_selector;
- unsigned short __unused5;
- unsigned int __mxcsr;
-} fenv_t;
-
-#define FE_DFL_ENV ((const fenv_t *) -1)
diff --git a/musl/bits/float.h b/musl/bits/float.h
deleted file mode 100644
index 4d8e786..0000000
--- a/musl/bits/float.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifdef __FLT_EVAL_METHOD__
-#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
-#else
-#define FLT_EVAL_METHOD 0
-#endif
-
-#define LDBL_TRUE_MIN 3.6451995318824746025e-4951L
-#define LDBL_MIN 3.3621031431120935063e-4932L
-#define LDBL_MAX 1.1897314953572317650e+4932L
-#define LDBL_EPSILON 1.0842021724855044340e-19L
-
-#define LDBL_MANT_DIG 64
-#define LDBL_MIN_EXP (-16381)
-#define LDBL_MAX_EXP 16384
-
-#define LDBL_DIG 18
-#define LDBL_MIN_10_EXP (-4931)
-#define LDBL_MAX_10_EXP 4932
-
-#define DECIMAL_DIG 21
diff --git a/musl/bits/hwcap.h b/musl/bits/hwcap.h
deleted file mode 100644
index e69de29..0000000
--- a/musl/bits/hwcap.h
+++ /dev/null
diff --git a/musl/bits/io.h b/musl/bits/io.h
deleted file mode 100644
index dd5bddc..0000000
--- a/musl/bits/io.h
+++ /dev/null
@@ -1,77 +0,0 @@
-static __inline void outb(unsigned char __val, unsigned short __port)
-{
- __asm__ volatile ("outb %0,%1" : : "a" (__val), "dN" (__port));
-}
-
-static __inline void outw(unsigned short __val, unsigned short __port)
-{
- __asm__ volatile ("outw %0,%1" : : "a" (__val), "dN" (__port));
-}
-
-static __inline void outl(unsigned int __val, unsigned short __port)
-{
- __asm__ volatile ("outl %0,%1" : : "a" (__val), "dN" (__port));
-}
-
-static __inline unsigned char inb(unsigned short __port)
-{
- unsigned char __val;
- __asm__ volatile ("inb %1,%0" : "=a" (__val) : "dN" (__port));
- return __val;
-}
-
-static __inline unsigned short inw(unsigned short __port)
-{
- unsigned short __val;
- __asm__ volatile ("inw %1,%0" : "=a" (__val) : "dN" (__port));
- return __val;
-}
-
-static __inline unsigned int inl(unsigned short __port)
-{
- unsigned int __val;
- __asm__ volatile ("inl %1,%0" : "=a" (__val) : "dN" (__port));
- return __val;
-}
-
-static __inline void outsb(unsigned short __port, const void *__buf, unsigned long __n)
-{
- __asm__ volatile ("cld; rep; outsb"
- : "+S" (__buf), "+c" (__n)
- : "d" (__port));
-}
-
-static __inline void outsw(unsigned short __port, const void *__buf, unsigned long __n)
-{
- __asm__ volatile ("cld; rep; outsw"
- : "+S" (__buf), "+c" (__n)
- : "d" (__port));
-}
-
-static __inline void outsl(unsigned short __port, const void *__buf, unsigned long __n)
-{
- __asm__ volatile ("cld; rep; outsl"
- : "+S" (__buf), "+c"(__n)
- : "d" (__port));
-}
-
-static __inline void insb(unsigned short __port, void *__buf, unsigned long __n)
-{
- __asm__ volatile ("cld; rep; insb"
- : "+D" (__buf), "+c" (__n)
- : "d" (__port));
-}
-
-static __inline void insw(unsigned short __port, void *__buf, unsigned long __n)
-{
- __asm__ volatile ("cld; rep; insw"
- : "+D" (__buf), "+c" (__n)
- : "d" (__port));
-}
-
-static __inline void insl(unsigned short __port, void *__buf, unsigned long __n)
-{
- __asm__ volatile ("cld; rep; insl"
- : "+D" (__buf), "+c" (__n)
- : "d" (__port));
-}
diff --git a/musl/bits/ioctl.h b/musl/bits/ioctl.h
deleted file mode 100644
index 60ae8b8..0000000
--- a/musl/bits/ioctl.h
+++ /dev/null
@@ -1,115 +0,0 @@
-#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
-#define _IOC_NONE 0U
-#define _IOC_WRITE 1U
-#define _IOC_READ 2U
-
-#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
-#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
-#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
-#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
-
-#define TCGETS 0x5401
-#define TCSETS 0x5402
-#define TCSETSW 0x5403
-#define TCSETSF 0x5404
-#define TCGETA 0x5405
-#define TCSETA 0x5406
-#define TCSETAW 0x5407
-#define TCSETAF 0x5408
-#define TCSBRK 0x5409
-#define TCXONC 0x540A
-#define TCFLSH 0x540B
-#define TIOCEXCL 0x540C
-#define TIOCNXCL 0x540D
-#define TIOCSCTTY 0x540E
-#define TIOCGPGRP 0x540F
-#define TIOCSPGRP 0x5410
-#define TIOCOUTQ 0x5411
-#define TIOCSTI 0x5412
-#define TIOCGWINSZ 0x5413
-#define TIOCSWINSZ 0x5414
-#define TIOCMGET 0x5415
-#define TIOCMBIS 0x5416
-#define TIOCMBIC 0x5417
-#define TIOCMSET 0x5418
-#define TIOCGSOFTCAR 0x5419
-#define TIOCSSOFTCAR 0x541A
-#define FIONREAD 0x541B
-#define TIOCINQ FIONREAD
-#define TIOCLINUX 0x541C
-#define TIOCCONS 0x541D
-#define TIOCGSERIAL 0x541E
-#define TIOCSSERIAL 0x541F
-#define TIOCPKT 0x5420
-#define FIONBIO 0x5421
-#define TIOCNOTTY 0x5422
-#define TIOCSETD 0x5423
-#define TIOCGETD 0x5424
-#define TCSBRKP 0x5425
-#define TIOCSBRK 0x5427
-#define TIOCCBRK 0x5428
-#define TIOCGSID 0x5429
-#define TIOCGRS485 0x542E
-#define TIOCSRS485 0x542F
-#define TIOCGPTN 0x80045430
-#define TIOCSPTLCK 0x40045431
-#define TIOCGDEV 0x80045432
-#define TCGETX 0x5432
-#define TCSETX 0x5433
-#define TCSETXF 0x5434
-#define TCSETXW 0x5435
-#define TIOCSIG 0x40045436
-#define TIOCVHANGUP 0x5437
-#define TIOCGPKT 0x80045438
-#define TIOCGPTLCK 0x80045439
-#define TIOCGEXCL 0x80045440
-#define TIOCGPTPEER 0x5441
-#define TIOCGISO7816 0x80285442
-#define TIOCSISO7816 0xc0285443
-
-#define FIONCLEX 0x5450
-#define FIOCLEX 0x5451
-#define FIOASYNC 0x5452
-#define TIOCSERCONFIG 0x5453
-#define TIOCSERGWILD 0x5454
-#define TIOCSERSWILD 0x5455
-#define TIOCGLCKTRMIOS 0x5456
-#define TIOCSLCKTRMIOS 0x5457
-#define TIOCSERGSTRUCT 0x5458
-#define TIOCSERGETLSR 0x5459
-#define TIOCSERGETMULTI 0x545A
-#define TIOCSERSETMULTI 0x545B
-
-#define TIOCMIWAIT 0x545C
-#define TIOCGICOUNT 0x545D
-#define FIOQSIZE 0x5460
-
-#define TIOCM_LE 0x001
-#define TIOCM_DTR 0x002
-#define TIOCM_RTS 0x004
-#define TIOCM_ST 0x008
-#define TIOCM_SR 0x010
-#define TIOCM_CTS 0x020
-#define TIOCM_CAR 0x040
-#define TIOCM_RNG 0x080
-#define TIOCM_DSR 0x100
-#define TIOCM_CD TIOCM_CAR
-#define TIOCM_RI TIOCM_RNG
-#define TIOCM_OUT1 0x2000
-#define TIOCM_OUT2 0x4000
-#define TIOCM_LOOP 0x8000
-
-#define FIOSETOWN 0x8901
-#define SIOCSPGRP 0x8902
-#define FIOGETOWN 0x8903
-#define SIOCGPGRP 0x8904
-#define SIOCATMARK 0x8905
-#if __LONG_MAX == 0x7fffffff
-#define SIOCGSTAMP _IOR(0x89, 6, char[16])
-#define SIOCGSTAMPNS _IOR(0x89, 7, char[16])
-#else
-#define SIOCGSTAMP 0x8906
-#define SIOCGSTAMPNS 0x8907
-#endif
-
-#include <bits/ioctl_fix.h>
diff --git a/musl/bits/ioctl_fix.h b/musl/bits/ioctl_fix.h
deleted file mode 100644
index e69de29..0000000
--- a/musl/bits/ioctl_fix.h
+++ /dev/null
diff --git a/musl/bits/ipc.h b/musl/bits/ipc.h
deleted file mode 100644
index 40d6f3a..0000000
--- a/musl/bits/ipc.h
+++ /dev/null
@@ -1,11 +0,0 @@
-struct ipc_perm {
- key_t __ipc_perm_key;
- uid_t uid;
- gid_t gid;
- uid_t cuid;
- gid_t cgid;
- mode_t mode;
- int __ipc_perm_seq;
- long __pad1;
- long __pad2;
-};
diff --git a/musl/bits/ipcstat.h b/musl/bits/ipcstat.h
deleted file mode 100644
index 0018ad1..0000000
--- a/musl/bits/ipcstat.h
+++ /dev/null
@@ -1 +0,0 @@
-#define IPC_STAT 2
diff --git a/musl/bits/kd.h b/musl/bits/kd.h
deleted file mode 100644
index 33b873f..0000000
--- a/musl/bits/kd.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/kd.h>
diff --git a/musl/bits/limits.h b/musl/bits/limits.h
deleted file mode 100644
index 07743b6..0000000
--- a/musl/bits/limits.h
+++ /dev/null
@@ -1 +0,0 @@
-#define PAGESIZE 4096
diff --git a/musl/bits/link.h b/musl/bits/link.h
deleted file mode 100644
index 4a94d8f..0000000
--- a/musl/bits/link.h
+++ /dev/null
@@ -1 +0,0 @@
-typedef uint32_t Elf_Symndx;
diff --git a/musl/bits/mman.h b/musl/bits/mman.h
deleted file mode 100644
index ba2d6f7..0000000
--- a/musl/bits/mman.h
+++ /dev/null
@@ -1 +0,0 @@
-#define MAP_32BIT 0x40
diff --git a/musl/bits/msg.h b/musl/bits/msg.h
deleted file mode 100644
index 2e23ca2..0000000
--- a/musl/bits/msg.h
+++ /dev/null
@@ -1,12 +0,0 @@
-struct msqid_ds {
- struct ipc_perm msg_perm;
- time_t msg_stime;
- time_t msg_rtime;
- time_t msg_ctime;
- unsigned long msg_cbytes;
- msgqnum_t msg_qnum;
- msglen_t msg_qbytes;
- pid_t msg_lspid;
- pid_t msg_lrpid;
- unsigned long __unused[2];
-};
diff --git a/musl/bits/poll.h b/musl/bits/poll.h
deleted file mode 100644
index e69de29..0000000
--- a/musl/bits/poll.h
+++ /dev/null
diff --git a/musl/bits/ptrace.h b/musl/bits/ptrace.h
deleted file mode 100644
index 7f8a09b..0000000
--- a/musl/bits/ptrace.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#define PTRACE_GET_THREAD_AREA 25
-#define PTRACE_SET_THREAD_AREA 26
-#define PTRACE_ARCH_PRCTL 30
-#define PTRACE_SYSEMU 31
-#define PTRACE_SYSEMU_SINGLESTEP 32
-#define PTRACE_SINGLEBLOCK 33
-
-#define PT_GET_THREAD_AREA PTRACE_GET_THREAD_AREA
-#define PT_SET_THREAD_AREA PTRACE_SET_THREAD_AREA
-#define PT_ARCH_PRCTL PTRACE_ARCH_PRCTL
-#define PT_SYSEMU PTRACE_SYSEMU
-#define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP
-#define PT_STEPBLOCK PTRACE_SINGLEBLOCK
diff --git a/musl/bits/reg.h b/musl/bits/reg.h
deleted file mode 100644
index 6e54abc..0000000
--- a/musl/bits/reg.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#define R15 0
-#define R14 1
-#define R13 2
-#define R12 3
-#define RBP 4
-#define RBX 5
-#define R11 6
-#define R10 7
-#define R9 8
-#define R8 9
-#define RAX 10
-#define RCX 11
-#define RDX 12
-#define RSI 13
-#define RDI 14
-#define ORIG_RAX 15
-#define RIP 16
-#define CS 17
-#define EFLAGS 18
-#define RSP 19
-#define SS 20
-#define FS_BASE 21
-#define GS_BASE 22
-#define DS 23
-#define ES 24
-#define FS 25
-#define GS 26
diff --git a/musl/bits/resource.h b/musl/bits/resource.h
deleted file mode 100644
index e69de29..0000000
--- a/musl/bits/resource.h
+++ /dev/null
diff --git a/musl/bits/sem.h b/musl/bits/sem.h
deleted file mode 100644
index e61571c..0000000
--- a/musl/bits/sem.h
+++ /dev/null
@@ -1,11 +0,0 @@
-struct semid_ds {
- struct ipc_perm sem_perm;
- time_t sem_otime;
- long __unused1;
- time_t sem_ctime;
- long __unused2;
- unsigned short sem_nsems;
- char __sem_nsems_pad[sizeof(long)-sizeof(short)];
- long __unused3;
- long __unused4;
-};
diff --git a/musl/bits/setjmp.h b/musl/bits/setjmp.h
deleted file mode 100644
index 63973a8..0000000
--- a/musl/bits/setjmp.h
+++ /dev/null
@@ -1 +0,0 @@
-typedef unsigned long __jmp_buf[8];
diff --git a/musl/bits/shm.h b/musl/bits/shm.h
deleted file mode 100644
index 8d19378..0000000
--- a/musl/bits/shm.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#define SHMLBA 4096
-
-struct shmid_ds {
- struct ipc_perm shm_perm;
- size_t shm_segsz;
- time_t shm_atime;
- time_t shm_dtime;
- time_t shm_ctime;
- pid_t shm_cpid;
- pid_t shm_lpid;
- unsigned long shm_nattch;
- unsigned long __pad1;
- unsigned long __pad2;
-};
-
-struct shminfo {
- unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
-};
-
-struct shm_info {
- int __used_ids;
- unsigned long shm_tot, shm_rss, shm_swp;
- unsigned long __swap_attempts, __swap_successes;
-};
diff --git a/musl/bits/signal.h b/musl/bits/signal.h
deleted file mode 100644
index c99317d..0000000
--- a/musl/bits/signal.h
+++ /dev/null
@@ -1,153 +0,0 @@
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define MINSIGSTKSZ 2048
-#define SIGSTKSZ 8192
-#endif
-
-#ifdef _GNU_SOURCE
-enum { REG_R8 = 0 };
-#define REG_R8 REG_R8
-enum { REG_R9 = 1 };
-#define REG_R9 REG_R9
-enum { REG_R10 = 2 };
-#define REG_R10 REG_R10
-enum { REG_R11 = 3 };
-#define REG_R11 REG_R11
-enum { REG_R12 = 4 };
-#define REG_R12 REG_R12
-enum { REG_R13 = 5 };
-#define REG_R13 REG_R13
-enum { REG_R14 = 6 };
-#define REG_R14 REG_R14
-enum { REG_R15 = 7 };
-#define REG_R15 REG_R15
-enum { REG_RDI = 8 };
-#define REG_RDI REG_RDI
-enum { REG_RSI = 9 };
-#define REG_RSI REG_RSI
-enum { REG_RBP = 10 };
-#define REG_RBP REG_RBP
-enum { REG_RBX = 11 };
-#define REG_RBX REG_RBX
-enum { REG_RDX = 12 };
-#define REG_RDX REG_RDX
-enum { REG_RAX = 13 };
-#define REG_RAX REG_RAX
-enum { REG_RCX = 14 };
-#define REG_RCX REG_RCX
-enum { REG_RSP = 15 };
-#define REG_RSP REG_RSP
-enum { REG_RIP = 16 };
-#define REG_RIP REG_RIP
-enum { REG_EFL = 17 };
-#define REG_EFL REG_EFL
-enum { REG_CSGSFS = 18 };
-#define REG_CSGSFS REG_CSGSFS
-enum { REG_ERR = 19 };
-#define REG_ERR REG_ERR
-enum { REG_TRAPNO = 20 };
-#define REG_TRAPNO REG_TRAPNO
-enum { REG_OLDMASK = 21 };
-#define REG_OLDMASK REG_OLDMASK
-enum { REG_CR2 = 22 };
-#define REG_CR2 REG_CR2
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-typedef long long greg_t, gregset_t[23];
-typedef struct _fpstate {
- unsigned short cwd, swd, ftw, fop;
- unsigned long long rip, rdp;
- unsigned mxcsr, mxcr_mask;
- struct {
- unsigned short significand[4], exponent, padding[3];
- } _st[8];
- struct {
- unsigned element[4];
- } _xmm[16];
- unsigned padding[24];
-} *fpregset_t;
-struct sigcontext {
- unsigned long r8, r9, r10, r11, r12, r13, r14, r15;
- unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags;
- unsigned short cs, gs, fs, __pad0;
- unsigned long err, trapno, oldmask, cr2;
- struct _fpstate *fpstate;
- unsigned long __reserved1[8];
-};
-typedef struct {
- gregset_t gregs;
- fpregset_t fpregs;
- unsigned long long __reserved1[8];
-} mcontext_t;
-#else
-typedef struct {
- unsigned long __space[32];
-} mcontext_t;
-#endif
-
-struct sigaltstack {
- void *ss_sp;
- int ss_flags;
- size_t ss_size;
-};
-
-typedef struct __ucontext {
- unsigned long uc_flags;
- struct __ucontext *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- sigset_t uc_sigmask;
- unsigned long __fpregs_mem[64];
-} ucontext_t;
-
-#define SA_NOCLDSTOP 1
-#define SA_NOCLDWAIT 2
-#define SA_SIGINFO 4
-#define SA_ONSTACK 0x08000000
-#define SA_RESTART 0x10000000
-#define SA_NODEFER 0x40000000
-#define SA_RESETHAND 0x80000000
-#define SA_RESTORER 0x04000000
-
-#endif
-
-#define SIGHUP 1
-#define SIGINT 2
-#define SIGQUIT 3
-#define SIGILL 4
-#define SIGTRAP 5
-#define SIGABRT 6
-#define SIGIOT SIGABRT
-#define SIGBUS 7
-#define SIGFPE 8
-#define SIGKILL 9
-#define SIGUSR1 10
-#define SIGSEGV 11
-#define SIGUSR2 12
-#define SIGPIPE 13
-#define SIGALRM 14
-#define SIGTERM 15
-#define SIGSTKFLT 16
-#define SIGCHLD 17
-#define SIGCONT 18
-#define SIGSTOP 19
-#define SIGTSTP 20
-#define SIGTTIN 21
-#define SIGTTOU 22
-#define SIGURG 23
-#define SIGXCPU 24
-#define SIGXFSZ 25
-#define SIGVTALRM 26
-#define SIGPROF 27
-#define SIGWINCH 28
-#define SIGIO 29
-#define SIGPOLL 29
-#define SIGPWR 30
-#define SIGSYS 31
-#define SIGUNUSED SIGSYS
-
-#define _NSIG 65
-
diff --git a/musl/bits/socket.h b/musl/bits/socket.h
deleted file mode 100644
index e69de29..0000000
--- a/musl/bits/socket.h
+++ /dev/null
diff --git a/musl/bits/soundcard.h b/musl/bits/soundcard.h
deleted file mode 100644
index fade986..0000000
--- a/musl/bits/soundcard.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/soundcard.h>
diff --git a/musl/bits/stat.h b/musl/bits/stat.h
deleted file mode 100644
index 081237c..0000000
--- a/musl/bits/stat.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* copied from kernel definition, but with padding replaced
- * by the corresponding correctly-sized userspace types. */
-
-struct stat {
- dev_t st_dev;
- ino_t st_ino;
- nlink_t st_nlink;
-
- mode_t st_mode;
- uid_t st_uid;
- gid_t st_gid;
- unsigned int __pad0;
- dev_t st_rdev;
- off_t st_size;
- blksize_t st_blksize;
- blkcnt_t st_blocks;
-
- struct timespec st_atim;
- struct timespec st_mtim;
- struct timespec st_ctim;
- long __unused[3];
-};
diff --git a/musl/bits/statfs.h b/musl/bits/statfs.h
deleted file mode 100644
index f103f4e..0000000
--- a/musl/bits/statfs.h
+++ /dev/null
@@ -1,7 +0,0 @@
-struct statfs {
- unsigned long f_type, f_bsize;
- fsblkcnt_t f_blocks, f_bfree, f_bavail;
- fsfilcnt_t f_files, f_ffree;
- fsid_t f_fsid;
- unsigned long f_namelen, f_frsize, f_flags, f_spare[4];
-};
diff --git a/musl/bits/stdint.h b/musl/bits/stdint.h
deleted file mode 100644
index 8648918..0000000
--- a/musl/bits/stdint.h
+++ /dev/null
@@ -1,29 +0,0 @@
-typedef int32_t int_fast16_t;
-typedef int32_t int_fast32_t;
-typedef uint32_t uint_fast16_t;
-typedef uint32_t uint_fast32_t;
-
-#define INT_FAST16_MIN INT32_MIN
-#define INT_FAST32_MIN INT32_MIN
-
-#define INT_FAST16_MAX INT32_MAX
-#define INT_FAST32_MAX INT32_MAX
-
-#define UINT_FAST16_MAX UINT32_MAX
-#define UINT_FAST32_MAX UINT32_MAX
-
-#if __LONG_MAX == 0x7fffffffL
-#define INTPTR_MIN INT32_MIN
-#define INTPTR_MAX INT32_MAX
-#define UINTPTR_MAX UINT32_MAX
-#define PTRDIFF_MIN INT32_MIN
-#define PTRDIFF_MAX INT32_MAX
-#define SIZE_MAX UINT32_MAX
-#else
-#define INTPTR_MIN INT64_MIN
-#define INTPTR_MAX INT64_MAX
-#define UINTPTR_MAX UINT64_MAX
-#define PTRDIFF_MIN INT64_MIN
-#define PTRDIFF_MAX INT64_MAX
-#define SIZE_MAX UINT64_MAX
-#endif
diff --git a/musl/bits/syscall.h b/musl/bits/syscall.h
deleted file mode 100644
index 25ccb44..0000000
--- a/musl/bits/syscall.h
+++ /dev/null
@@ -1,727 +0,0 @@
-#define __NR_read 0
-#define __NR_write 1
-#define __NR_open 2
-#define __NR_close 3
-#define __NR_stat 4
-#define __NR_fstat 5
-#define __NR_lstat 6
-#define __NR_poll 7
-#define __NR_lseek 8
-#define __NR_mmap 9
-#define __NR_mprotect 10
-#define __NR_munmap 11
-#define __NR_brk 12
-#define __NR_rt_sigaction 13
-#define __NR_rt_sigprocmask 14
-#define __NR_rt_sigreturn 15
-#define __NR_ioctl 16
-#define __NR_pread64 17
-#define __NR_pwrite64 18
-#define __NR_readv 19
-#define __NR_writev 20
-#define __NR_access 21
-#define __NR_pipe 22
-#define __NR_select 23
-#define __NR_sched_yield 24
-#define __NR_mremap 25
-#define __NR_msync 26
-#define __NR_mincore 27
-#define __NR_madvise 28
-#define __NR_shmget 29
-#define __NR_shmat 30
-#define __NR_shmctl 31
-#define __NR_dup 32
-#define __NR_dup2 33
-#define __NR_pause 34
-#define __NR_nanosleep 35
-#define __NR_getitimer 36
-#define __NR_alarm 37
-#define __NR_setitimer 38
-#define __NR_getpid 39
-#define __NR_sendfile 40
-#define __NR_socket 41
-#define __NR_connect 42
-#define __NR_accept 43
-#define __NR_sendto 44
-#define __NR_recvfrom 45
-#define __NR_sendmsg 46
-#define __NR_recvmsg 47
-#define __NR_shutdown 48
-#define __NR_bind 49
-#define __NR_listen 50
-#define __NR_getsockname 51
-#define __NR_getpeername 52
-#define __NR_socketpair 53
-#define __NR_setsockopt 54
-#define __NR_getsockopt 55
-#define __NR_clone 56
-#define __NR_fork 57
-#define __NR_vfork 58
-#define __NR_execve 59
-#define __NR_exit 60
-#define __NR_wait4 61
-#define __NR_kill 62
-#define __NR_uname 63
-#define __NR_semget 64
-#define __NR_semop 65
-#define __NR_semctl 66
-#define __NR_shmdt 67
-#define __NR_msgget 68
-#define __NR_msgsnd 69
-#define __NR_msgrcv 70
-#define __NR_msgctl 71
-#define __NR_fcntl 72
-#define __NR_flock 73
-#define __NR_fsync 74
-#define __NR_fdatasync 75
-#define __NR_truncate 76
-#define __NR_ftruncate 77
-#define __NR_getdents 78
-#define __NR_getcwd 79
-#define __NR_chdir 80
-#define __NR_fchdir 81
-#define __NR_rename 82
-#define __NR_mkdir 83
-#define __NR_rmdir 84
-#define __NR_creat 85
-#define __NR_link 86
-#define __NR_unlink 87
-#define __NR_symlink 88
-#define __NR_readlink 89
-#define __NR_chmod 90
-#define __NR_fchmod 91
-#define __NR_chown 92
-#define __NR_fchown 93
-#define __NR_lchown 94
-#define __NR_umask 95
-#define __NR_gettimeofday 96
-#define __NR_getrlimit 97
-#define __NR_getrusage 98
-#define __NR_sysinfo 99
-#define __NR_times 100
-#define __NR_ptrace 101
-#define __NR_getuid 102
-#define __NR_syslog 103
-#define __NR_getgid 104
-#define __NR_setuid 105
-#define __NR_setgid 106
-#define __NR_geteuid 107
-#define __NR_getegid 108
-#define __NR_setpgid 109
-#define __NR_getppid 110
-#define __NR_getpgrp 111
-#define __NR_setsid 112
-#define __NR_setreuid 113
-#define __NR_setregid 114
-#define __NR_getgroups 115
-#define __NR_setgroups 116
-#define __NR_setresuid 117
-#define __NR_getresuid 118
-#define __NR_setresgid 119
-#define __NR_getresgid 120
-#define __NR_getpgid 121
-#define __NR_setfsuid 122
-#define __NR_setfsgid 123
-#define __NR_getsid 124
-#define __NR_capget 125
-#define __NR_capset 126
-#define __NR_rt_sigpending 127
-#define __NR_rt_sigtimedwait 128
-#define __NR_rt_sigqueueinfo 129
-#define __NR_rt_sigsuspend 130
-#define __NR_sigaltstack 131
-#define __NR_utime 132
-#define __NR_mknod 133
-#define __NR_uselib 134
-#define __NR_personality 135
-#define __NR_ustat 136
-#define __NR_statfs 137
-#define __NR_fstatfs 138
-#define __NR_sysfs 139
-#define __NR_getpriority 140
-#define __NR_setpriority 141
-#define __NR_sched_setparam 142
-#define __NR_sched_getparam 143
-#define __NR_sched_setscheduler 144
-#define __NR_sched_getscheduler 145
-#define __NR_sched_get_priority_max 146
-#define __NR_sched_get_priority_min 147
-#define __NR_sched_rr_get_interval 148
-#define __NR_mlock 149
-#define __NR_munlock 150
-#define __NR_mlockall 151
-#define __NR_munlockall 152
-#define __NR_vhangup 153
-#define __NR_modify_ldt 154
-#define __NR_pivot_root 155
-#define __NR__sysctl 156
-#define __NR_prctl 157
-#define __NR_arch_prctl 158
-#define __NR_adjtimex 159
-#define __NR_setrlimit 160
-#define __NR_chroot 161
-#define __NR_sync 162
-#define __NR_acct 163
-#define __NR_settimeofday 164
-#define __NR_mount 165
-#define __NR_umount2 166
-#define __NR_swapon 167
-#define __NR_swapoff 168
-#define __NR_reboot 169
-#define __NR_sethostname 170
-#define __NR_setdomainname 171
-#define __NR_iopl 172
-#define __NR_ioperm 173
-#define __NR_create_module 174
-#define __NR_init_module 175
-#define __NR_delete_module 176
-#define __NR_get_kernel_syms 177
-#define __NR_query_module 178
-#define __NR_quotactl 179
-#define __NR_nfsservctl 180
-#define __NR_getpmsg 181
-#define __NR_putpmsg 182
-#define __NR_afs_syscall 183
-#define __NR_tuxcall 184
-#define __NR_security 185
-#define __NR_gettid 186
-#define __NR_readahead 187
-#define __NR_setxattr 188
-#define __NR_lsetxattr 189
-#define __NR_fsetxattr 190
-#define __NR_getxattr 191
-#define __NR_lgetxattr 192
-#define __NR_fgetxattr 193
-#define __NR_listxattr 194
-#define __NR_llistxattr 195
-#define __NR_flistxattr 196
-#define __NR_removexattr 197
-#define __NR_lremovexattr 198
-#define __NR_fremovexattr 199
-#define __NR_tkill 200
-#define __NR_time 201
-#define __NR_futex 202
-#define __NR_sched_setaffinity 203
-#define __NR_sched_getaffinity 204
-#define __NR_set_thread_area 205
-#define __NR_io_setup 206
-#define __NR_io_destroy 207
-#define __NR_io_getevents 208
-#define __NR_io_submit 209
-#define __NR_io_cancel 210
-#define __NR_get_thread_area 211
-#define __NR_lookup_dcookie 212
-#define __NR_epoll_create 213
-#define __NR_epoll_ctl_old 214
-#define __NR_epoll_wait_old 215
-#define __NR_remap_file_pages 216
-#define __NR_getdents64 217
-#define __NR_set_tid_address 218
-#define __NR_restart_syscall 219
-#define __NR_semtimedop 220
-#define __NR_fadvise64 221
-#define __NR_timer_create 222
-#define __NR_timer_settime 223
-#define __NR_timer_gettime 224
-#define __NR_timer_getoverrun 225
-#define __NR_timer_delete 226
-#define __NR_clock_settime 227
-#define __NR_clock_gettime 228
-#define __NR_clock_getres 229
-#define __NR_clock_nanosleep 230
-#define __NR_exit_group 231
-#define __NR_epoll_wait 232
-#define __NR_epoll_ctl 233
-#define __NR_tgkill 234
-#define __NR_utimes 235
-#define __NR_vserver 236
-#define __NR_mbind 237
-#define __NR_set_mempolicy 238
-#define __NR_get_mempolicy 239
-#define __NR_mq_open 240
-#define __NR_mq_unlink 241
-#define __NR_mq_timedsend 242
-#define __NR_mq_timedreceive 243
-#define __NR_mq_notify 244
-#define __NR_mq_getsetattr 245
-#define __NR_kexec_load 246
-#define __NR_waitid 247
-#define __NR_add_key 248
-#define __NR_request_key 249
-#define __NR_keyctl 250
-#define __NR_ioprio_set 251
-#define __NR_ioprio_get 252
-#define __NR_inotify_init 253
-#define __NR_inotify_add_watch 254
-#define __NR_inotify_rm_watch 255
-#define __NR_migrate_pages 256
-#define __NR_openat 257
-#define __NR_mkdirat 258
-#define __NR_mknodat 259
-#define __NR_fchownat 260
-#define __NR_futimesat 261
-#define __NR_newfstatat 262
-#define __NR_unlinkat 263
-#define __NR_renameat 264
-#define __NR_linkat 265
-#define __NR_symlinkat 266
-#define __NR_readlinkat 267
-#define __NR_fchmodat 268
-#define __NR_faccessat 269
-#define __NR_pselect6 270
-#define __NR_ppoll 271
-#define __NR_unshare 272
-#define __NR_set_robust_list 273
-#define __NR_get_robust_list 274
-#define __NR_splice 275
-#define __NR_tee 276
-#define __NR_sync_file_range 277
-#define __NR_vmsplice 278
-#define __NR_move_pages 279
-#define __NR_utimensat 280
-#define __NR_epoll_pwait 281
-#define __NR_signalfd 282
-#define __NR_timerfd_create 283
-#define __NR_eventfd 284
-#define __NR_fallocate 285
-#define __NR_timerfd_settime 286
-#define __NR_timerfd_gettime 287
-#define __NR_accept4 288
-#define __NR_signalfd4 289
-#define __NR_eventfd2 290
-#define __NR_epoll_create1 291
-#define __NR_dup3 292
-#define __NR_pipe2 293
-#define __NR_inotify_init1 294
-#define __NR_preadv 295
-#define __NR_pwritev 296
-#define __NR_rt_tgsigqueueinfo 297
-#define __NR_perf_event_open 298
-#define __NR_recvmmsg 299
-#define __NR_fanotify_init 300
-#define __NR_fanotify_mark 301
-#define __NR_prlimit64 302
-#define __NR_name_to_handle_at 303
-#define __NR_open_by_handle_at 304
-#define __NR_clock_adjtime 305
-#define __NR_syncfs 306
-#define __NR_sendmmsg 307
-#define __NR_setns 308
-#define __NR_getcpu 309
-#define __NR_process_vm_readv 310
-#define __NR_process_vm_writev 311
-#define __NR_kcmp 312
-#define __NR_finit_module 313
-#define __NR_sched_setattr 314
-#define __NR_sched_getattr 315
-#define __NR_renameat2 316
-#define __NR_seccomp 317
-#define __NR_getrandom 318
-#define __NR_memfd_create 319
-#define __NR_kexec_file_load 320
-#define __NR_bpf 321
-#define __NR_execveat 322
-#define __NR_userfaultfd 323
-#define __NR_membarrier 324
-#define __NR_mlock2 325
-#define __NR_copy_file_range 326
-#define __NR_preadv2 327
-#define __NR_pwritev2 328
-#define __NR_pkey_mprotect 329
-#define __NR_pkey_alloc 330
-#define __NR_pkey_free 331
-#define __NR_statx 332
-#define __NR_io_pgetevents 333
-#define __NR_rseq 334
-#define __NR_pidfd_send_signal 424
-#define __NR_io_uring_setup 425
-#define __NR_io_uring_enter 426
-#define __NR_io_uring_register 427
-#define __NR_open_tree 428
-#define __NR_move_mount 429
-#define __NR_fsopen 430
-#define __NR_fsconfig 431
-#define __NR_fsmount 432
-#define __NR_fspick 433
-#define __NR_pidfd_open 434
-#define __NR_clone3 435
-#define __NR_close_range 436
-#define __NR_openat2 437
-#define __NR_pidfd_getfd 438
-#define __NR_faccessat2 439
-#define __NR_process_madvise 440
-#define __NR_epoll_pwait2 441
-#define __NR_mount_setattr 442
-#define __NR_landlock_create_ruleset 444
-#define __NR_landlock_add_rule 445
-#define __NR_landlock_restrict_self 446
-#define __NR_memfd_secret 447
-#define __NR_process_mrelease 448
-#define __NR_futex_waitv 449
-#define __NR_set_mempolicy_home_node 450
-#define __NR_cachestat 451
-#define __NR_fchmodat2 452
-
-#define SYS_read 0
-#define SYS_write 1
-#define SYS_open 2
-#define SYS_close 3
-#define SYS_stat 4
-#define SYS_fstat 5
-#define SYS_lstat 6
-#define SYS_poll 7
-#define SYS_lseek 8
-#define SYS_mmap 9
-#define SYS_mprotect 10
-#define SYS_munmap 11
-#define SYS_brk 12
-#define SYS_rt_sigaction 13
-#define SYS_rt_sigprocmask 14
-#define SYS_rt_sigreturn 15
-#define SYS_ioctl 16
-#define SYS_pread64 17
-#define SYS_pwrite64 18
-#define SYS_readv 19
-#define SYS_writev 20
-#define SYS_access 21
-#define SYS_pipe 22
-#define SYS_select 23
-#define SYS_sched_yield 24
-#define SYS_mremap 25
-#define SYS_msync 26
-#define SYS_mincore 27
-#define SYS_madvise 28
-#define SYS_shmget 29
-#define SYS_shmat 30
-#define SYS_shmctl 31
-#define SYS_dup 32
-#define SYS_dup2 33
-#define SYS_pause 34
-#define SYS_nanosleep 35
-#define SYS_getitimer 36
-#define SYS_alarm 37
-#define SYS_setitimer 38
-#define SYS_getpid 39
-#define SYS_sendfile 40
-#define SYS_socket 41
-#define SYS_connect 42
-#define SYS_accept 43
-#define SYS_sendto 44
-#define SYS_recvfrom 45
-#define SYS_sendmsg 46
-#define SYS_recvmsg 47
-#define SYS_shutdown 48
-#define SYS_bind 49
-#define SYS_listen 50
-#define SYS_getsockname 51
-#define SYS_getpeername 52
-#define SYS_socketpair 53
-#define SYS_setsockopt 54
-#define SYS_getsockopt 55
-#define SYS_clone 56
-#define SYS_fork 57
-#define SYS_vfork 58
-#define SYS_execve 59
-#define SYS_exit 60
-#define SYS_wait4 61
-#define SYS_kill 62
-#define SYS_uname 63
-#define SYS_semget 64
-#define SYS_semop 65
-#define SYS_semctl 66
-#define SYS_shmdt 67
-#define SYS_msgget 68
-#define SYS_msgsnd 69
-#define SYS_msgrcv 70
-#define SYS_msgctl 71
-#define SYS_fcntl 72
-#define SYS_flock 73
-#define SYS_fsync 74
-#define SYS_fdatasync 75
-#define SYS_truncate 76
-#define SYS_ftruncate 77
-#define SYS_getdents 78
-#define SYS_getcwd 79
-#define SYS_chdir 80
-#define SYS_fchdir 81
-#define SYS_rename 82
-#define SYS_mkdir 83
-#define SYS_rmdir 84
-#define SYS_creat 85
-#define SYS_link 86
-#define SYS_unlink 87
-#define SYS_symlink 88
-#define SYS_readlink 89
-#define SYS_chmod 90
-#define SYS_fchmod 91
-#define SYS_chown 92
-#define SYS_fchown 93
-#define SYS_lchown 94
-#define SYS_umask 95
-#define SYS_gettimeofday 96
-#define SYS_getrlimit 97
-#define SYS_getrusage 98
-#define SYS_sysinfo 99
-#define SYS_times 100
-#define SYS_ptrace 101
-#define SYS_getuid 102
-#define SYS_syslog 103
-#define SYS_getgid 104
-#define SYS_setuid 105
-#define SYS_setgid 106
-#define SYS_geteuid 107
-#define SYS_getegid 108
-#define SYS_setpgid 109
-#define SYS_getppid 110
-#define SYS_getpgrp 111
-#define SYS_setsid 112
-#define SYS_setreuid 113
-#define SYS_setregid 114
-#define SYS_getgroups 115
-#define SYS_setgroups 116
-#define SYS_setresuid 117
-#define SYS_getresuid 118
-#define SYS_setresgid 119
-#define SYS_getresgid 120
-#define SYS_getpgid 121
-#define SYS_setfsuid 122
-#define SYS_setfsgid 123
-#define SYS_getsid 124
-#define SYS_capget 125
-#define SYS_capset 126
-#define SYS_rt_sigpending 127
-#define SYS_rt_sigtimedwait 128
-#define SYS_rt_sigqueueinfo 129
-#define SYS_rt_sigsuspend 130
-#define SYS_sigaltstack 131
-#define SYS_utime 132
-#define SYS_mknod 133
-#define SYS_uselib 134
-#define SYS_personality 135
-#define SYS_ustat 136
-#define SYS_statfs 137
-#define SYS_fstatfs 138
-#define SYS_sysfs 139
-#define SYS_getpriority 140
-#define SYS_setpriority 141
-#define SYS_sched_setparam 142
-#define SYS_sched_getparam 143
-#define SYS_sched_setscheduler 144
-#define SYS_sched_getscheduler 145
-#define SYS_sched_get_priority_max 146
-#define SYS_sched_get_priority_min 147
-#define SYS_sched_rr_get_interval 148
-#define SYS_mlock 149
-#define SYS_munlock 150
-#define SYS_mlockall 151
-#define SYS_munlockall 152
-#define SYS_vhangup 153
-#define SYS_modify_ldt 154
-#define SYS_pivot_root 155
-#define SYS__sysctl 156
-#define SYS_prctl 157
-#define SYS_arch_prctl 158
-#define SYS_adjtimex 159
-#define SYS_setrlimit 160
-#define SYS_chroot 161
-#define SYS_sync 162
-#define SYS_acct 163
-#define SYS_settimeofday 164
-#define SYS_mount 165
-#define SYS_umount2 166
-#define SYS_swapon 167
-#define SYS_swapoff 168
-#define SYS_reboot 169
-#define SYS_sethostname 170
-#define SYS_setdomainname 171
-#define SYS_iopl 172
-#define SYS_ioperm 173
-#define SYS_create_module 174
-#define SYS_init_module 175
-#define SYS_delete_module 176
-#define SYS_get_kernel_syms 177
-#define SYS_query_module 178
-#define SYS_quotactl 179
-#define SYS_nfsservctl 180
-#define SYS_getpmsg 181
-#define SYS_putpmsg 182
-#define SYS_afs_syscall 183
-#define SYS_tuxcall 184
-#define SYS_security 185
-#define SYS_gettid 186
-#define SYS_readahead 187
-#define SYS_setxattr 188
-#define SYS_lsetxattr 189
-#define SYS_fsetxattr 190
-#define SYS_getxattr 191
-#define SYS_lgetxattr 192
-#define SYS_fgetxattr 193
-#define SYS_listxattr 194
-#define SYS_llistxattr 195
-#define SYS_flistxattr 196
-#define SYS_removexattr 197
-#define SYS_lremovexattr 198
-#define SYS_fremovexattr 199
-#define SYS_tkill 200
-#define SYS_time 201
-#define SYS_futex 202
-#define SYS_sched_setaffinity 203
-#define SYS_sched_getaffinity 204
-#define SYS_set_thread_area 205
-#define SYS_io_setup 206
-#define SYS_io_destroy 207
-#define SYS_io_getevents 208
-#define SYS_io_submit 209
-#define SYS_io_cancel 210
-#define SYS_get_thread_area 211
-#define SYS_lookup_dcookie 212
-#define SYS_epoll_create 213
-#define SYS_epoll_ctl_old 214
-#define SYS_epoll_wait_old 215
-#define SYS_remap_file_pages 216
-#define SYS_getdents64 217
-#define SYS_set_tid_address 218
-#define SYS_restart_syscall 219
-#define SYS_semtimedop 220
-#define SYS_fadvise64 221
-#define SYS_timer_create 222
-#define SYS_timer_settime 223
-#define SYS_timer_gettime 224
-#define SYS_timer_getoverrun 225
-#define SYS_timer_delete 226
-#define SYS_clock_settime 227
-#define SYS_clock_gettime 228
-#define SYS_clock_getres 229
-#define SYS_clock_nanosleep 230
-#define SYS_exit_group 231
-#define SYS_epoll_wait 232
-#define SYS_epoll_ctl 233
-#define SYS_tgkill 234
-#define SYS_utimes 235
-#define SYS_vserver 236
-#define SYS_mbind 237
-#define SYS_set_mempolicy 238
-#define SYS_get_mempolicy 239
-#define SYS_mq_open 240
-#define SYS_mq_unlink 241
-#define SYS_mq_timedsend 242
-#define SYS_mq_timedreceive 243
-#define SYS_mq_notify 244
-#define SYS_mq_getsetattr 245
-#define SYS_kexec_load 246
-#define SYS_waitid 247
-#define SYS_add_key 248
-#define SYS_request_key 249
-#define SYS_keyctl 250
-#define SYS_ioprio_set 251
-#define SYS_ioprio_get 252
-#define SYS_inotify_init 253
-#define SYS_inotify_add_watch 254
-#define SYS_inotify_rm_watch 255
-#define SYS_migrate_pages 256
-#define SYS_openat 257
-#define SYS_mkdirat 258
-#define SYS_mknodat 259
-#define SYS_fchownat 260
-#define SYS_futimesat 261
-#define SYS_newfstatat 262
-#define SYS_unlinkat 263
-#define SYS_renameat 264
-#define SYS_linkat 265
-#define SYS_symlinkat 266
-#define SYS_readlinkat 267
-#define SYS_fchmodat 268
-#define SYS_faccessat 269
-#define SYS_pselect6 270
-#define SYS_ppoll 271
-#define SYS_unshare 272
-#define SYS_set_robust_list 273
-#define SYS_get_robust_list 274
-#define SYS_splice 275
-#define SYS_tee 276
-#define SYS_sync_file_range 277
-#define SYS_vmsplice 278
-#define SYS_move_pages 279
-#define SYS_utimensat 280
-#define SYS_epoll_pwait 281
-#define SYS_signalfd 282
-#define SYS_timerfd_create 283
-#define SYS_eventfd 284
-#define SYS_fallocate 285
-#define SYS_timerfd_settime 286
-#define SYS_timerfd_gettime 287
-#define SYS_accept4 288
-#define SYS_signalfd4 289
-#define SYS_eventfd2 290
-#define SYS_epoll_create1 291
-#define SYS_dup3 292
-#define SYS_pipe2 293
-#define SYS_inotify_init1 294
-#define SYS_preadv 295
-#define SYS_pwritev 296
-#define SYS_rt_tgsigqueueinfo 297
-#define SYS_perf_event_open 298
-#define SYS_recvmmsg 299
-#define SYS_fanotify_init 300
-#define SYS_fanotify_mark 301
-#define SYS_prlimit64 302
-#define SYS_name_to_handle_at 303
-#define SYS_open_by_handle_at 304
-#define SYS_clock_adjtime 305
-#define SYS_syncfs 306
-#define SYS_sendmmsg 307
-#define SYS_setns 308
-#define SYS_getcpu 309
-#define SYS_process_vm_readv 310
-#define SYS_process_vm_writev 311
-#define SYS_kcmp 312
-#define SYS_finit_module 313
-#define SYS_sched_setattr 314
-#define SYS_sched_getattr 315
-#define SYS_renameat2 316
-#define SYS_seccomp 317
-#define SYS_getrandom 318
-#define SYS_memfd_create 319
-#define SYS_kexec_file_load 320
-#define SYS_bpf 321
-#define SYS_execveat 322
-#define SYS_userfaultfd 323
-#define SYS_membarrier 324
-#define SYS_mlock2 325
-#define SYS_copy_file_range 326
-#define SYS_preadv2 327
-#define SYS_pwritev2 328
-#define SYS_pkey_mprotect 329
-#define SYS_pkey_alloc 330
-#define SYS_pkey_free 331
-#define SYS_statx 332
-#define SYS_io_pgetevents 333
-#define SYS_rseq 334
-#define SYS_pidfd_send_signal 424
-#define SYS_io_uring_setup 425
-#define SYS_io_uring_enter 426
-#define SYS_io_uring_register 427
-#define SYS_open_tree 428
-#define SYS_move_mount 429
-#define SYS_fsopen 430
-#define SYS_fsconfig 431
-#define SYS_fsmount 432
-#define SYS_fspick 433
-#define SYS_pidfd_open 434
-#define SYS_clone3 435
-#define SYS_close_range 436
-#define SYS_openat2 437
-#define SYS_pidfd_getfd 438
-#define SYS_faccessat2 439
-#define SYS_process_madvise 440
-#define SYS_epoll_pwait2 441
-#define SYS_mount_setattr 442
-#define SYS_landlock_create_ruleset 444
-#define SYS_landlock_add_rule 445
-#define SYS_landlock_restrict_self 446
-#define SYS_memfd_secret 447
-#define SYS_process_mrelease 448
-#define SYS_futex_waitv 449
-#define SYS_set_mempolicy_home_node 450
-#define SYS_cachestat 451
-#define SYS_fchmodat2 452
diff --git a/musl/bits/termios.h b/musl/bits/termios.h
deleted file mode 100644
index 124f71d..0000000
--- a/musl/bits/termios.h
+++ /dev/null
@@ -1,166 +0,0 @@
-struct termios {
- tcflag_t c_iflag;
- tcflag_t c_oflag;
- tcflag_t c_cflag;
- tcflag_t c_lflag;
- cc_t c_line;
- cc_t c_cc[NCCS];
- speed_t __c_ispeed;
- speed_t __c_ospeed;
-};
-
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VTIME 5
-#define VMIN 6
-#define VSWTC 7
-#define VSTART 8
-#define VSTOP 9
-#define VSUSP 10
-#define VEOL 11
-#define VREPRINT 12
-#define VDISCARD 13
-#define VWERASE 14
-#define VLNEXT 15
-#define VEOL2 16
-
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK 0000020
-#define ISTRIP 0000040
-#define INLCR 0000100
-#define IGNCR 0000200
-#define ICRNL 0000400
-#define IUCLC 0001000
-#define IXON 0002000
-#define IXANY 0004000
-#define IXOFF 0010000
-#define IMAXBEL 0020000
-#define IUTF8 0040000
-
-#define OPOST 0000001
-#define OLCUC 0000002
-#define ONLCR 0000004
-#define OCRNL 0000010
-#define ONOCR 0000020
-#define ONLRET 0000040
-#define OFILL 0000100
-#define OFDEL 0000200
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)
-#define NLDLY 0000400
-#define NL0 0000000
-#define NL1 0000400
-#define CRDLY 0003000
-#define CR0 0000000
-#define CR1 0001000
-#define CR2 0002000
-#define CR3 0003000
-#define TABDLY 0014000
-#define TAB0 0000000
-#define TAB1 0004000
-#define TAB2 0010000
-#define TAB3 0014000
-#define BSDLY 0020000
-#define BS0 0000000
-#define BS1 0020000
-#define FFDLY 0100000
-#define FF0 0000000
-#define FF1 0100000
-#endif
-
-#define VTDLY 0040000
-#define VT0 0000000
-#define VT1 0040000
-
-#define B0 0000000
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
-
-#define B57600 0010001
-#define B115200 0010002
-#define B230400 0010003
-#define B460800 0010004
-#define B500000 0010005
-#define B576000 0010006
-#define B921600 0010007
-#define B1000000 0010010
-#define B1152000 0010011
-#define B1500000 0010012
-#define B2000000 0010013
-#define B2500000 0010014
-#define B3000000 0010015
-#define B3500000 0010016
-#define B4000000 0010017
-
-#define CSIZE 0000060
-#define CS5 0000000
-#define CS6 0000020
-#define CS7 0000040
-#define CS8 0000060
-#define CSTOPB 0000100
-#define CREAD 0000200
-#define PARENB 0000400
-#define PARODD 0001000
-#define HUPCL 0002000
-#define CLOCAL 0004000
-
-#define ISIG 0000001
-#define ICANON 0000002
-#define ECHO 0000010
-#define ECHOE 0000020
-#define ECHOK 0000040
-#define ECHONL 0000100
-#define NOFLSH 0000200
-#define TOSTOP 0000400
-#define IEXTEN 0100000
-
-#define TCOOFF 0
-#define TCOON 1
-#define TCIOFF 2
-#define TCION 3
-
-#define TCIFLUSH 0
-#define TCOFLUSH 1
-#define TCIOFLUSH 2
-
-#define TCSANOW 0
-#define TCSADRAIN 1
-#define TCSAFLUSH 2
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define EXTA 0000016
-#define EXTB 0000017
-#define CBAUD 0010017
-#define CBAUDEX 0010000
-#define CIBAUD 002003600000
-#define CMSPAR 010000000000
-#define CRTSCTS 020000000000
-
-#define XCASE 0000004
-#define ECHOCTL 0001000
-#define ECHOPRT 0002000
-#define ECHOKE 0004000
-#define FLUSHO 0010000
-#define PENDIN 0040000
-#define EXTPROC 0200000
-
-#define XTABS 0014000
-#endif
diff --git a/musl/bits/user.h b/musl/bits/user.h
deleted file mode 100644
index b328edf..0000000
--- a/musl/bits/user.h
+++ /dev/null
@@ -1,38 +0,0 @@
-typedef struct user_fpregs_struct {
- uint16_t cwd, swd, ftw, fop;
- uint64_t rip, rdp;
- uint32_t mxcsr, mxcr_mask;
- uint32_t st_space[32], xmm_space[64], padding[24];
-} elf_fpregset_t;
-
-struct user_regs_struct {
- unsigned long r15, r14, r13, r12, rbp, rbx, r11, r10, r9, r8;
- unsigned long rax, rcx, rdx, rsi, rdi, orig_rax, rip;
- unsigned long cs, eflags, rsp, ss, fs_base, gs_base, ds, es, fs, gs;
-};
-#define ELF_NGREG 27
-typedef unsigned long long elf_greg_t, elf_gregset_t[ELF_NGREG];
-
-struct user {
- struct user_regs_struct regs;
- int u_fpvalid;
- struct user_fpregs_struct i387;
- unsigned long u_tsize;
- unsigned long u_dsize;
- unsigned long u_ssize;
- unsigned long start_code;
- unsigned long start_stack;
- long signal;
- int reserved;
- struct user_regs_struct *u_ar0;
- struct user_fpregs_struct *u_fpstate;
- unsigned long magic;
- char u_comm[32];
- unsigned long u_debugreg[8];
-};
-
-#define PAGE_MASK (~(PAGESIZE-1))
-#define NBPG PAGESIZE
-#define UPAGES 1
-#define HOST_TEXT_START_ADDR (u.start_code)
-#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
diff --git a/musl/bits/vt.h b/musl/bits/vt.h
deleted file mode 100644
index 834abfb..0000000
--- a/musl/bits/vt.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/vt.h>
diff --git a/musl/byteswap.h b/musl/byteswap.h
deleted file mode 100644
index 00b9df3..0000000
--- a/musl/byteswap.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _BYTESWAP_H
-#define _BYTESWAP_H
-
-#include <features.h>
-#include <stdint.h>
-
-static __inline uint16_t __bswap_16(uint16_t __x)
-{
- return __x<<8 | __x>>8;
-}
-
-static __inline uint32_t __bswap_32(uint32_t __x)
-{
- return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;
-}
-
-static __inline uint64_t __bswap_64(uint64_t __x)
-{
- return __bswap_32(__x)+0ULL<<32 | __bswap_32(__x>>32);
-}
-
-#define bswap_16(x) __bswap_16(x)
-#define bswap_32(x) __bswap_32(x)
-#define bswap_64(x) __bswap_64(x)
-
-#endif
diff --git a/musl/complex.h b/musl/complex.h
deleted file mode 100644
index 008b3c7..0000000
--- a/musl/complex.h
+++ /dev/null
@@ -1,133 +0,0 @@
-#ifndef _COMPLEX_H
-#define _COMPLEX_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define complex _Complex
-#ifdef __GNUC__
-#define _Complex_I (__extension__ (0.0f+1.0fi))
-#else
-#define _Complex_I (0.0f+1.0fi)
-#endif
-#define I _Complex_I
-
-double complex cacos(double complex);
-float complex cacosf(float complex);
-long double complex cacosl(long double complex);
-
-double complex casin(double complex);
-float complex casinf(float complex);
-long double complex casinl(long double complex);
-
-double complex catan(double complex);
-float complex catanf(float complex);
-long double complex catanl(long double complex);
-
-double complex ccos(double complex);
-float complex ccosf(float complex);
-long double complex ccosl(long double complex);
-
-double complex csin(double complex);
-float complex csinf(float complex);
-long double complex csinl(long double complex);
-
-double complex ctan(double complex);
-float complex ctanf(float complex);
-long double complex ctanl(long double complex);
-
-double complex cacosh(double complex);
-float complex cacoshf(float complex);
-long double complex cacoshl(long double complex);
-
-double complex casinh(double complex);
-float complex casinhf(float complex);
-long double complex casinhl(long double complex);
-
-double complex catanh(double complex);
-float complex catanhf(float complex);
-long double complex catanhl(long double complex);
-
-double complex ccosh(double complex);
-float complex ccoshf(float complex);
-long double complex ccoshl(long double complex);
-
-double complex csinh(double complex);
-float complex csinhf(float complex);
-long double complex csinhl(long double complex);
-
-double complex ctanh(double complex);
-float complex ctanhf(float complex);
-long double complex ctanhl(long double complex);
-
-double complex cexp(double complex);
-float complex cexpf(float complex);
-long double complex cexpl(long double complex);
-
-double complex clog(double complex);
-float complex clogf(float complex);
-long double complex clogl(long double complex);
-
-double cabs(double complex);
-float cabsf(float complex);
-long double cabsl(long double complex);
-
-double complex cpow(double complex, double complex);
-float complex cpowf(float complex, float complex);
-long double complex cpowl(long double complex, long double complex);
-
-double complex csqrt(double complex);
-float complex csqrtf(float complex);
-long double complex csqrtl(long double complex);
-
-double carg(double complex);
-float cargf(float complex);
-long double cargl(long double complex);
-
-double cimag(double complex);
-float cimagf(float complex);
-long double cimagl(long double complex);
-
-double complex conj(double complex);
-float complex conjf(float complex);
-long double complex conjl(long double complex);
-
-double complex cproj(double complex);
-float complex cprojf(float complex);
-long double complex cprojl(long double complex);
-
-double creal(double complex);
-float crealf(float complex);
-long double creall(long double complex);
-
-#ifndef __cplusplus
-#define __CIMAG(x, t) \
- (+(union { _Complex t __z; t __xy[2]; }){(_Complex t)(x)}.__xy[1])
-
-#define creal(x) ((double)(x))
-#define crealf(x) ((float)(x))
-#define creall(x) ((long double)(x))
-
-#define cimag(x) __CIMAG(x, double)
-#define cimagf(x) __CIMAG(x, float)
-#define cimagl(x) __CIMAG(x, long double)
-#endif
-
-#if __STDC_VERSION__ >= 201112L
-#if defined(_Imaginary_I)
-#define __CMPLX(x, y, t) ((t)(x) + _Imaginary_I*(t)(y))
-#elif defined(__clang__)
-#define __CMPLX(x, y, t) (+(_Complex t){ (t)(x), (t)(y) })
-#else
-#define __CMPLX(x, y, t) (__builtin_complex((t)(x), (t)(y)))
-#endif
-#define CMPLX(x, y) __CMPLX(x, y, double)
-#define CMPLXF(x, y) __CMPLX(x, y, float)
-#define CMPLXL(x, y) __CMPLX(x, y, long double)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/cpio.h b/musl/cpio.h
deleted file mode 100644
index 39a1f8b..0000000
--- a/musl/cpio.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _CPIO_H
-#define _CPIO_H
-
-#define MAGIC "070707"
-
-#define C_IRUSR 000400
-#define C_IWUSR 000200
-#define C_IXUSR 000100
-#define C_IRGRP 000040
-#define C_IWGRP 000020
-#define C_IXGRP 000010
-#define C_IROTH 000004
-#define C_IWOTH 000002
-#define C_IXOTH 000001
-
-#define C_ISUID 004000
-#define C_ISGID 002000
-#define C_ISVTX 001000
-
-#define C_ISBLK 060000
-#define C_ISCHR 020000
-#define C_ISDIR 040000
-#define C_ISFIFO 010000
-#define C_ISSOCK 0140000
-#define C_ISLNK 0120000
-#define C_ISCTG 0110000
-#define C_ISREG 0100000
-
-#endif
diff --git a/musl/crypt.h b/musl/crypt.h
deleted file mode 100644
index 07de216..0000000
--- a/musl/crypt.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _CRYPT_H
-#define _CRYPT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct crypt_data {
- int initialized;
- char __buf[256];
-};
-
-char *crypt(const char *, const char *);
-char *crypt_r(const char *, const char *, struct crypt_data *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/ctype.h b/musl/ctype.h
deleted file mode 100644
index 32bcef4..0000000
--- a/musl/ctype.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef _CTYPE_H
-#define _CTYPE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-int isalnum(int);
-int isalpha(int);
-int isblank(int);
-int iscntrl(int);
-int isdigit(int);
-int isgraph(int);
-int islower(int);
-int isprint(int);
-int ispunct(int);
-int isspace(int);
-int isupper(int);
-int isxdigit(int);
-int tolower(int);
-int toupper(int);
-
-#ifndef __cplusplus
-static __inline int __isspace(int _c)
-{
- return _c == ' ' || (unsigned)_c-'\t' < 5;
-}
-
-#define isalpha(a) (0 ? isalpha(a) : (((unsigned)(a)|32)-'a') < 26)
-#define isdigit(a) (0 ? isdigit(a) : ((unsigned)(a)-'0') < 10)
-#define islower(a) (0 ? islower(a) : ((unsigned)(a)-'a') < 26)
-#define isupper(a) (0 ? isupper(a) : ((unsigned)(a)-'A') < 26)
-#define isprint(a) (0 ? isprint(a) : ((unsigned)(a)-0x20) < 0x5f)
-#define isgraph(a) (0 ? isgraph(a) : ((unsigned)(a)-0x21) < 0x5e)
-#define isspace(a) __isspace(a)
-#endif
-
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-
-#define __NEED_locale_t
-#include <bits/alltypes.h>
-
-int isalnum_l(int, locale_t);
-int isalpha_l(int, locale_t);
-int isblank_l(int, locale_t);
-int iscntrl_l(int, locale_t);
-int isdigit_l(int, locale_t);
-int isgraph_l(int, locale_t);
-int islower_l(int, locale_t);
-int isprint_l(int, locale_t);
-int ispunct_l(int, locale_t);
-int isspace_l(int, locale_t);
-int isupper_l(int, locale_t);
-int isxdigit_l(int, locale_t);
-int tolower_l(int, locale_t);
-int toupper_l(int, locale_t);
-
-int isascii(int);
-int toascii(int);
-#define _tolower(a) ((a)|0x20)
-#define _toupper(a) ((a)&0x5f)
-#ifndef __cplusplus
-#define isascii(a) (0 ? isascii(a) : (unsigned)(a) < 128)
-#endif
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/dirent.h b/musl/dirent.h
deleted file mode 100644
index 7fa60e0..0000000
--- a/musl/dirent.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef _DIRENT_H
-#define _DIRENT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_ino_t
-#define __NEED_off_t
-#define __NEED_size_t
-#define __NEED_ssize_t
-
-#include <bits/alltypes.h>
-
-#include <bits/dirent.h>
-
-typedef unsigned short reclen_t;
-
-struct posix_dent {
- ino_t d_ino;
- off_t d_off;
- reclen_t d_reclen;
- unsigned char d_type;
- char d_name[];
-};
-
-typedef struct __dirstream DIR;
-
-#define d_fileno d_ino
-
-int closedir(DIR *);
-DIR *fdopendir(int);
-DIR *opendir(const char *);
-struct dirent *readdir(DIR *);
-int readdir_r(DIR *__restrict, struct dirent *__restrict, struct dirent **__restrict);
-void rewinddir(DIR *);
-int dirfd(DIR *);
-
-ssize_t posix_getdents(int, void *, size_t, int);
-
-int alphasort(const struct dirent **, const struct dirent **);
-int scandir(const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **));
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-void seekdir(DIR *, long);
-long telldir(DIR *);
-#endif
-
-#define DT_UNKNOWN 0
-#define DT_FIFO 1
-#define DT_CHR 2
-#define DT_DIR 4
-#define DT_BLK 6
-#define DT_REG 8
-#define DT_LNK 10
-#define DT_SOCK 12
-#define DT_WHT 14
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define IFTODT(x) ((x)>>12 & 017)
-#define DTTOIF(x) ((x)<<12)
-int getdents(int, struct dirent *, size_t);
-#endif
-
-#ifdef _GNU_SOURCE
-int versionsort(const struct dirent **, const struct dirent **);
-#endif
-
-#if defined(_LARGEFILE64_SOURCE)
-#define dirent64 dirent
-#define readdir64 readdir
-#define readdir64_r readdir_r
-#define scandir64 scandir
-#define alphasort64 alphasort
-#define versionsort64 versionsort
-#define off64_t off_t
-#define ino64_t ino_t
-#define getdents64 getdents
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/dlfcn.h b/musl/dlfcn.h
deleted file mode 100644
index 13ab71d..0000000
--- a/musl/dlfcn.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef _DLFCN_H
-#define _DLFCN_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define RTLD_LAZY 1
-#define RTLD_NOW 2
-#define RTLD_NOLOAD 4
-#define RTLD_NODELETE 4096
-#define RTLD_GLOBAL 256
-#define RTLD_LOCAL 0
-
-#define RTLD_NEXT ((void *)-1)
-#define RTLD_DEFAULT ((void *)0)
-
-#define RTLD_DI_LINKMAP 2
-
-int dlclose(void *);
-char *dlerror(void);
-void *dlopen(const char *, int);
-void *dlsym(void *__restrict, const char *__restrict);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-typedef struct {
- const char *dli_fname;
- void *dli_fbase;
- const char *dli_sname;
- void *dli_saddr;
-} Dl_info;
-int dladdr(const void *, Dl_info *);
-int dlinfo(void *, int, void *);
-#endif
-
-#if _REDIR_TIME64
-__REDIR(dlsym, __dlsym_time64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/elf.h b/musl/elf.h
deleted file mode 100644
index 3d5e13e..0000000
--- a/musl/elf.h
+++ /dev/null
@@ -1,3414 +0,0 @@
-#ifndef _ELF_H
-#define _ELF_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-
-typedef uint16_t Elf32_Half;
-typedef uint16_t Elf64_Half;
-
-typedef uint32_t Elf32_Word;
-typedef int32_t Elf32_Sword;
-typedef uint32_t Elf64_Word;
-typedef int32_t Elf64_Sword;
-
-typedef uint64_t Elf32_Xword;
-typedef int64_t Elf32_Sxword;
-typedef uint64_t Elf64_Xword;
-typedef int64_t Elf64_Sxword;
-
-typedef uint32_t Elf32_Addr;
-typedef uint64_t Elf64_Addr;
-
-typedef uint32_t Elf32_Off;
-typedef uint64_t Elf64_Off;
-
-typedef uint16_t Elf32_Section;
-typedef uint16_t Elf64_Section;
-
-typedef Elf32_Half Elf32_Versym;
-typedef Elf64_Half Elf64_Versym;
-
-#define EI_NIDENT (16)
-
-typedef struct {
- unsigned char e_ident[EI_NIDENT];
- Elf32_Half e_type;
- Elf32_Half e_machine;
- Elf32_Word e_version;
- Elf32_Addr e_entry;
- Elf32_Off e_phoff;
- Elf32_Off e_shoff;
- Elf32_Word e_flags;
- Elf32_Half e_ehsize;
- Elf32_Half e_phentsize;
- Elf32_Half e_phnum;
- Elf32_Half e_shentsize;
- Elf32_Half e_shnum;
- Elf32_Half e_shstrndx;
-} Elf32_Ehdr;
-
-typedef struct {
- unsigned char e_ident[EI_NIDENT];
- Elf64_Half e_type;
- Elf64_Half e_machine;
- Elf64_Word e_version;
- Elf64_Addr e_entry;
- Elf64_Off e_phoff;
- Elf64_Off e_shoff;
- Elf64_Word e_flags;
- Elf64_Half e_ehsize;
- Elf64_Half e_phentsize;
- Elf64_Half e_phnum;
- Elf64_Half e_shentsize;
- Elf64_Half e_shnum;
- Elf64_Half e_shstrndx;
-} Elf64_Ehdr;
-
-#define EI_MAG0 0
-#define ELFMAG0 0x7f
-
-#define EI_MAG1 1
-#define ELFMAG1 'E'
-
-#define EI_MAG2 2
-#define ELFMAG2 'L'
-
-#define EI_MAG3 3
-#define ELFMAG3 'F'
-
-
-#define ELFMAG "\177ELF"
-#define SELFMAG 4
-
-#define EI_CLASS 4
-#define ELFCLASSNONE 0
-#define ELFCLASS32 1
-#define ELFCLASS64 2
-#define ELFCLASSNUM 3
-
-#define EI_DATA 5
-#define ELFDATANONE 0
-#define ELFDATA2LSB 1
-#define ELFDATA2MSB 2
-#define ELFDATANUM 3
-
-#define EI_VERSION 6
-
-
-#define EI_OSABI 7
-#define ELFOSABI_NONE 0
-#define ELFOSABI_SYSV 0
-#define ELFOSABI_HPUX 1
-#define ELFOSABI_NETBSD 2
-#define ELFOSABI_LINUX 3
-#define ELFOSABI_GNU 3
-#define ELFOSABI_SOLARIS 6
-#define ELFOSABI_AIX 7
-#define ELFOSABI_IRIX 8
-#define ELFOSABI_FREEBSD 9
-#define ELFOSABI_TRU64 10
-#define ELFOSABI_MODESTO 11
-#define ELFOSABI_OPENBSD 12
-#define ELFOSABI_ARM 97
-#define ELFOSABI_STANDALONE 255
-
-#define EI_ABIVERSION 8
-
-#define EI_PAD 9
-
-
-
-#define ET_NONE 0
-#define ET_REL 1
-#define ET_EXEC 2
-#define ET_DYN 3
-#define ET_CORE 4
-#define ET_NUM 5
-#define ET_LOOS 0xfe00
-#define ET_HIOS 0xfeff
-#define ET_LOPROC 0xff00
-#define ET_HIPROC 0xffff
-
-
-
-#define EM_NONE 0
-#define EM_M32 1
-#define EM_SPARC 2
-#define EM_386 3
-#define EM_68K 4
-#define EM_88K 5
-#define EM_860 7
-#define EM_MIPS 8
-#define EM_S370 9
-#define EM_MIPS_RS3_LE 10
-
-#define EM_PARISC 15
-#define EM_VPP500 17
-#define EM_SPARC32PLUS 18
-#define EM_960 19
-#define EM_PPC 20
-#define EM_PPC64 21
-#define EM_S390 22
-
-#define EM_V800 36
-#define EM_FR20 37
-#define EM_RH32 38
-#define EM_RCE 39
-#define EM_ARM 40
-#define EM_FAKE_ALPHA 41
-#define EM_SH 42
-#define EM_SPARCV9 43
-#define EM_TRICORE 44
-#define EM_ARC 45
-#define EM_H8_300 46
-#define EM_H8_300H 47
-#define EM_H8S 48
-#define EM_H8_500 49
-#define EM_IA_64 50
-#define EM_MIPS_X 51
-#define EM_COLDFIRE 52
-#define EM_68HC12 53
-#define EM_MMA 54
-#define EM_PCP 55
-#define EM_NCPU 56
-#define EM_NDR1 57
-#define EM_STARCORE 58
-#define EM_ME16 59
-#define EM_ST100 60
-#define EM_TINYJ 61
-#define EM_X86_64 62
-#define EM_PDSP 63
-
-#define EM_FX66 66
-#define EM_ST9PLUS 67
-#define EM_ST7 68
-#define EM_68HC16 69
-#define EM_68HC11 70
-#define EM_68HC08 71
-#define EM_68HC05 72
-#define EM_SVX 73
-#define EM_ST19 74
-#define EM_VAX 75
-#define EM_CRIS 76
-#define EM_JAVELIN 77
-#define EM_FIREPATH 78
-#define EM_ZSP 79
-#define EM_MMIX 80
-#define EM_HUANY 81
-#define EM_PRISM 82
-#define EM_AVR 83
-#define EM_FR30 84
-#define EM_D10V 85
-#define EM_D30V 86
-#define EM_V850 87
-#define EM_M32R 88
-#define EM_MN10300 89
-#define EM_MN10200 90
-#define EM_PJ 91
-#define EM_OR1K 92
-#define EM_OPENRISC 92
-#define EM_ARC_A5 93
-#define EM_ARC_COMPACT 93
-#define EM_XTENSA 94
-#define EM_VIDEOCORE 95
-#define EM_TMM_GPP 96
-#define EM_NS32K 97
-#define EM_TPC 98
-#define EM_SNP1K 99
-#define EM_ST200 100
-#define EM_IP2K 101
-#define EM_MAX 102
-#define EM_CR 103
-#define EM_F2MC16 104
-#define EM_MSP430 105
-#define EM_BLACKFIN 106
-#define EM_SE_C33 107
-#define EM_SEP 108
-#define EM_ARCA 109
-#define EM_UNICORE 110
-#define EM_EXCESS 111
-#define EM_DXP 112
-#define EM_ALTERA_NIOS2 113
-#define EM_CRX 114
-#define EM_XGATE 115
-#define EM_C166 116
-#define EM_M16C 117
-#define EM_DSPIC30F 118
-#define EM_CE 119
-#define EM_M32C 120
-#define EM_TSK3000 131
-#define EM_RS08 132
-#define EM_SHARC 133
-#define EM_ECOG2 134
-#define EM_SCORE7 135
-#define EM_DSP24 136
-#define EM_VIDEOCORE3 137
-#define EM_LATTICEMICO32 138
-#define EM_SE_C17 139
-#define EM_TI_C6000 140
-#define EM_TI_C2000 141
-#define EM_TI_C5500 142
-#define EM_TI_ARP32 143
-#define EM_TI_PRU 144
-#define EM_MMDSP_PLUS 160
-#define EM_CYPRESS_M8C 161
-#define EM_R32C 162
-#define EM_TRIMEDIA 163
-#define EM_QDSP6 164
-#define EM_8051 165
-#define EM_STXP7X 166
-#define EM_NDS32 167
-#define EM_ECOG1X 168
-#define EM_MAXQ30 169
-#define EM_XIMO16 170
-#define EM_MANIK 171
-#define EM_CRAYNV2 172
-#define EM_RX 173
-#define EM_METAG 174
-#define EM_MCST_ELBRUS 175
-#define EM_ECOG16 176
-#define EM_CR16 177
-#define EM_ETPU 178
-#define EM_SLE9X 179
-#define EM_L10M 180
-#define EM_K10M 181
-#define EM_AARCH64 183
-#define EM_AVR32 185
-#define EM_STM8 186
-#define EM_TILE64 187
-#define EM_TILEPRO 188
-#define EM_MICROBLAZE 189
-#define EM_CUDA 190
-#define EM_TILEGX 191
-#define EM_CLOUDSHIELD 192
-#define EM_COREA_1ST 193
-#define EM_COREA_2ND 194
-#define EM_ARC_COMPACT2 195
-#define EM_OPEN8 196
-#define EM_RL78 197
-#define EM_VIDEOCORE5 198
-#define EM_78KOR 199
-#define EM_56800EX 200
-#define EM_BA1 201
-#define EM_BA2 202
-#define EM_XCORE 203
-#define EM_MCHP_PIC 204
-#define EM_KM32 210
-#define EM_KMX32 211
-#define EM_EMX16 212
-#define EM_EMX8 213
-#define EM_KVARC 214
-#define EM_CDP 215
-#define EM_COGE 216
-#define EM_COOL 217
-#define EM_NORC 218
-#define EM_CSR_KALIMBA 219
-#define EM_Z80 220
-#define EM_VISIUM 221
-#define EM_FT32 222
-#define EM_MOXIE 223
-#define EM_AMDGPU 224
-#define EM_RISCV 243
-#define EM_BPF 247
-#define EM_CSKY 252
-#define EM_LOONGARCH 258
-#define EM_NUM 259
-
-#define EM_ALPHA 0x9026
-
-#define EV_NONE 0
-#define EV_CURRENT 1
-#define EV_NUM 2
-
-typedef struct {
- Elf32_Word sh_name;
- Elf32_Word sh_type;
- Elf32_Word sh_flags;
- Elf32_Addr sh_addr;
- Elf32_Off sh_offset;
- Elf32_Word sh_size;
- Elf32_Word sh_link;
- Elf32_Word sh_info;
- Elf32_Word sh_addralign;
- Elf32_Word sh_entsize;
-} Elf32_Shdr;
-
-typedef struct {
- Elf64_Word sh_name;
- Elf64_Word sh_type;
- Elf64_Xword sh_flags;
- Elf64_Addr sh_addr;
- Elf64_Off sh_offset;
- Elf64_Xword sh_size;
- Elf64_Word sh_link;
- Elf64_Word sh_info;
- Elf64_Xword sh_addralign;
- Elf64_Xword sh_entsize;
-} Elf64_Shdr;
-
-
-
-#define SHN_UNDEF 0
-#define SHN_LORESERVE 0xff00
-#define SHN_LOPROC 0xff00
-#define SHN_BEFORE 0xff00
-
-#define SHN_AFTER 0xff01
-
-#define SHN_HIPROC 0xff1f
-#define SHN_LOOS 0xff20
-#define SHN_HIOS 0xff3f
-#define SHN_ABS 0xfff1
-#define SHN_COMMON 0xfff2
-#define SHN_XINDEX 0xffff
-#define SHN_HIRESERVE 0xffff
-
-
-
-#define SHT_NULL 0
-#define SHT_PROGBITS 1
-#define SHT_SYMTAB 2
-#define SHT_STRTAB 3
-#define SHT_RELA 4
-#define SHT_HASH 5
-#define SHT_DYNAMIC 6
-#define SHT_NOTE 7
-#define SHT_NOBITS 8
-#define SHT_REL 9
-#define SHT_SHLIB 10
-#define SHT_DYNSYM 11
-#define SHT_INIT_ARRAY 14
-#define SHT_FINI_ARRAY 15
-#define SHT_PREINIT_ARRAY 16
-#define SHT_GROUP 17
-#define SHT_SYMTAB_SHNDX 18
-#define SHT_RELR 19
-#define SHT_NUM 20
-#define SHT_LOOS 0x60000000
-#define SHT_GNU_ATTRIBUTES 0x6ffffff5
-#define SHT_GNU_HASH 0x6ffffff6
-#define SHT_GNU_LIBLIST 0x6ffffff7
-#define SHT_CHECKSUM 0x6ffffff8
-#define SHT_LOSUNW 0x6ffffffa
-#define SHT_SUNW_move 0x6ffffffa
-#define SHT_SUNW_COMDAT 0x6ffffffb
-#define SHT_SUNW_syminfo 0x6ffffffc
-#define SHT_GNU_verdef 0x6ffffffd
-#define SHT_GNU_verneed 0x6ffffffe
-#define SHT_GNU_versym 0x6fffffff
-#define SHT_HISUNW 0x6fffffff
-#define SHT_HIOS 0x6fffffff
-#define SHT_LOPROC 0x70000000
-#define SHT_HIPROC 0x7fffffff
-#define SHT_LOUSER 0x80000000
-#define SHT_HIUSER 0x8fffffff
-
-#define SHF_WRITE (1 << 0)
-#define SHF_ALLOC (1 << 1)
-#define SHF_EXECINSTR (1 << 2)
-#define SHF_MERGE (1 << 4)
-#define SHF_STRINGS (1 << 5)
-#define SHF_INFO_LINK (1 << 6)
-#define SHF_LINK_ORDER (1 << 7)
-#define SHF_OS_NONCONFORMING (1 << 8)
-
-#define SHF_GROUP (1 << 9)
-#define SHF_TLS (1 << 10)
-#define SHF_COMPRESSED (1 << 11)
-#define SHF_MASKOS 0x0ff00000
-#define SHF_MASKPROC 0xf0000000
-#define SHF_ORDERED (1 << 30)
-#define SHF_EXCLUDE (1U << 31)
-
-typedef struct {
- Elf32_Word ch_type;
- Elf32_Word ch_size;
- Elf32_Word ch_addralign;
-} Elf32_Chdr;
-
-typedef struct {
- Elf64_Word ch_type;
- Elf64_Word ch_reserved;
- Elf64_Xword ch_size;
- Elf64_Xword ch_addralign;
-} Elf64_Chdr;
-
-#define ELFCOMPRESS_ZLIB 1
-#define ELFCOMPRESS_ZSTD 2
-#define ELFCOMPRESS_LOOS 0x60000000
-#define ELFCOMPRESS_HIOS 0x6fffffff
-#define ELFCOMPRESS_LOPROC 0x70000000
-#define ELFCOMPRESS_HIPROC 0x7fffffff
-
-
-#define GRP_COMDAT 0x1
-
-typedef struct {
- Elf32_Word st_name;
- Elf32_Addr st_value;
- Elf32_Word st_size;
- unsigned char st_info;
- unsigned char st_other;
- Elf32_Section st_shndx;
-} Elf32_Sym;
-
-typedef struct {
- Elf64_Word st_name;
- unsigned char st_info;
- unsigned char st_other;
- Elf64_Section st_shndx;
- Elf64_Addr st_value;
- Elf64_Xword st_size;
-} Elf64_Sym;
-
-typedef struct {
- Elf32_Half si_boundto;
- Elf32_Half si_flags;
-} Elf32_Syminfo;
-
-typedef struct {
- Elf64_Half si_boundto;
- Elf64_Half si_flags;
-} Elf64_Syminfo;
-
-#define SYMINFO_BT_SELF 0xffff
-#define SYMINFO_BT_PARENT 0xfffe
-#define SYMINFO_BT_LOWRESERVE 0xff00
-
-#define SYMINFO_FLG_DIRECT 0x0001
-#define SYMINFO_FLG_PASSTHRU 0x0002
-#define SYMINFO_FLG_COPY 0x0004
-#define SYMINFO_FLG_LAZYLOAD 0x0008
-
-#define SYMINFO_NONE 0
-#define SYMINFO_CURRENT 1
-#define SYMINFO_NUM 2
-
-#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
-#define ELF32_ST_TYPE(val) ((val) & 0xf)
-#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-
-#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
-#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
-#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
-
-#define STB_LOCAL 0
-#define STB_GLOBAL 1
-#define STB_WEAK 2
-#define STB_NUM 3
-#define STB_LOOS 10
-#define STB_GNU_UNIQUE 10
-#define STB_HIOS 12
-#define STB_LOPROC 13
-#define STB_HIPROC 15
-
-#define STT_NOTYPE 0
-#define STT_OBJECT 1
-#define STT_FUNC 2
-#define STT_SECTION 3
-#define STT_FILE 4
-#define STT_COMMON 5
-#define STT_TLS 6
-#define STT_NUM 7
-#define STT_LOOS 10
-#define STT_GNU_IFUNC 10
-#define STT_HIOS 12
-#define STT_LOPROC 13
-#define STT_HIPROC 15
-
-#define STN_UNDEF 0
-
-#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
-#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
-
-#define STV_DEFAULT 0
-#define STV_INTERNAL 1
-#define STV_HIDDEN 2
-#define STV_PROTECTED 3
-
-
-
-
-typedef struct {
- Elf32_Addr r_offset;
- Elf32_Word r_info;
-} Elf32_Rel;
-
-typedef struct {
- Elf64_Addr r_offset;
- Elf64_Xword r_info;
-} Elf64_Rel;
-
-
-
-typedef struct {
- Elf32_Addr r_offset;
- Elf32_Word r_info;
- Elf32_Sword r_addend;
-} Elf32_Rela;
-
-typedef struct {
- Elf64_Addr r_offset;
- Elf64_Xword r_info;
- Elf64_Sxword r_addend;
-} Elf64_Rela;
-
-
-
-typedef Elf32_Word Elf32_Relr;
-typedef Elf64_Xword Elf64_Relr;
-
-
-
-#define ELF32_R_SYM(val) ((val) >> 8)
-#define ELF32_R_TYPE(val) ((val) & 0xff)
-#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
-
-#define ELF64_R_SYM(i) ((i) >> 32)
-#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
-#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
-
-
-
-typedef struct {
- Elf32_Word p_type;
- Elf32_Off p_offset;
- Elf32_Addr p_vaddr;
- Elf32_Addr p_paddr;
- Elf32_Word p_filesz;
- Elf32_Word p_memsz;
- Elf32_Word p_flags;
- Elf32_Word p_align;
-} Elf32_Phdr;
-
-typedef struct {
- Elf64_Word p_type;
- Elf64_Word p_flags;
- Elf64_Off p_offset;
- Elf64_Addr p_vaddr;
- Elf64_Addr p_paddr;
- Elf64_Xword p_filesz;
- Elf64_Xword p_memsz;
- Elf64_Xword p_align;
-} Elf64_Phdr;
-
-
-
-#define PT_NULL 0
-#define PT_LOAD 1
-#define PT_DYNAMIC 2
-#define PT_INTERP 3
-#define PT_NOTE 4
-#define PT_SHLIB 5
-#define PT_PHDR 6
-#define PT_TLS 7
-#define PT_NUM 8
-#define PT_LOOS 0x60000000
-#define PT_GNU_EH_FRAME 0x6474e550
-#define PT_GNU_STACK 0x6474e551
-#define PT_GNU_RELRO 0x6474e552
-#define PT_GNU_PROPERTY 0x6474e553
-#define PT_LOSUNW 0x6ffffffa
-#define PT_SUNWBSS 0x6ffffffa
-#define PT_SUNWSTACK 0x6ffffffb
-#define PT_HISUNW 0x6fffffff
-#define PT_HIOS 0x6fffffff
-#define PT_LOPROC 0x70000000
-#define PT_HIPROC 0x7fffffff
-
-
-#define PN_XNUM 0xffff
-
-
-#define PF_X (1 << 0)
-#define PF_W (1 << 1)
-#define PF_R (1 << 2)
-#define PF_MASKOS 0x0ff00000
-#define PF_MASKPROC 0xf0000000
-
-
-
-#define NT_PRSTATUS 1
-#define NT_PRFPREG 2
-#define NT_FPREGSET 2
-#define NT_PRPSINFO 3
-#define NT_PRXREG 4
-#define NT_TASKSTRUCT 4
-#define NT_PLATFORM 5
-#define NT_AUXV 6
-#define NT_GWINDOWS 7
-#define NT_ASRS 8
-#define NT_PSTATUS 10
-#define NT_PSINFO 13
-#define NT_PRCRED 14
-#define NT_UTSNAME 15
-#define NT_LWPSTATUS 16
-#define NT_LWPSINFO 17
-#define NT_PRFPXREG 20
-#define NT_SIGINFO 0x53494749
-#define NT_FILE 0x46494c45
-#define NT_PRXFPREG 0x46e62b7f
-#define NT_PPC_VMX 0x100
-#define NT_PPC_SPE 0x101
-#define NT_PPC_VSX 0x102
-#define NT_PPC_TAR 0x103
-#define NT_PPC_PPR 0x104
-#define NT_PPC_DSCR 0x105
-#define NT_PPC_EBB 0x106
-#define NT_PPC_PMU 0x107
-#define NT_PPC_TM_CGPR 0x108
-#define NT_PPC_TM_CFPR 0x109
-#define NT_PPC_TM_CVMX 0x10a
-#define NT_PPC_TM_CVSX 0x10b
-#define NT_PPC_TM_SPR 0x10c
-#define NT_PPC_TM_CTAR 0x10d
-#define NT_PPC_TM_CPPR 0x10e
-#define NT_PPC_TM_CDSCR 0x10f
-#define NT_386_TLS 0x200
-#define NT_386_IOPERM 0x201
-#define NT_X86_XSTATE 0x202
-#define NT_S390_HIGH_GPRS 0x300
-#define NT_S390_TIMER 0x301
-#define NT_S390_TODCMP 0x302
-#define NT_S390_TODPREG 0x303
-#define NT_S390_CTRS 0x304
-#define NT_S390_PREFIX 0x305
-#define NT_S390_LAST_BREAK 0x306
-#define NT_S390_SYSTEM_CALL 0x307
-#define NT_S390_TDB 0x308
-#define NT_S390_VXRS_LOW 0x309
-#define NT_S390_VXRS_HIGH 0x30a
-#define NT_S390_GS_CB 0x30b
-#define NT_S390_GS_BC 0x30c
-#define NT_S390_RI_CB 0x30d
-#define NT_ARM_VFP 0x400
-#define NT_ARM_TLS 0x401
-#define NT_ARM_HW_BREAK 0x402
-#define NT_ARM_HW_WATCH 0x403
-#define NT_ARM_SYSTEM_CALL 0x404
-#define NT_ARM_SVE 0x405
-#define NT_ARM_PAC_MASK 0x406
-#define NT_ARM_PACA_KEYS 0x407
-#define NT_ARM_PACG_KEYS 0x408
-#define NT_ARM_TAGGED_ADDR_CTRL 0x409
-#define NT_ARM_PAC_ENABLED_KEYS 0x40a
-#define NT_METAG_CBUF 0x500
-#define NT_METAG_RPIPE 0x501
-#define NT_METAG_TLS 0x502
-#define NT_ARC_V2 0x600
-#define NT_VMCOREDD 0x700
-#define NT_MIPS_DSP 0x800
-#define NT_MIPS_FP_MODE 0x801
-#define NT_MIPS_MSA 0x802
-#define NT_RISCV_CSR 0x900
-#define NT_RISCV_VECTOR 0x901
-#define NT_VERSION 1
-#define NT_LOONGARCH_CPUCFG 0xa00
-#define NT_LOONGARCH_CSR 0xa01
-#define NT_LOONGARCH_LSX 0xa02
-#define NT_LOONGARCH_LASX 0xa03
-#define NT_LOONGARCH_LBT 0xa04
-
-
-
-
-typedef struct {
- Elf32_Sword d_tag;
- union {
- Elf32_Word d_val;
- Elf32_Addr d_ptr;
- } d_un;
-} Elf32_Dyn;
-
-typedef struct {
- Elf64_Sxword d_tag;
- union {
- Elf64_Xword d_val;
- Elf64_Addr d_ptr;
- } d_un;
-} Elf64_Dyn;
-
-
-
-#define DT_NULL 0
-#define DT_NEEDED 1
-#define DT_PLTRELSZ 2
-#define DT_PLTGOT 3
-#define DT_HASH 4
-#define DT_STRTAB 5
-#define DT_SYMTAB 6
-#define DT_RELA 7
-#define DT_RELASZ 8
-#define DT_RELAENT 9
-#define DT_STRSZ 10
-#define DT_SYMENT 11
-#define DT_INIT 12
-#define DT_FINI 13
-#define DT_SONAME 14
-#define DT_RPATH 15
-#define DT_SYMBOLIC 16
-#define DT_REL 17
-#define DT_RELSZ 18
-#define DT_RELENT 19
-#define DT_PLTREL 20
-#define DT_DEBUG 21
-#define DT_TEXTREL 22
-#define DT_JMPREL 23
-#define DT_BIND_NOW 24
-#define DT_INIT_ARRAY 25
-#define DT_FINI_ARRAY 26
-#define DT_INIT_ARRAYSZ 27
-#define DT_FINI_ARRAYSZ 28
-#define DT_RUNPATH 29
-#define DT_FLAGS 30
-#define DT_ENCODING 32
-#define DT_PREINIT_ARRAY 32
-#define DT_PREINIT_ARRAYSZ 33
-#define DT_SYMTAB_SHNDX 34
-#define DT_RELRSZ 35
-#define DT_RELR 36
-#define DT_RELRENT 37
-#define DT_NUM 38
-#define DT_LOOS 0x6000000d
-#define DT_HIOS 0x6ffff000
-#define DT_LOPROC 0x70000000
-#define DT_HIPROC 0x7fffffff
-#define DT_PROCNUM DT_MIPS_NUM
-
-#define DT_VALRNGLO 0x6ffffd00
-#define DT_GNU_PRELINKED 0x6ffffdf5
-#define DT_GNU_CONFLICTSZ 0x6ffffdf6
-#define DT_GNU_LIBLISTSZ 0x6ffffdf7
-#define DT_CHECKSUM 0x6ffffdf8
-#define DT_PLTPADSZ 0x6ffffdf9
-#define DT_MOVEENT 0x6ffffdfa
-#define DT_MOVESZ 0x6ffffdfb
-#define DT_FEATURE_1 0x6ffffdfc
-#define DT_POSFLAG_1 0x6ffffdfd
-
-#define DT_SYMINSZ 0x6ffffdfe
-#define DT_SYMINENT 0x6ffffdff
-#define DT_VALRNGHI 0x6ffffdff
-#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag))
-#define DT_VALNUM 12
-
-#define DT_ADDRRNGLO 0x6ffffe00
-#define DT_GNU_HASH 0x6ffffef5
-#define DT_TLSDESC_PLT 0x6ffffef6
-#define DT_TLSDESC_GOT 0x6ffffef7
-#define DT_GNU_CONFLICT 0x6ffffef8
-#define DT_GNU_LIBLIST 0x6ffffef9
-#define DT_CONFIG 0x6ffffefa
-#define DT_DEPAUDIT 0x6ffffefb
-#define DT_AUDIT 0x6ffffefc
-#define DT_PLTPAD 0x6ffffefd
-#define DT_MOVETAB 0x6ffffefe
-#define DT_SYMINFO 0x6ffffeff
-#define DT_ADDRRNGHI 0x6ffffeff
-#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag))
-#define DT_ADDRNUM 11
-
-
-
-#define DT_VERSYM 0x6ffffff0
-
-#define DT_RELACOUNT 0x6ffffff9
-#define DT_RELCOUNT 0x6ffffffa
-
-
-#define DT_FLAGS_1 0x6ffffffb
-#define DT_VERDEF 0x6ffffffc
-
-#define DT_VERDEFNUM 0x6ffffffd
-#define DT_VERNEED 0x6ffffffe
-
-#define DT_VERNEEDNUM 0x6fffffff
-#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
-#define DT_VERSIONTAGNUM 16
-
-
-
-#define DT_AUXILIARY 0x7ffffffd
-#define DT_FILTER 0x7fffffff
-#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
-#define DT_EXTRANUM 3
-
-
-#define DF_ORIGIN 0x00000001
-#define DF_SYMBOLIC 0x00000002
-#define DF_TEXTREL 0x00000004
-#define DF_BIND_NOW 0x00000008
-#define DF_STATIC_TLS 0x00000010
-
-
-
-#define DF_1_NOW 0x00000001
-#define DF_1_GLOBAL 0x00000002
-#define DF_1_GROUP 0x00000004
-#define DF_1_NODELETE 0x00000008
-#define DF_1_LOADFLTR 0x00000010
-#define DF_1_INITFIRST 0x00000020
-#define DF_1_NOOPEN 0x00000040
-#define DF_1_ORIGIN 0x00000080
-#define DF_1_DIRECT 0x00000100
-#define DF_1_TRANS 0x00000200
-#define DF_1_INTERPOSE 0x00000400
-#define DF_1_NODEFLIB 0x00000800
-#define DF_1_NODUMP 0x00001000
-#define DF_1_CONFALT 0x00002000
-#define DF_1_ENDFILTEE 0x00004000
-#define DF_1_DISPRELDNE 0x00008000
-#define DF_1_DISPRELPND 0x00010000
-#define DF_1_NODIRECT 0x00020000
-#define DF_1_IGNMULDEF 0x00040000
-#define DF_1_NOKSYMS 0x00080000
-#define DF_1_NOHDR 0x00100000
-#define DF_1_EDITED 0x00200000
-#define DF_1_NORELOC 0x00400000
-#define DF_1_SYMINTPOSE 0x00800000
-#define DF_1_GLOBAUDIT 0x01000000
-#define DF_1_SINGLETON 0x02000000
-#define DF_1_STUB 0x04000000
-#define DF_1_PIE 0x08000000
-
-#define DTF_1_PARINIT 0x00000001
-#define DTF_1_CONFEXP 0x00000002
-
-
-#define DF_P1_LAZYLOAD 0x00000001
-#define DF_P1_GROUPPERM 0x00000002
-
-
-
-
-typedef struct {
- Elf32_Half vd_version;
- Elf32_Half vd_flags;
- Elf32_Half vd_ndx;
- Elf32_Half vd_cnt;
- Elf32_Word vd_hash;
- Elf32_Word vd_aux;
- Elf32_Word vd_next;
-} Elf32_Verdef;
-
-typedef struct {
- Elf64_Half vd_version;
- Elf64_Half vd_flags;
- Elf64_Half vd_ndx;
- Elf64_Half vd_cnt;
- Elf64_Word vd_hash;
- Elf64_Word vd_aux;
- Elf64_Word vd_next;
-} Elf64_Verdef;
-
-
-
-#define VER_DEF_NONE 0
-#define VER_DEF_CURRENT 1
-#define VER_DEF_NUM 2
-
-
-#define VER_FLG_BASE 0x1
-#define VER_FLG_WEAK 0x2
-
-
-#define VER_NDX_LOCAL 0
-#define VER_NDX_GLOBAL 1
-#define VER_NDX_LORESERVE 0xff00
-#define VER_NDX_ELIMINATE 0xff01
-
-
-
-typedef struct {
- Elf32_Word vda_name;
- Elf32_Word vda_next;
-} Elf32_Verdaux;
-
-typedef struct {
- Elf64_Word vda_name;
- Elf64_Word vda_next;
-} Elf64_Verdaux;
-
-
-
-
-typedef struct {
- Elf32_Half vn_version;
- Elf32_Half vn_cnt;
- Elf32_Word vn_file;
- Elf32_Word vn_aux;
- Elf32_Word vn_next;
-} Elf32_Verneed;
-
-typedef struct {
- Elf64_Half vn_version;
- Elf64_Half vn_cnt;
- Elf64_Word vn_file;
- Elf64_Word vn_aux;
- Elf64_Word vn_next;
-} Elf64_Verneed;
-
-
-
-#define VER_NEED_NONE 0
-#define VER_NEED_CURRENT 1
-#define VER_NEED_NUM 2
-
-
-
-typedef struct {
- Elf32_Word vna_hash;
- Elf32_Half vna_flags;
- Elf32_Half vna_other;
- Elf32_Word vna_name;
- Elf32_Word vna_next;
-} Elf32_Vernaux;
-
-typedef struct {
- Elf64_Word vna_hash;
- Elf64_Half vna_flags;
- Elf64_Half vna_other;
- Elf64_Word vna_name;
- Elf64_Word vna_next;
-} Elf64_Vernaux;
-
-
-
-#define VER_FLG_WEAK 0x2
-
-
-
-typedef struct {
- uint32_t a_type;
- union {
- uint32_t a_val;
- } a_un;
-} Elf32_auxv_t;
-
-typedef struct {
- uint64_t a_type;
- union {
- uint64_t a_val;
- } a_un;
-} Elf64_auxv_t;
-
-
-
-#define AT_NULL 0
-#define AT_IGNORE 1
-#define AT_EXECFD 2
-#define AT_PHDR 3
-#define AT_PHENT 4
-#define AT_PHNUM 5
-#define AT_PAGESZ 6
-#define AT_BASE 7
-#define AT_FLAGS 8
-#define AT_ENTRY 9
-#define AT_NOTELF 10
-#define AT_UID 11
-#define AT_EUID 12
-#define AT_GID 13
-#define AT_EGID 14
-#define AT_CLKTCK 17
-
-
-#define AT_PLATFORM 15
-#define AT_HWCAP 16
-
-
-
-
-#define AT_FPUCW 18
-
-
-#define AT_DCACHEBSIZE 19
-#define AT_ICACHEBSIZE 20
-#define AT_UCACHEBSIZE 21
-
-
-
-#define AT_IGNOREPPC 22
-
-#define AT_SECURE 23
-
-#define AT_BASE_PLATFORM 24
-
-#define AT_RANDOM 25
-
-#define AT_HWCAP2 26
-
-#define AT_EXECFN 31
-
-
-
-#define AT_SYSINFO 32
-#define AT_SYSINFO_EHDR 33
-
-
-
-#define AT_L1I_CACHESHAPE 34
-#define AT_L1D_CACHESHAPE 35
-#define AT_L2_CACHESHAPE 36
-#define AT_L3_CACHESHAPE 37
-
-#define AT_L1I_CACHESIZE 40
-#define AT_L1I_CACHEGEOMETRY 41
-#define AT_L1D_CACHESIZE 42
-#define AT_L1D_CACHEGEOMETRY 43
-#define AT_L2_CACHESIZE 44
-#define AT_L2_CACHEGEOMETRY 45
-#define AT_L3_CACHESIZE 46
-#define AT_L3_CACHEGEOMETRY 47
-
-#define AT_MINSIGSTKSZ 51
-
-
-typedef struct {
- Elf32_Word n_namesz;
- Elf32_Word n_descsz;
- Elf32_Word n_type;
-} Elf32_Nhdr;
-
-typedef struct {
- Elf64_Word n_namesz;
- Elf64_Word n_descsz;
- Elf64_Word n_type;
-} Elf64_Nhdr;
-
-
-
-
-#define ELF_NOTE_SOLARIS "SUNW Solaris"
-
-
-#define ELF_NOTE_GNU "GNU"
-
-
-
-
-
-#define ELF_NOTE_PAGESIZE_HINT 1
-
-
-#define NT_GNU_ABI_TAG 1
-#define ELF_NOTE_ABI NT_GNU_ABI_TAG
-
-
-
-#define ELF_NOTE_OS_LINUX 0
-#define ELF_NOTE_OS_GNU 1
-#define ELF_NOTE_OS_SOLARIS2 2
-#define ELF_NOTE_OS_FREEBSD 3
-
-#define NT_GNU_BUILD_ID 3
-#define NT_GNU_GOLD_VERSION 4
-#define NT_GNU_PROPERTY_TYPE_0 5
-
-
-
-typedef struct {
- Elf32_Xword m_value;
- Elf32_Word m_info;
- Elf32_Word m_poffset;
- Elf32_Half m_repeat;
- Elf32_Half m_stride;
-} Elf32_Move;
-
-typedef struct {
- Elf64_Xword m_value;
- Elf64_Xword m_info;
- Elf64_Xword m_poffset;
- Elf64_Half m_repeat;
- Elf64_Half m_stride;
-} Elf64_Move;
-
-
-#define ELF32_M_SYM(info) ((info) >> 8)
-#define ELF32_M_SIZE(info) ((unsigned char) (info))
-#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
-
-#define ELF64_M_SYM(info) ELF32_M_SYM (info)
-#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
-#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
-
-#define EF_CPU32 0x00810000
-
-#define R_68K_NONE 0
-#define R_68K_32 1
-#define R_68K_16 2
-#define R_68K_8 3
-#define R_68K_PC32 4
-#define R_68K_PC16 5
-#define R_68K_PC8 6
-#define R_68K_GOT32 7
-#define R_68K_GOT16 8
-#define R_68K_GOT8 9
-#define R_68K_GOT32O 10
-#define R_68K_GOT16O 11
-#define R_68K_GOT8O 12
-#define R_68K_PLT32 13
-#define R_68K_PLT16 14
-#define R_68K_PLT8 15
-#define R_68K_PLT32O 16
-#define R_68K_PLT16O 17
-#define R_68K_PLT8O 18
-#define R_68K_COPY 19
-#define R_68K_GLOB_DAT 20
-#define R_68K_JMP_SLOT 21
-#define R_68K_RELATIVE 22
-#define R_68K_TLS_GD32 25
-#define R_68K_TLS_GD16 26
-#define R_68K_TLS_GD8 27
-#define R_68K_TLS_LDM32 28
-#define R_68K_TLS_LDM16 29
-#define R_68K_TLS_LDM8 30
-#define R_68K_TLS_LDO32 31
-#define R_68K_TLS_LDO16 32
-#define R_68K_TLS_LDO8 33
-#define R_68K_TLS_IE32 34
-#define R_68K_TLS_IE16 35
-#define R_68K_TLS_IE8 36
-#define R_68K_TLS_LE32 37
-#define R_68K_TLS_LE16 38
-#define R_68K_TLS_LE8 39
-#define R_68K_TLS_DTPMOD32 40
-#define R_68K_TLS_DTPREL32 41
-#define R_68K_TLS_TPREL32 42
-#define R_68K_NUM 43
-
-#define R_386_NONE 0
-#define R_386_32 1
-#define R_386_PC32 2
-#define R_386_GOT32 3
-#define R_386_PLT32 4
-#define R_386_COPY 5
-#define R_386_GLOB_DAT 6
-#define R_386_JMP_SLOT 7
-#define R_386_RELATIVE 8
-#define R_386_GOTOFF 9
-#define R_386_GOTPC 10
-#define R_386_32PLT 11
-#define R_386_TLS_TPOFF 14
-#define R_386_TLS_IE 15
-#define R_386_TLS_GOTIE 16
-#define R_386_TLS_LE 17
-#define R_386_TLS_GD 18
-#define R_386_TLS_LDM 19
-#define R_386_16 20
-#define R_386_PC16 21
-#define R_386_8 22
-#define R_386_PC8 23
-#define R_386_TLS_GD_32 24
-#define R_386_TLS_GD_PUSH 25
-#define R_386_TLS_GD_CALL 26
-#define R_386_TLS_GD_POP 27
-#define R_386_TLS_LDM_32 28
-#define R_386_TLS_LDM_PUSH 29
-#define R_386_TLS_LDM_CALL 30
-#define R_386_TLS_LDM_POP 31
-#define R_386_TLS_LDO_32 32
-#define R_386_TLS_IE_32 33
-#define R_386_TLS_LE_32 34
-#define R_386_TLS_DTPMOD32 35
-#define R_386_TLS_DTPOFF32 36
-#define R_386_TLS_TPOFF32 37
-#define R_386_SIZE32 38
-#define R_386_TLS_GOTDESC 39
-#define R_386_TLS_DESC_CALL 40
-#define R_386_TLS_DESC 41
-#define R_386_IRELATIVE 42
-#define R_386_GOT32X 43
-#define R_386_NUM 44
-
-
-
-
-
-#define STT_SPARC_REGISTER 13
-
-
-
-#define EF_SPARCV9_MM 3
-#define EF_SPARCV9_TSO 0
-#define EF_SPARCV9_PSO 1
-#define EF_SPARCV9_RMO 2
-#define EF_SPARC_LEDATA 0x800000
-#define EF_SPARC_EXT_MASK 0xFFFF00
-#define EF_SPARC_32PLUS 0x000100
-#define EF_SPARC_SUN_US1 0x000200
-#define EF_SPARC_HAL_R1 0x000400
-#define EF_SPARC_SUN_US3 0x000800
-
-
-
-#define R_SPARC_NONE 0
-#define R_SPARC_8 1
-#define R_SPARC_16 2
-#define R_SPARC_32 3
-#define R_SPARC_DISP8 4
-#define R_SPARC_DISP16 5
-#define R_SPARC_DISP32 6
-#define R_SPARC_WDISP30 7
-#define R_SPARC_WDISP22 8
-#define R_SPARC_HI22 9
-#define R_SPARC_22 10
-#define R_SPARC_13 11
-#define R_SPARC_LO10 12
-#define R_SPARC_GOT10 13
-#define R_SPARC_GOT13 14
-#define R_SPARC_GOT22 15
-#define R_SPARC_PC10 16
-#define R_SPARC_PC22 17
-#define R_SPARC_WPLT30 18
-#define R_SPARC_COPY 19
-#define R_SPARC_GLOB_DAT 20
-#define R_SPARC_JMP_SLOT 21
-#define R_SPARC_RELATIVE 22
-#define R_SPARC_UA32 23
-
-
-
-#define R_SPARC_PLT32 24
-#define R_SPARC_HIPLT22 25
-#define R_SPARC_LOPLT10 26
-#define R_SPARC_PCPLT32 27
-#define R_SPARC_PCPLT22 28
-#define R_SPARC_PCPLT10 29
-#define R_SPARC_10 30
-#define R_SPARC_11 31
-#define R_SPARC_64 32
-#define R_SPARC_OLO10 33
-#define R_SPARC_HH22 34
-#define R_SPARC_HM10 35
-#define R_SPARC_LM22 36
-#define R_SPARC_PC_HH22 37
-#define R_SPARC_PC_HM10 38
-#define R_SPARC_PC_LM22 39
-#define R_SPARC_WDISP16 40
-#define R_SPARC_WDISP19 41
-#define R_SPARC_GLOB_JMP 42
-#define R_SPARC_7 43
-#define R_SPARC_5 44
-#define R_SPARC_6 45
-#define R_SPARC_DISP64 46
-#define R_SPARC_PLT64 47
-#define R_SPARC_HIX22 48
-#define R_SPARC_LOX10 49
-#define R_SPARC_H44 50
-#define R_SPARC_M44 51
-#define R_SPARC_L44 52
-#define R_SPARC_REGISTER 53
-#define R_SPARC_UA64 54
-#define R_SPARC_UA16 55
-#define R_SPARC_TLS_GD_HI22 56
-#define R_SPARC_TLS_GD_LO10 57
-#define R_SPARC_TLS_GD_ADD 58
-#define R_SPARC_TLS_GD_CALL 59
-#define R_SPARC_TLS_LDM_HI22 60
-#define R_SPARC_TLS_LDM_LO10 61
-#define R_SPARC_TLS_LDM_ADD 62
-#define R_SPARC_TLS_LDM_CALL 63
-#define R_SPARC_TLS_LDO_HIX22 64
-#define R_SPARC_TLS_LDO_LOX10 65
-#define R_SPARC_TLS_LDO_ADD 66
-#define R_SPARC_TLS_IE_HI22 67
-#define R_SPARC_TLS_IE_LO10 68
-#define R_SPARC_TLS_IE_LD 69
-#define R_SPARC_TLS_IE_LDX 70
-#define R_SPARC_TLS_IE_ADD 71
-#define R_SPARC_TLS_LE_HIX22 72
-#define R_SPARC_TLS_LE_LOX10 73
-#define R_SPARC_TLS_DTPMOD32 74
-#define R_SPARC_TLS_DTPMOD64 75
-#define R_SPARC_TLS_DTPOFF32 76
-#define R_SPARC_TLS_DTPOFF64 77
-#define R_SPARC_TLS_TPOFF32 78
-#define R_SPARC_TLS_TPOFF64 79
-#define R_SPARC_GOTDATA_HIX22 80
-#define R_SPARC_GOTDATA_LOX10 81
-#define R_SPARC_GOTDATA_OP_HIX22 82
-#define R_SPARC_GOTDATA_OP_LOX10 83
-#define R_SPARC_GOTDATA_OP 84
-#define R_SPARC_H34 85
-#define R_SPARC_SIZE32 86
-#define R_SPARC_SIZE64 87
-#define R_SPARC_GNU_VTINHERIT 250
-#define R_SPARC_GNU_VTENTRY 251
-#define R_SPARC_REV32 252
-
-#define R_SPARC_NUM 253
-
-
-
-#define DT_SPARC_REGISTER 0x70000001
-#define DT_SPARC_NUM 2
-
-
-#define EF_MIPS_NOREORDER 1
-#define EF_MIPS_PIC 2
-#define EF_MIPS_CPIC 4
-#define EF_MIPS_XGOT 8
-#define EF_MIPS_64BIT_WHIRL 16
-#define EF_MIPS_ABI2 32
-#define EF_MIPS_ABI_ON32 64
-#define EF_MIPS_FP64 512
-#define EF_MIPS_NAN2008 1024
-#define EF_MIPS_ARCH 0xf0000000
-
-
-
-#define EF_MIPS_ARCH_1 0x00000000
-#define EF_MIPS_ARCH_2 0x10000000
-#define EF_MIPS_ARCH_3 0x20000000
-#define EF_MIPS_ARCH_4 0x30000000
-#define EF_MIPS_ARCH_5 0x40000000
-#define EF_MIPS_ARCH_32 0x50000000
-#define EF_MIPS_ARCH_64 0x60000000
-#define EF_MIPS_ARCH_32R2 0x70000000
-#define EF_MIPS_ARCH_64R2 0x80000000
-
-
-#define E_MIPS_ARCH_1 0x00000000
-#define E_MIPS_ARCH_2 0x10000000
-#define E_MIPS_ARCH_3 0x20000000
-#define E_MIPS_ARCH_4 0x30000000
-#define E_MIPS_ARCH_5 0x40000000
-#define E_MIPS_ARCH_32 0x50000000
-#define E_MIPS_ARCH_64 0x60000000
-
-
-
-#define SHN_MIPS_ACOMMON 0xff00
-#define SHN_MIPS_TEXT 0xff01
-#define SHN_MIPS_DATA 0xff02
-#define SHN_MIPS_SCOMMON 0xff03
-#define SHN_MIPS_SUNDEFINED 0xff04
-
-
-
-#define SHT_MIPS_LIBLIST 0x70000000
-#define SHT_MIPS_MSYM 0x70000001
-#define SHT_MIPS_CONFLICT 0x70000002
-#define SHT_MIPS_GPTAB 0x70000003
-#define SHT_MIPS_UCODE 0x70000004
-#define SHT_MIPS_DEBUG 0x70000005
-#define SHT_MIPS_REGINFO 0x70000006
-#define SHT_MIPS_PACKAGE 0x70000007
-#define SHT_MIPS_PACKSYM 0x70000008
-#define SHT_MIPS_RELD 0x70000009
-#define SHT_MIPS_IFACE 0x7000000b
-#define SHT_MIPS_CONTENT 0x7000000c
-#define SHT_MIPS_OPTIONS 0x7000000d
-#define SHT_MIPS_SHDR 0x70000010
-#define SHT_MIPS_FDESC 0x70000011
-#define SHT_MIPS_EXTSYM 0x70000012
-#define SHT_MIPS_DENSE 0x70000013
-#define SHT_MIPS_PDESC 0x70000014
-#define SHT_MIPS_LOCSYM 0x70000015
-#define SHT_MIPS_AUXSYM 0x70000016
-#define SHT_MIPS_OPTSYM 0x70000017
-#define SHT_MIPS_LOCSTR 0x70000018
-#define SHT_MIPS_LINE 0x70000019
-#define SHT_MIPS_RFDESC 0x7000001a
-#define SHT_MIPS_DELTASYM 0x7000001b
-#define SHT_MIPS_DELTAINST 0x7000001c
-#define SHT_MIPS_DELTACLASS 0x7000001d
-#define SHT_MIPS_DWARF 0x7000001e
-#define SHT_MIPS_DELTADECL 0x7000001f
-#define SHT_MIPS_SYMBOL_LIB 0x70000020
-#define SHT_MIPS_EVENTS 0x70000021
-#define SHT_MIPS_TRANSLATE 0x70000022
-#define SHT_MIPS_PIXIE 0x70000023
-#define SHT_MIPS_XLATE 0x70000024
-#define SHT_MIPS_XLATE_DEBUG 0x70000025
-#define SHT_MIPS_WHIRL 0x70000026
-#define SHT_MIPS_EH_REGION 0x70000027
-#define SHT_MIPS_XLATE_OLD 0x70000028
-#define SHT_MIPS_PDR_EXCEPTION 0x70000029
-
-
-
-#define SHF_MIPS_GPREL 0x10000000
-#define SHF_MIPS_MERGE 0x20000000
-#define SHF_MIPS_ADDR 0x40000000
-#define SHF_MIPS_STRINGS 0x80000000
-#define SHF_MIPS_NOSTRIP 0x08000000
-#define SHF_MIPS_LOCAL 0x04000000
-#define SHF_MIPS_NAMES 0x02000000
-#define SHF_MIPS_NODUPE 0x01000000
-
-
-
-
-
-#define STO_MIPS_DEFAULT 0x0
-#define STO_MIPS_INTERNAL 0x1
-#define STO_MIPS_HIDDEN 0x2
-#define STO_MIPS_PROTECTED 0x3
-#define STO_MIPS_PLT 0x8
-#define STO_MIPS_SC_ALIGN_UNUSED 0xff
-
-
-#define STB_MIPS_SPLIT_COMMON 13
-
-
-
-typedef union {
- struct {
- Elf32_Word gt_current_g_value;
- Elf32_Word gt_unused;
- } gt_header;
- struct {
- Elf32_Word gt_g_value;
- Elf32_Word gt_bytes;
- } gt_entry;
-} Elf32_gptab;
-
-
-
-typedef struct {
- Elf32_Word ri_gprmask;
- Elf32_Word ri_cprmask[4];
- Elf32_Sword ri_gp_value;
-} Elf32_RegInfo;
-
-
-
-typedef struct {
- unsigned char kind;
-
- unsigned char size;
- Elf32_Section section;
-
- Elf32_Word info;
-} Elf_Options;
-
-
-
-#define ODK_NULL 0
-#define ODK_REGINFO 1
-#define ODK_EXCEPTIONS 2
-#define ODK_PAD 3
-#define ODK_HWPATCH 4
-#define ODK_FILL 5
-#define ODK_TAGS 6
-#define ODK_HWAND 7
-#define ODK_HWOR 8
-
-
-
-#define OEX_FPU_MIN 0x1f
-#define OEX_FPU_MAX 0x1f00
-#define OEX_PAGE0 0x10000
-#define OEX_SMM 0x20000
-#define OEX_FPDBUG 0x40000
-#define OEX_PRECISEFP OEX_FPDBUG
-#define OEX_DISMISS 0x80000
-
-#define OEX_FPU_INVAL 0x10
-#define OEX_FPU_DIV0 0x08
-#define OEX_FPU_OFLO 0x04
-#define OEX_FPU_UFLO 0x02
-#define OEX_FPU_INEX 0x01
-
-
-
-#define OHW_R4KEOP 0x1
-#define OHW_R8KPFETCH 0x2
-#define OHW_R5KEOP 0x4
-#define OHW_R5KCVTL 0x8
-
-#define OPAD_PREFIX 0x1
-#define OPAD_POSTFIX 0x2
-#define OPAD_SYMBOL 0x4
-
-
-
-typedef struct {
- Elf32_Word hwp_flags1;
- Elf32_Word hwp_flags2;
-} Elf_Options_Hw;
-
-
-
-#define OHWA0_R4KEOP_CHECKED 0x00000001
-#define OHWA1_R4KEOP_CLEAN 0x00000002
-
-
-
-#define R_MIPS_NONE 0
-#define R_MIPS_16 1
-#define R_MIPS_32 2
-#define R_MIPS_REL32 3
-#define R_MIPS_26 4
-#define R_MIPS_HI16 5
-#define R_MIPS_LO16 6
-#define R_MIPS_GPREL16 7
-#define R_MIPS_LITERAL 8
-#define R_MIPS_GOT16 9
-#define R_MIPS_PC16 10
-#define R_MIPS_CALL16 11
-#define R_MIPS_GPREL32 12
-
-#define R_MIPS_SHIFT5 16
-#define R_MIPS_SHIFT6 17
-#define R_MIPS_64 18
-#define R_MIPS_GOT_DISP 19
-#define R_MIPS_GOT_PAGE 20
-#define R_MIPS_GOT_OFST 21
-#define R_MIPS_GOT_HI16 22
-#define R_MIPS_GOT_LO16 23
-#define R_MIPS_SUB 24
-#define R_MIPS_INSERT_A 25
-#define R_MIPS_INSERT_B 26
-#define R_MIPS_DELETE 27
-#define R_MIPS_HIGHER 28
-#define R_MIPS_HIGHEST 29
-#define R_MIPS_CALL_HI16 30
-#define R_MIPS_CALL_LO16 31
-#define R_MIPS_SCN_DISP 32
-#define R_MIPS_REL16 33
-#define R_MIPS_ADD_IMMEDIATE 34
-#define R_MIPS_PJUMP 35
-#define R_MIPS_RELGOT 36
-#define R_MIPS_JALR 37
-#define R_MIPS_TLS_DTPMOD32 38
-#define R_MIPS_TLS_DTPREL32 39
-#define R_MIPS_TLS_DTPMOD64 40
-#define R_MIPS_TLS_DTPREL64 41
-#define R_MIPS_TLS_GD 42
-#define R_MIPS_TLS_LDM 43
-#define R_MIPS_TLS_DTPREL_HI16 44
-#define R_MIPS_TLS_DTPREL_LO16 45
-#define R_MIPS_TLS_GOTTPREL 46
-#define R_MIPS_TLS_TPREL32 47
-#define R_MIPS_TLS_TPREL64 48
-#define R_MIPS_TLS_TPREL_HI16 49
-#define R_MIPS_TLS_TPREL_LO16 50
-#define R_MIPS_GLOB_DAT 51
-#define R_MIPS_COPY 126
-#define R_MIPS_JUMP_SLOT 127
-
-#define R_MIPS_NUM 128
-
-
-
-#define PT_MIPS_REGINFO 0x70000000
-#define PT_MIPS_RTPROC 0x70000001
-#define PT_MIPS_OPTIONS 0x70000002
-#define PT_MIPS_ABIFLAGS 0x70000003
-
-
-
-#define PF_MIPS_LOCAL 0x10000000
-
-
-
-#define DT_MIPS_RLD_VERSION 0x70000001
-#define DT_MIPS_TIME_STAMP 0x70000002
-#define DT_MIPS_ICHECKSUM 0x70000003
-#define DT_MIPS_IVERSION 0x70000004
-#define DT_MIPS_FLAGS 0x70000005
-#define DT_MIPS_BASE_ADDRESS 0x70000006
-#define DT_MIPS_MSYM 0x70000007
-#define DT_MIPS_CONFLICT 0x70000008
-#define DT_MIPS_LIBLIST 0x70000009
-#define DT_MIPS_LOCAL_GOTNO 0x7000000a
-#define DT_MIPS_CONFLICTNO 0x7000000b
-#define DT_MIPS_LIBLISTNO 0x70000010
-#define DT_MIPS_SYMTABNO 0x70000011
-#define DT_MIPS_UNREFEXTNO 0x70000012
-#define DT_MIPS_GOTSYM 0x70000013
-#define DT_MIPS_HIPAGENO 0x70000014
-#define DT_MIPS_RLD_MAP 0x70000016
-#define DT_MIPS_DELTA_CLASS 0x70000017
-#define DT_MIPS_DELTA_CLASS_NO 0x70000018
-
-#define DT_MIPS_DELTA_INSTANCE 0x70000019
-#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
-
-#define DT_MIPS_DELTA_RELOC 0x7000001b
-#define DT_MIPS_DELTA_RELOC_NO 0x7000001c
-
-#define DT_MIPS_DELTA_SYM 0x7000001d
-
-#define DT_MIPS_DELTA_SYM_NO 0x7000001e
-
-#define DT_MIPS_DELTA_CLASSSYM 0x70000020
-
-#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
-
-#define DT_MIPS_CXX_FLAGS 0x70000022
-#define DT_MIPS_PIXIE_INIT 0x70000023
-#define DT_MIPS_SYMBOL_LIB 0x70000024
-#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
-#define DT_MIPS_LOCAL_GOTIDX 0x70000026
-#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
-#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
-#define DT_MIPS_OPTIONS 0x70000029
-#define DT_MIPS_INTERFACE 0x7000002a
-#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
-#define DT_MIPS_INTERFACE_SIZE 0x7000002c
-#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
-
-#define DT_MIPS_PERF_SUFFIX 0x7000002e
-
-#define DT_MIPS_COMPACT_SIZE 0x7000002f
-#define DT_MIPS_GP_VALUE 0x70000030
-#define DT_MIPS_AUX_DYNAMIC 0x70000031
-
-#define DT_MIPS_PLTGOT 0x70000032
-
-#define DT_MIPS_RWPLT 0x70000034
-#define DT_MIPS_RLD_MAP_REL 0x70000035
-#define DT_MIPS_NUM 0x36
-
-
-
-#define RHF_NONE 0
-#define RHF_QUICKSTART (1 << 0)
-#define RHF_NOTPOT (1 << 1)
-#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
-#define RHF_NO_MOVE (1 << 3)
-#define RHF_SGI_ONLY (1 << 4)
-#define RHF_GUARANTEE_INIT (1 << 5)
-#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
-#define RHF_GUARANTEE_START_INIT (1 << 7)
-#define RHF_PIXIE (1 << 8)
-#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
-#define RHF_REQUICKSTART (1 << 10)
-#define RHF_REQUICKSTARTED (1 << 11)
-#define RHF_CORD (1 << 12)
-#define RHF_NO_UNRES_UNDEF (1 << 13)
-#define RHF_RLD_ORDER_SAFE (1 << 14)
-
-
-
-typedef struct {
- Elf32_Word l_name;
- Elf32_Word l_time_stamp;
- Elf32_Word l_checksum;
- Elf32_Word l_version;
- Elf32_Word l_flags;
-} Elf32_Lib;
-
-typedef struct {
- Elf64_Word l_name;
- Elf64_Word l_time_stamp;
- Elf64_Word l_checksum;
- Elf64_Word l_version;
- Elf64_Word l_flags;
-} Elf64_Lib;
-
-
-
-
-#define LL_NONE 0
-#define LL_EXACT_MATCH (1 << 0)
-#define LL_IGNORE_INT_VER (1 << 1)
-#define LL_REQUIRE_MINOR (1 << 2)
-#define LL_EXPORTS (1 << 3)
-#define LL_DELAY_LOAD (1 << 4)
-#define LL_DELTA (1 << 5)
-
-
-
-typedef Elf32_Addr Elf32_Conflict;
-
-typedef struct {
- Elf32_Half version;
- unsigned char isa_level;
- unsigned char isa_rev;
- unsigned char gpr_size;
- unsigned char cpr1_size;
- unsigned char cpr2_size;
- unsigned char fp_abi;
- Elf32_Word isa_ext;
- Elf32_Word ases;
- Elf32_Word flags1;
- Elf32_Word flags2;
-} Elf_MIPS_ABIFlags_v0;
-
-#define MIPS_AFL_REG_NONE 0x00
-#define MIPS_AFL_REG_32 0x01
-#define MIPS_AFL_REG_64 0x02
-#define MIPS_AFL_REG_128 0x03
-
-#define MIPS_AFL_ASE_DSP 0x00000001
-#define MIPS_AFL_ASE_DSPR2 0x00000002
-#define MIPS_AFL_ASE_EVA 0x00000004
-#define MIPS_AFL_ASE_MCU 0x00000008
-#define MIPS_AFL_ASE_MDMX 0x00000010
-#define MIPS_AFL_ASE_MIPS3D 0x00000020
-#define MIPS_AFL_ASE_MT 0x00000040
-#define MIPS_AFL_ASE_SMARTMIPS 0x00000080
-#define MIPS_AFL_ASE_VIRT 0x00000100
-#define MIPS_AFL_ASE_MSA 0x00000200
-#define MIPS_AFL_ASE_MIPS16 0x00000400
-#define MIPS_AFL_ASE_MICROMIPS 0x00000800
-#define MIPS_AFL_ASE_XPA 0x00001000
-#define MIPS_AFL_ASE_MASK 0x00001fff
-
-#define MIPS_AFL_EXT_XLR 1
-#define MIPS_AFL_EXT_OCTEON2 2
-#define MIPS_AFL_EXT_OCTEONP 3
-#define MIPS_AFL_EXT_LOONGSON_3A 4
-#define MIPS_AFL_EXT_OCTEON 5
-#define MIPS_AFL_EXT_5900 6
-#define MIPS_AFL_EXT_4650 7
-#define MIPS_AFL_EXT_4010 8
-#define MIPS_AFL_EXT_4100 9
-#define MIPS_AFL_EXT_3900 10
-#define MIPS_AFL_EXT_10000 11
-#define MIPS_AFL_EXT_SB1 12
-#define MIPS_AFL_EXT_4111 13
-#define MIPS_AFL_EXT_4120 14
-#define MIPS_AFL_EXT_5400 15
-#define MIPS_AFL_EXT_5500 16
-#define MIPS_AFL_EXT_LOONGSON_2E 17
-#define MIPS_AFL_EXT_LOONGSON_2F 18
-
-#define MIPS_AFL_FLAGS1_ODDSPREG 1
-
-enum
-{
- Val_GNU_MIPS_ABI_FP_ANY = 0,
- Val_GNU_MIPS_ABI_FP_DOUBLE = 1,
- Val_GNU_MIPS_ABI_FP_SINGLE = 2,
- Val_GNU_MIPS_ABI_FP_SOFT = 3,
- Val_GNU_MIPS_ABI_FP_OLD_64 = 4,
- Val_GNU_MIPS_ABI_FP_XX = 5,
- Val_GNU_MIPS_ABI_FP_64 = 6,
- Val_GNU_MIPS_ABI_FP_64A = 7,
- Val_GNU_MIPS_ABI_FP_MAX = 7
-};
-
-
-
-
-#define EF_PARISC_TRAPNIL 0x00010000
-#define EF_PARISC_EXT 0x00020000
-#define EF_PARISC_LSB 0x00040000
-#define EF_PARISC_WIDE 0x00080000
-#define EF_PARISC_NO_KABP 0x00100000
-
-#define EF_PARISC_LAZYSWAP 0x00400000
-#define EF_PARISC_ARCH 0x0000ffff
-
-
-
-#define EFA_PARISC_1_0 0x020b
-#define EFA_PARISC_1_1 0x0210
-#define EFA_PARISC_2_0 0x0214
-
-
-
-#define SHN_PARISC_ANSI_COMMON 0xff00
-
-#define SHN_PARISC_HUGE_COMMON 0xff01
-
-
-
-#define SHT_PARISC_EXT 0x70000000
-#define SHT_PARISC_UNWIND 0x70000001
-#define SHT_PARISC_DOC 0x70000002
-
-
-
-#define SHF_PARISC_SHORT 0x20000000
-#define SHF_PARISC_HUGE 0x40000000
-#define SHF_PARISC_SBP 0x80000000
-
-
-
-#define STT_PARISC_MILLICODE 13
-
-#define STT_HP_OPAQUE (STT_LOOS + 0x1)
-#define STT_HP_STUB (STT_LOOS + 0x2)
-
-
-
-#define R_PARISC_NONE 0
-#define R_PARISC_DIR32 1
-#define R_PARISC_DIR21L 2
-#define R_PARISC_DIR17R 3
-#define R_PARISC_DIR17F 4
-#define R_PARISC_DIR14R 6
-#define R_PARISC_PCREL32 9
-#define R_PARISC_PCREL21L 10
-#define R_PARISC_PCREL17R 11
-#define R_PARISC_PCREL17F 12
-#define R_PARISC_PCREL14R 14
-#define R_PARISC_DPREL21L 18
-#define R_PARISC_DPREL14R 22
-#define R_PARISC_GPREL21L 26
-#define R_PARISC_GPREL14R 30
-#define R_PARISC_LTOFF21L 34
-#define R_PARISC_LTOFF14R 38
-#define R_PARISC_SECREL32 41
-#define R_PARISC_SEGBASE 48
-#define R_PARISC_SEGREL32 49
-#define R_PARISC_PLTOFF21L 50
-#define R_PARISC_PLTOFF14R 54
-#define R_PARISC_LTOFF_FPTR32 57
-#define R_PARISC_LTOFF_FPTR21L 58
-#define R_PARISC_LTOFF_FPTR14R 62
-#define R_PARISC_FPTR64 64
-#define R_PARISC_PLABEL32 65
-#define R_PARISC_PLABEL21L 66
-#define R_PARISC_PLABEL14R 70
-#define R_PARISC_PCREL64 72
-#define R_PARISC_PCREL22F 74
-#define R_PARISC_PCREL14WR 75
-#define R_PARISC_PCREL14DR 76
-#define R_PARISC_PCREL16F 77
-#define R_PARISC_PCREL16WF 78
-#define R_PARISC_PCREL16DF 79
-#define R_PARISC_DIR64 80
-#define R_PARISC_DIR14WR 83
-#define R_PARISC_DIR14DR 84
-#define R_PARISC_DIR16F 85
-#define R_PARISC_DIR16WF 86
-#define R_PARISC_DIR16DF 87
-#define R_PARISC_GPREL64 88
-#define R_PARISC_GPREL14WR 91
-#define R_PARISC_GPREL14DR 92
-#define R_PARISC_GPREL16F 93
-#define R_PARISC_GPREL16WF 94
-#define R_PARISC_GPREL16DF 95
-#define R_PARISC_LTOFF64 96
-#define R_PARISC_LTOFF14WR 99
-#define R_PARISC_LTOFF14DR 100
-#define R_PARISC_LTOFF16F 101
-#define R_PARISC_LTOFF16WF 102
-#define R_PARISC_LTOFF16DF 103
-#define R_PARISC_SECREL64 104
-#define R_PARISC_SEGREL64 112
-#define R_PARISC_PLTOFF14WR 115
-#define R_PARISC_PLTOFF14DR 116
-#define R_PARISC_PLTOFF16F 117
-#define R_PARISC_PLTOFF16WF 118
-#define R_PARISC_PLTOFF16DF 119
-#define R_PARISC_LTOFF_FPTR64 120
-#define R_PARISC_LTOFF_FPTR14WR 123
-#define R_PARISC_LTOFF_FPTR14DR 124
-#define R_PARISC_LTOFF_FPTR16F 125
-#define R_PARISC_LTOFF_FPTR16WF 126
-#define R_PARISC_LTOFF_FPTR16DF 127
-#define R_PARISC_LORESERVE 128
-#define R_PARISC_COPY 128
-#define R_PARISC_IPLT 129
-#define R_PARISC_EPLT 130
-#define R_PARISC_TPREL32 153
-#define R_PARISC_TPREL21L 154
-#define R_PARISC_TPREL14R 158
-#define R_PARISC_LTOFF_TP21L 162
-#define R_PARISC_LTOFF_TP14R 166
-#define R_PARISC_LTOFF_TP14F 167
-#define R_PARISC_TPREL64 216
-#define R_PARISC_TPREL14WR 219
-#define R_PARISC_TPREL14DR 220
-#define R_PARISC_TPREL16F 221
-#define R_PARISC_TPREL16WF 222
-#define R_PARISC_TPREL16DF 223
-#define R_PARISC_LTOFF_TP64 224
-#define R_PARISC_LTOFF_TP14WR 227
-#define R_PARISC_LTOFF_TP14DR 228
-#define R_PARISC_LTOFF_TP16F 229
-#define R_PARISC_LTOFF_TP16WF 230
-#define R_PARISC_LTOFF_TP16DF 231
-#define R_PARISC_GNU_VTENTRY 232
-#define R_PARISC_GNU_VTINHERIT 233
-#define R_PARISC_TLS_GD21L 234
-#define R_PARISC_TLS_GD14R 235
-#define R_PARISC_TLS_GDCALL 236
-#define R_PARISC_TLS_LDM21L 237
-#define R_PARISC_TLS_LDM14R 238
-#define R_PARISC_TLS_LDMCALL 239
-#define R_PARISC_TLS_LDO21L 240
-#define R_PARISC_TLS_LDO14R 241
-#define R_PARISC_TLS_DTPMOD32 242
-#define R_PARISC_TLS_DTPMOD64 243
-#define R_PARISC_TLS_DTPOFF32 244
-#define R_PARISC_TLS_DTPOFF64 245
-#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L
-#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R
-#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L
-#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R
-#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32
-#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64
-#define R_PARISC_HIRESERVE 255
-
-
-
-#define PT_HP_TLS (PT_LOOS + 0x0)
-#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
-#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
-#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
-#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
-#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
-#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
-#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
-#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
-#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
-#define PT_HP_PARALLEL (PT_LOOS + 0x10)
-#define PT_HP_FASTBIND (PT_LOOS + 0x11)
-#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
-#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
-#define PT_HP_STACK (PT_LOOS + 0x14)
-
-#define PT_PARISC_ARCHEXT 0x70000000
-#define PT_PARISC_UNWIND 0x70000001
-
-
-
-#define PF_PARISC_SBP 0x08000000
-
-#define PF_HP_PAGE_SIZE 0x00100000
-#define PF_HP_FAR_SHARED 0x00200000
-#define PF_HP_NEAR_SHARED 0x00400000
-#define PF_HP_CODE 0x01000000
-#define PF_HP_MODIFY 0x02000000
-#define PF_HP_LAZYSWAP 0x04000000
-#define PF_HP_SBP 0x08000000
-
-
-
-
-
-
-#define EF_ALPHA_32BIT 1
-#define EF_ALPHA_CANRELAX 2
-
-
-
-
-#define SHT_ALPHA_DEBUG 0x70000001
-#define SHT_ALPHA_REGINFO 0x70000002
-
-
-
-#define SHF_ALPHA_GPREL 0x10000000
-
-
-#define STO_ALPHA_NOPV 0x80
-#define STO_ALPHA_STD_GPLOAD 0x88
-
-
-
-#define R_ALPHA_NONE 0
-#define R_ALPHA_REFLONG 1
-#define R_ALPHA_REFQUAD 2
-#define R_ALPHA_GPREL32 3
-#define R_ALPHA_LITERAL 4
-#define R_ALPHA_LITUSE 5
-#define R_ALPHA_GPDISP 6
-#define R_ALPHA_BRADDR 7
-#define R_ALPHA_HINT 8
-#define R_ALPHA_SREL16 9
-#define R_ALPHA_SREL32 10
-#define R_ALPHA_SREL64 11
-#define R_ALPHA_GPRELHIGH 17
-#define R_ALPHA_GPRELLOW 18
-#define R_ALPHA_GPREL16 19
-#define R_ALPHA_COPY 24
-#define R_ALPHA_GLOB_DAT 25
-#define R_ALPHA_JMP_SLOT 26
-#define R_ALPHA_RELATIVE 27
-#define R_ALPHA_TLS_GD_HI 28
-#define R_ALPHA_TLSGD 29
-#define R_ALPHA_TLS_LDM 30
-#define R_ALPHA_DTPMOD64 31
-#define R_ALPHA_GOTDTPREL 32
-#define R_ALPHA_DTPREL64 33
-#define R_ALPHA_DTPRELHI 34
-#define R_ALPHA_DTPRELLO 35
-#define R_ALPHA_DTPREL16 36
-#define R_ALPHA_GOTTPREL 37
-#define R_ALPHA_TPREL64 38
-#define R_ALPHA_TPRELHI 39
-#define R_ALPHA_TPRELLO 40
-#define R_ALPHA_TPREL16 41
-
-#define R_ALPHA_NUM 46
-
-
-#define LITUSE_ALPHA_ADDR 0
-#define LITUSE_ALPHA_BASE 1
-#define LITUSE_ALPHA_BYTOFF 2
-#define LITUSE_ALPHA_JSR 3
-#define LITUSE_ALPHA_TLS_GD 4
-#define LITUSE_ALPHA_TLS_LDM 5
-
-
-#define DT_ALPHA_PLTRO (DT_LOPROC + 0)
-#define DT_ALPHA_NUM 1
-
-
-
-
-#define EF_PPC_EMB 0x80000000
-
-
-#define EF_PPC_RELOCATABLE 0x00010000
-#define EF_PPC_RELOCATABLE_LIB 0x00008000
-
-
-
-#define R_PPC_NONE 0
-#define R_PPC_ADDR32 1
-#define R_PPC_ADDR24 2
-#define R_PPC_ADDR16 3
-#define R_PPC_ADDR16_LO 4
-#define R_PPC_ADDR16_HI 5
-#define R_PPC_ADDR16_HA 6
-#define R_PPC_ADDR14 7
-#define R_PPC_ADDR14_BRTAKEN 8
-#define R_PPC_ADDR14_BRNTAKEN 9
-#define R_PPC_REL24 10
-#define R_PPC_REL14 11
-#define R_PPC_REL14_BRTAKEN 12
-#define R_PPC_REL14_BRNTAKEN 13
-#define R_PPC_GOT16 14
-#define R_PPC_GOT16_LO 15
-#define R_PPC_GOT16_HI 16
-#define R_PPC_GOT16_HA 17
-#define R_PPC_PLTREL24 18
-#define R_PPC_COPY 19
-#define R_PPC_GLOB_DAT 20
-#define R_PPC_JMP_SLOT 21
-#define R_PPC_RELATIVE 22
-#define R_PPC_LOCAL24PC 23
-#define R_PPC_UADDR32 24
-#define R_PPC_UADDR16 25
-#define R_PPC_REL32 26
-#define R_PPC_PLT32 27
-#define R_PPC_PLTREL32 28
-#define R_PPC_PLT16_LO 29
-#define R_PPC_PLT16_HI 30
-#define R_PPC_PLT16_HA 31
-#define R_PPC_SDAREL16 32
-#define R_PPC_SECTOFF 33
-#define R_PPC_SECTOFF_LO 34
-#define R_PPC_SECTOFF_HI 35
-#define R_PPC_SECTOFF_HA 36
-
-
-#define R_PPC_TLS 67
-#define R_PPC_DTPMOD32 68
-#define R_PPC_TPREL16 69
-#define R_PPC_TPREL16_LO 70
-#define R_PPC_TPREL16_HI 71
-#define R_PPC_TPREL16_HA 72
-#define R_PPC_TPREL32 73
-#define R_PPC_DTPREL16 74
-#define R_PPC_DTPREL16_LO 75
-#define R_PPC_DTPREL16_HI 76
-#define R_PPC_DTPREL16_HA 77
-#define R_PPC_DTPREL32 78
-#define R_PPC_GOT_TLSGD16 79
-#define R_PPC_GOT_TLSGD16_LO 80
-#define R_PPC_GOT_TLSGD16_HI 81
-#define R_PPC_GOT_TLSGD16_HA 82
-#define R_PPC_GOT_TLSLD16 83
-#define R_PPC_GOT_TLSLD16_LO 84
-#define R_PPC_GOT_TLSLD16_HI 85
-#define R_PPC_GOT_TLSLD16_HA 86
-#define R_PPC_GOT_TPREL16 87
-#define R_PPC_GOT_TPREL16_LO 88
-#define R_PPC_GOT_TPREL16_HI 89
-#define R_PPC_GOT_TPREL16_HA 90
-#define R_PPC_GOT_DTPREL16 91
-#define R_PPC_GOT_DTPREL16_LO 92
-#define R_PPC_GOT_DTPREL16_HI 93
-#define R_PPC_GOT_DTPREL16_HA 94
-#define R_PPC_TLSGD 95
-#define R_PPC_TLSLD 96
-
-
-#define R_PPC_EMB_NADDR32 101
-#define R_PPC_EMB_NADDR16 102
-#define R_PPC_EMB_NADDR16_LO 103
-#define R_PPC_EMB_NADDR16_HI 104
-#define R_PPC_EMB_NADDR16_HA 105
-#define R_PPC_EMB_SDAI16 106
-#define R_PPC_EMB_SDA2I16 107
-#define R_PPC_EMB_SDA2REL 108
-#define R_PPC_EMB_SDA21 109
-#define R_PPC_EMB_MRKREF 110
-#define R_PPC_EMB_RELSEC16 111
-#define R_PPC_EMB_RELST_LO 112
-#define R_PPC_EMB_RELST_HI 113
-#define R_PPC_EMB_RELST_HA 114
-#define R_PPC_EMB_BIT_FLD 115
-#define R_PPC_EMB_RELSDA 116
-
-
-#define R_PPC_DIAB_SDA21_LO 180
-#define R_PPC_DIAB_SDA21_HI 181
-#define R_PPC_DIAB_SDA21_HA 182
-#define R_PPC_DIAB_RELSDA_LO 183
-#define R_PPC_DIAB_RELSDA_HI 184
-#define R_PPC_DIAB_RELSDA_HA 185
-
-
-#define R_PPC_IRELATIVE 248
-
-
-#define R_PPC_REL16 249
-#define R_PPC_REL16_LO 250
-#define R_PPC_REL16_HI 251
-#define R_PPC_REL16_HA 252
-
-
-
-#define R_PPC_TOC16 255
-
-
-#define DT_PPC_GOT (DT_LOPROC + 0)
-#define DT_PPC_OPT (DT_LOPROC + 1)
-#define DT_PPC_NUM 2
-
-#define PPC_OPT_TLS 1
-
-
-#define R_PPC64_NONE R_PPC_NONE
-#define R_PPC64_ADDR32 R_PPC_ADDR32
-#define R_PPC64_ADDR24 R_PPC_ADDR24
-#define R_PPC64_ADDR16 R_PPC_ADDR16
-#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO
-#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI
-#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA
-#define R_PPC64_ADDR14 R_PPC_ADDR14
-#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
-#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
-#define R_PPC64_REL24 R_PPC_REL24
-#define R_PPC64_REL14 R_PPC_REL14
-#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
-#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
-#define R_PPC64_GOT16 R_PPC_GOT16
-#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
-#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
-#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
-
-#define R_PPC64_COPY R_PPC_COPY
-#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
-#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
-#define R_PPC64_RELATIVE R_PPC_RELATIVE
-
-#define R_PPC64_UADDR32 R_PPC_UADDR32
-#define R_PPC64_UADDR16 R_PPC_UADDR16
-#define R_PPC64_REL32 R_PPC_REL32
-#define R_PPC64_PLT32 R_PPC_PLT32
-#define R_PPC64_PLTREL32 R_PPC_PLTREL32
-#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
-#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
-#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
-
-#define R_PPC64_SECTOFF R_PPC_SECTOFF
-#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
-#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
-#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
-#define R_PPC64_ADDR30 37
-#define R_PPC64_ADDR64 38
-#define R_PPC64_ADDR16_HIGHER 39
-#define R_PPC64_ADDR16_HIGHERA 40
-#define R_PPC64_ADDR16_HIGHEST 41
-#define R_PPC64_ADDR16_HIGHESTA 42
-#define R_PPC64_UADDR64 43
-#define R_PPC64_REL64 44
-#define R_PPC64_PLT64 45
-#define R_PPC64_PLTREL64 46
-#define R_PPC64_TOC16 47
-#define R_PPC64_TOC16_LO 48
-#define R_PPC64_TOC16_HI 49
-#define R_PPC64_TOC16_HA 50
-#define R_PPC64_TOC 51
-#define R_PPC64_PLTGOT16 52
-#define R_PPC64_PLTGOT16_LO 53
-#define R_PPC64_PLTGOT16_HI 54
-#define R_PPC64_PLTGOT16_HA 55
-
-#define R_PPC64_ADDR16_DS 56
-#define R_PPC64_ADDR16_LO_DS 57
-#define R_PPC64_GOT16_DS 58
-#define R_PPC64_GOT16_LO_DS 59
-#define R_PPC64_PLT16_LO_DS 60
-#define R_PPC64_SECTOFF_DS 61
-#define R_PPC64_SECTOFF_LO_DS 62
-#define R_PPC64_TOC16_DS 63
-#define R_PPC64_TOC16_LO_DS 64
-#define R_PPC64_PLTGOT16_DS 65
-#define R_PPC64_PLTGOT16_LO_DS 66
-
-
-#define R_PPC64_TLS 67
-#define R_PPC64_DTPMOD64 68
-#define R_PPC64_TPREL16 69
-#define R_PPC64_TPREL16_LO 70
-#define R_PPC64_TPREL16_HI 71
-#define R_PPC64_TPREL16_HA 72
-#define R_PPC64_TPREL64 73
-#define R_PPC64_DTPREL16 74
-#define R_PPC64_DTPREL16_LO 75
-#define R_PPC64_DTPREL16_HI 76
-#define R_PPC64_DTPREL16_HA 77
-#define R_PPC64_DTPREL64 78
-#define R_PPC64_GOT_TLSGD16 79
-#define R_PPC64_GOT_TLSGD16_LO 80
-#define R_PPC64_GOT_TLSGD16_HI 81
-#define R_PPC64_GOT_TLSGD16_HA 82
-#define R_PPC64_GOT_TLSLD16 83
-#define R_PPC64_GOT_TLSLD16_LO 84
-#define R_PPC64_GOT_TLSLD16_HI 85
-#define R_PPC64_GOT_TLSLD16_HA 86
-#define R_PPC64_GOT_TPREL16_DS 87
-#define R_PPC64_GOT_TPREL16_LO_DS 88
-#define R_PPC64_GOT_TPREL16_HI 89
-#define R_PPC64_GOT_TPREL16_HA 90
-#define R_PPC64_GOT_DTPREL16_DS 91
-#define R_PPC64_GOT_DTPREL16_LO_DS 92
-#define R_PPC64_GOT_DTPREL16_HI 93
-#define R_PPC64_GOT_DTPREL16_HA 94
-#define R_PPC64_TPREL16_DS 95
-#define R_PPC64_TPREL16_LO_DS 96
-#define R_PPC64_TPREL16_HIGHER 97
-#define R_PPC64_TPREL16_HIGHERA 98
-#define R_PPC64_TPREL16_HIGHEST 99
-#define R_PPC64_TPREL16_HIGHESTA 100
-#define R_PPC64_DTPREL16_DS 101
-#define R_PPC64_DTPREL16_LO_DS 102
-#define R_PPC64_DTPREL16_HIGHER 103
-#define R_PPC64_DTPREL16_HIGHERA 104
-#define R_PPC64_DTPREL16_HIGHEST 105
-#define R_PPC64_DTPREL16_HIGHESTA 106
-#define R_PPC64_TLSGD 107
-#define R_PPC64_TLSLD 108
-#define R_PPC64_TOCSAVE 109
-#define R_PPC64_ADDR16_HIGH 110
-#define R_PPC64_ADDR16_HIGHA 111
-#define R_PPC64_TPREL16_HIGH 112
-#define R_PPC64_TPREL16_HIGHA 113
-#define R_PPC64_DTPREL16_HIGH 114
-#define R_PPC64_DTPREL16_HIGHA 115
-
-
-#define R_PPC64_JMP_IREL 247
-#define R_PPC64_IRELATIVE 248
-#define R_PPC64_REL16 249
-#define R_PPC64_REL16_LO 250
-#define R_PPC64_REL16_HI 251
-#define R_PPC64_REL16_HA 252
-
-#define EF_PPC64_ABI 3
-
-#define DT_PPC64_GLINK (DT_LOPROC + 0)
-#define DT_PPC64_OPD (DT_LOPROC + 1)
-#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
-#define DT_PPC64_OPT (DT_LOPROC + 3)
-#define DT_PPC64_NUM 4
-
-#define PPC64_OPT_TLS 1
-#define PPC64_OPT_MULTI_TOC 2
-#define PPC64_OPT_LOCALENTRY 4
-
-#define STO_PPC64_LOCAL_BIT 5
-#define STO_PPC64_LOCAL_MASK 0xe0
-#define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc)
-
-
-#define EF_ARM_RELEXEC 0x01
-#define EF_ARM_HASENTRY 0x02
-#define EF_ARM_INTERWORK 0x04
-#define EF_ARM_APCS_26 0x08
-#define EF_ARM_APCS_FLOAT 0x10
-#define EF_ARM_PIC 0x20
-#define EF_ARM_ALIGN8 0x40
-#define EF_ARM_NEW_ABI 0x80
-#define EF_ARM_OLD_ABI 0x100
-#define EF_ARM_SOFT_FLOAT 0x200
-#define EF_ARM_VFP_FLOAT 0x400
-#define EF_ARM_MAVERICK_FLOAT 0x800
-
-#define EF_ARM_ABI_FLOAT_SOFT 0x200
-#define EF_ARM_ABI_FLOAT_HARD 0x400
-
-
-#define EF_ARM_SYMSARESORTED 0x04
-#define EF_ARM_DYNSYMSUSESEGIDX 0x08
-#define EF_ARM_MAPSYMSFIRST 0x10
-#define EF_ARM_EABIMASK 0XFF000000
-
-
-#define EF_ARM_BE8 0x00800000
-#define EF_ARM_LE8 0x00400000
-
-#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
-#define EF_ARM_EABI_UNKNOWN 0x00000000
-#define EF_ARM_EABI_VER1 0x01000000
-#define EF_ARM_EABI_VER2 0x02000000
-#define EF_ARM_EABI_VER3 0x03000000
-#define EF_ARM_EABI_VER4 0x04000000
-#define EF_ARM_EABI_VER5 0x05000000
-
-
-#define STT_ARM_TFUNC STT_LOPROC
-#define STT_ARM_16BIT STT_HIPROC
-
-
-#define SHF_ARM_ENTRYSECT 0x10000000
-#define SHF_ARM_COMDEF 0x80000000
-
-
-
-#define PF_ARM_SB 0x10000000
-
-#define PF_ARM_PI 0x20000000
-#define PF_ARM_ABS 0x40000000
-
-
-#define PT_ARM_EXIDX (PT_LOPROC + 1)
-
-
-#define SHT_ARM_EXIDX (SHT_LOPROC + 1)
-#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2)
-#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)
-
-#define R_AARCH64_NONE 0
-#define R_AARCH64_P32_ABS32 1
-#define R_AARCH64_P32_COPY 180
-#define R_AARCH64_P32_GLOB_DAT 181
-#define R_AARCH64_P32_JUMP_SLOT 182
-#define R_AARCH64_P32_RELATIVE 183
-#define R_AARCH64_P32_TLS_DTPMOD 184
-#define R_AARCH64_P32_TLS_DTPREL 185
-#define R_AARCH64_P32_TLS_TPREL 186
-#define R_AARCH64_P32_TLSDESC 187
-#define R_AARCH64_P32_IRELATIVE 188
-#define R_AARCH64_ABS64 257
-#define R_AARCH64_ABS32 258
-#define R_AARCH64_ABS16 259
-#define R_AARCH64_PREL64 260
-#define R_AARCH64_PREL32 261
-#define R_AARCH64_PREL16 262
-#define R_AARCH64_MOVW_UABS_G0 263
-#define R_AARCH64_MOVW_UABS_G0_NC 264
-#define R_AARCH64_MOVW_UABS_G1 265
-#define R_AARCH64_MOVW_UABS_G1_NC 266
-#define R_AARCH64_MOVW_UABS_G2 267
-#define R_AARCH64_MOVW_UABS_G2_NC 268
-#define R_AARCH64_MOVW_UABS_G3 269
-#define R_AARCH64_MOVW_SABS_G0 270
-#define R_AARCH64_MOVW_SABS_G1 271
-#define R_AARCH64_MOVW_SABS_G2 272
-#define R_AARCH64_LD_PREL_LO19 273
-#define R_AARCH64_ADR_PREL_LO21 274
-#define R_AARCH64_ADR_PREL_PG_HI21 275
-#define R_AARCH64_ADR_PREL_PG_HI21_NC 276
-#define R_AARCH64_ADD_ABS_LO12_NC 277
-#define R_AARCH64_LDST8_ABS_LO12_NC 278
-#define R_AARCH64_TSTBR14 279
-#define R_AARCH64_CONDBR19 280
-#define R_AARCH64_JUMP26 282
-#define R_AARCH64_CALL26 283
-#define R_AARCH64_LDST16_ABS_LO12_NC 284
-#define R_AARCH64_LDST32_ABS_LO12_NC 285
-#define R_AARCH64_LDST64_ABS_LO12_NC 286
-#define R_AARCH64_MOVW_PREL_G0 287
-#define R_AARCH64_MOVW_PREL_G0_NC 288
-#define R_AARCH64_MOVW_PREL_G1 289
-#define R_AARCH64_MOVW_PREL_G1_NC 290
-#define R_AARCH64_MOVW_PREL_G2 291
-#define R_AARCH64_MOVW_PREL_G2_NC 292
-#define R_AARCH64_MOVW_PREL_G3 293
-#define R_AARCH64_LDST128_ABS_LO12_NC 299
-#define R_AARCH64_MOVW_GOTOFF_G0 300
-#define R_AARCH64_MOVW_GOTOFF_G0_NC 301
-#define R_AARCH64_MOVW_GOTOFF_G1 302
-#define R_AARCH64_MOVW_GOTOFF_G1_NC 303
-#define R_AARCH64_MOVW_GOTOFF_G2 304
-#define R_AARCH64_MOVW_GOTOFF_G2_NC 305
-#define R_AARCH64_MOVW_GOTOFF_G3 306
-#define R_AARCH64_GOTREL64 307
-#define R_AARCH64_GOTREL32 308
-#define R_AARCH64_GOT_LD_PREL19 309
-#define R_AARCH64_LD64_GOTOFF_LO15 310
-#define R_AARCH64_ADR_GOT_PAGE 311
-#define R_AARCH64_LD64_GOT_LO12_NC 312
-#define R_AARCH64_LD64_GOTPAGE_LO15 313
-#define R_AARCH64_TLSGD_ADR_PREL21 512
-#define R_AARCH64_TLSGD_ADR_PAGE21 513
-#define R_AARCH64_TLSGD_ADD_LO12_NC 514
-#define R_AARCH64_TLSGD_MOVW_G1 515
-#define R_AARCH64_TLSGD_MOVW_G0_NC 516
-#define R_AARCH64_TLSLD_ADR_PREL21 517
-#define R_AARCH64_TLSLD_ADR_PAGE21 518
-#define R_AARCH64_TLSLD_ADD_LO12_NC 519
-#define R_AARCH64_TLSLD_MOVW_G1 520
-#define R_AARCH64_TLSLD_MOVW_G0_NC 521
-#define R_AARCH64_TLSLD_LD_PREL19 522
-#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523
-#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524
-#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525
-#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526
-#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527
-#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528
-#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529
-#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530
-#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531
-#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532
-#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533
-#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534
-#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535
-#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536
-#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537
-#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538
-#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539
-#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540
-#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541
-#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542
-#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543
-#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544
-#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545
-#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546
-#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547
-#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548
-#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549
-#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550
-#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551
-#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552
-#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553
-#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554
-#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555
-#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556
-#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557
-#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558
-#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559
-#define R_AARCH64_TLSDESC_LD_PREL19 560
-#define R_AARCH64_TLSDESC_ADR_PREL21 561
-#define R_AARCH64_TLSDESC_ADR_PAGE21 562
-#define R_AARCH64_TLSDESC_LD64_LO12 563
-#define R_AARCH64_TLSDESC_ADD_LO12 564
-#define R_AARCH64_TLSDESC_OFF_G1 565
-#define R_AARCH64_TLSDESC_OFF_G0_NC 566
-#define R_AARCH64_TLSDESC_LDR 567
-#define R_AARCH64_TLSDESC_ADD 568
-#define R_AARCH64_TLSDESC_CALL 569
-#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570
-#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571
-#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572
-#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573
-#define R_AARCH64_COPY 1024
-#define R_AARCH64_GLOB_DAT 1025
-#define R_AARCH64_JUMP_SLOT 1026
-#define R_AARCH64_RELATIVE 1027
-#define R_AARCH64_TLS_DTPMOD 1028
-#define R_AARCH64_TLS_DTPMOD64 1028
-#define R_AARCH64_TLS_DTPREL 1029
-#define R_AARCH64_TLS_DTPREL64 1029
-#define R_AARCH64_TLS_TPREL 1030
-#define R_AARCH64_TLS_TPREL64 1030
-#define R_AARCH64_TLSDESC 1031
-
-
-#define R_ARM_NONE 0
-#define R_ARM_PC24 1
-#define R_ARM_ABS32 2
-#define R_ARM_REL32 3
-#define R_ARM_PC13 4
-#define R_ARM_ABS16 5
-#define R_ARM_ABS12 6
-#define R_ARM_THM_ABS5 7
-#define R_ARM_ABS8 8
-#define R_ARM_SBREL32 9
-#define R_ARM_THM_PC22 10
-#define R_ARM_THM_PC8 11
-#define R_ARM_AMP_VCALL9 12
-#define R_ARM_TLS_DESC 13
-#define R_ARM_THM_SWI8 14
-#define R_ARM_XPC25 15
-#define R_ARM_THM_XPC22 16
-#define R_ARM_TLS_DTPMOD32 17
-#define R_ARM_TLS_DTPOFF32 18
-#define R_ARM_TLS_TPOFF32 19
-#define R_ARM_COPY 20
-#define R_ARM_GLOB_DAT 21
-#define R_ARM_JUMP_SLOT 22
-#define R_ARM_RELATIVE 23
-#define R_ARM_GOTOFF 24
-#define R_ARM_GOTPC 25
-#define R_ARM_GOT32 26
-#define R_ARM_PLT32 27
-#define R_ARM_CALL 28
-#define R_ARM_JUMP24 29
-#define R_ARM_THM_JUMP24 30
-#define R_ARM_BASE_ABS 31
-#define R_ARM_ALU_PCREL_7_0 32
-#define R_ARM_ALU_PCREL_15_8 33
-#define R_ARM_ALU_PCREL_23_15 34
-#define R_ARM_LDR_SBREL_11_0 35
-#define R_ARM_ALU_SBREL_19_12 36
-#define R_ARM_ALU_SBREL_27_20 37
-#define R_ARM_TARGET1 38
-#define R_ARM_SBREL31 39
-#define R_ARM_V4BX 40
-#define R_ARM_TARGET2 41
-#define R_ARM_PREL31 42
-#define R_ARM_MOVW_ABS_NC 43
-#define R_ARM_MOVT_ABS 44
-#define R_ARM_MOVW_PREL_NC 45
-#define R_ARM_MOVT_PREL 46
-#define R_ARM_THM_MOVW_ABS_NC 47
-#define R_ARM_THM_MOVT_ABS 48
-#define R_ARM_THM_MOVW_PREL_NC 49
-#define R_ARM_THM_MOVT_PREL 50
-#define R_ARM_THM_JUMP19 51
-#define R_ARM_THM_JUMP6 52
-#define R_ARM_THM_ALU_PREL_11_0 53
-#define R_ARM_THM_PC12 54
-#define R_ARM_ABS32_NOI 55
-#define R_ARM_REL32_NOI 56
-#define R_ARM_ALU_PC_G0_NC 57
-#define R_ARM_ALU_PC_G0 58
-#define R_ARM_ALU_PC_G1_NC 59
-#define R_ARM_ALU_PC_G1 60
-#define R_ARM_ALU_PC_G2 61
-#define R_ARM_LDR_PC_G1 62
-#define R_ARM_LDR_PC_G2 63
-#define R_ARM_LDRS_PC_G0 64
-#define R_ARM_LDRS_PC_G1 65
-#define R_ARM_LDRS_PC_G2 66
-#define R_ARM_LDC_PC_G0 67
-#define R_ARM_LDC_PC_G1 68
-#define R_ARM_LDC_PC_G2 69
-#define R_ARM_ALU_SB_G0_NC 70
-#define R_ARM_ALU_SB_G0 71
-#define R_ARM_ALU_SB_G1_NC 72
-#define R_ARM_ALU_SB_G1 73
-#define R_ARM_ALU_SB_G2 74
-#define R_ARM_LDR_SB_G0 75
-#define R_ARM_LDR_SB_G1 76
-#define R_ARM_LDR_SB_G2 77
-#define R_ARM_LDRS_SB_G0 78
-#define R_ARM_LDRS_SB_G1 79
-#define R_ARM_LDRS_SB_G2 80
-#define R_ARM_LDC_SB_G0 81
-#define R_ARM_LDC_SB_G1 82
-#define R_ARM_LDC_SB_G2 83
-#define R_ARM_MOVW_BREL_NC 84
-#define R_ARM_MOVT_BREL 85
-#define R_ARM_MOVW_BREL 86
-#define R_ARM_THM_MOVW_BREL_NC 87
-#define R_ARM_THM_MOVT_BREL 88
-#define R_ARM_THM_MOVW_BREL 89
-#define R_ARM_TLS_GOTDESC 90
-#define R_ARM_TLS_CALL 91
-#define R_ARM_TLS_DESCSEQ 92
-#define R_ARM_THM_TLS_CALL 93
-#define R_ARM_PLT32_ABS 94
-#define R_ARM_GOT_ABS 95
-#define R_ARM_GOT_PREL 96
-#define R_ARM_GOT_BREL12 97
-#define R_ARM_GOTOFF12 98
-#define R_ARM_GOTRELAX 99
-#define R_ARM_GNU_VTENTRY 100
-#define R_ARM_GNU_VTINHERIT 101
-#define R_ARM_THM_PC11 102
-#define R_ARM_THM_PC9 103
-#define R_ARM_TLS_GD32 104
-
-#define R_ARM_TLS_LDM32 105
-
-#define R_ARM_TLS_LDO32 106
-
-#define R_ARM_TLS_IE32 107
-
-#define R_ARM_TLS_LE32 108
-#define R_ARM_TLS_LDO12 109
-#define R_ARM_TLS_LE12 110
-#define R_ARM_TLS_IE12GP 111
-#define R_ARM_ME_TOO 128
-#define R_ARM_THM_TLS_DESCSEQ 129
-#define R_ARM_THM_TLS_DESCSEQ16 129
-#define R_ARM_THM_TLS_DESCSEQ32 130
-#define R_ARM_THM_GOT_BREL12 131
-#define R_ARM_IRELATIVE 160
-#define R_ARM_RXPC25 249
-#define R_ARM_RSBREL32 250
-#define R_ARM_THM_RPC22 251
-#define R_ARM_RREL32 252
-#define R_ARM_RABS22 253
-#define R_ARM_RPC24 254
-#define R_ARM_RBASE 255
-
-#define R_ARM_NUM 256
-
-
-#define R_CKCORE_NONE 0
-#define R_CKCORE_ADDR32 1
-#define R_CKCORE_PCRELIMM8BY4 2
-#define R_CKCORE_PCRELIMM11BY2 3
-#define R_CKCORE_PCREL32 5
-#define R_CKCORE_PCRELJSR_IMM11BY2 6
-#define R_CKCORE_RELATIVE 9
-#define R_CKCORE_COPY 10
-#define R_CKCORE_GLOB_DAT 11
-#define R_CKCORE_JUMP_SLOT 12
-#define R_CKCORE_GOTOFF 13
-#define R_CKCORE_GOTPC 14
-#define R_CKCORE_GOT32 15
-#define R_CKCORE_PLT32 16
-#define R_CKCORE_ADDRGOT 17
-#define R_CKCORE_ADDRPLT 18
-#define R_CKCORE_PCREL_IMM26BY2 19
-#define R_CKCORE_PCREL_IMM16BY2 20
-#define R_CKCORE_PCREL_IMM16BY4 21
-#define R_CKCORE_PCREL_IMM10BY2 22
-#define R_CKCORE_PCREL_IMM10BY4 23
-#define R_CKCORE_ADDR_HI16 24
-#define R_CKCORE_ADDR_LO16 25
-#define R_CKCORE_GOTPC_HI16 26
-#define R_CKCORE_GOTPC_LO16 27
-#define R_CKCORE_GOTOFF_HI16 28
-#define R_CKCORE_GOTOFF_LO16 29
-#define R_CKCORE_GOT12 30
-#define R_CKCORE_GOT_HI16 31
-#define R_CKCORE_GOT_LO16 32
-#define R_CKCORE_PLT12 33
-#define R_CKCORE_PLT_HI16 34
-#define R_CKCORE_PLT_LO16 35
-#define R_CKCORE_ADDRGOT_HI16 36
-#define R_CKCORE_ADDRGOT_LO16 37
-#define R_CKCORE_ADDRPLT_HI16 38
-#define R_CKCORE_ADDRPLT_LO16 39
-#define R_CKCORE_PCREL_JSR_IMM26BY2 40
-#define R_CKCORE_TOFFSET_LO16 41
-#define R_CKCORE_DOFFSET_LO16 42
-#define R_CKCORE_PCREL_IMM18BY2 43
-#define R_CKCORE_DOFFSET_IMM18 44
-#define R_CKCORE_DOFFSET_IMM18BY2 45
-#define R_CKCORE_DOFFSET_IMM18BY4 46
-#define R_CKCORE_GOT_IMM18BY4 48
-#define R_CKCORE_PLT_IMM18BY4 49
-#define R_CKCORE_PCREL_IMM7BY4 50
-#define R_CKCORE_TLS_LE32 51
-#define R_CKCORE_TLS_IE32 52
-#define R_CKCORE_TLS_GD32 53
-#define R_CKCORE_TLS_LDM32 54
-#define R_CKCORE_TLS_LDO32 55
-#define R_CKCORE_TLS_DTPMOD32 56
-#define R_CKCORE_TLS_DTPOFF32 57
-#define R_CKCORE_TLS_TPOFF32 58
-
-
-#define EF_IA_64_MASKOS 0x0000000f
-#define EF_IA_64_ABI64 0x00000010
-#define EF_IA_64_ARCH 0xff000000
-
-
-#define PT_IA_64_ARCHEXT (PT_LOPROC + 0)
-#define PT_IA_64_UNWIND (PT_LOPROC + 1)
-#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
-#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
-#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
-
-
-#define PF_IA_64_NORECOV 0x80000000
-
-
-#define SHT_IA_64_EXT (SHT_LOPROC + 0)
-#define SHT_IA_64_UNWIND (SHT_LOPROC + 1)
-
-
-#define SHF_IA_64_SHORT 0x10000000
-#define SHF_IA_64_NORECOV 0x20000000
-
-
-#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
-#define DT_IA_64_NUM 1
-
-
-#define R_IA64_NONE 0x00
-#define R_IA64_IMM14 0x21
-#define R_IA64_IMM22 0x22
-#define R_IA64_IMM64 0x23
-#define R_IA64_DIR32MSB 0x24
-#define R_IA64_DIR32LSB 0x25
-#define R_IA64_DIR64MSB 0x26
-#define R_IA64_DIR64LSB 0x27
-#define R_IA64_GPREL22 0x2a
-#define R_IA64_GPREL64I 0x2b
-#define R_IA64_GPREL32MSB 0x2c
-#define R_IA64_GPREL32LSB 0x2d
-#define R_IA64_GPREL64MSB 0x2e
-#define R_IA64_GPREL64LSB 0x2f
-#define R_IA64_LTOFF22 0x32
-#define R_IA64_LTOFF64I 0x33
-#define R_IA64_PLTOFF22 0x3a
-#define R_IA64_PLTOFF64I 0x3b
-#define R_IA64_PLTOFF64MSB 0x3e
-#define R_IA64_PLTOFF64LSB 0x3f
-#define R_IA64_FPTR64I 0x43
-#define R_IA64_FPTR32MSB 0x44
-#define R_IA64_FPTR32LSB 0x45
-#define R_IA64_FPTR64MSB 0x46
-#define R_IA64_FPTR64LSB 0x47
-#define R_IA64_PCREL60B 0x48
-#define R_IA64_PCREL21B 0x49
-#define R_IA64_PCREL21M 0x4a
-#define R_IA64_PCREL21F 0x4b
-#define R_IA64_PCREL32MSB 0x4c
-#define R_IA64_PCREL32LSB 0x4d
-#define R_IA64_PCREL64MSB 0x4e
-#define R_IA64_PCREL64LSB 0x4f
-#define R_IA64_LTOFF_FPTR22 0x52
-#define R_IA64_LTOFF_FPTR64I 0x53
-#define R_IA64_LTOFF_FPTR32MSB 0x54
-#define R_IA64_LTOFF_FPTR32LSB 0x55
-#define R_IA64_LTOFF_FPTR64MSB 0x56
-#define R_IA64_LTOFF_FPTR64LSB 0x57
-#define R_IA64_SEGREL32MSB 0x5c
-#define R_IA64_SEGREL32LSB 0x5d
-#define R_IA64_SEGREL64MSB 0x5e
-#define R_IA64_SEGREL64LSB 0x5f
-#define R_IA64_SECREL32MSB 0x64
-#define R_IA64_SECREL32LSB 0x65
-#define R_IA64_SECREL64MSB 0x66
-#define R_IA64_SECREL64LSB 0x67
-#define R_IA64_REL32MSB 0x6c
-#define R_IA64_REL32LSB 0x6d
-#define R_IA64_REL64MSB 0x6e
-#define R_IA64_REL64LSB 0x6f
-#define R_IA64_LTV32MSB 0x74
-#define R_IA64_LTV32LSB 0x75
-#define R_IA64_LTV64MSB 0x76
-#define R_IA64_LTV64LSB 0x77
-#define R_IA64_PCREL21BI 0x79
-#define R_IA64_PCREL22 0x7a
-#define R_IA64_PCREL64I 0x7b
-#define R_IA64_IPLTMSB 0x80
-#define R_IA64_IPLTLSB 0x81
-#define R_IA64_COPY 0x84
-#define R_IA64_SUB 0x85
-#define R_IA64_LTOFF22X 0x86
-#define R_IA64_LDXMOV 0x87
-#define R_IA64_TPREL14 0x91
-#define R_IA64_TPREL22 0x92
-#define R_IA64_TPREL64I 0x93
-#define R_IA64_TPREL64MSB 0x96
-#define R_IA64_TPREL64LSB 0x97
-#define R_IA64_LTOFF_TPREL22 0x9a
-#define R_IA64_DTPMOD64MSB 0xa6
-#define R_IA64_DTPMOD64LSB 0xa7
-#define R_IA64_LTOFF_DTPMOD22 0xaa
-#define R_IA64_DTPREL14 0xb1
-#define R_IA64_DTPREL22 0xb2
-#define R_IA64_DTPREL64I 0xb3
-#define R_IA64_DTPREL32MSB 0xb4
-#define R_IA64_DTPREL32LSB 0xb5
-#define R_IA64_DTPREL64MSB 0xb6
-#define R_IA64_DTPREL64LSB 0xb7
-#define R_IA64_LTOFF_DTPREL22 0xba
-
-
-#define EF_SH_MACH_MASK 0x1f
-#define EF_SH_UNKNOWN 0x0
-#define EF_SH1 0x1
-#define EF_SH2 0x2
-#define EF_SH3 0x3
-#define EF_SH_DSP 0x4
-#define EF_SH3_DSP 0x5
-#define EF_SH4AL_DSP 0x6
-#define EF_SH3E 0x8
-#define EF_SH4 0x9
-#define EF_SH2E 0xb
-#define EF_SH4A 0xc
-#define EF_SH2A 0xd
-#define EF_SH4_NOFPU 0x10
-#define EF_SH4A_NOFPU 0x11
-#define EF_SH4_NOMMU_NOFPU 0x12
-#define EF_SH2A_NOFPU 0x13
-#define EF_SH3_NOMMU 0x14
-#define EF_SH2A_SH4_NOFPU 0x15
-#define EF_SH2A_SH3_NOFPU 0x16
-#define EF_SH2A_SH4 0x17
-#define EF_SH2A_SH3E 0x18
-
-#define R_SH_NONE 0
-#define R_SH_DIR32 1
-#define R_SH_REL32 2
-#define R_SH_DIR8WPN 3
-#define R_SH_IND12W 4
-#define R_SH_DIR8WPL 5
-#define R_SH_DIR8WPZ 6
-#define R_SH_DIR8BP 7
-#define R_SH_DIR8W 8
-#define R_SH_DIR8L 9
-#define R_SH_SWITCH16 25
-#define R_SH_SWITCH32 26
-#define R_SH_USES 27
-#define R_SH_COUNT 28
-#define R_SH_ALIGN 29
-#define R_SH_CODE 30
-#define R_SH_DATA 31
-#define R_SH_LABEL 32
-#define R_SH_SWITCH8 33
-#define R_SH_GNU_VTINHERIT 34
-#define R_SH_GNU_VTENTRY 35
-#define R_SH_TLS_GD_32 144
-#define R_SH_TLS_LD_32 145
-#define R_SH_TLS_LDO_32 146
-#define R_SH_TLS_IE_32 147
-#define R_SH_TLS_LE_32 148
-#define R_SH_TLS_DTPMOD32 149
-#define R_SH_TLS_DTPOFF32 150
-#define R_SH_TLS_TPOFF32 151
-#define R_SH_GOT32 160
-#define R_SH_PLT32 161
-#define R_SH_COPY 162
-#define R_SH_GLOB_DAT 163
-#define R_SH_JMP_SLOT 164
-#define R_SH_RELATIVE 165
-#define R_SH_GOTOFF 166
-#define R_SH_GOTPC 167
-#define R_SH_GOT20 201
-#define R_SH_GOTOFF20 202
-#define R_SH_GOTFUNCDESC 203
-#define R_SH_GOTFUNCDEST20 204
-#define R_SH_GOTOFFFUNCDESC 205
-#define R_SH_GOTOFFFUNCDEST20 206
-#define R_SH_FUNCDESC 207
-#define R_SH_FUNCDESC_VALUE 208
-
-#define R_SH_NUM 256
-
-
-
-#define R_390_NONE 0
-#define R_390_8 1
-#define R_390_12 2
-#define R_390_16 3
-#define R_390_32 4
-#define R_390_PC32 5
-#define R_390_GOT12 6
-#define R_390_GOT32 7
-#define R_390_PLT32 8
-#define R_390_COPY 9
-#define R_390_GLOB_DAT 10
-#define R_390_JMP_SLOT 11
-#define R_390_RELATIVE 12
-#define R_390_GOTOFF32 13
-#define R_390_GOTPC 14
-#define R_390_GOT16 15
-#define R_390_PC16 16
-#define R_390_PC16DBL 17
-#define R_390_PLT16DBL 18
-#define R_390_PC32DBL 19
-#define R_390_PLT32DBL 20
-#define R_390_GOTPCDBL 21
-#define R_390_64 22
-#define R_390_PC64 23
-#define R_390_GOT64 24
-#define R_390_PLT64 25
-#define R_390_GOTENT 26
-#define R_390_GOTOFF16 27
-#define R_390_GOTOFF64 28
-#define R_390_GOTPLT12 29
-#define R_390_GOTPLT16 30
-#define R_390_GOTPLT32 31
-#define R_390_GOTPLT64 32
-#define R_390_GOTPLTENT 33
-#define R_390_PLTOFF16 34
-#define R_390_PLTOFF32 35
-#define R_390_PLTOFF64 36
-#define R_390_TLS_LOAD 37
-#define R_390_TLS_GDCALL 38
-
-#define R_390_TLS_LDCALL 39
-
-#define R_390_TLS_GD32 40
-
-#define R_390_TLS_GD64 41
-
-#define R_390_TLS_GOTIE12 42
-
-#define R_390_TLS_GOTIE32 43
-
-#define R_390_TLS_GOTIE64 44
-
-#define R_390_TLS_LDM32 45
-
-#define R_390_TLS_LDM64 46
-
-#define R_390_TLS_IE32 47
-
-#define R_390_TLS_IE64 48
-
-#define R_390_TLS_IEENT 49
-
-#define R_390_TLS_LE32 50
-
-#define R_390_TLS_LE64 51
-
-#define R_390_TLS_LDO32 52
-
-#define R_390_TLS_LDO64 53
-
-#define R_390_TLS_DTPMOD 54
-#define R_390_TLS_DTPOFF 55
-#define R_390_TLS_TPOFF 56
-
-#define R_390_20 57
-#define R_390_GOT20 58
-#define R_390_GOTPLT20 59
-#define R_390_TLS_GOTIE20 60
-
-
-#define R_390_NUM 61
-
-
-
-#define R_CRIS_NONE 0
-#define R_CRIS_8 1
-#define R_CRIS_16 2
-#define R_CRIS_32 3
-#define R_CRIS_8_PCREL 4
-#define R_CRIS_16_PCREL 5
-#define R_CRIS_32_PCREL 6
-#define R_CRIS_GNU_VTINHERIT 7
-#define R_CRIS_GNU_VTENTRY 8
-#define R_CRIS_COPY 9
-#define R_CRIS_GLOB_DAT 10
-#define R_CRIS_JUMP_SLOT 11
-#define R_CRIS_RELATIVE 12
-#define R_CRIS_16_GOT 13
-#define R_CRIS_32_GOT 14
-#define R_CRIS_16_GOTPLT 15
-#define R_CRIS_32_GOTPLT 16
-#define R_CRIS_32_GOTREL 17
-#define R_CRIS_32_PLT_GOTREL 18
-#define R_CRIS_32_PLT_PCREL 19
-
-#define R_CRIS_NUM 20
-
-
-
-#define R_X86_64_NONE 0
-#define R_X86_64_64 1
-#define R_X86_64_PC32 2
-#define R_X86_64_GOT32 3
-#define R_X86_64_PLT32 4
-#define R_X86_64_COPY 5
-#define R_X86_64_GLOB_DAT 6
-#define R_X86_64_JUMP_SLOT 7
-#define R_X86_64_RELATIVE 8
-#define R_X86_64_GOTPCREL 9
-
-#define R_X86_64_32 10
-#define R_X86_64_32S 11
-#define R_X86_64_16 12
-#define R_X86_64_PC16 13
-#define R_X86_64_8 14
-#define R_X86_64_PC8 15
-#define R_X86_64_DTPMOD64 16
-#define R_X86_64_DTPOFF64 17
-#define R_X86_64_TPOFF64 18
-#define R_X86_64_TLSGD 19
-
-#define R_X86_64_TLSLD 20
-
-#define R_X86_64_DTPOFF32 21
-#define R_X86_64_GOTTPOFF 22
-
-#define R_X86_64_TPOFF32 23
-#define R_X86_64_PC64 24
-#define R_X86_64_GOTOFF64 25
-#define R_X86_64_GOTPC32 26
-#define R_X86_64_GOT64 27
-#define R_X86_64_GOTPCREL64 28
-#define R_X86_64_GOTPC64 29
-#define R_X86_64_GOTPLT64 30
-#define R_X86_64_PLTOFF64 31
-#define R_X86_64_SIZE32 32
-#define R_X86_64_SIZE64 33
-
-#define R_X86_64_GOTPC32_TLSDESC 34
-#define R_X86_64_TLSDESC_CALL 35
-
-#define R_X86_64_TLSDESC 36
-#define R_X86_64_IRELATIVE 37
-#define R_X86_64_RELATIVE64 38
-#define R_X86_64_GOTPCRELX 41
-#define R_X86_64_REX_GOTPCRELX 42
-#define R_X86_64_NUM 43
-
-
-
-#define R_MN10300_NONE 0
-#define R_MN10300_32 1
-#define R_MN10300_16 2
-#define R_MN10300_8 3
-#define R_MN10300_PCREL32 4
-#define R_MN10300_PCREL16 5
-#define R_MN10300_PCREL8 6
-#define R_MN10300_GNU_VTINHERIT 7
-#define R_MN10300_GNU_VTENTRY 8
-#define R_MN10300_24 9
-#define R_MN10300_GOTPC32 10
-#define R_MN10300_GOTPC16 11
-#define R_MN10300_GOTOFF32 12
-#define R_MN10300_GOTOFF24 13
-#define R_MN10300_GOTOFF16 14
-#define R_MN10300_PLT32 15
-#define R_MN10300_PLT16 16
-#define R_MN10300_GOT32 17
-#define R_MN10300_GOT24 18
-#define R_MN10300_GOT16 19
-#define R_MN10300_COPY 20
-#define R_MN10300_GLOB_DAT 21
-#define R_MN10300_JMP_SLOT 22
-#define R_MN10300_RELATIVE 23
-
-#define R_MN10300_NUM 24
-
-
-
-#define R_M32R_NONE 0
-#define R_M32R_16 1
-#define R_M32R_32 2
-#define R_M32R_24 3
-#define R_M32R_10_PCREL 4
-#define R_M32R_18_PCREL 5
-#define R_M32R_26_PCREL 6
-#define R_M32R_HI16_ULO 7
-#define R_M32R_HI16_SLO 8
-#define R_M32R_LO16 9
-#define R_M32R_SDA16 10
-#define R_M32R_GNU_VTINHERIT 11
-#define R_M32R_GNU_VTENTRY 12
-
-#define R_M32R_16_RELA 33
-#define R_M32R_32_RELA 34
-#define R_M32R_24_RELA 35
-#define R_M32R_10_PCREL_RELA 36
-#define R_M32R_18_PCREL_RELA 37
-#define R_M32R_26_PCREL_RELA 38
-#define R_M32R_HI16_ULO_RELA 39
-#define R_M32R_HI16_SLO_RELA 40
-#define R_M32R_LO16_RELA 41
-#define R_M32R_SDA16_RELA 42
-#define R_M32R_RELA_GNU_VTINHERIT 43
-#define R_M32R_RELA_GNU_VTENTRY 44
-#define R_M32R_REL32 45
-
-#define R_M32R_GOT24 48
-#define R_M32R_26_PLTREL 49
-#define R_M32R_COPY 50
-#define R_M32R_GLOB_DAT 51
-#define R_M32R_JMP_SLOT 52
-#define R_M32R_RELATIVE 53
-#define R_M32R_GOTOFF 54
-#define R_M32R_GOTPC24 55
-#define R_M32R_GOT16_HI_ULO 56
-
-#define R_M32R_GOT16_HI_SLO 57
-
-#define R_M32R_GOT16_LO 58
-#define R_M32R_GOTPC_HI_ULO 59
-
-#define R_M32R_GOTPC_HI_SLO 60
-
-#define R_M32R_GOTPC_LO 61
-
-#define R_M32R_GOTOFF_HI_ULO 62
-
-#define R_M32R_GOTOFF_HI_SLO 63
-
-#define R_M32R_GOTOFF_LO 64
-#define R_M32R_NUM 256
-
-#define R_MICROBLAZE_NONE 0
-#define R_MICROBLAZE_32 1
-#define R_MICROBLAZE_32_PCREL 2
-#define R_MICROBLAZE_64_PCREL 3
-#define R_MICROBLAZE_32_PCREL_LO 4
-#define R_MICROBLAZE_64 5
-#define R_MICROBLAZE_32_LO 6
-#define R_MICROBLAZE_SRO32 7
-#define R_MICROBLAZE_SRW32 8
-#define R_MICROBLAZE_64_NONE 9
-#define R_MICROBLAZE_32_SYM_OP_SYM 10
-#define R_MICROBLAZE_GNU_VTINHERIT 11
-#define R_MICROBLAZE_GNU_VTENTRY 12
-#define R_MICROBLAZE_GOTPC_64 13
-#define R_MICROBLAZE_GOT_64 14
-#define R_MICROBLAZE_PLT_64 15
-#define R_MICROBLAZE_REL 16
-#define R_MICROBLAZE_JUMP_SLOT 17
-#define R_MICROBLAZE_GLOB_DAT 18
-#define R_MICROBLAZE_GOTOFF_64 19
-#define R_MICROBLAZE_GOTOFF_32 20
-#define R_MICROBLAZE_COPY 21
-#define R_MICROBLAZE_TLS 22
-#define R_MICROBLAZE_TLSGD 23
-#define R_MICROBLAZE_TLSLD 24
-#define R_MICROBLAZE_TLSDTPMOD32 25
-#define R_MICROBLAZE_TLSDTPREL32 26
-#define R_MICROBLAZE_TLSDTPREL64 27
-#define R_MICROBLAZE_TLSGOTTPREL32 28
-#define R_MICROBLAZE_TLSTPREL32 29
-
-#define DT_NIOS2_GP 0x70000002
-
-#define R_NIOS2_NONE 0
-#define R_NIOS2_S16 1
-#define R_NIOS2_U16 2
-#define R_NIOS2_PCREL16 3
-#define R_NIOS2_CALL26 4
-#define R_NIOS2_IMM5 5
-#define R_NIOS2_CACHE_OPX 6
-#define R_NIOS2_IMM6 7
-#define R_NIOS2_IMM8 8
-#define R_NIOS2_HI16 9
-#define R_NIOS2_LO16 10
-#define R_NIOS2_HIADJ16 11
-#define R_NIOS2_BFD_RELOC_32 12
-#define R_NIOS2_BFD_RELOC_16 13
-#define R_NIOS2_BFD_RELOC_8 14
-#define R_NIOS2_GPREL 15
-#define R_NIOS2_GNU_VTINHERIT 16
-#define R_NIOS2_GNU_VTENTRY 17
-#define R_NIOS2_UJMP 18
-#define R_NIOS2_CJMP 19
-#define R_NIOS2_CALLR 20
-#define R_NIOS2_ALIGN 21
-#define R_NIOS2_GOT16 22
-#define R_NIOS2_CALL16 23
-#define R_NIOS2_GOTOFF_LO 24
-#define R_NIOS2_GOTOFF_HA 25
-#define R_NIOS2_PCREL_LO 26
-#define R_NIOS2_PCREL_HA 27
-#define R_NIOS2_TLS_GD16 28
-#define R_NIOS2_TLS_LDM16 29
-#define R_NIOS2_TLS_LDO16 30
-#define R_NIOS2_TLS_IE16 31
-#define R_NIOS2_TLS_LE16 32
-#define R_NIOS2_TLS_DTPMOD 33
-#define R_NIOS2_TLS_DTPREL 34
-#define R_NIOS2_TLS_TPREL 35
-#define R_NIOS2_COPY 36
-#define R_NIOS2_GLOB_DAT 37
-#define R_NIOS2_JUMP_SLOT 38
-#define R_NIOS2_RELATIVE 39
-#define R_NIOS2_GOTOFF 40
-#define R_NIOS2_CALL26_NOAT 41
-#define R_NIOS2_GOT_LO 42
-#define R_NIOS2_GOT_HA 43
-#define R_NIOS2_CALL_LO 44
-#define R_NIOS2_CALL_HA 45
-
-#define R_OR1K_NONE 0
-#define R_OR1K_32 1
-#define R_OR1K_16 2
-#define R_OR1K_8 3
-#define R_OR1K_LO_16_IN_INSN 4
-#define R_OR1K_HI_16_IN_INSN 5
-#define R_OR1K_INSN_REL_26 6
-#define R_OR1K_GNU_VTENTRY 7
-#define R_OR1K_GNU_VTINHERIT 8
-#define R_OR1K_32_PCREL 9
-#define R_OR1K_16_PCREL 10
-#define R_OR1K_8_PCREL 11
-#define R_OR1K_GOTPC_HI16 12
-#define R_OR1K_GOTPC_LO16 13
-#define R_OR1K_GOT16 14
-#define R_OR1K_PLT26 15
-#define R_OR1K_GOTOFF_HI16 16
-#define R_OR1K_GOTOFF_LO16 17
-#define R_OR1K_COPY 18
-#define R_OR1K_GLOB_DAT 19
-#define R_OR1K_JMP_SLOT 20
-#define R_OR1K_RELATIVE 21
-#define R_OR1K_TLS_GD_HI16 22
-#define R_OR1K_TLS_GD_LO16 23
-#define R_OR1K_TLS_LDM_HI16 24
-#define R_OR1K_TLS_LDM_LO16 25
-#define R_OR1K_TLS_LDO_HI16 26
-#define R_OR1K_TLS_LDO_LO16 27
-#define R_OR1K_TLS_IE_HI16 28
-#define R_OR1K_TLS_IE_LO16 29
-#define R_OR1K_TLS_LE_HI16 30
-#define R_OR1K_TLS_LE_LO16 31
-#define R_OR1K_TLS_TPOFF 32
-#define R_OR1K_TLS_DTPOFF 33
-#define R_OR1K_TLS_DTPMOD 34
-
-#define R_BPF_NONE 0
-#define R_BPF_MAP_FD 1
-
-#define R_RISCV_NONE 0
-#define R_RISCV_32 1
-#define R_RISCV_64 2
-#define R_RISCV_RELATIVE 3
-#define R_RISCV_COPY 4
-#define R_RISCV_JUMP_SLOT 5
-#define R_RISCV_TLS_DTPMOD32 6
-#define R_RISCV_TLS_DTPMOD64 7
-#define R_RISCV_TLS_DTPREL32 8
-#define R_RISCV_TLS_DTPREL64 9
-#define R_RISCV_TLS_TPREL32 10
-#define R_RISCV_TLS_TPREL64 11
-#define R_RISCV_TLSDESC 12
-
-#define R_RISCV_BRANCH 16
-#define R_RISCV_JAL 17
-#define R_RISCV_CALL 18
-#define R_RISCV_CALL_PLT 19
-#define R_RISCV_GOT_HI20 20
-#define R_RISCV_TLS_GOT_HI20 21
-#define R_RISCV_TLS_GD_HI20 22
-#define R_RISCV_PCREL_HI20 23
-#define R_RISCV_PCREL_LO12_I 24
-#define R_RISCV_PCREL_LO12_S 25
-#define R_RISCV_HI20 26
-#define R_RISCV_LO12_I 27
-#define R_RISCV_LO12_S 28
-#define R_RISCV_TPREL_HI20 29
-#define R_RISCV_TPREL_LO12_I 30
-#define R_RISCV_TPREL_LO12_S 31
-#define R_RISCV_TPREL_ADD 32
-#define R_RISCV_ADD8 33
-#define R_RISCV_ADD16 34
-#define R_RISCV_ADD32 35
-#define R_RISCV_ADD64 36
-#define R_RISCV_SUB8 37
-#define R_RISCV_SUB16 38
-#define R_RISCV_SUB32 39
-#define R_RISCV_SUB64 40
-#define R_RISCV_GOT32_PCREL 41
-#define R_RISCV_ALIGN 43
-#define R_RISCV_RVC_BRANCH 44
-#define R_RISCV_RVC_JUMP 45
-#define R_RISCV_RVC_LUI 46
-#define R_RISCV_RELAX 51
-#define R_RISCV_SUB6 52
-#define R_RISCV_SET6 53
-#define R_RISCV_SET8 54
-#define R_RISCV_SET16 55
-#define R_RISCV_SET32 56
-#define R_RISCV_32_PCREL 57
-#define R_RISCV_IRELATIVE 58
-#define R_RISCV_PLT32 59
-#define R_RISCV_SET_ULEB128 60
-#define R_RISCV_SUB_ULEB128 61
-#define R_RISCV_TLSDESC_HI20 62
-#define R_RISCV_TLSDESC_LOAD_LO12 63
-#define R_RISCV_TLSDESC_ADD_LO12 64
-#define R_RISCV_TLSDESC_CALL 65
-
-#define EF_LARCH_ABI_MODIFIER_MASK 0x07
-#define EF_LARCH_ABI_SOFT_FLOAT 0x01
-#define EF_LARCH_ABI_SINGLE_FLOAT 0x02
-#define EF_LARCH_ABI_DOUBLE_FLOAT 0x03
-#define EF_LARCH_OBJABI_V1 0x40
-
-#define R_LARCH_NONE 0
-#define R_LARCH_32 1
-#define R_LARCH_64 2
-#define R_LARCH_RELATIVE 3
-#define R_LARCH_COPY 4
-#define R_LARCH_JUMP_SLOT 5
-#define R_LARCH_TLS_DTPMOD32 6
-#define R_LARCH_TLS_DTPMOD64 7
-#define R_LARCH_TLS_DTPREL32 8
-#define R_LARCH_TLS_DTPREL64 9
-#define R_LARCH_TLS_TPREL32 10
-#define R_LARCH_TLS_TPREL64 11
-#define R_LARCH_IRELATIVE 12
-#define R_LARCH_MARK_LA 20
-#define R_LARCH_MARK_PCREL 21
-#define R_LARCH_SOP_PUSH_PCREL 22
-#define R_LARCH_SOP_PUSH_ABSOLUTE 23
-#define R_LARCH_SOP_PUSH_DUP 24
-#define R_LARCH_SOP_PUSH_GPREL 25
-#define R_LARCH_SOP_PUSH_TLS_TPREL 26
-#define R_LARCH_SOP_PUSH_TLS_GOT 27
-#define R_LARCH_SOP_PUSH_TLS_GD 28
-#define R_LARCH_SOP_PUSH_PLT_PCREL 29
-#define R_LARCH_SOP_ASSERT 30
-#define R_LARCH_SOP_NOT 31
-#define R_LARCH_SOP_SUB 32
-#define R_LARCH_SOP_SL 33
-#define R_LARCH_SOP_SR 34
-#define R_LARCH_SOP_ADD 35
-#define R_LARCH_SOP_AND 36
-#define R_LARCH_SOP_IF_ELSE 37
-#define R_LARCH_SOP_POP_32_S_10_5 38
-#define R_LARCH_SOP_POP_32_U_10_12 39
-#define R_LARCH_SOP_POP_32_S_10_12 40
-#define R_LARCH_SOP_POP_32_S_10_16 41
-#define R_LARCH_SOP_POP_32_S_10_16_S2 42
-#define R_LARCH_SOP_POP_32_S_5_20 43
-#define R_LARCH_SOP_POP_32_S_0_5_10_16_S2 44
-#define R_LARCH_SOP_POP_32_S_0_10_10_16_S2 45
-#define R_LARCH_SOP_POP_32_U 46
-#define R_LARCH_ADD8 47
-#define R_LARCH_ADD16 48
-#define R_LARCH_ADD24 49
-#define R_LARCH_ADD32 50
-#define R_LARCH_ADD64 51
-#define R_LARCH_SUB8 52
-#define R_LARCH_SUB16 53
-#define R_LARCH_SUB24 54
-#define R_LARCH_SUB32 55
-#define R_LARCH_SUB64 56
-#define R_LARCH_GNU_VTINHERIT 57
-#define R_LARCH_GNU_VTENTRY 58
-#define R_LARCH_B16 64
-#define R_LARCH_B21 65
-#define R_LARCH_B26 66
-#define R_LARCH_ABS_HI20 67
-#define R_LARCH_ABS_LO12 68
-#define R_LARCH_ABS64_LO20 69
-#define R_LARCH_ABS64_HI12 70
-#define R_LARCH_PCALA_HI20 71
-#define R_LARCH_PCALA_LO12 72
-#define R_LARCH_PCALA64_LO20 73
-#define R_LARCH_PCALA64_HI12 74
-#define R_LARCH_GOT_PC_HI20 75
-#define R_LARCH_GOT_PC_LO12 76
-#define R_LARCH_GOT64_PC_LO20 77
-#define R_LARCH_GOT64_PC_HI12 78
-#define R_LARCH_GOT_HI20 79
-#define R_LARCH_GOT_LO12 80
-#define R_LARCH_GOT64_LO20 81
-#define R_LARCH_GOT64_HI12 82
-#define R_LARCH_TLS_LE_HI20 83
-#define R_LARCH_TLS_LE_LO12 84
-#define R_LARCH_TLS_LE64_LO20 85
-#define R_LARCH_TLS_LE64_HI12 86
-#define R_LARCH_TLS_IE_PC_HI20 87
-#define R_LARCH_TLS_IE_PC_LO12 88
-#define R_LARCH_TLS_IE64_PC_LO20 89
-#define R_LARCH_TLS_IE64_PC_HI12 90
-#define R_LARCH_TLS_IE_HI20 91
-#define R_LARCH_TLS_IE_LO12 92
-#define R_LARCH_TLS_IE64_LO20 93
-#define R_LARCH_TLS_IE64_HI12 94
-#define R_LARCH_TLS_LD_PC_HI20 95
-#define R_LARCH_TLS_LD_HI20 96
-#define R_LARCH_TLS_GD_PC_HI20 97
-#define R_LARCH_TLS_GD_HI20 98
-#define R_LARCH_32_PCREL 99
-#define R_LARCH_RELAX 100
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif
diff --git a/musl/endian.h b/musl/endian.h
deleted file mode 100644
index 172c432..0000000
--- a/musl/endian.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef _ENDIAN_H
-#define _ENDIAN_H
-
-#include <features.h>
-
-#define __NEED_uint16_t
-#define __NEED_uint32_t
-#define __NEED_uint64_t
-
-#include <bits/alltypes.h>
-
-#define __PDP_ENDIAN 3412
-
-#define BIG_ENDIAN __BIG_ENDIAN
-#define LITTLE_ENDIAN __LITTLE_ENDIAN
-#define PDP_ENDIAN __PDP_ENDIAN
-#define BYTE_ORDER __BYTE_ORDER
-
-static __inline uint16_t __bswap16(uint16_t __x)
-{
- return __x<<8 | __x>>8;
-}
-
-static __inline uint32_t __bswap32(uint32_t __x)
-{
- return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;
-}
-
-static __inline uint64_t __bswap64(uint64_t __x)
-{
- return __bswap32(__x)+0ULL<<32 | __bswap32(__x>>32);
-}
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define htobe16(x) __bswap16(x)
-#define be16toh(x) __bswap16(x)
-#define htobe32(x) __bswap32(x)
-#define be32toh(x) __bswap32(x)
-#define htobe64(x) __bswap64(x)
-#define be64toh(x) __bswap64(x)
-#define htole16(x) (uint16_t)(x)
-#define le16toh(x) (uint16_t)(x)
-#define htole32(x) (uint32_t)(x)
-#define le32toh(x) (uint32_t)(x)
-#define htole64(x) (uint64_t)(x)
-#define le64toh(x) (uint64_t)(x)
-#else
-#define htobe16(x) (uint16_t)(x)
-#define be16toh(x) (uint16_t)(x)
-#define htobe32(x) (uint32_t)(x)
-#define be32toh(x) (uint32_t)(x)
-#define htobe64(x) (uint64_t)(x)
-#define be64toh(x) (uint64_t)(x)
-#define htole16(x) __bswap16(x)
-#define le16toh(x) __bswap16(x)
-#define htole32(x) __bswap32(x)
-#define le32toh(x) __bswap32(x)
-#define htole64(x) __bswap64(x)
-#define le64toh(x) __bswap64(x)
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define betoh16(x) __bswap16(x)
-#define betoh32(x) __bswap32(x)
-#define betoh64(x) __bswap64(x)
-#define letoh16(x) (uint16_t)(x)
-#define letoh32(x) (uint32_t)(x)
-#define letoh64(x) (uint64_t)(x)
-#else
-#define betoh16(x) (uint16_t)(x)
-#define betoh32(x) (uint32_t)(x)
-#define betoh64(x) (uint64_t)(x)
-#define letoh16(x) __bswap16(x)
-#define letoh32(x) __bswap32(x)
-#define letoh64(x) __bswap64(x)
-#endif
-#endif
-
-#endif
diff --git a/musl/err.h b/musl/err.h
deleted file mode 100644
index 9f5cb6b..0000000
--- a/musl/err.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _ERR_H
-#define _ERR_H
-
-#include <features.h>
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void warn(const char *, ...);
-void vwarn(const char *, va_list);
-void warnx(const char *, ...);
-void vwarnx(const char *, va_list);
-
-_Noreturn void err(int, const char *, ...);
-_Noreturn void verr(int, const char *, va_list);
-_Noreturn void errx(int, const char *, ...);
-_Noreturn void verrx(int, const char *, va_list);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/errno.h b/musl/errno.h
deleted file mode 100644
index 0361b33..0000000
--- a/musl/errno.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _ERRNO_H
-#define _ERRNO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#include <bits/errno.h>
-
-#ifdef __GNUC__
-__attribute__((const))
-#endif
-int *__errno_location(void);
-#define errno (*__errno_location())
-
-#ifdef _GNU_SOURCE
-extern char *program_invocation_short_name, *program_invocation_name;
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/musl/fcntl.h b/musl/fcntl.h
deleted file mode 100644
index 53f98a8..0000000
--- a/musl/fcntl.h
+++ /dev/null
@@ -1,218 +0,0 @@
-#ifndef _FCNTL_H
-#define _FCNTL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_off_t
-#define __NEED_pid_t
-#define __NEED_mode_t
-
-#ifdef _GNU_SOURCE
-#define __NEED_size_t
-#define __NEED_ssize_t
-#define __NEED_struct_iovec
-#endif
-
-#include <bits/alltypes.h>
-
-#include <bits/fcntl.h>
-
-struct flock {
- short l_type;
- short l_whence;
- off_t l_start;
- off_t l_len;
- pid_t l_pid;
-};
-
-int creat(const char *, mode_t);
-int fcntl(int, int, ...);
-int open(const char *, int, ...);
-int openat(int, const char *, int, ...);
-int posix_fadvise(int, off_t, off_t, int);
-int posix_fallocate(int, off_t, off_t);
-
-#define O_SEARCH O_PATH
-#define O_EXEC O_PATH
-#define O_TTY_INIT 0
-
-#define O_ACCMODE (03|O_SEARCH)
-#define O_RDONLY 00
-#define O_WRONLY 01
-#define O_RDWR 02
-
-#define F_OFD_GETLK 36
-#define F_OFD_SETLK 37
-#define F_OFD_SETLKW 38
-
-#define F_DUPFD_CLOEXEC 1030
-
-#define F_RDLCK 0
-#define F_WRLCK 1
-#define F_UNLCK 2
-
-#define FD_CLOEXEC 1
-
-#define AT_FDCWD (-100)
-#define AT_SYMLINK_NOFOLLOW 0x100
-#define AT_REMOVEDIR 0x200
-#define AT_SYMLINK_FOLLOW 0x400
-#define AT_EACCESS 0x200
-
-#define POSIX_FADV_NORMAL 0
-#define POSIX_FADV_RANDOM 1
-#define POSIX_FADV_SEQUENTIAL 2
-#define POSIX_FADV_WILLNEED 3
-#ifndef POSIX_FADV_DONTNEED
-#define POSIX_FADV_DONTNEED 4
-#define POSIX_FADV_NOREUSE 5
-#endif
-
-#undef SEEK_SET
-#undef SEEK_CUR
-#undef SEEK_END
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-
-#ifndef S_IRUSR
-#define S_ISUID 04000
-#define S_ISGID 02000
-#define S_ISVTX 01000
-#define S_IRUSR 0400
-#define S_IWUSR 0200
-#define S_IXUSR 0100
-#define S_IRWXU 0700
-#define S_IRGRP 0040
-#define S_IWGRP 0020
-#define S_IXGRP 0010
-#define S_IRWXG 0070
-#define S_IROTH 0004
-#define S_IWOTH 0002
-#define S_IXOTH 0001
-#define S_IRWXO 0007
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define AT_NO_AUTOMOUNT 0x800
-#define AT_EMPTY_PATH 0x1000
-#define AT_STATX_SYNC_TYPE 0x6000
-#define AT_STATX_SYNC_AS_STAT 0x0000
-#define AT_STATX_FORCE_SYNC 0x2000
-#define AT_STATX_DONT_SYNC 0x4000
-#define AT_RECURSIVE 0x8000
-
-#define FAPPEND O_APPEND
-#define FFSYNC O_SYNC
-#define FASYNC O_ASYNC
-#define FNONBLOCK O_NONBLOCK
-#define FNDELAY O_NDELAY
-
-#define F_OK 0
-#define R_OK 4
-#define W_OK 2
-#define X_OK 1
-#define F_ULOCK 0
-#define F_LOCK 1
-#define F_TLOCK 2
-#define F_TEST 3
-
-#define F_SETLEASE 1024
-#define F_GETLEASE 1025
-#define F_NOTIFY 1026
-#define F_CANCELLK 1029
-#define F_SETPIPE_SZ 1031
-#define F_GETPIPE_SZ 1032
-#define F_ADD_SEALS 1033
-#define F_GET_SEALS 1034
-
-#define F_SEAL_SEAL 0x0001
-#define F_SEAL_SHRINK 0x0002
-#define F_SEAL_GROW 0x0004
-#define F_SEAL_WRITE 0x0008
-#define F_SEAL_FUTURE_WRITE 0x0010
-
-#define F_GET_RW_HINT 1035
-#define F_SET_RW_HINT 1036
-#define F_GET_FILE_RW_HINT 1037
-#define F_SET_FILE_RW_HINT 1038
-
-#define RWF_WRITE_LIFE_NOT_SET 0
-#define RWH_WRITE_LIFE_NONE 1
-#define RWH_WRITE_LIFE_SHORT 2
-#define RWH_WRITE_LIFE_MEDIUM 3
-#define RWH_WRITE_LIFE_LONG 4
-#define RWH_WRITE_LIFE_EXTREME 5
-
-#define DN_ACCESS 0x00000001
-#define DN_MODIFY 0x00000002
-#define DN_CREATE 0x00000004
-#define DN_DELETE 0x00000008
-#define DN_RENAME 0x00000010
-#define DN_ATTRIB 0x00000020
-#define DN_MULTISHOT 0x80000000
-
-int lockf(int, int, off_t);
-#endif
-
-#if defined(_GNU_SOURCE)
-#define F_OWNER_TID 0
-#define F_OWNER_PID 1
-#define F_OWNER_PGRP 2
-#define F_OWNER_GID 2
-struct file_handle {
- unsigned handle_bytes;
- int handle_type;
- unsigned char f_handle[];
-};
-struct f_owner_ex {
- int type;
- pid_t pid;
-};
-#define FALLOC_FL_KEEP_SIZE 1
-#define FALLOC_FL_PUNCH_HOLE 2
-#define MAX_HANDLE_SZ 128
-#define SYNC_FILE_RANGE_WAIT_BEFORE 1
-#define SYNC_FILE_RANGE_WRITE 2
-#define SYNC_FILE_RANGE_WAIT_AFTER 4
-#define SPLICE_F_MOVE 1
-#define SPLICE_F_NONBLOCK 2
-#define SPLICE_F_MORE 4
-#define SPLICE_F_GIFT 8
-int fallocate(int, int, off_t, off_t);
-int name_to_handle_at(int, const char *, struct file_handle *, int *, int);
-int open_by_handle_at(int, struct file_handle *, int);
-ssize_t readahead(int, off_t, size_t);
-int sync_file_range(int, off_t, off_t, unsigned);
-ssize_t vmsplice(int, const struct iovec *, size_t, unsigned);
-ssize_t splice(int, off_t *, int, off_t *, size_t, unsigned);
-ssize_t tee(int, int, size_t, unsigned);
-#define loff_t off_t
-#endif
-
-#if defined(_LARGEFILE64_SOURCE)
-#define F_GETLK64 F_GETLK
-#define F_SETLK64 F_SETLK
-#define F_SETLKW64 F_SETLKW
-#define flock64 flock
-#define open64 open
-#define openat64 openat
-#define creat64 creat
-#define lockf64 lockf
-#define posix_fadvise64 posix_fadvise
-#define posix_fallocate64 posix_fallocate
-#define off64_t off_t
-#if defined(_GNU_SOURCE)
-#define fallocate64 fallocate
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/features.h b/musl/features.h
deleted file mode 100644
index 85cfb72..0000000
--- a/musl/features.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _FEATURES_H
-#define _FEATURES_H
-
-#if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE)
-#define _GNU_SOURCE 1
-#endif
-
-#if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE)
-#define _BSD_SOURCE 1
-#endif
-
-#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \
- && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \
- && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)
-#define _BSD_SOURCE 1
-#define _XOPEN_SOURCE 700
-#endif
-
-#if __STDC_VERSION__ >= 199901L
-#define __restrict restrict
-#elif !defined(__GNUC__)
-#define __restrict
-#endif
-
-#if __STDC_VERSION__ >= 199901L || defined(__cplusplus)
-#define __inline inline
-#elif !defined(__GNUC__)
-#define __inline
-#endif
-
-#if __STDC_VERSION__ >= 201112L
-#elif defined(__GNUC__)
-#define _Noreturn __attribute__((__noreturn__))
-#else
-#define _Noreturn
-#endif
-
-#define __REDIR(x,y) __typeof__(x) x __asm__(#y)
-
-#endif
diff --git a/musl/fenv.h b/musl/fenv.h
deleted file mode 100644
index 05de990..0000000
--- a/musl/fenv.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _FENV_H
-#define _FENV_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <bits/fenv.h>
-
-int feclearexcept(int);
-int fegetexceptflag(fexcept_t *, int);
-int feraiseexcept(int);
-int fesetexceptflag(const fexcept_t *, int);
-int fetestexcept(int);
-
-int fegetround(void);
-int fesetround(int);
-
-int fegetenv(fenv_t *);
-int feholdexcept(fenv_t *);
-int fesetenv(const fenv_t *);
-int feupdateenv(const fenv_t *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
diff --git a/musl/float.h b/musl/float.h
deleted file mode 100644
index 713aadb..0000000
--- a/musl/float.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef _FLOAT_H
-#define _FLOAT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int __flt_rounds(void);
-#define FLT_ROUNDS (__flt_rounds())
-
-#define FLT_RADIX 2
-
-#define FLT_TRUE_MIN 1.40129846432481707092e-45F
-#define FLT_MIN 1.17549435082228750797e-38F
-#define FLT_MAX 3.40282346638528859812e+38F
-#define FLT_EPSILON 1.1920928955078125e-07F
-
-#define FLT_MANT_DIG 24
-#define FLT_MIN_EXP (-125)
-#define FLT_MAX_EXP 128
-#define FLT_HAS_SUBNORM 1
-
-#define FLT_DIG 6
-#define FLT_DECIMAL_DIG 9
-#define FLT_MIN_10_EXP (-37)
-#define FLT_MAX_10_EXP 38
-
-#define DBL_TRUE_MIN 4.94065645841246544177e-324
-#define DBL_MIN 2.22507385850720138309e-308
-#define DBL_MAX 1.79769313486231570815e+308
-#define DBL_EPSILON 2.22044604925031308085e-16
-
-#define DBL_MANT_DIG 53
-#define DBL_MIN_EXP (-1021)
-#define DBL_MAX_EXP 1024
-#define DBL_HAS_SUBNORM 1
-
-#define DBL_DIG 15
-#define DBL_DECIMAL_DIG 17
-#define DBL_MIN_10_EXP (-307)
-#define DBL_MAX_10_EXP 308
-
-#define LDBL_HAS_SUBNORM 1
-#define LDBL_DECIMAL_DIG DECIMAL_DIG
-
-#include <bits/float.h>
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/fmtmsg.h b/musl/fmtmsg.h
deleted file mode 100644
index d944b06..0000000
--- a/musl/fmtmsg.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef _FMTMSG_H
-#define _FMTMSG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MM_HARD 1
-#define MM_SOFT 2
-#define MM_FIRM 4
-
-#define MM_APPL 8
-#define MM_UTIL 16
-#define MM_OPSYS 32
-
-#define MM_RECOVER 64
-#define MM_NRECOV 128
-
-#define MM_PRINT 256
-#define MM_CONSOLE 512
-
-#define MM_NULLMC 0L
-
-#define MM_HALT 1
-#define MM_ERROR 2
-#define MM_WARNING 3
-#define MM_INFO 4
-#define MM_NOSEV 0
-
-#define MM_OK 0
-#define MM_NOTOK (-1)
-#define MM_NOMSG 1
-#define MM_NOCON 4
-
-#define MM_NULLLBL ((char*)0)
-#define MM_NULLTXT ((char*)0)
-#define MM_NULLACT ((char*)0)
-#define MM_NULLTAG ((char*)0)
-#define MM_NULLSEV 0
-
-int fmtmsg(long, const char *, int, const char *, const char *, const char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/fnmatch.h b/musl/fnmatch.h
deleted file mode 100644
index f959321..0000000
--- a/musl/fnmatch.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _FNMATCH_H
-#define _FNMATCH_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define FNM_PATHNAME 0x1
-#define FNM_NOESCAPE 0x2
-#define FNM_PERIOD 0x4
-#define FNM_LEADING_DIR 0x8
-#define FNM_CASEFOLD 0x10
-#define FNM_FILE_NAME FNM_PATHNAME
-
-#define FNM_NOMATCH 1
-#define FNM_NOSYS (-1)
-
-int fnmatch(const char *, const char *, int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/ftw.h b/musl/ftw.h
deleted file mode 100644
index d0445e8..0000000
--- a/musl/ftw.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef _FTW_H
-#define _FTW_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <sys/stat.h>
-
-#define FTW_F 1
-#define FTW_D 2
-#define FTW_DNR 3
-#define FTW_NS 4
-#define FTW_SL 5
-#define FTW_DP 6
-#define FTW_SLN 7
-
-#define FTW_PHYS 1
-#define FTW_MOUNT 2
-#define FTW_CHDIR 4
-#define FTW_DEPTH 8
-
-struct FTW {
- int base;
- int level;
-};
-
-int ftw(const char *, int (*)(const char *, const struct stat *, int), int);
-int nftw(const char *, int (*)(const char *, const struct stat *, int, struct FTW *), int, int);
-
-#if defined(_LARGEFILE64_SOURCE)
-#define ftw64 ftw
-#define nftw64 nftw
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/getopt.h b/musl/getopt.h
deleted file mode 100644
index 35cbd35..0000000
--- a/musl/getopt.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _GETOPT_H
-#define _GETOPT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int getopt(int, char * const [], const char *);
-extern char *optarg;
-extern int optind, opterr, optopt, optreset;
-
-struct option {
- const char *name;
- int has_arg;
- int *flag;
- int val;
-};
-
-int getopt_long(int, char *const *, const char *, const struct option *, int *);
-int getopt_long_only(int, char *const *, const char *, const struct option *, int *);
-
-#define no_argument 0
-#define required_argument 1
-#define optional_argument 2
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/glob.h b/musl/glob.h
deleted file mode 100644
index fed0674..0000000
--- a/musl/glob.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef _GLOB_H
-#define _GLOB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-
-#include <bits/alltypes.h>
-
-typedef struct {
- size_t gl_pathc;
- char **gl_pathv;
- size_t gl_offs;
- int __dummy1;
- void *__dummy2[5];
-} glob_t;
-
-int glob(const char *__restrict, int, int (*)(const char *, int), glob_t *__restrict);
-void globfree(glob_t *);
-
-#define GLOB_ERR 0x01
-#define GLOB_MARK 0x02
-#define GLOB_NOSORT 0x04
-#define GLOB_DOOFFS 0x08
-#define GLOB_NOCHECK 0x10
-#define GLOB_APPEND 0x20
-#define GLOB_NOESCAPE 0x40
-#define GLOB_PERIOD 0x80
-
-#define GLOB_TILDE 0x1000
-#define GLOB_TILDE_CHECK 0x4000
-
-#define GLOB_NOSPACE 1
-#define GLOB_ABORTED 2
-#define GLOB_NOMATCH 3
-#define GLOB_NOSYS 4
-
-#if defined(_LARGEFILE64_SOURCE)
-#define glob64 glob
-#define globfree64 globfree
-#define glob64_t glob_t
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/grp.h b/musl/grp.h
deleted file mode 100644
index 27e8c5e..0000000
--- a/musl/grp.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef _GRP_H
-#define _GRP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-#define __NEED_gid_t
-
-#ifdef _GNU_SOURCE
-#define __NEED_FILE
-#endif
-
-#include <bits/alltypes.h>
-
-struct group {
- char *gr_name;
- char *gr_passwd;
- gid_t gr_gid;
- char **gr_mem;
-};
-
-struct group *getgrgid(gid_t);
-struct group *getgrnam(const char *);
-
-int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);
-int getgrnam_r(const char *, struct group *, char *, size_t, struct group **);
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-struct group *getgrent(void);
-void endgrent(void);
-void setgrent(void);
-#endif
-
-#ifdef _GNU_SOURCE
-struct group *fgetgrent(FILE *);
-int putgrent(const struct group *, FILE *);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-int getgrouplist(const char *, gid_t, gid_t *, int *);
-int setgroups(size_t, const gid_t *);
-int initgroups(const char *, gid_t);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/iconv.h b/musl/iconv.h
deleted file mode 100644
index ebe9bfd..0000000
--- a/musl/iconv.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _ICONV_H
-#define _ICONV_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-
-#include <bits/alltypes.h>
-
-typedef void *iconv_t;
-
-iconv_t iconv_open(const char *, const char *);
-size_t iconv(iconv_t, char **__restrict, size_t *__restrict, char **__restrict, size_t *__restrict);
-int iconv_close(iconv_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/ifaddrs.h b/musl/ifaddrs.h
deleted file mode 100644
index c0328a8..0000000
--- a/musl/ifaddrs.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _IFADDRS_H
-#define _IFADDRS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-
-struct ifaddrs {
- struct ifaddrs *ifa_next;
- char *ifa_name;
- unsigned ifa_flags;
- struct sockaddr *ifa_addr;
- struct sockaddr *ifa_netmask;
- union {
- struct sockaddr *ifu_broadaddr;
- struct sockaddr *ifu_dstaddr;
- } ifa_ifu;
- void *ifa_data;
-};
-#define ifa_broadaddr ifa_ifu.ifu_broadaddr
-#define ifa_dstaddr ifa_ifu.ifu_dstaddr
-
-void freeifaddrs(struct ifaddrs *);
-int getifaddrs(struct ifaddrs **);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/musl/inttypes.h b/musl/inttypes.h
deleted file mode 100644
index 61dcb72..0000000
--- a/musl/inttypes.h
+++ /dev/null
@@ -1,229 +0,0 @@
-#ifndef _INTTYPES_H
-#define _INTTYPES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <stdint.h>
-
-#define __NEED_wchar_t
-#include <bits/alltypes.h>
-
-typedef struct { intmax_t quot, rem; } imaxdiv_t;
-
-intmax_t imaxabs(intmax_t);
-imaxdiv_t imaxdiv(intmax_t, intmax_t);
-
-intmax_t strtoimax(const char *__restrict, char **__restrict, int);
-uintmax_t strtoumax(const char *__restrict, char **__restrict, int);
-
-intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);
-uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int);
-
-#if UINTPTR_MAX == UINT64_MAX
-#define __PRI64 "l"
-#define __PRIPTR "l"
-#else
-#define __PRI64 "ll"
-#define __PRIPTR ""
-#endif
-
-#define PRId8 "d"
-#define PRId16 "d"
-#define PRId32 "d"
-#define PRId64 __PRI64 "d"
-
-#define PRIdLEAST8 "d"
-#define PRIdLEAST16 "d"
-#define PRIdLEAST32 "d"
-#define PRIdLEAST64 __PRI64 "d"
-
-#define PRIdFAST8 "d"
-#define PRIdFAST16 "d"
-#define PRIdFAST32 "d"
-#define PRIdFAST64 __PRI64 "d"
-
-#define PRIi8 "i"
-#define PRIi16 "i"
-#define PRIi32 "i"
-#define PRIi64 __PRI64 "i"
-
-#define PRIiLEAST8 "i"
-#define PRIiLEAST16 "i"
-#define PRIiLEAST32 "i"
-#define PRIiLEAST64 __PRI64 "i"
-
-#define PRIiFAST8 "i"
-#define PRIiFAST16 "i"
-#define PRIiFAST32 "i"
-#define PRIiFAST64 __PRI64 "i"
-
-#define PRIo8 "o"
-#define PRIo16 "o"
-#define PRIo32 "o"
-#define PRIo64 __PRI64 "o"
-
-#define PRIoLEAST8 "o"
-#define PRIoLEAST16 "o"
-#define PRIoLEAST32 "o"
-#define PRIoLEAST64 __PRI64 "o"
-
-#define PRIoFAST8 "o"
-#define PRIoFAST16 "o"
-#define PRIoFAST32 "o"
-#define PRIoFAST64 __PRI64 "o"
-
-#define PRIu8 "u"
-#define PRIu16 "u"
-#define PRIu32 "u"
-#define PRIu64 __PRI64 "u"
-
-#define PRIuLEAST8 "u"
-#define PRIuLEAST16 "u"
-#define PRIuLEAST32 "u"
-#define PRIuLEAST64 __PRI64 "u"
-
-#define PRIuFAST8 "u"
-#define PRIuFAST16 "u"
-#define PRIuFAST32 "u"
-#define PRIuFAST64 __PRI64 "u"
-
-#define PRIx8 "x"
-#define PRIx16 "x"
-#define PRIx32 "x"
-#define PRIx64 __PRI64 "x"
-
-#define PRIxLEAST8 "x"
-#define PRIxLEAST16 "x"
-#define PRIxLEAST32 "x"
-#define PRIxLEAST64 __PRI64 "x"
-
-#define PRIxFAST8 "x"
-#define PRIxFAST16 "x"
-#define PRIxFAST32 "x"
-#define PRIxFAST64 __PRI64 "x"
-
-#define PRIX8 "X"
-#define PRIX16 "X"
-#define PRIX32 "X"
-#define PRIX64 __PRI64 "X"
-
-#define PRIXLEAST8 "X"
-#define PRIXLEAST16 "X"
-#define PRIXLEAST32 "X"
-#define PRIXLEAST64 __PRI64 "X"
-
-#define PRIXFAST8 "X"
-#define PRIXFAST16 "X"
-#define PRIXFAST32 "X"
-#define PRIXFAST64 __PRI64 "X"
-
-#define PRIdMAX __PRI64 "d"
-#define PRIiMAX __PRI64 "i"
-#define PRIoMAX __PRI64 "o"
-#define PRIuMAX __PRI64 "u"
-#define PRIxMAX __PRI64 "x"
-#define PRIXMAX __PRI64 "X"
-
-#define PRIdPTR __PRIPTR "d"
-#define PRIiPTR __PRIPTR "i"
-#define PRIoPTR __PRIPTR "o"
-#define PRIuPTR __PRIPTR "u"
-#define PRIxPTR __PRIPTR "x"
-#define PRIXPTR __PRIPTR "X"
-
-#define SCNd8 "hhd"
-#define SCNd16 "hd"
-#define SCNd32 "d"
-#define SCNd64 __PRI64 "d"
-
-#define SCNdLEAST8 "hhd"
-#define SCNdLEAST16 "hd"
-#define SCNdLEAST32 "d"
-#define SCNdLEAST64 __PRI64 "d"
-
-#define SCNdFAST8 "hhd"
-#define SCNdFAST16 "d"
-#define SCNdFAST32 "d"
-#define SCNdFAST64 __PRI64 "d"
-
-#define SCNi8 "hhi"
-#define SCNi16 "hi"
-#define SCNi32 "i"
-#define SCNi64 __PRI64 "i"
-
-#define SCNiLEAST8 "hhi"
-#define SCNiLEAST16 "hi"
-#define SCNiLEAST32 "i"
-#define SCNiLEAST64 __PRI64 "i"
-
-#define SCNiFAST8 "hhi"
-#define SCNiFAST16 "i"
-#define SCNiFAST32 "i"
-#define SCNiFAST64 __PRI64 "i"
-
-#define SCNu8 "hhu"
-#define SCNu16 "hu"
-#define SCNu32 "u"
-#define SCNu64 __PRI64 "u"
-
-#define SCNuLEAST8 "hhu"
-#define SCNuLEAST16 "hu"
-#define SCNuLEAST32 "u"
-#define SCNuLEAST64 __PRI64 "u"
-
-#define SCNuFAST8 "hhu"
-#define SCNuFAST16 "u"
-#define SCNuFAST32 "u"
-#define SCNuFAST64 __PRI64 "u"
-
-#define SCNo8 "hho"
-#define SCNo16 "ho"
-#define SCNo32 "o"
-#define SCNo64 __PRI64 "o"
-
-#define SCNoLEAST8 "hho"
-#define SCNoLEAST16 "ho"
-#define SCNoLEAST32 "o"
-#define SCNoLEAST64 __PRI64 "o"
-
-#define SCNoFAST8 "hho"
-#define SCNoFAST16 "o"
-#define SCNoFAST32 "o"
-#define SCNoFAST64 __PRI64 "o"
-
-#define SCNx8 "hhx"
-#define SCNx16 "hx"
-#define SCNx32 "x"
-#define SCNx64 __PRI64 "x"
-
-#define SCNxLEAST8 "hhx"
-#define SCNxLEAST16 "hx"
-#define SCNxLEAST32 "x"
-#define SCNxLEAST64 __PRI64 "x"
-
-#define SCNxFAST8 "hhx"
-#define SCNxFAST16 "x"
-#define SCNxFAST32 "x"
-#define SCNxFAST64 __PRI64 "x"
-
-#define SCNdMAX __PRI64 "d"
-#define SCNiMAX __PRI64 "i"
-#define SCNoMAX __PRI64 "o"
-#define SCNuMAX __PRI64 "u"
-#define SCNxMAX __PRI64 "x"
-
-#define SCNdPTR __PRIPTR "d"
-#define SCNiPTR __PRIPTR "i"
-#define SCNoPTR __PRIPTR "o"
-#define SCNuPTR __PRIPTR "u"
-#define SCNxPTR __PRIPTR "x"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/musl/iso646.h b/musl/iso646.h
deleted file mode 100644
index 88ff53d..0000000
--- a/musl/iso646.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _ISO646_H
-#define _ISO646_H
-
-#ifndef __cplusplus
-
-#define and &&
-#define and_eq &=
-#define bitand &
-#define bitor |
-#define compl ~
-#define not !
-#define not_eq !=
-#define or ||
-#define or_eq |=
-#define xor ^
-#define xor_eq ^=
-
-#endif
-
-#endif
diff --git a/musl/langinfo.h b/musl/langinfo.h
deleted file mode 100644
index 519c061..0000000
--- a/musl/langinfo.h
+++ /dev/null
@@ -1,98 +0,0 @@
-#ifndef _LANGINFO_H
-#define _LANGINFO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <nl_types.h>
-
-#define __NEED_locale_t
-
-#include <bits/alltypes.h>
-
-#define ABDAY_1 0x20000
-#define ABDAY_2 0x20001
-#define ABDAY_3 0x20002
-#define ABDAY_4 0x20003
-#define ABDAY_5 0x20004
-#define ABDAY_6 0x20005
-#define ABDAY_7 0x20006
-
-#define DAY_1 0x20007
-#define DAY_2 0x20008
-#define DAY_3 0x20009
-#define DAY_4 0x2000A
-#define DAY_5 0x2000B
-#define DAY_6 0x2000C
-#define DAY_7 0x2000D
-
-#define ABMON_1 0x2000E
-#define ABMON_2 0x2000F
-#define ABMON_3 0x20010
-#define ABMON_4 0x20011
-#define ABMON_5 0x20012
-#define ABMON_6 0x20013
-#define ABMON_7 0x20014
-#define ABMON_8 0x20015
-#define ABMON_9 0x20016
-#define ABMON_10 0x20017
-#define ABMON_11 0x20018
-#define ABMON_12 0x20019
-
-#define MON_1 0x2001A
-#define MON_2 0x2001B
-#define MON_3 0x2001C
-#define MON_4 0x2001D
-#define MON_5 0x2001E
-#define MON_6 0x2001F
-#define MON_7 0x20020
-#define MON_8 0x20021
-#define MON_9 0x20022
-#define MON_10 0x20023
-#define MON_11 0x20024
-#define MON_12 0x20025
-
-#define AM_STR 0x20026
-#define PM_STR 0x20027
-
-#define D_T_FMT 0x20028
-#define D_FMT 0x20029
-#define T_FMT 0x2002A
-#define T_FMT_AMPM 0x2002B
-
-#define ERA 0x2002C
-#define ERA_D_FMT 0x2002E
-#define ALT_DIGITS 0x2002F
-#define ERA_D_T_FMT 0x20030
-#define ERA_T_FMT 0x20031
-
-#define CODESET 14
-
-#define CRNCYSTR 0x4000F
-
-#define RADIXCHAR 0x10000
-#define THOUSEP 0x10001
-#define YESEXPR 0x50000
-#define NOEXPR 0x50001
-
-#define _NL_LOCALE_NAME(cat) (((cat)<<16) | 0xffff)
-
-#if defined(_GNU_SOURCE)
-#define NL_LOCALE_NAME(cat) _NL_LOCALE_NAME(cat)
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define YESSTR 0x50002
-#define NOSTR 0x50003
-#endif
-
-char *nl_langinfo(nl_item);
-char *nl_langinfo_l(nl_item, locale_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/lastlog.h b/musl/lastlog.h
deleted file mode 100644
index 5fa45ee..0000000
--- a/musl/lastlog.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <utmp.h>
diff --git a/musl/libgen.h b/musl/libgen.h
deleted file mode 100644
index 7c7fd9c..0000000
--- a/musl/libgen.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _LIBGEN_H
-#define _LIBGEN_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-char *dirname(char *);
-char *basename(char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/libintl.h b/musl/libintl.h
deleted file mode 100644
index 6a707bf..0000000
--- a/musl/libintl.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _LIBINTL_H
-#define _LIBINTL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __USE_GNU_GETTEXT 1
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 1 : -1)
-
-#if __GNUC__ >= 3
-#define __fa(n) __attribute__ ((__format_arg__ (n)))
-#else
-#define __fa(n)
-#endif
-
-char *gettext(const char *) __fa(1);
-char *dgettext(const char *, const char *) __fa(2);
-char *dcgettext(const char *, const char *, int) __fa(2);
-char *ngettext(const char *, const char *, unsigned long) __fa(1) __fa(2);
-char *dngettext(const char *, const char *, const char *, unsigned long) __fa(2) __fa(3);
-char *dcngettext(const char *, const char *, const char *, unsigned long, int) __fa(2) __fa(3);
-char *textdomain(const char *);
-char *bindtextdomain (const char *, const char *);
-char *bind_textdomain_codeset(const char *, const char *);
-
-#undef __fa
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/limits.h b/musl/limits.h
deleted file mode 100644
index 53a27b9..0000000
--- a/musl/limits.h
+++ /dev/null
@@ -1,166 +0,0 @@
-#ifndef _LIMITS_H
-#define _LIMITS_H
-
-#include <features.h>
-
-#include <bits/alltypes.h> /* __LONG_MAX */
-
-/* Support signed or unsigned plain-char */
-
-#if '\xff' > 0
-#define CHAR_MIN 0
-#define CHAR_MAX 255
-#else
-#define CHAR_MIN (-128)
-#define CHAR_MAX 127
-#endif
-
-#define CHAR_BIT 8
-#define SCHAR_MIN (-128)
-#define SCHAR_MAX 127
-#define UCHAR_MAX 255
-#define SHRT_MIN (-1-0x7fff)
-#define SHRT_MAX 0x7fff
-#define USHRT_MAX 0xffff
-#define INT_MIN (-1-0x7fffffff)
-#define INT_MAX 0x7fffffff
-#define UINT_MAX 0xffffffffU
-#define LONG_MIN (-LONG_MAX-1)
-#define LONG_MAX __LONG_MAX
-#define ULONG_MAX (2UL*LONG_MAX+1)
-#define LLONG_MIN (-LLONG_MAX-1)
-#define LLONG_MAX 0x7fffffffffffffffLL
-#define ULLONG_MAX (2ULL*LLONG_MAX+1)
-
-#define MB_LEN_MAX 4
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
-#include <bits/limits.h>
-
-#define PIPE_BUF 4096
-#define FILESIZEBITS 64
-#ifndef NAME_MAX
-#define NAME_MAX 255
-#endif
-#define PATH_MAX 4096
-#define NGROUPS_MAX 32
-#define ARG_MAX 131072
-#define IOV_MAX 1024
-#define SYMLOOP_MAX 40
-#define WORD_BIT 32
-#define SSIZE_MAX LONG_MAX
-#define TZNAME_MAX 6
-#define TTY_NAME_MAX 32
-#define HOST_NAME_MAX 255
-
-#if LONG_MAX == 0x7fffffffL
-#define LONG_BIT 32
-#else
-#define LONG_BIT 64
-#endif
-
-/* Implementation choices... */
-
-#define PTHREAD_KEYS_MAX 128
-#define PTHREAD_STACK_MIN 2048
-#define PTHREAD_DESTRUCTOR_ITERATIONS 4
-#define SEM_VALUE_MAX 0x7fffffff
-#define SEM_NSEMS_MAX 256
-#define DELAYTIMER_MAX 0x7fffffff
-#define MQ_PRIO_MAX 32768
-#define LOGIN_NAME_MAX 256
-
-/* Arbitrary numbers... */
-
-#define BC_BASE_MAX 99
-#define BC_DIM_MAX 2048
-#define BC_SCALE_MAX 99
-#define BC_STRING_MAX 1000
-#define CHARCLASS_NAME_MAX 14
-#define COLL_WEIGHTS_MAX 2
-#define EXPR_NEST_MAX 32
-#define LINE_MAX 4096
-#define RE_DUP_MAX 255
-
-#define NL_ARGMAX 9
-#define NL_MSGMAX 32767
-#define NL_SETMAX 255
-#define NL_TEXTMAX 2048
-
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)
-
-#ifdef PAGESIZE
-#define PAGE_SIZE PAGESIZE
-#endif
-#define NZERO 20
-#define NL_LANGMAX 32
-
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \
- || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
-
-#define NL_NMAX 16
-
-#endif
-
-/* POSIX/SUS requirements follow. These numbers come directly
- * from SUS and have nothing to do with the host system. */
-
-#define _POSIX_AIO_LISTIO_MAX 2
-#define _POSIX_AIO_MAX 1
-#define _POSIX_ARG_MAX 4096
-#define _POSIX_CHILD_MAX 25
-#define _POSIX_CLOCKRES_MIN 20000000
-#define _POSIX_DELAYTIMER_MAX 32
-#define _POSIX_HOST_NAME_MAX 255
-#define _POSIX_LINK_MAX 8
-#define _POSIX_LOGIN_NAME_MAX 9
-#define _POSIX_MAX_CANON 255
-#define _POSIX_MAX_INPUT 255
-#define _POSIX_MQ_OPEN_MAX 8
-#define _POSIX_MQ_PRIO_MAX 32
-#define _POSIX_NAME_MAX 14
-#define _POSIX_NGROUPS_MAX 8
-#define _POSIX_OPEN_MAX 20
-#define _POSIX_PATH_MAX 256
-#define _POSIX_PIPE_BUF 512
-#define _POSIX_RE_DUP_MAX 255
-#define _POSIX_RTSIG_MAX 8
-#define _POSIX_SEM_NSEMS_MAX 256
-#define _POSIX_SEM_VALUE_MAX 32767
-#define _POSIX_SIGQUEUE_MAX 32
-#define _POSIX_SSIZE_MAX 32767
-#define _POSIX_STREAM_MAX 8
-#define _POSIX_SS_REPL_MAX 4
-#define _POSIX_SYMLINK_MAX 255
-#define _POSIX_SYMLOOP_MAX 8
-#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
-#define _POSIX_THREAD_KEYS_MAX 128
-#define _POSIX_THREAD_THREADS_MAX 64
-#define _POSIX_TIMER_MAX 32
-#define _POSIX_TRACE_EVENT_NAME_MAX 30
-#define _POSIX_TRACE_NAME_MAX 8
-#define _POSIX_TRACE_SYS_MAX 8
-#define _POSIX_TRACE_USER_EVENT_MAX 32
-#define _POSIX_TTY_NAME_MAX 9
-#define _POSIX_TZNAME_MAX 6
-#define _POSIX2_BC_BASE_MAX 99
-#define _POSIX2_BC_DIM_MAX 2048
-#define _POSIX2_BC_SCALE_MAX 99
-#define _POSIX2_BC_STRING_MAX 1000
-#define _POSIX2_CHARCLASS_NAME_MAX 14
-#define _POSIX2_COLL_WEIGHTS_MAX 2
-#define _POSIX2_EXPR_NEST_MAX 32
-#define _POSIX2_LINE_MAX 2048
-#define _POSIX2_RE_DUP_MAX 255
-
-#define _XOPEN_IOV_MAX 16
-#define _XOPEN_NAME_MAX 255
-#define _XOPEN_PATH_MAX 1024
-
-#endif
diff --git a/musl/link.h b/musl/link.h
deleted file mode 100644
index 8150185..0000000
--- a/musl/link.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef _LINK_H
-#define _LINK_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <elf.h>
-#define __NEED_size_t
-#define __NEED_uint32_t
-#include <bits/alltypes.h>
-
-#if UINTPTR_MAX > 0xffffffff
-#define ElfW(type) Elf64_ ## type
-#else
-#define ElfW(type) Elf32_ ## type
-#endif
-
-#include <bits/link.h>
-
-struct dl_phdr_info {
- ElfW(Addr) dlpi_addr;
- const char *dlpi_name;
- const ElfW(Phdr) *dlpi_phdr;
- ElfW(Half) dlpi_phnum;
- unsigned long long int dlpi_adds;
- unsigned long long int dlpi_subs;
- size_t dlpi_tls_modid;
- void *dlpi_tls_data;
-};
-
-struct link_map {
- ElfW(Addr) l_addr;
- char *l_name;
- ElfW(Dyn) *l_ld;
- struct link_map *l_next, *l_prev;
-};
-
-struct r_debug {
- int r_version;
- struct link_map *r_map;
- ElfW(Addr) r_brk;
- enum { RT_CONSISTENT, RT_ADD, RT_DELETE } r_state;
- ElfW(Addr) r_ldbase;
-};
-
-int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *), void *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/locale.h b/musl/locale.h
deleted file mode 100644
index 11106fe..0000000
--- a/musl/locale.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef _LOCALE_H
-#define _LOCALE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#if __cplusplus >= 201103L
-#define NULL nullptr
-#elif defined(__cplusplus)
-#define NULL 0L
-#else
-#define NULL ((void*)0)
-#endif
-
-#define LC_CTYPE 0
-#define LC_NUMERIC 1
-#define LC_TIME 2
-#define LC_COLLATE 3
-#define LC_MONETARY 4
-#define LC_MESSAGES 5
-#define LC_ALL 6
-
-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;
-};
-
-
-char *setlocale (int, const char *);
-struct lconv *localeconv(void);
-
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
-#define __NEED_locale_t
-
-#include <bits/alltypes.h>
-
-#define LC_GLOBAL_LOCALE ((locale_t)-1)
-
-#define LC_CTYPE_MASK (1<<LC_CTYPE)
-#define LC_NUMERIC_MASK (1<<LC_NUMERIC)
-#define LC_TIME_MASK (1<<LC_TIME)
-#define LC_COLLATE_MASK (1<<LC_COLLATE)
-#define LC_MONETARY_MASK (1<<LC_MONETARY)
-#define LC_MESSAGES_MASK (1<<LC_MESSAGES)
-#define LC_ALL_MASK 0x7fffffff
-
-locale_t duplocale(locale_t);
-void freelocale(locale_t);
-locale_t newlocale(int, const char *, locale_t);
-locale_t uselocale(locale_t);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/malloc.h b/musl/malloc.h
deleted file mode 100644
index 35f8b19..0000000
--- a/musl/malloc.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _MALLOC_H
-#define _MALLOC_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_size_t
-
-#include <bits/alltypes.h>
-
-void *malloc (size_t);
-void *calloc (size_t, size_t);
-void *realloc (void *, size_t);
-void free (void *);
-void *valloc (size_t);
-void *memalign(size_t, size_t);
-
-size_t malloc_usable_size(void *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/math.h b/musl/math.h
deleted file mode 100644
index 14f28ec..0000000
--- a/musl/math.h
+++ /dev/null
@@ -1,442 +0,0 @@
-#ifndef _MATH_H
-#define _MATH_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_float_t
-#define __NEED_double_t
-#include <bits/alltypes.h>
-
-#if 100*__GNUC__+__GNUC_MINOR__ >= 303
-#define NAN __builtin_nanf("")
-#define INFINITY __builtin_inff()
-#else
-#define NAN (0.0f/0.0f)
-#define INFINITY 1e5000f
-#endif
-
-#define HUGE_VALF INFINITY
-#define HUGE_VAL ((double)INFINITY)
-#define HUGE_VALL ((long double)INFINITY)
-
-#define MATH_ERRNO 1
-#define MATH_ERREXCEPT 2
-#define math_errhandling 2
-
-#define FP_ILOGBNAN (-1-0x7fffffff)
-#define FP_ILOGB0 FP_ILOGBNAN
-
-#define FP_NAN 0
-#define FP_INFINITE 1
-#define FP_ZERO 2
-#define FP_SUBNORMAL 3
-#define FP_NORMAL 4
-
-#ifdef __FP_FAST_FMA
-#define FP_FAST_FMA 1
-#endif
-
-#ifdef __FP_FAST_FMAF
-#define FP_FAST_FMAF 1
-#endif
-
-#ifdef __FP_FAST_FMAL
-#define FP_FAST_FMAL 1
-#endif
-
-int __fpclassify(double);
-int __fpclassifyf(float);
-int __fpclassifyl(long double);
-
-static __inline unsigned __FLOAT_BITS(float __f)
-{
- union {float __f; unsigned __i;} __u;
- __u.__f = __f;
- return __u.__i;
-}
-static __inline unsigned long long __DOUBLE_BITS(double __f)
-{
- union {double __f; unsigned long long __i;} __u;
- __u.__f = __f;
- return __u.__i;
-}
-
-#define fpclassify(x) ( \
- sizeof(x) == sizeof(float) ? __fpclassifyf(x) : \
- sizeof(x) == sizeof(double) ? __fpclassify(x) : \
- __fpclassifyl(x) )
-
-#define isinf(x) ( \
- sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) == 0x7f800000 : \
- sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) == 0x7ffULL<<52 : \
- __fpclassifyl(x) == FP_INFINITE)
-
-#define isnan(x) ( \
- sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) > 0x7f800000 : \
- sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) > 0x7ffULL<<52 : \
- __fpclassifyl(x) == FP_NAN)
-
-#define isnormal(x) ( \
- sizeof(x) == sizeof(float) ? ((__FLOAT_BITS(x)+0x00800000) & 0x7fffffff) >= 0x01000000 : \
- sizeof(x) == sizeof(double) ? ((__DOUBLE_BITS(x)+(1ULL<<52)) & -1ULL>>1) >= 1ULL<<53 : \
- __fpclassifyl(x) == FP_NORMAL)
-
-#define isfinite(x) ( \
- sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) < 0x7f800000 : \
- sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) < 0x7ffULL<<52 : \
- __fpclassifyl(x) > FP_INFINITE)
-
-int __signbit(double);
-int __signbitf(float);
-int __signbitl(long double);
-
-#define signbit(x) ( \
- sizeof(x) == sizeof(float) ? (int)(__FLOAT_BITS(x)>>31) : \
- sizeof(x) == sizeof(double) ? (int)(__DOUBLE_BITS(x)>>63) : \
- __signbitl(x) )
-
-#define isunordered(x,y) (isnan((x)) ? ((void)(y),1) : isnan((y)))
-
-#define __ISREL_DEF(rel, op, type) \
-static __inline int __is##rel(type __x, type __y) \
-{ return !isunordered(__x,__y) && __x op __y; }
-
-__ISREL_DEF(lessf, <, float_t)
-__ISREL_DEF(less, <, double_t)
-__ISREL_DEF(lessl, <, long double)
-__ISREL_DEF(lessequalf, <=, float_t)
-__ISREL_DEF(lessequal, <=, double_t)
-__ISREL_DEF(lessequall, <=, long double)
-__ISREL_DEF(lessgreaterf, !=, float_t)
-__ISREL_DEF(lessgreater, !=, double_t)
-__ISREL_DEF(lessgreaterl, !=, long double)
-__ISREL_DEF(greaterf, >, float_t)
-__ISREL_DEF(greater, >, double_t)
-__ISREL_DEF(greaterl, >, long double)
-__ISREL_DEF(greaterequalf, >=, float_t)
-__ISREL_DEF(greaterequal, >=, double_t)
-__ISREL_DEF(greaterequall, >=, long double)
-
-#define __tg_pred_2(x, y, p) ( \
- sizeof((x)+(y)) == sizeof(float) ? p##f(x, y) : \
- sizeof((x)+(y)) == sizeof(double) ? p(x, y) : \
- p##l(x, y) )
-
-#define isless(x, y) __tg_pred_2(x, y, __isless)
-#define islessequal(x, y) __tg_pred_2(x, y, __islessequal)
-#define islessgreater(x, y) __tg_pred_2(x, y, __islessgreater)
-#define isgreater(x, y) __tg_pred_2(x, y, __isgreater)
-#define isgreaterequal(x, y) __tg_pred_2(x, y, __isgreaterequal)
-
-double acos(double);
-float acosf(float);
-long double acosl(long double);
-
-double acosh(double);
-float acoshf(float);
-long double acoshl(long double);
-
-double asin(double);
-float asinf(float);
-long double asinl(long double);
-
-double asinh(double);
-float asinhf(float);
-long double asinhl(long double);
-
-double atan(double);
-float atanf(float);
-long double atanl(long double);
-
-double atan2(double, double);
-float atan2f(float, float);
-long double atan2l(long double, long double);
-
-double atanh(double);
-float atanhf(float);
-long double atanhl(long double);
-
-double cbrt(double);
-float cbrtf(float);
-long double cbrtl(long double);
-
-double ceil(double);
-float ceilf(float);
-long double ceill(long double);
-
-double copysign(double, double);
-float copysignf(float, float);
-long double copysignl(long double, long double);
-
-double cos(double);
-float cosf(float);
-long double cosl(long double);
-
-double cosh(double);
-float coshf(float);
-long double coshl(long double);
-
-double erf(double);
-float erff(float);
-long double erfl(long double);
-
-double erfc(double);
-float erfcf(float);
-long double erfcl(long double);
-
-double exp(double);
-float expf(float);
-long double expl(long double);
-
-double exp2(double);
-float exp2f(float);
-long double exp2l(long double);
-
-double expm1(double);
-float expm1f(float);
-long double expm1l(long double);
-
-double fabs(double);
-float fabsf(float);
-long double fabsl(long double);
-
-double fdim(double, double);
-float fdimf(float, float);
-long double fdiml(long double, long double);
-
-double floor(double);
-float floorf(float);
-long double floorl(long double);
-
-double fma(double, double, double);
-float fmaf(float, float, float);
-long double fmal(long double, long double, long double);
-
-double fmax(double, double);
-float fmaxf(float, float);
-long double fmaxl(long double, long double);
-
-double fmin(double, double);
-float fminf(float, float);
-long double fminl(long double, long double);
-
-double fmod(double, double);
-float fmodf(float, float);
-long double fmodl(long double, long double);
-
-double frexp(double, int *);
-float frexpf(float, int *);
-long double frexpl(long double, int *);
-
-double hypot(double, double);
-float hypotf(float, float);
-long double hypotl(long double, long double);
-
-int ilogb(double);
-int ilogbf(float);
-int ilogbl(long double);
-
-double ldexp(double, int);
-float ldexpf(float, int);
-long double ldexpl(long double, int);
-
-double lgamma(double);
-float lgammaf(float);
-long double lgammal(long double);
-
-long long llrint(double);
-long long llrintf(float);
-long long llrintl(long double);
-
-long long llround(double);
-long long llroundf(float);
-long long llroundl(long double);
-
-double log(double);
-float logf(float);
-long double logl(long double);
-
-double log10(double);
-float log10f(float);
-long double log10l(long double);
-
-double log1p(double);
-float log1pf(float);
-long double log1pl(long double);
-
-double log2(double);
-float log2f(float);
-long double log2l(long double);
-
-double logb(double);
-float logbf(float);
-long double logbl(long double);
-
-long lrint(double);
-long lrintf(float);
-long lrintl(long double);
-
-long lround(double);
-long lroundf(float);
-long lroundl(long double);
-
-double modf(double, double *);
-float modff(float, float *);
-long double modfl(long double, long double *);
-
-double nan(const char *);
-float nanf(const char *);
-long double nanl(const char *);
-
-double nearbyint(double);
-float nearbyintf(float);
-long double nearbyintl(long double);
-
-double nextafter(double, double);
-float nextafterf(float, float);
-long double nextafterl(long double, long double);
-
-double nexttoward(double, long double);
-float nexttowardf(float, long double);
-long double nexttowardl(long double, long double);
-
-double pow(double, double);
-float powf(float, float);
-long double powl(long double, long double);
-
-double remainder(double, double);
-float remainderf(float, float);
-long double remainderl(long double, long double);
-
-double remquo(double, double, int *);
-float remquof(float, float, int *);
-long double remquol(long double, long double, int *);
-
-double rint(double);
-float rintf(float);
-long double rintl(long double);
-
-double round(double);
-float roundf(float);
-long double roundl(long double);
-
-double scalbln(double, long);
-float scalblnf(float, long);
-long double scalblnl(long double, long);
-
-double scalbn(double, int);
-float scalbnf(float, int);
-long double scalbnl(long double, int);
-
-double sin(double);
-float sinf(float);
-long double sinl(long double);
-
-double sinh(double);
-float sinhf(float);
-long double sinhl(long double);
-
-double sqrt(double);
-float sqrtf(float);
-long double sqrtl(long double);
-
-double tan(double);
-float tanf(float);
-long double tanl(long double);
-
-double tanh(double);
-float tanhf(float);
-long double tanhl(long double);
-
-double tgamma(double);
-float tgammaf(float);
-long double tgammal(long double);
-
-double trunc(double);
-float truncf(float);
-long double truncl(long double);
-
-
-#if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE)
-#undef MAXFLOAT
-#define MAXFLOAT 3.40282346638528859812e+38F
-#endif
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define M_E 2.7182818284590452354 /* e */
-#define M_LOG2E 1.4426950408889634074 /* log_2 e */
-#define M_LOG10E 0.43429448190325182765 /* log_10 e */
-#define M_LN2 0.69314718055994530942 /* log_e 2 */
-#define M_LN10 2.30258509299404568402 /* log_e 10 */
-#define M_PI 3.14159265358979323846 /* pi */
-#define M_PI_2 1.57079632679489661923 /* pi/2 */
-#define M_PI_4 0.78539816339744830962 /* pi/4 */
-#define M_1_PI 0.31830988618379067154 /* 1/pi */
-#define M_2_PI 0.63661977236758134308 /* 2/pi */
-#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
-#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
-#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
-
-extern int signgam;
-
-double j0(double);
-double j1(double);
-double jn(int, double);
-
-double y0(double);
-double y1(double);
-double yn(int, double);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define HUGE 3.40282346638528859812e+38F
-
-double drem(double, double);
-float dremf(float, float);
-
-int finite(double);
-int finitef(float);
-
-double scalb(double, double);
-float scalbf(float, float);
-
-double significand(double);
-float significandf(float);
-
-double lgamma_r(double, int*);
-float lgammaf_r(float, int*);
-
-float j0f(float);
-float j1f(float);
-float jnf(int, float);
-
-float y0f(float);
-float y1f(float);
-float ynf(int, float);
-#endif
-
-#ifdef _GNU_SOURCE
-long double lgammal_r(long double, int*);
-
-void sincos(double, double*, double*);
-void sincosf(float, float*, float*);
-void sincosl(long double, long double*, long double*);
-
-double exp10(double);
-float exp10f(float);
-long double exp10l(long double);
-
-double pow10(double);
-float pow10f(float);
-long double pow10l(long double);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/memory.h b/musl/memory.h
deleted file mode 100644
index 3b2f590..0000000
--- a/musl/memory.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <string.h>
diff --git a/musl/mntent.h b/musl/mntent.h
deleted file mode 100644
index 3492a1d..0000000
--- a/musl/mntent.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _MNTENT_H
-#define _MNTENT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_FILE
-#include <bits/alltypes.h>
-
-#define MOUNTED "/etc/mtab"
-
-#define MNTTYPE_IGNORE "ignore"
-#define MNTTYPE_NFS "nfs"
-#define MNTTYPE_SWAP "swap"
-#define MNTOPT_DEFAULTS "defaults"
-#define MNTOPT_RO "ro"
-#define MNTOPT_RW "rw"
-#define MNTOPT_SUID "suid"
-#define MNTOPT_NOSUID "nosuid"
-#define MNTOPT_NOAUTO "noauto"
-
-struct mntent {
- char *mnt_fsname;
- char *mnt_dir;
- char *mnt_type;
- char *mnt_opts;
- int mnt_freq;
- int mnt_passno;
-};
-
-FILE *setmntent(const char *, const char *);
-int endmntent(FILE *);
-struct mntent *getmntent(FILE *);
-struct mntent *getmntent_r(FILE *, struct mntent *, char *, int);
-int addmntent(FILE *, const struct mntent *);
-char *hasmntopt(const struct mntent *, const char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/monetary.h b/musl/monetary.h
deleted file mode 100644
index a91fa56..0000000
--- a/musl/monetary.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _MONETARY_H
-#define _MONETARY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_ssize_t
-#define __NEED_size_t
-#define __NEED_locale_t
-
-#include <bits/alltypes.h>
-
-ssize_t strfmon(char *__restrict, size_t, const char *__restrict, ...);
-ssize_t strfmon_l(char *__restrict, size_t, locale_t, const char *__restrict, ...);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/mqueue.h b/musl/mqueue.h
deleted file mode 100644
index 0c807ea..0000000
--- a/musl/mqueue.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef _MQUEUE_H
-#define _MQUEUE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-#define __NEED_ssize_t
-#define __NEED_pthread_attr_t
-#define __NEED_time_t
-#define __NEED_struct_timespec
-#include <bits/alltypes.h>
-
-typedef int mqd_t;
-struct mq_attr {
- long mq_flags, mq_maxmsg, mq_msgsize, mq_curmsgs, __unused[4];
-};
-struct sigevent;
-
-int mq_close(mqd_t);
-int mq_getattr(mqd_t, struct mq_attr *);
-int mq_notify(mqd_t, const struct sigevent *);
-mqd_t mq_open(const char *, int, ...);
-ssize_t mq_receive(mqd_t, char *, size_t, unsigned *);
-int mq_send(mqd_t, const char *, size_t, unsigned);
-int mq_setattr(mqd_t, const struct mq_attr *__restrict, struct mq_attr *__restrict);
-ssize_t mq_timedreceive(mqd_t, char *__restrict, size_t, unsigned *__restrict, const struct timespec *__restrict);
-int mq_timedsend(mqd_t, const char *, size_t, unsigned, const struct timespec *);
-int mq_unlink(const char *);
-
-#if _REDIR_TIME64
-__REDIR(mq_timedreceive, __mq_timedreceive_time64);
-__REDIR(mq_timedsend, __mq_timedsend_time64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/net/ethernet.h b/musl/net/ethernet.h
deleted file mode 100644
index c8d4177..0000000
--- a/musl/net/ethernet.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _NET_ETHERNET_H
-#define _NET_ETHERNET_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <sys/types.h>
-#include <netinet/if_ether.h>
-
-struct ether_addr {
- uint8_t ether_addr_octet[ETH_ALEN];
-};
-
-struct ether_header {
- uint8_t ether_dhost[ETH_ALEN];
- uint8_t ether_shost[ETH_ALEN];
- uint16_t ether_type;
-};
-
-#define ETHERTYPE_PUP 0x0200
-#define ETHERTYPE_SPRITE 0x0500
-#define ETHERTYPE_IP 0x0800
-#define ETHERTYPE_ARP 0x0806
-#define ETHERTYPE_REVARP 0x8035
-#define ETHERTYPE_AT 0x809B
-#define ETHERTYPE_AARP 0x80F3
-#define ETHERTYPE_VLAN 0x8100
-#define ETHERTYPE_IPX 0x8137
-#define ETHERTYPE_IPV6 0x86dd
-#define ETHERTYPE_LOOPBACK 0x9000
-
-
-#define ETHER_ADDR_LEN ETH_ALEN
-#define ETHER_TYPE_LEN 2
-#define ETHER_CRC_LEN 4
-#define ETHER_HDR_LEN ETH_HLEN
-#define ETHER_MIN_LEN (ETH_ZLEN + ETHER_CRC_LEN)
-#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETHER_CRC_LEN)
-
-#define ETHER_IS_VALID_LEN(foo) \
- ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN)
-
-#define ETHERTYPE_TRAIL 0x1000
-#define ETHERTYPE_NTRAILER 16
-
-#define ETHERMTU ETH_DATA_LEN
-#define ETHERMIN (ETHER_MIN_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/net/if.h b/musl/net/if.h
deleted file mode 100644
index 774cbff..0000000
--- a/musl/net/if.h
+++ /dev/null
@@ -1,141 +0,0 @@
-#ifndef _NET_IF_H
-#define _NET_IF_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define IF_NAMESIZE 16
-
-struct if_nameindex {
- unsigned int if_index;
- char *if_name;
-};
-
-unsigned int if_nametoindex (const char *);
-char *if_indextoname (unsigned int, char *);
-struct if_nameindex *if_nameindex (void);
-void if_freenameindex (struct if_nameindex *);
-
-
-
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
-#include <sys/socket.h>
-
-#define IFF_UP 0x1
-#define IFF_BROADCAST 0x2
-#define IFF_DEBUG 0x4
-#define IFF_LOOPBACK 0x8
-#define IFF_POINTOPOINT 0x10
-#define IFF_NOTRAILERS 0x20
-#define IFF_RUNNING 0x40
-#define IFF_NOARP 0x80
-#define IFF_PROMISC 0x100
-#define IFF_ALLMULTI 0x200
-#define IFF_MASTER 0x400
-#define IFF_SLAVE 0x800
-#define IFF_MULTICAST 0x1000
-#define IFF_PORTSEL 0x2000
-#define IFF_AUTOMEDIA 0x4000
-#define IFF_DYNAMIC 0x8000
-#define IFF_LOWER_UP 0x10000
-#define IFF_DORMANT 0x20000
-#define IFF_ECHO 0x40000
-#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST| \
- IFF_ECHO|IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
-
-struct ifaddr {
- struct sockaddr ifa_addr;
- union {
- struct sockaddr ifu_broadaddr;
- struct sockaddr ifu_dstaddr;
- } ifa_ifu;
- struct iface *ifa_ifp;
- struct ifaddr *ifa_next;
-};
-
-#define ifa_broadaddr ifa_ifu.ifu_broadaddr
-#define ifa_dstaddr ifa_ifu.ifu_dstaddr
-
-struct ifmap {
- unsigned long int mem_start;
- unsigned long int mem_end;
- unsigned short int base_addr;
- unsigned char irq;
- unsigned char dma;
- unsigned char port;
-};
-
-#define IFHWADDRLEN 6
-#define IFNAMSIZ IF_NAMESIZE
-
-struct ifreq {
- union {
- char ifrn_name[IFNAMSIZ];
- } ifr_ifrn;
- union {
- struct sockaddr ifru_addr;
- struct sockaddr ifru_dstaddr;
- struct sockaddr ifru_broadaddr;
- struct sockaddr ifru_netmask;
- struct sockaddr ifru_hwaddr;
- short int ifru_flags;
- int ifru_ivalue;
- int ifru_mtu;
- struct ifmap ifru_map;
- char ifru_slave[IFNAMSIZ];
- char ifru_newname[IFNAMSIZ];
- char *ifru_data;
- } ifr_ifru;
-};
-
-#define ifr_name ifr_ifrn.ifrn_name
-#define ifr_hwaddr ifr_ifru.ifru_hwaddr
-#define ifr_addr ifr_ifru.ifru_addr
-#define ifr_dstaddr ifr_ifru.ifru_dstaddr
-#define ifr_broadaddr ifr_ifru.ifru_broadaddr
-#define ifr_netmask ifr_ifru.ifru_netmask
-#define ifr_flags ifr_ifru.ifru_flags
-#define ifr_metric ifr_ifru.ifru_ivalue
-#define ifr_mtu ifr_ifru.ifru_mtu
-#define ifr_map ifr_ifru.ifru_map
-#define ifr_slave ifr_ifru.ifru_slave
-#define ifr_data ifr_ifru.ifru_data
-#define ifr_ifindex ifr_ifru.ifru_ivalue
-#define ifr_bandwidth ifr_ifru.ifru_ivalue
-#define ifr_qlen ifr_ifru.ifru_ivalue
-#define ifr_newname ifr_ifru.ifru_newname
-#define _IOT_ifreq _IOT(_IOTS(char),IFNAMSIZ,_IOTS(char),16,0,0)
-#define _IOT_ifreq_short _IOT(_IOTS(char),IFNAMSIZ,_IOTS(short),1,0,0)
-#define _IOT_ifreq_int _IOT(_IOTS(char),IFNAMSIZ,_IOTS(int),1,0,0)
-
-struct ifconf {
- int ifc_len;
- union {
- char *ifcu_buf;
- struct ifreq *ifcu_req;
- } ifc_ifcu;
-};
-
-#define ifc_buf ifc_ifcu.ifcu_buf
-#define ifc_req ifc_ifcu.ifcu_req
-#define _IOT_ifconf _IOT(_IOTS(struct ifconf),1,0,0,0,0)
-
-#define __UAPI_DEF_IF_IFCONF 0
-#define __UAPI_DEF_IF_IFMAP 0
-#define __UAPI_DEF_IF_IFNAMSIZ 0
-#define __UAPI_DEF_IF_IFREQ 0
-#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0
-#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/net/if_arp.h b/musl/net/if_arp.h
deleted file mode 100644
index 27becc8..0000000
--- a/musl/net/if_arp.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Nonstandard header */
-#ifndef _NET_IF_ARP_H
-#define _NET_IF_ARP_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <inttypes.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#define MAX_ADDR_LEN 7
-
-#define ARPOP_REQUEST 1
-#define ARPOP_REPLY 2
-#define ARPOP_RREQUEST 3
-#define ARPOP_RREPLY 4
-#define ARPOP_InREQUEST 8
-#define ARPOP_InREPLY 9
-#define ARPOP_NAK 10
-
-struct arphdr {
- uint16_t ar_hrd;
- uint16_t ar_pro;
- uint8_t ar_hln;
- uint8_t ar_pln;
- uint16_t ar_op;
-};
-
-
-#define ARPHRD_NETROM 0
-#define ARPHRD_ETHER 1
-#define ARPHRD_EETHER 2
-#define ARPHRD_AX25 3
-#define ARPHRD_PRONET 4
-#define ARPHRD_CHAOS 5
-#define ARPHRD_IEEE802 6
-#define ARPHRD_ARCNET 7
-#define ARPHRD_APPLETLK 8
-#define ARPHRD_DLCI 15
-#define ARPHRD_ATM 19
-#define ARPHRD_METRICOM 23
-#define ARPHRD_IEEE1394 24
-#define ARPHRD_EUI64 27
-#define ARPHRD_INFINIBAND 32
-#define ARPHRD_SLIP 256
-#define ARPHRD_CSLIP 257
-#define ARPHRD_SLIP6 258
-#define ARPHRD_CSLIP6 259
-#define ARPHRD_RSRVD 260
-#define ARPHRD_ADAPT 264
-#define ARPHRD_ROSE 270
-#define ARPHRD_X25 271
-#define ARPHRD_HWX25 272
-#define ARPHRD_CAN 280
-#define ARPHRD_PPP 512
-#define ARPHRD_CISCO 513
-#define ARPHRD_HDLC ARPHRD_CISCO
-#define ARPHRD_LAPB 516
-#define ARPHRD_DDCMP 517
-#define ARPHRD_RAWHDLC 518
-#define ARPHRD_RAWIP 519
-
-#define ARPHRD_TUNNEL 768
-#define ARPHRD_TUNNEL6 769
-#define ARPHRD_FRAD 770
-#define ARPHRD_SKIP 771
-#define ARPHRD_LOOPBACK 772
-#define ARPHRD_LOCALTLK 773
-#define ARPHRD_FDDI 774
-#define ARPHRD_BIF 775
-#define ARPHRD_SIT 776
-#define ARPHRD_IPDDP 777
-#define ARPHRD_IPGRE 778
-#define ARPHRD_PIMREG 779
-#define ARPHRD_HIPPI 780
-#define ARPHRD_ASH 781
-#define ARPHRD_ECONET 782
-#define ARPHRD_IRDA 783
-#define ARPHRD_FCPP 784
-#define ARPHRD_FCAL 785
-#define ARPHRD_FCPL 786
-#define ARPHRD_FCFABRIC 787
-#define ARPHRD_IEEE802_TR 800
-#define ARPHRD_IEEE80211 801
-#define ARPHRD_IEEE80211_PRISM 802
-#define ARPHRD_IEEE80211_RADIOTAP 803
-#define ARPHRD_IEEE802154 804
-#define ARPHRD_IEEE802154_MONITOR 805
-#define ARPHRD_PHONET 820
-#define ARPHRD_PHONET_PIPE 821
-#define ARPHRD_CAIF 822
-#define ARPHRD_IP6GRE 823
-#define ARPHRD_NETLINK 824
-#define ARPHRD_6LOWPAN 825
-#define ARPHRD_VSOCKMON 826
-
-#define ARPHRD_VOID 0xFFFF
-#define ARPHRD_NONE 0xFFFE
-
-struct arpreq {
- struct sockaddr arp_pa;
- struct sockaddr arp_ha;
- int arp_flags;
- struct sockaddr arp_netmask;
- char arp_dev[16];
-};
-
-struct arpreq_old {
- struct sockaddr arp_pa;
- struct sockaddr arp_ha;
- int arp_flags;
- struct sockaddr arp_netmask;
-};
-
-#define ATF_COM 0x02
-#define ATF_PERM 0x04
-#define ATF_PUBL 0x08
-#define ATF_USETRAILERS 0x10
-#define ATF_NETMASK 0x20
-#define ATF_DONTPUB 0x40
-#define ATF_MAGIC 0x80
-
-#define ARPD_UPDATE 0x01
-#define ARPD_LOOKUP 0x02
-#define ARPD_FLUSH 0x03
-
-struct arpd_request {
- unsigned short req;
- uint32_t ip;
- unsigned long dev;
- unsigned long stamp;
- unsigned long updated;
- unsigned char ha[MAX_ADDR_LEN];
-};
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/net/route.h b/musl/net/route.h
deleted file mode 100644
index 96ff48e..0000000
--- a/musl/net/route.h
+++ /dev/null
@@ -1,124 +0,0 @@
-#ifndef _NET_ROUTE_H
-#define _NET_ROUTE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-
-struct rtentry {
- unsigned long int rt_pad1;
- struct sockaddr rt_dst;
- struct sockaddr rt_gateway;
- struct sockaddr rt_genmask;
- unsigned short int rt_flags;
- short int rt_pad2;
- unsigned long int rt_pad3;
- unsigned char rt_tos;
- unsigned char rt_class;
- short int rt_pad4[sizeof(long)/2-1];
- short int rt_metric;
- char *rt_dev;
- unsigned long int rt_mtu;
- unsigned long int rt_window;
- unsigned short int rt_irtt;
-};
-
-#define rt_mss rt_mtu
-
-
-struct in6_rtmsg {
- struct in6_addr rtmsg_dst;
- struct in6_addr rtmsg_src;
- struct in6_addr rtmsg_gateway;
- uint32_t rtmsg_type;
- uint16_t rtmsg_dst_len;
- uint16_t rtmsg_src_len;
- uint32_t rtmsg_metric;
- unsigned long int rtmsg_info;
- uint32_t rtmsg_flags;
- int rtmsg_ifindex;
-};
-
-
-#define RTF_UP 0x0001
-#define RTF_GATEWAY 0x0002
-
-#define RTF_HOST 0x0004
-#define RTF_REINSTATE 0x0008
-#define RTF_DYNAMIC 0x0010
-#define RTF_MODIFIED 0x0020
-#define RTF_MTU 0x0040
-#define RTF_MSS RTF_MTU
-#define RTF_WINDOW 0x0080
-#define RTF_IRTT 0x0100
-#define RTF_REJECT 0x0200
-#define RTF_STATIC 0x0400
-#define RTF_XRESOLVE 0x0800
-#define RTF_NOFORWARD 0x1000
-#define RTF_THROW 0x2000
-#define RTF_NOPMTUDISC 0x4000
-
-#define RTF_DEFAULT 0x00010000
-#define RTF_ALLONLINK 0x00020000
-#define RTF_ADDRCONF 0x00040000
-
-#define RTF_LINKRT 0x00100000
-#define RTF_NONEXTHOP 0x00200000
-
-#define RTF_CACHE 0x01000000
-#define RTF_FLOW 0x02000000
-#define RTF_POLICY 0x04000000
-
-#define RTCF_VALVE 0x00200000
-#define RTCF_MASQ 0x00400000
-#define RTCF_NAT 0x00800000
-#define RTCF_DOREDIRECT 0x01000000
-#define RTCF_LOG 0x02000000
-#define RTCF_DIRECTSRC 0x04000000
-
-#define RTF_LOCAL 0x80000000
-#define RTF_INTERFACE 0x40000000
-#define RTF_MULTICAST 0x20000000
-#define RTF_BROADCAST 0x10000000
-#define RTF_NAT 0x08000000
-
-#define RTF_ADDRCLASSMASK 0xF8000000
-#define RT_ADDRCLASS(flags) ((uint32_t) flags >> 23)
-
-#define RT_TOS(tos) ((tos) & IPTOS_TOS_MASK)
-
-#define RT_LOCALADDR(flags) ((flags & RTF_ADDRCLASSMASK) \
- == (RTF_LOCAL|RTF_INTERFACE))
-
-#define RT_CLASS_UNSPEC 0
-#define RT_CLASS_DEFAULT 253
-
-#define RT_CLASS_MAIN 254
-#define RT_CLASS_LOCAL 255
-#define RT_CLASS_MAX 255
-
-
-#define RTMSG_ACK NLMSG_ACK
-#define RTMSG_OVERRUN NLMSG_OVERRUN
-
-#define RTMSG_NEWDEVICE 0x11
-#define RTMSG_DELDEVICE 0x12
-#define RTMSG_NEWROUTE 0x21
-#define RTMSG_DELROUTE 0x22
-#define RTMSG_NEWRULE 0x31
-#define RTMSG_DELRULE 0x32
-#define RTMSG_CONTROL 0x40
-
-#define RTMSG_AR_FAILED 0x51
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/netdb.h b/musl/netdb.h
deleted file mode 100644
index 3af065e..0000000
--- a/musl/netdb.h
+++ /dev/null
@@ -1,157 +0,0 @@
-#ifndef _NETDB_H
-#define _NETDB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <netinet/in.h>
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define __NEED_size_t
-#include <bits/alltypes.h>
-#endif
-
-struct addrinfo {
- int ai_flags;
- int ai_family;
- int ai_socktype;
- int ai_protocol;
- socklen_t ai_addrlen;
- struct sockaddr *ai_addr;
- char *ai_canonname;
- struct addrinfo *ai_next;
-};
-
-#define AI_PASSIVE 0x01
-#define AI_CANONNAME 0x02
-#define AI_NUMERICHOST 0x04
-#define AI_V4MAPPED 0x08
-#define AI_ALL 0x10
-#define AI_ADDRCONFIG 0x20
-#define AI_NUMERICSERV 0x400
-
-
-#define NI_NUMERICHOST 0x01
-#define NI_NUMERICSERV 0x02
-#define NI_NOFQDN 0x04
-#define NI_NAMEREQD 0x08
-#define NI_DGRAM 0x10
-#define NI_NUMERICSCOPE 0x100
-
-#define EAI_BADFLAGS -1
-#define EAI_NONAME -2
-#define EAI_AGAIN -3
-#define EAI_FAIL -4
-#define EAI_NODATA -5
-#define EAI_FAMILY -6
-#define EAI_SOCKTYPE -7
-#define EAI_SERVICE -8
-#define EAI_MEMORY -10
-#define EAI_SYSTEM -11
-#define EAI_OVERFLOW -12
-
-int getaddrinfo (const char *__restrict, const char *__restrict, const struct addrinfo *__restrict, struct addrinfo **__restrict);
-void freeaddrinfo (struct addrinfo *);
-int getnameinfo (const struct sockaddr *__restrict, socklen_t, char *__restrict, socklen_t, char *__restrict, socklen_t, int);
-const char *gai_strerror(int);
-
-
-/* Legacy functions follow (marked OBsolete in SUS) */
-
-struct netent {
- char *n_name;
- char **n_aliases;
- int n_addrtype;
- uint32_t n_net;
-};
-
-struct hostent {
- char *h_name;
- char **h_aliases;
- int h_addrtype;
- int h_length;
- char **h_addr_list;
-};
-#define h_addr h_addr_list[0]
-
-struct servent {
- char *s_name;
- char **s_aliases;
- int s_port;
- char *s_proto;
-};
-
-struct protoent {
- char *p_name;
- char **p_aliases;
- int p_proto;
-};
-
-void sethostent (int);
-void endhostent (void);
-struct hostent *gethostent (void);
-
-void setnetent (int);
-void endnetent (void);
-struct netent *getnetent (void);
-struct netent *getnetbyaddr (uint32_t, int);
-struct netent *getnetbyname (const char *);
-
-void setservent (int);
-void endservent (void);
-struct servent *getservent (void);
-struct servent *getservbyname (const char *, const char *);
-struct servent *getservbyport (int, const char *);
-
-void setprotoent (int);
-void endprotoent (void);
-struct protoent *getprotoent (void);
-struct protoent *getprotobyname (const char *);
-struct protoent *getprotobynumber (int);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \
- || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \
- || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
-struct hostent *gethostbyname (const char *);
-struct hostent *gethostbyaddr (const void *, socklen_t, int);
-#ifdef __GNUC__
-__attribute__((const))
-#endif
-int *__h_errno_location(void);
-#define h_errno (*__h_errno_location())
-#define HOST_NOT_FOUND 1
-#define TRY_AGAIN 2
-#define NO_RECOVERY 3
-#define NO_DATA 4
-#define NO_ADDRESS NO_DATA
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-void herror(const char *);
-const char *hstrerror(int);
-int gethostbyname_r(const char *, struct hostent *, char *, size_t, struct hostent **, int *);
-int gethostbyname2_r(const char *, int, struct hostent *, char *, size_t, struct hostent **, int *);
-struct hostent *gethostbyname2(const char *, int);
-int gethostbyaddr_r(const void *, socklen_t, int, struct hostent *, char *, size_t, struct hostent **, int *);
-int getservbyport_r(int, const char *, struct servent *, char *, size_t, struct servent **);
-int getservbyname_r(const char *, const char *, struct servent *, char *, size_t, struct servent **);
-#define EAI_NODATA -5
-#define EAI_ADDRFAMILY -9
-#define EAI_INPROGRESS -100
-#define EAI_CANCELED -101
-#define EAI_NOTCANCELED -102
-#define EAI_ALLDONE -103
-#define EAI_INTR -104
-#define EAI_IDN_ENCODE -105
-#define NI_MAXHOST 255
-#define NI_MAXSERV 32
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/netinet/ether.h b/musl/netinet/ether.h
deleted file mode 100644
index eec7e53..0000000
--- a/musl/netinet/ether.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _NETINET_ETHER_H
-#define _NETINET_ETHER_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <netinet/if_ether.h>
-
-char *ether_ntoa (const struct ether_addr *);
-struct ether_addr *ether_aton (const char *);
-char *ether_ntoa_r (const struct ether_addr *, char *);
-struct ether_addr *ether_aton_r (const char *, struct ether_addr *);
-int ether_line(const char *, struct ether_addr *, char *);
-int ether_ntohost(char *, const struct ether_addr *);
-int ether_hostton(const char *, struct ether_addr *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/netinet/icmp6.h b/musl/netinet/icmp6.h
deleted file mode 100644
index 01269e7..0000000
--- a/musl/netinet/icmp6.h
+++ /dev/null
@@ -1,305 +0,0 @@
-#ifndef _NETINET_ICMP6_H
-#define _NETINET_ICMP6_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#define ICMP6_FILTER 1
-
-#define ICMP6_FILTER_BLOCK 1
-#define ICMP6_FILTER_PASS 2
-#define ICMP6_FILTER_BLOCKOTHERS 3
-#define ICMP6_FILTER_PASSONLY 4
-
-struct icmp6_filter {
- uint32_t icmp6_filt[8];
-};
-
-struct icmp6_hdr {
- uint8_t icmp6_type;
- uint8_t icmp6_code;
- uint16_t icmp6_cksum;
- union {
- uint32_t icmp6_un_data32[1];
- uint16_t icmp6_un_data16[2];
- uint8_t icmp6_un_data8[4];
- } icmp6_dataun;
-};
-
-#define icmp6_data32 icmp6_dataun.icmp6_un_data32
-#define icmp6_data16 icmp6_dataun.icmp6_un_data16
-#define icmp6_data8 icmp6_dataun.icmp6_un_data8
-#define icmp6_pptr icmp6_data32[0]
-#define icmp6_mtu icmp6_data32[0]
-#define icmp6_id icmp6_data16[0]
-#define icmp6_seq icmp6_data16[1]
-#define icmp6_maxdelay icmp6_data16[0]
-
-#define ICMP6_DST_UNREACH 1
-#define ICMP6_PACKET_TOO_BIG 2
-#define ICMP6_TIME_EXCEEDED 3
-#define ICMP6_PARAM_PROB 4
-
-#define ICMP6_INFOMSG_MASK 0x80
-
-#define ICMP6_ECHO_REQUEST 128
-#define ICMP6_ECHO_REPLY 129
-#define MLD_LISTENER_QUERY 130
-#define MLD_LISTENER_REPORT 131
-#define MLD_LISTENER_REDUCTION 132
-
-#define ICMP6_DST_UNREACH_NOROUTE 0
-#define ICMP6_DST_UNREACH_ADMIN 1
-#define ICMP6_DST_UNREACH_BEYONDSCOPE 2
-#define ICMP6_DST_UNREACH_ADDR 3
-#define ICMP6_DST_UNREACH_NOPORT 4
-
-#define ICMP6_TIME_EXCEED_TRANSIT 0
-#define ICMP6_TIME_EXCEED_REASSEMBLY 1
-
-#define ICMP6_PARAMPROB_HEADER 0
-#define ICMP6_PARAMPROB_NEXTHEADER 1
-#define ICMP6_PARAMPROB_OPTION 2
-
-#define ICMP6_FILTER_WILLPASS(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)
-
-#define ICMP6_FILTER_WILLBLOCK(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0)
-
-#define ICMP6_FILTER_SETPASS(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31))))
-
-#define ICMP6_FILTER_SETBLOCK(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31))))
-
-#define ICMP6_FILTER_SETPASSALL(filterp) \
- memset (filterp, 0, sizeof (struct icmp6_filter));
-
-#define ICMP6_FILTER_SETBLOCKALL(filterp) \
- memset (filterp, 0xFF, sizeof (struct icmp6_filter));
-
-#define ND_ROUTER_SOLICIT 133
-#define ND_ROUTER_ADVERT 134
-#define ND_NEIGHBOR_SOLICIT 135
-#define ND_NEIGHBOR_ADVERT 136
-#define ND_REDIRECT 137
-
-struct nd_router_solicit {
- struct icmp6_hdr nd_rs_hdr;
-};
-
-#define nd_rs_type nd_rs_hdr.icmp6_type
-#define nd_rs_code nd_rs_hdr.icmp6_code
-#define nd_rs_cksum nd_rs_hdr.icmp6_cksum
-#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0]
-
-struct nd_router_advert {
- struct icmp6_hdr nd_ra_hdr;
- uint32_t nd_ra_reachable;
- uint32_t nd_ra_retransmit;
-};
-
-#define nd_ra_type nd_ra_hdr.icmp6_type
-#define nd_ra_code nd_ra_hdr.icmp6_code
-#define nd_ra_cksum nd_ra_hdr.icmp6_cksum
-#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0]
-#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1]
-#define ND_RA_FLAG_MANAGED 0x80
-#define ND_RA_FLAG_OTHER 0x40
-#define ND_RA_FLAG_HOME_AGENT 0x20
-#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1]
-
-struct nd_neighbor_solicit {
- struct icmp6_hdr nd_ns_hdr;
- struct in6_addr nd_ns_target;
-};
-
-#define nd_ns_type nd_ns_hdr.icmp6_type
-#define nd_ns_code nd_ns_hdr.icmp6_code
-#define nd_ns_cksum nd_ns_hdr.icmp6_cksum
-#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0]
-
-struct nd_neighbor_advert {
- struct icmp6_hdr nd_na_hdr;
- struct in6_addr nd_na_target;
-};
-
-#define nd_na_type nd_na_hdr.icmp6_type
-#define nd_na_code nd_na_hdr.icmp6_code
-#define nd_na_cksum nd_na_hdr.icmp6_cksum
-#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0]
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define ND_NA_FLAG_ROUTER 0x80000000
-#define ND_NA_FLAG_SOLICITED 0x40000000
-#define ND_NA_FLAG_OVERRIDE 0x20000000
-#else
-#define ND_NA_FLAG_ROUTER 0x00000080
-#define ND_NA_FLAG_SOLICITED 0x00000040
-#define ND_NA_FLAG_OVERRIDE 0x00000020
-#endif
-
-struct nd_redirect {
- struct icmp6_hdr nd_rd_hdr;
- struct in6_addr nd_rd_target;
- struct in6_addr nd_rd_dst;
-};
-
-#define nd_rd_type nd_rd_hdr.icmp6_type
-#define nd_rd_code nd_rd_hdr.icmp6_code
-#define nd_rd_cksum nd_rd_hdr.icmp6_cksum
-#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]
-
-struct nd_opt_hdr {
- uint8_t nd_opt_type;
- uint8_t nd_opt_len;
-};
-
-#define ND_OPT_SOURCE_LINKADDR 1
-#define ND_OPT_TARGET_LINKADDR 2
-#define ND_OPT_PREFIX_INFORMATION 3
-#define ND_OPT_REDIRECTED_HEADER 4
-#define ND_OPT_MTU 5
-#define ND_OPT_RTR_ADV_INTERVAL 7
-#define ND_OPT_HOME_AGENT_INFO 8
-
-struct nd_opt_prefix_info {
- uint8_t nd_opt_pi_type;
- uint8_t nd_opt_pi_len;
- uint8_t nd_opt_pi_prefix_len;
- uint8_t nd_opt_pi_flags_reserved;
- uint32_t nd_opt_pi_valid_time;
- uint32_t nd_opt_pi_preferred_time;
- uint32_t nd_opt_pi_reserved2;
- struct in6_addr nd_opt_pi_prefix;
-};
-
-#define ND_OPT_PI_FLAG_ONLINK 0x80
-#define ND_OPT_PI_FLAG_AUTO 0x40
-#define ND_OPT_PI_FLAG_RADDR 0x20
-
-struct nd_opt_rd_hdr {
- uint8_t nd_opt_rh_type;
- uint8_t nd_opt_rh_len;
- uint16_t nd_opt_rh_reserved1;
- uint32_t nd_opt_rh_reserved2;
-};
-
-struct nd_opt_mtu {
- uint8_t nd_opt_mtu_type;
- uint8_t nd_opt_mtu_len;
- uint16_t nd_opt_mtu_reserved;
- uint32_t nd_opt_mtu_mtu;
-};
-
-struct mld_hdr {
- struct icmp6_hdr mld_icmp6_hdr;
- struct in6_addr mld_addr;
-};
-
-#define mld_type mld_icmp6_hdr.icmp6_type
-#define mld_code mld_icmp6_hdr.icmp6_code
-#define mld_cksum mld_icmp6_hdr.icmp6_cksum
-#define mld_maxdelay mld_icmp6_hdr.icmp6_data16[0]
-#define mld_reserved mld_icmp6_hdr.icmp6_data16[1]
-
-#define ICMP6_ROUTER_RENUMBERING 138
-
-struct icmp6_router_renum {
- struct icmp6_hdr rr_hdr;
- uint8_t rr_segnum;
- uint8_t rr_flags;
- uint16_t rr_maxdelay;
- uint32_t rr_reserved;
-};
-
-#define rr_type rr_hdr.icmp6_type
-#define rr_code rr_hdr.icmp6_code
-#define rr_cksum rr_hdr.icmp6_cksum
-#define rr_seqnum rr_hdr.icmp6_data32[0]
-
-#define ICMP6_RR_FLAGS_TEST 0x80
-#define ICMP6_RR_FLAGS_REQRESULT 0x40
-#define ICMP6_RR_FLAGS_FORCEAPPLY 0x20
-#define ICMP6_RR_FLAGS_SPECSITE 0x10
-#define ICMP6_RR_FLAGS_PREVDONE 0x08
-
-struct rr_pco_match {
- uint8_t rpm_code;
- uint8_t rpm_len;
- uint8_t rpm_ordinal;
- uint8_t rpm_matchlen;
- uint8_t rpm_minlen;
- uint8_t rpm_maxlen;
- uint16_t rpm_reserved;
- struct in6_addr rpm_prefix;
-};
-
-#define RPM_PCO_ADD 1
-#define RPM_PCO_CHANGE 2
-#define RPM_PCO_SETGLOBAL 3
-
-struct rr_pco_use {
- uint8_t rpu_uselen;
- uint8_t rpu_keeplen;
- uint8_t rpu_ramask;
- uint8_t rpu_raflags;
- uint32_t rpu_vltime;
- uint32_t rpu_pltime;
- uint32_t rpu_flags;
- struct in6_addr rpu_prefix;
-};
-
-#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x20
-#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x10
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000
-#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000
-#else
-#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80
-#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40
-#endif
-
-struct rr_result {
- uint16_t rrr_flags;
- uint8_t rrr_ordinal;
- uint8_t rrr_matchedlen;
- uint32_t rrr_ifid;
- struct in6_addr rrr_prefix;
-};
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define ICMP6_RR_RESULT_FLAGS_OOB 0x0002
-#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001
-#else
-#define ICMP6_RR_RESULT_FLAGS_OOB 0x0200
-#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100
-#endif
-
-struct nd_opt_adv_interval {
- uint8_t nd_opt_adv_interval_type;
- uint8_t nd_opt_adv_interval_len;
- uint16_t nd_opt_adv_interval_reserved;
- uint32_t nd_opt_adv_interval_ival;
-};
-
-struct nd_opt_home_agent_info {
- uint8_t nd_opt_home_agent_info_type;
- uint8_t nd_opt_home_agent_info_len;
- uint16_t nd_opt_home_agent_info_reserved;
- uint16_t nd_opt_home_agent_info_preference;
- uint16_t nd_opt_home_agent_info_lifetime;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/netinet/if_ether.h b/musl/netinet/if_ether.h
deleted file mode 100644
index 3479f51..0000000
--- a/musl/netinet/if_ether.h
+++ /dev/null
@@ -1,149 +0,0 @@
-#ifndef _NETINET_IF_ETHER_H
-#define _NETINET_IF_ETHER_H
-
-#include <stdint.h>
-#include <sys/types.h>
-
-#define ETH_ALEN 6
-#define ETH_TLEN 2
-#define ETH_HLEN 14
-#define ETH_ZLEN 60
-#define ETH_DATA_LEN 1500
-#define ETH_FRAME_LEN 1514
-#define ETH_FCS_LEN 4
-#define ETH_MIN_MTU 68
-#define ETH_MAX_MTU 0xFFFFU
-
-#define ETH_P_LOOP 0x0060
-#define ETH_P_PUP 0x0200
-#define ETH_P_PUPAT 0x0201
-#define ETH_P_TSN 0x22F0
-#define ETH_P_ERSPAN2 0x22EB
-#define ETH_P_IP 0x0800
-#define ETH_P_X25 0x0805
-#define ETH_P_ARP 0x0806
-#define ETH_P_BPQ 0x08FF
-#define ETH_P_IEEEPUP 0x0a00
-#define ETH_P_IEEEPUPAT 0x0a01
-#define ETH_P_BATMAN 0x4305
-#define ETH_P_DEC 0x6000
-#define ETH_P_DNA_DL 0x6001
-#define ETH_P_DNA_RC 0x6002
-#define ETH_P_DNA_RT 0x6003
-#define ETH_P_LAT 0x6004
-#define ETH_P_DIAG 0x6005
-#define ETH_P_CUST 0x6006
-#define ETH_P_SCA 0x6007
-#define ETH_P_TEB 0x6558
-#define ETH_P_RARP 0x8035
-#define ETH_P_ATALK 0x809B
-#define ETH_P_AARP 0x80F3
-#define ETH_P_8021Q 0x8100
-#define ETH_P_IPX 0x8137
-#define ETH_P_IPV6 0x86DD
-#define ETH_P_PAUSE 0x8808
-#define ETH_P_SLOW 0x8809
-#define ETH_P_WCCP 0x883E
-#define ETH_P_MPLS_UC 0x8847
-#define ETH_P_MPLS_MC 0x8848
-#define ETH_P_ATMMPOA 0x884c
-#define ETH_P_PPP_DISC 0x8863
-#define ETH_P_PPP_SES 0x8864
-#define ETH_P_LINK_CTL 0x886c
-#define ETH_P_ATMFATE 0x8884
-#define ETH_P_PAE 0x888E
-#define ETH_P_AOE 0x88A2
-#define ETH_P_8021AD 0x88A8
-#define ETH_P_802_EX1 0x88B5
-#define ETH_P_ERSPAN 0x88BE
-#define ETH_P_PREAUTH 0x88C7
-#define ETH_P_TIPC 0x88CA
-#define ETH_P_LLDP 0x88CC
-#define ETH_P_MRP 0x88E3
-#define ETH_P_MACSEC 0x88E5
-#define ETH_P_8021AH 0x88E7
-#define ETH_P_MVRP 0x88F5
-#define ETH_P_1588 0x88F7
-#define ETH_P_NCSI 0x88F8
-#define ETH_P_PRP 0x88FB
-#define ETH_P_CFM 0x8902
-#define ETH_P_FCOE 0x8906
-#define ETH_P_TDLS 0x890D
-#define ETH_P_FIP 0x8914
-#define ETH_P_IBOE 0x8915
-#define ETH_P_80221 0x8917
-#define ETH_P_HSR 0x892F
-#define ETH_P_NSH 0x894F
-#define ETH_P_LOOPBACK 0x9000
-#define ETH_P_QINQ1 0x9100
-#define ETH_P_QINQ2 0x9200
-#define ETH_P_QINQ3 0x9300
-#define ETH_P_EDSA 0xDADA
-#define ETH_P_DSA_8021Q 0xDADB
-#define ETH_P_IFE 0xED3E
-#define ETH_P_AF_IUCV 0xFBFB
-
-#define ETH_P_802_3_MIN 0x0600
-
-#define ETH_P_802_3 0x0001
-#define ETH_P_AX25 0x0002
-#define ETH_P_ALL 0x0003
-#define ETH_P_802_2 0x0004
-#define ETH_P_SNAP 0x0005
-#define ETH_P_DDCMP 0x0006
-#define ETH_P_WAN_PPP 0x0007
-#define ETH_P_PPP_MP 0x0008
-#define ETH_P_LOCALTALK 0x0009
-#define ETH_P_CAN 0x000C
-#define ETH_P_CANFD 0x000D
-#define ETH_P_PPPTALK 0x0010
-#define ETH_P_TR_802_2 0x0011
-#define ETH_P_MOBITEX 0x0015
-#define ETH_P_CONTROL 0x0016
-#define ETH_P_IRDA 0x0017
-#define ETH_P_ECONET 0x0018
-#define ETH_P_HDLC 0x0019
-#define ETH_P_ARCNET 0x001A
-#define ETH_P_DSA 0x001B
-#define ETH_P_TRAILER 0x001C
-#define ETH_P_PHONET 0x00F5
-#define ETH_P_IEEE802154 0x00F6
-#define ETH_P_CAIF 0x00F7
-#define ETH_P_XDSA 0x00F8
-#define ETH_P_MAP 0x00F9
-
-struct ethhdr {
- uint8_t h_dest[ETH_ALEN];
- uint8_t h_source[ETH_ALEN];
- uint16_t h_proto;
-};
-
-#include <net/ethernet.h>
-#include <net/if_arp.h>
-
-struct ether_arp {
- struct arphdr ea_hdr;
- uint8_t arp_sha[ETH_ALEN];
- uint8_t arp_spa[4];
- uint8_t arp_tha[ETH_ALEN];
- uint8_t arp_tpa[4];
-};
-#define arp_hrd ea_hdr.ar_hrd
-#define arp_pro ea_hdr.ar_pro
-#define arp_hln ea_hdr.ar_hln
-#define arp_pln ea_hdr.ar_pln
-#define arp_op ea_hdr.ar_op
-
-#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \
-do { \
- (enaddr)[0] = 0x01; \
- (enaddr)[1] = 0x00; \
- (enaddr)[2] = 0x5e; \
- (enaddr)[3] = ((uint8_t *)ipaddr)[1] & 0x7f; \
- (enaddr)[4] = ((uint8_t *)ipaddr)[2]; \
- (enaddr)[5] = ((uint8_t *)ipaddr)[3]; \
-} while(0)
-
-#define __UAPI_DEF_ETHHDR 0
-
-#endif
diff --git a/musl/netinet/igmp.h b/musl/netinet/igmp.h
deleted file mode 100644
index bbe8206..0000000
--- a/musl/netinet/igmp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef _NETINET_IGMP_H
-#define _NETINET_IGMP_H
-
-#include <stdint.h>
-#include <netinet/in.h>
-
-struct igmp {
- uint8_t igmp_type;
- uint8_t igmp_code;
- uint16_t igmp_cksum;
- struct in_addr igmp_group;
-};
-
-#define IGMP_MINLEN 8
-
-#define IGMP_MEMBERSHIP_QUERY 0x11
-#define IGMP_V1_MEMBERSHIP_REPORT 0x12
-#define IGMP_V2_MEMBERSHIP_REPORT 0x16
-#define IGMP_V2_LEAVE_GROUP 0x17
-
-#define IGMP_DVMRP 0x13
-#define IGMP_PIM 0x14
-#define IGMP_TRACE 0x15
-
-#define IGMP_MTRACE_RESP 0x1e
-#define IGMP_MTRACE 0x1f
-
-#define IGMP_MAX_HOST_REPORT_DELAY 10
-#define IGMP_TIMER_SCALE 10
-
-#define IGMP_DELAYING_MEMBER 1
-#define IGMP_IDLE_MEMBER 2
-#define IGMP_LAZY_MEMBER 3
-#define IGMP_SLEEPING_MEMBER 4
-#define IGMP_AWAKENING_MEMBER 5
-
-#define IGMP_v1_ROUTER 1
-#define IGMP_v2_ROUTER 2
-
-#define IGMP_HOST_MEMBERSHIP_QUERY IGMP_MEMBERSHIP_QUERY
-#define IGMP_HOST_MEMBERSHIP_REPORT IGMP_V1_MEMBERSHIP_REPORT
-#define IGMP_HOST_NEW_MEMBERSHIP_REPORT IGMP_V2_MEMBERSHIP_REPORT
-#define IGMP_HOST_LEAVE_MESSAGE IGMP_V2_LEAVE_GROUP
-
-#endif
diff --git a/musl/netinet/in.h b/musl/netinet/in.h
deleted file mode 100644
index fb628b6..0000000
--- a/musl/netinet/in.h
+++ /dev/null
@@ -1,417 +0,0 @@
-#ifndef _NETINET_IN_H
-#define _NETINET_IN_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <inttypes.h>
-#include <sys/socket.h>
-
-typedef uint16_t in_port_t;
-typedef uint32_t in_addr_t;
-struct in_addr { in_addr_t s_addr; };
-
-struct sockaddr_in {
- sa_family_t sin_family;
- in_port_t sin_port;
- struct in_addr sin_addr;
- uint8_t sin_zero[8];
-};
-
-struct in6_addr {
- union {
- uint8_t __s6_addr[16];
- uint16_t __s6_addr16[8];
- uint32_t __s6_addr32[4];
- } __in6_union;
-};
-#define s6_addr __in6_union.__s6_addr
-#define s6_addr16 __in6_union.__s6_addr16
-#define s6_addr32 __in6_union.__s6_addr32
-
-struct sockaddr_in6 {
- sa_family_t sin6_family;
- in_port_t sin6_port;
- uint32_t sin6_flowinfo;
- struct in6_addr sin6_addr;
- uint32_t sin6_scope_id;
-};
-
-struct ipv6_mreq {
- struct in6_addr ipv6mr_multiaddr;
- unsigned ipv6mr_interface;
-};
-
-#define INADDR_ANY ((in_addr_t) 0x00000000)
-#define INADDR_BROADCAST ((in_addr_t) 0xffffffff)
-#define INADDR_NONE ((in_addr_t) 0xffffffff)
-#define INADDR_LOOPBACK ((in_addr_t) 0x7f000001)
-#define INADDR_DUMMY ((in_addr_t) 0xc0000008)
-
-#define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000)
-#define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001)
-#define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002)
-#define INADDR_ALLSNOOPERS_GROUP ((in_addr_t) 0xe000006a)
-#define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff)
-
-#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
-#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
-
-extern const struct in6_addr in6addr_any, in6addr_loopback;
-
-#define INET_ADDRSTRLEN 16
-#define INET6_ADDRSTRLEN 46
-
-uint32_t htonl(uint32_t);
-uint16_t htons(uint16_t);
-uint32_t ntohl(uint32_t);
-uint16_t ntohs(uint16_t);
-
-#define IPPORT_RESERVED 1024
-
-#define IPPROTO_IP 0
-#define IPPROTO_HOPOPTS 0
-#define IPPROTO_ICMP 1
-#define IPPROTO_IGMP 2
-#define IPPROTO_IPIP 4
-#define IPPROTO_TCP 6
-#define IPPROTO_EGP 8
-#define IPPROTO_PUP 12
-#define IPPROTO_UDP 17
-#define IPPROTO_IDP 22
-#define IPPROTO_TP 29
-#define IPPROTO_DCCP 33
-#define IPPROTO_IPV6 41
-#define IPPROTO_ROUTING 43
-#define IPPROTO_FRAGMENT 44
-#define IPPROTO_RSVP 46
-#define IPPROTO_GRE 47
-#define IPPROTO_ESP 50
-#define IPPROTO_AH 51
-#define IPPROTO_ICMPV6 58
-#define IPPROTO_NONE 59
-#define IPPROTO_DSTOPTS 60
-#define IPPROTO_MTP 92
-#define IPPROTO_BEETPH 94
-#define IPPROTO_ENCAP 98
-#define IPPROTO_PIM 103
-#define IPPROTO_COMP 108
-#define IPPROTO_SCTP 132
-#define IPPROTO_MH 135
-#define IPPROTO_UDPLITE 136
-#define IPPROTO_MPLS 137
-#define IPPROTO_ETHERNET 143
-#define IPPROTO_RAW 255
-#define IPPROTO_MPTCP 262
-#define IPPROTO_MAX 263
-
-#define IN6_IS_ADDR_UNSPECIFIED(a) \
- (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
- ((uint32_t *) (a))[2] == 0 && ((uint32_t *) (a))[3] == 0)
-
-#define IN6_IS_ADDR_LOOPBACK(a) \
- (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
- ((uint32_t *) (a))[2] == 0 && \
- ((uint8_t *) (a))[12] == 0 && ((uint8_t *) (a))[13] == 0 && \
- ((uint8_t *) (a))[14] == 0 && ((uint8_t *) (a))[15] == 1 )
-
-#define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff)
-
-#define IN6_IS_ADDR_LINKLOCAL(a) \
- ((((uint8_t *) (a))[0]) == 0xfe && (((uint8_t *) (a))[1] & 0xc0) == 0x80)
-
-#define IN6_IS_ADDR_SITELOCAL(a) \
- ((((uint8_t *) (a))[0]) == 0xfe && (((uint8_t *) (a))[1] & 0xc0) == 0xc0)
-
-#define IN6_IS_ADDR_V4MAPPED(a) \
- (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
- ((uint8_t *) (a))[8] == 0 && ((uint8_t *) (a))[9] == 0 && \
- ((uint8_t *) (a))[10] == 0xff && ((uint8_t *) (a))[11] == 0xff)
-
-#define IN6_IS_ADDR_V4COMPAT(a) \
- (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
- ((uint32_t *) (a))[2] == 0 && ((uint8_t *) (a))[15] > 1)
-
-#define IN6_IS_ADDR_MC_NODELOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x1))
-
-#define IN6_IS_ADDR_MC_LINKLOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x2))
-
-#define IN6_IS_ADDR_MC_SITELOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x5))
-
-#define IN6_IS_ADDR_MC_ORGLOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x8))
-
-#define IN6_IS_ADDR_MC_GLOBAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe))
-
-#define __ARE_4_EQUAL(a,b) \
- (!( (0[a]-0[b]) | (1[a]-1[b]) | (2[a]-2[b]) | (3[a]-3[b]) ))
-#define IN6_ARE_ADDR_EQUAL(a,b) \
- __ARE_4_EQUAL((const uint32_t *)(a), (const uint32_t *)(b))
-
-#define IN_CLASSA(a) ((((in_addr_t)(a)) & 0x80000000) == 0)
-#define IN_CLASSA_NET 0xff000000
-#define IN_CLASSA_NSHIFT 24
-#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)
-#define IN_CLASSA_MAX 128
-#define IN_CLASSB(a) ((((in_addr_t)(a)) & 0xc0000000) == 0x80000000)
-#define IN_CLASSB_NET 0xffff0000
-#define IN_CLASSB_NSHIFT 16
-#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
-#define IN_CLASSB_MAX 65536
-#define IN_CLASSC(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xc0000000)
-#define IN_CLASSC_NET 0xffffff00
-#define IN_CLASSC_NSHIFT 8
-#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)
-#define IN_CLASSD(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)
-#define IN_MULTICAST(a) IN_CLASSD(a)
-#define IN_EXPERIMENTAL(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xe0000000)
-#define IN_BADCLASS(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xf0000000)
-
-#define IN_LOOPBACKNET 127
-
-
-#define IP_TOS 1
-#define IP_TTL 2
-#define IP_HDRINCL 3
-#define IP_OPTIONS 4
-#define IP_ROUTER_ALERT 5
-#define IP_RECVOPTS 6
-#define IP_RETOPTS 7
-#define IP_PKTINFO 8
-#define IP_PKTOPTIONS 9
-#define IP_PMTUDISC 10
-#define IP_MTU_DISCOVER 10
-#define IP_RECVERR 11
-#define IP_RECVTTL 12
-#define IP_RECVTOS 13
-#define IP_MTU 14
-#define IP_FREEBIND 15
-#define IP_IPSEC_POLICY 16
-#define IP_XFRM_POLICY 17
-#define IP_PASSSEC 18
-#define IP_TRANSPARENT 19
-#define IP_ORIGDSTADDR 20
-#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
-#define IP_MINTTL 21
-#define IP_NODEFRAG 22
-#define IP_CHECKSUM 23
-#define IP_BIND_ADDRESS_NO_PORT 24
-#define IP_RECVFRAGSIZE 25
-#define IP_RECVERR_RFC4884 26
-#define IP_MULTICAST_IF 32
-#define IP_MULTICAST_TTL 33
-#define IP_MULTICAST_LOOP 34
-#define IP_ADD_MEMBERSHIP 35
-#define IP_DROP_MEMBERSHIP 36
-#define IP_UNBLOCK_SOURCE 37
-#define IP_BLOCK_SOURCE 38
-#define IP_ADD_SOURCE_MEMBERSHIP 39
-#define IP_DROP_SOURCE_MEMBERSHIP 40
-#define IP_MSFILTER 41
-#define IP_MULTICAST_ALL 49
-#define IP_UNICAST_IF 50
-
-#define IP_RECVRETOPTS IP_RETOPTS
-
-#define IP_PMTUDISC_DONT 0
-#define IP_PMTUDISC_WANT 1
-#define IP_PMTUDISC_DO 2
-#define IP_PMTUDISC_PROBE 3
-#define IP_PMTUDISC_INTERFACE 4
-#define IP_PMTUDISC_OMIT 5
-
-#define IP_DEFAULT_MULTICAST_TTL 1
-#define IP_DEFAULT_MULTICAST_LOOP 1
-#define IP_MAX_MEMBERSHIPS 20
-
-struct ip_opts {
- struct in_addr ip_dst;
- char ip_opts[40];
-};
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
-#define MCAST_JOIN_GROUP 42
-#define MCAST_BLOCK_SOURCE 43
-#define MCAST_UNBLOCK_SOURCE 44
-#define MCAST_LEAVE_GROUP 45
-#define MCAST_JOIN_SOURCE_GROUP 46
-#define MCAST_LEAVE_SOURCE_GROUP 47
-#define MCAST_MSFILTER 48
-
-#define MCAST_EXCLUDE 0
-#define MCAST_INCLUDE 1
-
-struct ip_mreq {
- struct in_addr imr_multiaddr;
- struct in_addr imr_interface;
-};
-
-struct ip_mreqn {
- struct in_addr imr_multiaddr;
- struct in_addr imr_address;
- int imr_ifindex;
-};
-
-struct ip_mreq_source {
- struct in_addr imr_multiaddr;
- struct in_addr imr_interface;
- struct in_addr imr_sourceaddr;
-};
-
-struct ip_msfilter {
- struct in_addr imsf_multiaddr;
- struct in_addr imsf_interface;
- uint32_t imsf_fmode;
- uint32_t imsf_numsrc;
- struct in_addr imsf_slist[1];
-};
-#define IP_MSFILTER_SIZE(numsrc) \
- (sizeof(struct ip_msfilter) - sizeof(struct in_addr) \
- + (numsrc) * sizeof(struct in_addr))
-
-struct group_req {
- uint32_t gr_interface;
- struct sockaddr_storage gr_group;
-};
-
-struct group_source_req {
- uint32_t gsr_interface;
- struct sockaddr_storage gsr_group;
- struct sockaddr_storage gsr_source;
-};
-
-struct group_filter {
- uint32_t gf_interface;
- struct sockaddr_storage gf_group;
- uint32_t gf_fmode;
- uint32_t gf_numsrc;
- struct sockaddr_storage gf_slist[1];
-};
-#define GROUP_FILTER_SIZE(numsrc) \
- (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) \
- + (numsrc) * sizeof(struct sockaddr_storage))
-
-struct in_pktinfo {
- int ipi_ifindex;
- struct in_addr ipi_spec_dst;
- struct in_addr ipi_addr;
-};
-
-struct in6_pktinfo {
- struct in6_addr ipi6_addr;
- unsigned ipi6_ifindex;
-};
-
-struct ip6_mtuinfo {
- struct sockaddr_in6 ip6m_addr;
- uint32_t ip6m_mtu;
-};
-#endif
-
-#define IPV6_ADDRFORM 1
-#define IPV6_2292PKTINFO 2
-#define IPV6_2292HOPOPTS 3
-#define IPV6_2292DSTOPTS 4
-#define IPV6_2292RTHDR 5
-#define IPV6_2292PKTOPTIONS 6
-#define IPV6_CHECKSUM 7
-#define IPV6_2292HOPLIMIT 8
-#define IPV6_NEXTHOP 9
-#define IPV6_AUTHHDR 10
-#define IPV6_UNICAST_HOPS 16
-#define IPV6_MULTICAST_IF 17
-#define IPV6_MULTICAST_HOPS 18
-#define IPV6_MULTICAST_LOOP 19
-#define IPV6_JOIN_GROUP 20
-#define IPV6_LEAVE_GROUP 21
-#define IPV6_ROUTER_ALERT 22
-#define IPV6_MTU_DISCOVER 23
-#define IPV6_MTU 24
-#define IPV6_RECVERR 25
-#define IPV6_V6ONLY 26
-#define IPV6_JOIN_ANYCAST 27
-#define IPV6_LEAVE_ANYCAST 28
-#define IPV6_MULTICAST_ALL 29
-#define IPV6_ROUTER_ALERT_ISOLATE 30
-#define IPV6_IPSEC_POLICY 34
-#define IPV6_XFRM_POLICY 35
-#define IPV6_HDRINCL 36
-
-#define IPV6_RECVPKTINFO 49
-#define IPV6_PKTINFO 50
-#define IPV6_RECVHOPLIMIT 51
-#define IPV6_HOPLIMIT 52
-#define IPV6_RECVHOPOPTS 53
-#define IPV6_HOPOPTS 54
-#define IPV6_RTHDRDSTOPTS 55
-#define IPV6_RECVRTHDR 56
-#define IPV6_RTHDR 57
-#define IPV6_RECVDSTOPTS 58
-#define IPV6_DSTOPTS 59
-#define IPV6_RECVPATHMTU 60
-#define IPV6_PATHMTU 61
-#define IPV6_DONTFRAG 62
-#define IPV6_RECVTCLASS 66
-#define IPV6_TCLASS 67
-#define IPV6_AUTOFLOWLABEL 70
-#define IPV6_ADDR_PREFERENCES 72
-#define IPV6_MINHOPCOUNT 73
-#define IPV6_ORIGDSTADDR 74
-#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR
-#define IPV6_TRANSPARENT 75
-#define IPV6_UNICAST_IF 76
-#define IPV6_RECVFRAGSIZE 77
-#define IPV6_FREEBIND 78
-
-#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
-#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
-#define IPV6_RXHOPOPTS IPV6_HOPOPTS
-#define IPV6_RXDSTOPTS IPV6_DSTOPTS
-
-#define IPV6_PMTUDISC_DONT 0
-#define IPV6_PMTUDISC_WANT 1
-#define IPV6_PMTUDISC_DO 2
-#define IPV6_PMTUDISC_PROBE 3
-#define IPV6_PMTUDISC_INTERFACE 4
-#define IPV6_PMTUDISC_OMIT 5
-
-#define IPV6_PREFER_SRC_TMP 0x0001
-#define IPV6_PREFER_SRC_PUBLIC 0x0002
-#define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100
-#define IPV6_PREFER_SRC_COA 0x0004
-#define IPV6_PREFER_SRC_HOME 0x0400
-#define IPV6_PREFER_SRC_CGA 0x0008
-#define IPV6_PREFER_SRC_NONCGA 0x0800
-
-#define IPV6_RTHDR_LOOSE 0
-#define IPV6_RTHDR_STRICT 1
-
-#define IPV6_RTHDR_TYPE_0 0
-
-#define __UAPI_DEF_IN_ADDR 0
-#define __UAPI_DEF_IN_IPPROTO 0
-#define __UAPI_DEF_IN_PKTINFO 0
-#define __UAPI_DEF_IP_MREQ 0
-#define __UAPI_DEF_SOCKADDR_IN 0
-#define __UAPI_DEF_IN_CLASS 0
-#define __UAPI_DEF_IN6_ADDR 0
-#define __UAPI_DEF_IN6_ADDR_ALT 0
-#define __UAPI_DEF_SOCKADDR_IN6 0
-#define __UAPI_DEF_IPV6_MREQ 0
-#define __UAPI_DEF_IPPROTO_V6 0
-#define __UAPI_DEF_IPV6_OPTIONS 0
-#define __UAPI_DEF_IN6_PKTINFO 0
-#define __UAPI_DEF_IP6_MTUINFO 0
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/netinet/in_systm.h b/musl/netinet/in_systm.h
deleted file mode 100644
index a7b4177..0000000
--- a/musl/netinet/in_systm.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _NETINET_IN_SYSTM_H
-#define _NETINET_IN_SYSTM_H
-
-#include <stdint.h>
-
-typedef uint16_t n_short;
-typedef uint32_t n_long, n_time;
-
-#endif
diff --git a/musl/netinet/ip.h b/musl/netinet/ip.h
deleted file mode 100644
index 0ae132a..0000000
--- a/musl/netinet/ip.h
+++ /dev/null
@@ -1,199 +0,0 @@
-#ifndef _NETINET_IP_H
-#define _NETINET_IP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <netinet/in.h>
-
-struct timestamp {
- uint8_t len;
- uint8_t ptr;
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- unsigned int flags:4;
- unsigned int overflow:4;
-#else
- unsigned int overflow:4;
- unsigned int flags:4;
-#endif
- uint32_t data[9];
- };
-
-struct iphdr {
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- unsigned int ihl:4;
- unsigned int version:4;
-#else
- unsigned int version:4;
- unsigned int ihl:4;
-#endif
- uint8_t tos;
- uint16_t tot_len;
- uint16_t id;
- uint16_t frag_off;
- uint8_t ttl;
- uint8_t protocol;
- uint16_t check;
- uint32_t saddr;
- uint32_t daddr;
-};
-
-struct ip {
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- unsigned int ip_hl:4;
- unsigned int ip_v:4;
-#else
- unsigned int ip_v:4;
- unsigned int ip_hl:4;
-#endif
- uint8_t ip_tos;
- uint16_t ip_len;
- uint16_t ip_id;
- uint16_t ip_off;
- uint8_t ip_ttl;
- uint8_t ip_p;
- uint16_t ip_sum;
- struct in_addr ip_src, ip_dst;
-};
-
-#define IP_RF 0x8000
-#define IP_DF 0x4000
-#define IP_MF 0x2000
-#define IP_OFFMASK 0x1fff
-
-struct ip_timestamp {
- uint8_t ipt_code;
- uint8_t ipt_len;
- uint8_t ipt_ptr;
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- unsigned int ipt_flg:4;
- unsigned int ipt_oflw:4;
-#else
- unsigned int ipt_oflw:4;
- unsigned int ipt_flg:4;
-#endif
- uint32_t data[9];
-};
-
-#define IPVERSION 4
-#define IP_MAXPACKET 65535
-
-#define IPTOS_ECN_MASK 0x03
-#define IPTOS_ECN(x) ((x) & IPTOS_ECN_MASK)
-#define IPTOS_ECN_NOT_ECT 0x00
-#define IPTOS_ECN_ECT1 0x01
-#define IPTOS_ECN_ECT0 0x02
-#define IPTOS_ECN_CE 0x03
-
-#define IPTOS_DSCP_MASK 0xfc
-#define IPTOS_DSCP(x) ((x) & IPTOS_DSCP_MASK)
-#define IPTOS_DSCP_AF11 0x28
-#define IPTOS_DSCP_AF12 0x30
-#define IPTOS_DSCP_AF13 0x38
-#define IPTOS_DSCP_AF21 0x48
-#define IPTOS_DSCP_AF22 0x50
-#define IPTOS_DSCP_AF23 0x58
-#define IPTOS_DSCP_AF31 0x68
-#define IPTOS_DSCP_AF32 0x70
-#define IPTOS_DSCP_AF33 0x78
-#define IPTOS_DSCP_AF41 0x88
-#define IPTOS_DSCP_AF42 0x90
-#define IPTOS_DSCP_AF43 0x98
-#define IPTOS_DSCP_EF 0xb8
-
-#define IPTOS_CLASS_MASK 0xe0
-#define IPTOS_CLASS(x) ((x) & IPTOS_CLASS_MASK)
-#define IPTOS_CLASS_CS0 0x00
-#define IPTOS_CLASS_CS1 0x20
-#define IPTOS_CLASS_CS2 0x40
-#define IPTOS_CLASS_CS3 0x60
-#define IPTOS_CLASS_CS4 0x80
-#define IPTOS_CLASS_CS5 0xa0
-#define IPTOS_CLASS_CS6 0xc0
-#define IPTOS_CLASS_CS7 0xe0
-#define IPTOS_CLASS_DEFAULT IPTOS_CLASS_CS0
-
-#define IPTOS_TOS_MASK 0x1E
-#define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK)
-#define IPTOS_LOWDELAY 0x10
-#define IPTOS_THROUGHPUT 0x08
-#define IPTOS_RELIABILITY 0x04
-#define IPTOS_LOWCOST 0x02
-#define IPTOS_MINCOST IPTOS_LOWCOST
-
-#define IPTOS_PREC_MASK 0xe0
-#define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK)
-#define IPTOS_PREC_NETCONTROL 0xe0
-#define IPTOS_PREC_INTERNETCONTROL 0xc0
-#define IPTOS_PREC_CRITIC_ECP 0xa0
-#define IPTOS_PREC_FLASHOVERRIDE 0x80
-#define IPTOS_PREC_FLASH 0x60
-#define IPTOS_PREC_IMMEDIATE 0x40
-#define IPTOS_PREC_PRIORITY 0x20
-#define IPTOS_PREC_ROUTINE 0x00
-
-#define IPOPT_COPY 0x80
-#define IPOPT_CLASS_MASK 0x60
-#define IPOPT_NUMBER_MASK 0x1f
-
-#define IPOPT_COPIED(o) ((o) & IPOPT_COPY)
-#define IPOPT_CLASS(o) ((o) & IPOPT_CLASS_MASK)
-#define IPOPT_NUMBER(o) ((o) & IPOPT_NUMBER_MASK)
-
-#define IPOPT_CONTROL 0x00
-#define IPOPT_RESERVED1 0x20
-#define IPOPT_DEBMEAS 0x40
-#define IPOPT_MEASUREMENT IPOPT_DEBMEAS
-#define IPOPT_RESERVED2 0x60
-
-#define IPOPT_EOL 0
-#define IPOPT_END IPOPT_EOL
-#define IPOPT_NOP 1
-#define IPOPT_NOOP IPOPT_NOP
-
-#define IPOPT_RR 7
-#define IPOPT_TS 68
-#define IPOPT_TIMESTAMP IPOPT_TS
-#define IPOPT_SECURITY 130
-#define IPOPT_SEC IPOPT_SECURITY
-#define IPOPT_LSRR 131
-#define IPOPT_SATID 136
-#define IPOPT_SID IPOPT_SATID
-#define IPOPT_SSRR 137
-#define IPOPT_RA 148
-
-#define IPOPT_OPTVAL 0
-#define IPOPT_OLEN 1
-#define IPOPT_OFFSET 2
-#define IPOPT_MINOFF 4
-
-#define MAX_IPOPTLEN 40
-
-#define IPOPT_TS_TSONLY 0
-#define IPOPT_TS_TSANDADDR 1
-#define IPOPT_TS_PRESPEC 3
-
-#define IPOPT_SECUR_UNCLASS 0x0000
-#define IPOPT_SECUR_CONFID 0xf135
-#define IPOPT_SECUR_EFTO 0x789a
-#define IPOPT_SECUR_MMMM 0xbc4d
-#define IPOPT_SECUR_RESTR 0xaf13
-#define IPOPT_SECUR_SECRET 0xd788
-#define IPOPT_SECUR_TOPSECRET 0x6bc5
-
-#define MAXTTL 255
-#define IPDEFTTL 64
-#define IPFRAGTTL 60
-#define IPTTLDEC 1
-
-#define IP_MSS 576
-
-#define __UAPI_DEF_IPHDR 0
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/netinet/ip6.h b/musl/netinet/ip6.h
deleted file mode 100644
index 50c626a..0000000
--- a/musl/netinet/ip6.h
+++ /dev/null
@@ -1,141 +0,0 @@
-#ifndef _NETINET_IP6_H
-#define _NETINET_IP6_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <netinet/in.h>
-
-struct ip6_hdr {
- union {
- struct ip6_hdrctl {
- uint32_t ip6_un1_flow;
- uint16_t ip6_un1_plen;
- uint8_t ip6_un1_nxt;
- uint8_t ip6_un1_hlim;
- } ip6_un1;
- uint8_t ip6_un2_vfc;
- } ip6_ctlun;
- struct in6_addr ip6_src;
- struct in6_addr ip6_dst;
-};
-
-#define ip6_vfc ip6_ctlun.ip6_un2_vfc
-#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow
-#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen
-#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt
-#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim
-#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim
-
-struct ip6_ext {
- uint8_t ip6e_nxt;
- uint8_t ip6e_len;
-};
-
-struct ip6_hbh {
- uint8_t ip6h_nxt;
- uint8_t ip6h_len;
-};
-
-struct ip6_dest {
- uint8_t ip6d_nxt;
- uint8_t ip6d_len;
-};
-
-struct ip6_rthdr {
- uint8_t ip6r_nxt;
- uint8_t ip6r_len;
- uint8_t ip6r_type;
- uint8_t ip6r_segleft;
-};
-
-struct ip6_rthdr0 {
- uint8_t ip6r0_nxt;
- uint8_t ip6r0_len;
- uint8_t ip6r0_type;
- uint8_t ip6r0_segleft;
- uint8_t ip6r0_reserved;
- uint8_t ip6r0_slmap[3];
- struct in6_addr ip6r0_addr[];
-};
-
-struct ip6_frag {
- uint8_t ip6f_nxt;
- uint8_t ip6f_reserved;
- uint16_t ip6f_offlg;
- uint32_t ip6f_ident;
-};
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define IP6F_OFF_MASK 0xfff8
-#define IP6F_RESERVED_MASK 0x0006
-#define IP6F_MORE_FRAG 0x0001
-#else
-#define IP6F_OFF_MASK 0xf8ff
-#define IP6F_RESERVED_MASK 0x0600
-#define IP6F_MORE_FRAG 0x0100
-#endif
-
-struct ip6_opt {
- uint8_t ip6o_type;
- uint8_t ip6o_len;
-};
-
-#define IP6OPT_TYPE(o) ((o) & 0xc0)
-#define IP6OPT_TYPE_SKIP 0x00
-#define IP6OPT_TYPE_DISCARD 0x40
-#define IP6OPT_TYPE_FORCEICMP 0x80
-#define IP6OPT_TYPE_ICMP 0xc0
-#define IP6OPT_TYPE_MUTABLE 0x20
-
-#define IP6OPT_PAD1 0
-#define IP6OPT_PADN 1
-
-#define IP6OPT_JUMBO 0xc2
-#define IP6OPT_NSAP_ADDR 0xc3
-#define IP6OPT_TUNNEL_LIMIT 0x04
-#define IP6OPT_ROUTER_ALERT 0x05
-
-struct ip6_opt_jumbo {
- uint8_t ip6oj_type;
- uint8_t ip6oj_len;
- uint8_t ip6oj_jumbo_len[4];
-};
-#define IP6OPT_JUMBO_LEN 6
-
-struct ip6_opt_nsap {
- uint8_t ip6on_type;
- uint8_t ip6on_len;
- uint8_t ip6on_src_nsap_len;
- uint8_t ip6on_dst_nsap_len;
-};
-
-struct ip6_opt_tunnel {
- uint8_t ip6ot_type;
- uint8_t ip6ot_len;
- uint8_t ip6ot_encap_limit;
-};
-
-struct ip6_opt_router {
- uint8_t ip6or_type;
- uint8_t ip6or_len;
- uint8_t ip6or_value[2];
-};
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define IP6_ALERT_MLD 0x0000
-#define IP6_ALERT_RSVP 0x0001
-#define IP6_ALERT_AN 0x0002
-#else
-#define IP6_ALERT_MLD 0x0000
-#define IP6_ALERT_RSVP 0x0100
-#define IP6_ALERT_AN 0x0200
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/netinet/ip_icmp.h b/musl/netinet/ip_icmp.h
deleted file mode 100644
index b9e0df8..0000000
--- a/musl/netinet/ip_icmp.h
+++ /dev/null
@@ -1,193 +0,0 @@
-#ifndef _NETINET_IP_ICMP_H
-#define _NETINET_IP_ICMP_H
-
-#include <stdint.h>
-#include <netinet/in.h>
-#include <netinet/ip.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct icmphdr {
- uint8_t type;
- uint8_t code;
- uint16_t checksum;
- union {
- struct {
- uint16_t id;
- uint16_t sequence;
- } echo;
- uint32_t gateway;
- struct {
- uint16_t __unused;
- uint16_t mtu;
- } frag;
- uint8_t reserved[4];
- } un;
-};
-
-#define ICMP_ECHOREPLY 0
-#define ICMP_DEST_UNREACH 3
-#define ICMP_SOURCE_QUENCH 4
-#define ICMP_REDIRECT 5
-#define ICMP_ECHO 8
-#define ICMP_TIME_EXCEEDED 11
-#define ICMP_PARAMETERPROB 12
-#define ICMP_TIMESTAMP 13
-#define ICMP_TIMESTAMPREPLY 14
-#define ICMP_INFO_REQUEST 15
-#define ICMP_INFO_REPLY 16
-#define ICMP_ADDRESS 17
-#define ICMP_ADDRESSREPLY 18
-#define NR_ICMP_TYPES 18
-
-
-#define ICMP_NET_UNREACH 0
-#define ICMP_HOST_UNREACH 1
-#define ICMP_PROT_UNREACH 2
-#define ICMP_PORT_UNREACH 3
-#define ICMP_FRAG_NEEDED 4
-#define ICMP_SR_FAILED 5
-#define ICMP_NET_UNKNOWN 6
-#define ICMP_HOST_UNKNOWN 7
-#define ICMP_HOST_ISOLATED 8
-#define ICMP_NET_ANO 9
-#define ICMP_HOST_ANO 10
-#define ICMP_NET_UNR_TOS 11
-#define ICMP_HOST_UNR_TOS 12
-#define ICMP_PKT_FILTERED 13
-#define ICMP_PREC_VIOLATION 14
-#define ICMP_PREC_CUTOFF 15
-#define NR_ICMP_UNREACH 15
-
-#define ICMP_REDIR_NET 0
-#define ICMP_REDIR_HOST 1
-#define ICMP_REDIR_NETTOS 2
-#define ICMP_REDIR_HOSTTOS 3
-
-#define ICMP_EXC_TTL 0
-#define ICMP_EXC_FRAGTIME 1
-
-
-struct icmp_ra_addr {
- uint32_t ira_addr;
- uint32_t ira_preference;
-};
-
-struct icmp {
- uint8_t icmp_type;
- uint8_t icmp_code;
- uint16_t icmp_cksum;
- union {
- uint8_t ih_pptr;
- struct in_addr ih_gwaddr;
- struct ih_idseq {
- uint16_t icd_id;
- uint16_t icd_seq;
- } ih_idseq;
- uint32_t ih_void;
-
- struct ih_pmtu {
- uint16_t ipm_void;
- uint16_t ipm_nextmtu;
- } ih_pmtu;
-
- struct ih_rtradv {
- uint8_t irt_num_addrs;
- uint8_t irt_wpa;
- uint16_t irt_lifetime;
- } ih_rtradv;
- } icmp_hun;
- union {
- struct {
- uint32_t its_otime;
- uint32_t its_rtime;
- uint32_t its_ttime;
- } id_ts;
- struct {
- struct ip idi_ip;
- } id_ip;
- struct icmp_ra_addr id_radv;
- uint32_t id_mask;
- uint8_t id_data[1];
- } icmp_dun;
-};
-
-#define icmp_pptr icmp_hun.ih_pptr
-#define icmp_gwaddr icmp_hun.ih_gwaddr
-#define icmp_id icmp_hun.ih_idseq.icd_id
-#define icmp_seq icmp_hun.ih_idseq.icd_seq
-#define icmp_void icmp_hun.ih_void
-#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void
-#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu
-#define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs
-#define icmp_wpa icmp_hun.ih_rtradv.irt_wpa
-#define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime
-#define icmp_otime icmp_dun.id_ts.its_otime
-#define icmp_rtime icmp_dun.id_ts.its_rtime
-#define icmp_ttime icmp_dun.id_ts.its_ttime
-#define icmp_ip icmp_dun.id_ip.idi_ip
-#define icmp_radv icmp_dun.id_radv
-#define icmp_mask icmp_dun.id_mask
-#define icmp_data icmp_dun.id_data
-
-#define ICMP_MINLEN 8
-#define ICMP_TSLEN (8 + 3 * sizeof (n_time))
-#define ICMP_MASKLEN 12
-#define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8)
-#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8)
-
-#define ICMP_UNREACH 3
-#define ICMP_SOURCEQUENCH 4
-#define ICMP_ROUTERADVERT 9
-#define ICMP_ROUTERSOLICIT 10
-#define ICMP_TIMXCEED 11
-#define ICMP_PARAMPROB 12
-#define ICMP_TSTAMP 13
-#define ICMP_TSTAMPREPLY 14
-#define ICMP_IREQ 15
-#define ICMP_IREQREPLY 16
-#define ICMP_MASKREQ 17
-#define ICMP_MASKREPLY 18
-#define ICMP_MAXTYPE 18
-
-#define ICMP_UNREACH_NET 0
-#define ICMP_UNREACH_HOST 1
-#define ICMP_UNREACH_PROTOCOL 2
-#define ICMP_UNREACH_PORT 3
-#define ICMP_UNREACH_NEEDFRAG 4
-#define ICMP_UNREACH_SRCFAIL 5
-#define ICMP_UNREACH_NET_UNKNOWN 6
-#define ICMP_UNREACH_HOST_UNKNOWN 7
-#define ICMP_UNREACH_ISOLATED 8
-#define ICMP_UNREACH_NET_PROHIB 9
-#define ICMP_UNREACH_HOST_PROHIB 10
-#define ICMP_UNREACH_TOSNET 11
-#define ICMP_UNREACH_TOSHOST 12
-#define ICMP_UNREACH_FILTER_PROHIB 13
-#define ICMP_UNREACH_HOST_PRECEDENCE 14
-#define ICMP_UNREACH_PRECEDENCE_CUTOFF 15
-
-#define ICMP_REDIRECT_NET 0
-#define ICMP_REDIRECT_HOST 1
-#define ICMP_REDIRECT_TOSNET 2
-#define ICMP_REDIRECT_TOSHOST 3
-
-#define ICMP_TIMXCEED_INTRANS 0
-#define ICMP_TIMXCEED_REASS 1
-
-#define ICMP_PARAMPROB_OPTABSENT 1
-
-#define ICMP_INFOTYPE(type) \
- ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \
- (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \
- (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \
- (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \
- (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/netinet/tcp.h b/musl/netinet/tcp.h
deleted file mode 100644
index fad1d84..0000000
--- a/musl/netinet/tcp.h
+++ /dev/null
@@ -1,305 +0,0 @@
-#ifndef _NETINET_TCP_H
-#define _NETINET_TCP_H
-
-#include <features.h>
-
-#define TCP_NODELAY 1
-#define TCP_MAXSEG 2
-#define TCP_CORK 3
-#define TCP_KEEPIDLE 4
-#define TCP_KEEPINTVL 5
-#define TCP_KEEPCNT 6
-#define TCP_SYNCNT 7
-#define TCP_LINGER2 8
-#define TCP_DEFER_ACCEPT 9
-#define TCP_WINDOW_CLAMP 10
-#define TCP_INFO 11
-#define TCP_QUICKACK 12
-#define TCP_CONGESTION 13
-#define TCP_MD5SIG 14
-#define TCP_THIN_LINEAR_TIMEOUTS 16
-#define TCP_THIN_DUPACK 17
-#define TCP_USER_TIMEOUT 18
-#define TCP_REPAIR 19
-#define TCP_REPAIR_QUEUE 20
-#define TCP_QUEUE_SEQ 21
-#define TCP_REPAIR_OPTIONS 22
-#define TCP_FASTOPEN 23
-#define TCP_TIMESTAMP 24
-#define TCP_NOTSENT_LOWAT 25
-#define TCP_CC_INFO 26
-#define TCP_SAVE_SYN 27
-#define TCP_SAVED_SYN 28
-#define TCP_REPAIR_WINDOW 29
-#define TCP_FASTOPEN_CONNECT 30
-#define TCP_ULP 31
-#define TCP_MD5SIG_EXT 32
-#define TCP_FASTOPEN_KEY 33
-#define TCP_FASTOPEN_NO_COOKIE 34
-#define TCP_ZEROCOPY_RECEIVE 35
-#define TCP_INQ 36
-#define TCP_TX_DELAY 37
-
-#define TCP_CM_INQ TCP_INQ
-
-#define TCP_ESTABLISHED 1
-#define TCP_SYN_SENT 2
-#define TCP_SYN_RECV 3
-#define TCP_FIN_WAIT1 4
-#define TCP_FIN_WAIT2 5
-#define TCP_TIME_WAIT 6
-#define TCP_CLOSE 7
-#define TCP_CLOSE_WAIT 8
-#define TCP_LAST_ACK 9
-#define TCP_LISTEN 10
-#define TCP_CLOSING 11
-
-enum {
- TCP_NLA_PAD,
- TCP_NLA_BUSY,
- TCP_NLA_RWND_LIMITED,
- TCP_NLA_SNDBUF_LIMITED,
- TCP_NLA_DATA_SEGS_OUT,
- TCP_NLA_TOTAL_RETRANS,
- TCP_NLA_PACING_RATE,
- TCP_NLA_DELIVERY_RATE,
- TCP_NLA_SND_CWND,
- TCP_NLA_REORDERING,
- TCP_NLA_MIN_RTT,
- TCP_NLA_RECUR_RETRANS,
- TCP_NLA_DELIVERY_RATE_APP_LMT,
- TCP_NLA_SNDQ_SIZE,
- TCP_NLA_CA_STATE,
- TCP_NLA_SND_SSTHRESH,
- TCP_NLA_DELIVERED,
- TCP_NLA_DELIVERED_CE,
- TCP_NLA_BYTES_SENT,
- TCP_NLA_BYTES_RETRANS,
- TCP_NLA_DSACK_DUPS,
- TCP_NLA_REORD_SEEN,
- TCP_NLA_SRTT,
- TCP_NLA_TIMEOUT_REHASH,
- TCP_NLA_BYTES_NOTSENT,
- TCP_NLA_EDT,
- TCP_NLA_TTL,
-};
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define TCPOPT_EOL 0
-#define TCPOPT_NOP 1
-#define TCPOPT_MAXSEG 2
-#define TCPOPT_WINDOW 3
-#define TCPOPT_SACK_PERMITTED 4
-#define TCPOPT_SACK 5
-#define TCPOPT_TIMESTAMP 8
-#define TCPOLEN_SACK_PERMITTED 2
-#define TCPOLEN_WINDOW 3
-#define TCPOLEN_MAXSEG 4
-#define TCPOLEN_TIMESTAMP 10
-
-#define SOL_TCP 6
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <stdint.h>
-
-typedef uint32_t tcp_seq;
-
-#define TH_FIN 0x01
-#define TH_SYN 0x02
-#define TH_RST 0x04
-#define TH_PUSH 0x08
-#define TH_ACK 0x10
-#define TH_URG 0x20
-
-struct tcphdr {
-#ifdef _GNU_SOURCE
-#ifdef __GNUC__
- __extension__
-#endif
- union { struct {
-
- uint16_t source;
- uint16_t dest;
- uint32_t seq;
- uint32_t ack_seq;
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- uint16_t res1:4;
- uint16_t doff:4;
- uint16_t fin:1;
- uint16_t syn:1;
- uint16_t rst:1;
- uint16_t psh:1;
- uint16_t ack:1;
- uint16_t urg:1;
- uint16_t res2:2;
-#else
- uint16_t doff:4;
- uint16_t res1:4;
- uint16_t res2:2;
- uint16_t urg:1;
- uint16_t ack:1;
- uint16_t psh:1;
- uint16_t rst:1;
- uint16_t syn:1;
- uint16_t fin:1;
-#endif
- uint16_t window;
- uint16_t check;
- uint16_t urg_ptr;
-
- }; struct {
-#endif
-
- uint16_t th_sport;
- uint16_t th_dport;
- uint32_t th_seq;
- uint32_t th_ack;
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- uint8_t th_x2:4;
- uint8_t th_off:4;
-#else
- uint8_t th_off:4;
- uint8_t th_x2:4;
-#endif
- uint8_t th_flags;
- uint16_t th_win;
- uint16_t th_sum;
- uint16_t th_urp;
-
-#ifdef _GNU_SOURCE
- }; };
-#endif
-};
-#endif
-
-#ifdef _GNU_SOURCE
-#define TCPI_OPT_TIMESTAMPS 1
-#define TCPI_OPT_SACK 2
-#define TCPI_OPT_WSCALE 4
-#define TCPI_OPT_ECN 8
-
-#define TCP_CA_Open 0
-#define TCP_CA_Disorder 1
-#define TCP_CA_CWR 2
-#define TCP_CA_Recovery 3
-#define TCP_CA_Loss 4
-
-enum tcp_fastopen_client_fail {
- TFO_STATUS_UNSPEC,
- TFO_COOKIE_UNAVAILABLE,
- TFO_DATA_NOT_ACKED,
- TFO_SYN_RETRANSMITTED,
-};
-
-struct tcp_info {
- uint8_t tcpi_state;
- uint8_t tcpi_ca_state;
- uint8_t tcpi_retransmits;
- uint8_t tcpi_probes;
- uint8_t tcpi_backoff;
- uint8_t tcpi_options;
- uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
- uint8_t tcpi_delivery_rate_app_limited : 1, tcpi_fastopen_client_fail : 2;
- uint32_t tcpi_rto;
- uint32_t tcpi_ato;
- uint32_t tcpi_snd_mss;
- uint32_t tcpi_rcv_mss;
- uint32_t tcpi_unacked;
- uint32_t tcpi_sacked;
- uint32_t tcpi_lost;
- uint32_t tcpi_retrans;
- uint32_t tcpi_fackets;
- uint32_t tcpi_last_data_sent;
- uint32_t tcpi_last_ack_sent;
- uint32_t tcpi_last_data_recv;
- uint32_t tcpi_last_ack_recv;
- uint32_t tcpi_pmtu;
- uint32_t tcpi_rcv_ssthresh;
- uint32_t tcpi_rtt;
- uint32_t tcpi_rttvar;
- uint32_t tcpi_snd_ssthresh;
- uint32_t tcpi_snd_cwnd;
- uint32_t tcpi_advmss;
- uint32_t tcpi_reordering;
- uint32_t tcpi_rcv_rtt;
- uint32_t tcpi_rcv_space;
- uint32_t tcpi_total_retrans;
- uint64_t tcpi_pacing_rate;
- uint64_t tcpi_max_pacing_rate;
- uint64_t tcpi_bytes_acked;
- uint64_t tcpi_bytes_received;
- uint32_t tcpi_segs_out;
- uint32_t tcpi_segs_in;
- uint32_t tcpi_notsent_bytes;
- uint32_t tcpi_min_rtt;
- uint32_t tcpi_data_segs_in;
- uint32_t tcpi_data_segs_out;
- uint64_t tcpi_delivery_rate;
- uint64_t tcpi_busy_time;
- uint64_t tcpi_rwnd_limited;
- uint64_t tcpi_sndbuf_limited;
- uint32_t tcpi_delivered;
- uint32_t tcpi_delivered_ce;
- uint64_t tcpi_bytes_sent;
- uint64_t tcpi_bytes_retrans;
- uint32_t tcpi_dsack_dups;
- uint32_t tcpi_reord_seen;
- uint32_t tcpi_rcv_ooopack;
- uint32_t tcpi_snd_wnd;
-};
-
-#define TCP_MD5SIG_MAXKEYLEN 80
-
-#define TCP_MD5SIG_FLAG_PREFIX 0x1
-#define TCP_MD5SIG_FLAG_IFINDEX 0x2
-
-struct tcp_md5sig {
- struct sockaddr_storage tcpm_addr;
- uint8_t tcpm_flags;
- uint8_t tcpm_prefixlen;
- uint16_t tcpm_keylen;
- int tcpm_ifindex;
- uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];
-};
-
-struct tcp_diag_md5sig {
- uint8_t tcpm_family;
- uint8_t tcpm_prefixlen;
- uint16_t tcpm_keylen;
- uint32_t tcpm_addr[4];
- uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];
-};
-
-#define TCP_REPAIR_ON 1
-#define TCP_REPAIR_OFF 0
-#define TCP_REPAIR_OFF_NO_WP -1
-
-struct tcp_repair_window {
- uint32_t snd_wl1;
- uint32_t snd_wnd;
- uint32_t max_window;
- uint32_t rcv_wnd;
- uint32_t rcv_wup;
-};
-
-#define TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT 0x1
-
-struct tcp_zerocopy_receive {
- uint64_t address;
- uint32_t length;
- uint32_t recv_skip_hint;
- uint32_t inq;
- int32_t err;
- uint64_t copybuf_address;
- int32_t copybuf_len;
- uint32_t flags;
- uint64_t msg_control;
- uint64_t msg_controllen;
- uint32_t msg_flags;
- uint32_t reserved;
-};
-
-#endif
-
-#endif
diff --git a/musl/netinet/udp.h b/musl/netinet/udp.h
deleted file mode 100644
index 40c3f20..0000000
--- a/musl/netinet/udp.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef _NETINET_UDP_H
-#define _NETINET_UDP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <stdint.h>
-
-#ifdef _GNU_SOURCE
-#define uh_sport source
-#define uh_dport dest
-#define uh_ulen len
-#define uh_sum check
-#endif
-
-struct udphdr {
- uint16_t uh_sport;
- uint16_t uh_dport;
- uint16_t uh_ulen;
- uint16_t uh_sum;
-};
-
-#define UDP_CORK 1
-#define UDP_ENCAP 100
-#define UDP_NO_CHECK6_TX 101
-#define UDP_NO_CHECK6_RX 102
-#define UDP_SEGMENT 103
-#define UDP_GRO 104
-
-#define UDP_ENCAP_ESPINUDP_NON_IKE 1
-#define UDP_ENCAP_ESPINUDP 2
-#define UDP_ENCAP_L2TPINUDP 3
-#define UDP_ENCAP_GTP0 4
-#define UDP_ENCAP_GTP1U 5
-#define UDP_ENCAP_RXRPC 6
-#define TCP_ENCAP_ESPINTCP 7
-
-#define SOL_UDP 17
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/netpacket/packet.h b/musl/netpacket/packet.h
deleted file mode 100644
index b36e092..0000000
--- a/musl/netpacket/packet.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef _NETPACKET_PACKET_H
-#define _NETPACKET_PACKET_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct sockaddr_ll {
- unsigned short sll_family, sll_protocol;
- int sll_ifindex;
- unsigned short sll_hatype;
- unsigned char sll_pkttype, sll_halen;
- unsigned char sll_addr[8];
-};
-
-struct packet_mreq {
- int mr_ifindex;
- unsigned short int mr_type, mr_alen;
- unsigned char mr_address[8];
-};
-
-#define PACKET_HOST 0
-#define PACKET_BROADCAST 1
-#define PACKET_MULTICAST 2
-#define PACKET_OTHERHOST 3
-#define PACKET_OUTGOING 4
-#define PACKET_LOOPBACK 5
-#define PACKET_FASTROUTE 6
-
-#define PACKET_ADD_MEMBERSHIP 1
-#define PACKET_DROP_MEMBERSHIP 2
-#define PACKET_RECV_OUTPUT 3
-#define PACKET_RX_RING 5
-#define PACKET_STATISTICS 6
-#define PACKET_COPY_THRESH 7
-#define PACKET_AUXDATA 8
-#define PACKET_ORIGDEV 9
-#define PACKET_VERSION 10
-#define PACKET_HDRLEN 11
-#define PACKET_RESERVE 12
-#define PACKET_TX_RING 13
-#define PACKET_LOSS 14
-#define PACKET_VNET_HDR 15
-#define PACKET_TX_TIMESTAMP 16
-#define PACKET_TIMESTAMP 17
-#define PACKET_FANOUT 18
-#define PACKET_TX_HAS_OFF 19
-#define PACKET_QDISC_BYPASS 20
-#define PACKET_ROLLOVER_STATS 21
-#define PACKET_FANOUT_DATA 22
-#define PACKET_IGNORE_OUTGOING 23
-
-#define PACKET_MR_MULTICAST 0
-#define PACKET_MR_PROMISC 1
-#define PACKET_MR_ALLMULTI 2
-#define PACKET_MR_UNICAST 3
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/nl_types.h b/musl/nl_types.h
deleted file mode 100644
index 7c2d48e..0000000
--- a/musl/nl_types.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _NL_TYPES_H
-#define _NL_TYPES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define NL_SETD 1
-#define NL_CAT_LOCALE 1
-
-typedef int nl_item;
-typedef void *nl_catd;
-
-nl_catd catopen (const char *, int);
-char *catgets (nl_catd, int, int, const char *);
-int catclose (nl_catd);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/paths.h b/musl/paths.h
deleted file mode 100644
index 67de6b3..0000000
--- a/musl/paths.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _PATHS_H
-#define _PATHS_H
-
-#define _PATH_DEFPATH "/usr/local/bin:/bin:/usr/bin"
-#define _PATH_STDPATH "/bin:/usr/bin:/sbin:/usr/sbin"
-
-#define _PATH_BSHELL "/bin/sh"
-#define _PATH_CONSOLE "/dev/console"
-#define _PATH_DEVNULL "/dev/null"
-#define _PATH_KLOG "/proc/kmsg"
-#define _PATH_LASTLOG "/var/log/lastlog"
-#define _PATH_MAILDIR "/var/mail"
-#define _PATH_MAN "/usr/share/man"
-#define _PATH_MNTTAB "/etc/fstab"
-#define _PATH_MOUNTED "/etc/mtab"
-#define _PATH_NOLOGIN "/etc/nologin"
-#define _PATH_SENDMAIL "/usr/sbin/sendmail"
-#define _PATH_SHADOW "/etc/shadow"
-#define _PATH_SHELLS "/etc/shells"
-#define _PATH_TTY "/dev/tty"
-#define _PATH_UTMP "/dev/null/utmp"
-#define _PATH_VI "/usr/bin/vi"
-#define _PATH_WTMP "/dev/null/wtmp"
-
-#define _PATH_DEV "/dev/"
-#define _PATH_TMP "/tmp/"
-#define _PATH_VARDB "/var/lib/misc/"
-#define _PATH_VARRUN "/var/run/"
-#define _PATH_VARTMP "/var/tmp/"
-
-#endif
diff --git a/musl/poll.h b/musl/poll.h
deleted file mode 100644
index 272dc34..0000000
--- a/musl/poll.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef _POLL_H
-#define _POLL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#include <bits/poll.h>
-
-#define POLLIN 0x001
-#define POLLPRI 0x002
-#define POLLOUT 0x004
-#define POLLERR 0x008
-#define POLLHUP 0x010
-#define POLLNVAL 0x020
-#define POLLRDNORM 0x040
-#define POLLRDBAND 0x080
-#ifndef POLLWRNORM
-#define POLLWRNORM 0x100
-#define POLLWRBAND 0x200
-#endif
-#ifndef POLLMSG
-#define POLLMSG 0x400
-#define POLLRDHUP 0x2000
-#endif
-
-typedef unsigned long nfds_t;
-
-struct pollfd {
- int fd;
- short events;
- short revents;
-};
-
-int poll (struct pollfd *, nfds_t, int);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define __NEED_time_t
-#define __NEED_struct_timespec
-#define __NEED_sigset_t
-#include <bits/alltypes.h>
-int ppoll(struct pollfd *, nfds_t, const struct timespec *, const sigset_t *);
-#endif
-
-#if _REDIR_TIME64
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-__REDIR(ppoll, __ppoll_time64);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/pthread.h b/musl/pthread.h
deleted file mode 100644
index 89fd9ff..0000000
--- a/musl/pthread.h
+++ /dev/null
@@ -1,244 +0,0 @@
-#ifndef _PTHREAD_H
-#define _PTHREAD_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_time_t
-#define __NEED_clockid_t
-#define __NEED_struct_timespec
-#define __NEED_sigset_t
-#define __NEED_pthread_t
-#define __NEED_pthread_attr_t
-#define __NEED_pthread_mutexattr_t
-#define __NEED_pthread_condattr_t
-#define __NEED_pthread_rwlockattr_t
-#define __NEED_pthread_barrierattr_t
-#define __NEED_pthread_mutex_t
-#define __NEED_pthread_cond_t
-#define __NEED_pthread_rwlock_t
-#define __NEED_pthread_barrier_t
-#define __NEED_pthread_spinlock_t
-#define __NEED_pthread_key_t
-#define __NEED_pthread_once_t
-#define __NEED_size_t
-
-#include <bits/alltypes.h>
-
-#include <sched.h>
-#include <time.h>
-
-#define PTHREAD_CREATE_JOINABLE 0
-#define PTHREAD_CREATE_DETACHED 1
-
-#define PTHREAD_MUTEX_NORMAL 0
-#define PTHREAD_MUTEX_DEFAULT 0
-#define PTHREAD_MUTEX_RECURSIVE 1
-#define PTHREAD_MUTEX_ERRORCHECK 2
-
-#define PTHREAD_MUTEX_STALLED 0
-#define PTHREAD_MUTEX_ROBUST 1
-
-#define PTHREAD_PRIO_NONE 0
-#define PTHREAD_PRIO_INHERIT 1
-#define PTHREAD_PRIO_PROTECT 2
-
-#define PTHREAD_INHERIT_SCHED 0
-#define PTHREAD_EXPLICIT_SCHED 1
-
-#define PTHREAD_SCOPE_SYSTEM 0
-#define PTHREAD_SCOPE_PROCESS 1
-
-#define PTHREAD_PROCESS_PRIVATE 0
-#define PTHREAD_PROCESS_SHARED 1
-
-
-#define PTHREAD_MUTEX_INITIALIZER {{{0}}}
-#define PTHREAD_RWLOCK_INITIALIZER {{{0}}}
-#define PTHREAD_COND_INITIALIZER {{{0}}}
-#define PTHREAD_ONCE_INIT 0
-
-
-#define PTHREAD_CANCEL_ENABLE 0
-#define PTHREAD_CANCEL_DISABLE 1
-#define PTHREAD_CANCEL_MASKED 2
-
-#define PTHREAD_CANCEL_DEFERRED 0
-#define PTHREAD_CANCEL_ASYNCHRONOUS 1
-
-#define PTHREAD_CANCELED ((void *)-1)
-
-
-#define PTHREAD_BARRIER_SERIAL_THREAD (-1)
-
-
-#define PTHREAD_NULL ((pthread_t)0)
-
-
-int pthread_create(pthread_t *__restrict, const pthread_attr_t *__restrict, void *(*)(void *), void *__restrict);
-int pthread_detach(pthread_t);
-_Noreturn void pthread_exit(void *);
-int pthread_join(pthread_t, void **);
-
-#ifdef __GNUC__
-__attribute__((const))
-#endif
-pthread_t pthread_self(void);
-
-int pthread_equal(pthread_t, pthread_t);
-#ifndef __cplusplus
-#define pthread_equal(x,y) ((x)==(y))
-#endif
-
-int pthread_setcancelstate(int, int *);
-int pthread_setcanceltype(int, int *);
-void pthread_testcancel(void);
-int pthread_cancel(pthread_t);
-
-int pthread_getschedparam(pthread_t, int *__restrict, struct sched_param *__restrict);
-int pthread_setschedparam(pthread_t, int, const struct sched_param *);
-int pthread_setschedprio(pthread_t, int);
-
-int pthread_once(pthread_once_t *, void (*)(void));
-
-int pthread_mutex_init(pthread_mutex_t *__restrict, const pthread_mutexattr_t *__restrict);
-int pthread_mutex_lock(pthread_mutex_t *);
-int pthread_mutex_unlock(pthread_mutex_t *);
-int pthread_mutex_trylock(pthread_mutex_t *);
-int pthread_mutex_timedlock(pthread_mutex_t *__restrict, const struct timespec *__restrict);
-int pthread_mutex_destroy(pthread_mutex_t *);
-int pthread_mutex_consistent(pthread_mutex_t *);
-
-int pthread_mutex_getprioceiling(const pthread_mutex_t *__restrict, int *__restrict);
-int pthread_mutex_setprioceiling(pthread_mutex_t *__restrict, int, int *__restrict);
-
-int pthread_cond_init(pthread_cond_t *__restrict, const pthread_condattr_t *__restrict);
-int pthread_cond_destroy(pthread_cond_t *);
-int pthread_cond_wait(pthread_cond_t *__restrict, pthread_mutex_t *__restrict);
-int pthread_cond_timedwait(pthread_cond_t *__restrict, pthread_mutex_t *__restrict, const struct timespec *__restrict);
-int pthread_cond_broadcast(pthread_cond_t *);
-int pthread_cond_signal(pthread_cond_t *);
-
-int pthread_rwlock_init(pthread_rwlock_t *__restrict, const pthread_rwlockattr_t *__restrict);
-int pthread_rwlock_destroy(pthread_rwlock_t *);
-int pthread_rwlock_rdlock(pthread_rwlock_t *);
-int pthread_rwlock_tryrdlock(pthread_rwlock_t *);
-int pthread_rwlock_timedrdlock(pthread_rwlock_t *__restrict, const struct timespec *__restrict);
-int pthread_rwlock_wrlock(pthread_rwlock_t *);
-int pthread_rwlock_trywrlock(pthread_rwlock_t *);
-int pthread_rwlock_timedwrlock(pthread_rwlock_t *__restrict, const struct timespec *__restrict);
-int pthread_rwlock_unlock(pthread_rwlock_t *);
-
-int pthread_spin_init(pthread_spinlock_t *, int);
-int pthread_spin_destroy(pthread_spinlock_t *);
-int pthread_spin_lock(pthread_spinlock_t *);
-int pthread_spin_trylock(pthread_spinlock_t *);
-int pthread_spin_unlock(pthread_spinlock_t *);
-
-int pthread_barrier_init(pthread_barrier_t *__restrict, const pthread_barrierattr_t *__restrict, unsigned);
-int pthread_barrier_destroy(pthread_barrier_t *);
-int pthread_barrier_wait(pthread_barrier_t *);
-
-int pthread_key_create(pthread_key_t *, void (*)(void *));
-int pthread_key_delete(pthread_key_t);
-void *pthread_getspecific(pthread_key_t);
-int pthread_setspecific(pthread_key_t, const void *);
-
-int pthread_attr_init(pthread_attr_t *);
-int pthread_attr_destroy(pthread_attr_t *);
-
-int pthread_attr_getguardsize(const pthread_attr_t *__restrict, size_t *__restrict);
-int pthread_attr_setguardsize(pthread_attr_t *, size_t);
-int pthread_attr_getstacksize(const pthread_attr_t *__restrict, size_t *__restrict);
-int pthread_attr_setstacksize(pthread_attr_t *, size_t);
-int pthread_attr_getdetachstate(const pthread_attr_t *, int *);
-int pthread_attr_setdetachstate(pthread_attr_t *, int);
-int pthread_attr_getstack(const pthread_attr_t *__restrict, void **__restrict, size_t *__restrict);
-int pthread_attr_setstack(pthread_attr_t *, void *, size_t);
-int pthread_attr_getscope(const pthread_attr_t *__restrict, int *__restrict);
-int pthread_attr_setscope(pthread_attr_t *, int);
-int pthread_attr_getschedpolicy(const pthread_attr_t *__restrict, int *__restrict);
-int pthread_attr_setschedpolicy(pthread_attr_t *, int);
-int pthread_attr_getschedparam(const pthread_attr_t *__restrict, struct sched_param *__restrict);
-int pthread_attr_setschedparam(pthread_attr_t *__restrict, const struct sched_param *__restrict);
-int pthread_attr_getinheritsched(const pthread_attr_t *__restrict, int *__restrict);
-int pthread_attr_setinheritsched(pthread_attr_t *, int);
-
-int pthread_mutexattr_destroy(pthread_mutexattr_t *);
-int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *__restrict, int *__restrict);
-int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *__restrict, int *__restrict);
-int pthread_mutexattr_getpshared(const pthread_mutexattr_t *__restrict, int *__restrict);
-int pthread_mutexattr_getrobust(const pthread_mutexattr_t *__restrict, int *__restrict);
-int pthread_mutexattr_gettype(const pthread_mutexattr_t *__restrict, int *__restrict);
-int pthread_mutexattr_init(pthread_mutexattr_t *);
-int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);
-int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int);
-int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);
-int pthread_mutexattr_setrobust(pthread_mutexattr_t *, int);
-int pthread_mutexattr_settype(pthread_mutexattr_t *, int);
-
-int pthread_condattr_init(pthread_condattr_t *);
-int pthread_condattr_destroy(pthread_condattr_t *);
-int pthread_condattr_setclock(pthread_condattr_t *, clockid_t);
-int pthread_condattr_setpshared(pthread_condattr_t *, int);
-int pthread_condattr_getclock(const pthread_condattr_t *__restrict, clockid_t *__restrict);
-int pthread_condattr_getpshared(const pthread_condattr_t *__restrict, int *__restrict);
-
-int pthread_rwlockattr_init(pthread_rwlockattr_t *);
-int pthread_rwlockattr_destroy(pthread_rwlockattr_t *);
-int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);
-int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *__restrict, int *__restrict);
-
-int pthread_barrierattr_destroy(pthread_barrierattr_t *);
-int pthread_barrierattr_getpshared(const pthread_barrierattr_t *__restrict, int *__restrict);
-int pthread_barrierattr_init(pthread_barrierattr_t *);
-int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int);
-
-int pthread_atfork(void (*)(void), void (*)(void), void (*)(void));
-
-int pthread_getconcurrency(void);
-int pthread_setconcurrency(int);
-
-int pthread_getcpuclockid(pthread_t, clockid_t *);
-
-struct __ptcb {
- void (*__f)(void *);
- void *__x;
- struct __ptcb *__next;
-};
-
-void _pthread_cleanup_push(struct __ptcb *, void (*)(void *), void *);
-void _pthread_cleanup_pop(struct __ptcb *, int);
-
-#define pthread_cleanup_push(f, x) do { struct __ptcb __cb; _pthread_cleanup_push(&__cb, f, x);
-#define pthread_cleanup_pop(r) _pthread_cleanup_pop(&__cb, (r)); } while(0)
-
-#ifdef _GNU_SOURCE
-struct cpu_set_t;
-int pthread_getaffinity_np(pthread_t, size_t, struct cpu_set_t *);
-int pthread_setaffinity_np(pthread_t, size_t, const struct cpu_set_t *);
-int pthread_getattr_np(pthread_t, pthread_attr_t *);
-int pthread_setname_np(pthread_t, const char *);
-int pthread_getname_np(pthread_t, char *, size_t);
-int pthread_getattr_default_np(pthread_attr_t *);
-int pthread_setattr_default_np(const pthread_attr_t *);
-int pthread_tryjoin_np(pthread_t, void **);
-int pthread_timedjoin_np(pthread_t, void **, const struct timespec *);
-#endif
-
-#if _REDIR_TIME64
-__REDIR(pthread_mutex_timedlock, __pthread_mutex_timedlock_time64);
-__REDIR(pthread_cond_timedwait, __pthread_cond_timedwait_time64);
-__REDIR(pthread_rwlock_timedrdlock, __pthread_rwlock_timedrdlock_time64);
-__REDIR(pthread_rwlock_timedwrlock, __pthread_rwlock_timedwrlock_time64);
-#ifdef _GNU_SOURCE
-__REDIR(pthread_timedjoin_np, __pthread_timedjoin_np_time64);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/pty.h b/musl/pty.h
deleted file mode 100644
index db63853..0000000
--- a/musl/pty.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _PTY_H
-#define _PTY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <termios.h>
-#include <sys/ioctl.h>
-
-int openpty(int *, int *, char *, const struct termios *, const struct winsize *);
-int forkpty(int *, char *, const struct termios *, const struct winsize *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/pwd.h b/musl/pwd.h
deleted file mode 100644
index 4f470b5..0000000
--- a/musl/pwd.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef _PWD_H
-#define _PWD_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-#define __NEED_uid_t
-#define __NEED_gid_t
-
-#ifdef _GNU_SOURCE
-#define __NEED_FILE
-#endif
-
-#include <bits/alltypes.h>
-
-struct passwd {
- char *pw_name;
- char *pw_passwd;
- uid_t pw_uid;
- gid_t pw_gid;
- char *pw_gecos;
- char *pw_dir;
- char *pw_shell;
-};
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-void setpwent (void);
-void endpwent (void);
-struct passwd *getpwent (void);
-#endif
-
-struct passwd *getpwuid (uid_t);
-struct passwd *getpwnam (const char *);
-int getpwuid_r (uid_t, struct passwd *, char *, size_t, struct passwd **);
-int getpwnam_r (const char *, struct passwd *, char *, size_t, struct passwd **);
-
-#ifdef _GNU_SOURCE
-struct passwd *fgetpwent(FILE *);
-int putpwent(const struct passwd *, FILE *);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/regex.h b/musl/regex.h
deleted file mode 100644
index dce2177..0000000
--- a/musl/regex.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef _REGEX_H
-#define _REGEX_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_regoff_t
-#define __NEED_size_t
-
-#include <bits/alltypes.h>
-
-typedef struct re_pattern_buffer {
- size_t re_nsub;
- void *__opaque, *__padding[4];
- size_t __nsub2;
- char __padding2;
-} regex_t;
-
-typedef struct {
- regoff_t rm_so;
- regoff_t rm_eo;
-} regmatch_t;
-
-#define REG_EXTENDED 1
-#define REG_ICASE 2
-#define REG_NEWLINE 4
-#define REG_NOSUB 8
-
-#define REG_NOTBOL 1
-#define REG_NOTEOL 2
-
-#define REG_OK 0
-#define REG_NOMATCH 1
-#define REG_BADPAT 2
-#define REG_ECOLLATE 3
-#define REG_ECTYPE 4
-#define REG_EESCAPE 5
-#define REG_ESUBREG 6
-#define REG_EBRACK 7
-#define REG_EPAREN 8
-#define REG_EBRACE 9
-#define REG_BADBR 10
-#define REG_ERANGE 11
-#define REG_ESPACE 12
-#define REG_BADRPT 13
-
-#define REG_ENOSYS -1
-
-int regcomp(regex_t *__restrict, const char *__restrict, int);
-int regexec(const regex_t *__restrict, const char *__restrict, size_t, regmatch_t *__restrict, int);
-void regfree(regex_t *);
-
-size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/resolv.h b/musl/resolv.h
deleted file mode 100644
index 8b23ad6..0000000
--- a/musl/resolv.h
+++ /dev/null
@@ -1,142 +0,0 @@
-#ifndef _RESOLV_H
-#define _RESOLV_H
-
-#include <stdint.h>
-#include <arpa/nameser.h>
-#include <netinet/in.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAXNS 3
-#define MAXDFLSRCH 3
-#define MAXDNSRCH 6
-#define LOCALDOMAINPARTS 2
-
-#define RES_TIMEOUT 5
-#define MAXRESOLVSORT 10
-#define RES_MAXNDOTS 15
-#define RES_MAXRETRANS 30
-#define RES_MAXRETRY 5
-#define RES_DFLRETRY 2
-#define RES_MAXTIME 65535
-
-/* unused; purely for broken apps */
-typedef struct __res_state {
- int retrans;
- int retry;
- unsigned long options;
- int nscount;
- struct sockaddr_in nsaddr_list[MAXNS];
-# define nsaddr nsaddr_list[0]
- unsigned short id;
- char *dnsrch[MAXDNSRCH+1];
- char defdname[256];
- unsigned long pfcode;
- unsigned ndots:4;
- unsigned nsort:4;
- unsigned ipv6_unavail:1;
- unsigned unused:23;
- struct {
- struct in_addr addr;
- uint32_t mask;
- } sort_list[MAXRESOLVSORT];
- void *qhook;
- void *rhook;
- int res_h_errno;
- int _vcsock;
- unsigned _flags;
- union {
- char pad[52];
- struct {
- uint16_t nscount;
- uint16_t nsmap[MAXNS];
- int nssocks[MAXNS];
- uint16_t nscount6;
- uint16_t nsinit;
- struct sockaddr_in6 *nsaddrs[MAXNS];
- unsigned int _initstamp[2];
- } _ext;
- } _u;
-} *res_state;
-
-#define __RES 19960801
-
-#ifndef _PATH_RESCONF
-#define _PATH_RESCONF "/etc/resolv.conf"
-#endif
-
-struct res_sym {
- int number;
- char *name;
- char *humanname;
-};
-
-#define RES_F_VC 0x00000001
-#define RES_F_CONN 0x00000002
-#define RES_F_EDNS0ERR 0x00000004
-
-#define RES_EXHAUSTIVE 0x00000001
-
-#define RES_INIT 0x00000001
-#define RES_DEBUG 0x00000002
-#define RES_AAONLY 0x00000004
-#define RES_USEVC 0x00000008
-#define RES_PRIMARY 0x00000010
-#define RES_IGNTC 0x00000020
-#define RES_RECURSE 0x00000040
-#define RES_DEFNAMES 0x00000080
-#define RES_STAYOPEN 0x00000100
-#define RES_DNSRCH 0x00000200
-#define RES_INSECURE1 0x00000400
-#define RES_INSECURE2 0x00000800
-#define RES_NOALIASES 0x00001000
-#define RES_USE_INET6 0x00002000
-#define RES_ROTATE 0x00004000
-#define RES_NOCHECKNAME 0x00008000
-#define RES_KEEPTSIG 0x00010000
-#define RES_BLAST 0x00020000
-#define RES_USEBSTRING 0x00040000
-#define RES_NOIP6DOTINT 0x00080000
-#define RES_USE_EDNS0 0x00100000
-#define RES_SNGLKUP 0x00200000
-#define RES_SNGLKUPREOP 0x00400000
-#define RES_USE_DNSSEC 0x00800000
-
-#define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH|RES_NOIP6DOTINT)
-
-#define RES_PRF_STATS 0x00000001
-#define RES_PRF_UPDATE 0x00000002
-#define RES_PRF_CLASS 0x00000004
-#define RES_PRF_CMD 0x00000008
-#define RES_PRF_QUES 0x00000010
-#define RES_PRF_ANS 0x00000020
-#define RES_PRF_AUTH 0x00000040
-#define RES_PRF_ADD 0x00000080
-#define RES_PRF_HEAD1 0x00000100
-#define RES_PRF_HEAD2 0x00000200
-#define RES_PRF_TTLID 0x00000400
-#define RES_PRF_HEADX 0x00000800
-#define RES_PRF_QUERY 0x00001000
-#define RES_PRF_REPLY 0x00002000
-#define RES_PRF_INIT 0x00004000
-
-struct __res_state *__res_state(void);
-#define _res (*__res_state())
-
-int res_init(void);
-int res_query(const char *, int, int, unsigned char *, int);
-int res_querydomain(const char *, const char *, int, int, unsigned char *, int);
-int res_search(const char *, int, int, unsigned char *, int);
-int res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);
-int res_send(const unsigned char *, int, unsigned char *, int);
-int dn_comp(const char *, unsigned char *, int, unsigned char **, unsigned char **);
-int dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int);
-int dn_skipname(const unsigned char *, const unsigned char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sched.h b/musl/sched.h
deleted file mode 100644
index 204c34f..0000000
--- a/musl/sched.h
+++ /dev/null
@@ -1,148 +0,0 @@
-#ifndef _SCHED_H
-#define _SCHED_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_struct_timespec
-#define __NEED_pid_t
-#define __NEED_time_t
-
-#ifdef _GNU_SOURCE
-#define __NEED_size_t
-#endif
-
-#include <bits/alltypes.h>
-
-struct sched_param {
- int sched_priority;
- int __reserved1;
-#if _REDIR_TIME64
- long __reserved2[4];
-#else
- struct {
- time_t __reserved1;
- long __reserved2;
- } __reserved2[2];
-#endif
- int __reserved3;
-};
-
-int sched_get_priority_max(int);
-int sched_get_priority_min(int);
-int sched_getparam(pid_t, struct sched_param *);
-int sched_getscheduler(pid_t);
-int sched_rr_get_interval(pid_t, struct timespec *);
-int sched_setparam(pid_t, const struct sched_param *);
-int sched_setscheduler(pid_t, int, const struct sched_param *);
-int sched_yield(void);
-
-#define SCHED_OTHER 0
-#define SCHED_FIFO 1
-#define SCHED_RR 2
-#define SCHED_BATCH 3
-#define SCHED_IDLE 5
-#define SCHED_DEADLINE 6
-#define SCHED_RESET_ON_FORK 0x40000000
-
-#ifdef _GNU_SOURCE
-#define CSIGNAL 0x000000ff
-#define CLONE_NEWTIME 0x00000080
-#define CLONE_VM 0x00000100
-#define CLONE_FS 0x00000200
-#define CLONE_FILES 0x00000400
-#define CLONE_SIGHAND 0x00000800
-#define CLONE_PIDFD 0x00001000
-#define CLONE_PTRACE 0x00002000
-#define CLONE_VFORK 0x00004000
-#define CLONE_PARENT 0x00008000
-#define CLONE_THREAD 0x00010000
-#define CLONE_NEWNS 0x00020000
-#define CLONE_SYSVSEM 0x00040000
-#define CLONE_SETTLS 0x00080000
-#define CLONE_PARENT_SETTID 0x00100000
-#define CLONE_CHILD_CLEARTID 0x00200000
-#define CLONE_DETACHED 0x00400000
-#define CLONE_UNTRACED 0x00800000
-#define CLONE_CHILD_SETTID 0x01000000
-#define CLONE_NEWCGROUP 0x02000000
-#define CLONE_NEWUTS 0x04000000
-#define CLONE_NEWIPC 0x08000000
-#define CLONE_NEWUSER 0x10000000
-#define CLONE_NEWPID 0x20000000
-#define CLONE_NEWNET 0x40000000
-#define CLONE_IO 0x80000000
-int clone (int (*)(void *), void *, int, void *, ...);
-int unshare(int);
-int setns(int, int);
-
-void *memcpy(void *__restrict, const void *__restrict, size_t);
-int memcmp(const void *, const void *, size_t);
-void *memset (void *, int, size_t);
-void *calloc(size_t, size_t);
-void free(void *);
-
-typedef struct cpu_set_t { unsigned long __bits[128/sizeof(long)]; } cpu_set_t;
-int __sched_cpucount(size_t, const cpu_set_t *);
-int sched_getcpu(void);
-int sched_getaffinity(pid_t, size_t, cpu_set_t *);
-int sched_setaffinity(pid_t, size_t, const cpu_set_t *);
-
-#define __CPU_op_S(i, size, set, op) ( (i)/8U >= (size) ? 0 : \
- (((unsigned long *)(set))[(i)/8/sizeof(long)] op (1UL<<((i)%(8*sizeof(long))))) )
-
-#define CPU_SET_S(i, size, set) __CPU_op_S(i, size, set, |=)
-#define CPU_CLR_S(i, size, set) __CPU_op_S(i, size, set, &=~)
-#define CPU_ISSET_S(i, size, set) __CPU_op_S(i, size, set, &)
-
-#define __CPU_op_func_S(func, op) \
-static __inline void __CPU_##func##_S(size_t __size, cpu_set_t *__dest, \
- const cpu_set_t *__src1, const cpu_set_t *__src2) \
-{ \
- size_t __i; \
- for (__i=0; __i<__size/sizeof(long); __i++) \
- ((unsigned long *)__dest)[__i] = ((unsigned long *)__src1)[__i] \
- op ((unsigned long *)__src2)[__i] ; \
-}
-
-__CPU_op_func_S(AND, &)
-__CPU_op_func_S(OR, |)
-__CPU_op_func_S(XOR, ^)
-
-#define CPU_AND_S(a,b,c,d) __CPU_AND_S(a,b,c,d)
-#define CPU_OR_S(a,b,c,d) __CPU_OR_S(a,b,c,d)
-#define CPU_XOR_S(a,b,c,d) __CPU_XOR_S(a,b,c,d)
-
-#define CPU_COUNT_S(size,set) __sched_cpucount(size,set)
-#define CPU_ZERO_S(size,set) memset(set,0,size)
-#define CPU_EQUAL_S(size,set1,set2) (!memcmp(set1,set2,size))
-
-#define CPU_ALLOC_SIZE(n) (sizeof(long) * ( (n)/(8*sizeof(long)) \
- + ((n)%(8*sizeof(long)) + 8*sizeof(long)-1)/(8*sizeof(long)) ) )
-#define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
-#define CPU_FREE(set) free(set)
-
-#define CPU_SETSIZE 1024
-
-#define CPU_SET(i, set) CPU_SET_S(i,sizeof(cpu_set_t),set)
-#define CPU_CLR(i, set) CPU_CLR_S(i,sizeof(cpu_set_t),set)
-#define CPU_ISSET(i, set) CPU_ISSET_S(i,sizeof(cpu_set_t),set)
-#define CPU_AND(d,s1,s2) CPU_AND_S(sizeof(cpu_set_t),d,s1,s2)
-#define CPU_OR(d,s1,s2) CPU_OR_S(sizeof(cpu_set_t),d,s1,s2)
-#define CPU_XOR(d,s1,s2) CPU_XOR_S(sizeof(cpu_set_t),d,s1,s2)
-#define CPU_COUNT(set) CPU_COUNT_S(sizeof(cpu_set_t),set)
-#define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t),set)
-#define CPU_EQUAL(s1,s2) CPU_EQUAL_S(sizeof(cpu_set_t),s1,s2)
-
-#endif
-
-#if _REDIR_TIME64
-__REDIR(sched_rr_get_interval, __sched_rr_get_interval_time64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/scsi/scsi.h b/musl/scsi/scsi.h
deleted file mode 100644
index 8837f58..0000000
--- a/musl/scsi/scsi.h
+++ /dev/null
@@ -1,150 +0,0 @@
-#ifndef _SCSI_SCSI_H
-#define _SCSI_SCSI_H
-
-#define TEST_UNIT_READY 0x00
-#define REZERO_UNIT 0x01
-#define REQUEST_SENSE 0x03
-#define FORMAT_UNIT 0x04
-#define READ_BLOCK_LIMITS 0x05
-#define REASSIGN_BLOCKS 0x07
-#define READ_6 0x08
-#define WRITE_6 0x0a
-#define SEEK_6 0x0b
-#define READ_REVERSE 0x0f
-#define WRITE_FILEMARKS 0x10
-#define SPACE 0x11
-#define INQUIRY 0x12
-#define RECOVER_BUFFERED_DATA 0x14
-#define MODE_SELECT 0x15
-#define RESERVE 0x16
-#define RELEASE 0x17
-#define COPY 0x18
-#define ERASE 0x19
-#define MODE_SENSE 0x1a
-#define START_STOP 0x1b
-#define RECEIVE_DIAGNOSTIC 0x1c
-#define SEND_DIAGNOSTIC 0x1d
-#define ALLOW_MEDIUM_REMOVAL 0x1e
-#define SET_WINDOW 0x24
-#define READ_CAPACITY 0x25
-#define READ_10 0x28
-#define WRITE_10 0x2a
-#define SEEK_10 0x2b
-#define WRITE_VERIFY 0x2e
-#define VERIFY 0x2f
-#define SEARCH_HIGH 0x30
-#define SEARCH_EQUAL 0x31
-#define SEARCH_LOW 0x32
-#define SET_LIMITS 0x33
-#define PRE_FETCH 0x34
-#define READ_POSITION 0x34
-#define SYNCHRONIZE_CACHE 0x35
-#define LOCK_UNLOCK_CACHE 0x36
-#define READ_DEFECT_DATA 0x37
-#define MEDIUM_SCAN 0x38
-#define COMPARE 0x39
-#define COPY_VERIFY 0x3a
-#define WRITE_BUFFER 0x3b
-#define READ_BUFFER 0x3c
-#define UPDATE_BLOCK 0x3d
-#define READ_LONG 0x3e
-#define WRITE_LONG 0x3f
-#define CHANGE_DEFINITION 0x40
-#define WRITE_SAME 0x41
-#define READ_TOC 0x43
-#define LOG_SELECT 0x4c
-#define LOG_SENSE 0x4d
-#define MODE_SELECT_10 0x55
-#define RESERVE_10 0x56
-#define RELEASE_10 0x57
-#define MODE_SENSE_10 0x5a
-#define PERSISTENT_RESERVE_IN 0x5e
-#define PERSISTENT_RESERVE_OUT 0x5f
-#define MOVE_MEDIUM 0xa5
-#define READ_12 0xa8
-#define WRITE_12 0xaa
-#define WRITE_VERIFY_12 0xae
-#define SEARCH_HIGH_12 0xb0
-#define SEARCH_EQUAL_12 0xb1
-#define SEARCH_LOW_12 0xb2
-#define READ_ELEMENT_STATUS 0xb8
-#define SEND_VOLUME_TAG 0xb6
-#define WRITE_LONG_2 0xea
-#define GOOD 0x00
-#define CHECK_CONDITION 0x01
-#define CONDITION_GOOD 0x02
-#define BUSY 0x04
-#define INTERMEDIATE_GOOD 0x08
-#define INTERMEDIATE_C_GOOD 0x0a
-#define RESERVATION_CONFLICT 0x0c
-#define COMMAND_TERMINATED 0x11
-#define QUEUE_FULL 0x14
-#define STATUS_MASK 0x3e
-#define NO_SENSE 0x00
-#define RECOVERED_ERROR 0x01
-#define NOT_READY 0x02
-#define MEDIUM_ERROR 0x03
-#define HARDWARE_ERROR 0x04
-#define ILLEGAL_REQUEST 0x05
-#define UNIT_ATTENTION 0x06
-#define DATA_PROTECT 0x07
-#define BLANK_CHECK 0x08
-#define COPY_ABORTED 0x0a
-#define ABORTED_COMMAND 0x0b
-#define VOLUME_OVERFLOW 0x0d
-#define MISCOMPARE 0x0e
-#define TYPE_DISK 0x00
-#define TYPE_TAPE 0x01
-#define TYPE_PROCESSOR 0x03
-#define TYPE_WORM 0x04
-#define TYPE_ROM 0x05
-#define TYPE_SCANNER 0x06
-#define TYPE_MOD 0x07
-#define TYPE_MEDIUM_CHANGER 0x08
-#define TYPE_ENCLOSURE 0x0d
-#define TYPE_NO_LUN 0x7f
-#define COMMAND_COMPLETE 0x00
-#define EXTENDED_MESSAGE 0x01
-#define EXTENDED_MODIFY_DATA_POINTER 0x00
-#define EXTENDED_SDTR 0x01
-#define EXTENDED_EXTENDED_IDENTIFY 0x02
-#define EXTENDED_WDTR 0x03
-#define SAVE_POINTERS 0x02
-#define RESTORE_POINTERS 0x03
-#define DISCONNECT 0x04
-#define INITIATOR_ERROR 0x05
-#define ABORT 0x06
-#define MESSAGE_REJECT 0x07
-#define NOP 0x08
-#define MSG_PARITY_ERROR 0x09
-#define LINKED_CMD_COMPLETE 0x0a
-#define LINKED_FLG_CMD_COMPLETE 0x0b
-#define BUS_DEVICE_RESET 0x0c
-#define INITIATE_RECOVERY 0x0f
-#define RELEASE_RECOVERY 0x10
-#define SIMPLE_QUEUE_TAG 0x20
-#define HEAD_OF_QUEUE_TAG 0x21
-#define ORDERED_QUEUE_TAG 0x22
-#define SCSI_IOCTL_GET_IDLUN 0x5382
-#define SCSI_IOCTL_TAGGED_ENABLE 0x5383
-#define SCSI_IOCTL_TAGGED_DISABLE 0x5384
-#define SCSI_IOCTL_PROBE_HOST 0x5385
-#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
-
-struct ccs_modesel_head {
- unsigned char _r1;
- unsigned char medium;
- unsigned char _r2;
- unsigned char block_desc_length;
- unsigned char density;
- unsigned char number_blocks_hi;
- unsigned char number_blocks_med;
- unsigned char number_blocks_lo;
- unsigned char _r3;
- unsigned char block_length_hi;
- unsigned char block_length_med;
- unsigned char block_length_lo;
-};
-
-#endif
-
diff --git a/musl/scsi/scsi_ioctl.h b/musl/scsi/scsi_ioctl.h
deleted file mode 100644
index 22df7fe..0000000
--- a/musl/scsi/scsi_ioctl.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _SCSI_IOCTL_H
-#define _SCSI_IOCTL_H
-#define SCSI_IOCTL_SEND_COMMAND 1
-#define SCSI_IOCTL_TEST_UNIT_READY 2
-#define SCSI_IOCTL_BENCHMARK_COMMAND 3
-#define SCSI_IOCTL_SYNC 4
-#define SCSI_IOCTL_START_UNIT 5
-#define SCSI_IOCTL_STOP_UNIT 6
-#define SCSI_IOCTL_DOORLOCK 0x5380
-#define SCSI_IOCTL_DOORUNLOCK 0x5381
-#endif
diff --git a/musl/scsi/sg.h b/musl/scsi/sg.h
deleted file mode 100644
index a7ac247..0000000
--- a/musl/scsi/sg.h
+++ /dev/null
@@ -1,129 +0,0 @@
-#ifndef _SCSI_SG_H
-#define _SCSI_SG_H
-
-#define SG_DXFER_NONE -1
-#define SG_DXFER_TO_DEV -2
-#define SG_DXFER_FROM_DEV -3
-#define SG_DXFER_TO_FROM_DEV -4
-#define SG_FLAG_DIRECT_IO 1
-#define SG_FLAG_LUN_INHIBIT 2
-#define SG_FLAG_NO_DXFER 0x10000
-#define SG_INFO_OK_MASK 0x1
-#define SG_INFO_OK 0x0
-#define SG_INFO_CHECK 0x1
-#define SG_INFO_DIRECT_IO_MASK 0x6
-#define SG_INFO_INDIRECT_IO 0x0
-#define SG_INFO_DIRECT_IO 0x2
-#define SG_INFO_MIXED_IO 0x4
-#define SG_EMULATED_HOST 0x2203
-#define SG_SET_TRANSFORM 0x2204
-#define SG_GET_TRANSFORM 0x2205
-#define SG_SET_RESERVED_SIZE 0x2275
-#define SG_GET_RESERVED_SIZE 0x2272
-#define SG_GET_SCSI_ID 0x2276
-#define SG_SET_FORCE_LOW_DMA 0x2279
-#define SG_GET_LOW_DMA 0x227a
-#define SG_SET_FORCE_PACK_ID 0x227b
-#define SG_GET_PACK_ID 0x227c
-#define SG_GET_NUM_WAITING 0x227d
-#define SG_GET_SG_TABLESIZE 0x227F
-#define SG_GET_VERSION_NUM 0x2282
-#define SG_SCSI_RESET 0x2284
-#define SG_SCSI_RESET_NOTHING 0
-#define SG_SCSI_RESET_DEVICE 1
-#define SG_SCSI_RESET_BUS 2
-#define SG_SCSI_RESET_HOST 3
-#define SG_IO 0x2285
-#define SG_GET_REQUEST_TABLE 0x2286
-#define SG_SET_KEEP_ORPHAN 0x2287
-#define SG_GET_KEEP_ORPHAN 0x2288
-#define SG_SCATTER_SZ (8 * 4096)
-#define SG_DEFAULT_RETRIES 1
-#define SG_DEF_FORCE_LOW_DMA 0
-#define SG_DEF_FORCE_PACK_ID 0
-#define SG_DEF_KEEP_ORPHAN 0
-#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ
-#define SG_MAX_QUEUE 16
-#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE
-#define SG_MAX_SENSE 16
-#define SG_SET_TIMEOUT 0x2201
-#define SG_GET_TIMEOUT 0x2202
-#define SG_GET_COMMAND_Q 0x2270
-#define SG_SET_COMMAND_Q 0x2271
-#define SG_SET_DEBUG 0x227e
-#define SG_NEXT_CMD_LEN 0x2283
-#define SG_DEFAULT_TIMEOUT (60*100) /* 60*HZ */
-#define SG_DEF_COMMAND_Q 0
-#define SG_DEF_UNDERRUN_FLAG 0
-
-typedef struct sg_iovec {
- void *iov_base;
- unsigned long iov_len;
-} sg_iovec_t;
-
-typedef struct sg_io_hdr {
- int interface_id;
- int dxfer_direction;
- unsigned char cmd_len;
- unsigned char mx_sb_len;
- unsigned short iovec_count;
- unsigned dxfer_len;
- void *dxferp;
- unsigned char *cmdp;
- unsigned char *sbp;
- unsigned timeout;
- unsigned flags;
- int pack_id;
- void *usr_ptr;
- unsigned char status;
- unsigned char masked_status;
- unsigned char msg_status;
- unsigned char sb_len_wr;
- unsigned short host_status;
- unsigned short driver_status;
- int resid;
- unsigned int duration;
- unsigned int info;
-} sg_io_hdr_t;
-
-struct sg_scsi_id {
- int host_no;
- int channel;
- int scsi_id;
- int lun;
- int scsi_type;
- short h_cmd_per_lun;
- short d_queue_depth;
- int unused[2];
-};
-
-typedef struct sg_req_info {
- char req_state;
- char orphan;
- char sg_io_owned;
- char problem;
- int pack_id;
- void *usr_ptr;
- unsigned duration;
- int unused;
-} sg_req_info_t;
-
-typedef struct sg_io_hdr Sg_io_hdr;
-typedef struct sg_io_vec Sg_io_vec;
-typedef struct sg_scsi_id Sg_scsi_id;
-typedef struct sg_req_info Sg_req_info;
-
-struct sg_header {
- int pack_len;
- int reply_len;
- int pack_id;
- int result;
- unsigned twelve_byte:1;
- unsigned target_status:5;
- unsigned host_status:8;
- unsigned driver_status:8;
- unsigned other_flags:10;
- unsigned char sense_buffer[SG_MAX_SENSE];
-};
-
-#endif
diff --git a/musl/search.h b/musl/search.h
deleted file mode 100644
index 02e407e..0000000
--- a/musl/search.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef _SEARCH_H
-#define _SEARCH_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-#include <bits/alltypes.h>
-
-typedef enum { FIND, ENTER } ACTION;
-typedef enum { preorder, postorder, endorder, leaf } VISIT;
-
-typedef struct entry {
- char *key;
- void *data;
-} ENTRY;
-
-int hcreate(size_t);
-void hdestroy(void);
-ENTRY *hsearch(ENTRY, ACTION);
-
-#ifdef _GNU_SOURCE
-struct hsearch_data {
- struct __tab *__tab;
- unsigned int __unused1;
- unsigned int __unused2;
-};
-
-int hcreate_r(size_t, struct hsearch_data *);
-void hdestroy_r(struct hsearch_data *);
-int hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *);
-#endif
-
-void insque(void *, void *);
-void remque(void *);
-
-void *lsearch(const void *, void *, size_t *, size_t,
- int (*)(const void *, const void *));
-void *lfind(const void *, const void *, size_t *, size_t,
- int (*)(const void *, const void *));
-
-void *tdelete(const void *__restrict, void **__restrict, int(*)(const void *, const void *));
-void *tfind(const void *, void *const *, int(*)(const void *, const void *));
-void *tsearch(const void *, void **, int (*)(const void *, const void *));
-void twalk(const void *, void (*)(const void *, VISIT, int));
-
-#ifdef _GNU_SOURCE
-struct qelem {
- struct qelem *q_forw, *q_back;
- char q_data[1];
-};
-
-void tdestroy(void *, void (*)(void *));
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/semaphore.h b/musl/semaphore.h
deleted file mode 100644
index 3690f49..0000000
--- a/musl/semaphore.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _SEMAPHORE_H
-#define _SEMAPHORE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_time_t
-#define __NEED_struct_timespec
-#include <bits/alltypes.h>
-
-#include <fcntl.h>
-
-#define SEM_FAILED ((sem_t *)0)
-
-typedef struct {
- volatile int __val[4*sizeof(long)/sizeof(int)];
-} sem_t;
-
-int sem_close(sem_t *);
-int sem_destroy(sem_t *);
-int sem_getvalue(sem_t *__restrict, int *__restrict);
-int sem_init(sem_t *, int, unsigned);
-sem_t *sem_open(const char *, int, ...);
-int sem_post(sem_t *);
-int sem_timedwait(sem_t *__restrict, const struct timespec *__restrict);
-int sem_trywait(sem_t *);
-int sem_unlink(const char *);
-int sem_wait(sem_t *);
-
-#if _REDIR_TIME64
-__REDIR(sem_timedwait, __sem_timedwait_time64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/setjmp.h b/musl/setjmp.h
deleted file mode 100644
index 1976af2..0000000
--- a/musl/setjmp.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef _SETJMP_H
-#define _SETJMP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#include <bits/setjmp.h>
-
-typedef struct __jmp_buf_tag {
- __jmp_buf __jb;
- unsigned long __fl;
- unsigned long __ss[128/sizeof(long)];
-} jmp_buf[1];
-
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)
-#define __setjmp_attr __attribute__((__returns_twice__))
-#else
-#define __setjmp_attr
-#endif
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-typedef jmp_buf sigjmp_buf;
-int sigsetjmp (sigjmp_buf, int) __setjmp_attr;
-_Noreturn void siglongjmp (sigjmp_buf, int);
-#endif
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-int _setjmp (jmp_buf) __setjmp_attr;
-_Noreturn void _longjmp (jmp_buf, int);
-#endif
-
-int setjmp (jmp_buf) __setjmp_attr;
-_Noreturn void longjmp (jmp_buf, int);
-
-#define setjmp setjmp
-
-#undef __setjmp_attr
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/shadow.h b/musl/shadow.h
deleted file mode 100644
index 2b1be41..0000000
--- a/musl/shadow.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef _SHADOW_H
-#define _SHADOW_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_FILE
-#define __NEED_size_t
-
-#include <bits/alltypes.h>
-
-#define SHADOW "/etc/shadow"
-
-struct spwd {
- char *sp_namp;
- char *sp_pwdp;
- long sp_lstchg;
- long sp_min;
- long sp_max;
- long sp_warn;
- long sp_inact;
- long sp_expire;
- unsigned long sp_flag;
-};
-
-void setspent(void);
-void endspent(void);
-struct spwd *getspent(void);
-struct spwd *fgetspent(FILE *);
-struct spwd *sgetspent(const char *);
-int putspent(const struct spwd *, FILE *);
-
-struct spwd *getspnam(const char *);
-int getspnam_r(const char *, struct spwd *, char *, size_t, struct spwd **);
-
-int lckpwdf(void);
-int ulckpwdf(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/signal.h b/musl/signal.h
deleted file mode 100644
index c347f86..0000000
--- a/musl/signal.h
+++ /dev/null
@@ -1,304 +0,0 @@
-#ifndef _SIGNAL_H
-#define _SIGNAL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-
-#ifdef _GNU_SOURCE
-#define __ucontext ucontext
-#endif
-
-#define __NEED_size_t
-#define __NEED_pid_t
-#define __NEED_uid_t
-#define __NEED_struct_timespec
-#define __NEED_pthread_t
-#define __NEED_pthread_attr_t
-#define __NEED_time_t
-#define __NEED_clock_t
-#define __NEED_sigset_t
-
-#include <bits/alltypes.h>
-
-#define SIG_BLOCK 0
-#define SIG_UNBLOCK 1
-#define SIG_SETMASK 2
-
-#define SI_ASYNCNL (-60)
-#define SI_TKILL (-6)
-#define SI_SIGIO (-5)
-#define SI_ASYNCIO (-4)
-#define SI_MESGQ (-3)
-#define SI_TIMER (-2)
-#define SI_QUEUE (-1)
-#define SI_USER 0
-#define SI_KERNEL 128
-
-typedef struct sigaltstack stack_t;
-
-#endif
-
-#include <bits/signal.h>
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-
-#define SIG_HOLD ((void (*)(int)) 2)
-
-#define FPE_INTDIV 1
-#define FPE_INTOVF 2
-#define FPE_FLTDIV 3
-#define FPE_FLTOVF 4
-#define FPE_FLTUND 5
-#define FPE_FLTRES 6
-#define FPE_FLTINV 7
-#define FPE_FLTSUB 8
-
-#define ILL_ILLOPC 1
-#define ILL_ILLOPN 2
-#define ILL_ILLADR 3
-#define ILL_ILLTRP 4
-#define ILL_PRVOPC 5
-#define ILL_PRVREG 6
-#define ILL_COPROC 7
-#define ILL_BADSTK 8
-
-#define SEGV_MAPERR 1
-#define SEGV_ACCERR 2
-#define SEGV_BNDERR 3
-#define SEGV_PKUERR 4
-#define SEGV_MTEAERR 8
-#define SEGV_MTESERR 9
-
-#define BUS_ADRALN 1
-#define BUS_ADRERR 2
-#define BUS_OBJERR 3
-#define BUS_MCEERR_AR 4
-#define BUS_MCEERR_AO 5
-
-#define CLD_EXITED 1
-#define CLD_KILLED 2
-#define CLD_DUMPED 3
-#define CLD_TRAPPED 4
-#define CLD_STOPPED 5
-#define CLD_CONTINUED 6
-
-union sigval {
- int sival_int;
- void *sival_ptr;
-};
-
-typedef struct {
-#ifdef __SI_SWAP_ERRNO_CODE
- int si_signo, si_code, si_errno;
-#else
- int si_signo, si_errno, si_code;
-#endif
- union {
- char __pad[128 - 2*sizeof(int) - sizeof(long)];
- struct {
- union {
- struct {
- pid_t si_pid;
- uid_t si_uid;
- } __piduid;
- struct {
- int si_timerid;
- int si_overrun;
- } __timer;
- } __first;
- union {
- union sigval si_value;
- struct {
- int si_status;
- clock_t si_utime, si_stime;
- } __sigchld;
- } __second;
- } __si_common;
- struct {
- void *si_addr;
- short si_addr_lsb;
- union {
- struct {
- void *si_lower;
- void *si_upper;
- } __addr_bnd;
- unsigned si_pkey;
- } __first;
- } __sigfault;
- struct {
- long si_band;
- int si_fd;
- } __sigpoll;
- struct {
- void *si_call_addr;
- int si_syscall;
- unsigned si_arch;
- } __sigsys;
- } __si_fields;
-} siginfo_t;
-#define si_pid __si_fields.__si_common.__first.__piduid.si_pid
-#define si_uid __si_fields.__si_common.__first.__piduid.si_uid
-#define si_status __si_fields.__si_common.__second.__sigchld.si_status
-#define si_utime __si_fields.__si_common.__second.__sigchld.si_utime
-#define si_stime __si_fields.__si_common.__second.__sigchld.si_stime
-#define si_value __si_fields.__si_common.__second.si_value
-#define si_addr __si_fields.__sigfault.si_addr
-#define si_addr_lsb __si_fields.__sigfault.si_addr_lsb
-#define si_lower __si_fields.__sigfault.__first.__addr_bnd.si_lower
-#define si_upper __si_fields.__sigfault.__first.__addr_bnd.si_upper
-#define si_pkey __si_fields.__sigfault.__first.si_pkey
-#define si_band __si_fields.__sigpoll.si_band
-#define si_fd __si_fields.__sigpoll.si_fd
-#define si_timerid __si_fields.__si_common.__first.__timer.si_timerid
-#define si_overrun __si_fields.__si_common.__first.__timer.si_overrun
-#define si_ptr si_value.sival_ptr
-#define si_int si_value.sival_int
-#define si_call_addr __si_fields.__sigsys.si_call_addr
-#define si_syscall __si_fields.__sigsys.si_syscall
-#define si_arch __si_fields.__sigsys.si_arch
-
-struct sigaction {
- union {
- void (*sa_handler)(int);
- void (*sa_sigaction)(int, siginfo_t *, void *);
- } __sa_handler;
- sigset_t sa_mask;
- int sa_flags;
- void (*sa_restorer)(void);
-};
-#define sa_handler __sa_handler.sa_handler
-#define sa_sigaction __sa_handler.sa_sigaction
-
-#define SA_UNSUPPORTED 0x00000400
-#define SA_EXPOSE_TAGBITS 0x00000800
-
-struct sigevent {
- union sigval sigev_value;
- int sigev_signo;
- int sigev_notify;
- union {
- char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
- pid_t sigev_notify_thread_id;
- struct {
- void (*sigev_notify_function)(union sigval);
- pthread_attr_t *sigev_notify_attributes;
- } __sev_thread;
- } __sev_fields;
-};
-
-#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
-#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
-#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
-
-#define SIGEV_SIGNAL 0
-#define SIGEV_NONE 1
-#define SIGEV_THREAD 2
-#define SIGEV_THREAD_ID 4
-
-int __libc_current_sigrtmin(void);
-int __libc_current_sigrtmax(void);
-
-#define SIGRTMIN (__libc_current_sigrtmin())
-#define SIGRTMAX (__libc_current_sigrtmax())
-
-int kill(pid_t, int);
-
-int sigemptyset(sigset_t *);
-int sigfillset(sigset_t *);
-int sigaddset(sigset_t *, int);
-int sigdelset(sigset_t *, int);
-int sigismember(const sigset_t *, int);
-
-int sigprocmask(int, const sigset_t *__restrict, sigset_t *__restrict);
-int sigsuspend(const sigset_t *);
-int sigaction(int, const struct sigaction *__restrict, struct sigaction *__restrict);
-int sigpending(sigset_t *);
-int sigwait(const sigset_t *__restrict, int *__restrict);
-int sigwaitinfo(const sigset_t *__restrict, siginfo_t *__restrict);
-int sigtimedwait(const sigset_t *__restrict, siginfo_t *__restrict, const struct timespec *__restrict);
-int sigqueue(pid_t, int, union sigval);
-
-int pthread_sigmask(int, const sigset_t *__restrict, sigset_t *__restrict);
-int pthread_kill(pthread_t, int);
-
-void psiginfo(const siginfo_t *, const char *);
-void psignal(int, const char *);
-
-#endif
-
-#if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
-int killpg(pid_t, int);
-int sigaltstack(const stack_t *__restrict, stack_t *__restrict);
-int sighold(int);
-int sigignore(int);
-int siginterrupt(int, int);
-int sigpause(int);
-int sigrelse(int);
-void (*sigset(int, void (*)(int)))(int);
-#define TRAP_BRKPT 1
-#define TRAP_TRACE 2
-#define TRAP_BRANCH 3
-#define TRAP_HWBKPT 4
-#define TRAP_UNK 5
-#define POLL_IN 1
-#define POLL_OUT 2
-#define POLL_MSG 3
-#define POLL_ERR 4
-#define POLL_PRI 5
-#define POLL_HUP 6
-#define SS_ONSTACK 1
-#define SS_DISABLE 2
-#define SS_AUTODISARM (1U << 31)
-#define SS_FLAG_BITS SS_AUTODISARM
-#endif
-
-#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
-#define NSIG _NSIG
-typedef void (*sig_t)(int);
-
-#define SYS_SECCOMP 1
-#define SYS_USER_DISPATCH 2
-#endif
-
-#ifdef _GNU_SOURCE
-typedef void (*sighandler_t)(int);
-void (*bsd_signal(int, void (*)(int)))(int);
-int sigisemptyset(const sigset_t *);
-int sigorset (sigset_t *, const sigset_t *, const sigset_t *);
-int sigandset(sigset_t *, const sigset_t *, const sigset_t *);
-
-#define SA_NOMASK SA_NODEFER
-#define SA_ONESHOT SA_RESETHAND
-#endif
-
-#define SIG_ERR ((void (*)(int))-1)
-#define SIG_DFL ((void (*)(int)) 0)
-#define SIG_IGN ((void (*)(int)) 1)
-
-typedef int sig_atomic_t;
-
-void (*signal(int, void (*)(int)))(int);
-int raise(int);
-
-#if _REDIR_TIME64
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-__REDIR(sigtimedwait, __sigtimedwait_time64);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/spawn.h b/musl/spawn.h
deleted file mode 100644
index 8eb73e0..0000000
--- a/musl/spawn.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef _SPAWN_H
-#define _SPAWN_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_mode_t
-#define __NEED_pid_t
-#define __NEED_sigset_t
-
-#include <bits/alltypes.h>
-
-struct sched_param;
-
-#define POSIX_SPAWN_RESETIDS 1
-#define POSIX_SPAWN_SETPGROUP 2
-#define POSIX_SPAWN_SETSIGDEF 4
-#define POSIX_SPAWN_SETSIGMASK 8
-#define POSIX_SPAWN_SETSCHEDPARAM 16
-#define POSIX_SPAWN_SETSCHEDULER 32
-#define POSIX_SPAWN_USEVFORK 64
-#define POSIX_SPAWN_SETSID 128
-
-typedef struct {
- int __flags;
- pid_t __pgrp;
- sigset_t __def, __mask;
- int __prio, __pol;
- void *__fn;
- char __pad[64-sizeof(void *)];
-} posix_spawnattr_t;
-
-typedef struct {
- int __pad0[2];
- void *__actions;
- int __pad[16];
-} posix_spawn_file_actions_t;
-
-int posix_spawn(pid_t *__restrict, const char *__restrict, const posix_spawn_file_actions_t *,
- const posix_spawnattr_t *__restrict, char *const *__restrict, char *const *__restrict);
-int posix_spawnp(pid_t *__restrict, const char *__restrict, const posix_spawn_file_actions_t *,
- const posix_spawnattr_t *__restrict, char *const *__restrict, char *const *__restrict);
-
-int posix_spawnattr_init(posix_spawnattr_t *);
-int posix_spawnattr_destroy(posix_spawnattr_t *);
-
-int posix_spawnattr_setflags(posix_spawnattr_t *, short);
-int posix_spawnattr_getflags(const posix_spawnattr_t *__restrict, short *__restrict);
-
-int posix_spawnattr_setpgroup(posix_spawnattr_t *, pid_t);
-int posix_spawnattr_getpgroup(const posix_spawnattr_t *__restrict, pid_t *__restrict);
-
-int posix_spawnattr_setsigmask(posix_spawnattr_t *__restrict, const sigset_t *__restrict);
-int posix_spawnattr_getsigmask(const posix_spawnattr_t *__restrict, sigset_t *__restrict);
-
-int posix_spawnattr_setsigdefault(posix_spawnattr_t *__restrict, const sigset_t *__restrict);
-int posix_spawnattr_getsigdefault(const posix_spawnattr_t *__restrict, sigset_t *__restrict);
-
-int posix_spawnattr_setschedparam(posix_spawnattr_t *__restrict, const struct sched_param *__restrict);
-int posix_spawnattr_getschedparam(const posix_spawnattr_t *__restrict, struct sched_param *__restrict);
-int posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int);
-int posix_spawnattr_getschedpolicy(const posix_spawnattr_t *__restrict, int *__restrict);
-
-int posix_spawn_file_actions_init(posix_spawn_file_actions_t *);
-int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *);
-
-int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *__restrict, int, const char *__restrict, int, mode_t);
-int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int);
-int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int, int);
-
-#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
-int posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *__restrict, const char *__restrict);
-int posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *, int);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/stdalign.h b/musl/stdalign.h
deleted file mode 100644
index 2cc94be..0000000
--- a/musl/stdalign.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _STDALIGN_H
-#define _STDALIGN_H
-
-#ifndef __cplusplus
-
-/* this whole header only works in C11 or with compiler extensions */
-#if __STDC_VERSION__ < 201112L && defined( __GNUC__)
-#define _Alignas(t) __attribute__((__aligned__(t)))
-#define _Alignof(t) __alignof__(t)
-#endif
-
-#define alignas _Alignas
-#define alignof _Alignof
-
-#endif
-
-#define __alignas_is_defined 1
-#define __alignof_is_defined 1
-
-#endif
diff --git a/musl/stdarg.h b/musl/stdarg.h
deleted file mode 100644
index 3256f80..0000000
--- a/musl/stdarg.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _STDARG_H
-#define _STDARG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_va_list
-
-#include <bits/alltypes.h>
-
-#define va_start(v,l) __builtin_va_start(v,l)
-#define va_end(v) __builtin_va_end(v)
-#define va_arg(v,l) __builtin_va_arg(v,l)
-#define va_copy(d,s) __builtin_va_copy(d,s)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/stdbool.h b/musl/stdbool.h
deleted file mode 100644
index a9d7ab7..0000000
--- a/musl/stdbool.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef _STDBOOL_H
-#define _STDBOOL_H
-
-#ifndef __cplusplus
-
-#define true 1
-#define false 0
-#define bool _Bool
-
-#endif
-
-#define __bool_true_false_are_defined 1
-
-#endif
diff --git a/musl/stdc-predef.h b/musl/stdc-predef.h
deleted file mode 100644
index 642bad2..0000000
--- a/musl/stdc-predef.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _STDC_PREDEF_H
-#define _STDC_PREDEF_H
-
-#define __STDC_ISO_10646__ 201206L
-
-#if !defined(__GCC_IEC_559) || __GCC_IEC_559 > 0
-#define __STDC_IEC_559__ 1
-#endif
-
-#if !defined(__STDC_UTF_16__)
-#define __STDC_UTF_16__ 1
-#endif
-
-#if !defined(__STDC_UTF_32__)
-#define __STDC_UTF_32__ 1
-#endif
-
-#endif
diff --git a/musl/stddef.h b/musl/stddef.h
deleted file mode 100644
index f25b863..0000000
--- a/musl/stddef.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _STDDEF_H
-#define _STDDEF_H
-
-#if __cplusplus >= 201103L
-#define NULL nullptr
-#elif defined(__cplusplus)
-#define NULL 0L
-#else
-#define NULL ((void*)0)
-#endif
-
-#define __NEED_ptrdiff_t
-#define __NEED_size_t
-#define __NEED_wchar_t
-#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
-#define __NEED_max_align_t
-#endif
-
-#include <bits/alltypes.h>
-
-#if __GNUC__ > 3
-#define offsetof(type, member) __builtin_offsetof(type, member)
-#else
-#define offsetof(type, member) ((size_t)( (char *)&(((type *)0)->member) - (char *)0 ))
-#endif
-
-#endif
diff --git a/musl/stdint.h b/musl/stdint.h
deleted file mode 100644
index a296819..0000000
--- a/musl/stdint.h
+++ /dev/null
@@ -1,117 +0,0 @@
-#ifndef _STDINT_H
-#define _STDINT_H
-
-#define __NEED_int8_t
-#define __NEED_int16_t
-#define __NEED_int32_t
-#define __NEED_int64_t
-
-#define __NEED_uint8_t
-#define __NEED_uint16_t
-#define __NEED_uint32_t
-#define __NEED_uint64_t
-
-#define __NEED_intptr_t
-#define __NEED_uintptr_t
-
-#define __NEED_intmax_t
-#define __NEED_uintmax_t
-
-#include <bits/alltypes.h>
-
-typedef int8_t int_fast8_t;
-typedef int64_t int_fast64_t;
-
-typedef int8_t int_least8_t;
-typedef int16_t int_least16_t;
-typedef int32_t int_least32_t;
-typedef int64_t int_least64_t;
-
-typedef uint8_t uint_fast8_t;
-typedef uint64_t uint_fast64_t;
-
-typedef uint8_t uint_least8_t;
-typedef uint16_t uint_least16_t;
-typedef uint32_t uint_least32_t;
-typedef uint64_t uint_least64_t;
-
-#define INT8_MIN (-1-0x7f)
-#define INT16_MIN (-1-0x7fff)
-#define INT32_MIN (-1-0x7fffffff)
-#define INT64_MIN (-1-0x7fffffffffffffff)
-
-#define INT8_MAX (0x7f)
-#define INT16_MAX (0x7fff)
-#define INT32_MAX (0x7fffffff)
-#define INT64_MAX (0x7fffffffffffffff)
-
-#define UINT8_MAX (0xff)
-#define UINT16_MAX (0xffff)
-#define UINT32_MAX (0xffffffffu)
-#define UINT64_MAX (0xffffffffffffffffu)
-
-#define INT_FAST8_MIN INT8_MIN
-#define INT_FAST64_MIN INT64_MIN
-
-#define INT_LEAST8_MIN INT8_MIN
-#define INT_LEAST16_MIN INT16_MIN
-#define INT_LEAST32_MIN INT32_MIN
-#define INT_LEAST64_MIN INT64_MIN
-
-#define INT_FAST8_MAX INT8_MAX
-#define INT_FAST64_MAX INT64_MAX
-
-#define INT_LEAST8_MAX INT8_MAX
-#define INT_LEAST16_MAX INT16_MAX
-#define INT_LEAST32_MAX INT32_MAX
-#define INT_LEAST64_MAX INT64_MAX
-
-#define UINT_FAST8_MAX UINT8_MAX
-#define UINT_FAST64_MAX UINT64_MAX
-
-#define UINT_LEAST8_MAX UINT8_MAX
-#define UINT_LEAST16_MAX UINT16_MAX
-#define UINT_LEAST32_MAX UINT32_MAX
-#define UINT_LEAST64_MAX UINT64_MAX
-
-#define INTMAX_MIN INT64_MIN
-#define INTMAX_MAX INT64_MAX
-#define UINTMAX_MAX UINT64_MAX
-
-#define WINT_MIN 0U
-#define WINT_MAX UINT32_MAX
-
-#if L'\0'-1 > 0
-#define WCHAR_MAX (0xffffffffu+L'\0')
-#define WCHAR_MIN (0+L'\0')
-#else
-#define WCHAR_MAX (0x7fffffff+L'\0')
-#define WCHAR_MIN (-1-0x7fffffff+L'\0')
-#endif
-
-#define SIG_ATOMIC_MIN INT32_MIN
-#define SIG_ATOMIC_MAX INT32_MAX
-
-#include <bits/stdint.h>
-
-#define INT8_C(c) c
-#define INT16_C(c) c
-#define INT32_C(c) c
-
-#define UINT8_C(c) c
-#define UINT16_C(c) c
-#define UINT32_C(c) c ## U
-
-#if UINTPTR_MAX == UINT64_MAX
-#define INT64_C(c) c ## L
-#define UINT64_C(c) c ## UL
-#define INTMAX_C(c) c ## L
-#define UINTMAX_C(c) c ## UL
-#else
-#define INT64_C(c) c ## LL
-#define UINT64_C(c) c ## ULL
-#define INTMAX_C(c) c ## LL
-#define UINTMAX_C(c) c ## ULL
-#endif
-
-#endif
diff --git a/musl/stdio.h b/musl/stdio.h
deleted file mode 100644
index 4ea4c17..0000000
--- a/musl/stdio.h
+++ /dev/null
@@ -1,231 +0,0 @@
-#ifndef _STDIO_H
-#define _STDIO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_FILE
-#define __NEED___isoc_va_list
-#define __NEED_size_t
-
-#if __STDC_VERSION__ < 201112L
-#define __NEED_struct__IO_FILE
-#endif
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-#define __NEED_ssize_t
-#define __NEED_off_t
-#define __NEED_va_list
-#endif
-
-#include <bits/alltypes.h>
-
-#if __cplusplus >= 201103L
-#define NULL nullptr
-#elif defined(__cplusplus)
-#define NULL 0L
-#else
-#define NULL ((void*)0)
-#endif
-
-#undef EOF
-#define EOF (-1)
-
-#undef SEEK_SET
-#undef SEEK_CUR
-#undef SEEK_END
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-
-#define _IOFBF 0
-#define _IOLBF 1
-#define _IONBF 2
-
-#define BUFSIZ 1024
-#define FILENAME_MAX 4096
-#define FOPEN_MAX 1000
-#define TMP_MAX 10000
-#define L_tmpnam 20
-
-typedef union _G_fpos64_t {
- char __opaque[16];
- long long __lldata;
- double __align;
-} fpos_t;
-
-extern FILE *const stdin;
-extern FILE *const stdout;
-extern FILE *const stderr;
-
-#define stdin (stdin)
-#define stdout (stdout)
-#define stderr (stderr)
-
-FILE *fopen(const char *__restrict, const char *__restrict);
-FILE *freopen(const char *__restrict, const char *__restrict, FILE *__restrict);
-int fclose(FILE *);
-
-int remove(const char *);
-int rename(const char *, const char *);
-
-int feof(FILE *);
-int ferror(FILE *);
-int fflush(FILE *);
-void clearerr(FILE *);
-
-int fseek(FILE *, long, int);
-long ftell(FILE *);
-void rewind(FILE *);
-
-int fgetpos(FILE *__restrict, fpos_t *__restrict);
-int fsetpos(FILE *, const fpos_t *);
-
-size_t fread(void *__restrict, size_t, size_t, FILE *__restrict);
-size_t fwrite(const void *__restrict, size_t, size_t, FILE *__restrict);
-
-int fgetc(FILE *);
-int getc(FILE *);
-int getchar(void);
-int ungetc(int, FILE *);
-
-int fputc(int, FILE *);
-int putc(int, FILE *);
-int putchar(int);
-
-char *fgets(char *__restrict, int, FILE *__restrict);
-#if __STDC_VERSION__ < 201112L
-char *gets(char *);
-#endif
-
-int fputs(const char *__restrict, FILE *__restrict);
-int puts(const char *);
-
-int printf(const char *__restrict, ...);
-int fprintf(FILE *__restrict, const char *__restrict, ...);
-int sprintf(char *__restrict, const char *__restrict, ...);
-int snprintf(char *__restrict, size_t, const char *__restrict, ...);
-
-int vprintf(const char *__restrict, __isoc_va_list);
-int vfprintf(FILE *__restrict, const char *__restrict, __isoc_va_list);
-int vsprintf(char *__restrict, const char *__restrict, __isoc_va_list);
-int vsnprintf(char *__restrict, size_t, const char *__restrict, __isoc_va_list);
-
-int scanf(const char *__restrict, ...);
-int fscanf(FILE *__restrict, const char *__restrict, ...);
-int sscanf(const char *__restrict, const char *__restrict, ...);
-int vscanf(const char *__restrict, __isoc_va_list);
-int vfscanf(FILE *__restrict, const char *__restrict, __isoc_va_list);
-int vsscanf(const char *__restrict, const char *__restrict, __isoc_va_list);
-
-void perror(const char *);
-
-int setvbuf(FILE *__restrict, char *__restrict, int, size_t);
-void setbuf(FILE *__restrict, char *__restrict);
-
-char *tmpnam(char *);
-FILE *tmpfile(void);
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-FILE *fmemopen(void *__restrict, size_t, const char *__restrict);
-FILE *open_memstream(char **, size_t *);
-FILE *fdopen(int, const char *);
-FILE *popen(const char *, const char *);
-int pclose(FILE *);
-int fileno(FILE *);
-int fseeko(FILE *, off_t, int);
-off_t ftello(FILE *);
-int dprintf(int, const char *__restrict, ...);
-int vdprintf(int, const char *__restrict, __isoc_va_list);
-void flockfile(FILE *);
-int ftrylockfile(FILE *);
-void funlockfile(FILE *);
-int getc_unlocked(FILE *);
-int getchar_unlocked(void);
-int putc_unlocked(int, FILE *);
-int putchar_unlocked(int);
-ssize_t getdelim(char **__restrict, size_t *__restrict, int, FILE *__restrict);
-ssize_t getline(char **__restrict, size_t *__restrict, FILE *__restrict);
-int renameat(int, const char *, int, const char *);
-char *ctermid(char *);
-#define L_ctermid 20
-#endif
-
-#if defined(_GNU_SOURCE)
-#define RENAME_NOREPLACE (1 << 0)
-#define RENAME_EXCHANGE (1 << 1)
-#define RENAME_WHITEOUT (1 << 2)
-
-int renameat2(int, const char *, int, const char *, unsigned);
-#endif
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-#define P_tmpdir "/tmp"
-char *tempnam(const char *, const char *);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define L_cuserid 20
-char *cuserid(char *);
-void setlinebuf(FILE *);
-void setbuffer(FILE *, char *, size_t);
-int fgetc_unlocked(FILE *);
-int fputc_unlocked(int, FILE *);
-int fflush_unlocked(FILE *);
-size_t fread_unlocked(void *, size_t, size_t, FILE *);
-size_t fwrite_unlocked(const void *, size_t, size_t, FILE *);
-void clearerr_unlocked(FILE *);
-int feof_unlocked(FILE *);
-int ferror_unlocked(FILE *);
-int fileno_unlocked(FILE *);
-int getw(FILE *);
-int putw(int, FILE *);
-char *fgetln(FILE *, size_t *);
-int asprintf(char **, const char *, ...);
-int vasprintf(char **, const char *, __isoc_va_list);
-#endif
-
-#ifdef _GNU_SOURCE
-char *fgets_unlocked(char *, int, FILE *);
-int fputs_unlocked(const char *, FILE *);
-
-typedef ssize_t (cookie_read_function_t)(void *, char *, size_t);
-typedef ssize_t (cookie_write_function_t)(void *, const char *, size_t);
-typedef int (cookie_seek_function_t)(void *, off_t *, int);
-typedef int (cookie_close_function_t)(void *);
-
-typedef struct _IO_cookie_io_functions_t {
- cookie_read_function_t *read;
- cookie_write_function_t *write;
- cookie_seek_function_t *seek;
- cookie_close_function_t *close;
-} cookie_io_functions_t;
-
-FILE *fopencookie(void *, const char *, cookie_io_functions_t);
-#endif
-
-#if defined(_LARGEFILE64_SOURCE)
-#define tmpfile64 tmpfile
-#define fopen64 fopen
-#define freopen64 freopen
-#define fseeko64 fseeko
-#define ftello64 ftello
-#define fgetpos64 fgetpos
-#define fsetpos64 fsetpos
-#define fpos64_t fpos_t
-#define off64_t off_t
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/stdio_ext.h b/musl/stdio_ext.h
deleted file mode 100644
index e3ab7fd..0000000
--- a/musl/stdio_ext.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _STDIO_EXT_H
-#define _STDIO_EXT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>
-
-#define FSETLOCKING_QUERY 0
-#define FSETLOCKING_INTERNAL 1
-#define FSETLOCKING_BYCALLER 2
-
-void _flushlbf(void);
-int __fsetlocking(FILE *, int);
-int __fwriting(FILE *);
-int __freading(FILE *);
-int __freadable(FILE *);
-int __fwritable(FILE *);
-int __flbf(FILE *);
-size_t __fbufsize(FILE *);
-size_t __fpending(FILE *);
-int __fpurge(FILE *);
-
-size_t __freadahead(FILE *);
-const char *__freadptr(FILE *, size_t *);
-void __freadptrinc(FILE *, size_t);
-void __fseterr(FILE *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/stdlib.h b/musl/stdlib.h
deleted file mode 100644
index 475190b..0000000
--- a/musl/stdlib.h
+++ /dev/null
@@ -1,179 +0,0 @@
-#ifndef _STDLIB_H
-#define _STDLIB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#if __cplusplus >= 201103L
-#define NULL nullptr
-#elif defined(__cplusplus)
-#define NULL 0L
-#else
-#define NULL ((void*)0)
-#endif
-
-#define __NEED_size_t
-#define __NEED_wchar_t
-
-#include <bits/alltypes.h>
-
-int atoi (const char *);
-long atol (const char *);
-long long atoll (const char *);
-double atof (const char *);
-
-float strtof (const char *__restrict, char **__restrict);
-double strtod (const char *__restrict, char **__restrict);
-long double strtold (const char *__restrict, char **__restrict);
-
-long strtol (const char *__restrict, char **__restrict, int);
-unsigned long strtoul (const char *__restrict, char **__restrict, int);
-long long strtoll (const char *__restrict, char **__restrict, int);
-unsigned long long strtoull (const char *__restrict, char **__restrict, int);
-
-int rand (void);
-void srand (unsigned);
-
-void *malloc (size_t);
-void *calloc (size_t, size_t);
-void *realloc (void *, size_t);
-void free (void *);
-void *aligned_alloc(size_t, size_t);
-
-_Noreturn void abort (void);
-int atexit (void (*) (void));
-_Noreturn void exit (int);
-_Noreturn void _Exit (int);
-int at_quick_exit (void (*) (void));
-_Noreturn void quick_exit (int);
-
-char *getenv (const char *);
-
-int system (const char *);
-
-void *bsearch (const void *, const void *, size_t, size_t, int (*)(const void *, const void *));
-void qsort (void *, size_t, size_t, int (*)(const void *, const void *));
-
-int abs (int);
-long labs (long);
-long long llabs (long long);
-
-typedef struct { int quot, rem; } div_t;
-typedef struct { long quot, rem; } ldiv_t;
-typedef struct { long long quot, rem; } lldiv_t;
-
-div_t div (int, int);
-ldiv_t ldiv (long, long);
-lldiv_t lldiv (long long, long long);
-
-int mblen (const char *, size_t);
-int mbtowc (wchar_t *__restrict, const char *__restrict, size_t);
-int wctomb (char *, wchar_t);
-size_t mbstowcs (wchar_t *__restrict, const char *__restrict, size_t);
-size_t wcstombs (char *__restrict, const wchar_t *__restrict, size_t);
-
-#define EXIT_FAILURE 1
-#define EXIT_SUCCESS 0
-
-size_t __ctype_get_mb_cur_max(void);
-#define MB_CUR_MAX (__ctype_get_mb_cur_max())
-
-#define RAND_MAX (0x7fffffff)
-
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-
-#define WNOHANG 1
-#define WUNTRACED 2
-
-#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)
-#define WTERMSIG(s) ((s) & 0x7f)
-#define WSTOPSIG(s) WEXITSTATUS(s)
-#define WIFEXITED(s) (!WTERMSIG(s))
-#define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001U)>>8) > 0x7f00)
-#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu)
-
-int posix_memalign (void **, size_t, size_t);
-int setenv (const char *, const char *, int);
-int unsetenv (const char *);
-int mkstemp (char *);
-int mkostemp (char *, int);
-char *mkdtemp (char *);
-int getsubopt (char **, char *const *, char **);
-int rand_r (unsigned *);
-
-#endif
-
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-char *realpath (const char *__restrict, char *__restrict);
-long int random (void);
-void srandom (unsigned int);
-char *initstate (unsigned int, char *, size_t);
-char *setstate (char *);
-int putenv (char *);
-int posix_openpt (int);
-int grantpt (int);
-int unlockpt (int);
-char *ptsname (int);
-char *l64a (long);
-long a64l (const char *);
-void setkey (const char *);
-double drand48 (void);
-double erand48 (unsigned short [3]);
-long int lrand48 (void);
-long int nrand48 (unsigned short [3]);
-long mrand48 (void);
-long jrand48 (unsigned short [3]);
-void srand48 (long);
-unsigned short *seed48 (unsigned short [3]);
-void lcong48 (unsigned short [7]);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#include <alloca.h>
-char *mktemp (char *);
-int mkstemps (char *, int);
-int mkostemps (char *, int, int);
-void *valloc (size_t);
-void *memalign(size_t, size_t);
-int getloadavg(double *, int);
-int clearenv(void);
-#define WCOREDUMP(s) ((s) & 0x80)
-#define WIFCONTINUED(s) ((s) == 0xffff)
-void *reallocarray (void *, size_t, size_t);
-void qsort_r (void *, size_t, size_t, int (*)(const void *, const void *, void *), void *);
-#endif
-
-#ifdef _GNU_SOURCE
-int ptsname_r(int, char *, size_t);
-char *ecvt(double, int, int *, int *);
-char *fcvt(double, int, int *, int *);
-char *gcvt(double, int, char *);
-char *secure_getenv(const char *);
-struct __locale_struct;
-float strtof_l(const char *__restrict, char **__restrict, struct __locale_struct *);
-double strtod_l(const char *__restrict, char **__restrict, struct __locale_struct *);
-long double strtold_l(const char *__restrict, char **__restrict, struct __locale_struct *);
-#endif
-
-#if defined(_LARGEFILE64_SOURCE)
-#define mkstemp64 mkstemp
-#define mkostemp64 mkostemp
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define mkstemps64 mkstemps
-#define mkostemps64 mkostemps
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/stdnoreturn.h b/musl/stdnoreturn.h
deleted file mode 100644
index 5c6aeeb..0000000
--- a/musl/stdnoreturn.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _STDNORETURN_H
-#define _STDNORETURN_H
-#ifndef __cplusplus
-#include <features.h>
-#define noreturn _Noreturn
-#endif
-#endif
diff --git a/musl/string.h b/musl/string.h
deleted file mode 100644
index 83e2b94..0000000
--- a/musl/string.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef _STRING_H
-#define _STRING_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#if __cplusplus >= 201103L
-#define NULL nullptr
-#elif defined(__cplusplus)
-#define NULL 0L
-#else
-#define NULL ((void*)0)
-#endif
-
-#define __NEED_size_t
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-#define __NEED_locale_t
-#endif
-
-#include <bits/alltypes.h>
-
-void *memcpy (void *__restrict, const void *__restrict, size_t);
-void *memmove (void *, const void *, size_t);
-void *memset (void *, int, size_t);
-int memcmp (const void *, const void *, size_t);
-void *memchr (const void *, int, size_t);
-
-char *strcpy (char *__restrict, const char *__restrict);
-char *strncpy (char *__restrict, const char *__restrict, size_t);
-
-char *strcat (char *__restrict, const char *__restrict);
-char *strncat (char *__restrict, const char *__restrict, size_t);
-
-int strcmp (const char *, const char *);
-int strncmp (const char *, const char *, size_t);
-
-int strcoll (const char *, const char *);
-size_t strxfrm (char *__restrict, const char *__restrict, size_t);
-
-char *strchr (const char *, int);
-char *strrchr (const char *, int);
-
-size_t strcspn (const char *, const char *);
-size_t strspn (const char *, const char *);
-char *strpbrk (const char *, const char *);
-char *strstr (const char *, const char *);
-char *strtok (char *__restrict, const char *__restrict);
-
-size_t strlen (const char *);
-
-char *strerror (int);
-
-#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
-#include <strings.h>
-#endif
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-char *strtok_r (char *__restrict, const char *__restrict, char **__restrict);
-int strerror_r (int, char *, size_t);
-char *stpcpy(char *__restrict, const char *__restrict);
-char *stpncpy(char *__restrict, const char *__restrict, size_t);
-size_t strnlen (const char *, size_t);
-char *strdup (const char *);
-char *strndup (const char *, size_t);
-char *strsignal(int);
-char *strerror_l (int, locale_t);
-int strcoll_l (const char *, const char *, locale_t);
-size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t);
-void *memmem(const void *, size_t, const void *, size_t);
-#endif
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-void *memccpy (void *__restrict, const void *__restrict, int, size_t);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-char *strsep(char **, const char *);
-size_t strlcat (char *, const char *, size_t);
-size_t strlcpy (char *, const char *, size_t);
-void explicit_bzero (void *, size_t);
-#endif
-
-#ifdef _GNU_SOURCE
-#define strdupa(x) strcpy(alloca(strlen(x)+1),x)
-int strverscmp (const char *, const char *);
-char *strchrnul(const char *, int);
-char *strcasestr(const char *, const char *);
-void *memrchr(const void *, int, size_t);
-void *mempcpy(void *, const void *, size_t);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/strings.h b/musl/strings.h
deleted file mode 100644
index b7a5ea0..0000000
--- a/musl/strings.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _STRINGS_H
-#define _STRINGS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-#define __NEED_locale_t
-#include <bits/alltypes.h>
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \
- || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \
- || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
-int bcmp (const void *, const void *, size_t);
-void bcopy (const void *, void *, size_t);
-void bzero (void *, size_t);
-char *index (const char *, int);
-char *rindex (const char *, int);
-#endif
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-int ffs (int);
-int ffsl (long);
-int ffsll (long long);
-#endif
-
-int strcasecmp (const char *, const char *);
-int strncasecmp (const char *, const char *, size_t);
-
-int strcasecmp_l (const char *, const char *, locale_t);
-int strncasecmp_l (const char *, const char *, size_t, locale_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/stropts.h b/musl/stropts.h
deleted file mode 100644
index c99c922..0000000
--- a/musl/stropts.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#ifndef _STROPTS_H
-#define _STROPTS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __SID ('S' << 8)
-
-#define I_NREAD (__SID | 1)
-#define I_PUSH (__SID | 2)
-#define I_POP (__SID | 3)
-#define I_LOOK (__SID | 4)
-#define I_FLUSH (__SID | 5)
-#define I_SRDOPT (__SID | 6)
-#define I_GRDOPT (__SID | 7)
-#define I_STR (__SID | 8)
-#define I_SETSIG (__SID | 9)
-#define I_GETSIG (__SID |10)
-#define I_FIND (__SID |11)
-#define I_LINK (__SID |12)
-#define I_UNLINK (__SID |13)
-#define I_PEEK (__SID |15)
-#define I_FDINSERT (__SID |16)
-#define I_SENDFD (__SID |17)
-#define I_RECVFD (__SID |14)
-#define I_SWROPT (__SID |19)
-#define I_GWROPT (__SID |20)
-#define I_LIST (__SID |21)
-#define I_PLINK (__SID |22)
-#define I_PUNLINK (__SID |23)
-#define I_FLUSHBAND (__SID |28)
-#define I_CKBAND (__SID |29)
-#define I_GETBAND (__SID |30)
-#define I_ATMARK (__SID |31)
-#define I_SETCLTIME (__SID |32)
-#define I_GETCLTIME (__SID |33)
-#define I_CANPUT (__SID |34)
-
-#define FMNAMESZ 8
-
-#define FLUSHR 0x01
-#define FLUSHW 0x02
-#define FLUSHRW 0x03
-#define FLUSHBAND 0x04
-
-#define S_INPUT 0x0001
-#define S_HIPRI 0x0002
-#define S_OUTPUT 0x0004
-#define S_MSG 0x0008
-#define S_ERROR 0x0010
-#define S_HANGUP 0x0020
-#define S_RDNORM 0x0040
-#define S_WRNORM S_OUTPUT
-#define S_RDBAND 0x0080
-#define S_WRBAND 0x0100
-#define S_BANDURG 0x0200
-
-#define RS_HIPRI 0x01
-
-#define RNORM 0x0000
-#define RMSGD 0x0001
-#define RMSGN 0x0002
-#define RPROTDAT 0x0004
-#define RPROTDIS 0x0008
-#define RPROTNORM 0x0010
-#define RPROTMASK 0x001C
-
-#define SNDZERO 0x001
-#define SNDPIPE 0x002
-
-#define ANYMARK 0x01
-#define LASTMARK 0x02
-
-#define MUXID_ALL (-1)
-
-#define MSG_HIPRI 0x01
-#define MSG_ANY 0x02
-#define MSG_BAND 0x04
-
-#define MORECTL 1
-#define MOREDATA 2
-
-struct bandinfo {
- unsigned char bi_pri;
- int bi_flag;
-};
-
-struct strbuf {
- int maxlen;
- int len;
- char *buf;
-};
-
-struct strpeek {
- struct strbuf ctlbuf;
- struct strbuf databuf;
- unsigned flags;
-};
-
-struct strfdinsert {
- struct strbuf ctlbuf;
- struct strbuf databuf;
- unsigned flags;
- int fildes;
- int offset;
-};
-
-struct strioctl {
- int ic_cmd;
- int ic_timout;
- int ic_len;
- char *ic_dp;
-};
-
-struct strrecvfd {
- int fd;
- int uid;
- int gid;
- char __fill[8];
-};
-
-struct str_mlist {
- char l_name[FMNAMESZ + 1];
-};
-
-struct str_list {
- int sl_nmods;
- struct str_mlist *sl_modlist;
-};
-
-int isastream(int);
-int ioctl(int, int, ...);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/acct.h b/musl/sys/acct.h
deleted file mode 100644
index fae9d05..0000000
--- a/musl/sys/acct.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef _SYS_ACCT_H
-#define _SYS_ACCT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <time.h>
-#include <stdint.h>
-
-#define ACCT_COMM 16
-
-typedef uint16_t comp_t;
-
-struct acct {
- char ac_flag;
- uint16_t ac_uid;
- uint16_t ac_gid;
- uint16_t ac_tty;
- uint32_t ac_btime;
- comp_t ac_utime;
- comp_t ac_stime;
- comp_t ac_etime;
- comp_t ac_mem;
- comp_t ac_io;
- comp_t ac_rw;
- comp_t ac_minflt;
- comp_t ac_majflt;
- comp_t ac_swaps;
- uint32_t ac_exitcode;
- char ac_comm[ACCT_COMM+1];
- char ac_pad[10];
-};
-
-
-struct acct_v3 {
- char ac_flag;
- char ac_version;
- uint16_t ac_tty;
- uint32_t ac_exitcode;
- uint32_t ac_uid;
- uint32_t ac_gid;
- uint32_t ac_pid;
- uint32_t ac_ppid;
- uint32_t ac_btime;
- float ac_etime;
- comp_t ac_utime;
- comp_t ac_stime;
- comp_t ac_mem;
- comp_t ac_io;
- comp_t ac_rw;
- comp_t ac_minflt;
- comp_t ac_majflt;
- comp_t ac_swaps;
- char ac_comm[ACCT_COMM];
-};
-
-#define AFORK 1
-#define ASU 2
-#define ACORE 8
-#define AXSIG 16
-#define ACCT_BYTEORDER (128*(__BYTE_ORDER==__BIG_ENDIAN))
-#define AHZ 100
-
-int acct(const char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/auxv.h b/musl/sys/auxv.h
deleted file mode 100644
index ddccf57..0000000
--- a/musl/sys/auxv.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _SYS_AUXV_H
-#define _SYS_AUXV_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <elf.h>
-#include <bits/hwcap.h>
-
-unsigned long getauxval(unsigned long);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/cachectl.h b/musl/sys/cachectl.h
deleted file mode 100644
index f3b896a..0000000
--- a/musl/sys/cachectl.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _SYS_CACHECTL_H
-#define _SYS_CACHECTL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ICACHE (1<<0)
-#define DCACHE (1<<1)
-#define BCACHE (ICACHE|DCACHE)
-#define CACHEABLE 0
-#define UNCACHEABLE 1
-
-int cachectl(void *, int, int);
-int cacheflush(void *, int, int);
-int _flush_cache(void *, int, int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/dir.h b/musl/sys/dir.h
deleted file mode 100644
index 9ba1c79..0000000
--- a/musl/sys/dir.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <dirent.h>
-#define direct dirent
diff --git a/musl/sys/epoll.h b/musl/sys/epoll.h
deleted file mode 100644
index 5f975c4..0000000
--- a/musl/sys/epoll.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef _SYS_EPOLL_H
-#define _SYS_EPOLL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <fcntl.h>
-
-#define __NEED_sigset_t
-
-#include <bits/alltypes.h>
-
-#define EPOLL_CLOEXEC O_CLOEXEC
-#define EPOLL_NONBLOCK O_NONBLOCK
-
-enum EPOLL_EVENTS { __EPOLL_DUMMY };
-#define EPOLLIN 0x001
-#define EPOLLPRI 0x002
-#define EPOLLOUT 0x004
-#define EPOLLRDNORM 0x040
-#define EPOLLNVAL 0x020
-#define EPOLLRDBAND 0x080
-#define EPOLLWRNORM 0x100
-#define EPOLLWRBAND 0x200
-#define EPOLLMSG 0x400
-#define EPOLLERR 0x008
-#define EPOLLHUP 0x010
-#define EPOLLRDHUP 0x2000
-#define EPOLLEXCLUSIVE (1U<<28)
-#define EPOLLWAKEUP (1U<<29)
-#define EPOLLONESHOT (1U<<30)
-#define EPOLLET (1U<<31)
-
-#define EPOLL_CTL_ADD 1
-#define EPOLL_CTL_DEL 2
-#define EPOLL_CTL_MOD 3
-
-typedef union epoll_data {
- void *ptr;
- int fd;
- uint32_t u32;
- uint64_t u64;
-} epoll_data_t;
-
-struct epoll_event {
- uint32_t events;
- epoll_data_t data;
-}
-#ifdef __x86_64__
-__attribute__ ((__packed__))
-#endif
-;
-
-struct epoll_params {
- uint32_t busy_poll_usecs;
- uint16_t busy_poll_budget;
- uint8_t prefer_busy_poll;
-
- uint8_t __pad;
-};
-
-#define EPOLL_IOC_TYPE 0x8A
-#define EPIOCSPARAMS _IOW(EPOLL_IOC_TYPE, 0x01, struct epoll_params)
-#define EPIOCGPARAMS _IOR(EPOLL_IOC_TYPE, 0x02, struct epoll_params)
-
-int epoll_create(int);
-int epoll_create1(int);
-int epoll_ctl(int, int, int, struct epoll_event *);
-int epoll_wait(int, struct epoll_event *, int, int);
-int epoll_pwait(int, struct epoll_event *, int, int, const sigset_t *);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* sys/epoll.h */
diff --git a/musl/sys/errno.h b/musl/sys/errno.h
deleted file mode 100644
index 35a3e5a..0000000
--- a/musl/sys/errno.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#warning redirecting incorrect #include <sys/errno.h> to <errno.h>
-#include <errno.h>
diff --git a/musl/sys/eventfd.h b/musl/sys/eventfd.h
deleted file mode 100644
index dc5c88f..0000000
--- a/musl/sys/eventfd.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _SYS_EVENTFD_H
-#define _SYS_EVENTFD_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <fcntl.h>
-
-typedef uint64_t eventfd_t;
-
-#define EFD_SEMAPHORE 1
-#define EFD_CLOEXEC O_CLOEXEC
-#define EFD_NONBLOCK O_NONBLOCK
-
-int eventfd(unsigned int, int);
-int eventfd_read(int, eventfd_t *);
-int eventfd_write(int, eventfd_t);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* sys/eventfd.h */
diff --git a/musl/sys/fanotify.h b/musl/sys/fanotify.h
deleted file mode 100644
index 10e5f15..0000000
--- a/musl/sys/fanotify.h
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifndef _FANOTIFY_H
-#define _FANOTIFY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/statfs.h>
-
-struct fanotify_event_metadata {
- unsigned event_len;
- unsigned char vers;
- unsigned char reserved;
- unsigned short metadata_len;
- unsigned long long mask
-#ifdef __GNUC__
- __attribute__((__aligned__(8)))
-#endif
- ;
- int fd;
- int pid;
-};
-
-struct fanotify_event_info_header {
- unsigned char info_type;
- unsigned char pad;
- unsigned short len;
-};
-
-struct fanotify_event_info_fid {
- struct fanotify_event_info_header hdr;
- fsid_t fsid;
- unsigned char handle[];
-};
-
-struct fanotify_response {
- int fd;
- unsigned response;
-};
-
-#define FAN_ACCESS 0x01
-#define FAN_MODIFY 0x02
-#define FAN_ATTRIB 0x04
-#define FAN_CLOSE_WRITE 0x08
-#define FAN_CLOSE_NOWRITE 0x10
-#define FAN_OPEN 0x20
-#define FAN_MOVED_FROM 0x40
-#define FAN_MOVED_TO 0x80
-#define FAN_CREATE 0x100
-#define FAN_DELETE 0x200
-#define FAN_DELETE_SELF 0x400
-#define FAN_MOVE_SELF 0x800
-#define FAN_OPEN_EXEC 0x1000
-#define FAN_Q_OVERFLOW 0x4000
-#define FAN_OPEN_PERM 0x10000
-#define FAN_ACCESS_PERM 0x20000
-#define FAN_OPEN_EXEC_PERM 0x40000
-#define FAN_DIR_MODIFY 0x00080000
-#define FAN_EVENT_ON_CHILD 0x08000000
-#define FAN_ONDIR 0x40000000
-#define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)
-#define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO)
-#define FAN_CLOEXEC 0x01
-#define FAN_NONBLOCK 0x02
-#define FAN_CLASS_NOTIF 0
-#define FAN_CLASS_CONTENT 0x04
-#define FAN_CLASS_PRE_CONTENT 0x08
-#define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | FAN_CLASS_PRE_CONTENT)
-#define FAN_UNLIMITED_QUEUE 0x10
-#define FAN_UNLIMITED_MARKS 0x20
-#define FAN_ENABLE_AUDIT 0x40
-#define FAN_REPORT_TID 0x100
-#define FAN_REPORT_FID 0x200
-#define FAN_REPORT_DIR_FID 0x00000400
-#define FAN_REPORT_NAME 0x00000800
-#define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
-#define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)
-#define FAN_MARK_ADD 0x01
-#define FAN_MARK_REMOVE 0x02
-#define FAN_MARK_DONT_FOLLOW 0x04
-#define FAN_MARK_ONLYDIR 0x08
-#define FAN_MARK_IGNORED_MASK 0x20
-#define FAN_MARK_IGNORED_SURV_MODIFY 0x40
-#define FAN_MARK_FLUSH 0x80
-#define FAN_MARK_INODE 0x00
-#define FAN_MARK_MOUNT 0x10
-#define FAN_MARK_FILESYSTEM 0x100
-#define FAN_MARK_TYPE_MASK (FAN_MARK_INODE | FAN_MARK_MOUNT | FAN_MARK_FILESYSTEM)
-#define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD | FAN_MARK_REMOVE | FAN_MARK_DONT_FOLLOW | FAN_MARK_ONLYDIR | FAN_MARK_MOUNT | FAN_MARK_IGNORED_MASK | FAN_MARK_IGNORED_SURV_MODIFY | FAN_MARK_FLUSH)
-#define FAN_ALL_EVENTS (FAN_ACCESS | FAN_MODIFY | FAN_CLOSE | FAN_OPEN)
-#define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM | FAN_ACCESS_PERM)
-#define FAN_ALL_OUTGOING_EVENTS (FAN_ALL_EVENTS | FAN_ALL_PERM_EVENTS | FAN_Q_OVERFLOW)
-#define FANOTIFY_METADATA_VERSION 3
-#define FAN_EVENT_INFO_TYPE_FID 1
-#define FAN_EVENT_INFO_TYPE_DFID_NAME 2
-#define FAN_EVENT_INFO_TYPE_DFID 3
-#define FAN_ALLOW 0x01
-#define FAN_DENY 0x02
-#define FAN_AUDIT 0x10
-#define FAN_NOFD -1
-#define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
-#define FAN_EVENT_NEXT(meta, len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata*)(((char *)(meta)) + (meta)->event_len))
-#define FAN_EVENT_OK(meta, len) ((long)(len) >= (long)FAN_EVENT_METADATA_LEN && (long)(meta)->event_len >= (long)FAN_EVENT_METADATA_LEN && (long)(meta)->event_len <= (long)(len))
-
-int fanotify_init(unsigned, unsigned);
-int fanotify_mark(int, unsigned, unsigned long long, int, const char *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/fcntl.h b/musl/sys/fcntl.h
deleted file mode 100644
index 3dd928e..0000000
--- a/musl/sys/fcntl.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#warning redirecting incorrect #include <sys/fcntl.h> to <fcntl.h>
-#include <fcntl.h>
diff --git a/musl/sys/file.h b/musl/sys/file.h
deleted file mode 100644
index 4fc83b9..0000000
--- a/musl/sys/file.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _SYS_FILE_H
-#define _SYS_FILE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define LOCK_SH 1
-#define LOCK_EX 2
-#define LOCK_NB 4
-#define LOCK_UN 8
-
-#define L_SET 0
-#define L_INCR 1
-#define L_XTND 2
-
-int flock(int, int);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/fsuid.h b/musl/sys/fsuid.h
deleted file mode 100644
index c7a9b8f..0000000
--- a/musl/sys/fsuid.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _SYS_FSUID_H
-#define _SYS_FSUID_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_uid_t
-#define __NEED_gid_t
-
-#include <bits/alltypes.h>
-
-int setfsuid(uid_t);
-int setfsgid(gid_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/inotify.h b/musl/sys/inotify.h
deleted file mode 100644
index 69b5863..0000000
--- a/musl/sys/inotify.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef _SYS_INOTIFY_H
-#define _SYS_INOTIFY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <fcntl.h>
-
-struct inotify_event {
- int wd;
- uint32_t mask, cookie, len;
- char name[];
-};
-
-#define IN_CLOEXEC O_CLOEXEC
-#define IN_NONBLOCK O_NONBLOCK
-
-#define IN_ACCESS 0x00000001
-#define IN_MODIFY 0x00000002
-#define IN_ATTRIB 0x00000004
-#define IN_CLOSE_WRITE 0x00000008
-#define IN_CLOSE_NOWRITE 0x00000010
-#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
-#define IN_OPEN 0x00000020
-#define IN_MOVED_FROM 0x00000040
-#define IN_MOVED_TO 0x00000080
-#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO)
-#define IN_CREATE 0x00000100
-#define IN_DELETE 0x00000200
-#define IN_DELETE_SELF 0x00000400
-#define IN_MOVE_SELF 0x00000800
-#define IN_ALL_EVENTS 0x00000fff
-
-#define IN_UNMOUNT 0x00002000
-#define IN_Q_OVERFLOW 0x00004000
-#define IN_IGNORED 0x00008000
-
-#define IN_ONLYDIR 0x01000000
-#define IN_DONT_FOLLOW 0x02000000
-#define IN_EXCL_UNLINK 0x04000000
-#define IN_MASK_CREATE 0x10000000
-#define IN_MASK_ADD 0x20000000
-
-#define IN_ISDIR 0x40000000
-#define IN_ONESHOT 0x80000000
-
-int inotify_init(void);
-int inotify_init1(int);
-int inotify_add_watch(int, const char *, uint32_t);
-int inotify_rm_watch(int, int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/io.h b/musl/sys/io.h
deleted file mode 100644
index 16658ce..0000000
--- a/musl/sys/io.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _SYS_IO_H
-#define _SYS_IO_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#include <bits/io.h>
-
-int iopl(int);
-int ioperm(unsigned long, unsigned long, int);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/ioctl.h b/musl/sys/ioctl.h
deleted file mode 100644
index a9a2346..0000000
--- a/musl/sys/ioctl.h
+++ /dev/null
@@ -1,120 +0,0 @@
-#ifndef _SYS_IOCTL_H
-#define _SYS_IOCTL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_struct_winsize
-
-#include <bits/alltypes.h>
-#include <bits/ioctl.h>
-
-#define N_TTY 0
-#define N_SLIP 1
-#define N_MOUSE 2
-#define N_PPP 3
-#define N_STRIP 4
-#define N_AX25 5
-#define N_X25 6
-#define N_6PACK 7
-#define N_MASC 8
-#define N_R3964 9
-#define N_PROFIBUS_FDL 10
-#define N_IRDA 11
-#define N_SMSBLOCK 12
-#define N_HDLC 13
-#define N_SYNC_PPP 14
-#define N_HCI 15
-#define N_GIGASET_M101 16
-#define N_SLCAN 17
-#define N_PPS 18
-#define N_V253 19
-#define N_CAIF 20
-#define N_GSM0710 21
-#define N_TI_WL 22
-#define N_TRACESINK 23
-#define N_TRACEROUTER 24
-#define N_NCI 25
-#define N_SPEAKUP 26
-#define N_NULL 27
-
-#define TIOCPKT_DATA 0
-#define TIOCPKT_FLUSHREAD 1
-#define TIOCPKT_FLUSHWRITE 2
-#define TIOCPKT_STOP 4
-#define TIOCPKT_START 8
-#define TIOCPKT_NOSTOP 16
-#define TIOCPKT_DOSTOP 32
-#define TIOCPKT_IOCTL 64
-
-#define TIOCSER_TEMT 1
-
-#define SIOCADDRT 0x890B
-#define SIOCDELRT 0x890C
-#define SIOCRTMSG 0x890D
-
-#define SIOCGIFNAME 0x8910
-#define SIOCSIFLINK 0x8911
-#define SIOCGIFCONF 0x8912
-#define SIOCGIFFLAGS 0x8913
-#define SIOCSIFFLAGS 0x8914
-#define SIOCGIFADDR 0x8915
-#define SIOCSIFADDR 0x8916
-#define SIOCGIFDSTADDR 0x8917
-#define SIOCSIFDSTADDR 0x8918
-#define SIOCGIFBRDADDR 0x8919
-#define SIOCSIFBRDADDR 0x891a
-#define SIOCGIFNETMASK 0x891b
-#define SIOCSIFNETMASK 0x891c
-#define SIOCGIFMETRIC 0x891d
-#define SIOCSIFMETRIC 0x891e
-#define SIOCGIFMEM 0x891f
-#define SIOCSIFMEM 0x8920
-#define SIOCGIFMTU 0x8921
-#define SIOCSIFMTU 0x8922
-#define SIOCSIFNAME 0x8923
-#define SIOCSIFHWADDR 0x8924
-#define SIOCGIFENCAP 0x8925
-#define SIOCSIFENCAP 0x8926
-#define SIOCGIFHWADDR 0x8927
-#define SIOCGIFSLAVE 0x8929
-#define SIOCSIFSLAVE 0x8930
-#define SIOCADDMULTI 0x8931
-#define SIOCDELMULTI 0x8932
-#define SIOCGIFINDEX 0x8933
-#define SIOGIFINDEX SIOCGIFINDEX
-#define SIOCSIFPFLAGS 0x8934
-#define SIOCGIFPFLAGS 0x8935
-#define SIOCDIFADDR 0x8936
-#define SIOCSIFHWBROADCAST 0x8937
-#define SIOCGIFCOUNT 0x8938
-
-#define SIOCGIFBR 0x8940
-#define SIOCSIFBR 0x8941
-
-#define SIOCGIFTXQLEN 0x8942
-#define SIOCSIFTXQLEN 0x8943
-
-#define SIOCDARP 0x8953
-#define SIOCGARP 0x8954
-#define SIOCSARP 0x8955
-
-#define SIOCDRARP 0x8960
-#define SIOCGRARP 0x8961
-#define SIOCSRARP 0x8962
-
-#define SIOCGIFMAP 0x8970
-#define SIOCSIFMAP 0x8971
-
-#define SIOCADDDLCI 0x8980
-#define SIOCDELDLCI 0x8981
-
-#define SIOCDEVPRIVATE 0x89F0
-#define SIOCPROTOPRIVATE 0x89E0
-
-int ioctl (int, int, ...);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/ipc.h b/musl/sys/ipc.h
deleted file mode 100644
index 9e366b7..0000000
--- a/musl/sys/ipc.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef _SYS_IPC_H
-#define _SYS_IPC_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_uid_t
-#define __NEED_gid_t
-#define __NEED_mode_t
-#define __NEED_key_t
-
-#include <bits/alltypes.h>
-
-#define __ipc_perm_key __key
-#define __ipc_perm_seq __seq
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define __key key
-#define __seq seq
-#endif
-
-#include <bits/ipc.h>
-#include <bits/ipcstat.h>
-
-#define IPC_CREAT 01000
-#define IPC_EXCL 02000
-#define IPC_NOWAIT 04000
-
-#define IPC_RMID 0
-#define IPC_SET 1
-#define IPC_INFO 3
-
-#define IPC_PRIVATE ((key_t) 0)
-
-key_t ftok (const char *, int);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/kd.h b/musl/sys/kd.h
deleted file mode 100644
index 42122b9..0000000
--- a/musl/sys/kd.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <bits/kd.h>
diff --git a/musl/sys/klog.h b/musl/sys/klog.h
deleted file mode 100644
index aa66684..0000000
--- a/musl/sys/klog.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef _SYS_KLOG_H
-#define _SYS_KLOG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int klogctl (int, char *, int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/membarrier.h b/musl/sys/membarrier.h
deleted file mode 100644
index 11193ed..0000000
--- a/musl/sys/membarrier.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _SYS_MEMBARRIER_H
-#define _SYS_MEMBARRIER_H
-
-#define MEMBARRIER_CMD_QUERY 0
-#define MEMBARRIER_CMD_GLOBAL 1
-#define MEMBARRIER_CMD_GLOBAL_EXPEDITED 2
-#define MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED 4
-#define MEMBARRIER_CMD_PRIVATE_EXPEDITED 8
-#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED 16
-#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE 32
-#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE 64
-#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ 128
-#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ 256
-
-#define MEMBARRIER_CMD_SHARED MEMBARRIER_CMD_GLOBAL
-
-#define MEMBARRIER_CMD_FLAG_CPU 1
-
-int membarrier(int, int);
-
-#endif
diff --git a/musl/sys/mman.h b/musl/sys/mman.h
deleted file mode 100644
index 3d5d0f9..0000000
--- a/musl/sys/mman.h
+++ /dev/null
@@ -1,152 +0,0 @@
-#ifndef _SYS_MMAN_H
-#define _SYS_MMAN_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_mode_t
-#define __NEED_size_t
-#define __NEED_off_t
-
-#if defined(_GNU_SOURCE)
-#define __NEED_ssize_t
-#endif
-
-#include <bits/alltypes.h>
-
-#define MAP_FAILED ((void *) -1)
-
-#define MAP_SHARED 0x01
-#define MAP_PRIVATE 0x02
-#define MAP_SHARED_VALIDATE 0x03
-#define MAP_TYPE 0x0f
-#define MAP_FIXED 0x10
-#define MAP_ANON 0x20
-#define MAP_ANONYMOUS MAP_ANON
-#define MAP_NORESERVE 0x4000
-#define MAP_GROWSDOWN 0x0100
-#define MAP_DENYWRITE 0x0800
-#define MAP_EXECUTABLE 0x1000
-#define MAP_LOCKED 0x2000
-#define MAP_POPULATE 0x8000
-#define MAP_NONBLOCK 0x10000
-#define MAP_STACK 0x20000
-#define MAP_HUGETLB 0x40000
-#define MAP_SYNC 0x80000
-#define MAP_FIXED_NOREPLACE 0x100000
-#define MAP_FILE 0
-
-#define MAP_HUGE_SHIFT 26
-#define MAP_HUGE_MASK 0x3f
-#define MAP_HUGE_16KB (14 << 26)
-#define MAP_HUGE_64KB (16 << 26)
-#define MAP_HUGE_512KB (19 << 26)
-#define MAP_HUGE_1MB (20 << 26)
-#define MAP_HUGE_2MB (21 << 26)
-#define MAP_HUGE_8MB (23 << 26)
-#define MAP_HUGE_16MB (24 << 26)
-#define MAP_HUGE_32MB (25 << 26)
-#define MAP_HUGE_256MB (28 << 26)
-#define MAP_HUGE_512MB (29 << 26)
-#define MAP_HUGE_1GB (30 << 26)
-#define MAP_HUGE_2GB (31 << 26)
-#define MAP_HUGE_16GB (34U << 26)
-
-#define PROT_NONE 0
-#define PROT_READ 1
-#define PROT_WRITE 2
-#define PROT_EXEC 4
-#define PROT_GROWSDOWN 0x01000000
-#define PROT_GROWSUP 0x02000000
-
-#define MS_ASYNC 1
-#define MS_INVALIDATE 2
-#define MS_SYNC 4
-
-#define MCL_CURRENT 1
-#define MCL_FUTURE 2
-#define MCL_ONFAULT 4
-
-#define POSIX_MADV_NORMAL 0
-#define POSIX_MADV_RANDOM 1
-#define POSIX_MADV_SEQUENTIAL 2
-#define POSIX_MADV_WILLNEED 3
-#define POSIX_MADV_DONTNEED 4
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define MADV_NORMAL 0
-#define MADV_RANDOM 1
-#define MADV_SEQUENTIAL 2
-#define MADV_WILLNEED 3
-#define MADV_DONTNEED 4
-#define MADV_FREE 8
-#define MADV_REMOVE 9
-#define MADV_DONTFORK 10
-#define MADV_DOFORK 11
-#define MADV_MERGEABLE 12
-#define MADV_UNMERGEABLE 13
-#define MADV_HUGEPAGE 14
-#define MADV_NOHUGEPAGE 15
-#define MADV_DONTDUMP 16
-#define MADV_DODUMP 17
-#define MADV_WIPEONFORK 18
-#define MADV_KEEPONFORK 19
-#define MADV_COLD 20
-#define MADV_PAGEOUT 21
-#define MADV_HWPOISON 100
-#define MADV_SOFT_OFFLINE 101
-#endif
-
-#ifdef _GNU_SOURCE
-#define MREMAP_MAYMOVE 1
-#define MREMAP_FIXED 2
-#define MREMAP_DONTUNMAP 4
-
-#define MLOCK_ONFAULT 0x01
-
-#define MFD_CLOEXEC 0x0001U
-#define MFD_ALLOW_SEALING 0x0002U
-#define MFD_HUGETLB 0x0004U
-#endif
-
-#include <bits/mman.h>
-
-void *mmap (void *, size_t, int, int, int, off_t);
-int munmap (void *, size_t);
-
-int mprotect (void *, size_t, int);
-int msync (void *, size_t, int);
-
-int posix_madvise (void *, size_t, int);
-
-int mlock (const void *, size_t);
-int munlock (const void *, size_t);
-int mlockall (int);
-int munlockall (void);
-
-#ifdef _GNU_SOURCE
-void *mremap (void *, size_t, size_t, int, ...);
-int remap_file_pages (void *, size_t, int, size_t, int);
-int memfd_create (const char *, unsigned);
-int mlock2 (const void *, size_t, unsigned);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-int madvise (void *, size_t, int);
-int mincore (void *, size_t, unsigned char *);
-#endif
-
-int shm_open (const char *, int, mode_t);
-int shm_unlink (const char *);
-
-#if defined(_LARGEFILE64_SOURCE)
-#define mmap64 mmap
-#define off64_t off_t
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/mount.h b/musl/sys/mount.h
deleted file mode 100644
index 09bd6e9..0000000
--- a/musl/sys/mount.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef _SYS_MOUNT_H
-#define _SYS_MOUNT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/ioctl.h>
-
-#define BLKROSET _IO(0x12, 93)
-#define BLKROGET _IO(0x12, 94)
-#define BLKRRPART _IO(0x12, 95)
-#define BLKGETSIZE _IO(0x12, 96)
-#define BLKFLSBUF _IO(0x12, 97)
-#define BLKRASET _IO(0x12, 98)
-#define BLKRAGET _IO(0x12, 99)
-#define BLKFRASET _IO(0x12,100)
-#define BLKFRAGET _IO(0x12,101)
-#define BLKSECTSET _IO(0x12,102)
-#define BLKSECTGET _IO(0x12,103)
-#define BLKSSZGET _IO(0x12,104)
-#define BLKBSZGET _IOR(0x12,112,size_t)
-#define BLKBSZSET _IOW(0x12,113,size_t)
-#define BLKGETSIZE64 _IOR(0x12,114,size_t)
-
-#define MS_RDONLY 1
-#define MS_NOSUID 2
-#define MS_NODEV 4
-#define MS_NOEXEC 8
-#define MS_SYNCHRONOUS 16
-#define MS_REMOUNT 32
-#define MS_MANDLOCK 64
-#define MS_DIRSYNC 128
-#define MS_NOSYMFOLLOW 256
-#define MS_NOATIME 1024
-#define MS_NODIRATIME 2048
-#define MS_BIND 4096
-#define MS_MOVE 8192
-#define MS_REC 16384
-#define MS_SILENT 32768
-#define MS_POSIXACL (1<<16)
-#define MS_UNBINDABLE (1<<17)
-#define MS_PRIVATE (1<<18)
-#define MS_SLAVE (1<<19)
-#define MS_SHARED (1<<20)
-#define MS_RELATIME (1<<21)
-#define MS_KERNMOUNT (1<<22)
-#define MS_I_VERSION (1<<23)
-#define MS_STRICTATIME (1<<24)
-#define MS_LAZYTIME (1<<25)
-#define MS_NOREMOTELOCK (1<<27)
-#define MS_NOSEC (1<<28)
-#define MS_BORN (1<<29)
-#define MS_ACTIVE (1<<30)
-#define MS_NOUSER (1U<<31)
-
-#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|MS_LAZYTIME)
-
-#define MS_MGC_VAL 0xc0ed0000
-#define MS_MGC_MSK 0xffff0000
-
-#define MNT_FORCE 1
-#define MNT_DETACH 2
-#define MNT_EXPIRE 4
-#define UMOUNT_NOFOLLOW 8
-
-int mount(const char *, const char *, const char *, unsigned long, const void *);
-int umount(const char *);
-int umount2(const char *, int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/msg.h b/musl/sys/msg.h
deleted file mode 100644
index db5c62a..0000000
--- a/musl/sys/msg.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef _SYS_MSG_H
-#define _SYS_MSG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/ipc.h>
-
-#define __NEED_pid_t
-#define __NEED_key_t
-#define __NEED_time_t
-#define __NEED_size_t
-#define __NEED_ssize_t
-
-#include <bits/alltypes.h>
-
-typedef unsigned long msgqnum_t;
-typedef unsigned long msglen_t;
-
-#include <bits/msg.h>
-
-#define __msg_cbytes msg_cbytes
-
-#define MSG_NOERROR 010000
-#define MSG_EXCEPT 020000
-
-#define MSG_STAT (11 | (IPC_STAT & 0x100))
-#define MSG_INFO 12
-#define MSG_STAT_ANY (13 | (IPC_STAT & 0x100))
-
-struct msginfo {
- int msgpool, msgmap, msgmax, msgmnb, msgmni, msgssz, msgtql;
- unsigned short msgseg;
-};
-
-int msgctl (int, int, struct msqid_ds *);
-int msgget (key_t, int);
-ssize_t msgrcv (int, void *, size_t, long, int);
-int msgsnd (int, const void *, size_t, int);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-struct msgbuf {
- long mtype;
- char mtext[1];
-};
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/mtio.h b/musl/sys/mtio.h
deleted file mode 100644
index f16a529..0000000
--- a/musl/sys/mtio.h
+++ /dev/null
@@ -1,188 +0,0 @@
-#ifndef _SYS_MTIO_H
-#define _SYS_MTIO_H
-
-#include <sys/types.h>
-#include <sys/ioctl.h>
-
-struct mtop {
- short mt_op;
- int mt_count;
-};
-
-#define _IOT_mtop _IOT (_IOTS (short), 1, _IOTS (int), 1, 0, 0)
-#define _IOT_mtget _IOT (_IOTS (long), 7, 0, 0, 0, 0)
-#define _IOT_mtpos _IOT_SIMPLE (long)
-#define _IOT_mtconfiginfo _IOT (_IOTS (long), 2, _IOTS (short), 3, _IOTS (long), 1)
-
-
-#define MTRESET 0
-#define MTFSF 1
-#define MTBSF 2
-#define MTFSR 3
-#define MTBSR 4
-#define MTWEOF 5
-#define MTREW 6
-#define MTOFFL 7
-#define MTNOP 8
-#define MTRETEN 9
-#define MTBSFM 10
-#define MTFSFM 11
-#define MTEOM 12
-#define MTERASE 13
-#define MTRAS1 14
-#define MTRAS2 15
-#define MTRAS3 16
-#define MTSETBLK 20
-#define MTSETDENSITY 21
-#define MTSEEK 22
-#define MTTELL 23
-#define MTSETDRVBUFFER 24
-#define MTFSS 25
-#define MTBSS 26
-#define MTWSM 27
-#define MTLOCK 28
-#define MTUNLOCK 29
-#define MTLOAD 30
-#define MTUNLOAD 31
-#define MTCOMPRESSION 32
-#define MTSETPART 33
-#define MTMKPART 34
-
-struct mtget {
- long mt_type;
- long mt_resid;
- long mt_dsreg;
- long mt_gstat;
- long mt_erreg;
- int mt_fileno;
- int mt_blkno;
-};
-
-#define MT_ISUNKNOWN 0x01
-#define MT_ISQIC02 0x02
-#define MT_ISWT5150 0x03
-#define MT_ISARCHIVE_5945L2 0x04
-#define MT_ISCMSJ500 0x05
-#define MT_ISTDC3610 0x06
-#define MT_ISARCHIVE_VP60I 0x07
-#define MT_ISARCHIVE_2150L 0x08
-#define MT_ISARCHIVE_2060L 0x09
-#define MT_ISARCHIVESC499 0x0A
-#define MT_ISQIC02_ALL_FEATURES 0x0F
-#define MT_ISWT5099EEN24 0x11
-#define MT_ISTEAC_MT2ST 0x12
-#define MT_ISEVEREX_FT40A 0x32
-#define MT_ISDDS1 0x51
-#define MT_ISDDS2 0x52
-#define MT_ISSCSI1 0x71
-#define MT_ISSCSI2 0x72
-#define MT_ISFTAPE_UNKNOWN 0x800000
-#define MT_ISFTAPE_FLAG 0x800000
-
-struct mt_tape_info {
- long t_type;
- char *t_name;
-};
-
-#define MT_TAPE_INFO \
-{ \
- {MT_ISUNKNOWN, "Unknown type of tape device"}, \
- {MT_ISQIC02, "Generic QIC-02 tape streamer"}, \
- {MT_ISWT5150, "Wangtek 5150, QIC-150"}, \
- {MT_ISARCHIVE_5945L2, "Archive 5945L-2"}, \
- {MT_ISCMSJ500, "CMS Jumbo 500"}, \
- {MT_ISTDC3610, "Tandberg TDC 3610, QIC-24"}, \
- {MT_ISARCHIVE_VP60I, "Archive VP60i, QIC-02"}, \
- {MT_ISARCHIVE_2150L, "Archive Viper 2150L"}, \
- {MT_ISARCHIVE_2060L, "Archive Viper 2060L"}, \
- {MT_ISARCHIVESC499, "Archive SC-499 QIC-36 controller"}, \
- {MT_ISQIC02_ALL_FEATURES, "Generic QIC-02 tape, all features"}, \
- {MT_ISWT5099EEN24, "Wangtek 5099-een24, 60MB"}, \
- {MT_ISTEAC_MT2ST, "Teac MT-2ST 155mb data cassette drive"}, \
- {MT_ISEVEREX_FT40A, "Everex FT40A, QIC-40"}, \
- {MT_ISSCSI1, "Generic SCSI-1 tape"}, \
- {MT_ISSCSI2, "Generic SCSI-2 tape"}, \
- {0, 0} \
-}
-
-struct mtpos {
- long mt_blkno;
-};
-
-struct mtconfiginfo {
- long mt_type;
- long ifc_type;
- unsigned short irqnr;
- unsigned short dmanr;
- unsigned short port;
- unsigned long debug;
- unsigned have_dens:1;
- unsigned have_bsf:1;
- unsigned have_fsr:1;
- unsigned have_bsr:1;
- unsigned have_eod:1;
- unsigned have_seek:1;
- unsigned have_tell:1;
- unsigned have_ras1:1;
- unsigned have_ras2:1;
- unsigned have_ras3:1;
- unsigned have_qfa:1;
- unsigned pad1:5;
- char reserved[10];
-};
-
-#define MTIOCTOP _IOW('m', 1, struct mtop)
-#define MTIOCGET _IOR('m', 2, struct mtget)
-#define MTIOCPOS _IOR('m', 3, struct mtpos)
-
-#define MTIOCGETCONFIG _IOR('m', 4, struct mtconfiginfo)
-#define MTIOCSETCONFIG _IOW('m', 5, struct mtconfiginfo)
-
-#define GMT_EOF(x) ((x) & 0x80000000)
-#define GMT_BOT(x) ((x) & 0x40000000)
-#define GMT_EOT(x) ((x) & 0x20000000)
-#define GMT_SM(x) ((x) & 0x10000000)
-#define GMT_EOD(x) ((x) & 0x08000000)
-#define GMT_WR_PROT(x) ((x) & 0x04000000)
-#define GMT_ONLINE(x) ((x) & 0x01000000)
-#define GMT_D_6250(x) ((x) & 0x00800000)
-#define GMT_D_1600(x) ((x) & 0x00400000)
-#define GMT_D_800(x) ((x) & 0x00200000)
-#define GMT_DR_OPEN(x) ((x) & 0x00040000)
-#define GMT_IM_REP_EN(x) ((x) & 0x00010000)
-
-#define MT_ST_BLKSIZE_SHIFT 0
-#define MT_ST_BLKSIZE_MASK 0xffffff
-#define MT_ST_DENSITY_SHIFT 24
-#define MT_ST_DENSITY_MASK 0xff000000
-#define MT_ST_SOFTERR_SHIFT 0
-#define MT_ST_SOFTERR_MASK 0xffff
-#define MT_ST_OPTIONS 0xf0000000
-#define MT_ST_BOOLEANS 0x10000000
-#define MT_ST_SETBOOLEANS 0x30000000
-#define MT_ST_CLEARBOOLEANS 0x40000000
-#define MT_ST_WRITE_THRESHOLD 0x20000000
-#define MT_ST_DEF_BLKSIZE 0x50000000
-#define MT_ST_DEF_OPTIONS 0x60000000
-#define MT_ST_BUFFER_WRITES 0x1
-#define MT_ST_ASYNC_WRITES 0x2
-#define MT_ST_READ_AHEAD 0x4
-#define MT_ST_DEBUGGING 0x8
-#define MT_ST_TWO_FM 0x10
-#define MT_ST_FAST_MTEOM 0x20
-#define MT_ST_AUTO_LOCK 0x40
-#define MT_ST_DEF_WRITES 0x80
-#define MT_ST_CAN_BSR 0x100
-#define MT_ST_NO_BLKLIMS 0x200
-#define MT_ST_CAN_PARTITIONS 0x400
-#define MT_ST_SCSI2LOGICAL 0x800
-#define MT_ST_CLEAR_DEFAULT 0xfffff
-#define MT_ST_DEF_DENSITY (MT_ST_DEF_OPTIONS | 0x100000)
-#define MT_ST_DEF_COMPRESSION (MT_ST_DEF_OPTIONS | 0x200000)
-#define MT_ST_DEF_DRVBUFFER (MT_ST_DEF_OPTIONS | 0x300000)
-#define MT_ST_HPLOADER_OFFSET 10000
-#ifndef DEFTAPE
-# define DEFTAPE "/dev/tape"
-#endif
-
-#endif
diff --git a/musl/sys/param.h b/musl/sys/param.h
deleted file mode 100644
index ce6b801..0000000
--- a/musl/sys/param.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _SYS_PARAM_H
-#define _SYS_PARAM_H
-
-#define MAXSYMLINKS 20
-#define MAXHOSTNAMELEN 64
-#define MAXNAMLEN 255
-#define MAXPATHLEN 4096
-#define NBBY 8
-#define NGROUPS 32
-#define CANBSIZ 255
-#define NOFILE 256
-#define NCARGS 131072
-#define DEV_BSIZE 512
-#define NOGROUP (-1)
-
-#undef MIN
-#undef MAX
-#define MIN(a,b) (((a)<(b))?(a):(b))
-#define MAX(a,b) (((a)>(b))?(a):(b))
-
-#define __bitop(x,i,o) ((x)[(i)/8] o (1<<(i)%8))
-#define setbit(x,i) __bitop(x,i,|=)
-#define clrbit(x,i) __bitop(x,i,&=~)
-#define isset(x,i) __bitop(x,i,&)
-#define isclr(x,i) !isset(x,i)
-
-#define howmany(n,d) (((n)+((d)-1))/(d))
-#define roundup(n,d) (howmany(n,d)*(d))
-#define powerof2(n) !(((n)-1) & (n))
-
-#include <sys/resource.h>
-#include <endian.h>
-#include <limits.h>
-
-#endif
diff --git a/musl/sys/personality.h b/musl/sys/personality.h
deleted file mode 100644
index 411dc47..0000000
--- a/musl/sys/personality.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef _PERSONALITY_H
-#define _PERSONALITY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define UNAME26 0x0020000
-#define ADDR_NO_RANDOMIZE 0x0040000
-#define FDPIC_FUNCPTRS 0x0080000
-#define MMAP_PAGE_ZERO 0x0100000
-#define ADDR_COMPAT_LAYOUT 0x0200000
-#define READ_IMPLIES_EXEC 0x0400000
-#define ADDR_LIMIT_32BIT 0x0800000
-#define SHORT_INODE 0x1000000
-#define WHOLE_SECONDS 0x2000000
-#define STICKY_TIMEOUTS 0x4000000
-#define ADDR_LIMIT_3GB 0x8000000
-
-#define PER_LINUX 0
-#define PER_LINUX_32BIT ADDR_LIMIT_32BIT
-#define PER_LINUX_FDPIC FDPIC_FUNCPTRS
-#define PER_SVR4 (1 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)
-#define PER_SVR3 (2 | STICKY_TIMEOUTS | SHORT_INODE)
-#define PER_SCOSVR3 (3 | STICKY_TIMEOUTS | WHOLE_SECONDS | SHORT_INODE)
-#define PER_OSR5 (3 | STICKY_TIMEOUTS | WHOLE_SECONDS)
-#define PER_WYSEV386 (4 | STICKY_TIMEOUTS | SHORT_INODE)
-#define PER_ISCR4 (5 | STICKY_TIMEOUTS)
-#define PER_BSD 6
-#define PER_SUNOS (6 | STICKY_TIMEOUTS)
-#define PER_XENIX (7 | STICKY_TIMEOUTS | SHORT_INODE)
-#define PER_LINUX32 8
-#define PER_LINUX32_3GB (8 | ADDR_LIMIT_3GB)
-#define PER_IRIX32 (9 | STICKY_TIMEOUTS)
-#define PER_IRIXN32 (0xa | STICKY_TIMEOUTS)
-#define PER_IRIX64 (0x0b | STICKY_TIMEOUTS)
-#define PER_RISCOS 0xc
-#define PER_SOLARIS (0xd | STICKY_TIMEOUTS)
-#define PER_UW7 (0xe | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)
-#define PER_OSF4 0xf
-#define PER_HPUX 0x10
-#define PER_MASK 0xff
-
-int personality(unsigned long);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/poll.h b/musl/sys/poll.h
deleted file mode 100644
index 9917040..0000000
--- a/musl/sys/poll.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#warning redirecting incorrect #include <sys/poll.h> to <poll.h>
-#include <poll.h>
diff --git a/musl/sys/prctl.h b/musl/sys/prctl.h
deleted file mode 100644
index 087a75c..0000000
--- a/musl/sys/prctl.h
+++ /dev/null
@@ -1,186 +0,0 @@
-#ifndef _SYS_PRCTL_H
-#define _SYS_PRCTL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-
-#define PR_SET_PDEATHSIG 1
-#define PR_GET_PDEATHSIG 2
-#define PR_GET_DUMPABLE 3
-#define PR_SET_DUMPABLE 4
-#define PR_GET_UNALIGN 5
-#define PR_SET_UNALIGN 6
-#define PR_UNALIGN_NOPRINT 1
-#define PR_UNALIGN_SIGBUS 2
-#define PR_GET_KEEPCAPS 7
-#define PR_SET_KEEPCAPS 8
-#define PR_GET_FPEMU 9
-#define PR_SET_FPEMU 10
-#define PR_FPEMU_NOPRINT 1
-#define PR_FPEMU_SIGFPE 2
-#define PR_GET_FPEXC 11
-#define PR_SET_FPEXC 12
-#define PR_FP_EXC_SW_ENABLE 0x80
-#define PR_FP_EXC_DIV 0x010000
-#define PR_FP_EXC_OVF 0x020000
-#define PR_FP_EXC_UND 0x040000
-#define PR_FP_EXC_RES 0x080000
-#define PR_FP_EXC_INV 0x100000
-#define PR_FP_EXC_DISABLED 0
-#define PR_FP_EXC_NONRECOV 1
-#define PR_FP_EXC_ASYNC 2
-#define PR_FP_EXC_PRECISE 3
-#define PR_GET_TIMING 13
-#define PR_SET_TIMING 14
-#define PR_TIMING_STATISTICAL 0
-#define PR_TIMING_TIMESTAMP 1
-#define PR_SET_NAME 15
-#define PR_GET_NAME 16
-#define PR_GET_ENDIAN 19
-#define PR_SET_ENDIAN 20
-#define PR_ENDIAN_BIG 0
-#define PR_ENDIAN_LITTLE 1
-#define PR_ENDIAN_PPC_LITTLE 2
-#define PR_GET_SECCOMP 21
-#define PR_SET_SECCOMP 22
-#define PR_CAPBSET_READ 23
-#define PR_CAPBSET_DROP 24
-#define PR_GET_TSC 25
-#define PR_SET_TSC 26
-#define PR_TSC_ENABLE 1
-#define PR_TSC_SIGSEGV 2
-#define PR_GET_SECUREBITS 27
-#define PR_SET_SECUREBITS 28
-#define PR_SET_TIMERSLACK 29
-#define PR_GET_TIMERSLACK 30
-
-#define PR_TASK_PERF_EVENTS_DISABLE 31
-#define PR_TASK_PERF_EVENTS_ENABLE 32
-
-#define PR_MCE_KILL 33
-#define PR_MCE_KILL_CLEAR 0
-#define PR_MCE_KILL_SET 1
-#define PR_MCE_KILL_LATE 0
-#define PR_MCE_KILL_EARLY 1
-#define PR_MCE_KILL_DEFAULT 2
-#define PR_MCE_KILL_GET 34
-
-#define PR_SET_MM 35
-#define PR_SET_MM_START_CODE 1
-#define PR_SET_MM_END_CODE 2
-#define PR_SET_MM_START_DATA 3
-#define PR_SET_MM_END_DATA 4
-#define PR_SET_MM_START_STACK 5
-#define PR_SET_MM_START_BRK 6
-#define PR_SET_MM_BRK 7
-#define PR_SET_MM_ARG_START 8
-#define PR_SET_MM_ARG_END 9
-#define PR_SET_MM_ENV_START 10
-#define PR_SET_MM_ENV_END 11
-#define PR_SET_MM_AUXV 12
-#define PR_SET_MM_EXE_FILE 13
-#define PR_SET_MM_MAP 14
-#define PR_SET_MM_MAP_SIZE 15
-
-struct prctl_mm_map {
- uint64_t start_code;
- uint64_t end_code;
- uint64_t start_data;
- uint64_t end_data;
- uint64_t start_brk;
- uint64_t brk;
- uint64_t start_stack;
- uint64_t arg_start;
- uint64_t arg_end;
- uint64_t env_start;
- uint64_t env_end;
- uint64_t *auxv;
- uint32_t auxv_size;
- uint32_t exe_fd;
-};
-
-#define PR_SET_PTRACER 0x59616d61
-#define PR_SET_PTRACER_ANY (-1UL)
-
-#define PR_SET_CHILD_SUBREAPER 36
-#define PR_GET_CHILD_SUBREAPER 37
-
-#define PR_SET_NO_NEW_PRIVS 38
-#define PR_GET_NO_NEW_PRIVS 39
-
-#define PR_GET_TID_ADDRESS 40
-
-#define PR_SET_THP_DISABLE 41
-#define PR_GET_THP_DISABLE 42
-
-#define PR_MPX_ENABLE_MANAGEMENT 43
-#define PR_MPX_DISABLE_MANAGEMENT 44
-
-#define PR_SET_FP_MODE 45
-#define PR_GET_FP_MODE 46
-#define PR_FP_MODE_FR (1 << 0)
-#define PR_FP_MODE_FRE (1 << 1)
-
-#define PR_CAP_AMBIENT 47
-#define PR_CAP_AMBIENT_IS_SET 1
-#define PR_CAP_AMBIENT_RAISE 2
-#define PR_CAP_AMBIENT_LOWER 3
-#define PR_CAP_AMBIENT_CLEAR_ALL 4
-
-#define PR_SVE_SET_VL 50
-#define PR_SVE_SET_VL_ONEXEC (1 << 18)
-#define PR_SVE_GET_VL 51
-#define PR_SVE_VL_LEN_MASK 0xffff
-#define PR_SVE_VL_INHERIT (1 << 17)
-
-#define PR_GET_SPECULATION_CTRL 52
-#define PR_SET_SPECULATION_CTRL 53
-#define PR_SPEC_STORE_BYPASS 0
-#define PR_SPEC_INDIRECT_BRANCH 1
-#define PR_SPEC_NOT_AFFECTED 0
-#define PR_SPEC_PRCTL (1UL << 0)
-#define PR_SPEC_ENABLE (1UL << 1)
-#define PR_SPEC_DISABLE (1UL << 2)
-#define PR_SPEC_FORCE_DISABLE (1UL << 3)
-#define PR_SPEC_DISABLE_NOEXEC (1UL << 4)
-
-#define PR_PAC_RESET_KEYS 54
-#define PR_PAC_APIAKEY (1UL << 0)
-#define PR_PAC_APIBKEY (1UL << 1)
-#define PR_PAC_APDAKEY (1UL << 2)
-#define PR_PAC_APDBKEY (1UL << 3)
-#define PR_PAC_APGAKEY (1UL << 4)
-
-#define PR_SET_TAGGED_ADDR_CTRL 55
-#define PR_GET_TAGGED_ADDR_CTRL 56
-#define PR_TAGGED_ADDR_ENABLE (1UL << 0)
-#define PR_MTE_TCF_SHIFT 1
-#define PR_MTE_TCF_NONE (0UL << 1)
-#define PR_MTE_TCF_SYNC (1UL << 1)
-#define PR_MTE_TCF_ASYNC (2UL << 1)
-#define PR_MTE_TCF_MASK (3UL << 1)
-#define PR_MTE_TAG_SHIFT 3
-#define PR_MTE_TAG_MASK (0xffffUL << 3)
-
-#define PR_SET_IO_FLUSHER 57
-#define PR_GET_IO_FLUSHER 58
-
-#define PR_SET_SYSCALL_USER_DISPATCH 59
-#define PR_SYS_DISPATCH_OFF 0
-#define PR_SYS_DISPATCH_ON 1
-#define SYSCALL_DISPATCH_FILTER_ALLOW 0
-#define SYSCALL_DISPATCH_FILTER_BLOCK 1
-
-#define PR_PAC_SET_ENABLED_KEYS 60
-#define PR_PAC_GET_ENABLED_KEYS 61
-
-int prctl (int, ...);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/procfs.h b/musl/sys/procfs.h
deleted file mode 100644
index 38e58c1..0000000
--- a/musl/sys/procfs.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-struct elf_siginfo {
- int si_signo;
- int si_code;
- int si_errno;
-};
-
-struct elf_prstatus {
- struct elf_siginfo pr_info;
- short int pr_cursig;
- unsigned long int pr_sigpend;
- unsigned long int pr_sighold;
- pid_t pr_pid;
- pid_t pr_ppid;
- pid_t pr_pgrp;
- pid_t pr_sid;
- struct {
- long tv_sec, tv_usec;
- } pr_utime, pr_stime, pr_cutime, pr_cstime;
- elf_gregset_t pr_reg;
- int pr_fpvalid;
-};
-
-#define ELF_PRARGSZ 80
-
-struct elf_prpsinfo {
- char pr_state;
- char pr_sname;
- char pr_zomb;
- char pr_nice;
- unsigned long int pr_flag;
-#if UINTPTR_MAX == 0xffffffff
- unsigned short int pr_uid;
- unsigned short int pr_gid;
-#else
- unsigned int pr_uid;
- unsigned int pr_gid;
-#endif
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- char pr_fname[16];
- char pr_psargs[ELF_PRARGSZ];
-};
-
-typedef void *psaddr_t;
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-typedef pid_t lwpid_t;
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/ptrace.h b/musl/sys/ptrace.h
deleted file mode 100644
index c72e3c0..0000000
--- a/musl/sys/ptrace.h
+++ /dev/null
@@ -1,147 +0,0 @@
-#ifndef _SYS_PTRACE_H
-#define _SYS_PTRACE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-
-#define PTRACE_TRACEME 0
-#define PT_TRACE_ME PTRACE_TRACEME
-
-#define PTRACE_PEEKTEXT 1
-#define PTRACE_PEEKDATA 2
-#define PTRACE_PEEKUSER 3
-#define PTRACE_POKETEXT 4
-#define PTRACE_POKEDATA 5
-#define PTRACE_POKEUSER 6
-#define PTRACE_CONT 7
-#define PTRACE_KILL 8
-#define PTRACE_SINGLESTEP 9
-#define PTRACE_GETREGS 12
-#define PTRACE_SETREGS 13
-#define PTRACE_GETFPREGS 14
-#define PTRACE_SETFPREGS 15
-#define PTRACE_ATTACH 16
-#define PTRACE_DETACH 17
-#define PTRACE_GETFPXREGS 18
-#define PTRACE_SETFPXREGS 19
-#define PTRACE_SYSCALL 24
-#define PTRACE_SETOPTIONS 0x4200
-#define PTRACE_GETEVENTMSG 0x4201
-#define PTRACE_GETSIGINFO 0x4202
-#define PTRACE_SETSIGINFO 0x4203
-#define PTRACE_GETREGSET 0x4204
-#define PTRACE_SETREGSET 0x4205
-#define PTRACE_SEIZE 0x4206
-#define PTRACE_INTERRUPT 0x4207
-#define PTRACE_LISTEN 0x4208
-#define PTRACE_PEEKSIGINFO 0x4209
-#define PTRACE_GETSIGMASK 0x420a
-#define PTRACE_SETSIGMASK 0x420b
-#define PTRACE_SECCOMP_GET_FILTER 0x420c
-#define PTRACE_SECCOMP_GET_METADATA 0x420d
-#define PTRACE_GET_SYSCALL_INFO 0x420e
-#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f
-
-#define PT_READ_I PTRACE_PEEKTEXT
-#define PT_READ_D PTRACE_PEEKDATA
-#define PT_READ_U PTRACE_PEEKUSER
-#define PT_WRITE_I PTRACE_POKETEXT
-#define PT_WRITE_D PTRACE_POKEDATA
-#define PT_WRITE_U PTRACE_POKEUSER
-#define PT_CONTINUE PTRACE_CONT
-#define PT_KILL PTRACE_KILL
-#define PT_STEP PTRACE_SINGLESTEP
-#define PT_GETREGS PTRACE_GETREGS
-#define PT_SETREGS PTRACE_SETREGS
-#define PT_GETFPREGS PTRACE_GETFPREGS
-#define PT_SETFPREGS PTRACE_SETFPREGS
-#define PT_ATTACH PTRACE_ATTACH
-#define PT_DETACH PTRACE_DETACH
-#define PT_GETFPXREGS PTRACE_GETFPXREGS
-#define PT_SETFPXREGS PTRACE_SETFPXREGS
-#define PT_SYSCALL PTRACE_SYSCALL
-#define PT_SETOPTIONS PTRACE_SETOPTIONS
-#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
-#define PT_GETSIGINFO PTRACE_GETSIGINFO
-#define PT_SETSIGINFO PTRACE_SETSIGINFO
-
-#define PTRACE_O_TRACESYSGOOD 0x00000001
-#define PTRACE_O_TRACEFORK 0x00000002
-#define PTRACE_O_TRACEVFORK 0x00000004
-#define PTRACE_O_TRACECLONE 0x00000008
-#define PTRACE_O_TRACEEXEC 0x00000010
-#define PTRACE_O_TRACEVFORKDONE 0x00000020
-#define PTRACE_O_TRACEEXIT 0x00000040
-#define PTRACE_O_TRACESECCOMP 0x00000080
-#define PTRACE_O_EXITKILL 0x00100000
-#define PTRACE_O_SUSPEND_SECCOMP 0x00200000
-#define PTRACE_O_MASK 0x003000ff
-
-#define PTRACE_EVENT_FORK 1
-#define PTRACE_EVENT_VFORK 2
-#define PTRACE_EVENT_CLONE 3
-#define PTRACE_EVENT_EXEC 4
-#define PTRACE_EVENT_VFORK_DONE 5
-#define PTRACE_EVENT_EXIT 6
-#define PTRACE_EVENT_SECCOMP 7
-#define PTRACE_EVENT_STOP 128
-
-#define PTRACE_PEEKSIGINFO_SHARED 1
-
-#define PTRACE_SYSCALL_INFO_NONE 0
-#define PTRACE_SYSCALL_INFO_ENTRY 1
-#define PTRACE_SYSCALL_INFO_EXIT 2
-#define PTRACE_SYSCALL_INFO_SECCOMP 3
-
-#include <bits/ptrace.h>
-
-struct __ptrace_peeksiginfo_args {
- uint64_t off;
- uint32_t flags;
- int32_t nr;
-};
-
-struct __ptrace_seccomp_metadata {
- uint64_t filter_off;
- uint64_t flags;
-};
-
-struct __ptrace_syscall_info {
- uint8_t op;
- uint8_t __pad[3];
- uint32_t arch;
- uint64_t instruction_pointer;
- uint64_t stack_pointer;
- union {
- struct {
- uint64_t nr;
- uint64_t args[6];
- } entry;
- struct {
- int64_t rval;
- uint8_t is_error;
- } exit;
- struct {
- uint64_t nr;
- uint64_t args[6];
- uint32_t ret_data;
- } seccomp;
- };
-};
-
-struct __ptrace_rseq_configuration {
- uint64_t rseq_abi_pointer;
- uint32_t rseq_abi_size;
- uint32_t signature;
- uint32_t flags;
- uint32_t pad;
-};
-
-long ptrace(int, ...);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/quota.h b/musl/sys/quota.h
deleted file mode 100644
index 3ed7378..0000000
--- a/musl/sys/quota.h
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef _SYS_QUOTA_H
-#define _SYS_QUOTA_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-
-#define _LINUX_QUOTA_VERSION 2
-
-#define dbtob(num) ((num) << 10)
-#define btodb(num) ((num) >> 10)
-#define fs_to_dq_blocks(num, blksize) (((num) * (blksize)) / 1024)
-
-#define MAX_IQ_TIME 604800
-#define MAX_DQ_TIME 604800
-
-#define MAXQUOTAS 2
-#define USRQUOTA 0
-#define GRPQUOTA 1
-
-#define INITQFNAMES { "user", "group", "undefined" };
-
-#define QUOTAFILENAME "quota"
-#define QUOTAGROUP "staff"
-
-#define NR_DQHASH 43
-#define NR_DQUOTS 256
-
-#define SUBCMDMASK 0x00ff
-#define SUBCMDSHIFT 8
-#define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))
-
-#define Q_SYNC 0x800001
-#define Q_QUOTAON 0x800002
-#define Q_QUOTAOFF 0x800003
-#define Q_GETFMT 0x800004
-#define Q_GETINFO 0x800005
-#define Q_SETINFO 0x800006
-#define Q_GETQUOTA 0x800007
-#define Q_SETQUOTA 0x800008
-
-#define QFMT_VFS_OLD 1
-#define QFMT_VFS_V0 2
-#define QFMT_OCFS2 3
-#define QFMT_VFS_V1 4
-
-#define QIF_BLIMITS 1
-#define QIF_SPACE 2
-#define QIF_ILIMITS 4
-#define QIF_INODES 8
-#define QIF_BTIME 16
-#define QIF_ITIME 32
-#define QIF_LIMITS (QIF_BLIMITS | QIF_ILIMITS)
-#define QIF_USAGE (QIF_SPACE | QIF_INODES)
-#define QIF_TIMES (QIF_BTIME | QIF_ITIME)
-#define QIF_ALL (QIF_LIMITS | QIF_USAGE | QIF_TIMES)
-
-struct dqblk {
- uint64_t dqb_bhardlimit;
- uint64_t dqb_bsoftlimit;
- uint64_t dqb_curspace;
- uint64_t dqb_ihardlimit;
- uint64_t dqb_isoftlimit;
- uint64_t dqb_curinodes;
- uint64_t dqb_btime;
- uint64_t dqb_itime;
- uint32_t dqb_valid;
-};
-
-#define dq_bhardlimit dq_dqb.dqb_bhardlimit
-#define dq_bsoftlimit dq_dqb.dqb_bsoftlimit
-#define dq_curspace dq_dqb.dqb_curspace
-#define dq_valid dq_dqb.dqb_valid
-#define dq_ihardlimit dq_dqb.dqb_ihardlimit
-#define dq_isoftlimit dq_dqb.dqb_isoftlimit
-#define dq_curinodes dq_dqb.dqb_curinodes
-#define dq_btime dq_dqb.dqb_btime
-#define dq_itime dq_dqb.dqb_itime
-
-#define dqoff(UID) ((long long)(UID) * sizeof (struct dqblk))
-
-#define IIF_BGRACE 1
-#define IIF_IGRACE 2
-#define IIF_FLAGS 4
-#define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)
-
-struct dqinfo {
- uint64_t dqi_bgrace;
- uint64_t dqi_igrace;
- uint32_t dqi_flags;
- uint32_t dqi_valid;
-};
-
-int quotactl(int, const char *, int, char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/random.h b/musl/sys/random.h
deleted file mode 100644
index 59e40ab..0000000
--- a/musl/sys/random.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _SYS_RANDOM_H
-#define _SYS_RANDOM_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_size_t
-#define __NEED_ssize_t
-#include <bits/alltypes.h>
-
-#define GRND_NONBLOCK 0x0001
-#define GRND_RANDOM 0x0002
-#define GRND_INSECURE 0x0004
-
-ssize_t getrandom(void *, size_t, unsigned);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/reboot.h b/musl/sys/reboot.h
deleted file mode 100644
index 9702edd..0000000
--- a/musl/sys/reboot.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _SYS_REBOOT_H
-#define _SYS_REBOOT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define RB_AUTOBOOT 0x01234567
-#define RB_HALT_SYSTEM 0xcdef0123
-#define RB_ENABLE_CAD 0x89abcdef
-#define RB_DISABLE_CAD 0
-#define RB_POWER_OFF 0x4321fedc
-#define RB_SW_SUSPEND 0xd000fce2
-#define RB_KEXEC 0x45584543
-
-int reboot(int);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/reg.h b/musl/sys/reg.h
deleted file mode 100644
index 0272e13..0000000
--- a/musl/sys/reg.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _SYS_REG_H
-#define _SYS_REG_H
-
-#include <limits.h>
-#include <unistd.h>
-
-#include <bits/alltypes.h>
-
-#undef __WORDSIZE
-#if __LONG_MAX == 0x7fffffffL
-#define __WORDSIZE 32
-#else
-#define __WORDSIZE 64
-#endif
-
-#include <bits/reg.h>
-
-#endif
diff --git a/musl/sys/resource.h b/musl/sys/resource.h
deleted file mode 100644
index e8bfbe1..0000000
--- a/musl/sys/resource.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#ifndef _SYS_RESOURCE_H
-#define _SYS_RESOURCE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <sys/time.h>
-
-#define __NEED_id_t
-
-#ifdef _GNU_SOURCE
-#define __NEED_pid_t
-#endif
-
-#include <bits/alltypes.h>
-#include <bits/resource.h>
-
-typedef unsigned long long rlim_t;
-
-struct rlimit {
- rlim_t rlim_cur;
- rlim_t rlim_max;
-};
-
-struct rusage {
- struct timeval ru_utime;
- struct timeval ru_stime;
- /* linux extentions, but useful */
- long ru_maxrss;
- long ru_ixrss;
- long ru_idrss;
- long ru_isrss;
- long ru_minflt;
- long ru_majflt;
- long ru_nswap;
- long ru_inblock;
- long ru_oublock;
- long ru_msgsnd;
- long ru_msgrcv;
- long ru_nsignals;
- long ru_nvcsw;
- long ru_nivcsw;
- /* room for more... */
- long __reserved[16];
-};
-
-int getrlimit (int, struct rlimit *);
-int setrlimit (int, const struct rlimit *);
-int getrusage (int, struct rusage *);
-
-int getpriority (int, id_t);
-int setpriority (int, id_t, int);
-
-#ifdef _GNU_SOURCE
-int prlimit(pid_t, int, const struct rlimit *, struct rlimit *);
-#define prlimit64 prlimit
-#endif
-
-#define PRIO_MIN (-20)
-#define PRIO_MAX 20
-
-#define PRIO_PROCESS 0
-#define PRIO_PGRP 1
-#define PRIO_USER 2
-
-#define RUSAGE_SELF 0
-#define RUSAGE_CHILDREN (-1)
-#define RUSAGE_THREAD 1
-
-#define RLIM_INFINITY (~0ULL)
-#define RLIM_SAVED_CUR RLIM_INFINITY
-#define RLIM_SAVED_MAX RLIM_INFINITY
-
-#define RLIMIT_CPU 0
-#define RLIMIT_FSIZE 1
-#define RLIMIT_DATA 2
-#define RLIMIT_STACK 3
-#define RLIMIT_CORE 4
-#ifndef RLIMIT_RSS
-#define RLIMIT_RSS 5
-#define RLIMIT_NPROC 6
-#define RLIMIT_NOFILE 7
-#define RLIMIT_MEMLOCK 8
-#define RLIMIT_AS 9
-#endif
-#define RLIMIT_LOCKS 10
-#define RLIMIT_SIGPENDING 11
-#define RLIMIT_MSGQUEUE 12
-#define RLIMIT_NICE 13
-#define RLIMIT_RTPRIO 14
-#define RLIMIT_RTTIME 15
-#define RLIMIT_NLIMITS 16
-
-#define RLIM_NLIMITS RLIMIT_NLIMITS
-
-#if defined(_LARGEFILE64_SOURCE)
-#define RLIM64_INFINITY RLIM_INFINITY
-#define RLIM64_SAVED_CUR RLIM_SAVED_CUR
-#define RLIM64_SAVED_MAX RLIM_SAVED_MAX
-#define getrlimit64 getrlimit
-#define setrlimit64 setrlimit
-#define rlimit64 rlimit
-#define rlim64_t rlim_t
-#endif
-
-#if _REDIR_TIME64
-__REDIR(getrusage, __getrusage_time64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/select.h b/musl/sys/select.h
deleted file mode 100644
index b3bab1d..0000000
--- a/musl/sys/select.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef _SYS_SELECT_H
-#define _SYS_SELECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-#define __NEED_time_t
-#define __NEED_suseconds_t
-#define __NEED_struct_timeval
-#define __NEED_struct_timespec
-#define __NEED_sigset_t
-
-#include <bits/alltypes.h>
-
-#define FD_SETSIZE 1024
-
-typedef unsigned long fd_mask;
-
-typedef struct {
- unsigned long fds_bits[FD_SETSIZE / 8 / sizeof(long)];
-} fd_set;
-
-#define FD_ZERO(s) do { int __i; unsigned long *__b=(s)->fds_bits; for(__i=sizeof (fd_set)/sizeof (long); __i; __i--) *__b++=0; } while(0)
-#define FD_SET(d, s) ((s)->fds_bits[(d)/(8*sizeof(long))] |= (1UL<<((d)%(8*sizeof(long)))))
-#define FD_CLR(d, s) ((s)->fds_bits[(d)/(8*sizeof(long))] &= ~(1UL<<((d)%(8*sizeof(long)))))
-#define FD_ISSET(d, s) !!((s)->fds_bits[(d)/(8*sizeof(long))] & (1UL<<((d)%(8*sizeof(long)))))
-
-int select (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, struct timeval *__restrict);
-int pselect (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, const struct timespec *__restrict, const sigset_t *__restrict);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define NFDBITS (8*(int)sizeof(long))
-#endif
-
-#if _REDIR_TIME64
-__REDIR(select, __select_time64);
-__REDIR(pselect, __pselect_time64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/sem.h b/musl/sys/sem.h
deleted file mode 100644
index a747784..0000000
--- a/musl/sys/sem.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef _SYS_SEM_H
-#define _SYS_SEM_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-#define __NEED_pid_t
-#define __NEED_time_t
-#ifdef _GNU_SOURCE
-#define __NEED_struct_timespec
-#endif
-#include <bits/alltypes.h>
-
-#include <sys/ipc.h>
-
-#define SEM_UNDO 0x1000
-#define GETPID 11
-#define GETVAL 12
-#define GETALL 13
-#define GETNCNT 14
-#define GETZCNT 15
-#define SETVAL 16
-#define SETALL 17
-
-#include <bits/sem.h>
-
-#define _SEM_SEMUN_UNDEFINED 1
-
-#define SEM_STAT (18 | (IPC_STAT & 0x100))
-#define SEM_INFO 19
-#define SEM_STAT_ANY (20 | (IPC_STAT & 0x100))
-
-struct seminfo {
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-struct sembuf {
- unsigned short sem_num;
- short sem_op;
- short sem_flg;
-};
-
-int semctl(int, int, int, ...);
-int semget(key_t, int, int);
-int semop(int, struct sembuf *, size_t);
-
-#ifdef _GNU_SOURCE
-int semtimedop(int, struct sembuf *, size_t, const struct timespec *);
-#endif
-
-#if _REDIR_TIME64
-#ifdef _GNU_SOURCE
-__REDIR(semtimedop, __semtimedop_time64);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/sendfile.h b/musl/sys/sendfile.h
deleted file mode 100644
index 253a041..0000000
--- a/musl/sys/sendfile.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _SYS_SENDFILE_H
-#define _SYS_SENDFILE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <unistd.h>
-
-ssize_t sendfile(int, int, off_t *, size_t);
-
-#if defined(_LARGEFILE64_SOURCE)
-#define sendfile64 sendfile
-#define off64_t off_t
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/shm.h b/musl/sys/shm.h
deleted file mode 100644
index fd708ca..0000000
--- a/musl/sys/shm.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef _SYS_SHM_H
-#define _SYS_SHM_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_time_t
-#define __NEED_size_t
-#define __NEED_pid_t
-
-#include <bits/alltypes.h>
-
-#include <sys/ipc.h>
-
-#ifdef _GNU_SOURCE
-#define __used_ids used_ids
-#define __swap_attempts swap_attempts
-#define __swap_successes swap_successes
-#endif
-
-#include <bits/shm.h>
-
-#define SHM_R 0400
-#define SHM_W 0200
-
-#define SHM_RDONLY 010000
-#define SHM_RND 020000
-#define SHM_REMAP 040000
-#define SHM_EXEC 0100000
-
-#define SHM_LOCK 11
-#define SHM_UNLOCK 12
-#define SHM_STAT (13 | (IPC_STAT & 0x100))
-#define SHM_INFO 14
-#define SHM_STAT_ANY (15 | (IPC_STAT & 0x100))
-#define SHM_DEST 01000
-#define SHM_LOCKED 02000
-#define SHM_HUGETLB 04000
-#define SHM_NORESERVE 010000
-
-#define SHM_HUGE_SHIFT 26
-#define SHM_HUGE_MASK 0x3f
-#define SHM_HUGE_64KB (16 << 26)
-#define SHM_HUGE_512KB (19 << 26)
-#define SHM_HUGE_1MB (20 << 26)
-#define SHM_HUGE_2MB (21 << 26)
-#define SHM_HUGE_8MB (23 << 26)
-#define SHM_HUGE_16MB (24 << 26)
-#define SHM_HUGE_32MB (25 << 26)
-#define SHM_HUGE_256MB (28 << 26)
-#define SHM_HUGE_512MB (29 << 26)
-#define SHM_HUGE_1GB (30 << 26)
-#define SHM_HUGE_2GB (31 << 26)
-#define SHM_HUGE_16GB (34U << 26)
-
-typedef unsigned long shmatt_t;
-
-void *shmat(int, const void *, int);
-int shmctl(int, int, struct shmid_ds *);
-int shmdt(const void *);
-int shmget(key_t, size_t, int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/signal.h b/musl/sys/signal.h
deleted file mode 100644
index 45bdcc6..0000000
--- a/musl/sys/signal.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#warning redirecting incorrect #include <sys/signal.h> to <signal.h>
-#include <signal.h>
diff --git a/musl/sys/signalfd.h b/musl/sys/signalfd.h
deleted file mode 100644
index e881e2c..0000000
--- a/musl/sys/signalfd.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef _SYS_SIGNALFD_H
-#define _SYS_SIGNALFD_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <fcntl.h>
-
-#define __NEED_sigset_t
-
-#include <bits/alltypes.h>
-
-#define SFD_CLOEXEC O_CLOEXEC
-#define SFD_NONBLOCK O_NONBLOCK
-
-int signalfd(int, const sigset_t *, int);
-
-struct signalfd_siginfo {
- uint32_t ssi_signo;
- int32_t ssi_errno;
- int32_t ssi_code;
- uint32_t ssi_pid;
- uint32_t ssi_uid;
- int32_t ssi_fd;
- uint32_t ssi_tid;
- uint32_t ssi_band;
- uint32_t ssi_overrun;
- uint32_t ssi_trapno;
- int32_t ssi_status;
- int32_t ssi_int;
- uint64_t ssi_ptr;
- uint64_t ssi_utime;
- uint64_t ssi_stime;
- uint64_t ssi_addr;
- uint16_t ssi_addr_lsb;
- uint16_t __pad2;
- int32_t ssi_syscall;
- uint64_t ssi_call_addr;
- uint32_t ssi_arch;
- uint8_t __pad[128-14*4-5*8-2*2];
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/socket.h b/musl/sys/socket.h
deleted file mode 100644
index 6dc1e40..0000000
--- a/musl/sys/socket.h
+++ /dev/null
@@ -1,415 +0,0 @@
-#ifndef _SYS_SOCKET_H
-#define _SYS_SOCKET_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_socklen_t
-#define __NEED_sa_family_t
-#define __NEED_size_t
-#define __NEED_ssize_t
-#define __NEED_uid_t
-#define __NEED_pid_t
-#define __NEED_gid_t
-#define __NEED_struct_iovec
-
-#include <bits/alltypes.h>
-
-#include <bits/socket.h>
-
-struct msghdr {
- void *msg_name;
- socklen_t msg_namelen;
- struct iovec *msg_iov;
-#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __BIG_ENDIAN
- int __pad1;
-#endif
- int msg_iovlen;
-#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __LITTLE_ENDIAN
- int __pad1;
-#endif
- void *msg_control;
-#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __BIG_ENDIAN
- int __pad2;
-#endif
- socklen_t msg_controllen;
-#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __LITTLE_ENDIAN
- int __pad2;
-#endif
- int msg_flags;
-};
-
-struct cmsghdr {
-#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __BIG_ENDIAN
- int __pad1;
-#endif
- socklen_t cmsg_len;
-#if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __LITTLE_ENDIAN
- int __pad1;
-#endif
- int cmsg_level;
- int cmsg_type;
-};
-
-#ifdef _GNU_SOURCE
-struct ucred {
- pid_t pid;
- uid_t uid;
- gid_t gid;
-};
-
-struct mmsghdr {
- struct msghdr msg_hdr;
- unsigned int msg_len;
-};
-
-struct timespec;
-
-int sendmmsg (int, struct mmsghdr *, unsigned int, unsigned int);
-int recvmmsg (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *);
-#endif
-
-struct linger {
- int l_onoff;
- int l_linger;
-};
-
-#define SHUT_RD 0
-#define SHUT_WR 1
-#define SHUT_RDWR 2
-
-#ifndef SOCK_STREAM
-#define SOCK_STREAM 1
-#define SOCK_DGRAM 2
-#endif
-
-#define SOCK_RAW 3
-#define SOCK_RDM 4
-#define SOCK_SEQPACKET 5
-#define SOCK_DCCP 6
-#define SOCK_PACKET 10
-
-#ifndef SOCK_CLOEXEC
-#define SOCK_CLOEXEC 02000000
-#define SOCK_NONBLOCK 04000
-#endif
-
-#define PF_UNSPEC 0
-#define PF_LOCAL 1
-#define PF_UNIX PF_LOCAL
-#define PF_FILE PF_LOCAL
-#define PF_INET 2
-#define PF_AX25 3
-#define PF_IPX 4
-#define PF_APPLETALK 5
-#define PF_NETROM 6
-#define PF_BRIDGE 7
-#define PF_ATMPVC 8
-#define PF_X25 9
-#define PF_INET6 10
-#define PF_ROSE 11
-#define PF_DECnet 12
-#define PF_NETBEUI 13
-#define PF_SECURITY 14
-#define PF_KEY 15
-#define PF_NETLINK 16
-#define PF_ROUTE PF_NETLINK
-#define PF_PACKET 17
-#define PF_ASH 18
-#define PF_ECONET 19
-#define PF_ATMSVC 20
-#define PF_RDS 21
-#define PF_SNA 22
-#define PF_IRDA 23
-#define PF_PPPOX 24
-#define PF_WANPIPE 25
-#define PF_LLC 26
-#define PF_IB 27
-#define PF_MPLS 28
-#define PF_CAN 29
-#define PF_TIPC 30
-#define PF_BLUETOOTH 31
-#define PF_IUCV 32
-#define PF_RXRPC 33
-#define PF_ISDN 34
-#define PF_PHONET 35
-#define PF_IEEE802154 36
-#define PF_CAIF 37
-#define PF_ALG 38
-#define PF_NFC 39
-#define PF_VSOCK 40
-#define PF_KCM 41
-#define PF_QIPCRTR 42
-#define PF_SMC 43
-#define PF_XDP 44
-#define PF_MAX 45
-
-#define AF_UNSPEC PF_UNSPEC
-#define AF_LOCAL PF_LOCAL
-#define AF_UNIX AF_LOCAL
-#define AF_FILE AF_LOCAL
-#define AF_INET PF_INET
-#define AF_AX25 PF_AX25
-#define AF_IPX PF_IPX
-#define AF_APPLETALK PF_APPLETALK
-#define AF_NETROM PF_NETROM
-#define AF_BRIDGE PF_BRIDGE
-#define AF_ATMPVC PF_ATMPVC
-#define AF_X25 PF_X25
-#define AF_INET6 PF_INET6
-#define AF_ROSE PF_ROSE
-#define AF_DECnet PF_DECnet
-#define AF_NETBEUI PF_NETBEUI
-#define AF_SECURITY PF_SECURITY
-#define AF_KEY PF_KEY
-#define AF_NETLINK PF_NETLINK
-#define AF_ROUTE PF_ROUTE
-#define AF_PACKET PF_PACKET
-#define AF_ASH PF_ASH
-#define AF_ECONET PF_ECONET
-#define AF_ATMSVC PF_ATMSVC
-#define AF_RDS PF_RDS
-#define AF_SNA PF_SNA
-#define AF_IRDA PF_IRDA
-#define AF_PPPOX PF_PPPOX
-#define AF_WANPIPE PF_WANPIPE
-#define AF_LLC PF_LLC
-#define AF_IB PF_IB
-#define AF_MPLS PF_MPLS
-#define AF_CAN PF_CAN
-#define AF_TIPC PF_TIPC
-#define AF_BLUETOOTH PF_BLUETOOTH
-#define AF_IUCV PF_IUCV
-#define AF_RXRPC PF_RXRPC
-#define AF_ISDN PF_ISDN
-#define AF_PHONET PF_PHONET
-#define AF_IEEE802154 PF_IEEE802154
-#define AF_CAIF PF_CAIF
-#define AF_ALG PF_ALG
-#define AF_NFC PF_NFC
-#define AF_VSOCK PF_VSOCK
-#define AF_KCM PF_KCM
-#define AF_QIPCRTR PF_QIPCRTR
-#define AF_SMC PF_SMC
-#define AF_XDP PF_XDP
-#define AF_MAX PF_MAX
-
-#ifndef SO_DEBUG
-#define SO_DEBUG 1
-#define SO_REUSEADDR 2
-#define SO_TYPE 3
-#define SO_ERROR 4
-#define SO_DONTROUTE 5
-#define SO_BROADCAST 6
-#define SO_SNDBUF 7
-#define SO_RCVBUF 8
-#define SO_KEEPALIVE 9
-#define SO_OOBINLINE 10
-#define SO_NO_CHECK 11
-#define SO_PRIORITY 12
-#define SO_LINGER 13
-#define SO_BSDCOMPAT 14
-#define SO_REUSEPORT 15
-#define SO_PASSCRED 16
-#define SO_PEERCRED 17
-#define SO_RCVLOWAT 18
-#define SO_SNDLOWAT 19
-#define SO_ACCEPTCONN 30
-#define SO_PEERSEC 31
-#define SO_SNDBUFFORCE 32
-#define SO_RCVBUFFORCE 33
-#define SO_PROTOCOL 38
-#define SO_DOMAIN 39
-#endif
-
-#ifndef SO_RCVTIMEO
-#if __LONG_MAX == 0x7fffffff
-#define SO_RCVTIMEO 66
-#define SO_SNDTIMEO 67
-#else
-#define SO_RCVTIMEO 20
-#define SO_SNDTIMEO 21
-#endif
-#endif
-
-#ifndef SO_TIMESTAMP
-#if __LONG_MAX == 0x7fffffff
-#define SO_TIMESTAMP 63
-#define SO_TIMESTAMPNS 64
-#define SO_TIMESTAMPING 65
-#else
-#define SO_TIMESTAMP 29
-#define SO_TIMESTAMPNS 35
-#define SO_TIMESTAMPING 37
-#endif
-#endif
-
-#define SO_SECURITY_AUTHENTICATION 22
-#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
-#define SO_SECURITY_ENCRYPTION_NETWORK 24
-
-#define SO_BINDTODEVICE 25
-
-#define SO_ATTACH_FILTER 26
-#define SO_DETACH_FILTER 27
-#define SO_GET_FILTER SO_ATTACH_FILTER
-
-#define SO_PEERNAME 28
-#define SCM_TIMESTAMP SO_TIMESTAMP
-#define SO_PASSSEC 34
-#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
-#define SO_MARK 36
-#define SCM_TIMESTAMPING SO_TIMESTAMPING
-#define SO_RXQ_OVFL 40
-#define SO_WIFI_STATUS 41
-#define SCM_WIFI_STATUS SO_WIFI_STATUS
-#define SO_PEEK_OFF 42
-#define SO_NOFCS 43
-#define SO_LOCK_FILTER 44
-#define SO_SELECT_ERR_QUEUE 45
-#define SO_BUSY_POLL 46
-#define SO_MAX_PACING_RATE 47
-#define SO_BPF_EXTENSIONS 48
-#define SO_INCOMING_CPU 49
-#define SO_ATTACH_BPF 50
-#define SO_DETACH_BPF SO_DETACH_FILTER
-#define SO_ATTACH_REUSEPORT_CBPF 51
-#define SO_ATTACH_REUSEPORT_EBPF 52
-#define SO_CNX_ADVICE 53
-#define SCM_TIMESTAMPING_OPT_STATS 54
-#define SO_MEMINFO 55
-#define SO_INCOMING_NAPI_ID 56
-#define SO_COOKIE 57
-#define SCM_TIMESTAMPING_PKTINFO 58
-#define SO_PEERGROUPS 59
-#define SO_ZEROCOPY 60
-#define SO_TXTIME 61
-#define SCM_TXTIME SO_TXTIME
-#define SO_BINDTOIFINDEX 62
-#define SO_DETACH_REUSEPORT_BPF 68
-#define SO_PREFER_BUSY_POLL 69
-#define SO_BUSY_POLL_BUDGET 70
-
-#ifndef SOL_SOCKET
-#define SOL_SOCKET 1
-#endif
-
-#define SOL_IP 0
-#define SOL_IPV6 41
-#define SOL_ICMPV6 58
-
-#define SOL_RAW 255
-#define SOL_DECNET 261
-#define SOL_X25 262
-#define SOL_PACKET 263
-#define SOL_ATM 264
-#define SOL_AAL 265
-#define SOL_IRDA 266
-#define SOL_NETBEUI 267
-#define SOL_LLC 268
-#define SOL_DCCP 269
-#define SOL_NETLINK 270
-#define SOL_TIPC 271
-#define SOL_RXRPC 272
-#define SOL_PPPOL2TP 273
-#define SOL_BLUETOOTH 274
-#define SOL_PNPIPE 275
-#define SOL_RDS 276
-#define SOL_IUCV 277
-#define SOL_CAIF 278
-#define SOL_ALG 279
-#define SOL_NFC 280
-#define SOL_KCM 281
-#define SOL_TLS 282
-#define SOL_XDP 283
-
-#define SOMAXCONN 128
-
-#define MSG_OOB 0x0001
-#define MSG_PEEK 0x0002
-#define MSG_DONTROUTE 0x0004
-#define MSG_CTRUNC 0x0008
-#define MSG_PROXY 0x0010
-#define MSG_TRUNC 0x0020
-#define MSG_DONTWAIT 0x0040
-#define MSG_EOR 0x0080
-#define MSG_WAITALL 0x0100
-#define MSG_FIN 0x0200
-#define MSG_SYN 0x0400
-#define MSG_CONFIRM 0x0800
-#define MSG_RST 0x1000
-#define MSG_ERRQUEUE 0x2000
-#define MSG_NOSIGNAL 0x4000
-#define MSG_MORE 0x8000
-#define MSG_WAITFORONE 0x10000
-#define MSG_BATCH 0x40000
-#define MSG_ZEROCOPY 0x4000000
-#define MSG_FASTOPEN 0x20000000
-#define MSG_CMSG_CLOEXEC 0x40000000
-
-#define __CMSG_LEN(cmsg) (((cmsg)->cmsg_len + sizeof(long) - 1) & ~(long)(sizeof(long) - 1))
-#define __CMSG_NEXT(cmsg) ((unsigned char *)(cmsg) + __CMSG_LEN(cmsg))
-#define __MHDR_END(mhdr) ((unsigned char *)(mhdr)->msg_control + (mhdr)->msg_controllen)
-
-#define CMSG_DATA(cmsg) ((unsigned char *) (((struct cmsghdr *)(cmsg)) + 1))
-#define CMSG_NXTHDR(mhdr, cmsg) ((cmsg)->cmsg_len < sizeof (struct cmsghdr) || \
- __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
- ? 0 : (struct cmsghdr *)__CMSG_NEXT(cmsg))
-#define CMSG_FIRSTHDR(mhdr) ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
-
-#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))
-#define CMSG_SPACE(len) (CMSG_ALIGN (len) + CMSG_ALIGN (sizeof (struct cmsghdr)))
-#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
-
-#define SCM_RIGHTS 0x01
-#define SCM_CREDENTIALS 0x02
-
-struct sockaddr {
- sa_family_t sa_family;
- char sa_data[14];
-};
-
-struct sockaddr_storage {
- sa_family_t ss_family;
- char __ss_padding[128-sizeof(long)-sizeof(sa_family_t)];
- unsigned long __ss_align;
-};
-
-int socket (int, int, int);
-int socketpair (int, int, int, int [2]);
-
-int shutdown (int, int);
-
-int bind (int, const struct sockaddr *, socklen_t);
-int connect (int, const struct sockaddr *, socklen_t);
-int listen (int, int);
-int accept (int, struct sockaddr *__restrict, socklen_t *__restrict);
-int accept4(int, struct sockaddr *__restrict, socklen_t *__restrict, int);
-
-int getsockname (int, struct sockaddr *__restrict, socklen_t *__restrict);
-int getpeername (int, struct sockaddr *__restrict, socklen_t *__restrict);
-
-ssize_t send (int, const void *, size_t, int);
-ssize_t recv (int, void *, size_t, int);
-ssize_t sendto (int, const void *, size_t, int, const struct sockaddr *, socklen_t);
-ssize_t recvfrom (int, void *__restrict, size_t, int, struct sockaddr *__restrict, socklen_t *__restrict);
-ssize_t sendmsg (int, const struct msghdr *, int);
-ssize_t recvmsg (int, struct msghdr *, int);
-
-int getsockopt (int, int, int, void *__restrict, socklen_t *__restrict);
-int setsockopt (int, int, int, const void *, socklen_t);
-
-int sockatmark (int);
-
-#if _REDIR_TIME64
-#ifdef _GNU_SOURCE
-__REDIR(recvmmsg, __recvmmsg_time64);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/soundcard.h b/musl/sys/soundcard.h
deleted file mode 100644
index 5ca7764..0000000
--- a/musl/sys/soundcard.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <bits/soundcard.h>
diff --git a/musl/sys/stat.h b/musl/sys/stat.h
deleted file mode 100644
index c924ce2..0000000
--- a/musl/sys/stat.h
+++ /dev/null
@@ -1,199 +0,0 @@
-#ifndef _SYS_STAT_H
-#define _SYS_STAT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_dev_t
-#define __NEED_ino_t
-#define __NEED_mode_t
-#define __NEED_nlink_t
-#define __NEED_uid_t
-#define __NEED_gid_t
-#define __NEED_off_t
-#define __NEED_time_t
-#define __NEED_blksize_t
-#define __NEED_blkcnt_t
-#define __NEED_struct_timespec
-
-#ifdef _GNU_SOURCE
-#define __NEED_int64_t
-#define __NEED_uint64_t
-#define __NEED_uint32_t
-#define __NEED_uint16_t
-#endif
-
-#include <bits/alltypes.h>
-
-#include <bits/stat.h>
-
-#define st_atime st_atim.tv_sec
-#define st_mtime st_mtim.tv_sec
-#define st_ctime st_ctim.tv_sec
-
-#define S_IFMT 0170000
-
-#define S_IFDIR 0040000
-#define S_IFCHR 0020000
-#define S_IFBLK 0060000
-#define S_IFREG 0100000
-#define S_IFIFO 0010000
-#define S_IFLNK 0120000
-#define S_IFSOCK 0140000
-
-#define S_TYPEISMQ(buf) 0
-#define S_TYPEISSEM(buf) 0
-#define S_TYPEISSHM(buf) 0
-#define S_TYPEISTMO(buf) 0
-
-#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
-#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR)
-#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK)
-#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
-#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO)
-#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)
-#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)
-
-#ifndef S_IRUSR
-#define S_ISUID 04000
-#define S_ISGID 02000
-#define S_ISVTX 01000
-#define S_IRUSR 0400
-#define S_IWUSR 0200
-#define S_IXUSR 0100
-#define S_IRWXU 0700
-#define S_IRGRP 0040
-#define S_IWGRP 0020
-#define S_IXGRP 0010
-#define S_IRWXG 0070
-#define S_IROTH 0004
-#define S_IWOTH 0002
-#define S_IXOTH 0001
-#define S_IRWXO 0007
-#endif
-
-#define UTIME_NOW 0x3fffffff
-#define UTIME_OMIT 0x3ffffffe
-
-int stat(const char *__restrict, struct stat *__restrict);
-int fstat(int, struct stat *);
-int lstat(const char *__restrict, struct stat *__restrict);
-int fstatat(int, const char *__restrict, struct stat *__restrict, int);
-int chmod(const char *, mode_t);
-int fchmod(int, mode_t);
-int fchmodat(int, const char *, mode_t, int);
-mode_t umask(mode_t);
-int mkdir(const char *, mode_t);
-int mkfifo(const char *, mode_t);
-int mkdirat(int, const char *, mode_t);
-int mkfifoat(int, const char *, mode_t);
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-int mknod(const char *, mode_t, dev_t);
-int mknodat(int, const char *, mode_t, dev_t);
-#endif
-
-int futimens(int, const struct timespec [2]);
-int utimensat(int, const char *, const struct timespec [2], int);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-int lchmod(const char *, mode_t);
-#define S_IREAD S_IRUSR
-#define S_IWRITE S_IWUSR
-#define S_IEXEC S_IXUSR
-#endif
-
-#if defined(_GNU_SOURCE)
-#define STATX_TYPE 1U
-#define STATX_MODE 2U
-#define STATX_NLINK 4U
-#define STATX_UID 8U
-#define STATX_GID 0x10U
-#define STATX_ATIME 0x20U
-#define STATX_MTIME 0x40U
-#define STATX_CTIME 0x80U
-#define STATX_INO 0x100U
-#define STATX_SIZE 0x200U
-#define STATX_BLOCKS 0x400U
-#define STATX_BASIC_STATS 0x7ffU
-#define STATX_BTIME 0x800U
-#define STATX_ALL 0xfffU
-#define STATX_MNT_ID 0x1000U
-#define STATX_DIOALIGN 0x2000U
-#define STATX_MNT_ID_UNIQUE 0x4000U
-
-#define STATX_ATTR_COMPRESSED 0x4
-#define STATX_ATTR_IMMUTABLE 0x10
-#define STATX_ATTR_APPEND 0x20
-#define STATX_ATTR_NODUMP 0x40
-#define STATX_ATTR_ENCRYPTED 0x800
-#define STATX_ATTR_AUTOMOUNT 0x1000
-#define STATX_ATTR_MOUNT_ROOT 0x2000
-#define STATX_ATTR_VERITY 0x100000
-#define STATX_ATTR_DAX 0x200000
-
-struct statx_timestamp {
- int64_t tv_sec;
- uint32_t tv_nsec, __pad;
-};
-
-struct statx {
- uint32_t stx_mask;
- uint32_t stx_blksize;
- uint64_t stx_attributes;
- uint32_t stx_nlink;
- uint32_t stx_uid;
- uint32_t stx_gid;
- uint16_t stx_mode;
- uint16_t __pad0[1];
- uint64_t stx_ino;
- uint64_t stx_size;
- uint64_t stx_blocks;
- uint64_t stx_attributes_mask;
- struct statx_timestamp stx_atime;
- struct statx_timestamp stx_btime;
- struct statx_timestamp stx_ctime;
- struct statx_timestamp stx_mtime;
- uint32_t stx_rdev_major;
- uint32_t stx_rdev_minor;
- uint32_t stx_dev_major;
- uint32_t stx_dev_minor;
- uint64_t stx_mnt_id;
- uint32_t stx_dio_mem_align;
- uint32_t stx_dio_offset_align;
- uint64_t stx_subvol;
- uint64_t __pad1[11];
-};
-
-int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict);
-#endif
-
-#if defined(_LARGEFILE64_SOURCE)
-#define stat64 stat
-#define fstat64 fstat
-#define lstat64 lstat
-#define fstatat64 fstatat
-#define blkcnt64_t blkcnt_t
-#define fsblkcnt64_t fsblkcnt_t
-#define fsfilcnt64_t fsfilcnt_t
-#define ino64_t ino_t
-#define off64_t off_t
-#endif
-
-#if _REDIR_TIME64
-__REDIR(stat, __stat_time64);
-__REDIR(fstat, __fstat_time64);
-__REDIR(lstat, __lstat_time64);
-__REDIR(fstatat, __fstatat_time64);
-__REDIR(futimens, __futimens_time64);
-__REDIR(utimensat, __utimensat_time64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-
diff --git a/musl/sys/statfs.h b/musl/sys/statfs.h
deleted file mode 100644
index 7a2e11c..0000000
--- a/musl/sys/statfs.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef _SYS_STATFS_H
-#define _SYS_STATFS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#include <sys/statvfs.h>
-
-typedef struct __fsid_t {
- int __val[2];
-} fsid_t;
-
-#include <bits/statfs.h>
-
-int statfs (const char *, struct statfs *);
-int fstatfs (int, struct statfs *);
-
-#if defined(_LARGEFILE64_SOURCE)
-#define statfs64 statfs
-#define fstatfs64 fstatfs
-#define fsblkcnt64_t fsblkcnt_t
-#define fsfilcnt64_t fsfilcnt_t
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/statvfs.h b/musl/sys/statvfs.h
deleted file mode 100644
index 71d9d1f..0000000
--- a/musl/sys/statvfs.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef _SYS_STATVFS_H
-#define _SYS_STATVFS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_fsblkcnt_t
-#define __NEED_fsfilcnt_t
-#include <bits/alltypes.h>
-
-struct statvfs {
- unsigned long f_bsize, f_frsize;
- fsblkcnt_t f_blocks, f_bfree, f_bavail;
- fsfilcnt_t f_files, f_ffree, f_favail;
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- unsigned long f_fsid;
- unsigned :8*(2*sizeof(int)-sizeof(long));
-#else
- unsigned :8*(2*sizeof(int)-sizeof(long));
- unsigned long f_fsid;
-#endif
- unsigned long f_flag, f_namemax;
- unsigned int f_type;
- int __reserved[5];
-};
-
-int statvfs (const char *__restrict, struct statvfs *__restrict);
-int fstatvfs (int, struct statvfs *);
-
-#define ST_RDONLY 1
-#define ST_NOSUID 2
-#define ST_NODEV 4
-#define ST_NOEXEC 8
-#define ST_SYNCHRONOUS 16
-#define ST_MANDLOCK 64
-#define ST_WRITE 128
-#define ST_APPEND 256
-#define ST_IMMUTABLE 512
-#define ST_NOATIME 1024
-#define ST_NODIRATIME 2048
-#define ST_RELATIME 4096
-
-#if defined(_LARGEFILE64_SOURCE)
-#define statvfs64 statvfs
-#define fstatvfs64 fstatvfs
-#define fsblkcnt64_t fsblkcnt_t
-#define fsfilcnt64_t fsfilcnt_t
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/stropts.h b/musl/sys/stropts.h
deleted file mode 100644
index 5b5bc02..0000000
--- a/musl/sys/stropts.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <stropts.h>
diff --git a/musl/sys/swap.h b/musl/sys/swap.h
deleted file mode 100644
index 11c0f92..0000000
--- a/musl/sys/swap.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _SYS_SWAP_H
-#define _SYS_SWAP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#define SWAP_FLAG_PREFER 0x8000
-#define SWAP_FLAG_PRIO_MASK 0x7fff
-#define SWAP_FLAG_PRIO_SHIFT 0
-#define SWAP_FLAG_DISCARD 0x10000
-
-int swapon (const char *, int);
-int swapoff (const char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/syscall.h b/musl/sys/syscall.h
deleted file mode 100644
index 24987dd..0000000
--- a/musl/sys/syscall.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _SYS_SYSCALL_H
-#define _SYS_SYSCALL_H
-
-#include <bits/syscall.h>
-
-#endif
diff --git a/musl/sys/sysinfo.h b/musl/sys/sysinfo.h
deleted file mode 100644
index 6a3931e..0000000
--- a/musl/sys/sysinfo.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _SYS_SYSINFO_H
-#define _SYS_SYSINFO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define SI_LOAD_SHIFT 16
-
-struct sysinfo {
- unsigned long uptime;
- unsigned long loads[3];
- unsigned long totalram;
- unsigned long freeram;
- unsigned long sharedram;
- unsigned long bufferram;
- unsigned long totalswap;
- unsigned long freeswap;
- unsigned short procs, pad;
- unsigned long totalhigh;
- unsigned long freehigh;
- unsigned mem_unit;
- char __reserved[256];
-};
-
-int sysinfo (struct sysinfo *);
-int get_nprocs_conf (void);
-int get_nprocs (void);
-long get_phys_pages (void);
-long get_avphys_pages (void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/syslog.h b/musl/sys/syslog.h
deleted file mode 100644
index 7761ece..0000000
--- a/musl/sys/syslog.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <syslog.h>
diff --git a/musl/sys/sysmacros.h b/musl/sys/sysmacros.h
deleted file mode 100644
index 07a3ef1..0000000
--- a/musl/sys/sysmacros.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _SYS_SYSMACROS_H
-#define _SYS_SYSMACROS_H
-
-#define major(x) \
- ((unsigned)( (((x)>>31>>1) & 0xfffff000) | (((x)>>8) & 0x00000fff) ))
-#define minor(x) \
- ((unsigned)( (((x)>>12) & 0xffffff00) | ((x) & 0x000000ff) ))
-
-#define makedev(x,y) ( \
- (((x)&0xfffff000ULL) << 32) | \
- (((x)&0x00000fffULL) << 8) | \
- (((y)&0xffffff00ULL) << 12) | \
- (((y)&0x000000ffULL)) )
-
-#endif
diff --git a/musl/sys/termios.h b/musl/sys/termios.h
deleted file mode 100644
index f5f751f..0000000
--- a/musl/sys/termios.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#warning redirecting incorrect #include <sys/termios.h> to <termios.h>
-#include <termios.h>
diff --git a/musl/sys/time.h b/musl/sys/time.h
deleted file mode 100644
index cdc67ef..0000000
--- a/musl/sys/time.h
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef _SYS_TIME_H
-#define _SYS_TIME_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#include <sys/select.h>
-
-int gettimeofday (struct timeval *__restrict, void *__restrict);
-
-#define ITIMER_REAL 0
-#define ITIMER_VIRTUAL 1
-#define ITIMER_PROF 2
-
-struct itimerval {
- struct timeval it_interval;
- struct timeval it_value;
-};
-
-int getitimer (int, struct itimerval *);
-int setitimer (int, const struct itimerval *__restrict, struct itimerval *__restrict);
-int utimes (const char *, const struct timeval [2]);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-struct timezone {
- int tz_minuteswest;
- int tz_dsttime;
-};
-int futimes(int, const struct timeval [2]);
-int futimesat(int, const char *, const struct timeval [2]);
-int lutimes(const char *, const struct timeval [2]);
-int settimeofday(const struct timeval *, const struct timezone *);
-int adjtime (const struct timeval *, struct timeval *);
-#define timerisset(t) ((t)->tv_sec || (t)->tv_usec)
-#define timerclear(t) ((t)->tv_sec = (t)->tv_usec = 0)
-#define timercmp(s,t,op) ((s)->tv_sec == (t)->tv_sec ? \
- (s)->tv_usec op (t)->tv_usec : (s)->tv_sec op (t)->tv_sec)
-#define timeradd(s,t,a) (void) ( (a)->tv_sec = (s)->tv_sec + (t)->tv_sec, \
- ((a)->tv_usec = (s)->tv_usec + (t)->tv_usec) >= 1000000 && \
- ((a)->tv_usec -= 1000000, (a)->tv_sec++) )
-#define timersub(s,t,a) (void) ( (a)->tv_sec = (s)->tv_sec - (t)->tv_sec, \
- ((a)->tv_usec = (s)->tv_usec - (t)->tv_usec) < 0 && \
- ((a)->tv_usec += 1000000, (a)->tv_sec--) )
-#endif
-
-#if defined(_GNU_SOURCE)
-#define TIMEVAL_TO_TIMESPEC(tv, ts) ( \
- (ts)->tv_sec = (tv)->tv_sec, \
- (ts)->tv_nsec = (tv)->tv_usec * 1000, \
- (void)0 )
-#define TIMESPEC_TO_TIMEVAL(tv, ts) ( \
- (tv)->tv_sec = (ts)->tv_sec, \
- (tv)->tv_usec = (ts)->tv_nsec / 1000, \
- (void)0 )
-#endif
-
-#if _REDIR_TIME64
-__REDIR(gettimeofday, __gettimeofday_time64);
-__REDIR(getitimer, __getitimer_time64);
-__REDIR(setitimer, __setitimer_time64);
-__REDIR(utimes, __utimes_time64);
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-__REDIR(futimes, __futimes_time64);
-__REDIR(futimesat, __futimesat_time64);
-__REDIR(lutimes, __lutimes_time64);
-__REDIR(settimeofday, __settimeofday_time64);
-__REDIR(adjtime, __adjtime64);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/timeb.h b/musl/sys/timeb.h
deleted file mode 100644
index 628239b..0000000
--- a/musl/sys/timeb.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _SYS_TIMEB_H
-#define _SYS_TIMEB_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_time_t
-
-#include <bits/alltypes.h>
-
-struct timeb {
- time_t time;
- unsigned short millitm;
- short timezone, dstflag;
-};
-
-int ftime(struct timeb *);
-
-#if _REDIR_TIME64
-__REDIR(ftime, __ftime64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/timerfd.h b/musl/sys/timerfd.h
deleted file mode 100644
index 1b832cd..0000000
--- a/musl/sys/timerfd.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef _SYS_TIMERFD_H
-#define _SYS_TIMERFD_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <time.h>
-#include <fcntl.h>
-
-#define TFD_NONBLOCK O_NONBLOCK
-#define TFD_CLOEXEC O_CLOEXEC
-
-#define TFD_TIMER_ABSTIME 1
-#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
-
-struct itimerspec;
-
-int timerfd_create(int, int);
-int timerfd_settime(int, int, const struct itimerspec *, struct itimerspec *);
-int timerfd_gettime(int, struct itimerspec *);
-
-#if _REDIR_TIME64
-__REDIR(timerfd_settime, __timerfd_settime64);
-__REDIR(timerfd_gettime, __timerfd_gettime64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/times.h b/musl/sys/times.h
deleted file mode 100644
index 80a5052..0000000
--- a/musl/sys/times.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _SYS_TIMES_H
-#define _SYS_TIMES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_clock_t
-#include <bits/alltypes.h>
-
-struct tms {
- clock_t tms_utime;
- clock_t tms_stime;
- clock_t tms_cutime;
- clock_t tms_cstime;
-};
-
-clock_t times (struct tms *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/musl/sys/timex.h b/musl/sys/timex.h
deleted file mode 100644
index 8b417e1..0000000
--- a/musl/sys/timex.h
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef _SYS_TIMEX_H
-#define _SYS_TIMEX_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_clockid_t
-
-#include <bits/alltypes.h>
-
-#include <sys/time.h>
-
-struct ntptimeval {
- struct timeval time;
- long maxerror, esterror;
-};
-
-struct timex {
- unsigned modes;
- long offset, freq, maxerror, esterror;
- int status;
- long constant, precision, tolerance;
- struct timeval time;
- long tick, ppsfreq, jitter;
- int shift;
- long stabil, jitcnt, calcnt, errcnt, stbcnt;
- int tai;
- int __padding[11];
-};
-
-#define ADJ_OFFSET 0x0001
-#define ADJ_FREQUENCY 0x0002
-#define ADJ_MAXERROR 0x0004
-#define ADJ_ESTERROR 0x0008
-#define ADJ_STATUS 0x0010
-#define ADJ_TIMECONST 0x0020
-#define ADJ_TAI 0x0080
-#define ADJ_SETOFFSET 0x0100
-#define ADJ_MICRO 0x1000
-#define ADJ_NANO 0x2000
-#define ADJ_TICK 0x4000
-#define ADJ_OFFSET_SINGLESHOT 0x8001
-#define ADJ_OFFSET_SS_READ 0xa001
-
-#define MOD_OFFSET ADJ_OFFSET
-#define MOD_FREQUENCY ADJ_FREQUENCY
-#define MOD_MAXERROR ADJ_MAXERROR
-#define MOD_ESTERROR ADJ_ESTERROR
-#define MOD_STATUS ADJ_STATUS
-#define MOD_TIMECONST ADJ_TIMECONST
-#define MOD_CLKB ADJ_TICK
-#define MOD_CLKA ADJ_OFFSET_SINGLESHOT
-#define MOD_TAI ADJ_TAI
-#define MOD_MICRO ADJ_MICRO
-#define MOD_NANO ADJ_NANO
-
-#define STA_PLL 0x0001
-#define STA_PPSFREQ 0x0002
-#define STA_PPSTIME 0x0004
-#define STA_FLL 0x0008
-
-#define STA_INS 0x0010
-#define STA_DEL 0x0020
-#define STA_UNSYNC 0x0040
-#define STA_FREQHOLD 0x0080
-
-#define STA_PPSSIGNAL 0x0100
-#define STA_PPSJITTER 0x0200
-#define STA_PPSWANDER 0x0400
-#define STA_PPSERROR 0x0800
-
-#define STA_CLOCKERR 0x1000
-#define STA_NANO 0x2000
-#define STA_MODE 0x4000
-#define STA_CLK 0x8000
-
-#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
- STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
-
-#define TIME_OK 0
-#define TIME_INS 1
-#define TIME_DEL 2
-#define TIME_OOP 3
-#define TIME_WAIT 4
-#define TIME_ERROR 5
-#define TIME_BAD TIME_ERROR
-
-#define MAXTC 6
-
-int adjtimex(struct timex *);
-int clock_adjtime(clockid_t, struct timex *);
-
-#if _REDIR_TIME64
-__REDIR(adjtimex, __adjtimex_time64);
-__REDIR(clock_adjtime, __clock_adjtime64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/ttydefaults.h b/musl/sys/ttydefaults.h
deleted file mode 100644
index edb55bc..0000000
--- a/musl/sys/ttydefaults.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _SYS_TTYDEFAULTS_H
-#define _SYS_TTYDEFAULTS_H
-
-#define TTYDEF_IFLAG (BRKINT | ISTRIP | ICRNL | IMAXBEL | IXON | IXANY)
-#define TTYDEF_OFLAG (OPOST | ONLCR | XTABS)
-#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL)
-#define TTYDEF_CFLAG (CREAD | CS7 | PARENB | HUPCL)
-#define TTYDEF_SPEED (B9600)
-#define CTRL(x) ((x)&037)
-#define CEOF CTRL('d')
-
-#define CEOL '\0'
-#define CSTATUS '\0'
-
-#define CERASE 0177
-#define CINTR CTRL('c')
-#define CKILL CTRL('u')
-#define CMIN 1
-#define CQUIT 034
-#define CSUSP CTRL('z')
-#define CTIME 0
-#define CDSUSP CTRL('y')
-#define CSTART CTRL('q')
-#define CSTOP CTRL('s')
-#define CLNEXT CTRL('v')
-#define CDISCARD CTRL('o')
-#define CWERASE CTRL('w')
-#define CREPRINT CTRL('r')
-#define CEOT CEOF
-#define CBRK CEOL
-#define CRPRNT CREPRINT
-#define CFLUSH CDISCARD
-
-#endif
diff --git a/musl/sys/types.h b/musl/sys/types.h
deleted file mode 100644
index 3363374..0000000
--- a/musl/sys/types.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef _SYS_TYPES_H
-#define _SYS_TYPES_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_ino_t
-#define __NEED_dev_t
-#define __NEED_uid_t
-#define __NEED_gid_t
-#define __NEED_mode_t
-#define __NEED_nlink_t
-#define __NEED_off_t
-#define __NEED_pid_t
-#define __NEED_size_t
-#define __NEED_ssize_t
-#define __NEED_time_t
-#define __NEED_timer_t
-#define __NEED_clockid_t
-
-#define __NEED_blkcnt_t
-#define __NEED_fsblkcnt_t
-#define __NEED_fsfilcnt_t
-
-#define __NEED_id_t
-#define __NEED_key_t
-#define __NEED_clock_t
-#define __NEED_suseconds_t
-#define __NEED_blksize_t
-
-#define __NEED_pthread_t
-#define __NEED_pthread_attr_t
-#define __NEED_pthread_mutexattr_t
-#define __NEED_pthread_condattr_t
-#define __NEED_pthread_rwlockattr_t
-#define __NEED_pthread_barrierattr_t
-#define __NEED_pthread_mutex_t
-#define __NEED_pthread_cond_t
-#define __NEED_pthread_rwlock_t
-#define __NEED_pthread_barrier_t
-#define __NEED_pthread_spinlock_t
-#define __NEED_pthread_key_t
-#define __NEED_pthread_once_t
-#define __NEED_useconds_t
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define __NEED_int8_t
-#define __NEED_int16_t
-#define __NEED_int32_t
-#define __NEED_int64_t
-#define __NEED_u_int64_t
-#define __NEED_register_t
-#endif
-
-#include <bits/alltypes.h>
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-typedef unsigned char u_int8_t;
-typedef unsigned short u_int16_t;
-typedef unsigned u_int32_t;
-typedef char *caddr_t;
-typedef unsigned char u_char;
-typedef unsigned short u_short, ushort;
-typedef unsigned u_int, uint;
-typedef unsigned long u_long, ulong;
-typedef long long quad_t;
-typedef unsigned long long u_quad_t;
-#include <endian.h>
-#include <sys/select.h>
-#endif
-
-#if defined(_LARGEFILE64_SOURCE)
-#define blkcnt64_t blkcnt_t
-#define fsblkcnt64_t fsblkcnt_t
-#define fsfilcnt64_t fsfilcnt_t
-#define ino64_t ino_t
-#define off64_t off_t
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/ucontext.h b/musl/sys/ucontext.h
deleted file mode 100644
index 5fdbd63..0000000
--- a/musl/sys/ucontext.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <ucontext.h>
diff --git a/musl/sys/uio.h b/musl/sys/uio.h
deleted file mode 100644
index 5e99c7f..0000000
--- a/musl/sys/uio.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef _SYS_UIO_H
-#define _SYS_UIO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-#define __NEED_ssize_t
-#define __NEED_struct_iovec
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define __NEED_off_t
-#endif
-
-#ifdef _GNU_SOURCE
-#define __NEED_pid_t
-#endif
-
-#include <bits/alltypes.h>
-
-#define UIO_MAXIOV 1024
-
-ssize_t readv (int, const struct iovec *, int);
-ssize_t writev (int, const struct iovec *, int);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-ssize_t preadv (int, const struct iovec *, int, off_t);
-ssize_t pwritev (int, const struct iovec *, int, off_t);
-#if defined(_LARGEFILE64_SOURCE)
-#define preadv64 preadv
-#define pwritev64 pwritev
-#define off64_t off_t
-#endif
-#endif
-
-#ifdef _GNU_SOURCE
-ssize_t process_vm_writev(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long);
-ssize_t process_vm_readv(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long);
-ssize_t preadv2 (int, const struct iovec *, int, off_t, int);
-ssize_t pwritev2 (int, const struct iovec *, int, off_t, int);
-#define RWF_HIPRI 0x00000001
-#define RWF_DSYNC 0x00000002
-#define RWF_SYNC 0x00000004
-#define RWF_NOWAIT 0x00000008
-#define RWF_APPEND 0x00000010
-#define RWF_NOAPPEND 0x00000020
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/un.h b/musl/sys/un.h
deleted file mode 100644
index 1a3193a..0000000
--- a/musl/sys/un.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _SYS_UN_H
-#define _SYS_UN_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_sa_family_t
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define __NEED_size_t
-#endif
-
-#include <bits/alltypes.h>
-
-struct sockaddr_un {
- sa_family_t sun_family;
- char sun_path[108];
-};
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-size_t strlen(const char *);
-#define SUN_LEN(s) (2+strlen((s)->sun_path))
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/user.h b/musl/sys/user.h
deleted file mode 100644
index 511caba..0000000
--- a/musl/sys/user.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _SYS_USER_H
-#define _SYS_USER_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <limits.h>
-#include <stdint.h>
-#include <unistd.h>
-
-#include <bits/alltypes.h>
-
-#undef __WORDSIZE
-#if __LONG_MAX == 0x7fffffffL
-#define __WORDSIZE 32
-#else
-#define __WORDSIZE 64
-#endif
-
-#include <bits/user.h>
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/utsname.h b/musl/sys/utsname.h
deleted file mode 100644
index 2c80fb5..0000000
--- a/musl/sys/utsname.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _SYS_UTSNAME_H
-#define _SYS_UTSNAME_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-struct utsname {
- char sysname[65];
- char nodename[65];
- char release[65];
- char version[65];
- char machine[65];
-#ifdef _GNU_SOURCE
- char domainname[65];
-#else
- char __domainname[65];
-#endif
-};
-
-int uname (struct utsname *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/sys/vfs.h b/musl/sys/vfs.h
deleted file mode 100644
index a899db2..0000000
--- a/musl/sys/vfs.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <sys/statfs.h>
diff --git a/musl/sys/vt.h b/musl/sys/vt.h
deleted file mode 100644
index 5000de4..0000000
--- a/musl/sys/vt.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <bits/vt.h>
diff --git a/musl/sys/wait.h b/musl/sys/wait.h
deleted file mode 100644
index 8ced671..0000000
--- a/musl/sys/wait.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _SYS_WAIT_H
-#define _SYS_WAIT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_pid_t
-#define __NEED_id_t
-#include <bits/alltypes.h>
-
-typedef enum {
- P_ALL = 0,
- P_PID = 1,
- P_PGID = 2,
- P_PIDFD = 3
-} idtype_t;
-
-pid_t wait (int *);
-pid_t waitpid (pid_t, int *, int );
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-#include <signal.h>
-int waitid (idtype_t, id_t, siginfo_t *, int);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#include <sys/resource.h>
-pid_t wait3 (int *, int, struct rusage *);
-pid_t wait4 (pid_t, int *, int, struct rusage *);
-#endif
-
-#define WNOHANG 1
-#define WUNTRACED 2
-
-#define WSTOPPED 2
-#define WEXITED 4
-#define WCONTINUED 8
-#define WNOWAIT 0x1000000
-
-#define __WNOTHREAD 0x20000000
-#define __WALL 0x40000000
-#define __WCLONE 0x80000000
-
-#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)
-#define WTERMSIG(s) ((s) & 0x7f)
-#define WSTOPSIG(s) WEXITSTATUS(s)
-#define WCOREDUMP(s) ((s) & 0x80)
-#define WIFEXITED(s) (!WTERMSIG(s))
-#define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001U)>>8) > 0x7f00)
-#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu)
-#define WIFCONTINUED(s) ((s) == 0xffff)
-
-#if _REDIR_TIME64
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-__REDIR(wait3, __wait3_time64);
-__REDIR(wait4, __wait4_time64);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/sys/xattr.h b/musl/sys/xattr.h
deleted file mode 100644
index eeeaafc..0000000
--- a/musl/sys/xattr.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef _SYS_XATTR_H
-#define _SYS_XATTR_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define __NEED_ssize_t
-#define __NEED_size_t
-#include <bits/alltypes.h>
-
-#define XATTR_CREATE 1
-#define XATTR_REPLACE 2
-
-ssize_t getxattr(const char *, const char *, void *, size_t);
-ssize_t lgetxattr(const char *, const char *, void *, size_t);
-ssize_t fgetxattr(int, const char *, void *, size_t);
-ssize_t listxattr(const char *, char *, size_t);
-ssize_t llistxattr(const char *, char *, size_t);
-ssize_t flistxattr(int, char *, size_t);
-int setxattr(const char *, const char *, const void *, size_t, int);
-int lsetxattr(const char *, const char *, const void *, size_t, int);
-int fsetxattr(int, const char *, const void *, size_t, int);
-int removexattr(const char *, const char *);
-int lremovexattr(const char *, const char *);
-int fremovexattr(int, const char *);
-
-#define __UAPI_DEF_XATTR 0
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/syscall.h b/musl/syscall.h
deleted file mode 100644
index 4c30578..0000000
--- a/musl/syscall.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <sys/syscall.h>
diff --git a/musl/sysexits.h b/musl/sysexits.h
deleted file mode 100644
index 16eeb41..0000000
--- a/musl/sysexits.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _SYSEXITS_H
-#define _SYSEXITS_H
-#define EX_OK 0
-#define EX__BASE 64
-#define EX_USAGE 64
-#define EX_DATAERR 65
-#define EX_NOINPUT 66
-#define EX_NOUSER 67
-#define EX_NOHOST 68
-#define EX_UNAVAILABLE 69
-#define EX_SOFTWARE 70
-#define EX_OSERR 71
-#define EX_OSFILE 72
-#define EX_CANTCREAT 73
-#define EX_IOERR 74
-#define EX_TEMPFAIL 75
-#define EX_PROTOCOL 76
-#define EX_NOPERM 77
-#define EX_CONFIG 78
-#define EX__MAX 78
-#endif
diff --git a/musl/syslog.h b/musl/syslog.h
deleted file mode 100644
index 57599e0..0000000
--- a/musl/syslog.h
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef _SYSLOG_H
-#define _SYSLOG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define LOG_EMERG 0
-#define LOG_ALERT 1
-#define LOG_CRIT 2
-#define LOG_ERR 3
-#define LOG_WARNING 4
-#define LOG_NOTICE 5
-#define LOG_INFO 6
-#define LOG_DEBUG 7
-
-#define LOG_PRIMASK 7
-#define LOG_PRI(p) ((p)&LOG_PRIMASK)
-#define LOG_MAKEPRI(f, p) ((f)|(p))
-
-#define LOG_MASK(p) (1<<(p))
-#define LOG_UPTO(p) ((1<<((p)+1))-1)
-
-#define LOG_KERN (0<<3)
-#define LOG_USER (1<<3)
-#define LOG_MAIL (2<<3)
-#define LOG_DAEMON (3<<3)
-#define LOG_AUTH (4<<3)
-#define LOG_SYSLOG (5<<3)
-#define LOG_LPR (6<<3)
-#define LOG_NEWS (7<<3)
-#define LOG_UUCP (8<<3)
-#define LOG_CRON (9<<3)
-#define LOG_AUTHPRIV (10<<3)
-#define LOG_FTP (11<<3)
-
-#define LOG_LOCAL0 (16<<3)
-#define LOG_LOCAL1 (17<<3)
-#define LOG_LOCAL2 (18<<3)
-#define LOG_LOCAL3 (19<<3)
-#define LOG_LOCAL4 (20<<3)
-#define LOG_LOCAL5 (21<<3)
-#define LOG_LOCAL6 (22<<3)
-#define LOG_LOCAL7 (23<<3)
-
-#define LOG_NFACILITIES 24
-#define LOG_FACMASK 0x3f8
-#define LOG_FAC(p) (((p)&LOG_FACMASK)>>3)
-
-#define LOG_PID 0x01
-#define LOG_CONS 0x02
-#define LOG_ODELAY 0x04
-#define LOG_NDELAY 0x08
-#define LOG_NOWAIT 0x10
-#define LOG_PERROR 0x20
-
-void closelog (void);
-void openlog (const char *, int, int);
-int setlogmask (int);
-void syslog (int, const char *, ...);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define _PATH_LOG "/dev/log"
-#define __NEED_va_list
-#include <bits/alltypes.h>
-void vsyslog (int, const char *, va_list);
-#if defined(SYSLOG_NAMES)
-#define INTERNAL_NOPRI 0x10
-#define INTERNAL_MARK (LOG_NFACILITIES<<3)
-typedef struct {
- char *c_name;
- int c_val;
-} CODE;
-#define prioritynames ((CODE *)(const CODE []){ \
- { "alert", LOG_ALERT }, { "crit", LOG_CRIT }, { "debug", LOG_DEBUG }, \
- { "emerg", LOG_EMERG }, { "err", LOG_ERR }, { "error", LOG_ERR }, \
- { "info", LOG_INFO }, { "none", INTERNAL_NOPRI }, \
- { "notice", LOG_NOTICE }, { "panic", LOG_EMERG }, \
- { "warn", LOG_WARNING }, { "warning", LOG_WARNING }, { 0, -1 } })
-#define facilitynames ((CODE *)(const CODE []){ \
- { "auth", LOG_AUTH }, { "authpriv", LOG_AUTHPRIV }, \
- { "cron", LOG_CRON }, { "daemon", LOG_DAEMON }, { "ftp", LOG_FTP }, \
- { "kern", LOG_KERN }, { "lpr", LOG_LPR }, { "mail", LOG_MAIL }, \
- { "mark", INTERNAL_MARK }, { "news", LOG_NEWS }, \
- { "security", LOG_AUTH }, { "syslog", LOG_SYSLOG }, \
- { "user", LOG_USER }, { "uucp", LOG_UUCP }, \
- { "local0", LOG_LOCAL0 }, { "local1", LOG_LOCAL1 }, \
- { "local2", LOG_LOCAL2 }, { "local3", LOG_LOCAL3 }, \
- { "local4", LOG_LOCAL4 }, { "local5", LOG_LOCAL5 }, \
- { "local6", LOG_LOCAL6 }, { "local7", LOG_LOCAL7 }, { 0, -1 } })
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/tar.h b/musl/tar.h
deleted file mode 100644
index be58984..0000000
--- a/musl/tar.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _TAR_H
-#define _TAR_H
-
-#define TSUID 04000
-#define TSGID 02000
-#define TSVTX 01000
-#define TUREAD 00400
-#define TUWRITE 00200
-#define TUEXEC 00100
-#define TGREAD 00040
-#define TGWRITE 00020
-#define TGEXEC 00010
-#define TOREAD 00004
-#define TOWRITE 00002
-#define TOEXEC 00001
-
-#define REGTYPE '0'
-#define AREGTYPE '\0'
-#define LNKTYPE '1'
-#define SYMTYPE '2'
-#define CHRTYPE '3'
-#define BLKTYPE '4'
-#define DIRTYPE '5'
-#define FIFOTYPE '6'
-#define CONTTYPE '7'
-
-#define TMAGIC "ustar"
-#define TMAGLEN 6
-
-#define TVERSION "00"
-#define TVERSLEN 2
-
-#endif
diff --git a/musl/termios.h b/musl/termios.h
deleted file mode 100644
index cbb5330..0000000
--- a/musl/termios.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef _TERMIOS_H
-#define _TERMIOS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_pid_t
-#define __NEED_struct_winsize
-
-#include <bits/alltypes.h>
-
-typedef unsigned char cc_t;
-typedef unsigned int speed_t;
-typedef unsigned int tcflag_t;
-
-#define NCCS 32
-
-#include <bits/termios.h>
-
-speed_t cfgetospeed (const struct termios *);
-speed_t cfgetispeed (const struct termios *);
-int cfsetospeed (struct termios *, speed_t);
-int cfsetispeed (struct termios *, speed_t);
-
-int tcgetattr (int, struct termios *);
-int tcsetattr (int, int, const struct termios *);
-
-int tcgetwinsize (int, struct winsize *);
-int tcsetwinsize (int, const struct winsize *);
-
-int tcsendbreak (int, int);
-int tcdrain (int);
-int tcflush (int, int);
-int tcflow (int, int);
-
-pid_t tcgetsid (int);
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-void cfmakeraw(struct termios *);
-int cfsetspeed(struct termios *, speed_t);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/tgmath.h b/musl/tgmath.h
deleted file mode 100644
index e41ccac..0000000
--- a/musl/tgmath.h
+++ /dev/null
@@ -1,270 +0,0 @@
-#ifndef _TGMATH_H
-#define _TGMATH_H
-
-/*
-the return types are only correct with gcc (__GNUC__)
-otherwise they are long double or long double complex
-
-the long double version of a function is never chosen when
-sizeof(double) == sizeof(long double)
-(but the return type is set correctly with gcc)
-*/
-
-#include <math.h>
-#include <complex.h>
-
-#define __IS_FP(x) (sizeof((x)+1ULL) == sizeof((x)+1.0f))
-#define __IS_CX(x) (__IS_FP(x) && sizeof(x) == sizeof((x)+I))
-#define __IS_REAL(x) (__IS_FP(x) && 2*sizeof(x) == sizeof((x)+I))
-
-#define __FLT(x) (__IS_REAL(x) && sizeof(x) == sizeof(float))
-#define __LDBL(x) (__IS_REAL(x) && sizeof(x) == sizeof(long double) && sizeof(long double) != sizeof(double))
-
-#define __FLTCX(x) (__IS_CX(x) && sizeof(x) == sizeof(float complex))
-#define __DBLCX(x) (__IS_CX(x) && sizeof(x) == sizeof(double complex))
-#define __LDBLCX(x) (__IS_CX(x) && sizeof(x) == sizeof(long double complex) && sizeof(long double) != sizeof(double))
-
-/* return type */
-
-#ifdef __GNUC__
-/*
-the result must be casted to the right type
-(otherwise the result type is determined by the conversion
-rules applied to all the function return types so it is long
-double or long double complex except for integral functions)
-
-this cannot be done in c99, so the typeof gcc extension is
-used and that the type of ?: depends on wether an operand is
-a null pointer constant or not
-(in c11 _Generic can be used)
-
-the c arguments below must be integer constant expressions
-so they can be in null pointer constants
-(__IS_FP above was carefully chosen this way)
-*/
-/* if c then t else void */
-#define __type1(c,t) __typeof__(*(0?(t*)0:(void*)!(c)))
-/* if c then t1 else t2 */
-#define __type2(c,t1,t2) __typeof__(*(0?(__type1(c,t1)*)0:(__type1(!(c),t2)*)0))
-/* cast to double when x is integral, otherwise use typeof(x) */
-#define __RETCAST(x) ( \
- __type2(__IS_FP(x), __typeof__(x), double))
-/* 2 args case, should work for complex types (cpow) */
-#define __RETCAST_2(x, y) ( \
- __type2(__IS_FP(x) && __IS_FP(y), \
- __typeof__((x)+(y)), \
- __typeof__((x)+(y)+1.0)))
-/* 3 args case (fma only) */
-#define __RETCAST_3(x, y, z) ( \
- __type2(__IS_FP(x) && __IS_FP(y) && __IS_FP(z), \
- __typeof__((x)+(y)+(z)), \
- __typeof__((x)+(y)+(z)+1.0)))
-/* drop complex from the type of x */
-/* TODO: wrong when sizeof(long double)==sizeof(double) */
-#define __RETCAST_REAL(x) ( \
- __type2(__IS_FP(x) && sizeof((x)+I) == sizeof(float complex), float, \
- __type2(sizeof((x)+1.0+I) == sizeof(double complex), double, \
- long double)))
-/* add complex to the type of x */
-#define __RETCAST_CX(x) (__typeof__(__RETCAST(x)0+I))
-#else
-#define __RETCAST(x)
-#define __RETCAST_2(x, y)
-#define __RETCAST_3(x, y, z)
-#define __RETCAST_REAL(x)
-#define __RETCAST_CX(x)
-#endif
-
-/* function selection */
-
-#define __tg_real_nocast(fun, x) ( \
- __FLT(x) ? fun ## f (x) : \
- __LDBL(x) ? fun ## l (x) : \
- fun(x) )
-
-#define __tg_real(fun, x) (__RETCAST(x)__tg_real_nocast(fun, x))
-
-#define __tg_real_2_1(fun, x, y) (__RETCAST(x)( \
- __FLT(x) ? fun ## f (x, y) : \
- __LDBL(x) ? fun ## l (x, y) : \
- fun(x, y) ))
-
-#define __tg_real_2(fun, x, y) (__RETCAST_2(x, y)( \
- __FLT(x) && __FLT(y) ? fun ## f (x, y) : \
- __LDBL((x)+(y)) ? fun ## l (x, y) : \
- fun(x, y) ))
-
-#define __tg_complex(fun, x) (__RETCAST_CX(x)( \
- __FLTCX((x)+I) && __IS_FP(x) ? fun ## f (x) : \
- __LDBLCX((x)+I) ? fun ## l (x) : \
- fun(x) ))
-
-#define __tg_complex_retreal(fun, x) (__RETCAST_REAL(x)( \
- __FLTCX((x)+I) && __IS_FP(x) ? fun ## f (x) : \
- __LDBLCX((x)+I) ? fun ## l (x) : \
- fun(x) ))
-
-#define __tg_real_complex(fun, x) (__RETCAST(x)( \
- __FLTCX(x) ? c ## fun ## f (x) : \
- __DBLCX(x) ? c ## fun (x) : \
- __LDBLCX(x) ? c ## fun ## l (x) : \
- __FLT(x) ? fun ## f (x) : \
- __LDBL(x) ? fun ## l (x) : \
- fun(x) ))
-
-/* special cases */
-
-#define __tg_real_remquo(x, y, z) (__RETCAST_2(x, y)( \
- __FLT(x) && __FLT(y) ? remquof(x, y, z) : \
- __LDBL((x)+(y)) ? remquol(x, y, z) : \
- remquo(x, y, z) ))
-
-#define __tg_real_fma(x, y, z) (__RETCAST_3(x, y, z)( \
- __FLT(x) && __FLT(y) && __FLT(z) ? fmaf(x, y, z) : \
- __LDBL((x)+(y)+(z)) ? fmal(x, y, z) : \
- fma(x, y, z) ))
-
-#define __tg_real_complex_pow(x, y) (__RETCAST_2(x, y)( \
- __FLTCX((x)+(y)) && __IS_FP(x) && __IS_FP(y) ? cpowf(x, y) : \
- __FLTCX((x)+(y)) ? cpow(x, y) : \
- __DBLCX((x)+(y)) ? cpow(x, y) : \
- __LDBLCX((x)+(y)) ? cpowl(x, y) : \
- __FLT(x) && __FLT(y) ? powf(x, y) : \
- __LDBL((x)+(y)) ? powl(x, y) : \
- pow(x, y) ))
-
-#define __tg_real_complex_fabs(x) (__RETCAST_REAL(x)( \
- __FLTCX(x) ? cabsf(x) : \
- __DBLCX(x) ? cabs(x) : \
- __LDBLCX(x) ? cabsl(x) : \
- __FLT(x) ? fabsf(x) : \
- __LDBL(x) ? fabsl(x) : \
- fabs(x) ))
-
-/* suppress any macros in math.h or complex.h */
-
-#undef acos
-#undef acosh
-#undef asin
-#undef asinh
-#undef atan
-#undef atan2
-#undef atanh
-#undef carg
-#undef cbrt
-#undef ceil
-#undef cimag
-#undef conj
-#undef copysign
-#undef cos
-#undef cosh
-#undef cproj
-#undef creal
-#undef erf
-#undef erfc
-#undef exp
-#undef exp2
-#undef expm1
-#undef fabs
-#undef fdim
-#undef floor
-#undef fma
-#undef fmax
-#undef fmin
-#undef fmod
-#undef frexp
-#undef hypot
-#undef ilogb
-#undef ldexp
-#undef lgamma
-#undef llrint
-#undef llround
-#undef log
-#undef log10
-#undef log1p
-#undef log2
-#undef logb
-#undef lrint
-#undef lround
-#undef nearbyint
-#undef nextafter
-#undef nexttoward
-#undef pow
-#undef remainder
-#undef remquo
-#undef rint
-#undef round
-#undef scalbln
-#undef scalbn
-#undef sin
-#undef sinh
-#undef sqrt
-#undef tan
-#undef tanh
-#undef tgamma
-#undef trunc
-
-/* tg functions */
-
-#define acos(x) __tg_real_complex(acos, (x))
-#define acosh(x) __tg_real_complex(acosh, (x))
-#define asin(x) __tg_real_complex(asin, (x))
-#define asinh(x) __tg_real_complex(asinh, (x))
-#define atan(x) __tg_real_complex(atan, (x))
-#define atan2(x,y) __tg_real_2(atan2, (x), (y))
-#define atanh(x) __tg_real_complex(atanh, (x))
-#define carg(x) __tg_complex_retreal(carg, (x))
-#define cbrt(x) __tg_real(cbrt, (x))
-#define ceil(x) __tg_real(ceil, (x))
-#define cimag(x) __tg_complex_retreal(cimag, (x))
-#define conj(x) __tg_complex(conj, (x))
-#define copysign(x,y) __tg_real_2(copysign, (x), (y))
-#define cos(x) __tg_real_complex(cos, (x))
-#define cosh(x) __tg_real_complex(cosh, (x))
-#define cproj(x) __tg_complex(cproj, (x))
-#define creal(x) __tg_complex_retreal(creal, (x))
-#define erf(x) __tg_real(erf, (x))
-#define erfc(x) __tg_real(erfc, (x))
-#define exp(x) __tg_real_complex(exp, (x))
-#define exp2(x) __tg_real(exp2, (x))
-#define expm1(x) __tg_real(expm1, (x))
-#define fabs(x) __tg_real_complex_fabs(x)
-#define fdim(x,y) __tg_real_2(fdim, (x), (y))
-#define floor(x) __tg_real(floor, (x))
-#define fma(x,y,z) __tg_real_fma((x), (y), (z))
-#define fmax(x,y) __tg_real_2(fmax, (x), (y))
-#define fmin(x,y) __tg_real_2(fmin, (x), (y))
-#define fmod(x,y) __tg_real_2(fmod, (x), (y))
-#define frexp(x,y) __tg_real_2_1(frexp, (x), (y))
-#define hypot(x,y) __tg_real_2(hypot, (x), (y))
-#define ilogb(x) __tg_real_nocast(ilogb, (x))
-#define ldexp(x,y) __tg_real_2_1(ldexp, (x), (y))
-#define lgamma(x) __tg_real(lgamma, (x))
-#define llrint(x) __tg_real_nocast(llrint, (x))
-#define llround(x) __tg_real_nocast(llround, (x))
-#define log(x) __tg_real_complex(log, (x))
-#define log10(x) __tg_real(log10, (x))
-#define log1p(x) __tg_real(log1p, (x))
-#define log2(x) __tg_real(log2, (x))
-#define logb(x) __tg_real(logb, (x))
-#define lrint(x) __tg_real_nocast(lrint, (x))
-#define lround(x) __tg_real_nocast(lround, (x))
-#define nearbyint(x) __tg_real(nearbyint, (x))
-#define nextafter(x,y) __tg_real_2(nextafter, (x), (y))
-#define nexttoward(x,y) __tg_real_2(nexttoward, (x), (y))
-#define pow(x,y) __tg_real_complex_pow((x), (y))
-#define remainder(x,y) __tg_real_2(remainder, (x), (y))
-#define remquo(x,y,z) __tg_real_remquo((x), (y), (z))
-#define rint(x) __tg_real(rint, (x))
-#define round(x) __tg_real(round, (x))
-#define scalbln(x,y) __tg_real_2_1(scalbln, (x), (y))
-#define scalbn(x,y) __tg_real_2_1(scalbn, (x), (y))
-#define sin(x) __tg_real_complex(sin, (x))
-#define sinh(x) __tg_real_complex(sinh, (x))
-#define sqrt(x) __tg_real_complex(sqrt, (x))
-#define tan(x) __tg_real_complex(tan, (x))
-#define tanh(x) __tg_real_complex(tanh, (x))
-#define tgamma(x) __tg_real(tgamma, (x))
-#define trunc(x) __tg_real(trunc, (x))
-
-#endif
diff --git a/musl/threads.h b/musl/threads.h
deleted file mode 100644
index 52ec310..0000000
--- a/musl/threads.h
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef _THREADS_H
-#define _THREADS_H
-
-#include <features.h>
-#include <time.h>
-
-#ifdef __cplusplus
-extern "C" {
-typedef unsigned long thrd_t;
-#else
-typedef struct __pthread *thrd_t;
-#define thread_local _Thread_local
-#endif
-
-typedef int once_flag;
-typedef unsigned tss_t;
-typedef int (*thrd_start_t)(void *);
-typedef void (*tss_dtor_t)(void *);
-
-#define __NEED_cnd_t
-#define __NEED_mtx_t
-
-#include <bits/alltypes.h>
-
-#define TSS_DTOR_ITERATIONS 4
-
-enum {
- thrd_success = 0,
- thrd_busy = 1,
- thrd_error = 2,
- thrd_nomem = 3,
- thrd_timedout = 4,
-};
-
-enum {
- mtx_plain = 0,
- mtx_recursive = 1,
- mtx_timed = 2,
-};
-
-#define ONCE_FLAG_INIT 0
-
-int thrd_create(thrd_t *, thrd_start_t, void *);
-_Noreturn void thrd_exit(int);
-
-int thrd_detach(thrd_t);
-int thrd_join(thrd_t, int *);
-
-int thrd_sleep(const struct timespec *, struct timespec *);
-void thrd_yield(void);
-
-thrd_t thrd_current(void);
-int thrd_equal(thrd_t, thrd_t);
-#ifndef __cplusplus
-#define thrd_equal(A, B) ((A) == (B))
-#endif
-
-void call_once(once_flag *, void (*)(void));
-
-int mtx_init(mtx_t *, int);
-void mtx_destroy(mtx_t *);
-
-int mtx_lock(mtx_t *);
-int mtx_timedlock(mtx_t *__restrict, const struct timespec *__restrict);
-int mtx_trylock(mtx_t *);
-int mtx_unlock(mtx_t *);
-
-int cnd_init(cnd_t *);
-void cnd_destroy(cnd_t *);
-
-int cnd_broadcast(cnd_t *);
-int cnd_signal(cnd_t *);
-
-int cnd_timedwait(cnd_t *__restrict, mtx_t *__restrict, const struct timespec *__restrict);
-int cnd_wait(cnd_t *, mtx_t *);
-
-int tss_create(tss_t *, tss_dtor_t);
-void tss_delete(tss_t);
-
-int tss_set(tss_t, void *);
-void *tss_get(tss_t);
-
-#if _REDIR_TIME64
-__REDIR(thrd_sleep, __thrd_sleep_time64);
-__REDIR(mtx_timedlock, __mtx_timedlock_time64);
-__REDIR(cnd_timedwait, __cnd_timedwait_time64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/time.h b/musl/time.h
deleted file mode 100644
index 3d94837..0000000
--- a/musl/time.h
+++ /dev/null
@@ -1,168 +0,0 @@
-#ifndef _TIME_H
-#define _TIME_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#if __cplusplus >= 201103L
-#define NULL nullptr
-#elif defined(__cplusplus)
-#define NULL 0L
-#else
-#define NULL ((void*)0)
-#endif
-
-
-#define __NEED_size_t
-#define __NEED_time_t
-#define __NEED_clock_t
-#define __NEED_struct_timespec
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-#define __NEED_clockid_t
-#define __NEED_timer_t
-#define __NEED_pid_t
-#define __NEED_locale_t
-#endif
-
-#include <bits/alltypes.h>
-
-#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
-#define __tm_gmtoff tm_gmtoff
-#define __tm_zone tm_zone
-#endif
-
-struct tm {
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday;
- int tm_mon;
- int tm_year;
- int tm_wday;
- int tm_yday;
- int tm_isdst;
- long __tm_gmtoff;
- const char *__tm_zone;
-};
-
-clock_t clock (void);
-time_t time (time_t *);
-double difftime (time_t, time_t);
-time_t mktime (struct tm *);
-size_t strftime (char *__restrict, size_t, const char *__restrict, const struct tm *__restrict);
-struct tm *gmtime (const time_t *);
-struct tm *localtime (const time_t *);
-char *asctime (const struct tm *);
-char *ctime (const time_t *);
-int timespec_get(struct timespec *, int);
-
-#define CLOCKS_PER_SEC 1000000L
-
-#define TIME_UTC 1
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-
-size_t strftime_l (char * __restrict, size_t, const char * __restrict, const struct tm * __restrict, locale_t);
-
-struct tm *gmtime_r (const time_t *__restrict, struct tm *__restrict);
-struct tm *localtime_r (const time_t *__restrict, struct tm *__restrict);
-char *asctime_r (const struct tm *__restrict, char *__restrict);
-char *ctime_r (const time_t *, char *);
-
-void tzset (void);
-
-struct itimerspec {
- struct timespec it_interval;
- struct timespec it_value;
-};
-
-#define CLOCK_REALTIME 0
-#define CLOCK_MONOTONIC 1
-#define CLOCK_PROCESS_CPUTIME_ID 2
-#define CLOCK_THREAD_CPUTIME_ID 3
-#define CLOCK_MONOTONIC_RAW 4
-#define CLOCK_REALTIME_COARSE 5
-#define CLOCK_MONOTONIC_COARSE 6
-#define CLOCK_BOOTTIME 7
-#define CLOCK_REALTIME_ALARM 8
-#define CLOCK_BOOTTIME_ALARM 9
-#define CLOCK_SGI_CYCLE 10
-#define CLOCK_TAI 11
-
-#define TIMER_ABSTIME 1
-
-int nanosleep (const struct timespec *, struct timespec *);
-int clock_getres (clockid_t, struct timespec *);
-int clock_gettime (clockid_t, struct timespec *);
-int clock_settime (clockid_t, const struct timespec *);
-int clock_nanosleep (clockid_t, int, const struct timespec *, struct timespec *);
-int clock_getcpuclockid (pid_t, clockid_t *);
-
-struct sigevent;
-int timer_create (clockid_t, struct sigevent *__restrict, timer_t *__restrict);
-int timer_delete (timer_t);
-int timer_settime (timer_t, int, const struct itimerspec *__restrict, struct itimerspec *__restrict);
-int timer_gettime (timer_t, struct itimerspec *);
-int timer_getoverrun (timer_t);
-
-extern char *tzname[2];
-
-#endif
-
-
-#if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
-char *strptime (const char *__restrict, const char *__restrict, struct tm *__restrict);
-extern int daylight;
-extern long timezone;
-extern int getdate_err;
-struct tm *getdate (const char *);
-#endif
-
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-int stime(const time_t *);
-time_t timegm(struct tm *);
-#endif
-
-#if _REDIR_TIME64
-__REDIR(time, __time64);
-__REDIR(difftime, __difftime64);
-__REDIR(mktime, __mktime64);
-__REDIR(gmtime, __gmtime64);
-__REDIR(localtime, __localtime64);
-__REDIR(ctime, __ctime64);
-__REDIR(timespec_get, __timespec_get_time64);
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
- || defined(_BSD_SOURCE)
-__REDIR(gmtime_r, __gmtime64_r);
-__REDIR(localtime_r, __localtime64_r);
-__REDIR(ctime_r, __ctime64_r);
-__REDIR(nanosleep, __nanosleep_time64);
-__REDIR(clock_getres, __clock_getres_time64);
-__REDIR(clock_gettime, __clock_gettime64);
-__REDIR(clock_settime, __clock_settime64);
-__REDIR(clock_nanosleep, __clock_nanosleep_time64);
-__REDIR(timer_settime, __timer_settime64);
-__REDIR(timer_gettime, __timer_gettime64);
-#endif
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-__REDIR(stime, __stime64);
-__REDIR(timegm, __timegm_time64);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif
diff --git a/musl/uchar.h b/musl/uchar.h
deleted file mode 100644
index 7e5c4d4..0000000
--- a/musl/uchar.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _UCHAR_H
-#define _UCHAR_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if __cplusplus < 201103L
-typedef unsigned short char16_t;
-typedef unsigned char32_t;
-#endif
-
-#define __NEED_mbstate_t
-#define __NEED_size_t
-
-#include <features.h>
-#include <bits/alltypes.h>
-
-size_t c16rtomb(char *__restrict, char16_t, mbstate_t *__restrict);
-size_t mbrtoc16(char16_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict);
-
-size_t c32rtomb(char *__restrict, char32_t, mbstate_t *__restrict);
-size_t mbrtoc32(char32_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/ucontext.h b/musl/ucontext.h
deleted file mode 100644
index 0f75712..0000000
--- a/musl/ucontext.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _UCONTEXT_H
-#define _UCONTEXT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#include <signal.h>
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define NGREG (sizeof(gregset_t)/sizeof(greg_t))
-#endif
-
-struct __ucontext;
-
-int getcontext(struct __ucontext *);
-void makecontext(struct __ucontext *, void (*)(), int, ...);
-int setcontext(const struct __ucontext *);
-int swapcontext(struct __ucontext *, const struct __ucontext *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/musl/ulimit.h b/musl/ulimit.h
deleted file mode 100644
index efdcd31..0000000
--- a/musl/ulimit.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _ULIMIT_H
-#define _ULIMIT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define UL_GETFSIZE 1
-#define UL_SETFSIZE 2
-
-long ulimit (int, ...);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/unistd.h b/musl/unistd.h
deleted file mode 100644
index 42b0e82..0000000
--- a/musl/unistd.h
+++ /dev/null
@@ -1,485 +0,0 @@
-#ifndef _UNISTD_H
-#define _UNISTD_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define STDIN_FILENO 0
-#define STDOUT_FILENO 1
-#define STDERR_FILENO 2
-
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-#define SEEK_DATA 3
-#define SEEK_HOLE 4
-
-#if __cplusplus >= 201103L
-#define NULL nullptr
-#elif defined(__cplusplus)
-#define NULL 0L
-#else
-#define NULL ((void*)0)
-#endif
-
-#define __NEED_size_t
-#define __NEED_ssize_t
-#define __NEED_uid_t
-#define __NEED_gid_t
-#define __NEED_off_t
-#define __NEED_pid_t
-#define __NEED_intptr_t
-#define __NEED_useconds_t
-
-#include <bits/alltypes.h>
-
-int pipe(int [2]);
-int pipe2(int [2], int);
-int close(int);
-int posix_close(int, int);
-int dup(int);
-int dup2(int, int);
-int dup3(int, int, int);
-off_t lseek(int, off_t, int);
-int fsync(int);
-int fdatasync(int);
-
-ssize_t read(int, void *, size_t);
-ssize_t write(int, const void *, size_t);
-ssize_t pread(int, void *, size_t, off_t);
-ssize_t pwrite(int, const void *, size_t, off_t);
-
-int chown(const char *, uid_t, gid_t);
-int fchown(int, uid_t, gid_t);
-int lchown(const char *, uid_t, gid_t);
-int fchownat(int, const char *, uid_t, gid_t, int);
-
-int link(const char *, const char *);
-int linkat(int, const char *, int, const char *, int);
-int symlink(const char *, const char *);
-int symlinkat(const char *, int, const char *);
-ssize_t readlink(const char *__restrict, char *__restrict, size_t);
-ssize_t readlinkat(int, const char *__restrict, char *__restrict, size_t);
-int unlink(const char *);
-int unlinkat(int, const char *, int);
-int rmdir(const char *);
-int truncate(const char *, off_t);
-int ftruncate(int, off_t);
-
-#define F_OK 0
-#define R_OK 4
-#define W_OK 2
-#define X_OK 1
-
-int access(const char *, int);
-int faccessat(int, const char *, int, int);
-
-int chdir(const char *);
-int fchdir(int);
-char *getcwd(char *, size_t);
-
-unsigned alarm(unsigned);
-unsigned sleep(unsigned);
-int pause(void);
-
-pid_t fork(void);
-pid_t _Fork(void);
-int execve(const char *, char *const [], char *const []);
-int execv(const char *, char *const []);
-int execle(const char *, const char *, ...);
-int execl(const char *, const char *, ...);
-int execvp(const char *, char *const []);
-int execlp(const char *, const char *, ...);
-int fexecve(int, char *const [], char *const []);
-_Noreturn void _exit(int);
-
-pid_t getpid(void);
-pid_t getppid(void);
-pid_t getpgrp(void);
-pid_t getpgid(pid_t);
-int setpgid(pid_t, pid_t);
-pid_t setsid(void);
-pid_t getsid(pid_t);
-char *ttyname(int);
-int ttyname_r(int, char *, size_t);
-int isatty(int);
-pid_t tcgetpgrp(int);
-int tcsetpgrp(int, pid_t);
-
-uid_t getuid(void);
-uid_t geteuid(void);
-gid_t getgid(void);
-gid_t getegid(void);
-int getgroups(int, gid_t []);
-int setuid(uid_t);
-int seteuid(uid_t);
-int setgid(gid_t);
-int setegid(gid_t);
-
-char *getlogin(void);
-int getlogin_r(char *, size_t);
-int gethostname(char *, size_t);
-char *ctermid(char *);
-
-int getopt(int, char * const [], const char *);
-extern char *optarg;
-extern int optind, opterr, optopt;
-
-long pathconf(const char *, int);
-long fpathconf(int, int);
-long sysconf(int);
-size_t confstr(int, char *, size_t);
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define F_ULOCK 0
-#define F_LOCK 1
-#define F_TLOCK 2
-#define F_TEST 3
-int setreuid(uid_t, uid_t);
-int setregid(gid_t, gid_t);
-int lockf(int, int, off_t);
-long gethostid(void);
-int nice(int);
-void sync(void);
-pid_t setpgrp(void);
-char *crypt(const char *, const char *);
-void encrypt(char *, int);
-void swab(const void *__restrict, void *__restrict, ssize_t);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \
- || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
-int usleep(unsigned);
-unsigned ualarm(unsigned, unsigned);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define L_SET 0
-#define L_INCR 1
-#define L_XTND 2
-int brk(void *);
-void *sbrk(intptr_t);
-pid_t vfork(void);
-int vhangup(void);
-int chroot(const char *);
-int getpagesize(void);
-int getdtablesize(void);
-int sethostname(const char *, size_t);
-int getdomainname(char *, size_t);
-int setdomainname(const char *, size_t);
-int setgroups(size_t, const gid_t *);
-char *getpass(const char *);
-int daemon(int, int);
-void setusershell(void);
-void endusershell(void);
-char *getusershell(void);
-int acct(const char *);
-long syscall(long, ...);
-int execvpe(const char *, char *const [], char *const []);
-int issetugid(void);
-int getentropy(void *, size_t);
-extern int optreset;
-#endif
-
-#ifdef _GNU_SOURCE
-extern char **environ;
-int setresuid(uid_t, uid_t, uid_t);
-int setresgid(gid_t, gid_t, gid_t);
-int getresuid(uid_t *, uid_t *, uid_t *);
-int getresgid(gid_t *, gid_t *, gid_t *);
-char *get_current_dir_name(void);
-int syncfs(int);
-int euidaccess(const char *, int);
-int eaccess(const char *, int);
-ssize_t copy_file_range(int, off_t *, int, off_t *, size_t, unsigned);
-pid_t gettid(void);
-#endif
-
-#if defined(_LARGEFILE64_SOURCE)
-#define lseek64 lseek
-#define pread64 pread
-#define pwrite64 pwrite
-#define truncate64 truncate
-#define ftruncate64 ftruncate
-#define lockf64 lockf
-#define off64_t off_t
-#endif
-
-#define POSIX_CLOSE_RESTART 0
-
-#define _XOPEN_VERSION 700
-#define _XOPEN_UNIX 1
-#define _XOPEN_ENH_I18N 1
-
-#define _POSIX_VERSION 200809L
-#define _POSIX2_VERSION _POSIX_VERSION
-
-#define _POSIX_ADVISORY_INFO _POSIX_VERSION
-#define _POSIX_CHOWN_RESTRICTED 1
-#define _POSIX_IPV6 _POSIX_VERSION
-#define _POSIX_JOB_CONTROL 1
-#define _POSIX_MAPPED_FILES _POSIX_VERSION
-#define _POSIX_MEMLOCK _POSIX_VERSION
-#define _POSIX_MEMLOCK_RANGE _POSIX_VERSION
-#define _POSIX_MEMORY_PROTECTION _POSIX_VERSION
-#define _POSIX_MESSAGE_PASSING _POSIX_VERSION
-#define _POSIX_FSYNC _POSIX_VERSION
-#define _POSIX_NO_TRUNC 1
-#define _POSIX_RAW_SOCKETS _POSIX_VERSION
-#define _POSIX_REALTIME_SIGNALS _POSIX_VERSION
-#define _POSIX_REGEXP 1
-#define _POSIX_SAVED_IDS 1
-#define _POSIX_SHELL 1
-#define _POSIX_SPAWN _POSIX_VERSION
-#define _POSIX_VDISABLE 0
-
-#define _POSIX_THREADS _POSIX_VERSION
-#define _POSIX_THREAD_PROCESS_SHARED _POSIX_VERSION
-#define _POSIX_THREAD_SAFE_FUNCTIONS _POSIX_VERSION
-#define _POSIX_THREAD_ATTR_STACKADDR _POSIX_VERSION
-#define _POSIX_THREAD_ATTR_STACKSIZE _POSIX_VERSION
-#define _POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_VERSION
-#define _POSIX_THREAD_CPUTIME _POSIX_VERSION
-#define _POSIX_TIMERS _POSIX_VERSION
-#define _POSIX_TIMEOUTS _POSIX_VERSION
-#define _POSIX_MONOTONIC_CLOCK _POSIX_VERSION
-#define _POSIX_CPUTIME _POSIX_VERSION
-#define _POSIX_CLOCK_SELECTION _POSIX_VERSION
-#define _POSIX_BARRIERS _POSIX_VERSION
-#define _POSIX_SPIN_LOCKS _POSIX_VERSION
-#define _POSIX_READER_WRITER_LOCKS _POSIX_VERSION
-#define _POSIX_ASYNCHRONOUS_IO _POSIX_VERSION
-#define _POSIX_SEMAPHORES _POSIX_VERSION
-#define _POSIX_SHARED_MEMORY_OBJECTS _POSIX_VERSION
-
-#define _POSIX2_C_BIND _POSIX_VERSION
-
-#if __LONG_MAX == 0x7fffffffL
-#define _POSIX_V6_ILP32_OFFBIG 1
-#define _POSIX_V7_ILP32_OFFBIG 1
-#else
-#define _POSIX_V6_LP64_OFF64 1
-#define _POSIX_V7_LP64_OFF64 1
-#endif
-
-
-
-#define _PC_LINK_MAX 0
-#define _PC_MAX_CANON 1
-#define _PC_MAX_INPUT 2
-#define _PC_NAME_MAX 3
-#define _PC_PATH_MAX 4
-#define _PC_PIPE_BUF 5
-#define _PC_CHOWN_RESTRICTED 6
-#define _PC_NO_TRUNC 7
-#define _PC_VDISABLE 8
-#define _PC_SYNC_IO 9
-#define _PC_ASYNC_IO 10
-#define _PC_PRIO_IO 11
-#define _PC_SOCK_MAXBUF 12
-#define _PC_FILESIZEBITS 13
-#define _PC_REC_INCR_XFER_SIZE 14
-#define _PC_REC_MAX_XFER_SIZE 15
-#define _PC_REC_MIN_XFER_SIZE 16
-#define _PC_REC_XFER_ALIGN 17
-#define _PC_ALLOC_SIZE_MIN 18
-#define _PC_SYMLINK_MAX 19
-#define _PC_2_SYMLINKS 20
-
-#define _SC_ARG_MAX 0
-#define _SC_CHILD_MAX 1
-#define _SC_CLK_TCK 2
-#define _SC_NGROUPS_MAX 3
-#define _SC_OPEN_MAX 4
-#define _SC_STREAM_MAX 5
-#define _SC_TZNAME_MAX 6
-#define _SC_JOB_CONTROL 7
-#define _SC_SAVED_IDS 8
-#define _SC_REALTIME_SIGNALS 9
-#define _SC_PRIORITY_SCHEDULING 10
-#define _SC_TIMERS 11
-#define _SC_ASYNCHRONOUS_IO 12
-#define _SC_PRIORITIZED_IO 13
-#define _SC_SYNCHRONIZED_IO 14
-#define _SC_FSYNC 15
-#define _SC_MAPPED_FILES 16
-#define _SC_MEMLOCK 17
-#define _SC_MEMLOCK_RANGE 18
-#define _SC_MEMORY_PROTECTION 19
-#define _SC_MESSAGE_PASSING 20
-#define _SC_SEMAPHORES 21
-#define _SC_SHARED_MEMORY_OBJECTS 22
-#define _SC_AIO_LISTIO_MAX 23
-#define _SC_AIO_MAX 24
-#define _SC_AIO_PRIO_DELTA_MAX 25
-#define _SC_DELAYTIMER_MAX 26
-#define _SC_MQ_OPEN_MAX 27
-#define _SC_MQ_PRIO_MAX 28
-#define _SC_VERSION 29
-#define _SC_PAGE_SIZE 30
-#define _SC_PAGESIZE 30 /* !! */
-#define _SC_RTSIG_MAX 31
-#define _SC_SEM_NSEMS_MAX 32
-#define _SC_SEM_VALUE_MAX 33
-#define _SC_SIGQUEUE_MAX 34
-#define _SC_TIMER_MAX 35
-#define _SC_BC_BASE_MAX 36
-#define _SC_BC_DIM_MAX 37
-#define _SC_BC_SCALE_MAX 38
-#define _SC_BC_STRING_MAX 39
-#define _SC_COLL_WEIGHTS_MAX 40
-#define _SC_EXPR_NEST_MAX 42
-#define _SC_LINE_MAX 43
-#define _SC_RE_DUP_MAX 44
-#define _SC_2_VERSION 46
-#define _SC_2_C_BIND 47
-#define _SC_2_C_DEV 48
-#define _SC_2_FORT_DEV 49
-#define _SC_2_FORT_RUN 50
-#define _SC_2_SW_DEV 51
-#define _SC_2_LOCALEDEF 52
-#define _SC_UIO_MAXIOV 60 /* !! */
-#define _SC_IOV_MAX 60
-#define _SC_THREADS 67
-#define _SC_THREAD_SAFE_FUNCTIONS 68
-#define _SC_GETGR_R_SIZE_MAX 69
-#define _SC_GETPW_R_SIZE_MAX 70
-#define _SC_LOGIN_NAME_MAX 71
-#define _SC_TTY_NAME_MAX 72
-#define _SC_THREAD_DESTRUCTOR_ITERATIONS 73
-#define _SC_THREAD_KEYS_MAX 74
-#define _SC_THREAD_STACK_MIN 75
-#define _SC_THREAD_THREADS_MAX 76
-#define _SC_THREAD_ATTR_STACKADDR 77
-#define _SC_THREAD_ATTR_STACKSIZE 78
-#define _SC_THREAD_PRIORITY_SCHEDULING 79
-#define _SC_THREAD_PRIO_INHERIT 80
-#define _SC_THREAD_PRIO_PROTECT 81
-#define _SC_THREAD_PROCESS_SHARED 82
-#define _SC_NPROCESSORS_CONF 83
-#define _SC_NPROCESSORS_ONLN 84
-#define _SC_PHYS_PAGES 85
-#define _SC_AVPHYS_PAGES 86
-#define _SC_ATEXIT_MAX 87
-#define _SC_PASS_MAX 88
-#define _SC_XOPEN_VERSION 89
-#define _SC_XOPEN_XCU_VERSION 90
-#define _SC_XOPEN_UNIX 91
-#define _SC_XOPEN_CRYPT 92
-#define _SC_XOPEN_ENH_I18N 93
-#define _SC_XOPEN_SHM 94
-#define _SC_2_CHAR_TERM 95
-#define _SC_2_UPE 97
-#define _SC_XOPEN_XPG2 98
-#define _SC_XOPEN_XPG3 99
-#define _SC_XOPEN_XPG4 100
-#define _SC_NZERO 109
-#define _SC_XBS5_ILP32_OFF32 125
-#define _SC_XBS5_ILP32_OFFBIG 126
-#define _SC_XBS5_LP64_OFF64 127
-#define _SC_XBS5_LPBIG_OFFBIG 128
-#define _SC_XOPEN_LEGACY 129
-#define _SC_XOPEN_REALTIME 130
-#define _SC_XOPEN_REALTIME_THREADS 131
-#define _SC_ADVISORY_INFO 132
-#define _SC_BARRIERS 133
-#define _SC_CLOCK_SELECTION 137
-#define _SC_CPUTIME 138
-#define _SC_THREAD_CPUTIME 139
-#define _SC_MONOTONIC_CLOCK 149
-#define _SC_READER_WRITER_LOCKS 153
-#define _SC_SPIN_LOCKS 154
-#define _SC_REGEXP 155
-#define _SC_SHELL 157
-#define _SC_SPAWN 159
-#define _SC_SPORADIC_SERVER 160
-#define _SC_THREAD_SPORADIC_SERVER 161
-#define _SC_TIMEOUTS 164
-#define _SC_TYPED_MEMORY_OBJECTS 165
-#define _SC_2_PBS 168
-#define _SC_2_PBS_ACCOUNTING 169
-#define _SC_2_PBS_LOCATE 170
-#define _SC_2_PBS_MESSAGE 171
-#define _SC_2_PBS_TRACK 172
-#define _SC_SYMLOOP_MAX 173
-#define _SC_STREAMS 174
-#define _SC_2_PBS_CHECKPOINT 175
-#define _SC_V6_ILP32_OFF32 176
-#define _SC_V6_ILP32_OFFBIG 177
-#define _SC_V6_LP64_OFF64 178
-#define _SC_V6_LPBIG_OFFBIG 179
-#define _SC_HOST_NAME_MAX 180
-#define _SC_TRACE 181
-#define _SC_TRACE_EVENT_FILTER 182
-#define _SC_TRACE_INHERIT 183
-#define _SC_TRACE_LOG 184
-
-#define _SC_IPV6 235
-#define _SC_RAW_SOCKETS 236
-#define _SC_V7_ILP32_OFF32 237
-#define _SC_V7_ILP32_OFFBIG 238
-#define _SC_V7_LP64_OFF64 239
-#define _SC_V7_LPBIG_OFFBIG 240
-#define _SC_SS_REPL_MAX 241
-#define _SC_TRACE_EVENT_NAME_MAX 242
-#define _SC_TRACE_NAME_MAX 243
-#define _SC_TRACE_SYS_MAX 244
-#define _SC_TRACE_USER_EVENT_MAX 245
-#define _SC_XOPEN_STREAMS 246
-#define _SC_THREAD_ROBUST_PRIO_INHERIT 247
-#define _SC_THREAD_ROBUST_PRIO_PROTECT 248
-#define _SC_MINSIGSTKSZ 249
-#define _SC_SIGSTKSZ 250
-
-#define _CS_PATH 0
-#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 1
-#define _CS_GNU_LIBC_VERSION 2
-#define _CS_GNU_LIBPTHREAD_VERSION 3
-#define _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS 4
-#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS 5
-
-#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 1116
-#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 1117
-#define _CS_POSIX_V6_ILP32_OFF32_LIBS 1118
-#define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS 1119
-#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 1120
-#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 1121
-#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 1122
-#define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS 1123
-#define _CS_POSIX_V6_LP64_OFF64_CFLAGS 1124
-#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 1125
-#define _CS_POSIX_V6_LP64_OFF64_LIBS 1126
-#define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS 1127
-#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 1128
-#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 1129
-#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 1130
-#define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS 1131
-#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS 1132
-#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS 1133
-#define _CS_POSIX_V7_ILP32_OFF32_LIBS 1134
-#define _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS 1135
-#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS 1136
-#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS 1137
-#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS 1138
-#define _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS 1139
-#define _CS_POSIX_V7_LP64_OFF64_CFLAGS 1140
-#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS 1141
-#define _CS_POSIX_V7_LP64_OFF64_LIBS 1142
-#define _CS_POSIX_V7_LP64_OFF64_LINTFLAGS 1143
-#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS 1144
-#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS 1145
-#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS 1146
-#define _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS 1147
-#define _CS_V6_ENV 1148
-#define _CS_V7_ENV 1149
-#define _CS_POSIX_V7_THREADS_CFLAGS 1150
-#define _CS_POSIX_V7_THREADS_LDFLAGS 1151
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/utime.h b/musl/utime.h
deleted file mode 100644
index 5755bd5..0000000
--- a/musl/utime.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _UTIME_H
-#define _UTIME_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_time_t
-
-#include <bits/alltypes.h>
-
-struct utimbuf {
- time_t actime;
- time_t modtime;
-};
-
-int utime (const char *, const struct utimbuf *);
-
-#if _REDIR_TIME64
-__REDIR(utime, __utime64);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/utmp.h b/musl/utmp.h
deleted file mode 100644
index 48a400d..0000000
--- a/musl/utmp.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef _UTMP_H
-#define _UTMP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <utmpx.h>
-
-#define ACCOUNTING 9
-#define UT_NAMESIZE 32
-#define UT_HOSTSIZE 256
-#define UT_LINESIZE 32
-
-struct lastlog {
- time_t ll_time;
- char ll_line[UT_LINESIZE];
- char ll_host[UT_HOSTSIZE];
-};
-
-#define ut_time ut_tv.tv_sec
-#define ut_name ut_user
-#define ut_addr ut_addr_v6[0]
-#define utmp utmpx
-#define e_exit __e_exit
-#define e_termination __e_termination
-
-void endutent(void);
-struct utmp *getutent(void);
-struct utmp *getutid(const struct utmp *);
-struct utmp *getutline(const struct utmp *);
-struct utmp *pututline(const struct utmp *);
-void setutent(void);
-
-void updwtmp(const char *, const struct utmp *);
-int utmpname(const char *);
-
-int login_tty(int);
-
-#define _PATH_UTMP "/dev/null/utmp"
-#define _PATH_WTMP "/dev/null/wtmp"
-
-#define UTMP_FILE _PATH_UTMP
-#define WTMP_FILE _PATH_WTMP
-#define UTMP_FILENAME _PATH_UTMP
-#define WTMP_FILENAME _PATH_WTMP
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/utmpx.h b/musl/utmpx.h
deleted file mode 100644
index b293f42..0000000
--- a/musl/utmpx.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _UTMPX_H
-#define _UTMPX_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_pid_t
-#define __NEED_time_t
-#define __NEED_suseconds_t
-#define __NEED_struct_timeval
-
-#include <bits/alltypes.h>
-
-struct utmpx {
- short ut_type;
- short __ut_pad1;
- pid_t ut_pid;
- char ut_line[32];
- char ut_id[4];
- char ut_user[32];
- char ut_host[256];
- struct {
- short __e_termination;
- short __e_exit;
- } ut_exit;
-#if __BYTE_ORDER == 1234
- int ut_session, __ut_pad2;
-#else
- int __ut_pad2, ut_session;
-#endif
- struct timeval ut_tv;
- unsigned ut_addr_v6[4];
- char __unused[20];
-};
-
-void endutxent(void);
-struct utmpx *getutxent(void);
-struct utmpx *getutxid(const struct utmpx *);
-struct utmpx *getutxline(const struct utmpx *);
-struct utmpx *pututxline(const struct utmpx *);
-void setutxent(void);
-
-#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
-#define e_exit __e_exit
-#define e_termination __e_termination
-void updwtmpx(const char *, const struct utmpx *);
-int utmpxname(const char *);
-#endif
-
-#define EMPTY 0
-#define RUN_LVL 1
-#define BOOT_TIME 2
-#define NEW_TIME 3
-#define OLD_TIME 4
-#define INIT_PROCESS 5
-#define LOGIN_PROCESS 6
-#define USER_PROCESS 7
-#define DEAD_PROCESS 8
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/values.h b/musl/values.h
deleted file mode 100644
index fe4949f..0000000
--- a/musl/values.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _VALUES_H
-#define _VALUES_H
-
-#include <limits.h>
-
-#define CHARBITS (sizeof(char) * 8)
-#define SHORTBITS (sizeof(short) * 8)
-#define INTBITS (sizeof(int) * 8)
-#define LONGBITS (sizeof(long) * 8)
-#define PTRBITS (sizeof(char *) * 8)
-#define DOUBLEBITS (sizeof(double) * 8)
-#define FLOATBITS (sizeof(float) * 8)
-
-#define MINSHORT SHRT_MIN
-#define MININT INT_MIN
-#define MINLONG LONG_MIN
-
-#define MAXSHORT SHRT_MAX
-#define MAXINT INT_MAX
-#define MAXLONG LONG_MAX
-
-#define HIBITS MINSHORT
-#define HIBITL MINLONG
-
-#include <float.h>
-
-#define MAXDOUBLE DBL_MAX
-#undef MAXFLOAT
-#define MAXFLOAT FLT_MAX
-#define MINDOUBLE DBL_MIN
-#define MINFLOAT FLT_MIN
-#define DMINEXP DBL_MIN_EXP
-#define FMINEXP FLT_MIN_EXP
-#define DMAXEXP DBL_MAX_EXP
-#define FMAXEXP FLT_MAX_EXP
-
-#define BITSPERBYTE CHAR_BIT
-
-#endif
diff --git a/musl/wait.h b/musl/wait.h
deleted file mode 100644
index 98396e2..0000000
--- a/musl/wait.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#warning redirecting incorrect #include <wait.h> to <sys/wait.h>
-#include <sys/wait.h>
diff --git a/musl/wchar.h b/musl/wchar.h
deleted file mode 100644
index ed5d774..0000000
--- a/musl/wchar.h
+++ /dev/null
@@ -1,207 +0,0 @@
-#ifndef _WCHAR_H
-#define _WCHAR_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_FILE
-#define __NEED___isoc_va_list
-#define __NEED_size_t
-#define __NEED_wchar_t
-#define __NEED_wint_t
-#define __NEED_mbstate_t
-
-#if __STDC_VERSION__ < 201112L
-#define __NEED_struct__IO_FILE
-#endif
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define __NEED_locale_t
-#define __NEED_va_list
-#endif
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define __NEED_wctype_t
-#endif
-
-#include <bits/alltypes.h>
-
-#if L'\0'-1 > 0
-#define WCHAR_MAX (0xffffffffu+L'\0')
-#define WCHAR_MIN (0+L'\0')
-#else
-#define WCHAR_MAX (0x7fffffff+L'\0')
-#define WCHAR_MIN (-1-0x7fffffff+L'\0')
-#endif
-
-#if __cplusplus >= 201103L
-#define NULL nullptr
-#elif defined(__cplusplus)
-#define NULL 0L
-#else
-#define NULL ((void*)0)
-#endif
-
-#undef WEOF
-#define WEOF 0xffffffffU
-
-wchar_t *wcscpy (wchar_t *__restrict, const wchar_t *__restrict);
-wchar_t *wcsncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t);
-
-wchar_t *wcscat (wchar_t *__restrict, const wchar_t *__restrict);
-wchar_t *wcsncat (wchar_t *__restrict, const wchar_t *__restrict, size_t);
-
-int wcscmp (const wchar_t *, const wchar_t *);
-int wcsncmp (const wchar_t *, const wchar_t *, size_t);
-
-int wcscoll(const wchar_t *, const wchar_t *);
-size_t wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict, size_t);
-
-wchar_t *wcschr (const wchar_t *, wchar_t);
-wchar_t *wcsrchr (const wchar_t *, wchar_t);
-
-size_t wcscspn (const wchar_t *, const wchar_t *);
-size_t wcsspn (const wchar_t *, const wchar_t *);
-wchar_t *wcspbrk (const wchar_t *, const wchar_t *);
-
-wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict, wchar_t **__restrict);
-
-size_t wcslen (const wchar_t *);
-
-wchar_t *wcsstr (const wchar_t *__restrict, const wchar_t *__restrict);
-wchar_t *wcswcs (const wchar_t *, const wchar_t *);
-
-wchar_t *wmemchr (const wchar_t *, wchar_t, size_t);
-int wmemcmp (const wchar_t *, const wchar_t *, size_t);
-wchar_t *wmemcpy (wchar_t *__restrict, const wchar_t *__restrict, size_t);
-wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t);
-wchar_t *wmemset (wchar_t *, wchar_t, size_t);
-
-wint_t btowc (int);
-int wctob (wint_t);
-
-int mbsinit (const mbstate_t *);
-size_t mbrtowc (wchar_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict);
-size_t wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict);
-
-size_t mbrlen (const char *__restrict, size_t, mbstate_t *__restrict);
-
-size_t mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t, mbstate_t *__restrict);
-size_t wcsrtombs (char *__restrict, const wchar_t **__restrict, size_t, mbstate_t *__restrict);
-
-float wcstof (const wchar_t *__restrict, wchar_t **__restrict);
-double wcstod (const wchar_t *__restrict, wchar_t **__restrict);
-long double wcstold (const wchar_t *__restrict, wchar_t **__restrict);
-
-long wcstol (const wchar_t *__restrict, wchar_t **__restrict, int);
-unsigned long wcstoul (const wchar_t *__restrict, wchar_t **__restrict, int);
-
-long long wcstoll (const wchar_t *__restrict, wchar_t **__restrict, int);
-unsigned long long wcstoull (const wchar_t *__restrict, wchar_t **__restrict, int);
-
-
-
-int fwide (FILE *, int);
-
-
-int wprintf (const wchar_t *__restrict, ...);
-int fwprintf (FILE *__restrict, const wchar_t *__restrict, ...);
-int swprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, ...);
-
-int vwprintf (const wchar_t *__restrict, __isoc_va_list);
-int vfwprintf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list);
-int vswprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, __isoc_va_list);
-
-int wscanf (const wchar_t *__restrict, ...);
-int fwscanf (FILE *__restrict, const wchar_t *__restrict, ...);
-int swscanf (const wchar_t *__restrict, const wchar_t *__restrict, ...);
-
-int vwscanf (const wchar_t *__restrict, __isoc_va_list);
-int vfwscanf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list);
-int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, __isoc_va_list);
-
-wint_t fgetwc (FILE *);
-wint_t getwc (FILE *);
-wint_t getwchar (void);
-
-wint_t fputwc (wchar_t, FILE *);
-wint_t putwc (wchar_t, FILE *);
-wint_t putwchar (wchar_t);
-
-wchar_t *fgetws (wchar_t *__restrict, int, FILE *__restrict);
-int fputws (const wchar_t *__restrict, FILE *__restrict);
-
-wint_t ungetwc (wint_t, FILE *);
-
-struct tm;
-size_t wcsftime (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict);
-
-#undef iswdigit
-
-#if defined(_GNU_SOURCE)
-wint_t fgetwc_unlocked (FILE *);
-wint_t getwc_unlocked (FILE *);
-wint_t getwchar_unlocked (void);
-wint_t fputwc_unlocked (wchar_t, FILE *);
-wint_t putwc_unlocked (wchar_t, FILE *);
-wint_t putwchar_unlocked (wchar_t);
-wchar_t *fgetws_unlocked (wchar_t *__restrict, int, FILE *__restrict);
-int fputws_unlocked (const wchar_t *__restrict, FILE *__restrict);
-#endif
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict, locale_t);
-#endif
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-FILE *open_wmemstream(wchar_t **, size_t *);
-size_t mbsnrtowcs(wchar_t *__restrict, const char **__restrict, size_t, size_t, mbstate_t *__restrict);
-size_t wcsnrtombs(char *__restrict, const wchar_t **__restrict, size_t, size_t, mbstate_t *__restrict);
-wchar_t *wcsdup(const wchar_t *);
-size_t wcsnlen (const wchar_t *, size_t);
-wchar_t *wcpcpy (wchar_t *__restrict, const wchar_t *__restrict);
-wchar_t *wcpncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t);
-int wcscasecmp(const wchar_t *, const wchar_t *);
-int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t);
-int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
-int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t);
-int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
-size_t wcsxfrm_l(wchar_t *__restrict, const wchar_t *__restrict, size_t, locale_t);
-#endif
-
-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-int wcwidth (wchar_t);
-int wcswidth (const wchar_t *, size_t);
-int iswalnum(wint_t);
-int iswalpha(wint_t);
-int iswblank(wint_t);
-int iswcntrl(wint_t);
-int iswdigit(wint_t);
-int iswgraph(wint_t);
-int iswlower(wint_t);
-int iswprint(wint_t);
-int iswpunct(wint_t);
-int iswspace(wint_t);
-int iswupper(wint_t);
-int iswxdigit(wint_t);
-int iswctype(wint_t, wctype_t);
-wint_t towlower(wint_t);
-wint_t towupper(wint_t);
-wctype_t wctype(const char *);
-
-#ifndef __cplusplus
-#undef iswdigit
-#define iswdigit(a) (0 ? iswdigit(a) : ((unsigned)(a)-'0') < 10)
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/wctype.h b/musl/wctype.h
deleted file mode 100644
index bc2420d..0000000
--- a/musl/wctype.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef _WCTYPE_H
-#define _WCTYPE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_wint_t
-#define __NEED_wctype_t
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define __NEED_locale_t
-#endif
-
-#include <bits/alltypes.h>
-
-typedef const int * wctrans_t;
-
-#undef WEOF
-#define WEOF 0xffffffffU
-
-#undef iswdigit
-
-int iswalnum(wint_t);
-int iswalpha(wint_t);
-int iswblank(wint_t);
-int iswcntrl(wint_t);
-int iswdigit(wint_t);
-int iswgraph(wint_t);
-int iswlower(wint_t);
-int iswprint(wint_t);
-int iswpunct(wint_t);
-int iswspace(wint_t);
-int iswupper(wint_t);
-int iswxdigit(wint_t);
-int iswctype(wint_t, wctype_t);
-wint_t towctrans(wint_t, wctrans_t);
-wint_t towlower(wint_t);
-wint_t towupper(wint_t);
-wctrans_t wctrans(const char *);
-wctype_t wctype(const char *);
-
-#ifndef __cplusplus
-#undef iswdigit
-#define iswdigit(a) (0 ? iswdigit(a) : ((unsigned)(a)-'0') < 10)
-#endif
-
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
-int iswalnum_l(wint_t, locale_t);
-int iswalpha_l(wint_t, locale_t);
-int iswblank_l(wint_t, locale_t);
-int iswcntrl_l(wint_t, locale_t);
-int iswdigit_l(wint_t, locale_t);
-int iswgraph_l(wint_t, locale_t);
-int iswlower_l(wint_t, locale_t);
-int iswprint_l(wint_t, locale_t);
-int iswpunct_l(wint_t, locale_t);
-int iswspace_l(wint_t, locale_t);
-int iswupper_l(wint_t, locale_t);
-int iswxdigit_l(wint_t, locale_t);
-int iswctype_l(wint_t, wctype_t, locale_t);
-wint_t towlower_l(wint_t, locale_t);
-wint_t towupper_l(wint_t, locale_t);
-wint_t towctrans_l(wint_t, wctrans_t, locale_t);
-wctrans_t wctrans_l(const char *, locale_t);
-wctype_t wctype_l(const char *, locale_t);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/musl/wordexp.h b/musl/wordexp.h
deleted file mode 100644
index 5460002..0000000
--- a/musl/wordexp.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef _WORDEXP_H
-#define _WORDEXP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-
-#define __NEED_size_t
-
-#include <bits/alltypes.h>
-
-#define WRDE_DOOFFS 1
-#define WRDE_APPEND 2
-#define WRDE_NOCMD 4
-#define WRDE_REUSE 8
-#define WRDE_SHOWERR 16
-#define WRDE_UNDEF 32
-
-typedef struct {
- size_t we_wordc;
- char **we_wordv;
- size_t we_offs;
-} wordexp_t;
-
-#define WRDE_NOSYS -1
-#define WRDE_NOSPACE 1
-#define WRDE_BADCHAR 2
-#define WRDE_BADVAL 3
-#define WRDE_CMDSUB 4
-#define WRDE_SYNTAX 5
-
-int wordexp (const char *__restrict, wordexp_t *__restrict, int);
-void wordfree (wordexp_t *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif