summaryrefslogtreecommitdiff
path: root/gpxe/src/arch/i386/include/registers.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpxe/src/arch/i386/include/registers.h')
-rw-r--r--gpxe/src/arch/i386/include/registers.h198
1 files changed, 0 insertions, 198 deletions
diff --git a/gpxe/src/arch/i386/include/registers.h b/gpxe/src/arch/i386/include/registers.h
deleted file mode 100644
index 2839e2bd..00000000
--- a/gpxe/src/arch/i386/include/registers.h
+++ /dev/null
@@ -1,198 +0,0 @@
-#ifndef REGISTERS_H
-#define REGISTERS_H
-
-/** @file
- *
- * i386 registers.
- *
- * This file defines data structures that allow easy access to i386
- * register dumps.
- *
- */
-
-FILE_LICENCE ( GPL2_OR_LATER );
-
-#include <stdint.h>
-
-/**
- * A 16-bit general register.
- *
- * This type encapsulates a 16-bit register such as %ax, %bx, %cx,
- * %dx, %si, %di, %bp or %sp.
- *
- */
-typedef union {
- struct {
- union {
- uint8_t l;
- uint8_t byte;
- };
- uint8_t h;
- } PACKED;
- uint16_t word;
-} PACKED reg16_t;
-
-/**
- * A 32-bit general register.
- *
- * This type encapsulates a 32-bit register such as %eax, %ebx, %ecx,
- * %edx, %esi, %edi, %ebp or %esp.
- *
- */
-typedef union {
- struct {
- union {
- uint8_t l;
- uint8_t byte;
- };
- uint8_t h;
- } PACKED;
- uint16_t word;
- uint32_t dword;
-} PACKED reg32_t;
-
-/**
- * A 32-bit general register dump.
- *
- * This is the data structure that is created on the stack by the @c
- * pushal instruction, and can be read back using the @c popal
- * instruction.
- *
- */
-struct i386_regs {
- union {
- uint16_t di;
- uint32_t edi;
- };
- union {
- uint16_t si;
- uint32_t esi;
- };
- union {
- uint16_t bp;
- uint32_t ebp;
- };
- union {
- uint16_t sp;
- uint32_t esp;
- };
- union {
- struct {
- uint8_t bl;
- uint8_t bh;
- } PACKED;
- uint16_t bx;
- uint32_t ebx;
- };
- union {
- struct {
- uint8_t dl;
- uint8_t dh;
- } PACKED;
- uint16_t dx;
- uint32_t edx;
- };
- union {
- struct {
- uint8_t cl;
- uint8_t ch;
- } PACKED;
- uint16_t cx;
- uint32_t ecx;
- };
- union {
- struct {
- uint8_t al;
- uint8_t ah;
- } PACKED;
- uint16_t ax;
- uint32_t eax;
- };
-} PACKED;
-
-/**
- * A segment register dump.
- *
- * The i386 has no equivalent of the @c pushal or @c popal
- * instructions for the segment registers. We adopt the convention of
- * always using the sequences
- *
- * @code
- *
- * pushw %gs ; pushw %fs ; pushw %es ; pushw %ds ; pushw %ss ; pushw %cs
- *
- * @endcode
- *
- * and
- *
- * @code
- *
- * addw $4, %sp ; popw %ds ; popw %es ; popw %fs ; popw %gs
- *
- * @endcode
- *
- * This is the data structure that is created and read back by these
- * instruction sequences.
- *
- */
-struct i386_seg_regs {
- uint16_t cs;
- uint16_t ss;
- uint16_t ds;
- uint16_t es;
- uint16_t fs;
- uint16_t gs;
-} PACKED;
-
-/**
- * A full register dump.
- *
- * This data structure is created by the instructions
- *
- * @code
- *
- * pushfl
- * pushal
- * pushw %gs ; pushw %fs ; pushw %es ; pushw %ds ; pushw %ss ; pushw %cs
- *
- * @endcode
- *
- * and can be read back using the instructions
- *
- * @code
- *
- * addw $4, %sp ; popw %ds ; popw %es ; popw %fs ; popw %gs
- * popal
- * popfl
- *
- * @endcode
- *
- * prot_call() and kir_call() create this data structure on the stack
- * and pass in a pointer to this structure.
- *
- */
-struct i386_all_regs {
- struct i386_seg_regs segs;
- struct i386_regs regs;
- uint32_t flags;
-} PACKED;
-
-/* Flags */
-#define CF ( 1 << 0 )
-#define PF ( 1 << 2 )
-#define AF ( 1 << 4 )
-#define ZF ( 1 << 6 )
-#define SF ( 1 << 7 )
-#define OF ( 1 << 11 )
-
-/* Segment:offset structure. Note that the order within the structure
- * is offset:segment.
- */
-struct segoff {
- uint16_t offset;
- uint16_t segment;
-} PACKED;
-
-typedef struct segoff segoff_t;
-
-#endif /* REGISTERS_H */