SysWorks©

SysWorks
Application Development Guide


Previous Contents Index

Example 7-3 is a Linker options file which is used to build the same shareable image for OpenVMS Alpha. Note the use of the %APPEND directive which causes SysWorks to generate an options file in SWRK_AIL_DIR:SWRKSHR.OPT_INC based on the source SWRK_WRK_DIR:SWRKSHR.MAR and rules which include both the original options file SWRK_WRK_DIR:SWRKSHR-ALPHA.OPT and generated options file (SWRK_AIL_DIR:SWRKSHR.OPT_INC) as part of the LINK command.

Example 7-3 SWRKSHR-ALPHA.OPT

!++ 
! 
!  Linker_options: 
!       SWRKSHR-ALPHA 
! 
!  Purpose: 
!       Linker options file for the SWRKSHR shareable image for OpenVMS Alpha. 
! 
!  Copyright: 
!       Copyright © 1995 - 2009 Corpita Pty Ltd 
!       15 Bedford Street, Collingwood 3066, Australia 
! 
!  History: 
!      07-Oct-1995 by Simon L. Jackson 
!           Initial Alpha version 
! 
!-- 
 
gsmatch = always,3,5 
 
cluster = swrk_section_1 
collect = swrk_section_1,- 
    rdb$transaction_handle,- 
    swrk_message_vector,- 
    swrk_trace_data_rec 
 
psect_attr = rdb$transaction_handle, pic, ovr, gbl, noshr, mod 
psect_attr = swrk_message_vector, pic, ovr, gbl, noshr, mod 
psect_attr = swrk_trace_data_rec, pic, ovr, gbl, noshr, mod 
 
cluster = swrk_section_2 
collect = swrk_section_2,- 
    swrk_global_data 
 
psect_attr = swrk_global_data, pic, con, gbl, noshr, mod 
 
swrk_lib_dir:swrkshr 
 
swrk_object_lib/include=(- 
    rdb$transaction_handle,- 
    swrk_global_data,- 
    swrk_messages,- 
    swrk_message_vector) 
 
swrk_sft_dir:swrkshrprv/share 
 
swrk_object_lib/library 
swrk_symbol_lib/library 
 
sys$share:decc$shr/shareable 
swrk_lib_dir:swrksys/include=sys$base_image 
 
! %INCLUDE SWRK_AIL_DIR:SWRKSHR 
 
symbol_vector=(- 
    rdb$transaction_handle=psect,- 
    swrk_message_vector=psect,- 
    swrk_trace_data_rec=psect) 
 
symbol_vector=(- 
    swrk_command_line=data,- 
    swrk_ctx_depth=data,- 
    swrk_cur_app=data,- 
    swrk_cur_env=data,- 
    swrk_cur_grp=data,- 
    swrk_cur_pfx=data,- 
    swrk_cur_scp=data,- 
    swrk_cur_typ=data,- 
    swrk_cur_typ_cod=data,- 
    swrk_cur_usr=data,- 
    swrk_cur_var=data,- 
    swrk_cur_vsn=data,- 
    swrk_dir_ail=data,- 
    swrk_dir_cdd=data,- 
    swrk_dir_cod=data,- 
    swrk_dir_dat=data,- 
    swrk_dir_dir=data,- 
    swrk_dir_doc=data,- 
    swrk_dir_gen=data,- 
    swrk_dir_kit=data,- 
    swrk_dir_lib=data,- 
    swrk_dir_run=data,- 
    swrk_dir_scr=data,- 
    swrk_dir_sft=data,- 
    swrk_dir_src=data,- 
    swrk_dir_tst=data,- 
    swrk_dir_wrk=data,- 
    swrk_explicit_link_flg=data,- 
    swrk_fil_gen=data,- 
    swrk_fil_msghlp=data,- 
    swrk_fil_tst=data,- 
    swrk_objt_cluster=private_data,- 
    swrk_objt_network=private_data,- 
    swrk_objt_computer_node=private_data,- 
    swrk_objt_security_domain=private_data,- 
    swrk_objt_site=private_data,- 
    swrk_objt_system=private_data,- 
    swrk_objt_tuning_domain=private_data,- 
    swrk_lbr_hlp=data,- 
    swrk_lbr_img=data,- 
    swrk_lbr_mac=data,- 
    swrk_lbr_mms=data,- 
    swrk_lbr_obj=data,- 
    swrk_lbr_sym=data,- 
    swrk_lbr_txt=data,- 
    swrk_lnm_cdd=data,- 
    swrk_lnm_dir=data,- 
    swrk_lnm_fil=data,- 
    swrk_lnt_ctx=data,- 
    swrk_message_vector=data,- 
    swrk_output_file=data,- 
    swrk_sdc_ail=data,- 
    swrk_sdc_cdd=data,- 
    swrk_sdc_dat=data,- 
    swrk_sdc_doc=data,- 
    swrk_sdc_gen=data,- 
    swrk_sdc_kit=data,- 
    swrk_sdc_lib=data,- 
    swrk_sdc_run=data,- 
    swrk_sdc_scr=data,- 
    swrk_sdc_sft=data,- 
    swrk_sdc_src=data,- 
    swrk_sdc_tst=data,- 
    swrk_sdc_wrk=data,- 
    swrk_subctx_depth=data,- 
    swrk_sub_output_noast=data,- 
    swrk_sub_output_rtn=data,- 
    swrk_tpu_result_string=data,- 
    swrk_vmsu_ctx=data) 
 
