diff options
| author | Alex Rønne Petersen <alex@alexrp.com> | 2025-06-04 05:14:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-04 05:14:21 +0200 |
| commit | 3b2bef8a95190cb93f8edb6425dddbf845c3ad79 (patch) | |
| tree | dc3bad477321bc47b93acc6d531cd3198c85d38a /lib/libc/include/powerpc64le-linux-gnu/sys | |
| parent | cd03a0a153aae3e0450b7878b67906fb41521d13 (diff) | |
| parent | 63a9048baf64fd30c5e6d2c753bd7e584194bf7a (diff) | |
| download | zig-3b2bef8a95190cb93f8edb6425dddbf845c3ad79.tar.gz zig-3b2bef8a95190cb93f8edb6425dddbf845c3ad79.zip | |
Merge pull request #24025 from alexrp/glibc-deduplication
`libc`: Merge header directories for glibc and NetBSD libc where applicable
Diffstat (limited to 'lib/libc/include/powerpc64le-linux-gnu/sys')
| -rw-r--r-- | lib/libc/include/powerpc64le-linux-gnu/sys/ptrace.h | 289 | ||||
| -rw-r--r-- | lib/libc/include/powerpc64le-linux-gnu/sys/ucontext.h | 200 | ||||
| -rw-r--r-- | lib/libc/include/powerpc64le-linux-gnu/sys/user.h | 40 |
3 files changed, 0 insertions, 529 deletions
diff --git a/lib/libc/include/powerpc64le-linux-gnu/sys/ptrace.h b/lib/libc/include/powerpc64le-linux-gnu/sys/ptrace.h deleted file mode 100644 index 99cf115cb6..0000000000 --- a/lib/libc/include/powerpc64le-linux-gnu/sys/ptrace.h +++ /dev/null @@ -1,289 +0,0 @@ -/* `ptrace' debugger support interface. Linux/PowerPC version. - Copyright (C) 2001-2025 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#ifndef _SYS_PTRACE_H -#define _SYS_PTRACE_H 1 - -#include <features.h> -#include <bits/types.h> - -__BEGIN_DECLS - -#if defined _LINUX_PTRACE_H || defined _ASM_POWERPC_PTRACE_H -/* Do not let Linux headers macros interfere with enum __ptrace_request. */ -# undef PTRACE_ATTACH -# undef PTRACE_CONT -# undef PTRACE_DETACH -# undef PTRACE_GET_DEBUGREG -# undef PTRACE_GETEVENTMSG -# undef PTRACE_GETEVRREGS -# undef PTRACE_GETFPREGS -# undef PTRACE_GETREGS -# undef PTRACE_GETREGS64 -# undef PTRACE_GETREGSET -# undef PTRACE_GET_RSEQ_CONFIGURATION -# undef PTRACE_GETSIGINFO -# undef PTRACE_GETSIGMASK -# undef PTRACE_GET_SYSCALL_INFO -# undef PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG -# undef PTRACE_GETVRREGS -# undef PTRACE_GETVSRREGS -# undef PTRACE_INTERRUPT -# undef PTRACE_KILL -# undef PTRACE_LISTEN -# undef PTRACE_PEEKDATA -# undef PTRACE_PEEKSIGINFO -# undef PTRACE_PEEKTEXT -# undef PTRACE_POKEDATA -# undef PTRACE_POKETEXT -# undef PTRACE_SECCOMP_GET_FILTER -# undef PTRACE_SECCOMP_GET_METADATA -# undef PTRACE_SEIZE -# undef PTRACE_SET_DEBUGREG -# undef PTRACE_SETEVRREGS -# undef PTRACE_SETFPREGS -# undef PTRACE_SETOPTIONS -# undef PTRACE_SETREGS -# undef PTRACE_SETREGS64 -# undef PTRACE_SETREGSET -# undef PTRACE_SETSIGINFO -# undef PTRACE_SETSIGMASK -# undef PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG -# undef PTRACE_SETVRREGS -# undef PTRACE_SETVSRREGS -# undef PTRACE_SINGLEBLOCK -# undef PTRACE_SINGLESTEP -# undef PTRACE_SYSCALL -# undef PTRACE_SYSCALL_INFO_NONE -# undef PTRACE_SYSCALL_INFO_ENTRY -# undef PTRACE_SYSCALL_INFO_EXIT -# undef PTRACE_SYSCALL_INFO_SECCOMP -# undef PTRACE_SYSEMU -# undef PTRACE_SYSEMU_SINGLESTEP -# undef PTRACE_TRACEME -#endif - -/* Type of the REQUEST argument to `ptrace.' */ -enum __ptrace_request -{ - /* Indicate that the process making this request should be traced. - All signals received by this process can be intercepted by its - parent, and its parent can use the other `ptrace' requests. */ - PTRACE_TRACEME = 0, -#define PT_TRACE_ME PTRACE_TRACEME - - /* Return the word in the process's text space at address ADDR. */ - PTRACE_PEEKTEXT = 1, -#define PT_READ_I PTRACE_PEEKTEXT - - /* Return the word in the process's data space at address ADDR. */ - PTRACE_PEEKDATA = 2, -#define PT_READ_D PTRACE_PEEKDATA - - /* Return the word in the process's user area at offset ADDR. */ - PTRACE_PEEKUSER = 3, -#define PT_READ_U PTRACE_PEEKUSER - - /* Write the word DATA into the process's text space at address ADDR. */ - PTRACE_POKETEXT = 4, -#define PT_WRITE_I PTRACE_POKETEXT - - /* Write the word DATA into the process's data space at address ADDR. */ - PTRACE_POKEDATA = 5, -#define PT_WRITE_D PTRACE_POKEDATA - - /* Write the word DATA into the process's user area at offset ADDR. */ - PTRACE_POKEUSER = 6, -#define PT_WRITE_U PTRACE_POKEUSER - - /* Continue the process. */ - PTRACE_CONT = 7, -#define PT_CONTINUE PTRACE_CONT - - /* Kill the process. */ - PTRACE_KILL = 8, -#define PT_KILL PTRACE_KILL - - /* Single step the process. */ - PTRACE_SINGLESTEP = 9, -#define PT_STEP PTRACE_SINGLESTEP - - /* Get all general purpose registers used by a process. */ - PTRACE_GETREGS = 12, -#define PT_GETREGS PTRACE_GETREGS - - /* Set all general purpose registers used by a process. */ - PTRACE_SETREGS = 13, -#define PT_SETREGS PTRACE_SETREGS - - /* Get all floating point registers used by a process. */ - PTRACE_GETFPREGS = 14, -#define PT_GETFPREGS PTRACE_GETFPREGS - - /* Set all floating point registers used by a process. */ - PTRACE_SETFPREGS = 15, -#define PT_SETFPREGS PTRACE_SETFPREGS - - /* Attach to a process that is already running. */ - PTRACE_ATTACH = 16, -#define PT_ATTACH PTRACE_ATTACH - - /* Detach from a process attached to with PTRACE_ATTACH. */ - PTRACE_DETACH = 17, -#define PT_DETACH PTRACE_DETACH - - /* Get all altivec registers used by a process. */ - PTRACE_GETVRREGS = 18, -#define PT_GETVRREGS PTRACE_GETVRREGS - - /* Set all altivec registers used by a process. */ - PTRACE_SETVRREGS = 19, -#define PT_SETVRREGS PTRACE_SETVRREGS - - /* Get all SPE registers used by a process. */ - PTRACE_GETEVRREGS = 20, -#define PT_GETEVRREGS PTRACE_GETEVRREGS - - /* Set all SPE registers used by a process. */ - PTRACE_SETEVRREGS = 21, -#define PT_SETEVRREGS PTRACE_SETEVRREGS - - /* Same as PTRACE_GETREGS except a 32-bit process will obtain - the full 64-bit registers. Implemented by 64-bit kernels only. */ - PTRACE_GETREGS64 = 22, -#define PT_GETREGS64 PTRACE_GETREGS64 - - /* Same as PTRACE_SETREGS except a 32-bit process will set - the full 64-bit registers. Implemented by 64-bit kernels only. */ - PTRACE_SETREGS64 = 23, -#define PT_SETREGS64 PTRACE_SETREGS64 - - /* Continue and stop at the next entry to or return from syscall. */ - PTRACE_SYSCALL = 24, -#define PT_SYSCALL PTRACE_SYSCALL - - /* Get a debug register of a process. */ - PTRACE_GET_DEBUGREG = 25, -#define PT_GET_DEBUGREG PTRACE_GET_DEBUGREG - - /* Set a debug register of a process. */ - PTRACE_SET_DEBUGREG = 26, -#define PT_SET_DEBUGREG PTRACE_SET_DEBUGREG - - /* Get the first 32 VSX registers of a process. */ - PTRACE_GETVSRREGS = 27, -#define PT_GETVSRREGS PTRACE_GETVSRREGS - - /* Set the first 32 VSX registers of a process. */ - PTRACE_SETVSRREGS = 28, -#define PT_SETVSRREGS PTRACE_SETVSRREGS - - /* Continue and stop at the next syscall, it will not be executed. */ - PTRACE_SYSEMU = 29, -#define PT_SYSEMU PTRACE_SYSEMU - - /* Single step the process, the next syscall will not be executed. */ - PTRACE_SYSEMU_SINGLESTEP = 30, -#define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP - - /* Execute process until next taken branch. */ - PTRACE_SINGLEBLOCK = 256, -#define PT_STEPBLOCK PTRACE_SINGLEBLOCK - - /* Set ptrace filter options. */ - PTRACE_SETOPTIONS = 0x4200, -#define PT_SETOPTIONS PTRACE_SETOPTIONS - - /* Get last ptrace message. */ - PTRACE_GETEVENTMSG = 0x4201, -#define PT_GETEVENTMSG PTRACE_GETEVENTMSG - - /* Get siginfo for process. */ - PTRACE_GETSIGINFO = 0x4202, -#define PT_GETSIGINFO PTRACE_GETSIGINFO - - /* Set new siginfo for process. */ - PTRACE_SETSIGINFO = 0x4203, -#define PT_SETSIGINFO PTRACE_SETSIGINFO - - /* Get register content. */ - PTRACE_GETREGSET = 0x4204, -#define PTRACE_GETREGSET PTRACE_GETREGSET - - /* Set register content. */ - PTRACE_SETREGSET = 0x4205, -#define PTRACE_SETREGSET PTRACE_SETREGSET - - /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect - signal or group stop state. */ - PTRACE_SEIZE = 0x4206, -#define PTRACE_SEIZE PTRACE_SEIZE - - /* Trap seized tracee. */ - PTRACE_INTERRUPT = 0x4207, -#define PTRACE_INTERRUPT PTRACE_INTERRUPT - - /* Wait for next group event. */ - PTRACE_LISTEN = 0x4208, -#define PTRACE_LISTEN PTRACE_LISTEN - - /* Retrieve siginfo_t structures without removing signals from a queue. */ - PTRACE_PEEKSIGINFO = 0x4209, -#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO - - /* Get the mask of blocked signals. */ - PTRACE_GETSIGMASK = 0x420a, -#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK - - /* Change the mask of blocked signals. */ - PTRACE_SETSIGMASK = 0x420b, -#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - - /* Get seccomp BPF filters. */ - PTRACE_SECCOMP_GET_FILTER = 0x420c, -#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER - - /* Get seccomp BPF filter metadata. */ - PTRACE_SECCOMP_GET_METADATA = 0x420d, -#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA - - /* Get information about system call. */ - PTRACE_GET_SYSCALL_INFO = 0x420e, -#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO - - /* Get rseq configuration information. */ - PTRACE_GET_RSEQ_CONFIGURATION = 0x420f, -#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION - - /* Set configuration for syscall user dispatch. */ - PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210, -#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG \ - PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG - - /* Get configuration for syscall user dispatch. */ - PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211 -#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG \ - PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG -}; - - -#include <bits/ptrace-shared.h> - -__END_DECLS - -#endif /* _SYS_PTRACE_H */
\ No newline at end of file diff --git a/lib/libc/include/powerpc64le-linux-gnu/sys/ucontext.h b/lib/libc/include/powerpc64le-linux-gnu/sys/ucontext.h deleted file mode 100644 index 7d354e529b..0000000000 --- a/lib/libc/include/powerpc64le-linux-gnu/sys/ucontext.h +++ /dev/null @@ -1,200 +0,0 @@ -/* Copyright (C) 1998-2025 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 - -#include <features.h> - -#include <bits/types/sigset_t.h> -#include <bits/types/stack_t.h> - - -#ifdef __USE_MISC -# define __ctx(fld) fld -#else -# define __ctx(fld) __ ## fld -#endif - -struct __ctx(pt_regs); - -#if __WORDSIZE == 32 - -/* Number of general registers. */ -# define __NGREG 48 -# ifdef __USE_MISC -# define NGREG __NGREG -# endif - -/* Container for all general registers. */ -typedef unsigned long gregset_t[__NGREG]; - -/* Container for floating-point registers and status */ -typedef struct _libc_fpstate -{ - double __ctx(fpregs)[32]; - double __ctx(fpscr); - unsigned int _pad[2]; -} fpregset_t; - -/* Container for Altivec/VMX registers and status. - Needs to be aligned on a 16-byte boundary. */ -typedef struct _libc_vrstate -{ - unsigned int __ctx(vrregs)[32][4]; - unsigned int __ctx(vrsave); - unsigned int _pad[2]; - unsigned int __ctx(vscr); -} vrregset_t; - -/* Context to describe whole processor state. */ -typedef struct -{ - gregset_t __ctx(gregs); - fpregset_t __ctx(fpregs); - vrregset_t __ctx(vrregs) __attribute__((__aligned__(16))); -} mcontext_t; - -#else - -/* For 64-bit kernels with Altivec support, a machine context is exactly - * a sigcontext. For older kernel (without Altivec) the sigcontext matches - * the mcontext upto but not including the v_regs field. For kernels that - * don't set AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the - * v_regs field may not exist and should not be referenced. The v_regs field - * can be referenced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC - * is set in AT_HWCAP. */ - -/* Number of general registers. */ -# define __NGREG 48 /* includes r0-r31, nip, msr, lr, etc. */ -# define __NFPREG 33 /* includes fp0-fp31 &fpscr. */ -# define __NVRREG 34 /* includes v0-v31, vscr, & vrsave in - split vectors */ -# ifdef __USE_MISC -# define NGREG __NGREG -# define NFPREG __NFPREG -# define NVRREG __NVRREG -# endif - -typedef unsigned long gregset_t[__NGREG]; -typedef double fpregset_t[__NFPREG]; - -/* Container for Altivec/VMX Vector Status and Control Register. Only 32-bits - but can only be copied to/from a 128-bit vector register. So we allocated - a whole quadword speedup save/restore. */ -typedef struct _libc_vscr -{ -#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - unsigned int __pad[3]; - unsigned int __ctx(vscr_word); -#else - unsigned int __ctx(vscr_word); - unsigned int __pad[3]; -#endif -} vscr_t; - -/* Container for Altivec/VMX registers and status. - Must to be aligned on a 16-byte boundary. */ -typedef struct _libc_vrstate -{ - unsigned int __ctx(vrregs)[32][4]; - vscr_t __ctx(vscr); - unsigned int __ctx(vrsave); - unsigned int __pad[3]; -} vrregset_t __attribute__((__aligned__(16))); - -typedef struct { - unsigned long __glibc_reserved[4]; - int __ctx(signal); - int __pad0; - unsigned long __ctx(handler); - unsigned long __ctx(oldmask); - struct __ctx(pt_regs) *__ctx(regs); - gregset_t __ctx(gp_regs); - fpregset_t __ctx(fp_regs); -/* - * To maintain compatibility with current implementations the sigcontext is - * extended by appending a pointer (v_regs) to a quadword type (elf_vrreg_t) - * followed by an unstructured (vmx_reserve) field of 69 doublewords. This - * allows the array of vector registers to be quadword aligned independent of - * the alignment of the containing sigcontext or ucontext. It is the - * responsibility of the code setting the sigcontext to set this pointer to - * either NULL (if this processor does not support the VMX feature) or the - * address of the first quadword within the allocated (vmx_reserve) area. - * - * The pointer (v_regs) of vector type (elf_vrreg_t) is essentially - * an array of 34 quadword entries. The entries with - * indexes 0-31 contain the corresponding vector registers. The entry with - * index 32 contains the vscr as the last word (offset 12) within the - * quadword. This allows the vscr to be stored as either a quadword (since - * it must be copied via a vector register to/from storage) or as a word. - * The entry with index 33 contains the vrsave as the first word (offset 0) - * within the quadword. - */ - vrregset_t *__ctx(v_regs); - long __ctx(vmx_reserve)[__NVRREG+__NVRREG+1]; -} mcontext_t; - -#endif - -/* Userlevel context. */ -typedef struct ucontext_t - { - unsigned long int __ctx(uc_flags); - struct ucontext_t *uc_link; - stack_t uc_stack; -#if __WORDSIZE == 32 - /* - * These fields are set up this way to maximize source and - * binary compatibility with code written for the old - * ucontext_t definition, which didn't include space for the - * registers. - * - * Different versions of the kernel have stored the registers on - * signal delivery at different offsets from the ucontext struct. - * Programs should thus use the uc_mcontext.uc_regs pointer to - * find where the registers are actually stored. The registers - * will be stored within the ucontext_t struct but not necessarily - * at a fixed address. As a side-effect, this lets us achieve - * 16-byte alignment for the register storage space if the - * Altivec registers are to be saved, without requiring 16-byte - * alignment on the whole ucontext_t. - * - * The uc_mcontext.regs field is included for source compatibility - * with programs written against the older ucontext_t definition, - * and its name should therefore not change. The uc_pad field - * is for binary compatibility with programs compiled against the - * old ucontext_t; it ensures that uc_mcontext.regs and uc_sigmask - * are at the same offset as previously. - */ - int __glibc_reserved1[7]; - union __ctx(uc_regs_ptr) { - struct __ctx(pt_regs) *__ctx(regs); - mcontext_t *__ctx(uc_regs); - } uc_mcontext; - sigset_t uc_sigmask; - /* last for extensibility */ - char __ctx(uc_reg_space)[sizeof (mcontext_t) + 12]; -#else /* 64-bit */ - sigset_t uc_sigmask; - mcontext_t uc_mcontext; /* last for extensibility */ -#endif - } ucontext_t; - -#undef __ctx - -#endif /* sys/ucontext.h */
\ No newline at end of file diff --git a/lib/libc/include/powerpc64le-linux-gnu/sys/user.h b/lib/libc/include/powerpc64le-linux-gnu/sys/user.h deleted file mode 100644 index 19396e1bc3..0000000000 --- a/lib/libc/include/powerpc64le-linux-gnu/sys/user.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (C) 1998-2025 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#ifndef _SYS_USER_H - -#define _SYS_USER_H 1 -#include <stddef.h> -#include <features.h> - -#include <asm/ptrace.h> - -struct user { - struct pt_regs regs; /* entire machine state */ - size_t u_tsize; /* text size (pages) */ - size_t u_dsize; /* data size (pages) */ - size_t u_ssize; /* stack size (pages) */ - unsigned long start_code; /* text starting address */ - unsigned long start_data; /* data starting address */ - unsigned long start_stack; /* stack starting address */ - long int signal; /* signal causing core dump */ - struct regs * u_ar0; /* help gdb find registers */ - unsigned long magic; /* identifies a core file */ - char u_comm[32]; /* user command name */ -}; - -#endif /* sys/user.h */
\ No newline at end of file |
