!*** MODULE $FDSCDEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! ! Function descriptor offset definitions for the IA64 VMS calling ! standard. This definition includes the offsets and fields for ! local, official, translated/native, and bound function descriptors. ! ! Function descriptor kind quadwords in FD ! ! Local FD w/o translated image support 2 ! Local FD with translated image support 4 ! Official FD w/o translated image support 2 or 3 (see note) ! Official FD with translated image support 3 ! Bound FD 6 ! ! Note: the official FD w/o translated image support could be 2 ! quadwords if the linker knows it's not a universal symbol and ! that no module exports its address. Until there's a way for ! compilers to notify the linker of this, all such FDs are 3 ! quadwords in length. ! PARAMETER FDSC$K_BOUND_SIZE = '00000030'X ! Size of bound procedure descriptor STRUCTURE /FDSCDEF/ UNION MAP INTEGER*8 FDSC$Q_ENTRY ! Simple FD: Entry code address END MAP MAP INTEGER*4 FDSC$L_ENTRY END MAP MAP INTEGER*8 FDSC$Q_OTS_ENTRY ! Bound FD: Entry code address of OTS$JUMP_TO_BPV END MAP MAP INTEGER*4 FDSC$L_OTS_ENTRY END MAP END UNION UNION MAP INTEGER*8 FDSC$Q_GP ! Simple FD: Global pointer END MAP MAP INTEGER*4 FDSC$L_GP END MAP MAP INTEGER*8 FDSC$Q_OTS_PSEUDO_GP ! Bound FD: Global pointer for OTS$JUMP_TO_BPV (ie. addre ! Bound FD: Global pointer for OTS$JUMP_TO_BPV (ie. address o END MAP MAP INTEGER*4 FDSC$L_OTS_PSEUDO_GP END MAP END UNION UNION MAP INTEGER*4 FDSC$Q_SIGNATURE(2) ! Signature information field END MAP MAP INTEGER*4 FDSC$L_SIGNATURE_L INTEGER*4 FDSC$L_SIGNATURE_H END MAP END UNION UNION MAP INTEGER*8 FDSC$Q_TARGET_ENTRY ! PD address of translated routine or entry code address o ! PD address of translated routine or entry code address of b END MAP MAP INTEGER*4 FDSC$L_TARGET_ENTRY END MAP END UNION UNION MAP INTEGER*8 FDSC$Q_TARGET_GP ! Global pointer for bound procedure END MAP MAP INTEGER*4 FDSC$L_TARGET_GP END MAP END UNION UNION MAP INTEGER*8 FDSC$Q_TARGET_ENVIR ! Environment value for bound procedure (uplevel-addressin ! Environment value for bound procedure (uplevel-addressing p END MAP MAP INTEGER*4 FDSC$L_TARGET_ENVIR END MAP END UNION END STRUCTURE ! FDSCDEF !DEC$ END OPTIONS