Add hook in dynamically loaded modules for unloading actions.
authorTaylor R Campbell <campbell@mumble.net>
Thu, 7 Oct 2010 15:26:15 +0000 (15:26 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Thu, 7 Oct 2010 15:26:15 +0000 (15:26 +0000)
commitf1fe8fa43476998e9575626e4150760929ccc70a
tree20dcbdad8088a2349a23a733b578ff83a2365793
parent1c7865d7bb203128dfaa53b3fabe816f5be7e8b8
Add hook in dynamically loaded modules for unloading actions.

Dynamically loaded modules can't use reload cleanups, because they
may be unloaded by pruxdld's reload cleanup before their reload
cleanups get to run, causing DISK-RESTORE to attempt to execute
unmapped code.  Instead, pruxdld will now call dload_finalize_file
if it is defined in the file.

Use this mechanism in prx11.  Fixes DISK-RESTORE after launching
and exiting Edwin.  (Does not fix DISK-RESTORE of an image that was
saved while Edwin was running.  That is much harder.)
src/microcode/pruxdld.c
src/microcode/prx11.c
src/microcode/x11base.c