HP OpenVMS Systems Documentation

Content starts here

HP OpenVMS System Services Reference Manual


Previous Contents Index

The $GETJPI service cannot return this information for any process other than the calling process; if you specify this item code and the process is not the calling process, $GETJPI returns the value 0 in the buffer.

JPI$_FAST_VP_SWITCH

On VAX systems, returns an unsigned longword containing the number of times this process has issued a vector instruction that resulted in an inactive vector processor being enabled without the expense of a vector context switch. In other words, this count reflects those instances where the process has reenabled a vector processor on which the process's vector context has remained intact.

JPI$_FILCNT

Returns the remaining open file quota of the process, which is a longword integer value.

JPI$_FILLM

Returns the open file limit quota of the process, which is a longword value.

JPI$_FINALEXC

Returns the address of a list of final exception vectors for the process. Each exception vector in the list is a longword. There are four vectors in the list, one for each access mode, in this order: kernel, executive, supervisor, and user.

The $GETJPI service cannot return this information for any process other than the calling process; if you specify this item code and the process is not the calling process, $GETJPI returns the value 0 in the buffer.

JPI$_FREP0VA

Returns the address of the first free page at the end of the program region (P0 space) of the process.

JPI$_FREP1VA

Returns the address of the first free page at the end of the control region (P1 space) of the process.

JPI$_FREPTECNT

Returns the number of pages (on VAX systems) or pagelets (on Alpha and I64 systems) that the process has available for virtual memory expansion.

On VAX systems, the value returned is a longword integer. On Alpha and I64 systems, the value returned requires a quadword of storage. If the buffer size supplied is not equal to 8 bytes, and the number of free pagelets exceeds the maximum value that can be represented in a longword, $GETJPI returns the largest positive 32-bit integer: 2147483647.

JPI$_GETJPI_CONTROL_FLAGS

The JPI$_GETJPI_CONTROL_FLAGS item code, which is specified in the $GETJPI item list, provides additional control over $GETJPI; therefore, $GETJPI might be unable to retrieve all the data requested in an item list because JPI$_GETJPI_CONTROL_FLAGS requests that $GETJPI not perform certain actions that might be necessary to collect the data. For example, a $GETJPI control flag might instruct the calling program not to retrieve a process that has been swapped out of the balance set.

If $GETJPI is unable to retrieve any data item because of the restrictions imposed by the control flags, it returns the data length as 0. To verify that $GETJPI received a data item, examine the data length to be sure that it is not 0. To ensure the verification, be sure to specify the return length for each item in the $GETJPI item list when any of the JPI$_GETJPI_CONTROL_FLAGS flags is used.

Unlike other $GETJPI item codes, the JPI$_GETJPI_CONTROL_FLAGS item is an input item. The item list entry should specify a longword buffer. The desired control flags should be set in this buffer.

Because the JPI$_GETJPI_CONTROL_FLAGS item code tells $GETJPI how to interpret the item list, it must be the first entry in the $GETJPI item list. The error code SS$_BADPARAM is returned if it is not the first item in the list.

The JPI$_GETJPI_CONTROL_FLAGS item code includes the following flags:

Flag Description
JPI$M_NO_TARGET_INSWAP Does not retrieve a process that has been swapped out of the balance set. This control flag is used to avoid adding the load of swapping processes into a system. By using this control flag and requesting information from a process that has been swapped out, the following occurs:
  • Any data stored in the virtual address space of the process is not accessible.
  • Any data stored in the process header (PHD) might not be accessible.
  • Any data stored in resident data structures, such as the process control block (PCB) or the job information block (JIB), is accessible.

You must examine the return length of an item to verify that the item was retrieved.

JPI$M_NO_TARGET_AST Does not deliver a kernel mode AST to the target process. This control flag is used to avoid executing a target process to retrieve information. By using this control flag and not delivering an AST to a target process, the following occurs:
  • Any data stored in the virtual address space of the process is not accessible.
  • Any data stored in system data structures, such as the process header (PHD), the process control block (PCB), or the job information block (JIB), is accessible.

You must examine the return length of an item to verify that the item was retrieved.

The use of this control flag also implies that $GETJPI does not swap in a process, because $GETJPI would only bring a process into memory to deliver an AST to that process.

JPI$M_IGNORE_TARGET_STATUS Attempts to retrieve as much information as possible, even though the process might be suspended or is being deleted. This control flag is used to retrieve all possible information from a process.
JPI$M_THREAD Sets the wildcard mode to return information on all of the process's kernel threads beginning with the initial kernel thread.