! Added 14-Nov-1998 by SLJ 
symbol_vector=(- 
    swrk_dir_aib=data,- 
    swrk_dir_aij=data,- 
    swrk_dir_bck=data,- 
    swrk_dir_jnl=data,- 
    swrk_dir_lcl=data,- 
    swrk_dir_set=data,- 
    swrk_dir_rda=data,- 
    swrk_dir_rdb=data,- 
    swrk_dir_ruj=data,- 
    swrk_dir_snp=data,- 
    swrk_dir_tps=data,- 
    swrk_sdc_aib=data,- 
    swrk_sdc_aij=data,- 
    swrk_sdc_bck=data,- 
    swrk_sdc_jnl=data,- 
    swrk_sdc_lcl=data,- 
    swrk_sdc_rda=data,- 
    swrk_sdc_rdb=data,- 
    swrk_sdc_ruj=data,- 
    swrk_sdc_snp=data,- 
    swrk_sdc_tps=data) 
 
! Added 28-Nov-1998 by SLJ 
symbol_vector=(- 
    swrk_plrn_ctx=data) 
 
! Added 09-Dec-1998 by SLJ 
symbol_vector=(- 
    swrk_lnm_rot=data,- 
    swrk_rot_ail=data,- 
    swrk_rot_dat=data,- 
    swrk_rot_lib=data,- 
    swrk_rot_src=data,- 
    swrk_rot_tps=data) 
 
! Added 15-Dec-1998 by SLJ 
symbol_vector=(- 
    swrk_arc_cod=data,- 
    swrk_arc_typ=data,- 
    swrk_arc_usg=data,- 
    swrk_cur_arc=data,- 
    swrk_dir_arc=data) 
 
! Added 18-Dec-1998 by SLJ 
symbol_vector=(- 
    swrk_cls_cod=data,- 
    swrk_cls_set=data,- 
    swrk_cls_mgr=data,- 
    swrk_cls_rep=data,- 
    swrk_cls_usr=data,- 
    swrk_id_acc=data,- 
    swrk_id_mgr=data,- 
    swrk_id_own=data,- 
    swrk_id_rep=data,- 
    swrk_id_usr=data) 
 
! Added 28-Dec-1998 by SLJ 
symbol_vector=(- 
    swrk_trace_data=data) 
 
! Added 30-Dec-1998 by SLJ 
symbol_vector=(- 
    swrk_dcl_input_routine=data) 
 
! Added 01-Feb-1999 by SLJ 
symbol_vector=(- 
    swrk_rab_mbc=data,- 
    swrk_rab_mbf=data) 
 
! Added 24-Nov-1999 by SLJ 
symbol_vector=(- 
    rdb$transaction_handle=data,- 
    swrk_sdc_set=data) 
 
! Added 21-Mar-2000 by SLJ 
symbol_vector=(- 
    swrk_dir_srt=data,- 
    swrk_sdc_srt=data) 
 
! Added 17-Jul-2001 by SLJ 
symbol_vector=(- 
    swrk_dir_dev=data) 
 
 
! Added 24-Aug-2004 by SLJ 
symbol_vector=(- 
    swrk_dir_www=data,- 
    swrk_rot_www=data,- 
    swrk_sdc_www=data) 
 
! Added 28-Apr-2005 by SLJ 
symbol_vector=(- 
    swrk_dir_adalib=data,- 
    swrk_sdc_adalib=data) 
 

Example 7-4 is the linker options generated from the Macro-32 source for use with the OpenVMS Alpha shareable image.

