HdlspEnableTerminal
NTSTATUS __stdcall HdlspEnableTerminal(UINT8 bEnable){
unsigned int v1;
int v2;
PKSPIN_LOCK v3;
__int64 v5;
int IsMMIOAddress;
if( bEnable == 1 )
{
v1 = *((_DWORD *)HeadlessGlobals + 12);
if( (v1 & 1) == 0 && (!*((_BYTE *)HeadlessGlobals + 116) || (v1 & 2) == 0) )
{
LOBYTE(IsMMIOAddress) = *((_BYTE *)HeadlessGlobals + 116);
v2 = InbvPortInitialize(
*((unsigned int *)HeadlessGlobals + 13),
(v1 >> 9) & 7,
(UINT8 *)HeadlessGlobals[8],
HeadlessGlobals + 7,
IsMMIOAddress,
*((_BYTE *)HeadlessGlobals + 85));
v3 = HeadlessGlobals;
*((_DWORD *)HeadlessGlobals + 12) ^= (*((_DWORD *)HeadlessGlobals + 12) ^ v2) & 1;
if( (v3[6] & 1) == 0 )
return -1073741823;
HdlspSendStringAtBaud((UINT8 *)"\x1B[2J");
HdlspSendStringAtBaud((UINT8 *)"\x1B[H");
}
}
else if( !bEnable )
{
InbvPortTerminate(*((unsigned int *)HeadlessGlobals + 14));
*(_DWORD *)(v5 + 56) = 0;
*(_DWORD *)(v5 + 48) &= ~1u;
}
return 0;
}Referenced by:
HdlspDispatch
HeadlessInit