diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:29:51 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:29:51 +0000 |
commit | 6e7a315eb67cb6c113cf37e1d66c4f11a51a2b3e (patch) | |
tree | 32451fa3cdd9321fb2591fada9891b2cb70a9cd1 /include/grub/i386/gdb.h | |
parent | Initial commit. (diff) | |
download | grub2-upstream.tar.xz grub2-upstream.zip |
Adding upstream version 2.06.upstream/2.06upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'include/grub/i386/gdb.h')
-rw-r--r-- | include/grub/i386/gdb.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/include/grub/i386/gdb.h b/include/grub/i386/gdb.h new file mode 100644 index 0000000..92d2dac --- /dev/null +++ b/include/grub/i386/gdb.h @@ -0,0 +1,78 @@ +/* i386/gdb.h - i386 specific definitions for the remote GDB stub */ +/* + * Copyright (C) 2006 Lubomir Kundrak + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef GRUB_GDB_CPU_HEADER +#define GRUB_GDB_CPU_HEADER 1 + +#define GRUB_GDB_LAST_TRAP 31 +/* You may have to edit the bottom of machdep.S when adjusting + GRUB_GDB_LAST_TRAP. */ +#define GRUB_MACHINE_NR_REGS 16 + +#define EAX 0 +#define ECX 1 +#define EDX 2 +#define EBX 3 +#define ESP 4 +#define EBP 5 +#define ESI 6 +#define EDI 7 +#define EIP 8 +#define EFLAGS 9 +#define CS 10 +#define SS 11 +#define DS 12 +#define ES 13 +#define FS 14 +#define GS 15 + +#define PC EIP +#define FP EBP +#define SP ESP +#define PS EFLAGS + +#ifndef ASM_FILE + +#include <grub/gdb.h> + +#define GRUB_CPU_TRAP_GATE 15 + +struct grub_cpu_interrupt_gate +{ + grub_uint16_t offset_lo; + grub_uint16_t selector; + grub_uint8_t unused; + grub_uint8_t gate; + grub_uint16_t offset_hi; +} GRUB_PACKED; + +struct grub_cpu_idt_descriptor +{ + grub_uint16_t limit; + grub_uint32_t base; +} GRUB_PACKED; + +extern void (*grub_gdb_trapvec[]) (void); +void grub_gdb_idtinit (void); +void grub_gdb_idtrestore (void); +void grub_gdb_trap (int trap_no) __attribute__ ((regparm(3))); + +#endif /* ! ASM */ +#endif /* ! GRUB_GDB_CPU_HEADER */ + |