JPI$_GPGCNT

Returns, in pages (on VAX systems) or pagelets (on Alpha and I64 systems), the process's global page count in the working set, which is a longword integer value.

JPI$_GRP

Returns, as a longword integer value, the group number of the process's UIC.

JPI$_HOME_RAD

On Alpha and I64 systems, returns the home resource affinity domain (RAD).

Note: OpenVMS support for RADs is available only on the AlphaServer GS series systems. For more information about using RADs, refer to the HP OpenVMS Alpha Partitioning and Galaxy Guide.

JPI$_IMAGECOUNT

Returns, as a longword integer value, the number of images that have been run down for the process.

JPI$_IMAGE_AUTHPRIV

On Alpha and I64 systems, returns the authorized privilege mask of the installed image.

These privileges are returned in a quadword privilege mask and are defined by the $PRVDEF macro.

JPI$_IMAGE_PERMPRIV

On Alpha and I64 systems, returns the permanent (default) privilege mask of the installed image.

These privileges are returned in a quadword privilege mask and are defined by the $PRVDEF macro.

JPI$_IMAGE_RIGHTS

Returns the binary content of the image rights list as an array of quadword identifiers. Each entry consists of a longword identifier value and longword identifier attributes, as shown in Table SYS-43. The image rights list is a set of identifiers associated with a protected subsystem image. When a process runs a protected subsystem, the subsystem rights are automatically added to the process's image rights list. These identifiers are subsequently removed during image rundown. Allocate a buffer that is sufficient to hold the image rights list, because $GETJPI returns only as much of the list as will fit in the buffer.

Table SYS-43 Attributes of an Identifier
Symbolic Name Description
KGB$M_DYNAMIC Identifier can be enabled or disabled.
+KGB$M_NOACCESS Rights of the identifier are null and void.
KGB$M_RESOURCE Resources can be charged to the identifier.
+KGB$M_SUBSYSTEM Identifier can be used to create protected subsystems.

+VAX specific

JPI$_IMAGE_WORKPRIV

On Alpha and I64 systems, returns the working (active) privilege mask of the installed image.

These privileges are returned in a quadword privilege mask and are defined by the $PRVDEF macro.

JPI$_IMAGNAME

Returns, as a character string, the directory specification and the image file name.

JPI$_IMAGPRIV

Returns a quadword mask of the privileges with which the current image was installed. If the current image was not installed, $GETJPI returns the value 0 in the buffer.

JPI$_INITIAL_THREAD_PID

On Alpha and I64 systems, returns the PID of the initial thread for the target process. The PID is a longword hexadecimal value.

JPI$_INSTALL_RIGHTS

On Alpha and I64 systems, returns the binary content of the install rights list as an array of quadword identifiers. Each entry consists of a longword identifier value and longword identifier attributes, as shown in Table SYS-43. The install rights list is a set of identifiers associated with an installed image.

JPI$_INSTALL_RIGHTS_SIZE

On Alpha and I64 systems, returns a longword integer containing the number of bytes needed to store the install rights.

JPI$_JOBPRCCNT

Returns the total number of subprocesses owned by the job, which is a longword integer value.

JPI$_JOBTYPE

Returns the execution mode of the process at the root of the job tree, which is a longword integer value. The symbolic name and value for each execution mode are listed in the following table. The $JPIDEF macro defines the symbolic names.
Mode Name Value
JPI$K_DETACHED 0
JPI$K_NETWORK 1
JPI$K_BATCH 2
JPI$K_LOCAL 3
JPI$K_DIALUP 4
JPI$K_REMOTE 5

JPI$_KT_COUNT

On Alpha and I64 systems, returns the current count of kernel threads for the target process, which is a longword integer value.

JPI$_LAST_LOGIN_I

Returns, as a quadword absolute time value, the date of the last successful interactive login prior to the current session. It returns a quadword of 0 when processes have not executed the LOGINOUT image.

JPI$_LAST_LOGIN_N

Returns, as a quadword absolute time value, the date of the last successful noninteractive login prior to the current session. It returns a quadword of 0 when processes have not executed the LOGINOUT image.

JPI$_LOGIN_FAILURES

Returns the number of login failures that occurred prior to the current session. It returns a longword of 0 when processes have not executed the LOGINOUT image.

JPI$_LOGIN_FLAGS

