/usr/include/sys
NameSizeModeActions
acct.h32960644editdlrm
auxv.h12590644editdlrm
bitypes.h860644editdlrm
capability.h72330644editdlrm
cdefs.h206820644editdlrm
debugreg.h35750644editdlrm
dir.h9210644editdlrm
elf.h10230644editdlrm
epoll.h44100644editdlrm
errno.h190644editdlrm
eventfd.h13990644editdlrm
fanotify.h12910644editdlrm
fcntl.h190644editdlrm
file.h16740644editdlrm
fsuid.h11870644editdlrm
gmon.h62300644editdlrm
gmon_out.h26350644editdlrm
inotify.h38370644editdlrm
io.h50850644editdlrm
ioctl.h17390644editdlrm
ipc.h14610644editdlrm
kd.h11110644editdlrm
klog.h12030644editdlrm
mman.h55510644editdlrm
mount.h56110644editdlrm
msg.h23650644editdlrm
mtio.h111620644editdlrm
param.h31480644editdlrm
pci.h9220644editdlrm
perm.h11260644editdlrm
personality.h27220644editdlrm
poll.h25490644editdlrm
prctl.h10580644editdlrm
procfs.h49850644editdlrm
profil.h19580644editdlrm
psx_syscall.h28330644editdlrm
ptrace.h59880644editdlrm
queue.h195390644editdlrm
quota.h51720644editdlrm
random.h14430644editdlrm
raw.h11810644editdlrm
reboot.h16320644editdlrm
reg.h18260644editdlrm
resource.h36450644editdlrm
sdt-config.h2760644editdlrm
sdt.h221570644editdlrm
select.h41400644editdlrm
sem.h20360644editdlrm
sendfile.h18050644editdlrm
shm.h18730644editdlrm
signal.h200644editdlrm
signalfd.h15990644editdlrm
socket.h102030644editdlrm
socketvar.h1410644editdlrm
soundcard.h290644editdlrm
stat.h162360644editdlrm
statfs.h20930644editdlrm
statvfs.h28190644editdlrm
swap.h15920644editdlrm
syscall.h13350644editdlrm
sysctl.h20040644editdlrm
sysinfo.h15170644editdlrm
syslog.h77020644editdlrm
sysmacros.h21020644editdlrm
termios.h740644editdlrm
time.h66560644editdlrm
timeb.h13760644editdlrm
timerfd.h18730644editdlrm
times.h15960644editdlrm
timex.h22050644editdlrm
ttychars.h24990644editdlrm
ttydefaults.h35680644editdlrm
types.h57120644editdlrm
ucontext.h58410644editdlrm
uio.h62790644editdlrm
un.h14520644editdlrm
unistd.h200644editdlrm
user.h52070644editdlrm
utsname.h24800644editdlrm
vfs.h1610644editdlrm
vlimit.h18790644editdlrm
vm86.h11980644editdlrm
vt.h220644editdlrm
vtimes.h24620644editdlrm
wait.h56040644editdlrm
xattr.h42740644editdlrm
Edit: /usr/include/sys/ucontext.h (5841B)
/* Copyright (C) 2001-2018 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 . */ #ifndef _SYS_UCONTEXT_H #define _SYS_UCONTEXT_H 1 #include #include #include #include #ifdef __USE_MISC # define __ctx(fld) fld #else # define __ctx(fld) __ ## fld #endif #ifdef __x86_64__ /* Type for general register. */ __extension__ typedef long long int greg_t; /* Number of general registers. */ #define __NGREG 23 #ifdef __USE_MISC # define NGREG __NGREG #endif /* Container for all general registers. */ typedef greg_t gregset_t[__NGREG]; #ifdef __USE_GNU /* Number of each register in the `gregset_t' array. */ enum { REG_R8 = 0, # define REG_R8 REG_R8 REG_R9, # define REG_R9 REG_R9 REG_R10, # define REG_R10 REG_R10 REG_R11, # define REG_R11 REG_R11 REG_R12, # define REG_R12 REG_R12 REG_R13, # define REG_R13 REG_R13 REG_R14, # define REG_R14 REG_R14 REG_R15, # define REG_R15 REG_R15 REG_RDI, # define REG_RDI REG_RDI REG_RSI, # define REG_RSI REG_RSI REG_RBP, # define REG_RBP REG_RBP REG_RBX, # define REG_RBX REG_RBX REG_RDX, # define REG_RDX REG_RDX REG_RAX, # define REG_RAX REG_RAX REG_RCX, # define REG_RCX REG_RCX REG_RSP, # define REG_RSP REG_RSP REG_RIP, # define REG_RIP REG_RIP REG_EFL, # define REG_EFL REG_EFL REG_CSGSFS, /* Actually short cs, gs, fs, __pad0. */ # define REG_CSGSFS REG_CSGSFS REG_ERR, # define REG_ERR REG_ERR REG_TRAPNO, # define REG_TRAPNO REG_TRAPNO REG_OLDMASK, # define REG_OLDMASK REG_OLDMASK REG_CR2 # define REG_CR2 REG_CR2 }; #endif struct _libc_fpxreg { unsigned short int __ctx(significand)[4]; unsigned short int __ctx(exponent); unsigned short int __glibc_reserved1[3]; }; struct _libc_xmmreg { __uint32_t __ctx(element)[4]; }; struct _libc_fpstate { /* 64-bit FXSAVE format. */ __uint16_t __ctx(cwd); __uint16_t __ctx(swd); __uint16_t __ctx(ftw); __uint16_t __ctx(fop); __uint64_t __ctx(rip); __uint64_t __ctx(rdp); __uint32_t __ctx(mxcsr); __uint32_t __ctx(mxcr_mask); struct _libc_fpxreg _st[8]; struct _libc_xmmreg _xmm[16]; __uint32_t __glibc_reserved1[24]; }; /* Structure to describe FPU registers. */ typedef struct _libc_fpstate *fpregset_t; /* Context to describe whole processor state. */ typedef struct { gregset_t __ctx(gregs); /* Note that fpregs is a pointer. */ fpregset_t __ctx(fpregs); __extension__ unsigned long long __reserved1 [8]; } mcontext_t; /* Userlevel context. */ typedef struct ucontext_t { unsigned long int __ctx(uc_flags); struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; __extension__ unsigned long long int __ssp[4]; } ucontext_t; #else /* !__x86_64__ */ /* Type for general register. */ typedef int greg_t; /* Number of general registers. */ #define __NGREG 19 #ifdef __USE_MISC # define NGREG __NGREG #endif /* Container for all general registers. */ typedef greg_t gregset_t[__NGREG]; #ifdef __USE_GNU /* Number of each register is the `gregset_t' array. */ enum { REG_GS = 0, # define REG_GS REG_GS REG_FS, # define REG_FS REG_FS REG_ES, # define REG_ES REG_ES REG_DS, # define REG_DS REG_DS REG_EDI, # define REG_EDI REG_EDI REG_ESI, # define REG_ESI REG_ESI REG_EBP, # define REG_EBP REG_EBP REG_ESP, # define REG_ESP REG_ESP REG_EBX, # define REG_EBX REG_EBX REG_EDX, # define REG_EDX REG_EDX REG_ECX, # define REG_ECX REG_ECX REG_EAX, # define REG_EAX REG_EAX REG_TRAPNO, # define REG_TRAPNO REG_TRAPNO REG_ERR, # define REG_ERR REG_ERR REG_EIP, # define REG_EIP REG_EIP REG_CS, # define REG_CS REG_CS REG_EFL, # define REG_EFL REG_EFL REG_UESP, # define REG_UESP REG_UESP REG_SS # define REG_SS REG_SS }; #endif /* Definitions taken from the kernel headers. */ struct _libc_fpreg { unsigned short int __ctx(significand)[4]; unsigned short int __ctx(exponent); }; struct _libc_fpstate { unsigned long int __ctx(cw); unsigned long int __ctx(sw); unsigned long int __ctx(tag); unsigned long int __ctx(ipoff); unsigned long int __ctx(cssel); unsigned long int __ctx(dataoff); unsigned long int __ctx(datasel); struct _libc_fpreg _st[8]; unsigned long int __ctx(status); }; /* Structure to describe FPU registers. */ typedef struct _libc_fpstate *fpregset_t; /* Context to describe whole processor state. */ typedef struct { gregset_t __ctx(gregs); /* Due to Linux's history we have to use a pointer here. The SysV/i386 ABI requires a struct with the values. */ fpregset_t __ctx(fpregs); unsigned long int __ctx(oldmask); unsigned long int __ctx(cr2); } mcontext_t; /* Userlevel context. */ typedef struct ucontext_t { unsigned long int __ctx(uc_flags); struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; unsigned long int __ssp[4]; } ucontext_t; #endif /* !__x86_64__ */ #undef __ctx #endif /* sys/ucontext.h */