root / lab4 / .minix-src / include / sys / elf_core.h
History | View | Annotate | Download (1.55 KB)
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 |
|