;**************************************************************************** ; ; Installed Image Priv Management Routines ; ; Copyright (C) 1988, 1992, 1993 TGV, Incorporated ; ;**************************************************************************** ; ; disable_image_privilege(); ; enable_image_privilege(); ; .Title Install_Privilege .Ident /V3.3/ ; ; Determine target platform (avoids having to use ; ARCH_DEFS.MAR) ; .NTYPE R22TYPE,R22 ; get symbol type for "R22" R22TYPE = -5 ; type 5 = register .IF EQ,R22TYPE EVAX = 1 BIGPAGE = 1 ADDRESSBITS = 32 .ENDC $ssdef .psect lib$initialize, nopic,usr,con,rel,gbl,noshr,noexe,rd,nowrt,long .extrn lib$initialize .psect lib$initialize,noexe,nowrt,long,gbl .address startup_disable_image_privilege .Psect INSTALL$CODE,LONG,SHR,NOWRT,EXE,PIC .If Df,EVAX startup_disable_image_privilege: .Call_Entry Home_args=True,Preserve=<> .Iff .entry startup_disable_image_privilege,^m<> .EndC $getjpi_s itmlst=itmlst1 blbs r0,10$ 5$: pushl r0 calls #1,g^lib$stop 10$: bicl3 procpriv+4,imagpriv+4,-(sp) bicl3 procpriv,imagpriv,-(sp) $setprv_s enbflg=#0, prvadr=8(sp), prmflg=#0 blbc r0,5$ movl #ss$_normal,r0 ret .entry disable_image_privilege,^m<> decl array_index movl array_index,r0 movq array[r0],-(sp) $setprv_s enbflg=#0, prvadr=8(sp), prmflg=#0 blbs r0,10$ pushl r0 calls #1,g^lib$stop 10$: movl #ss$_normal,r0 ret .entry enable_image_privilege,^m<> $getjpi_s itmlst=itmlst2 blbs r0,10$ 5$: pushl r0 calls #1,g^lib$stop 10$: bicl3 curpriv+4,imagpriv+4,-(sp) bicl3 curpriv,imagpriv,-(sp) movl array_index,r0 movq (sp),array[r0] incl array_index $setprv_s enbflg=#1, prvadr=8(sp), prmflg=#0 blbc r0,5$ ret .psect instalprv$data,noexe,nowrt,noshr,nopic,long .align long itmlst1: .word 8,jpi$_procpriv .address procpriv .long 0 .word 8,jpi$_imagpriv .address imagpriv .long 0,0 itmlst2: .word 8,jpi$_curpriv .address curpriv .long 0,0 .psect instalprv$write,noexe,wrt,noshr,pic,quad .align quad procpriv: .blkq 1 imagpriv: .blkq 1 curpriv: .blkq 1 array_index: .long 0 .align quad array: .blkq 10 .end