Provide access to smaller registers in eregs
This is in preparation for sharing interrupt handlers between YABEL and x86emu. Change-Id: Iff92c1d899b8ada20972731944341805a49b6326 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/1560 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
89bbcf4c9b
commit
4bb7a8d68f
|
@ -20,8 +20,41 @@
|
|||
#ifndef __ARCH_REGISTERS_H
|
||||
#define __ARCH_REGISTERS_H
|
||||
|
||||
#define __PACKED __attribute__((packed))
|
||||
|
||||
#define DOWNTO8(A) \
|
||||
union { \
|
||||
struct { \
|
||||
union { \
|
||||
struct { \
|
||||
uint8_t A##l; \
|
||||
uint8_t A##h; \
|
||||
} __PACKED; \
|
||||
uint16_t A##x; \
|
||||
} __PACKED; \
|
||||
uint16_t h##A##x; \
|
||||
} __PACKED; \
|
||||
uint32_t e##A##x; \
|
||||
} __PACKED;
|
||||
|
||||
#define DOWNTO16(A) \
|
||||
union { \
|
||||
struct { \
|
||||
uint16_t A; \
|
||||
uint16_t h##A; \
|
||||
} __PACKED; \
|
||||
uint32_t e##A; \
|
||||
} __PACKED;
|
||||
|
||||
struct eregs {
|
||||
uint32_t eax, ecx, edx, ebx, esp, ebp, esi, edi;
|
||||
DOWNTO8(a);
|
||||
DOWNTO8(c);
|
||||
DOWNTO8(d);
|
||||
DOWNTO8(b);
|
||||
DOWNTO16(sp);
|
||||
DOWNTO16(bp);
|
||||
DOWNTO16(si);
|
||||
DOWNTO16(di);
|
||||
uint32_t vector;
|
||||
uint32_t error_code;
|
||||
uint32_t eip;
|
||||
|
|
Loading…
Reference in New Issue