[comp.os.vms] EXE$EPID_TO_PCB - Documentation?

nagy%warner.hepnet@LBL.GOV (Frank J. Nagy, VAX Wizard & Guru) (07/23/88)

> The VAX Internals book strongly recommends the use of the function
> EXE$EPID_TO_PCB to convert a user's PID to the address of his/her Process
> Control Block.  This is supposed to keep programs compatible between versions
> of VMS.  That's all well and good, but where is it documented?  I didn't find
> any mention in the master index of the VAX/VMS document set.  Can anyone shed
> some light on this function?
     
From my notes (ultimate source is the VMS fiche, of course):

EXE$EPID_TO_PCB		extended PID (user visible) to PCB address

EXE$IPID_TO_PCB		internal PID to PCB address

EXE$EPID_TO_IPID	extended PID to internal PID

EXE$IPID_TO_EPID	internal PID to external PID

Calling sequence is:

	MOVL	<input pid>,R0
	JSB	G^EXE$...
	BEQL	<error-condition>

Output PID or PCB address is returned in R0.  R0 is set to 0 on an error.
The condition codes are set according to the R0 value, hence the suggested
BEQL after the JSB for error handling.

= Frank J. Nagy   "VAX Guru & Wizard"
= Fermilab Research Division EED/Controls
= HEPNET: WARNER::NAGY (43198::NAGY) or FNAL::NAGY (43009::NAGY)
= BitNet: NAGY@FNAL
= USnail: Fermilab POB 500 MS/220 Batavia, IL 60510

ted@blia.BLI.COM (Ted Marshall) (08/05/88)

In article <880723070234.29e019ad@LBL.Gov>, nagy%warner.hepnet@LBL.GOV (Frank J. Nagy, VAX Wizard & Guru) writes:
} From my notes (ultimate source is the VMS fiche, of course):
} EXE$EPID_TO_PCB		extended PID (user visible) to PCB address
} EXE$IPID_TO_PCB		internal PID to PCB address
} EXE$EPID_TO_IPID	extended PID to internal PID
} EXE$IPID_TO_EPID	internal PID to external PID
} 
} Calling sequence is:
} 
} 	MOVL	<input pid>,R0
} 	JSB	G^EXE$...
} 	BEQL	<error-condition>
} 
} Output PID or PCB address is returned in R0.  R0 is set to 0 on an error.
} The condition codes are set according to the R0 value, hence the suggested
} BEQL after the JSB for error handling.
 
One further note: the address conversion routines (EXE$%PID_TO_PCB) require
they be all in kernal mode with IPL >= IPL$_SYNCH. This is according to the
official documentation for these routines (yes, it exists!).

These routines were documented in the _VAX/VMS_Release_Notes_Version_4.0_,
order number AA-Z105A-TE, section 8.5.5. No, this was not put in the release
notes for any other version of VMS.

-- 
Ted Marshall       ...!ucbvax!mtxinu!blia!ted <or> mtxinu!blia!ted@Berkeley.EDU
Britton Lee, Inc., 14600 Winchester Blvd, Los Gatos, Ca 95030     (408)378-7000
The opinions expressed above are those of the poster and not his employer.