Gerald Zajac wrote:
As I get older my memory gets worse, and I am older than most people working on this project. Anyway, what I said above about PIO is not true. PIO access can only be done in the kernel, and the video accelerants that use it (3dfx chips and S3 Trio64 chips), use an ioctl interface with the driver for PIO operations.Ingo Weinhold wrote:On 2010-07-25 at 17:20:55 [+0200], Gerald Zajac <zajacg@xxxxxxxxxxxxx> wrote:Most of the communication between the accelerant and the video hardware is done using Memory Mapped I/O (MMIO); thus, there is no need to involve the kernel. At least this is the case for most video chips; however, some of the ancient chips use PIO instead of MMIO. But even with PIO, there is no need to involve the kernel.Ingo Weinhold wrote: Most drivers consist of a single module which runs in kernel mode; whereas, video drivers consist of two modules. One module is the driver which runs in kernel mode; whereas, the other module is the accelerant which runs in user mode and does most of the work of interacting with the video hardware.I actually always wondered why Be went with this split for graphics drivers instead of defining a generic ioctl interface (like they did for multi audio).