.title movmbx Move tmpmbx to group log table .ident /V1.00/ .sbttl Documentation ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; This procedure creates (with proper privileges) the ability ; to move the temporary mailbox from the LNM$JOB logical name ; table to the LNM$GROUP logical name table. This procedure ; is most useful in detached jobs, which cannot count on the ; DCL environment to make these changes for it. This restores ; the pre-V4 behavior of temporary mailboxes to programs. ; ; This routine requires GRPNAM to allow the mailboxes to open ; the logicals in the LNM$GROUP table. Note that this is a ; user-mode logical and will therefore go away with image ; termination. ; ; Calling format: ; ; CALLS #0, MOVMBX ; from macro ; CALL MOVMBX ! from BASIC or FORTRAN ; procedure movmbx; extern; { Pascal declaration } ; movmbx; { from PASCAL } ; ; Author: Eric F. Richards ; Date: 26-Oct-85 ; System: Gould OSD VAX 8600, VMS V4.2, VAX Macro V04-000 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .sbttl Logical, Table, and Equivalence names .enable suppression ; make list files readable .disable traceback, debug ; hands off w/ debugger .psect $pdata, long, noexe, nowrt, shr, pic table: .ascii /LNM$PROCESS_DIRECTORY/ ; log table to affect tablen = . - table ; calculate length .align long group: .ascii /LNM$GROUP/ ; equivalence name... grplen = . - group ; ...and length .align long tmpmbx: .ascii /LNM$TEMPORARY_MAILBOX/ ; logical name... tmplen = . - tmpmbx ; ...and its length $lnmdef ; define logical name codes .sbttl Main Code .psect $code, long, pic, shr, exe, nowrt .entry movmbx, ^m ; entry point, save r2 pushal table ; build descriptor for table pushl s^#tablen ; to write log name into movl sp, r2 ; save a pointer to the desc pushal tmpmbx ; build descriptor to log name pushl s^#tmplen ; to write into said table movl sp, r1 ; save a pointer to this desc clrq -(sp) ; build logical name table pushal group ; descr for the $CRELNM pushl #!grplen ; service, put on stack movl sp, r0 ; save log name descriptor $crelnm_s tabnam=(r2), - ; create logical name lognam=(r1), - ; for LNM$TEMPORARY_MAILBOX itmlst=(r0) ; in LNM$PROCESS_DIRECTORY ret ; then go back to do real work .end ;movmbx ; th-th-that's all, folks!