51 lines
1.6 KiB
C
51 lines
1.6 KiB
C
/*
|
|
* This file mainly provides a definition of the structures used
|
|
* to describe the notes section of an ELF file.
|
|
*
|
|
* It is the interface between MINIX core dump and GDB
|
|
*/
|
|
|
|
#ifndef _SYS_ELF_CORE_H_
|
|
#define _SYS_ELF_CORE_H_
|
|
|
|
#include <sys/param.h>
|
|
#include <machine/stackframe.h>
|
|
|
|
/* MINIX core file format:
|
|
*
|
|
* The core file is in ELF format. Besides the regular program segments,
|
|
* it has a NOTE segment which contains two NOTE entries
|
|
* - one containing a minix_elfcore_info_t and the other one containing
|
|
* the general purpose registers (a stackframe_s structure)
|
|
*/
|
|
|
|
typedef struct stackframe_s gregset_t; /* General purpose registers */
|
|
|
|
/*
|
|
* A lot more things should be added to these structures. At present,
|
|
* they contain the absolute bare minimum required to allow GDB to work
|
|
* with MINIX ELF core dumps.
|
|
*/
|
|
|
|
#define ELF_NOTE_MINIX_ELFCORE_NAME "MINIX-CORE"
|
|
#define NT_MINIX_ELFCORE_INFO 1
|
|
#define NT_MINIX_ELFCORE_GREGS 2
|
|
|
|
#define MINIX_ELFCORE_VERSION 1 /* Current version of minix_elfcore_info_t */
|
|
#define RESERVED_SIZE 5
|
|
|
|
typedef struct minix_elfcore_info {
|
|
/* Version 1 fields */
|
|
uint32_t mei_version; /* Version number of struct */
|
|
uint32_t mei_meisize; /* sizeof(minix_elfcore_info_t) */
|
|
uint32_t mei_signo; /* killing signal */
|
|
int32_t mei_pid; /* Process ID */
|
|
int8_t mei_command[MAXCOMLEN]; /* Command */
|
|
uint32_t flags; /* Flags */
|
|
int32_t reserved[RESERVED_SIZE];/* Reserved space*/
|
|
/* Put below version 2 fields */
|
|
} minix_elfcore_info_t;
|
|
|
|
#endif /* _SYS_ELF_CORE_H_ */
|
|
|