[ros-dev] AllocConsole bug

Ge van Geldorp gvg at reactos.org
Tue Oct 18 10:48:16 CEST 2005


While looking over the i8042prt code, what scared me a bit was that we're
hapilly mixing STATUS_TIMEOUT and STATUS_IO_TIMEOUT. Note that
NT_SUCCESS(STATUS_TIMEOUT) will return TRUE (!!!), while
NT_SUCCESS(STATUS_IO_TIMEOUT) will return FALSE.

Take for example this loop in I8042BasicDetect:

Counter = 3;
do {
    Status = I8042ReadDataWait(DevExt, &Value);
} while ((Counter--) && (STATUS_TIMEOUT == Status));

If my reading of the code is correct, I8042ReadDataWait can either return
STATUS_SUCCESS or STATUS_IO_TIMEOUT, it will never return the STATUS_TIMEOUT
which is tested here.

I'd like to change all the STATUS_TIMEOUT occurences to STATUS_IO_TIMEOUT, I
get the impression that a timeout is an error condition in i8042prt so we
want NT_SUCCESS() to return FALSE if a timeout occurred. Anyone out there
seeing this AllocConsole bug who would be willing to test?

Gé van Geldorp.




More information about the Ros-dev mailing list