Returns a longword bit mask containing information related to the login sequence. It returns a longword of 0 when processes have not executed the LOGINOUT image. The following bits are defined:
Symbolic Name Description
JPI$M_NEW_MAIL_AT_LOGIN User had new mail messages waiting at login.
JPI$M_PASSWORD_CHANGED User changed the primary password during login.
JPI$M_PASSWORD_EXPIRED User's primary password expired during login.
JPI$M_PASSWORD_WARNING System gave the user a warning at login that the account's primary password would expire within 5 days.
JPI$M_PASSWORD2_CHANGED Account's secondary password was changed during login.
JPI$M_PASSWORD2_EXPIRED Account's secondary password expired during login.
JPI$M_PASSWORD2_WARNING System gave the user a warning at login that the account's secondary password would expire within 5 days.

JPI$_LOGINTIM

Returns the time at which the process was created, which is a standard 64-bit absolute time.

JPI$_MASTER_PID

Returns the process identification (PID) of the master process in the job. The PID is a longword hexadecimal value.

JPI$_MAXDETACH

Returns the maximum number of detached processes allowed for the user who owns the process specified in the call to $GETJPI. This limit is set in the UAF record of the user. The number is returned as a word decimal value. A value of 0 means that there is no limit on the number of detached processes for that user name.

JPI$_MAXJOBS

Returns the maximum number of active processes allowed for the user who owns the process specified in the call to $GETJPI. This limit is set in the UAF record of the user. The number is returned as a word decimal value. A value of 0 means that there is no limit on the number of active processes for that user name.

JPI$_MEM

Returns the member number of the process's UIC, which is a longword integer value.

JPI$_MODE

Returns the mode of the process, which is a longword integer value. The symbolic name and value for each mode are listed in the following table. The $JPIDEF macro defines the symbolic names.
Mode Name Value
JPI$K_OTHER 0
JPI$K_NETWORK 1
JPI$K_BATCH 2
JPI$K_INTERACTIVE 3

JPI$_MSGMASK

Returns the default message mask of the process, which is a longword bit mask.

JPI$_MULTITHREAD

On Alpha and I64 systems, returns the maximum kernel thread count allowed for the target process, which is a longword integer value.

JPI$_NODENAME

Returns, as a character string, the name of the OpenVMS Cluster node on which the process is running.

JPI$_NODE_CSID

Returns, as a longword hexadecimal integer, the cluster ID of the OpenVMS Cluster node on which the process is running.

JPI$_NODE_VERSION

Returns, as a character string, the operating system version number of the OpenVMS Cluster node on which the process is running.

JPI$_OWNER

Returns the process identification (PID) of the process that created the specified process. The PID is a longword hexadecimal value.

JPI$_PAGEFLTS

Returns the total number of page faults incurred by the process. This is a longword integer value.

JPI$_PAGFILCNT

Returns the remaining paging file quota of the process, which is a longword integer value, measured in pages (on VAX systems) or pagelets (on Alpha and I64 systems).

JPI$_PAGFILLOC

Returns the current paging file assignment of the process. The fourth byte of the returned longword value is the index of the system page file to which the process is currently assigned.

JPI$_PARSE_STYLE_IMAGE

On Alpha and I64 systems, set by $SET_PROCESS_PROPERTIESW, and can be either PARSE_STYLE$C_TRADITIONAL or PARSE_STYLE$C_EXTENDED (located in PPROPDEF). The return length is one byte.

JPI$_PARSE_STYLE_PERM

On Alpha and I64 systems, set by $SET_PROCESS_PROPERTIESW, and can be either PARSE_STYLE$C_TRADITIONAL or PARSE_STYLE$C_EXTENDED (located in PPROPDEF). The return length is one byte.

JPI$_PERMANENT_AFFINITY_MASK

On Alpha and I64 systems, returns the permanent explicit affinity mask for the associated kernel thread.

JPI$_PERMANENT_USERCAP_MASK

On Alpha and I64 systems, returns the permanent user capability mask for the associated kernel thread.

JPI$_PERSONA_AUTHPRIV

On Alpha and I64 systems, returns the authorized privilege mask of the persona.

These privileges are returned in a quadword privilege mask and are defined by the $PRVDEF macro.

JPI$_PERSONA_ID

On Alpha and I64 systems, returns, as a longword integer, the ID of the persona.

JPI$_PERSONA_PERMPRIV

On Alpha and I64 systems, returns the permanent (default) privilege mask of the persona. These privileges are returned in a quadword privilege mask and are defined by the $PRVDEF macro.

JPI$_PERSONA_RIGHTS

On Alpha and I64 systems, returns the binary content of the persona rights list as an array of quadword identifiers. Each entry consists of a longword identifier value and longword identifier attributes, as listed in Table SYS-43. The persona rights list is a set of identifiers associated with the process.

