+ OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
+ Status = gBS->SetTimer (\r
+ TimerEvent,\r
+ TimerPeriodic,\r
+ TICKS_PER_MS\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ gBS->CloseEvent (TimerEvent);\r
+ return 0;\r
+ }\r
+\r
+ while (RttTimerTick < 10) {\r
+ gBS->Stall (STALL_1_MILLI_SECOND);\r
+ ++StallCounter;\r
+ }\r
+\r
+ gBS->RestoreTPL (OldTpl);\r
+\r
+ gBS->SetTimer (TimerEvent, TimerCancel, 0);\r
+ gBS->CloseEvent (TimerEvent);\r
+\r
+ return StallCounter / RttTimerTick;\r
+}\r