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:
		
				
					committed by
					
						 Stefan Reinauer
						Stefan Reinauer
					
				
			
			
				
	
			
			
			
						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; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user