Example 7-4 SWRKSHR-ALPHA.OPT_INC

!++ 
! 
!  Linker options include: 
!       SWRKSHR 
! 
!  Purpose: 
!       Shareable image vectors. 
! 
!  History: 
!      15-Jul-2005 by SLJ 
!           Generated version 
! 
!-- 
 
symbol_vector=(- 
    SWRK_EXTENDED_FILE_SEARCH=procedure,- 
    SWRK_CALL_REMOTE=procedure,- 
    SWRK_DEQUEUE_SERVER_MESSAGE=procedure,- 
    SWRK_ENQUEUE_SERVER_MESSAGE=procedure,- 
    OLD=private_procedure,- 
    SWRK_INQUIRE_SERVER=procedure,- 
    SWRK_READ_SERVER_MSG_ITMLST=procedure,- 
    SWRK_READ_SERVER_MSG_RECORD=procedure,- 
    SWRK_RESUME_SERVER=procedure,- 
    SWRK_SEND_SERVER_MESSAGE=procedure,- 
    SWRK_SEND_SERVER_MESSAGE_A=procedure,- 
    SWRK_START_SERVER=procedure,- 
    SWRK_STOP_SERVER=procedure,- 
    SWRK_SUSPEND_SERVER=procedure,- 
    SWRK_DCL_HANDLER=procedure,- 
    SWRKDCL_EXIT=procedure) 
 
symbol_vector=(- 
    SWRKDCL_NOCOMMAND=procedure,- 
    SWRKDCL_HELP=procedure,- 
    SWRK_HANDLE_KEYWORD=procedure,- 
    SWRK_HANDLE_QUALIFIERS=procedure,- 
    SWRK_DELETE_LNKLST=procedure,- 
    OLD=private_procedure,- 
    SWRK_COPY_FILE=procedure,- 
    SWRK_DELETE_FILE=procedure,- 
    SWRK_DO_COMMAND=procedure,- 
    SWRK_PURGE_FILE=procedure,- 
    SWRK_APPEND_STRING_TO_LNKLST=procedure,- 
    SWRK_DUMP_IMAGE_INFO=procedure,- 
    SWRK_ESTABLISH=procedure,- 
    SWRK_EXCEPTION_HANDLER=procedure,- 
    SWRK_APPEND_LNKLST_TO_LNKLST=procedure,- 
    SWRK_APPEND_ITEM_TO_LNKLST=procedure) 
 
symbol_vector=(- 
    SWRK_CLOSE_OUTPUT=procedure,- 
    SWRK_HANDLE_IMAGE_VECTOR=procedure,- 
    SWRK_OPEN_OUTPUT=procedure,- 
    SWRK_PUT_OUTPUT=procedure,- 
    SWRK_GET_CUR_PFX=procedure,- 
    SWRK_ALLOCATE_MEMORY=procedure,- 
    SWRK_CRASH_IMAGE=procedure,- 
    SWRK_DEALLOCATE_MEMORY=procedure,- 
    SWRK_COPY_MSG_VEC=procedure,- 
    SWRK_GET_DATE=procedure,- 
    SWRK_GET_DATE_TIME=procedure,- 
    SWRK_LOCK_RESOURCE=procedure,- 
    SWRK_LOG_IMAGE_FINISH=procedure,- 
    SWRK_LOG_IMAGE_START=procedure,- 
    SWRK_LOG_MSG_VEC=procedure,- 
    SWRK_LOG_RMS_FAB=procedure) 
 
symbol_vector=(- 
    SWRK_LOG_RMS_FAB_2=procedure,- 
    SWRK_LOG_RMS_RAB=procedure,- 
    SWRK_LOG_STATUS=procedure,- 
    SWRK_LOG_TEXT=procedure,- 
    SWRK_PREFIX_MSG_VEC=procedure,- 
    SWRK_REGISTER_EVENT=procedure,- 
    SWRK_RETURN_DATE_TIME=procedure,- 
    SWRK_SAVE_DATE_TIME=procedure,- 
    SWRK_SETUP_MSG_VEC=procedure,- 
    SWRK_TRIGGER_EVENT=procedure,- 
    SWRK_UNLOCK_RESOURCE=procedure,- 
    SWRK_WAIT_FOR_EVENT=procedure,- 
    SWRK_ALLOCATE_BITS=procedure,- 
    SWRK_DEALLOCATE_BITS=procedure,- 
    SWRK_DECLARE_BITMAP=procedure,- 
    SWRK_GET_SUBCONTEXT=procedure) 
 
