1 /* 2 * This file mainly provides a definition of the structures used 3 * to describe the notes section of an ELF file. 4 * 5 * It is the interface between MINIX core dump and GDB 6 */ 7 8 #ifndef _SYS_ELF_CORE_H_ 9 #define _SYS_ELF_CORE_H_ 10 11 #include <sys/param.h> 12 #include <machine/stackframe.h> 13 14 /* MINIX core file format: 15 * 16 * The core file is in ELF format. Besides the regular program segments, 17 * it has a NOTE segment which contains two NOTE entries 18 * - one containing a minix_elfcore_info_t and the other one containing 19 * the general purpose registers (a stackframe_s structure) 20 */ 21 22 typedef struct stackframe_s gregset_t; /* General purpose registers */ 23 24 /* 25 * A lot more things should be added to these structures. At present, 26 * they contain the absolute bare minimum required to allow GDB to work 27 * with MINIX ELF core dumps. 28 */ 29 30 #define ELF_NOTE_MINIX_ELFCORE_NAME "MINIX-CORE" 31 #define NT_MINIX_ELFCORE_INFO 1 32 #define NT_MINIX_ELFCORE_GREGS 2 33 34 #define MINIX_ELFCORE_VERSION 1 /* Current version of minix_elfcore_info_t */ 35 #define RESERVED_SIZE 5 36 37 typedef struct minix_elfcore_info { 38 /* Version 1 fields */ 39 uint32_t mei_version; /* Version number of struct */ 40 uint32_t mei_meisize; /* sizeof(minix_elfcore_info_t) */ 41 uint32_t mei_signo; /* killing signal */ 42 int32_t mei_pid; /* Process ID */ 43 int8_t mei_command[MAXCOMLEN]; /* Command */ 44 uint32_t flags; /* Flags */ 45 int32_t reserved[RESERVED_SIZE];/* Reserved space*/ 46 /* Put below version 2 fields */ 47 } minix_elfcore_info_t; 48 49 #endif /* _SYS_ELF_CORE_H_ */ 50 51