Project

General

Profile

Statistics
| Revision:

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_ */