Read IDT entry to check if IDT entries are setup by Debug Agent.\r
\r
@param[in] IdtDescriptor Pointer to IDT Descriptor.\r
+ @param[in] InterruptType Interrupt type.\r
\r
@retval TRUE IDT entries were setup by Debug Agent.\r
@retval FALSE IDT entries were not setuo by Debug Agent.\r
**/\r
BOOLEAN \r
CheckDebugAgentHandler (\r
- IN IA32_DESCRIPTOR *IdtDescriptor\r
+ IN IA32_DESCRIPTOR *IdtDescriptor,\r
+ IN UINTN InterruptType\r
)\r
{\r
IA32_IDT_GATE_DESCRIPTOR *IdtEntry;\r
return FALSE;\r
}\r
\r
- InterruptHandler = IdtEntry[0].Bits.OffsetLow + (((UINTN)IdtEntry[0].Bits.OffsetHigh) << 16) + \r
- (((UINTN)IdtEntry[0].Bits.OffsetUpper) << 32);\r
- if (InterruptHandler >= 4 && *(UINT32 *)(InterruptHandler - 4) == AGENT_HANDLER_SIGNATURE) {\r
+ InterruptHandler = IdtEntry[InterruptType].Bits.OffsetLow +\r
+ (((UINTN)IdtEntry[InterruptType].Bits.OffsetHigh) << 16) + \r
+ (((UINTN)IdtEntry[InterruptType].Bits.OffsetUpper) << 32);\r
+ if (InterruptHandler >= sizeof (UINT32) && *(UINT32 *)(InterruptHandler - sizeof (UINT32)) == AGENT_HANDLER_SIGNATURE) {\r
return TRUE;\r
} else {\r
return FALSE;\r