%const %integer %c
         PRV M CMKRNL   = 1<<16_00, {may change mode to kernel}
         PRV M CMEXEC   = 1<<16_01, {may change mode to executive}
         PRV M SYSNAM   = 1<<16_02, {may insert logical names in system table}
         PRV M GRPNAM   = 1<<16_03, {may insert logical names in group table}
         PRV M ALLSPOOL = 1<<16_04, {may allocate spooled devices}
         PRV M DETACH   = 1<<16_05, {may create detached processes}
         PRV M DIAGNOSE = 1<<16_06, {may diagnose devices}
         PRV M LOG IO   = 1<<16_07, {may perform logical i/o operations}
         PRV M GROUP    = 1<<16_08, {may affect other processes in group}
         PRV M NOACNT   = 1<<16_09, {may disable accounting}
         PRV M PRMCEB   = 1<<16_0A, {may create permanent CEF clusters}
         PRV M PRMMBX   = 1<<16_0B, {may create permanent mailboxes}
         PRV M PSWAPM   = 1<<16_0C, {may change process swap mode}
         PRV M SETPRI   = 1<<16_0D, {may set base priority > allotment}
         PRV M SETPRV   = 1<<16_0E, {may enable any privilege}
         PRV M TMPMBX   = 1<<16_0F, {may create temporary mailboxes}
         PRV M WORLD    = 1<<16_10, {may affect other processes outside group}
         PRV M MOUNT    = 1<<16_11, {may execute mount QIO}
         PRV M OPER     = 1<<16_12, {may perform operator functions}
         PRV M EXQUOTA  = 1<<16_13, {may exceed quotas}
         PRV M NETMBX   = 1<<16_14, {may create network connections}
         PRV M VOLPRO   = 1<<16_15, {may override volume protection}
         PRV M PHY IO   = 1<<16_16, {may perform physical i/o operations}
         PRV M BUGCHK   = 1<<16_17, {may make bugcheck error log entries}
         PRV M PRMGBL   = 1<<16_18, {may create permanent global sections}
         PRV M SYSGBL   = 1<<16_19, {may create system-wide global sections}
         PRV M PFNMAP   = 1<<16_1A, {may map to specific physical pages}
         PRV M SHMEM    = 1<<16_1B, {may create/delete structs in shared memory}
         PRV M SYSPRV   = 1<<16_1C, {may attain system user status}
         PRV M BYPASS   = 1<<16_1D  {may disregard UIC protection}

%record %format Priv Fm ( %integer Priv, Priv2 {all 0 for now})

%system %routine %spec Exit ( %integer Code )
%system %routine %spec Hiber

%external %integer %function %spec SETPRN %alias "IMP_SETPRN" ( %c
                   %string(15) Prcnam )

%system %integer %function %spec SETPRV ( %c
                   %integer Enbflg, %record(Priv Fm) %name Prvadr,
                   %integer Prmflg, %record(Priv Fm) %name Prvprv )

%system %integer %function %spec SETRWM ( %integer WATFLG )
%system %integer %function %spec SETSFM ( %integer ENBFLG )
%system %integer %function %spec SETSSF ( %integer MASK   )
%system %integer %function %spec SETSWM ( %integer SWPFLG )

%external %integer %function %spec PID %alias "IMP_PID"

%external %integer %function %spec DELPRC %alias "IMP_DELPRC" ( %c
                             %integer Pid, %string(15) Prcnam )

%external %integer %function %spec FORCEX %alias "IMP_FORCEX" ( %c
                             %integer Pid, %string(15) Prcnam, %integer Code )

%external %integer %function %spec RESUME %alias "IMP_RESUME" ( %c
                             %integer Pid, %string(15) Prcnam )

%external %integer %function %spec SETPRI %alias "IMP_SETPRI" ( %c
                             %integer Pid, %string(15) Prcnam,
                             %integer Pri, %integer %name Prvpri )

%external %integer %function %spec SUSPND %alias "IMP_SUSPND" ( %c
                             %integer Pid, %string(15) Prcnam )

%external %integer %function %spec WAKE   %alias "IMP_WAKE"   ( %c
                             %integer Pid, %string(15) Prcnam )
