EFI_STATUS WinNtGopInitializeSimpleTextInForWindow ( IN GOP_PRIVATE_DATA *Private ) /*++ Routine Description: TODO: Add function description Arguments: Private - TODO: add argument description Returns: TODO: add return values --*/ { EFI_STATUS Status; GopPrivateCreateQ (Private); // // Initialize Simple Text In protoocol // Private->SimpleTextIn.Reset = WinNtGopSimpleTextInReset; Private->SimpleTextIn.ReadKeyStroke = WinNtGopSimpleTextInReadKeyStroke; Status = gBS->CreateEvent ( EFI_EVENT_NOTIFY_WAIT, EFI_TPL_NOTIFY, WinNtGopSimpleTextInWaitForKey, Private, &Private->SimpleTextIn.WaitForKey ); #if (EFI_SPECIFICATION_VERSION >= 0x0002000A) Private->SimpleTextInEx.Reset = WinNtGopSimpleTextInExResetEx; Private->SimpleTextInEx.ReadKeyStrokeEx = WinNtGopSimpleTextInExReadKeyStrokeEx; Private->SimpleTextInEx.SetState = WinNtGopSimpleTextInExSetState; Private->SimpleTextInEx.RegisterKeyNotify = WinNtGopSimpleTextInExRegisterKeyNotify; Private->SimpleTextInEx.UnregisterKeyNotify = WinNtGopSimpleTextInExUnregisterKeyNotify; Private->SimpleTextInEx.Reset (&Private->SimpleTextInEx, FALSE); InitializeListHead (&Private->NotifyList); Status = gBS->CreateEvent ( EFI_EVENT_NOTIFY_WAIT, EFI_TPL_NOTIFY, WinNtGopSimpleTextInWaitForKey, Private, &Private->SimpleTextInEx.WaitForKeyEx ); ASSERT_EFI_ERROR (Status); #endif return Status; }
/** TODO: Add function description @param Private TODO: add argument description @return TODO: add return values **/ EFI_STATUS WinNtGopInitializeSimpleTextInForWindow ( IN GOP_PRIVATE_DATA *Private ) { EFI_STATUS Status; GopPrivateCreateQ (Private, &Private->QueueForRead); GopPrivateCreateQ (Private, &Private->QueueForNotify); // // Initialize Simple Text In protoocol // Private->SimpleTextIn.Reset = WinNtGopSimpleTextInReset; Private->SimpleTextIn.ReadKeyStroke = WinNtGopSimpleTextInReadKeyStroke; Status = gBS->CreateEvent ( EVT_NOTIFY_WAIT, TPL_NOTIFY, WinNtGopSimpleTextInWaitForKey, Private, &Private->SimpleTextIn.WaitForKey ); Private->SimpleTextInEx.Reset = WinNtGopSimpleTextInExResetEx; Private->SimpleTextInEx.ReadKeyStrokeEx = WinNtGopSimpleTextInExReadKeyStrokeEx; Private->SimpleTextInEx.SetState = WinNtGopSimpleTextInExSetState; Private->SimpleTextInEx.RegisterKeyNotify = WinNtGopSimpleTextInExRegisterKeyNotify; Private->SimpleTextInEx.UnregisterKeyNotify = WinNtGopSimpleTextInExUnregisterKeyNotify; Private->SimpleTextInEx.Reset (&Private->SimpleTextInEx, FALSE); InitializeListHead (&Private->NotifyList); Status = gBS->CreateEvent ( EVT_NOTIFY_WAIT, TPL_NOTIFY, WinNtGopSimpleTextInWaitForKey, Private, &Private->SimpleTextInEx.WaitForKeyEx ); ASSERT_EFI_ERROR (Status); // // Create the Timer to trigger hot key notifications // Status = gBS->CreateEvent ( EVT_TIMER | EVT_NOTIFY_SIGNAL, TPL_NOTIFY, WinNtGopSimpleTextInTimerHandler, Private, &Private->TimerEvent ); ASSERT_EFI_ERROR (Status); Status = gBS->SetTimer ( Private->TimerEvent, TimerPeriodic, KEYBOARD_TIMER_INTERVAL ); ASSERT_EFI_ERROR (Status); return Status; }