understandable: preinit -> load postinit -> (removed) presetup ->
firstopen postsetup -> (removed) open_helper -> open prerelease ->
preclose free_filp_priv -> postclose pretakedown -> lastclose
postcleanup -> unload release -> reclaim_buffers_locked version ->
(removed)
postinit and version were replaced with generic code in the Linux DRM
(drivers now set their version numbers and description in the driver
structure, like on BSD). postsetup wasn't used at all. Fixes the savage
hooks for initializing and tearing down mappings at the right times.
Testing involved at least starting X, running glxgears, killing
glxgears, exiting X, and repeating.
Tested on: FreeBSD (g200, g400, r200, r128) Linux (r200, savage4)
post-drm-filp-0-1-branch world. The filp is a void * cast from the
current pid. This is a temporary solution which maintains the status
quo until a proper solution is implemented.
What is really needed is a unique pointer per open, hopefully with a device
private area. This can be done in FreeBSD for all entry points except
mmap, but is difficult (sys/dev/streams/streams.c is an example). I
have partially completed code for this but have not had time to debug,
so this is a temporary fix.