Port = State->GeneralRegs[FAST486_REG_EDX].LowWord;
}
+ if (!Fast486IoPrivilegeCheck(State, Port)) return;
+
/* Read a byte from the I/O port */
State->IoReadCallback(State, Port, &Data, 1, sizeof(UCHAR));
Port = State->GeneralRegs[FAST486_REG_EDX].LowWord;
}
+ if (!Fast486IoPrivilegeCheck(State, Port)) return;
+
if (Size)
{
ULONG Data;
Port = State->GeneralRegs[FAST486_REG_EDX].LowWord;
}
+ if (!Fast486IoPrivilegeCheck(State, Port)) return;
+
/* Read the value from AL */
Data = State->GeneralRegs[FAST486_REG_EAX].LowByte;
Port = State->GeneralRegs[FAST486_REG_EDX].LowWord;
}
+ if (!Fast486IoPrivilegeCheck(State, Port)) return;
+
if (Size)
{
/* Get the value from EAX */
TOGGLE_OPSIZE(OperandSize);
TOGGLE_ADSIZE(AddressSize);
+ if (!Fast486IoPrivilegeCheck(State, State->GeneralRegs[FAST486_REG_EDX].LowWord)) return;
+
/* Calculate the size */
if (Opcode == 0x6C) DataSize = sizeof(UCHAR);
else DataSize = OperandSize ? sizeof(ULONG) : sizeof(USHORT);
TOGGLE_OPSIZE(OperandSize);
TOGGLE_ADSIZE(AddressSize);
+ if (!Fast486IoPrivilegeCheck(State, State->GeneralRegs[FAST486_REG_EDX].LowWord)) return;
+
/* Calculate the size */
if (Opcode == 0x6E) DataSize = sizeof(UCHAR);
else DataSize = OperandSize ? sizeof(ULONG) : sizeof(USHORT);