I have a strange problem with iopl(). I'm developing a program requiring to
make I/O operation to some ports than I put the iopl(3) at the beginning of
the program code, immediately after the main(). Every I/O call work ok but
only the calls present in the main thread. If I create another thread and
put an I/O operation in this second code the program generate a
segmentation fault. With dbg I verified that the fault is generated by the
in/out assembly instruction. If I put the same iopl(3) at the beginning of
every thread routine all the I/O calls work without errors. It seem that
iopl(3) give the permission only to the calling thread and not to the
calling process as reported from man documentation, can you confirm this
strange "problem"?
Thank you at all