Managing Ports
Posted: Wed Apr 11, 2007 5:19 am
Hi,
I am on the part of my OS where I am trying to manage ports using a device manager (in its own separate task space at present). I am currently running this device manager at CPL=3.
So, when I launch the device manager, I set IOPL to 3, whereas normally, IOPL=0 for my user tasks.
The thing is, I would expect a port read to cause a GPF exception in ring 3 when IOPL=0, but in Bochs, I get the error message:
I have tried setting my TSS limit higher. I have been setting the IO Map field of my TSS to NULL, but have even tried creating a zeroed IO Map and I still get the same error message.
Can anyone help?
Thanks,
Adam
I am on the part of my OS where I am trying to manage ports using a device manager (in its own separate task space at present). I am currently running this device manager at CPL=3.
So, when I launch the device manager, I set IOPL to 3, whereas normally, IOPL=0 for my user tasks.
The thing is, I would expect a port read to cause a GPF exception in ring 3 when IOPL=0, but in Bochs, I get the error message:
Code: Select all
allow_io(): TR:io_base (0) <= 103
Can anyone help?
Thanks,
Adam