The idea is that when a machine is multiuser, the operating system is a layer on top of the machine. So a program should not be able to access hardware IO ports directly.
Even as root. Because eventually you run a program as root, which gets holed, and now that program can access more than the abstract machine, it can touch IO ports. It is ridiculous to permit such behaviour when basically nothing needs it. So, the changes we made are intentional. That software is doing something we don't wish to support. Doug Moss <dougmoss...@yahoo.com> wrote: > i386_get_ioperm() and i386_set_ioperm() > > These were removed from sysarch.h between OpenBSD 5.9 to 6.0? > > I believe this code (port.h): > https://github.com/lcdproc/lcdproc/blob/master/server/drivers/port.h > > On OpenBSD 5.9, it uses the code branch for 'NetBSD/OpenBSD' > lines 174 to 270 > based on having types, pio.h, and sysarch.h, and having i386_xxx_ioperm > > But then with OpenBSD 6.0, it drops to using the 'Everything else' assembly > lines 338 to 388 > which fails miserably, because there is no "/dev/io" > > > Is there a work around for the removal of i386_get_ioperm() > Can i386_iopl() be used in some way? > > Thanks >