JPI$_PERSONA_RIGHTS_SIZE

On Alpha and I64 systems, returns a longword integer containing the number of bytes needed to store the persona rights.

JPI$_PERSONA_WORKPRIV

On Alpha and I64 systems, returns the privilege mask of the working (active) persona. These privileges are returned in a quadword privilege mask and are defined by the $PRVDEF macro.

JPI$_PGFLQUOTA

Returns the paging file quota (maximum virtual page count) of the process, which is a longword integer value, measured in pages (on VAX systems) or pagelets (on Alpha and I64 systems).

JPI$_PHDFLAGS

Returns the process header flags as a longword bit vector.

JPI$_PID

Returns the process identification (PID) of the process. The PID is a longword hexadecimal value.

JPI$_P0_FIRST_FREE_VA_64

On Alpha and I64 systems, this item code returns the 64-bit virtual address of the first free page at the end of the program region (P0 space) of the process.

Because this number is a quadword, the buffer length field in the item descriptor should specify 8 (bytes).

JPI$_P1_FIRST_FREE_VA_64

On Alpha and I64 systems, this item code returns the 64-bit virtual address of the first free page at the end of the control region (P1 space) of the process.

Because this number is a quadword, the buffer length field in the item descriptor should specify 8 (bytes).

JPI$_P2_FIRST_FREE_VA_64

On Alpha and I64 systems, this item code returns the 64-bit virtual address of the first free page at the end of P2 space of the process.

Because this number is a quadword, the buffer length field in the item descriptor should specify 8 (bytes).

JPI$_PPGCNT

Returns the number of pages (on VAX systems) or pagelets (on Alpha and I64 systems) the process has in the working set. This is a longword integer value.

JPI$_PRCCNT

Returns, as a longword integer value, the number of subprocesses created by the process. The number returned by JPI$_PRCCNT does not include any subprocesses created by subprocesses of the process named in the procnam argument.

JPI$_PRCLM

Returns the subprocess quota of the process, which is a longword integer value.

JPI$_PRCNAM

Returns, as a character string, the name of the process. Because the process name can include up to 15 characters, the buffer length field of the item descriptor should specify at least 15 bytes.

JPI$_PRI

Returns the current priority of the process, which is a longword integer value.

JPI$_PRIB

Returns the base priority of the process, which is a longword integer value.

JPI$_PROCESS_RIGHTS

Returns the binary content of the process rights list as an array of quadword identifiers. Each entry consists of a longword identifier value and longword identifier attributes, as shown in Table SYS-43. Allocate a buffer that is sufficient to hold the process rights list because $GETJPI returns only as much of the list as will fit in the buffer.

JPI$_PROC_INDEX

Returns, as a longword integer value, the process index number of the process. The process index number is a number between 1 and the system parameter MAXPROCESSCNT, which identifies the process. Although process index numbers are reassigned to different processes over time, at any one instant, each process in the system has a unique process index number.

You can use the process index number as an index into system global sections. Because the process index number is unique for each process, its use as an index into system global sections guarantees no collisions with other system processes accessing those sections.

The process index is intended to serve users who formerly used the low-order word of the PID as an index number.

JPI$_PROCPRIV

Returns the default privileges of the process in a quadword bit mask.

JPI$_RIGHTSLIST

Returns, as an array of quadword identifiers, all identifiers applicable to the process. This includes the process rights list (JPI$_PROCESS_RIGHTS) and the system rights list (JPI$_SYSTEM_RIGHTS). Each entry consists of a longword identifier value and longword identifier attributes, shown in Table SYS-43. Allocate a buffer that is sufficient to hold the rights list because $GETJPI returns only as much of the list as will fit in the buffer.

JPI$_RIGHTS_SIZE

Returns the number of bytes required to buffer the rights list. The rights list includes both the system rights list and the process rights list. Because the space requirements for the rights list can change between the time you request the size of the rights list and the time you fetch the rights list with JPI$_RIGHTSLIST, you might want to allocate a buffer that is 10 percent larger than this item indicates.

JPI$_RMS_DFMBC

Returns the default multiblock count.

JPI$_RMS_DFMBFIDX

Returns the default multibuffer count for local buffers for indexed file operations.

JPI$_RMS_DFMBFREL

Returns the default multibuffer count for local buffers for relative file operations.

JPI$_RMS_DFMBFSDK

Returns the default multibuffer count for local buffers for sequential file operations on disk.

JPI$_RMS_DFMBFSMT

Returns the default multibuffer count for local buffers for sequential file operations on magnetic tape.