symbol_vector=(- 
    SWRK_GET_USERNAME=procedure,- 
    SWRK_RANDOM_NUMBER=procedure,- 
    SWRK_RELEASE_SUBCONTEXT=procedure,- 
    SWRK_TRANSLATE_LOGICAL=procedure,- 
    SWRK_TRIGGER_AND_WAIT_FOR_EVENT=procedure,- 
    SWRK_GET_CONTEXT=procedure,- 
    SWRK_SET_CONTEXT=procedure,- 
    SWRK_GET_COMPUTER_NODE=procedure,- 
    SWRKDCL_ATTACH=procedure,- 
    SWRKDCL_ATTACH_IDENTIFICATION=procedure,- 
    SWRKDCL_ATTACH_PARENT=procedure,- 
    SWRKDCL_SPAWN=procedure,- 
    SWRKDCL_DEFINE_KEY=procedure,- 
    SWRK_DUMP_MEMORY_BEGIN=procedure,- 
    SWRK_DUMP_MEMORY_CELL=procedure,- 
    SWRK_DUMP_MEMORY_END=procedure) 
 
symbol_vector=(- 
    SWRK_GET_IMAGE_NAME=procedure,- 
    SWRK_LOG_PRINTF=procedure,- 
    SWRKDCL_SHOW_CONTEXT=procedure,- 
    OLD=private_procedure,- 
    SWRK_BINARY_SEARCH=procedure,- 
    SWRK_CANCEL_JOB=procedure,- 
    SWRK_CANCEL_TIMER=procedure,- 
    SWRK_CLOSE_AND_DETACH_JOB=procedure,- 
    SWRK_CLOSE_AND_SPAWN_JOB=procedure,- 
    SWRK_CLOSE_AND_SUBMIT_JOB=procedure,- 
    OLD=private_procedure,- 
    SWRK_CREATE_FILE_FDL=procedure,- 
    SWRK_CVT_CONTEXT_DESCRIPTION=procedure,- 
    SWRK_CVT_CONTEXT_TYPE=procedure,- 
    SWRK_DECLARE_CLIENT=procedure,- 
    SWRK_DECLARE_COUNTER=procedure) 
 
symbol_vector=(- 
    SWRK_DECLARE_SERVER=procedure,- 
    SWRK_DECLARE_STATISTICS=procedure,- 
    SWRK_DELETE_INDEX=procedure,- 
    OLD=private_procedure,- 
    SWRK_DUMP_MEMORY_RANGE=procedure,- 
    SWRK_DISPLAY_HELP=procedure,- 
    SWRK_FIND_OBJECT=procedure,- 
    SWRK_FIND_OBJECT_ID=procedure,- 
    SWRK_FIND_VARIABLE_STRING=procedure,- 
    SWRK_FIXUP_STRING=procedure,- 
    SWRK_GET_FAB_FILE_SPEC=procedure,- 
    SWRK_GET_COUNTER=procedure,- 
    SWRK_INCREMENT_COUNTER=procedure,- 
    SWRK_INSERT_INDEX=procedure,- 
    SWRK_INSERT_QUEUE_HEAD=procedure,- 
    SWRK_INSERT_QUEUE_TAIL=procedure) 
 
symbol_vector=(- 
    SWRK_LOG_MSG_VEC_2=procedure,- 
    SWRK_LOOKUP_INDEX=procedure,- 
    OLD=private_procedure,- 
    SWRK_OPEN_JOB=procedure,- 
    SWRK_RECEIVE_CLIENT=procedure,- 
    SWRK_RECEIVE_CLIENT_A=procedure,- 
    SWRK_RECEIVE_SERVER=procedure,- 
    SWRK_RECEIVE_SERVER_A=procedure,- 
    SWRK_RECYCLE_SERVICE_CHANNEL=procedure,- 
    SWRK_REMOVE_QUEUE_HEAD=procedure,- 
    SWRK_REMOVE_QUEUE_TAIL=procedure,- 
    SWRK_SCAN_INDEX=procedure,- 
    SWRK_SEND_CLIENT=procedure,- 
    SWRK_SEND_CLIENT_A=procedure,- 
    SWRK_SEND_SERVER=procedure,- 
    SWRK_SEND_SERVER_A=procedure) 
 
