1e93f7393Sniklas /* xdr_ptrace.h - xdr header for remote ptrace structures */ 2e93f7393Sniklas 3*b725ae77Skettenis /* Copyright 1992, 1998 Free Software Foundation, Inc. 4e93f7393Sniklas 5e93f7393Sniklas This code was donated by Wind River Systems, Inc. */ 6e93f7393Sniklas 7e93f7393Sniklas /* 8e93f7393Sniklas modification history 9e93f7393Sniklas -------------------- 10e93f7393Sniklas 01b,25may91,maf now uses counted bytes struct to transfer registers; 11e93f7393Sniklas removed references to old xdr_regs functions. 12e93f7393Sniklas removed includes of "xdr_regs.h" and "reg.h". 13e93f7393Sniklas 01a,05jun90,llk extracted from xdr_ptrace.h. 14e93f7393Sniklas */ 15e93f7393Sniklas 16e93f7393Sniklas 17e93f7393Sniklas /* 18e93f7393Sniklas * Counted byte structure used by READ/WRITE TEXT/DATA 19e93f7393Sniklas * and GET/SET REGS/FPREGS 20e93f7393Sniklas */ 21e93f7393Sniklas struct c_bytes { 22e93f7393Sniklas u_int len; 23e93f7393Sniklas caddr_t bytes; 24e93f7393Sniklas }; 25e93f7393Sniklas typedef struct c_bytes C_bytes; 26e93f7393Sniklas 27e93f7393Sniklas /* 28e93f7393Sniklas * enum for discriminated union ptrace_info 29e93f7393Sniklas */ 30e93f7393Sniklas enum ptype { 31e93f7393Sniklas NOINFO = 0, /* no additional infomation */ 32e93f7393Sniklas DATA = 1 /* c_bytes */ 33e93f7393Sniklas }; 34e93f7393Sniklas typedef enum ptype ptype; 35e93f7393Sniklas 36e93f7393Sniklas /* 37e93f7393Sniklas * discrimnated union for passing additional data to be 38e93f7393Sniklas * written to the debugged process. 39e93f7393Sniklas */ 40e93f7393Sniklas struct ptrace_info { 41e93f7393Sniklas ptype ttype; 42e93f7393Sniklas caddr_t more_data; 43e93f7393Sniklas }; 44e93f7393Sniklas typedef struct ptrace_info Ptrace_info; 45e93f7393Sniklas 46e93f7393Sniklas /* 47e93f7393Sniklas * structure passed to server on all remote ptrace calls 48e93f7393Sniklas */ 49e93f7393Sniklas struct rptrace { 50e93f7393Sniklas int pid; 51e93f7393Sniklas int data; 52e93f7393Sniklas int addr; /* FIX! this really should be caddr_t or something */ 53e93f7393Sniklas Ptrace_info info; 54e93f7393Sniklas }; 55e93f7393Sniklas typedef struct rptrace Rptrace; 56e93f7393Sniklas 57e93f7393Sniklas /* 58e93f7393Sniklas * structure returned by server on all remote ptrace calls 59e93f7393Sniklas */ 60*b725ae77Skettenis /* This used to have a field called errno, but that fails on hosts which 61*b725ae77Skettenis define errno to be a macro, so it was changed to errno_num. */ 62e93f7393Sniklas struct ptrace_return { 63e93f7393Sniklas int status; 64*b725ae77Skettenis int errno_num; 65e93f7393Sniklas Ptrace_info info; 66e93f7393Sniklas }; 67e93f7393Sniklas typedef struct ptrace_return Ptrace_return; 68e93f7393Sniklas 69e93f7393Sniklas bool_t xdr_c_bytes(); 70e93f7393Sniklas bool_t xdr_ptrace_info(); 71e93f7393Sniklas bool_t xdr_rptrace(); 72e93f7393Sniklas bool_t xdr_ptrace_return(); 73