<<< NOTED::NOTES$7:[NOTES$LIBRARY]HACKERS.NOTE;1 >>> -< ** Hackers ** >- ================================================================================ Note 1635.3 Execlet initialization: INIT vs SYSINIT 3 of 4 XDELTA::HOFFMAN "Steve, OpenVMS Engineering" 94 lines 25-MAR-1997 16:12 -< Alpha Execlet Example >- -------------------------------------------------------------------------------- <<< VAXAXP::NOTES$:[NOTES$LIBRARY]ALPHANOTES.NOTE;1 >>> -< Alpha Support conference >- ================================================================================ Note 3489.4 Sample Execlet 4 of 4 HDLITE::NEWMAN "Chuck Newman, 297-5499, MRO4-1/H16," 87 lines 21-FEB-1994 18:54 -< BUILD_IT.COM >- -------------------------------------------------------------------------------- $ set noon $ if (p1 .eqs. "") $ then $ gosub _my_execlet $ gosub _my_uwss $ gosub _call_my_execlet $ else $ gosub _'p1' $ endif $ exit $_my_execlet: $ macr my_execlet $ link/native_only/bpages=14/section/replace/notraceback/nosysshr/vms_exec/contiguous- /share=sys$loadable_images:my_execlet.exe/map=my_execlet/cross/full sys$input:/opt cluster=my_execlet, , , my_execlet - , sys$library:starlet/include=(sys$doinit) sys$loadable_images:sys$base_image.exe/share/sele psect_attr = $LINKAGE , PIC,GBL,NOSHR,NOEXE, RD, WRT psect_attr = PAGED_USER_DATA , PIC,GBL,NOSHR,NOEXE, RD, WRT psect_attr = $$NONPAGED_USER_DATA , PIC,GBL,NOSHR,NOEXE, RD, WRT, 13 psect_attr = PAGED_USER_CODE , PIC,GBL, SHR, EXE, RD,NOWRT psect_attr = NONPAGED_USER_CODE , PIC,GBL, SHR, EXE, RD,NOWRT psect_attr = EXEC$INIT_LINKAGE , PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,WRT,NOVEC psect_attr = exec$init_code , PIC,GBL,NOSHR, EXE, RD, WRT psect_attr = exec$init_000 , PIC,GBL,NOSHR, EXE, RD, WRT psect_attr = exec$init_001 , PIC,GBL,NOSHR, EXE, RD, WRT psect_attr = exec$init_002 , PIC,GBL,NOSHR, EXE, RD, WRT psect_attr = exec$init_sstbl_000 , PIC,GBL,NOSHR, EXE, RD, WRT psect_attr = exec$init_sstbl_001 , PIC,GBL,NOSHR, EXE, RD, WRT psect_attr = exec$init_sstbl_002 , PIC,GBL,NOSHR, EXE, RD, WRT collect = initialization_psects/attributes=initialization_code - , exec$init_code - , exec$init_000 - , exec$init_001 - , exec$init_002 - , exec$init_linkage - , exec$init_sstbl_000 - , exec$init_sstbl_001 - , exec$init_sstbl_002 collect = nonpaged_readonly_psects/attributes=resident - , NONPAGED_USER_CODE collect = nonpaged_readwrite_psects/attributes=resident - , $$NONPAGED_USER_DATA - , $LINKAGE collect = paged_readonly_psects - , PAGED_USER_CODE collect = paged_readwrite_psects - , PAGED_USER_DATA $ ! Load as follows: $ ! mcr sysman sys_loadable add _local_ my_execlet/load_step=sysinit/severity=warning/mess="Failed to start my_execlet" $ ! @sys$update:vms$system_images $ ! $ ! Then, reboot the system $ ! $ RETU $_my_uwss: $ macr my_uwss $ link/native_only/nodebug/share/nosysshr/sysexe/full/notrace - /exe=sys$share:my_uwss/map=my_uwss sys$input:/opt my_uwss gsmatch=always,0,0 symbol_vector=(initialize=procedure, set_value=procedure, get_value=procedure, - print_message=procedure, - get_value_addr=data) $ set prot=w:er sys$share:my_uwss.exe $ inst repl/open/head/shar/prot sys$share:my_uwss $ ! $ RETU $_call_my_execlet: $ cc call_my_execlet $ link/exe=call_my_execlet sys$input:/opt call_my_execlet sys$share:my_uwss/shar $ ! $ RETU