Signed-off-by: li-elvin
Reviewed-by: mdkinney, ydong10
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12547
6f19259b-4bc3-4df7-8a09-
765794883524
IN EFI_IA32_REGISTER_SET *Regs\r
)\r
{\r
IN EFI_IA32_REGISTER_SET *Regs\r
)\r
{\r
+ UINT32 *VectorBase;\r
+\r
Regs->X.Flags.Reserved1 = 1;\r
Regs->X.Flags.Reserved2 = 0;\r
Regs->X.Flags.Reserved3 = 0;\r
Regs->X.Flags.Reserved1 = 1;\r
Regs->X.Flags.Reserved2 = 0;\r
Regs->X.Flags.Reserved3 = 0;\r
Regs->X.Flags.IF = 0;\r
Regs->X.Flags.TF = 0;\r
Regs->X.Flags.CF = 0;\r
Regs->X.Flags.IF = 0;\r
Regs->X.Flags.TF = 0;\r
Regs->X.Flags.CF = 0;\r
+ //\r
+ // The base address of legacy interrupt vector table is 0.\r
+ // We use this base address to get the legacy interrupt handler.\r
+ //\r
+ VectorBase = 0;\r
+ \r
return InternalLegacyBiosFarCall (\r
This,\r
return InternalLegacyBiosFarCall (\r
This,\r
- (UINT16) (((UINT32 *)NULL)[BiosInt] >> 16),\r
- (UINT16) ((UINT32 *)NULL)[BiosInt],\r
+ (UINT16) ((VectorBase)[BiosInt] >> 16),\r
+ (UINT16) (VectorBase)[BiosInt],\r
Regs,\r
&Regs->X.Flags,\r
sizeof (Regs->X.Flags)\r
Regs,\r
&Regs->X.Flags,\r
sizeof (Regs->X.Flags)\r