JPI$_RMS_DFMBFSUR

Returns the default multibuffer count for file operation on unit record devices.

JPI$_RMS_DFNBC

Returns the default block count for local buffers for network access to remote files.

JPI$_RMS_EXTEND_SIZE

Returns the default number of blocks used to extend a sequential file.

JPI$_RMS_FILEPROT

Returns the default file protection.

JPI$_RMS_PROLOGUE

Returns the default prolog level for indexed files.

JPI$_SCHED_POLICY

On Alpha and I64 systems, returns the current scheduling policy of the specified process. Definitions of the policy values are in the $JPIDEF macro. The buffer length of the item descriptor should specify 4 (bytes).

JPI$_SHRFILLM

Returns the maximum number of open shared files allowed for the job to which the process specified in the call to $GETJPI belongs. This limit is set in the UAF record of the user who owns the process. The number is returned as a word decimal value. A value of 0 means that there is no limit on the number of open shared files for that job.

JPI$_SITESPEC

Returns the per-process, site-specific longword, which is a longword integer value.

JPI$_SLOW_VP_SWITCH

On VAX systems, returns an unsigned longword containing the number of times this process has issued a vector instruction that resulted in an inactive vector processor being enabled with a full vector context switch. This vector context switch involves the saving of the vector context of the process that last used the vector processor and the restoration of the vector context of the current process.

JPI$_STATE

Returns the state of the process, which is a longword integer value. Each state has a symbolic representation. If the process is currently executing, its state is always SCH$K_CUR. STATEDEF defines the following symbols, which identify the various possible states:
State Description
SCH$C_CEF Common event flag wait
SCH$C_COM Computable
SCH$C_COMO Computable, out of balance set
SCH$C_CUR Current process
SCH$C_COLPG Collided page wait
SCH$C_FPG Free page wait
SCH$C_HIB Hibernate wait
SCH$C_HIBO Hibernate wait, out of balance set
SCH$C_LEF Local event flag wait
SCH$C_LEFO Local event flag wait, out of balance set
SCH$C_MWAIT Mutex and miscellaneous resource wait
SCH$C_PFW Page fault wait
SCH$C_SUSP Suspended
SCH$C_SUSPO Suspended, out of balance set

JPI$_STS

Returns the first longword of the process status flags, which are contained in a longword bit vector. PCBDEF definitions include the following symbols for these flags:
Symbol Description
PCB$V_ASTPEN AST pending
PCB$V_BATCH Process is a batch job
PCB$V_DELPEN Delete pending
PCB$V_DISAWS Disable automatic working set adjustment
PCB$V_FORCPEN Force exit pending
PCB$V_HARDAFF Process bound to a particular CPU
PCB$V_HIBER Hibernate after initial image activate
PCB$V_INQUAN Initial quantum in progress
PCB$V_INTER Process is an interactive job
PCB$V_LOGIN Log in without reading authorization file
PCB$V_NETWRK Process is a network connect object
PCB$V_NOACNT No accounting for process
PCB$V_NODELET No delete
PCB$V_PHDRES Process header resident
PCB$V_PREEMPTED Kernel mode suspend has overridden supervisor mode suspend
PCB$V_PSWAPM Process swap mode (1=noswap)
PCB$V_PWRAST Power fail AST
PCB$V_RECOVER Process can recover locks
PCB$V_RES Resident, in balance set
PCB$V_RESPEN Resume pending, skip suspend
PCB$V_SECAUDIT Mandatory security auditing
PCB$V_SOFTSUSP Process is in supervisor mode suspend
PCB$V_SSFEXC System service exception enable (kernel)
PCB$V_SSFEXCE System service exception enable (exec)
PCB$V_SSFEXCS System service exception enable (super)
PCB$V_SSFEXCU System service exception enable (user)
PCB$V_SSRWAIT System service resource wait disable
PCB$V_SUSPEN Suspend pending
PCB$V_WAKEPEN Wake pending, skip hibernate
PCB$V_WALL Wait for all events in mask

JPI$_STS2

Returns the second longword of the process status flags, which are contained in a longword bit vector. PCBDEF defines the following symbol for these flags:
Symbol Description
PCB$V_NOUNSHELVE Process does not automatically unshelve files.

JPI$_SUBSYSTEM_RIGHTS

On Alpha and I64 systems, returns the binary content of the subsystem rights list as an array of quadword identifiers. Each entry consists of a longword identifier value and longword identifier attributes, as listed in Table SYS-43. The subsystem rights list is a set of identifiers associated with a protected subsystem image.


Previous Next Contents Index