%IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX HFLOAT REAL_PART HFLOAT IMAGINARY_PART END RECORD %LET %BASIC$H_FLOATING_COMPLEX_DECL = 1 %END %IF ! + ! PROCESS OR GLOBAL SECTION DEFINITIONS ! - ! ! ***** L_VBN, L_WINDOW, AND B_PFC MUST BE THE SAME OFFSET VALUES AS THE ! ***** EQUIVALENTLY NAMED OFFSETS IN $PFLDEF ! DECLARE LONG CONSTANT SEC$M_VPX = x'003FFFFF' DECLARE LONG CONSTANT SEC$M_PFC = x'FF000000' DECLARE LONG CONSTANT SEC$M_GBL = x'00000001' DECLARE LONG CONSTANT SEC$M_CRF = x'00000002' DECLARE LONG CONSTANT SEC$M_DZRO = x'00000004' DECLARE LONG CONSTANT SEC$M_WRT = x'00000008' DECLARE LONG CONSTANT SEC$M_SHMGS = x'00000010' DECLARE LONG CONSTANT SEC$M_WRTMOD = x'000000C0' DECLARE LONG CONSTANT SEC$M_AMOD = x'00000300' DECLARE LONG CONSTANT SEC$M_RESIDENT = x'00002000' DECLARE LONG CONSTANT SEC$M_PERM = x'00004000' DECLARE LONG CONSTANT SEC$M_SYSGBL = x'00008000' DECLARE LONG CONSTANT SEC$M_PFNMAP = x'00010000' DECLARE LONG CONSTANT SEC$M_EXPREG = x'00020000' DECLARE LONG CONSTANT SEC$M_PROTECT = x'00040000' DECLARE LONG CONSTANT SEC$M_PAGFIL = x'00080000' DECLARE LONG CONSTANT SEC$M_EXECUTE = x'00100000' DECLARE LONG CONSTANT SEC$M_NOPROTCHK = x'00200000' DECLARE LONG CONSTANT SEC$M_NO_OVERMAP = x'00400000' DECLARE LONG CONSTANT SEC$M_INPROG = x'00800000' DECLARE LONG CONSTANT SEC$M_PARANOID = x'01000000' DECLARE LONG CONSTANT SEC$M_GRANHINT = x'02000000' DECLARE LONG CONSTANT SEC$S_SECDEF = 24 record SECDEF group SEC$R_GSD_OVERLAY variant case LONG SEC$L_GSD ! GLOBAL SECTION DESCRIPTOR ADDRESS case LONG SEC$L_CCB ! CHANNEL CONTROL BLOCK ADDRESS IF PROCESS SECTION end variant end group SEC$R_GSD_OVERLAY WORD SEC$W_SECXFL ! SECTION INDEX FORWARD LINK WORD SEC$W_SECXBL ! SECTION INDEX BACKWARD LINK group SEC$R_VPXPFC_OVERLAY variant case LONG SEC$L_VPXPFC ! START VIRT PAGE INDEX ? PFC case group SEC$R_VPXPFC_BITS ! STARTING VIRTUAL PAGE INDEX ! UNUSED ! PAGE FAULT CLUSTER LONG VPX_bits ! COMMENT ADDED BY SDL - VPX_bits contains bits VPX through PFC end group SEC$R_VPXPFC_BITS case group SEC$R_VPXPFC_FIELDS BYTE SECDEF$$_FILL_5 ( 1 to 3 ) BYTE SEC$B_PFC ! PAGE FAULT CLUSTER end group SEC$R_VPXPFC_FIELDS end variant end group SEC$R_VPXPFC_OVERLAY LONG SEC$L_WINDOW ! WINDOW CONTROL BLOCK LONG SEC$L_VBN ! BASE VIRTUAL BLOCK NUMBER group SEC$R_FLAGS_OVERLAY variant case WORD SEC$W_FLAGS ! VARIOUS CONTROL FLAGS case group SEC$R_FLAGS_BITS ! GLOBAL SECTION ! COPY ON REFERENCE ! DEMAND ZERO ! WRITABLE ! SHARED MEMORY GLOBAL SECTION ! SPARE ! WRITE ACCESS MODE FOR SECTION ! ACCESS MODE OF SECTION ! SPARE ! RESIDENT GLOBAL ! PERMANENT SECTION ! 1 = SYSTEM GLOBAL, 0 = GROUP GLOBAL ! ! ***** THE FOLLOWING FLAGS ARE INDICATORS FOR $MGBLSC AND $CRMPSC SYSTEM ! ***** SERVICE REQUESTS AND ARE NOT STORED IN THE FLAGS WORD FIELD. ! ! MAP TO SPECIFIC PFN'S ! MAP INTO FIRST FREE ADDRESS SPACE ! CHECK WRITE ACCESS MODE (WRTMOD) ! GLOBAL SECTION HAS PAGE FILE BACKING STORE ! CHECK FOR EXECUTE ACCESS ! INHIBIT PROTECTION CHECK ! DON'T OVERMAP ADDRESS SPACE ! Section creation in progress ! Go into paranoia mode ! AXP granularity hint support LONG GBL_bits ! COMMENT ADDED BY SDL - GBL_bits contains bits GBL through fill_4 end group SEC$R_FLAGS_BITS end variant end group SEC$R_FLAGS_OVERLAY end record SECDEF DECLARE LONG CONSTANT SEC$K_LENGTH = 32 ! SIZE OF PSTE/GSTE DECLARE LONG CONSTANT SEC$C_LENGTH = 32 ! SIZE OF PSTE/GSTE ! + DECLARE LONG CONSTANT SEC$K_MATALL = 0 ! MATCH ALWAYS, USE GLOBAL SECTION DECLARE LONG CONSTANT SEC$K_MATEQU = 1 ! MATCH IF ISD$L_IDENT EQU GBL ID DECLARE LONG CONSTANT SEC$K_MATLEQ = 2 ! MATCH IF ISD$L_IDENT LEQ GBL ID DECLARE LONG CONSTANT SEC$S_SECDEF1 = 32 record SECDEF1 BYTE SECDEF$$_FILL_6 ( 1 to 21 ) BYTE SEC$B_AMOD ! ACCESS MODE OF SECTION WORD SECDEF$$_FILL_4 ! SPARE LONG SEC$L_REFCNT ! COUNT OF PTE'S REFERENCING THIS SECTION LONG SEC$L_PAGCNT ! NO. OF PAGES IN THE SECTION ! ! ***** NOTE THAT NUMBER OF LONG WORDS MUST BE EVEN ! ! MATCH CONTROL VIELD VALUES ! - ! BASE OF ZERO , INCR 1 end record SECDEF1 ! ! Definitions for $GETSECI service ! DECLARE LONG CONSTANT SECI$_CHAIN = 1 ! Chained item block DECLARE LONG CONSTANT SECI$_GSMODE = 2 ! Access mode of section DECLARE LONG CONSTANT SECI$_GSFLAGS = 3 ! Flags DECLARE LONG CONSTANT SECI$_GSNAME = 4 ! Global section name DECLARE LONG CONSTANT SECI$_GSIDENT = 5 ! Global section ident DECLARE LONG CONSTANT SECI$_GSRELPAG = 6 ! Relative page number