Commit [d789d5] Maximize Restore History

1. Save/restore ICR high 32bit value and check Delivery Status before sending IPI. It could be fix the interrupted issue between ICR high/low writes by SMI handler.

2. Save/restore CPU Interrupt state around sending IPI. It could avoid sending IPI be interrupted by CPU interrupt handler.
3. Add note for SetApicMode() API that must not be called from an interrupt handler or SMI handler.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <>
Reviewed-by: Kinney, Michael <>
Reviewed-by: Mudusuru, Giri <>

git-svn-id: svn:// 6f19259b-4bc3-4df7-8a09-765794883524

Jeff Fan Jeff Fan 2014-07-11

vanjeff vanjeff 2014-07-11

changed Include/Library/LocalApicLib.h
changed Library/BaseXApicLib/BaseXApicLib.c
changed Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c
Include/Library/LocalApicLib.h Diff Switch to side-by-side view
Library/BaseXApicLib/BaseXApicLib.c Diff Switch to side-by-side view
Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c Diff Switch to side-by-side view