[coreboot] New patch to review for coreboot: 508fd01 Provide access to smaller registers in eregs
Patrick Georgi (patrick@georgi-clan.de)
gerrit at coreboot.org
Fri Oct 5 19:52:08 CEST 2012
Patrick Georgi (patrick at georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1560
-gerrit
commit 508fd0158780293264c0ad879b6b34d3c6cd686f
Author: Patrick Georgi <patrick at georgi-clan.de>
Date: Fri Aug 17 15:57:36 2012 +0200
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 at georgi-clan.de>
---
src/arch/x86/include/arch/registers.h | 35 ++++++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/src/arch/x86/include/arch/registers.h b/src/arch/x86/include/arch/registers.h
index bc1b681..d120a2a 100644
--- a/src/arch/x86/include/arch/registers.h
+++ b/src/arch/x86/include/arch/registers.h
@@ -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;
More information about the coreboot
mailing list