cosmopolitan/libc/sysv/consts/ptrace.h
Justine Tunney 45b72485ad Fix XNU / FreeBSD / OpenBSD / RHEL5 / NT bugs
For the first time ever, all tests in this codebase now pass, when
run automatically on macos, freebsd, openbsd, rhel5, rhel7, alpine
and windows via the network using the runit and runitd build tools

- Fix vfork exec path etc.
- Add XNU opendir() support
- Add OpenBSD opendir() support
- Add Linux history to syscalls.sh
- Use copy_file_range on FreeBSD 13+
- Fix system calls with 7+ arguments
- Fix Windows with greater than 16 FDs
- Fix RUNIT.COM and RUNITD.COM flakiness
- Fix OpenBSD munmap() when files are mapped
- Fix long double so it's actually long on Windows
- Fix OpenBSD truncate() and ftruncate() thunk typo
- Let Windows fcntl() be used on socket files descriptors
- Fix Windows fstat() which had an accidental printf statement
- Fix RHEL5 CLOCK_MONOTONIC by not aliasing to CLOCK_MONOTONIC_RAW

This is wonderful. I never could have dreamed it would be possible
to get it working so well on so many platforms with tiny binaries.

Fixes #31
Fixes #25
Fixes #14
2021-01-25 18:31:17 -08:00

104 lines
5 KiB
C

