<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/dev/io, branch release/10.0.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F10.0.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F10.0.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2010-04-28T15:38:01Z</updated>
<entry>
<title>- Extract the IODEV_PIO interface from ia64 and make it MI.</title>
<updated>2010-04-28T15:38:01Z</updated>
<author>
<name>Attilio Rao</name>
<email>attilio@FreeBSD.org</email>
</author>
<published>2010-04-28T15:38:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=d8b878873e7aa8df1972cc6a642804b17eb61087'/>
<id>urn:sha1:d8b878873e7aa8df1972cc6a642804b17eb61087</id>
<content type='text'>
  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
</content>
</entry>
<entry>
<title>Use io(4) for I/O port access on ia64, rather than through sysarch(2).</title>
<updated>2010-01-11T18:10:13Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2010-01-11T18:10:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=409a390c3341fb4f162cd7de1fd595a323ebbfd8'/>
<id>urn:sha1:409a390c3341fb4f162cd7de1fd595a323ebbfd8</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Remove D_NEEDGIANT from io(4).</title>
<updated>2008-08-08T13:43:56Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2008-08-08T13:43:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=cacdd70cc751fb68dec4b86c5e5b8c969b6e26ef'/>
<id>urn:sha1:cacdd70cc751fb68dec4b86c5e5b8c969b6e26ef</id>
<content type='text'>
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-&gt;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).
</content>
</entry>
<entry>
<title>Remove the unused major/minor numbers from iodev and memdev.</title>
<updated>2008-06-25T07:45:31Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2008-06-25T07:45:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=721351876cd4d3a8a700f62d2061331fa951a488'/>
<id>urn:sha1:721351876cd4d3a8a700f62d2061331fa951a488</id>
<content type='text'>
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)
</content>
</entry>
<entry>
<title>Add module versions.</title>
<updated>2004-08-02T20:42:28Z</updated>
<author>
<name>Mark Murray</name>
<email>markm@FreeBSD.org</email>
</author>
<published>2004-08-02T20:42:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=ce46e2059e16557a44be599f86de42c0e1a13220'/>
<id>urn:sha1:ce46e2059e16557a44be599f86de42c0e1a13220</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Break out the MI part of the /dev/[k]mem and /dev/io drivers into</title>
<updated>2004-08-01T11:40:54Z</updated>
<author>
<name>Mark Murray</name>
<email>markm@FreeBSD.org</email>
</author>
<published>2004-08-01T11:40:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=8ab2f5ecc596131f6ca790d6ae35540c06ed7985'/>
<id>urn:sha1:8ab2f5ecc596131f6ca790d6ae35540c06ed7985</id>
<content type='text'>
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.
</content>
</entry>
</feed>
