crabc 0.7.8

A Rust musl-compatible libc with a dynamic linker
/* Copyright (c) 2026 Meng Zhuo */
/* SPDX-License-Identifier: BSD-3-Clause */

#ifndef _CRABC_SYS_PTRACE_H
#define _CRABC_SYS_PTRACE_H
#include <stdint.h>
#include <bits/ptrace.h>
#include <sys/types.h>
long ptrace(int, ...);
#define PTRACE_TRACEME 0
#define PTRACE_PEEKTEXT 1
#define PTRACE_PEEKDATA 2
#define PTRACE_POKETEXT 4
#define PTRACE_POKEDATA 5
#define PTRACE_CONT 7
#define PTRACE_KILL 8
#define PTRACE_SINGLESTEP 9
#define PTRACE_GETREGS 12
#define PTRACE_SETREGS 13
#define PTRACE_ATTACH 16
#define PTRACE_DETACH 17
#define PTRACE_SYSCALL 24


/* musl 1.2.6 compatibility macros */
#define PTRACE_EVENT_CLONE 3
#define PTRACE_EVENT_EXEC 4
#define PTRACE_EVENT_EXIT 6
#define PTRACE_EVENT_FORK 1
#define PTRACE_EVENT_SECCOMP 7
#define PTRACE_EVENT_STOP 128
#define PTRACE_EVENT_VFORK 2
#define PTRACE_EVENT_VFORK_DONE 5
#define PTRACE_GETEVENTMSG 0x4201
#define PTRACE_GETFPREGS 14
#define PTRACE_GETFPXREGS 18
#define PTRACE_GETREGSET 0x4204
#define PTRACE_GETSIGINFO 0x4202
#define PTRACE_GETSIGMASK 0x420a
#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f
#define PTRACE_GET_SYSCALL_INFO 0x420e
#define PTRACE_INTERRUPT 0x4207
#define PTRACE_LISTEN 0x4208
#define PTRACE_O_EXITKILL 0x00100000
#define PTRACE_O_MASK 0x003000ff
#define PTRACE_O_SUSPEND_SECCOMP 0x00200000
#define PTRACE_O_TRACECLONE 0x00000008
#define PTRACE_O_TRACEEXEC 0x00000010
#define PTRACE_O_TRACEEXIT 0x00000040
#define PTRACE_O_TRACEFORK 0x00000002
#define PTRACE_O_TRACESECCOMP 0x00000080
#define PTRACE_O_TRACESYSGOOD 0x00000001
#define PTRACE_O_TRACEVFORK 0x00000004
#define PTRACE_O_TRACEVFORKDONE 0x00000020
#define PTRACE_PEEKSIGINFO 0x4209
#define PTRACE_PEEKSIGINFO_SHARED 1
#define PTRACE_PEEKUSER 3
#define PTRACE_POKEUSER 6
#define PTRACE_SECCOMP_GET_FILTER 0x420c
#define PTRACE_SECCOMP_GET_METADATA 0x420d
#define PTRACE_SEIZE 0x4206
#define PTRACE_SETFPREGS 15
#define PTRACE_SETFPXREGS 19
#define PTRACE_SETOPTIONS 0x4200
#define PTRACE_SETREGSET 0x4205
#define PTRACE_SETSIGINFO 0x4203
#define PTRACE_SETSIGMASK 0x420b
#define PTRACE_SYSCALL_INFO_ENTRY 1
#define PTRACE_SYSCALL_INFO_EXIT 2
#define PTRACE_SYSCALL_INFO_NONE 0
#define PTRACE_SYSCALL_INFO_SECCOMP 3
#define PT_ATTACH PTRACE_ATTACH
#define PT_CONTINUE PTRACE_CONT
#define PT_DETACH PTRACE_DETACH
#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
#define PT_GETFPREGS PTRACE_GETFPREGS
#define PT_GETFPXREGS PTRACE_GETFPXREGS
#define PT_GETREGS PTRACE_GETREGS
#define PT_GETSIGINFO PTRACE_GETSIGINFO
#define PT_KILL PTRACE_KILL
#define PT_READ_D PTRACE_PEEKDATA
#define PT_READ_I PTRACE_PEEKTEXT
#define PT_READ_U PTRACE_PEEKUSER
#define PT_SETFPREGS PTRACE_SETFPREGS
#define PT_SETFPXREGS PTRACE_SETFPXREGS
#define PT_SETOPTIONS PTRACE_SETOPTIONS
#define PT_SETREGS PTRACE_SETREGS
#define PT_SETSIGINFO PTRACE_SETSIGINFO
#define PT_STEP PTRACE_SINGLESTEP
#define PT_SYSCALL PTRACE_SYSCALL
#define PT_TRACE_ME PTRACE_TRACEME
#define PT_WRITE_D PTRACE_POKEDATA
#define PT_WRITE_I PTRACE_POKETEXT
#define PT_WRITE_U PTRACE_POKEUSER
#if defined(__x86_64__)
#define PTRACE_ARCH_PRCTL 30
#define PTRACE_GET_THREAD_AREA 25
#define PTRACE_SET_THREAD_AREA 26
#define PTRACE_SINGLEBLOCK 33
#define PTRACE_SYSEMU 31
#define PTRACE_SYSEMU_SINGLESTEP 32
#define PT_ARCH_PRCTL PTRACE_ARCH_PRCTL
#define PT_GET_THREAD_AREA PTRACE_GET_THREAD_AREA
#define PT_SET_THREAD_AREA PTRACE_SET_THREAD_AREA
#define PT_STEPBLOCK PTRACE_SINGLEBLOCK
#define PT_SYSEMU PTRACE_SYSEMU
#define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP
#endif
#endif