symbol_vector=(- 
    SWRK_SET_COUNTER=procedure,- 
    SWRK_SET_TIMER=procedure,- 
    SWRK_SET_TIMER_LONG=procedure,- 
    SWRK_SET_TIMER_SHORT=procedure,- 
    SWRK_START_STATISTIC=procedure,- 
    SWRK_STOP_STATISTIC=procedure,- 
    SWRK_STRIP_PROPERTIES=procedure,- 
    SWRK_WRITE_JOB=procedure,- 
    OLD=private_procedure,- 
    SWRK_GET_LAST_MSG_LOGGED=procedure,- 
    SWRK_GET_LOG_DEFAULTS=procedure,- 
    SWRK_GET_OBJECT_KEYS=procedure,- 
    SWRK_LOG_FAO=procedure,- 
    SWRK_LOG_FAOZ=procedure,- 
    SWRK_LOG_OUTPUT=procedure,- 
    SWRK_LOG_OUTPUT_2=procedure) 
 
symbol_vector=(- 
    SWRK_PARSE_LOG_FILE=procedure,- 
    SWRK_PUT_OUTPUT_FAO=procedure,- 
    SWRK_PUT_OUTPUT_FAOZ=procedure,- 
    SWRK_PUT_OUTPUT_PRINTF=procedure,- 
    SWRK_REPORT_STATISTICS=procedure,- 
    SWRK_SET_LOG_DEFAULTS=procedure,- 
    SWRK_SET_UIC=procedure,- 
    SWRK_SET_USERNAME=procedure,- 
    SWRKDCL_SHOW_SUBCONTEXT=procedure,- 
    SWRK_EXIT_IMAGE=procedure,- 
    SWRK_GET_DEFAULT=procedure,- 
    SWRK_SET_DEFAULT=procedure,- 
    SWRK_SET_EXIT_COMMAND=procedure,- 
    SWRK_CVT_CONTEXT_COMMAND=procedure,- 
    SWRK_CHECK_RESOURCE=procedure,- 
    SWRK_PARSE_DIRECTORY=procedure) 
 
symbol_vector=(- 
    SWRK_PARSE_FILE=procedure,- 
    SWRK_CVT_LNKLST_TO_STRING=procedure,- 
    SWRK_SCAN_LNKLST=procedure,- 
    SWRK_CVT_INDEX_TO_STRING=procedure,- 
    SWRK_INITIALIZE_TRACE=procedure,- 
    SWRK_CONVERT_DATE=procedure,- 
    SWRK_CONVERT_DATE_TIME=procedure,- 
    SWRK_CONVERT_TIME=procedure,- 
    SWRKDCL_SHOW_DEFAULT=procedure,- 
    SWRK_CVT_TRACE_DESCRIPTION=procedure,- 
    SWRK_GET_CUR_ENV=procedure,- 
    SWRK_SET_SUBPROCESS_STYLE=procedure,- 
    SWRK_INITIALIZE_IMAGE=procedure,- 
    SWRK_SEND_MAIL=procedure,- 
    SWRK_CLEAR_CONTEXT=procedure,- 
    SWRK_SET_LOG_MAIL_SUBJECT=procedure) 
 
symbol_vector=(- 
    SWRK_FIND_ASSOCIATIONS=procedure,- 
    SWRK_DUMP_PROCESS_INFO=procedure,- 
    SWRK_GET_SYMBOL_INTEGER=procedure,- 
    SWRK_GET_SYMBOL_STRING=procedure,- 
    SWRK_SET_SYMBOL_INTEGER=procedure,- 
    SWRK_SET_SYMBOL_STRING=procedure,- 
    SWRK_CVT_SCOPE_TYPE_TO_CODE=procedure,- 
    SWRK_FIND_VARIABLE_INTEGER=procedure,- 
    SWRK_LOG_RMS_FILE_STS=procedure,- 
    SWRK_UPDATE_VARIABLE_INTEGER=procedure,- 
    SWRK_UPDATE_VARIABLE_STRING=procedure,- 
    SWRK_CVT_SCOPE_TYPE_TO_CTL=procedure,- 
    SWRK_GET_SCOPE_CONTEXT=procedure,- 
    SWRK_ADD_OBJECT=procedure,- 
    SWRK_BUILD_OBJT_RECORD=procedure,- 
    OLD=private_procedure) 
 
symbol_vector=(- 
    OLD=private_procedure,- 
    OLD=private_procedure,- 
    OLD=private_procedure,- 
    SWRK_REMOVE_OBJECT=procedure,- 
    OLD=private_procedure,- 
    SWRK_UPDATE_OBJECT=procedure,- 
    SWRK_GET_STATISTICS_INFO=procedure,- 
    SWRK_BACKUP_FILE=procedure,- 
    SWRK_CLOSE_FILE=procedure,- 
    SWRK_CLOSE_INPUT=procedure,- 
    SWRK_COPY_STRING=procedure,- 
    SWRK_DELETE_RECORD=procedure,- 
    SWRK_EMPTY_STRING=procedure,- 
    SWRK_GET_RECORD=procedure,- 
    SWRK_GET_INPUT=procedure,- 
    SWRK_MOVE_FILE=procedure) 
 
