more on Xdec X server, my insights...

David S. Miller (davem@caip.rutgers.edu)
Tue, 14 Nov 1995 13:43:37 -0500


Added to the GET_WORKSTATION_INFO ioctl that linus already mentioned,
the server is going to want some other things too. It will want a
GET_KEYBOARD_CONTROL ioctl() available.

The worst of it is the GET_AND_MAP_EVENT_QUEUE ioctl(), the Sparcs
need something very similar under the name "vuid-event". Basically I
think it is a queue of raw mouse/keyboard input that the server can
drain from when it gets the chance.

Also, if video cards are memory mapped on the machine the typical
Dec/Sun X servers want to be able to do (for example):

fd = open("/dev/cgsix0", foo, bar); /* Open graphics card device */
addr = mmap(fd, ...);

To map the frame buffer into the X server process address space. So
this means that the kernel needs to have a struct file_operations
struct and register it for every graphics card that can be found on
the machine. The fops should support at the minimum open/close/mmap
and possibly ioctl() (Sparcs use this to get the screen pixel
dimensions and to blank the screen etc...)

I'm sure there are other lunacies I am missing at this point. I
suppose running strace under OSF on the Jensen Xdec server would shed
even more light on this ;-) That is how I have attacked most of my
binary compatability problems with SunOS binaries.

Later,
David S. Miller
davem@caip.rutgers.edu