#ifndef COSMOPOLITAN_LIBC_SYSV_CONSTS_PTRACE_H_
#define COSMOPOLITAN_LIBC_SYSV_CONSTS_PTRACE_H_
#include "libc/runtime/symbolic.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
hidden extern const long PTRACE_TRACEME;
hidden extern const long PTRACE_PEEKTEXT;
hidden extern const long PTRACE_PEEKDATA;
hidden extern const long PTRACE_PEEKUSER;
hidden extern const long PTRACE_POKETEXT;
hidden extern const long PTRACE_POKEDATA;
hidden extern const long PTRACE_POKEUSER;
hidden extern const long PTRACE_CONT;
hidden extern const long PTRACE_KILL;
hidden extern const long PTRACE_SINGLESTEP;
hidden extern const long PTRACE_GETREGS;
hidden extern const long PTRACE_SETREGS;
hidden extern const long PTRACE_GETFPREGS;
hidden extern const long PTRACE_SETFPREGS;
hidden extern const long PTRACE_ATTACH;
hidden extern const long PTRACE_DETACH;
hidden extern const long PTRACE_GETFPXREGS;
hidden extern const long PTRACE_SETFPXREGS;
hidden extern const long PTRACE_SYSCALL;
hidden extern const long PTRACE_GETEVENTMSG;
hidden extern const long PTRACE_GETSIGINFO;
hidden extern const long PTRACE_SETOPTIONS;
hidden extern const long PTRACE_SETSIGINFO;
hidden extern const long PTRACE_GETREGSET;
hidden extern const long PTRACE_GETSIGMASK;
hidden extern const long PTRACE_INTERRUPT;
hidden extern const long PTRACE_LISTEN;
hidden extern const long PTRACE_PEEKSIGINFO;
hidden extern const long PTRACE_SECCOMP_GET_FILTER;
hidden extern const long PTRACE_SEIZE;
hidden extern const long PTRACE_SETREGSET;
hidden extern const long PTRACE_SETSIGMASK;
hidden extern const long PTRACE_O_TRACESYSGOOD;
hidden extern const long PTRACE_O_TRACEFORK;
hidden extern const long PTRACE_O_TRACEVFORK;
hidden extern const long PTRACE_O_TRACECLONE;
hidden extern const long PTRACE_O_TRACEEXEC;
hidden extern const long PTRACE_O_TRACEVFORKDONE;
hidden extern const long PTRACE_O_TRACEEXIT;
hidden extern const long PTRACE_O_MASK;
hidden extern const long PTRACE_EVENT_FORK;
hidden extern const long PTRACE_EVENT_VFORK;
hidden extern const long PTRACE_EVENT_CLONE;
hidden extern const long PTRACE_EVENT_EXEC;
hidden extern const long PTRACE_EVENT_VFORK_DONE;
hidden extern const long PTRACE_EVENT_EXIT;
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#define PTRACE_TRACEME SYMBOLIC(PTRACE_TRACEME)
#define PTRACE_PEEKTEXT SYMBOLIC(PTRACE_PEEKTEXT)
#define PTRACE_PEEKDATA SYMBOLIC(PTRACE_PEEKDATA)
#define PTRACE_PEEKUSER SYMBOLIC(PTRACE_PEEKUSER)
#define PTRACE_POKETEXT SYMBOLIC(PTRACE_POKETEXT)
#define PTRACE_POKEDATA SYMBOLIC(PTRACE_POKEDATA)
#define PTRACE_POKEUSER SYMBOLIC(PTRACE_POKEUSER)
#define PTRACE_CONT SYMBOLIC(PTRACE_CONT)
#define PTRACE_KILL SYMBOLIC(PTRACE_KILL)
#define PTRACE_SINGLESTEP SYMBOLIC(PTRACE_SINGLESTEP)
#define PTRACE_GETREGS SYMBOLIC(PTRACE_GETREGS)
#define PTRACE_SETREGS SYMBOLIC(PTRACE_SETREGS)
#define PTRACE_GETFPREGS SYMBOLIC(PTRACE_GETFPREGS)
#define PTRACE_SETFPREGS SYMBOLIC(PTRACE_SETFPREGS)
#define PTRACE_ATTACH SYMBOLIC(PTRACE_ATTACH)
#define PTRACE_DETACH SYMBOLIC(PTRACE_DETACH)
#define PTRACE_GETFPXREGS SYMBOLIC(PTRACE_GETFPXREGS)
#define PTRACE_SETFPXREGS SYMBOLIC(PTRACE_SETFPXREGS)
#define PTRACE_SYSCALL SYMBOLIC(PTRACE_SYSCALL)
#define PTRACE_GETEVENTMSG SYMBOLIC(PTRACE_GETEVENTMSG)
#define PTRACE_GETSIGINFO SYMBOLIC(PTRACE_GETSIGINFO)
#define PTRACE_SETOPTIONS SYMBOLIC(PTRACE_SETOPTIONS)
#define PTRACE_SETSIGINFO SYMBOLIC(PTRACE_SETSIGINFO)
#define PTRACE_GETREGSET SYMBOLIC(PTRACE_GETREGSET)
#define PTRACE_GETSIGMASK SYMBOLIC(PTRACE_GETSIGMASK)
#define PTRACE_INTERRUPT SYMBOLIC(PTRACE_INTERRUPT)
#define PTRACE_LISTEN SYMBOLIC(PTRACE_LISTEN)
#define PTRACE_PEEKSIGINFO SYMBOLIC(PTRACE_PEEKSIGINFO)
#define PTRACE_SECCOMP_GET_FILTER SYMBOLIC(PTRACE_SECCOMP_GET_FILTER)
#define PTRACE_SEIZE SYMBOLIC(PTRACE_SEIZE)
#define PTRACE_SETREGSET SYMBOLIC(PTRACE_SETREGSET)
#define PTRACE_SETSIGMASK SYMBOLIC(PTRACE_SETSIGMASK)
#define PTRACE_O_TRACESYSGOOD SYMBOLIC(PTRACE_O_TRACESYSGOOD)
#define PTRACE_O_TRACEFORK SYMBOLIC(PTRACE_O_TRACEFORK)
#define PTRACE_O_TRACEVFORK SYMBOLIC(PTRACE_O_TRACEVFORK)
#define PTRACE_O_TRACECLONE SYMBOLIC(PTRACE_O_TRACECLONE)
#define PTRACE_O_TRACEEXEC SYMBOLIC(PTRACE_O_TRACEEXEC)
#define PTRACE_O_TRACEVFORKDONE SYMBOLIC(PTRACE_O_TRACEVFORKDONE)
#define PTRACE_O_TRACEEXIT SYMBOLIC(PTRACE_O_TRACEEXIT)
#define PTRACE_O_MASK SYMBOLIC(PTRACE_O_MASK)
#define PTRACE_EVENT_FORK SYMBOLIC(PTRACE_EVENT_FORK)
#define PTRACE_EVENT_VFORK SYMBOLIC(PTRACE_EVENT_VFORK)
#define PTRACE_EVENT_CLONE SYMBOLIC(PTRACE_EVENT_CLONE)
#define PTRACE_EVENT_EXEC SYMBOLIC(PTRACE_EVENT_EXEC)
#define PTRACE_EVENT_VFORK_DONE SYMBOLIC(PTRACE_EVENT_VFORK_DONE)
#define PTRACE_EVENT_EXIT SYMBOLIC(PTRACE_EVENT_EXIT)
#endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_PTRACE_H_ */