symbol_vector=(- 
    SWRK_OPEN_FILE=procedure,- 
    SWRK_OPEN_INPUT=procedure,- 
    SWRK_PRINT_FILE=procedure,- 
    SWRK_PUT_RECORD=procedure,- 
    SWRK_RENAME_FILE=procedure,- 
    SWRK_UPDATE_RECORD=procedure,- 
    SWRK_SET_FILE_SECURITY=procedure,- 
    SWRK_FIND_RESOURCE=procedure,- 
    SWRK_GET_LOG_QUAL_FILE=procedure,- 
    SWRK_MANAGE_FILE=procedure,- 
    SWRK_TOUCH_FILE=procedure,- 
    SWRK_DUMP_MEMORY_CONTEXT=procedure,- 
    SWRK_GET_ARCHITECTURE=procedure,- 
    SWRK_MATCH_LNKLST=procedure,- 
    SWRK_FIND_CLASS=procedure,- 
    SWRK_BITMAP_OPERATION_2=procedure) 
 
symbol_vector=(- 
    SWRK_BITMAP_OPERATION_3=procedure,- 
    SWRK_INITIALIZE_LOGGING=procedure,- 
    SWRK_CREATE_FILE=procedure,- 
    SWRK_GET_FILE_SPEC=procedure,- 
    SWRK_SETUP_FILE=procedure,- 
    SWRK_MATCH_STRING=procedure,- 
    SWRK_RENAME_OBJECT=procedure,- 
    SWRKDCL_SHOW_VERSION=procedure,- 
    SWRK_GET_MSG_VEC_ITEM=procedure,- 
    SWRK_PROCESS_FILE=procedure,- 
    SWRK_ADD_ASSOCIATION=procedure,- 
    SWRK_REMOVE_ASSOCIATION=procedure,- 
    SWRK_SET_OUTPUT=procedure,- 
    SWRK_CLEAR_CONTEXT_ITEM=procedure,- 
    SWRK_SET_CONTEXT_ITEM=procedure,- 
    SWRK_CHECKSUM_FILE=procedure) 
 
symbol_vector=(- 
    SWRK_CHECKSUM_FILE_1=procedure,- 
    SWRK_CRC_FILE=procedure,- 
    SWRK_CRC_FILE_1=procedure,- 
    SWRK_CHECK_NUMCD=procedure,- 
    SWRK_CVT_INT_TO_NUMCD=procedure,- 
    SWRK_CVT_NUMCD_TO_INT=procedure,- 
    SWRK_CVT_NUM_TO_CD=procedure,- 
    SWRK_CVT_NUM_TO_NUMCD=procedure,- 
    SWRK_EXECUTE_METHOD=procedure,- 
    GZCLOSE=procedure,- 
    GZERROR=procedure,- 
    GZGETS=procedure,- 
    GZOPEN=procedure,- 
    SWRK_CHECK_METHOD=procedure,- 
    SWRK_CVT_STRING_TO_LNKLST=procedure,- 
    SWRK_APPEND_STRING=procedure) 
 
symbol_vector=(- 
    SWRK_ADD_EXIT_HANDLER=procedure,- 
    SWRK_RUNDOWN_IMAGE=procedure,- 
    SWRK_CLOSE_DOCUMENT=procedure,- 
    SWRK_CREATE_DOCUMENT=procedure,- 
    SWRK_PUT_DOCUMENT_FIELD_D=procedure,- 
    SWRK_PUT_DOCUMENT_FIELD_Z=procedure,- 
    SWRK_PUT_DOCUMENT_LINE=procedure,- 
    SWRK_PUT_DOCUMENT_LINE_FAO=procedure,- 
    SWRK_PUT_DOCUMENT_LINE_FAOZ=procedure,- 
    SWRK_PUT_DOCUMENT_LINE_PRINTF=procedure,- 
    SWRK_SETUP_DOCUMENT=procedure,- 
    SWRK_PUT_LINE=procedure,- 
    SWRK_PUT_LINE_FAO=procedure,- 
    SWRK_PUT_LINE_FAOZ=procedure,- 
    SWRK_PUT_LINE_PRINTF=procedure,- 
    SWRK_COMPARE_STRING=procedure) 
 
