On 04/03/2013 00:24, Alan Hourihane wrote:
O.k. What about adding a message to xaloader.prg detecting when
GEM=ROM and
printing a message and dropping back to the desktop ?
It would work, to avoid the crash and cleanly exit.
Once again, here are the facts.
XaAES needs to know if it has to open the VDI physical workstation or
not. It has been reported the the VDI has so bad design (or
implementations are so buggy) that it is impossible to determine if
the VDI workstation is already opened or not, using VDI functions.
So the workaround is to call the AES appl_init(). If it works, then
the VDI workstation was already opened. Otherwise, it is not.
It is forbidden to call appl_init() or any AES function from
supervisor mode (even if sometimes it does not crash, by chance). So
xaaes.km can't call it.
The only clean solution is to call appl_init() from user mode. That
could be either in xaloader.prg, or at the beginning of mint.prg. Then
the result (VDI physical workstation already opened or not) has to be
forwarded to xaaes.km in some way.
We have 2 clean solutions:
1) Find a way to pass information from xaloader.prg to xaaes.km.
Something like a module command line, etc.
2) mint.prg could call appl_init() at startup (in user mode) to
determine the VDI workstation status, and make the result available to
kernel modules. For example, initialize a flag somewhere, add a
function in libkern to read it, and you're done.
Solution #1 may be tricky, and specific to XaAES.
Solution #2 should be very simple, and the information may be useful
for other kernel stuff, too.