+/**\r
+ Write AP start-up signal to wakeup AP.\r
+\r
+ @param ApStartupSignalBuffer Pointer to AP wakeup signal\r
+**/\r
+VOID\r
+WriteStartupSignal (\r
+ IN volatile UINT32 *ApStartupSignalBuffer\r
+ )\r
+{\r
+ *ApStartupSignalBuffer = WAKEUP_AP_SIGNAL;\r
+ //\r
+ // If AP is waken up, StartupApSignal should be cleared.\r
+ // Otherwise, write StartupApSignal again till AP waken up.\r
+ //\r
+ while (InterlockedCompareExchange32 (\r
+ (UINT32 *)ApStartupSignalBuffer,\r
+ WAKEUP_AP_SIGNAL,\r
+ WAKEUP_AP_SIGNAL\r
+ ) != 0) {\r
+ CpuPause ();\r
+ }\r
+}\r
+\r