symbol_vector=(- 
    SWRK_CONCAT_STRING=procedure,- 
    SWRK_EQUALS_STRING=procedure,- 
    GZPUTS=procedure,- 
    GZREAD=procedure,- 
    GZWRITE=procedure,- 
    SWRK_CVT_STRING_TO_OWNER=procedure,- 
    SWRK_LOG_FILE=procedure,- 
    SWRK_LOG_FILE_2=procedure,- 
    SWRK_GET_FILE_TYPE=procedure,- 
    SWRK_SET_FILE_TYPE=procedure) 
 

Example 7-5 is a Macro-32 source which is used to build a protected shareable image.

Example 7-5 SWRKSHRPRV.MAR

        .title  swrkshrprv      Protected shareable image root for OpenVMS 
        .ident  "V3.4" 
 
;++ 
; 
;  Module: 
;       SWRKSHRPRV 
; 
;  Purpose: 
;       Protected shareable image root for OpenVMS 
; 
;  Copyright: 
;       Copyright © 1995 - 2004 Corpita Pty Ltd 
;       15 Bedford Street, Collingwood 3066, Australia 
; 
;  History: 
;      26-Jun-1995 by Simon L. Jackson 
;           Initial version 
; 
;-- 
 
.library "swrk_macro_lib" 
 
module swrkshrprv 
 
; Special aliases 
 
        alias   swrk_clear_context      swrk_clear_context_base 
        alias   swrk_clear_context_item swrk_clear_context_item_base 
        alias   swrk_find_object_lcl    swrk_find_object_prx 
        alias   swrk_find_resource      swrk_find_resource_prx 
        alias   swrk_set_context_item   swrk_set_context_item_base 
 
        alias   swrk_close_zlib         swrk_unsupported 
        alias   swrk_get_zlib           swrk_unsupported 
        alias   swrk_open_zlib          swrk_unsupported 
 
 
; Vectors 
 
        vector  old                                                     seq=001 ; swrk_lock_resource_2 
        vector  old                                                     seq=002 ; swrk_unlock_resource_2 
        vector  old                                                     seq=003 ; swrk_get_scope 
 
; Version V3.2 - Sorted on 02-Jun-1998 
        vector  old                                                     seq=004 ; swrk_close_swdb_file_prv 
        vector  old                                                     seq=005 ; swrk_get_swdb_record_prv 
        vector  old                                                     seq=006 ; swrk_open_swdb_file_prv 
        vector  old                                                     seq=007 ; swrk_save_swdb_file_prv 
        vector  swrk_submit_batch_job_context   mode=exec       narg=1  seq=008 
        vector  old                                                     seq=009 ; swrk_unsave_swdb_file_prv 
 
; Version V3.2-1 - added on 29-Jul-1998 
        vector  swrk_run_detached_job           mode=exec       narg=5  seq=010 
 
; Version V3.2-1 - added on 26-Dec-1998 
        vector  swrk_get_powerhouse_resources   mode=exec       narg=0  seq=011 
        vector  swrk_set_privileges_off         mode=exec       narg=0  seq=012 
        vector  swrk_set_privileges_on          mode=exec       narg=0  seq=013 
 
; Version V3.2-1 - added on 14-Aug-1999 
        vector  swrk_get_process_imagecount     mode=exec       narg=2  seq=014 
 
; Version V3.2-1 - added on 03-Jan-2000 
        vector  old                                                     seq=015 ; swrk_delete_swdb_record_prv 
        vector  old                                                     seq=016 ; swrk_find_swdb_record_prv 
        vector  old                                                     seq=017 ; swrk_put_swdb_record_prv 
        vector  old                                                     seq=018 ; swrk_update_swdb_record_prv 
 
; Version V3.3 - added on 11-Jan-2001 
        vector  swrk_create_block               mode=exec       narg=3  seq=019 
        vector  swrk_delete_block               mode=exec       narg=1  seq=020 
        vector  swrk_setup_block                mode=exec       narg=3  seq=021 
 
; Version V3.3 - added on 13-Mar-2001 
        vector  swrk_get_chan_file_spec         mode=exec       narg=3  seq=022 
 
