Article 4710 of vmsnet.internals:
>>>	EXE$TRNLNM.
>>>
>>>	Invisible.mar (.c) does this just fine (kernel mode, IPL 8)
>>>	to keep its data around.
>>>
>>>	Ehud
>>>

the currently offered version of INVISIBLE.C on the WKU-server neither
calls EXE$TRNLNM (directly) nor raises IPL to SYNCH.  it makes use of
plain SYS$TRNLNM from K-mode at IPL 0, - so no problems to expect.

if EXE$TRNLNM was indeed called (without further precautions), not only
was there the page-fault issue as pointed out earlier, but also the risk
of breaking synchronization (due to SCH$LOCKR_QUAD exiting with an IPL
explicitly set to ASTDEL).

>>> What is the correct, i.e., safe, way to translate system logical names 
>>> from within a device driver?  That is, at fork IPL.

>>> Forget it its too hard.
>>>                                   Neill.

you don't mention whether your logical HAS to be translated at FIPL by all
means; "within a device driver" does not necessarily imply this.  why not
just insert a call to EXE$TRNLNM in one of your FDT-routines ?  then you'd
remain @ ASTDEL, within process-context, without having to bother playing
the mutex game yourself, and would be pageing-resistent.

unfortunately, on AXP the symbol EXE$TRNLNM doesn't seem to be available
for linking.  therefore, the suggested method LNM$SEARCHLOG  (+ LNM$LOCKR)
would probably be best for both platforms.

have fun -
                Herbert




