summaryrefslogtreecommitdiffstats
path: root/sys/dev/io
Commit message (Collapse)AuthorAgeFilesLines
* - Extract the IODEV_PIO interface from ia64 and make it MI.attilio2010-04-282-9/+181
| | | | | | | | | | | | | | | | In the end, it does help fixing /dev/io usage from multithreaded processes. - On i386 and amd64 the old behaviour is kept but multithreaded processes must use the new interface in order to work well. - Support for the other architectures is greatly improved, where necessary, by the necessity to define very small things now. Manpage update will happen shortly. Sponsored by: Sandvine Incorporated PR: threads/116181 Reviewed by: emaste, marcel MFC after: 3 weeks
* Use io(4) for I/O port access on ia64, rather than through sysarch(2).marcel2010-01-111-2/+1
| | | | | | | | | | | | | | | | | I/O port access is implemented on Itanium by reading and writing to a special region in memory. To hide details and avoid misaligned memory accesses, a process did I/O port reads and writes by making a MD system call. There's one fatal problem with this approach: unprivileged access was not being prevented. /dev/io serves that purpose on amd64/i386, so employ it on ia64 as well. Use an ioctl for doing the actual I/O and remove the sysarch(2) interface. Backward compatibility is not being considered. The sysarch(2) approach was added to support X11, but support for FreeBSD/ia64 was never fully implemented in X11. Thus, nothing gets broken that didn't need more work to begin with. MFC after: 1 week
* Remove D_NEEDGIANT from io(4).ed2008-08-081-1/+0
| | | | | | | | | | | | | | There is no need to mark this device node to use Giant. The only architectures that use io(4) (i386 and amd64) only change a flag in td->td_frame, which is only accessed by curthread. Apart from this change, I think some fishy things may happen when using /dev/io in multithreaded applications. I haven't tested, but looking at the code, the flag doesn't get cleared when close() is called from another thread, but this may not be this important. I'm not removing D_NEEDGIANT from mem(4), because this driver isn't Giant safe at all (it calls GIANT_REQUIRED).
* Remove the unused major/minor numbers from iodev and memdev.ed2008-06-251-1/+1
| | | | | | | | | Now that st_rdev is being automatically generated by the kernel, there is no need to define static major/minor numbers for the iodev and memdev. We still need the minor numbers for the memdev, however, to distinguish between /dev/mem and /dev/kmem. Approved by: philip (mentor)
* Add module versions.markm2004-08-021-0/+1
|
* Break out the MI part of the /dev/[k]mem and /dev/io drivers intomarkm2004-08-011-0/+89
their own directory and module, leaving the MD parts in the MD area (the MD parts _are_ part of the modules). /dev/mem and /dev/io are now loadable modules, thus taking us one step further towards a kernel created entirely out of modules. Of course, there is nothing preventing the kernel from having these statically compiled.
OpenPOWER on IntegriCloud