; Version V3.4 - added on 09-Dec-2001 
        vector  swrk_add_object_prv             mode=exec       narg=7  seq=023 
        vector  swrk_find_class_prv             mode=exec       narg=3  seq=024 
        vector  swrk_find_object_prv            mode=exec       narg=7  seq=025 
        vector  swrk_find_object_id_prv         mode=exec       narg=7  seq=026 
        vector  swrk_find_associations_prv      mode=exec       narg=10 seq=027 
        vector  swrk_remove_object_prv          mode=exec       narg=6  seq=028 
        vector  swrk_rename_object_prv          mode=exec       narg=7  seq=029 
        vector  swrk_update_object_prv          mode=exec       narg=7  seq=030 
 
; Version V3.4 - added on 24-Dec-2001 
        vector  swrk_get_msg_vec_item_prv       mode=exec       narg=3  seq=031 
 
; Version V3.4 - added on 19-Mar-2002 
        vector  swrk_clear_context_prv          mode=exec       narg=0  seq=032 
        vector  swrk_clear_context_item_prv     mode=exec       narg=1  seq=033 
        vector  swrk_set_context_item_prv       mode=exec       narg=2  seq=034 
 
; Version V3.4 - added on 27-Jul-2002 
        vector  swrk_add_association_prv        mode=exec       narg=7  seq=035 
        vector  swrk_remove_association_prv     mode=exec       narg=7  seq=036 
 
; Version V3.4 - added on 09-Aug-2002 
        vector  swrk_cvt_scope_type_to_code_prv mode=exec       narg=2  seq=037 
        vector  swrk_cvt_scope_type_to_ctl_prv  mode=exec       narg=2  seq=038 
        vector  swrk_get_scope_context_prv      mode=exec       narg=4  seq=039 
        vector  swrk_invalidate_scope_prv       mode=exec       narg=1  seq=040 
 
; Version V3.4 - added on 01-May-2003 
        vector  swrk_initialize_trace_2         mode=exec       narg=0  seq=041 
 
; Version V3.4 - added on 22-Feb-2004 
        vector  swrk_check_method_prv           mode=exec       narg=6  seq=042 
        vector  swrk_execute_method_a_prv       mode=exec       narg=14 seq=043 
 
; Version V3.4 - added on 01-May-2004 
        vector  swrk_detach_swdatabase_all_prv  mode=exec       narg=0  seq=044 
        vector  swrk_find_resource_prv          mode=exec       narg=5  seq=045 
 
; Version V3.4 - added on 02-Jun-2004 
        vector  swrk_rundown_image_prv          mode=exec               seq=046 
 
; Reservations - added on 28-Nov-1998 
 
end module 
 

Example 7-6 is a Linker options file which is used to build a protected shareable image for OpenVMS VAX.

Example 7-6 SWRKSHRPRV.OPT

!++ 
! 
!  Linker_options: 
!       SWRKSHRPRV-VAX 
! 
!  Purpose: 
!       Linker options file for the SWRKSHRPRV shareable image for OpenVMS VAX. 
! 
!  Copyright: 
!       Copyright © 1995 - 1998 Corpita Pty Ltd 
!       15 Bedford Street, Collingwood 3066, Australia 
! 
!  History: 
!      26-Jun-1995 by Simon L. Jackson 
!           Initial version 
! 
!-- 
 
gsmatch = always,3,2 
 
cluster = transfer 
collect = transfer,swrk_vectors 
 
swrk_lib_dir:swrkshrprv 
 
swrk_object_lib/include=(- 
    rdb$transaction_handle,- 
    swrk_global_data,- 
    swrk_global_data_priv,- 
    swrk_messages,- 
    swrk_message_vector) 
 
psect_attr = rdb$transaction_handle, noshr, lcl 
psect_attr = swrk_message_vector, noshr, lcl 
 
swrk_object_lib/include=(- 
    swrk_chgmod_dispatch,- 
    swrk_quadword) 
 
swrk_object_lib/library 
swrk_symbol_lib/library 
 
sys$system:imgdef.stb/selective_search 
sys$system:sys.stb/selective_search 
 

7.3.1 Transfer Vectors

For convenience, SysWorks provides a VECTOR macro which simplifies the task of defining transfer vectors and assists in enforcing the ordered nature of transfer vectors. This macro also works under OpenVMS Alpha, although it simply generates global references in an image root module rather than defining full transfer vectors.

SysWorks also provides a Macro-32 to linker options converter which uses the VECTOR statements in the Macro-32 source to generate a linker options file with the appropriate symbol_vector statements. This generated linker options file can be included with the shareable image linker options file by using the %INCLUDE directive in the header comments. This causes SysWorks to add the included (i.e the generated) options file to the link command at build time.

7.4 Other Features

Other features of linking with SysWorks include:


Previous Next Contents Index