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