]> git.proxmox.com Git - mirror_qemu.git/blame - contrib/elf2dmp/qemu_elf.h
contrib/elf2dmp: Fix error reporting style in qemu_elf.c
[mirror_qemu.git] / contrib / elf2dmp / qemu_elf.h
CommitLineData
3fa2d384
VP
1/*
2 * Copyright (c) 2018 Virtuozzo International GmbH
3 *
4 * This work is licensed under the terms of the GNU GPL, version 2 or later.
3fa2d384
VP
5 */
6
37677d7d
MA
7#ifndef ELF2DMP_QEMU_ELF_H
8#define ELF2DMP_QEMU_ELF_H
3fa2d384 9
e53f3466 10#include "elf.h"
3fa2d384
VP
11
12typedef struct QEMUCPUSegment {
13 uint32_t selector;
14 uint32_t limit;
15 uint32_t flags;
16 uint32_t pad;
17 uint64_t base;
18} QEMUCPUSegment;
19
20typedef struct QEMUCPUState {
21 uint32_t version;
22 uint32_t size;
23 uint64_t rax, rbx, rcx, rdx, rsi, rdi, rsp, rbp;
24 uint64_t r8, r9, r10, r11, r12, r13, r14, r15;
25 uint64_t rip, rflags;
26 QEMUCPUSegment cs, ds, es, fs, gs, ss;
27 QEMUCPUSegment ldt, tr, gdt, idt;
28 uint64_t cr[5];
29 uint64_t kernel_gs_base;
30} QEMUCPUState;
31
32int is_system(QEMUCPUState *s);
33
34typedef struct QEMU_Elf {
df7a7556 35#ifndef CONFIG_LINUX
bd4d0da7 36 GMappedFile *gmf;
df7a7556 37#endif
3fa2d384
VP
38 size_t size;
39 void *map;
40 QEMUCPUState **state;
41 size_t state_nr;
42 int has_kernel_gs_base;
43} QEMU_Elf;
44
49760ccf 45bool QEMU_Elf_init(QEMU_Elf *qe, const char *filename);
3fa2d384
VP
46void QEMU_Elf_exit(QEMU_Elf *qe);
47
48Elf64_Phdr *elf64_getphdr(void *map);
49Elf64_Half elf_getphdrnum(void *map);
50
58ea30f5 51#endif /* ELF2DMP_QEMU_ELF_H */