libmach
This commit is contained in:
parent
0e3cc9f456
commit
a84cbb2a17
53 changed files with 12038 additions and 0 deletions
142
src/libmach/elfcore.h
Normal file
142
src/libmach/elfcore.h
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
/* Copyright (c) 2002, 2003 William Josephson */
|
||||
|
||||
enum {
|
||||
CoremapMagic = 0xba5eba11,
|
||||
CoremapMax = 128,
|
||||
};
|
||||
#undef MAXCOMLEN
|
||||
#define MAXCOMLEN 16
|
||||
#define PRSTATUS_VERSION 1 /* Current version of prstatus_t */
|
||||
#define PRPSINFO_VERSION 1 /* Current version of prpsinfo_t */
|
||||
#define PRARGSZ 80 /* Maximum argument bytes saved */
|
||||
|
||||
|
||||
typedef struct Coremap Coremap;
|
||||
typedef struct CoremapItem CoremapItem;
|
||||
typedef struct CoremapHeader CoremapHeader;
|
||||
typedef struct ElfNote ElfNote;
|
||||
typedef struct Reg386 Reg386;
|
||||
typedef struct PrStatus386 PrStatus386;
|
||||
typedef struct PrPsinfo PrPsinfo;
|
||||
|
||||
struct CoremapHeader {
|
||||
u32int magic;
|
||||
u32int counter;
|
||||
u32int maxelem;
|
||||
};
|
||||
|
||||
struct CoremapItem {
|
||||
u32int address;
|
||||
u32int size;
|
||||
};
|
||||
|
||||
struct Coremap {
|
||||
CoremapHeader header;
|
||||
CoremapItem map[CoremapMax];
|
||||
};
|
||||
|
||||
struct ElfNote {
|
||||
u32int namesz;
|
||||
u32int descsz;
|
||||
u32int type;
|
||||
char *name;
|
||||
uchar *desc;
|
||||
u32int offset; /* in-memory only */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
NotePrStatus = 1,
|
||||
NotePrFpreg = 2,
|
||||
NotePrPsinfo = 3,
|
||||
NotePrTaskstruct = 4,
|
||||
NotePrAuxv = 6,
|
||||
NotePrXfpreg = 0x46e62b7f, /* according to gdb */
|
||||
};
|
||||
#if 0
|
||||
struct Reg386
|
||||
{
|
||||
u32int fs;
|
||||
u32int es;
|
||||
u32int ds;
|
||||
u32int edi;
|
||||
u32int esi;
|
||||
u32int ebp;
|
||||
u32int isp;
|
||||
u32int ebx;
|
||||
u32int edx;
|
||||
u32int ecx;
|
||||
u32int eax;
|
||||
u32int trapno;
|
||||
u32int err;
|
||||
u32int eip;
|
||||
u32int cs;
|
||||
u32int eflags;
|
||||
u32int esp;
|
||||
u32int ss;
|
||||
u32int gs;
|
||||
};
|
||||
#endif
|
||||
|
||||
struct Reg386
|
||||
{
|
||||
u32int ebx;
|
||||
u32int ecx;
|
||||
u32int edx;
|
||||
u32int esi;
|
||||
u32int edi;
|
||||
u32int ebp;
|
||||
u32int eax;
|
||||
u32int ds;
|
||||
u32int es;
|
||||
u32int fs;
|
||||
u32int gs;
|
||||
u32int origeax;
|
||||
u32int eip;
|
||||
u32int cs;
|
||||
u32int eflags;
|
||||
u32int esp;
|
||||
u32int ss;
|
||||
};
|
||||
|
||||
#if 0
|
||||
struct PrStatus386
|
||||
{
|
||||
u32int version; /* Version number of struct (1) */
|
||||
u32int statussz; /* sizeof(prstatus_t) (1) */
|
||||
u32int gregsetsz; /* sizeof(gregset_t) (1) */
|
||||
u32int fpregsetsz; /* sizeof(fpregset_t) (1) */
|
||||
int osreldate; /* Kernel version (1) */
|
||||
int cursig; /* Current signal (1) */
|
||||
pid_t pid; /* Process ID (1) */
|
||||
Reg386 reg; /* General purpose registers (1) */
|
||||
};
|
||||
#endif
|
||||
|
||||
struct PrPsinfo
|
||||
{
|
||||
int version; /* Version number of struct (1) */
|
||||
u32int psinfosz; /* sizeof(prpsinfo_t) (1) */
|
||||
char fname[MAXCOMLEN+1]; /* Command name, null terminated (1) */
|
||||
char psargs[PRARGSZ+1]; /* Arguments, null terminated (1) */
|
||||
};
|
||||
|
||||
struct PrStatus386
|
||||
{
|
||||
u32int signo;
|
||||
u32int code;
|
||||
u32int errno;
|
||||
u32int cursig;
|
||||
u32int sigpend;
|
||||
u32int sighold;
|
||||
u32int pid;
|
||||
u32int ppid;
|
||||
u32int pgrp;
|
||||
u32int sid;
|
||||
u32int utime[2];
|
||||
u32int stime[2];
|
||||
u32int cutime[2];
|
||||
u32int cstime[2];
|
||||
Reg386 reg;
|
||||
u32int fpvalid;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue