Specifications

Sample Driver Written in C
B.2 LRDRIVER.COM
!
! Use a COLLECT statement to implicitly declare the NONPAGED_DATA_PSECTS
! cluster. Mark the cluster with the RESIDENT attribute so that the image
! section produced is nonpaged. Collect all the data psects into the cluster.
!
COLLECT=NONPAGED_READWRITE_PSECTS/ATTRIBUTES=RESIDENT,-
!
! Psect generated by BLISS modules
!
$PLIT$,-
$INITIAL$,-
$GLOBAL$,-
$OWN$,-
!
! Psects generated by DRIVER_TABLES
!
$$$105_PROLOGUE,-
$$$110_DATA,-
$$$115_LINKAGE,-
!
! Standard Psects generated by all languages,
! including the high level language driver module
!
$BSS$,-
$DATA$,-
$LINK$,-
$LITERAL$,-
$READONLY$
!
! Coerce the program section attributes for initialization code so
! that code and data will be combined into a single image section.
!
PSECT_ATTR=EXEC$INIT_CODE,NOSHR
!
! Use a COLLECT statement to implicitly declare the INITIALIZATION_PSECTS
! cluster. Mark the cluster with the INITIALIZATION_CODE attribute so that the image
! section produced is identified as INITIALCOD.
!
! These program sections have special names so that when the linker sorts them
! alphabetically they will fall in the order: initialization vector table, code,
! linkage, build table vector. The order in which they are collected does not affect
! their order in the image section.
!
! This is the only place where code and data should reside in the
! same section.
!
! NOTE: The linker will attach the fixup vectors to this cluster. This is expected.
!
COLLECT=INITIALIZATION_PSECTS/ATTRIBUTES=INITIALIZATION_CODE,-
EXEC$INIT_000,-
EXEC$INIT_001,-
EXEC$INIT_002,-
EXEC$INIT_CODE,-
EXEC$INIT_LINKAGE,-
EXEC$INIT_SSTBL_000,-
EXEC$INIT_SSTBL_001,-
EXEC$INIT_SSTBL_002
$!
$QUIT: ! ’F$VERIFY(SAVED_VFY)’
$ EXIT $STATUS
B–25