1 System_Services This help category provides an overview and the format for each of the system services. The C function prototypes are available only on OpenVMS Alpha systems. System services provide basic operating system functions, interprocess communication, and various control resources. 2 $ABORT_TRANS Ends a transaction by aborting it. Format SYS$ABORT_TRANS [efn] ,[flags] ,iosb [,[astadr] ,[astprm] ,[tid] ,[reason]] C Prototype int sys$abort_trans (unsigned int efn, unsigned int flags, struct _iosb *iosb, __optional_params); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag that is set when the service completes. If this argument is omitted, event flag 0 is set. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flags specifying options for the service. The flags argument is a longword bit mask in which each bit corresponds to an option flag. The $DDTMDEF macro defines symbolic names for these option flags. All undefined bits must be 0. If this argument is omitted, no flags are set. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference I/O status block in which the following information is returned: o The completion status of the service, returned as a condition value. o An abort reason code that gives one reason why the transaction aborted, if the completion status of the service is SS$_ NORMAL. Note that, if there are multiple reasons why the transaction aborted, the abort reason code returned in the I/O status block might not be the same as the abort reason code passed in the reason argument. The DECdtm transaction manager returns one of the reasons in the I/O status block. For example, if the call to $ABORT_TRANS gives DDTM$_ABORTED as the reason and the transaction timeout expires at about the same time as the call to $ABORT_TRANS, then either the DDTM$_ TIMEOUT or DDTM$_ABORTED reason code can be returned in the I/O status block. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST routine that is executed when the service completes, if SS$_ NORMAL is returned in R0. The astadr argument is the address of this routine. The routine is executed in the access mode of the caller. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter that is passed to the AST routine specified by the astadr argument. tid OpenVMS usage:transaction_id type: octaword (unsigned) access: read only mechanism: by reference Identifier of the transaction to be aborted. If this argument is omitted, $ABORT_TRANS aborts the default transaction of the calling process. reason OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by value Code that gives the reason why the application is aborting the transaction. The $DDTMMSGDEF macro defines symbolic names for abort reason codes. The default value for this argument is DDTM$_ ABORTED. 2 $ABORT_TRANSW Ends a transaction by aborting it. $ABORT_TRANSW always waits for the request to complete before returning to the caller. Other than this, it is identical to $ABORT_TRANS. Format SYS$ABORT_TRANSW [efn] ,[flags] ,iosb [,[astadr] ,[astprm] ,[tid] ,[reason]] C Prototype int sys$abort_transw (unsigned int efn, struct _iosb *iosb, __optional_params); 2 $ADD_HOLDER Adds a specified holder record to a target identifier. Format SYS$ADD_HOLDER id ,holder ,[attrib] C Prototype int sys$add_holder (unsigned int id, struct _generic_64 *holder, unsigned int attrib); 3 Arguments id OpenVMS usage:rights_id type: longword (unsigned) access: read only mechanism: by value Target identifier granted to the specified holder when $ADD_ HOLDER completes execution. The id argument is a longword containing the binary value of the target identifier. holder OpenVMS usage:rights_holder type: quadword (unsigned) access: read only mechanism: by reference Holder identifier that is granted access to the target identifier when $ADD_HOLDER completes execution. The holder argument is the address of a quadword data structure that consists of a longword containing the holder's UIC identifier followed by a longword containing a value of 0. attrib OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Attributes to be placed in the holder record when $ADD_HOLDER completes execution. The attrib argument is a longword containing a bit mask specifying the attributes. A holder is granted a specified attribute only if the target identifier has the attribute. 2 $ADD_IDENT Adds the specified identifier to the rights database. Format SYS$ADD_IDENT name ,[id] ,[attrib] ,[resid] Prototype int sys$add_ident (void *name, unsigned int id, unsigned int attrib, unsigned int *resid); 3 Arguments name OpenVMS usage:char-string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Identifier name to be added to the rights database when $ADD_ IDENT completes execution. The name argument is the address of a character-string descriptor pointing to the identifier name string. id OpenVMS usage:rights_id type: longword (unsigned) access: read only mechanism: by value Identifier to be created when $ADD_IDENT completes execution. The id argument is a longword containing the binary value of the identifier to be created. attrib OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Attributes placed in the identifier's record when $ADD_IDENT completes execution. The attrib argument is a longword containing a bit mask that specifies the attributes. resid OpenVMS usage:rights_id type: longword (unsigned) access: write only mechanism: by reference Identifier value assigned by the system when $ADD_IDENT completes execution. The resid argument is the address of a longword in which the system-assigned identifier value is written. 2 $ADD_PROXY Adds a new proxy to, or modifies an existing proxy in, the proxy database. Format SYS$ADD_PROXY rem_node ,rem_user ,local_user ,[flags] Prototype int sys$add_proxy (void *rem_node, void *rem_user, void *local_user, unsigned int flags); 3 Arguments rem_node OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Remote node name of the proxy to be added to or modified in the proxy database. The rem_node argument is the address of a character-string descriptor pointing to the remote node name string. rem_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Remote user name of the proxy to be added to or modified in the proxy database. The rem_user argument is the address of a character-string descriptor pointing to the user name string. local_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed length string descriptor Local user name to add to the proxy record specified by the rem_ node and rem_user arguments in the proxy database as either the default user or local user. The local_user argument is the address of a character-string descriptor pointing to the local user name. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Functional specification for the service and type of user the local_user argument represents. The flags argument is a longword bit mask wherein each bit corresponds to an option. 2 $ADJSTK Modifies the stack pointer for a less privileged access mode. The operating system uses this service to modify a stack pointer for a less privileged access mode after placing arguments on the stack. Format SYS$ADJSTK [acmode] ,[adjust] ,newadr C Prototype int sys$adjstk (unsigned int acmode, short int adjust, void *(*(newadr))); 3 Arguments acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode for which the stack pointer is to be adjusted. The acmode argument is this longword value. If not specified, the default value 0 (kernel access mode) is used. adjust OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Signed adjustment value used to modify the value specified by the newadr argument. The adjust argument is a signed longword, which is the adjustment value. newadr OpenVMS usage:address type: longword (unsigned) access: modify mechanism: by reference Value that adjust is to adjust. The newadr argument is the address of this longword value. The value specified by this argument is both read and written by $ADJSTK. The $ADJSTK service reads the value specified and adjusts it by the value of the adjust argument (if specified). After this adjustment is made, $ADJSTK writes the adjusted value back into the longword specified by newadr and then loads the stack pointer with the adjusted value. 2 $ADJWSL Adjusts a process's current working set limit by the specified number of pages (on VAX systems) or pagelets (on Alpha systems) and returns the new value to the caller. The working set limit specifies the maximum number of process pages or pagelets that can be resident in physical memory. On Alpha systems, this service accepts 64-bit addresses. Format SYS$ADJWSL [pagcnt] ,[wsetlm] C Prototype int sys$adjwsl (int pagcnt, unsigned int *wsetlm); 3 Arguments pagcnt OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Signed adjustment value specifying the number of pages (on VAX systems) or pagelets (on Alpha systems) to add to (if positive) or subtract from (if negative) the current working set limit. The pagcnt argument is this signed longword value. Note that, on Alpha systems, the specified value is rounded up to an even multiple of the CPU-specific page size. wsetlm OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Value of the working set limit, in pages (on VAX systems) or pagelets (on Alpha systems), returned by $ADJWSL. The wsetlm argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of this longword value. The wsetlm argument receives the newly adjusted value if pagcnt is specified, and it receives the prior, unadjusted value if pagcnt is not specified. 2 $ALLOC Allocates a device for exclusive use by a process and its subprocesses. No other process can allocate the device or assign channels to it until the image that called $ALLOC exits or explicitly deallocates the device with the Deallocate Device ($DALLOC) service. Format SYS$ALLOC devnam ,[phylen] ,[phybuf] ,[acmode] ,[flags] C Prototype int sys$alloc (void *devnam, unsigned short int *phylen, void *phybuf, unsigned int acmode, unsigned int flags); 3 Arguments devnam OpenVMS usage:device_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Device name of the device to be allocated. The devnam argument is the address of a character string descriptor pointing to the device name string. phylen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Word into which $ALLOC writes the length of the device name string for the device it has allocated. The phylen argument is the address of this word. phybuf OpenVMS usage:device_name type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor Buffer into which $ALLOC writes the device name string for the device it has allocated. The phybuf argument is the address of a character string descriptor pointing to this buffer. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode to be associated with the allocated device. The acmode argument is a longword containing the access mode. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Longword of status flags indicating whether to interpret the devnam argument as the type of device to be allocated. Only one flag exists, bit 0. When it is set, the $ALLOC service allocates the first available device that has the type specified in the devnam argument. 2 $ASCEFC Associates a named common event flag cluster with a process to execute the current image and to be assigned a process- local cluster number for use with other event flag services. If the named cluster does not exist but the process has suitable privilege, the service creates the cluster. Format SYS$ASCEFC efn ,name ,[prot] ,[perm] C Prototype int sys$ascefc (unsigned int efn, void *name, char prot, char perm); 3 Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of any event flag contained within the desired common event flag cluster. The efn argument is a longword value specifying this number; however, $ASCEFC uses only the low-order byte. name OpenVMS usage:ef_cluster_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the common event flag cluster with which to associate. The name argument is the address of a character string descriptor pointing to this name string. prot OpenVMS usage:Boolean type: byte (unsigned) access: read only mechanism: by value Protection specifier that allows or disallows access to the common event flag cluster for processes with the same UIC group number as the creating process. The prot argument is a longword value, which is interpreted as Boolean. perm OpenVMS usage:Boolean type: byte (unsigned) access: read only mechanism: by value Permanent specifier that marks a common event flag cluster as either permanent or temporary. The perm argument is a longword value, which is interpreted as Boolean. 2 $ASCTIM Converts an absolute or delta time from 64-bit system time format to an ASCII string. On Alpha systems, this service accepts 64-bit addresses. Format SYS$ASCTIM [timlen] ,timbuf ,[timadr] ,[cvtflg] C Prototype int sys$asctim (unsigned short int *timlen, void *timbuf, struct _generic_64 *timadr, char cvtflg); 3 Arguments timlen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Length (in bytes) of the ASCII string returned by $ASCTIM. The timlen argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a word containing this length. timbuf OpenVMS usage:time_name type: character-coded text string access: write only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor (VAX) Buffer into which $ASCTIM writes the ASCII string. The timbuf argument is the 32-bit address (on VAX systems) or the 32- or 64- bit address (on Alpha systems) of a character string descriptor pointing to the buffer. timadr OpenVMS usage:date_time type: quadword access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Time value that $ASCTIM is to convert. The timadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of this 64-bit time value. A positive time value represents an absolute time. A negative time value represents a delta time. If you specify a delta time, it must be less than 10,000 days. cvtflg OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Conversion indicator specifying which date and time fields $ASCTIM should return. The cvtflg argument is a longword value, which is interpreted as Boolean. The value 1 specifies that $ASCTIM should return only the hour, minute, second, and hundredths-of-second fields. The default value 0 specifies that $ASCTIM should return the full date and time. 2 $ASCTOID Translates the specified identifier name into its binary identifier value. On Alpha systems, this service accepts 64-bit addresses. Format SYS$ASCTOID name ,[id] ,[attrib] C Prototype int sys$asctoid (void *name, unsigned int *id, unsigned int *attrib); 3 Arguments name OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Identifier name translated when $ASCTOID completes execution. The name argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a character-string descriptor pointing to the identifier name. id OpenVMS usage:rights_id type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Identifier value resulting when $ASCTOID completes execution. The id argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a longword in which the identifier value is written. attrib OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Attributes associated with the identifier returned in id when $ASCTOID completes execution. The attrib argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a longword containing a bit mask specifying the attributes. 2 $ASCUTC Converts an absolute time from 128-bit UTC format to an ASCII string. On Alpha systems, this service accepts 64-bit addresses. Format SYS$ASCUTC [timlen] ,timbuf ,[utcadr] ,[cvtflg] C Prototype int sys$ascutc (unsigned short int *timlen, void *timbuf, unsigned int *utcadr [4], char cvtflg); 3 Arguments timlen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Length (in bytes) of the ASCII string returned by $ASCUTC. The timlen argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a word containing this length. timbuf OpenVMS usage:time_name type: character-coded string text access: write only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Buffer into which $ASCUTC writes the ASCII string. The timbuf argument is the 32-bit address (on VAX systems) or the 32- or 64- bit address (on Alpha systems) of a character string descriptor pointing to the buffer. The buffer length specified in the timbuf argument, together with the cvtflg argument, controls what information is returned. utcadr OpenVMS usage:coordinated universal time type: utc_date_time access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Time value that $ASCUTC is to convert. The timadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of this 128-bit time value. Relative times are not permitted. If the timadr argument is not specified, it defaults to 0 and $ASCUTC returns the current date and time. cvtflg OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Conversion indicator specifying which date and time fields $ASCUTC should return. The cvtflg argument is a longword value that is interpreted as Boolean. The value 1 specifies that $ASCUTC should return only the time, including hour, minute, second, and hundredths-of-second fields. The default value 0 specifies that $ASCUTC should return the full date and time. 2 $ASSIGN Provides a process with an I/O channel so input/output operations can be performed on a device, or establishes a logical link with a remote node on a network. On Alpha systems, this service accepts 64-bit addresses. Format SYS$ASSIGN devnam ,chan ,[acmode] ,[mbxnam] ,[flags] C Prototype int sys$assign (void *devnam, unsigned short int *chan, unsigned int acmode, void *mbxnam, __optional_params); 3 Arguments devnam OpenVMS usage:device_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of the device to which $ASSIGN is to assign a channel. The devnam argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a character string descriptor pointing to the device name string. chan OpenVMS usage:channel type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Number of the channel that is assigned. The chan argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a word into which $ASSIGN writes the channel number. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode to be associated with the channel. The acmode argument specifies the access mode. mbxnam OpenVMS usage:device_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Logical name of the mailbox to be associated with the device. The mbxnam argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a character string descriptor pointing to the logical name string. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value An optional device-specific argument. The flags argument is a longword bit mask. 2 $AUDIT_EVENT Appends an event message to the system security audit log file or sends an alarm to a security operator terminal. Format SYS$AUDIT_EVENT [efn] ,[flags] ,itmlst ,[audsts] ,[astadr] ,[astprm] C Prototype int sys$audit_event (unsigned int efn, unsigned int flags, void *itmlst, unsigned int *audsts, void (*astadr)(__unknown_params), int astprm); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when the audit completes. The efn argument is a longword containing the number of the event flag; however, $AUDIT_EVENT uses only the low-order byte. If efn is not specified, event flag 0 is used. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flags specifying options for the $AUDIT_EVENT system operation. The flags argument is a longword bit mask, where each bit corresponds to an option. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying information to include in the audit record. The itmlst argument is the address of a list of item descriptors. The list of item descriptors is terminated by a longword of 0. audsts OpenVMS usage:cond_value_type type: longword (unsigned) access: write only mechanism: by reference Longword condition value that receives the final completion status from the operation. If a security audit is required, the final completion status represents either the successful completion of the resulting security audit or any failing status that occurred while the security audit was performed within the audit server process. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference Asynchronous system trap (AST) routine to be executed after the audsts is updated. The astadr argument, which is the address of a longword value, is the procedure value of the AST routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Asynchronous system trap (AST) parameter passed to the AST service routine. The astprm argument is a longword value containing the AST parameter. 2 $AUDIT_EVENTW Determines whether a security-related event should be reported. If the event should be reported, the service sends the event report to the audit server. The $AUDIT_EVENTW service completes synchronously; that is, it returns only after receiving an explicit confirmation from the audit server that the associated audit, if enabled, has been performed. Format SYS$AUDIT_EVENTW efn ,[flags] ,itmlst ,audsts ,[astadr] ,[astprm] C Prototype int sys$audit_eventw (unsigned int efn, unsigned int flags, void *itmlst, unsigned int *audsts, void (*astadr)(__unknown_params), int astprm); 2 $AVOID_PREEMPT Requests that the EXEC avoid preempting the calling process or thread. Format SYS$AVOID_PREEMPT enable C Prototype int sys$avoid_preempt (int enable); 3 Arguments enable OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Enables or disables preemption avoidance. If the enable argument is set to 1, preemption avoidance is enabled; if 0, preemption avoidance is disabled. 2 $BINTIM Converts an ASCII string to an absolute or delta time value in the system 64-bit time format suitable for input to the Set Timer ($SETIMR) or Schedule Wakeup ($SCHDWK) service. On Alpha systems, this service accepts 64-bit addresses. Format SYS$BINTIM timbuf ,timadr C Prototype int sys$bintim (void *timbuf, struct _generic_64 *timadr); 3 Arguments timbuf OpenVMS usage:time_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Buffer that holds the ASCII time to be converted. The timbuf argument specifies the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a character string descriptor pointing to the time string. The time string specifies the absolute or delta time to be converted by $BINTIM. timadr OpenVMS usage:date_time type: quadword access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Time value that $BINTIM has converted. The timadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of the quadword system time, which receives the converted time. 2 $BINUTC Converts an ASCII string to an absolute time value in the 128-bit UTC format. On Alpha systems, this service accepts 64-bit addresses. Format SYS$BINUTC timbuf ,utcadr C Prototype int sys$binutc (void *timbuf, unsigned int *utcadr [4]); 3 Arguments timbuf OpenVMS usage:time_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Buffer that holds the ASCII time to be converted. The timbuf argument specifies the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a character string descriptor pointing to a local time string. The time string specifies the absolute time to be converted by $BINUTC. utcadr OpenVMS usage:coordinated universal time type: utc_date_time access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Time value that $BINUTC has converted. The utcadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a 16-byte location to receive the converted time. 2 $BRKTHRU Sends a message to one or more terminals. The $BRKTHRU service completes asynchronously; that is, it returns to the caller after queuing the message request, without waiting for the message to be written to the specified terminals. For synchronous completion, use the Breakthrough and Wait ($BRKTHRUW) service. The $BRKTHRUW service is identical to the $BRKTHRU service in every way except that $BRKTHRUW returns to the caller after the message is written to the specified terminals. The $BRKTHRU service supersedes the Broadcast ($BRDCST) service. When writing new programs, you should use $BRKTHRU instead of $BRDCST. When updating old programs, you should change all uses of $BRDCST to $BRKTHRU. Format SYS$BRKTHRU [efn] ,msgbuf [,sendto] [,sndtyp] [,iosb] [,carcon] [,flags] [,reqid] [,timout] [,astadr] [,astprm] C Prototype int sys$brkthru (unsigned int efn, void *msgbuf, void *sendto, unsigned int sndtyp, struct _iosb *iosb, unsigned int carcon, unsigned int flags, unsigned int reqid, unsigned int timout, void (*astadr)(__unknown_params), int astprm); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when the message has been written to the specified terminals. The efn argument is a longword containing this number; however, $BRKTHRU uses only the low-order byte. msgbuf OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Message text to be sent to the specified terminals. The msgbuf argument is the address of a descriptor pointing to this message text. sendto OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of a single device (terminal) or single user name to which the message is to be sent. The sendto argument is the address of a descriptor pointing to this name. sndtyp OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Terminal type to which $BRKTHRU is to send the message. The sndtyp argument is a longword value specifying the terminal type. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference I/O status block that is to receive the final completion status. The iosb argument is the address of this quadword block. carcon OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Carriage control specifier indicating the carriage control sequence to follow the message that $BRKTHRU sends to the terminals. The carcon argument is a longword containing the carriage control specifier. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag bit mask specifying options for the $BRKTHRU operation. The flags argument is a longword value that is the logical OR of each desired flag option. reqid OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Class requester identification, which identifies to $BRKTHRU the application (or image) that is calling $BRKTHRU. The reqid argument is this longword identification value. timout OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Timeout value, which is the number of seconds that must elapse before an attempted write by $BRKTHRU to a terminal is considered to have failed. The timout argument is this longword value (in seconds). astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST service routine to be executed after $BRKTHRU has sent the message to the specified terminals. The astadr argument is the address of this routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter to be passed to the AST routine specified by the astadr argument. The astprm argument specifies this longword parameter. 2 $BRKTHRUW Sends a message to one or more terminals. The $BRKTHRUW service operates synchronously; that is, it returns to the caller after the message has been sent to the specified terminals. For asynchronous operations, use the Breakthrough ($BRKTHRU) service; $BRKTHRU returns to the caller after queuing the message request, without waiting for the message to be delivered. Aside from the preceding, $BRKTHRUW is identical to $BRKTHRU. For all other information about the $BRKTHRUW service, refer to the description of $BRKTHRU. The $BRKTHRU and $BRKTHRUW services supersede the Broadcast ($BRDCST) service. When writing new programs, you should use $BRKTHRU or $BRKTHRUW instead of $BRDCST. When updating old programs, you should change all uses of $BRDCST to $BRKTHRU or $BRKTHRUW. $BRDCST is now an obsolete system service and is no longer being enhanced. Format SYS$BRKTHRUW [efn] ,msgbuf [,sendto] [,sndtyp] [,iosb] [,carcon] [,flags] [,reqid] [,timout] [,astadr] [,astprm] C Prototype int sys$brkthruw (unsigned int efn, void *msgbuf, void *sendto, unsigned int sndtyp, struct _iosb *iosb, unsigned int carcon, unsigned int flags, unsigned int reqid, unsigned int timout, void (*astadr)(__unknown_params),int astprm); 2 $CANCEL Cancels all pending I/O requests on a specified channel. In general, this includes all I/O requests that are queued, as well as the request currently in progress. Format SYS$CANCEL chan C Prototype int sys$cancel (unsigned short int chan); 3 Argument chan OpenVMS usage:channel type: word (unsigned) access: read only mechanism: by value I/O channel on which I/O is to be canceled. The chan argument is a word containing the channel number. 2 $CANEXH Deletes an exit control block from the list of control blocks for the calling access mode. Exit control blocks are declared by the Declare Exit Handler ($DCLEXH) service and are queued according to access mode in a last-in first-out order. Format SYS$CANEXH [desblk] C Prototype int sys$canexh (void *desblk); 3 Argument desblk OpenVMS usage:exit_handler_block type: longword (unsigned) access: read only mechanism: by reference Control block describing the exit handler to be canceled. If you do not specify the desblk argument or specify it as 0, all exit control blocks are canceled for the current access mode. The desblk argument is the address of this control block. 2 $CANTIM Cancels all or a selected subset of the Set Timer requests previously issued by the current image executing in a process. Cancellation is based on the request identification specified in the Set Timer ($SETIMR) service. If you give the same request identification to more than one timer request, all requests with that request identification are canceled. Format SYS$CANTIM [reqidt] ,[acmode] C Prototype int sys$cantim (unsigned __int64 reqidt, unsigned int acmode); 3 Arguments reqidt OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Request identification of the timer requests to be canceled. If you specify it as 0 (the default), all timer requests are canceled. The reqidt argument is a longword containing this identification. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode of the requests to be canceled. The acmode argument is a longword containing the access mode. 2 $CANWAK Removes all scheduled wakeup requests for a process from the timer queue, including those made by the caller or by other processes. The Schedule Wakeup ($SCHDWK) service makes scheduled wakeup requests. Format SYS$CANWAK [pidadr] ,[prcnam] C Prototype int sys$canwak (unsigned int *pidadr, void *prcnam); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) of the process for which wakeups are to be canceled. The pidadr argument is the address of a longword specifying the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the OpenVMS Cluster system. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the process for which wakeups are to be canceled. The prcnam argument is the address of a character string descriptor pointing to the process name string. 2 $CHECK_ACCESS Determines on behalf of a third-party user whether a named user can access the object specified. Format SYS$CHECK_ACCESS [objtyp], [objnam], [usrnam], itmlst, [contxt], [clsnam], [objpro], [usrpro] C Prototype int sys$check_access (unsigned int *objtyp, void *objnam, void *usrnam, void *itmlst, unsigned int *contxt, void *clsnam, void *objpro, void *usrpro); 3 Arguments objtyp OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference Type of object being accessed. The objtyp argument is the address of a longword containing a value specifying the type of object. objnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the object being accessed. The objnam argument is the address of a character-string descriptor pointing to the object name. usrnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the user attempting access. The usrnam argument is the address of a descriptor that points to a character string that contains the name of the user attempting to gain access to the specified object. The user name string can contain a maximum of 12 alphanumeric characters. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Attributes describing how the object is to be accessed and information returned after $CHECK_ACCESS performs the protection check (for instance, security alarm information). contxt OpenVMS usage:longword type: longword (unsigned) access: read-write mechanism: by reference Longword used to maintain the user authorization file (UAF) context. The contxt argument is the address of a longword to receive a UAI context longword. On the initial call, this longword should contain the value -1. On subsequent calls, the value of the contxt argument from the previous call should be passed back in. clsnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor Object class name associated with the protected object. The clsnam argument is the address of a descriptor pointing to the name of the object class associated with the object specified by either the objnam or the objpro argument. The clsnam and objtyp arguments are mutually exclusive. The clsnam argument is the preferred argument to $CHECK_ACCESS. objpro OpenVMS usage:char_string type: opaque byte stream or object handle access: read only mechanism: by descriptor Buffer containing an object security profile or object handle. The objpro argument is the address of a descriptor pointing to a buffer that contains an encoded object security profile or the address of a descriptor pointing to an object handle. usrpro OpenVMS usage:char_string type: opaque byte stream access: read only mechanism: by descriptor Buffer containing a user security profile. The usrpro argument is the address of a descriptor pointing to a buffer that contains an encoded user security profile. 2 $CHECK_FEN_(Alpha_Only) On Alpha systems, indicates whether floating point is enabled for the current image. Format SYS$CHECK_FEN C Prototype int sys$check_fen (void); 3 Arguments None. 2 $CHECK_PRIVILEGE Determines whether the caller has the specified privileges or identifier. In addition to checking for a privilege or an identifier, $CHECK_PRIVILEGE determines if the caller's use of privilege needs to be audited. Format SYS$CHECK_PRIVILEGE [efn] ,prvadr ,[altprv] ,[flags] ,[itmlst] ,[audsts] ,[astadr] ,[astprm] C Prototype int sys$check_privilege (unsigned int efn, struct _generic_64 *prvadr, struct _generic_64 *altprv, unsigned int flags, void *itmlst, unsigned int *audsts, void (*astadr)(__unknown_params), int astprm); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when the audit completes. The efn argument is a longword containing the number of the event flag; however, $CHECK_PRIVILEGE uses only the low-order byte. If efn is not specified, event flag 0 is used. prvadr OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by reference The privilege or identifier to be checked. The prvadr argument is either the address of a quadword bit array, where each bit corresponds to a privilege, or the address of a quadword identifier. altprv OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by reference Alternate privilege mask to check against. The altprv argument is the address of a quadword privilege mask, where each bit corresponds to a privilege. This argument and the flags NSA$M_ AUTHPRIV, NSA$M_IDENTIFIER, and NSA$M_PROCPRIV are mutually exclusive. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flags that specify options for the $CHECK_PRIVILEGE operation. The flags argument is a longword bit mask, where each bit corresponds to an option. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying additional security auditing information to be included in any security audit that is generated by the service. The itmlst argument is the address of a list of item descriptors, each of which describes an item of information. The list of item descriptors is terminated by a longword of 0. audsts OpenVMS usage:cond_value_type type: longword (unsigned) access: write only mechanism: by reference Longword condition value that receives a final completion status from the operation. If a security audit is required, the final completion status represents either the successful completion of the resulting security audit or any failing status that occurred while the security audit was performed within the AUDIT_SERVER process. The audsts argument is valid only when the service returns success and the status is not SS$_EVTNOTENAB. In addition, the caller must either make use of the astadr argument or use the $CHECK_PRIVILEGEW service before attempting to access audsts. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference Asynchronous system trap (AST) routine to be executed after the audsts argument is written. The astadr argument, which is the address of a longword value, is the procedure value of the AST routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Asynchronous system trap (AST) parameter passed to the AST service routine. The astprm argument is a longword value containing the AST parameter. 2 $CHECK_PRIVILEGEW Determines whether the caller has the specified privileges or identifier. In addition to checking for a privilege or an identifier, the Check Privilege and Wait service determines if the caller's use of privilege needs to be audited. $CHECK_PRIVILEGEW completes synchronously; that is, it returns the final status to the caller only after receiving an explicit confirmation from the audit server that the associated audit, if enabled, has been performed. Format SYS$CHECK_PRIVILEGEW efn ,prvadr ,[altprv] ,[flags] ,[itmlst] ,audsts ,[astadr] ,[astprm] C Prototype int sys$check_privilegew (unsigned int efn, struct _generic_64 *prvadr, struct _generic_64 *altprv, unsigned int flags, void *itmlst, unsigned int *audsts, void (*astadr)(__unknown_params), int astprm); 2 $CHKPRO Determines whether an accessor with the specified rights and privileges can access an object with the specified attributes. Format SYS$CHKPRO itmlst ,[objpro] ,[usrpro] C Prototype int sys$chkpro (void *itmlst, void *objpro, void *usrpro); 3 Argument itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Protection attributes of the object and the rights and privileges of the accessor. The itmlst argument is the address of an item list of descriptors used to specify the protection attributes of the object and the rights and privileges of the accessor. objpro OpenVMS usage:char_string type: opaque byte stream access: read only mechanism: by descriptor Buffer containing an object security profile. The objpro argument is the address of a descriptor pointing to a buffer that contains an encoded object security profile. The objpro argument eliminates the need to supply all of the component object protection attributes with the $CHKPRO item list. The objpro argument is currently reserved to Digital. usrpro OpenVMS usage:char_string type: opaque byte stream access: read only mechanism: by descriptor Buffer containing a user security profile. The usrpro argument is the address of a descriptor pointing to a buffer that contains an encoded user security profile. The usrpro argument eliminates the need to supply all of the component user security attributes with the $CHKPRO item list. 2 $CLRCLUEVT_(Alpha_Only) On Alpha systems, removes one or more notification requests previously established by a call to SYS$SETCLUEVT. Format SYS$CLRCLUEVT [handle] ,[acmode] ,[event] C Prototype int sys$clrcluevt (struct _cluevthndl *handle, unsigned int acmode, unsigned int event); 3 Arguments handle OpenVMS usage:identifier type: quadword (unsigned) access: read only mechanism: by reference Identification of the AST request to be canceled. The handle argument uniquely identifies the request and is returned when the $SETCLUEVT service is called. acmode OpenVMS usage:longword (unsigned) type: read only access: by value mechanism: 0 Access mode of the cluster configuration event to be canceled. The acmode argument is a longword containing the access mode. Each access mode has a symbolic name. The $PSLDEF macro defines the following symbols for the four access types. Symbol Access Mode PSL$C_KERNEL Kernel PSL$C_EXEC Executive PSL$C_SUPER Supervisor PSL$C_USER User event OpenVMS usage:event_code type: longword (unsigned) access: read only mechanism: by value Event code indicating the type of cluster configuration event for which an AST is no longer to be delivered. The event argument is a value indicating which type of event is no longer of interest. 2 $CLREF Clears (sets to 0) an event flag in a local or common event flag cluster. Format SYS$CLREF efn C Prototype int sys$clref (unsigned int efn); 3 Argument efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be cleared. The efn argument is a longword containing this number; however, $CLREF uses only the low-order byte. 2 $CMEXEC Changes the access mode of the calling process to executive mode. Format SYS$CMEXEC routin ,[arglst] C Prototype int sys$cmexec (int (*routin)(__unknown_params), unsigned int *arglst); 3 Arguments routin OpenVMS usage:procedure type: procedure value access: call without stack unwinding mechanism: by reference Routine to be executed while the process is in executive mode. The routin argument is the address of this routine. arglst OpenVMS usage:arg_list type: longword (unsigned) access: read only mechanism: by reference Argument list to be passed to the routine specified by the routin argument. The arglst argument is the address of this argument list. Alpha systems require a pointer to a valid argument list or a value of 0 in the arglst argument. This means that the arglst argument must contain an accessible virtual address for an argument list, the first longword of which must be a valid list size. 2 $CMEXEC_64_(Alpha_Only) On Alpha systems, changes the access mode of the calling process to executive mode. This service accepts 64-bit addresses. Format SYS$CMEXEC_64 routin_64 ,arglst_64 C Prototype int sys$cmexec_64 (int (*routin_64)(__unknown_params), unsigned __int64 *arglst_64); 3 Arguments routin_64 OpenVMS usage:procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference Routine to be executed while the process is in executive mode. The routin_64 argument is the 32- or 64-bit address of this routine. arglst_64 OpenVMS usage:arg_list type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Argument list to be passed to the routine specified by the routin_64 argument. The arglst_64 argument is the 32- or 64-bit address of this argument list. Alpha systems require a pointer to a valid argument list or a value of 0 in the arglst_64 argument. This means that the arglst_ 64 argument, if non-zero, must contain an accessible virtual address for an argument list, the first quadword of which must be a number between 0 and 255 specifying the number of quadwords that follow it on the list. 2 $CMKRNL Changes the access mode of the calling process to kernel mode. This service allows a process to change its access mode to kernel, execute a specified routine, and then return to the access mode in effect before the call was issued. Format SYS$CMKRNL routin ,[arglst] C Prototype int sys$cmkrnl (int (*routin)(__unknown_params), unsigned int *arglst); 3 Arguments routin OpenVMS usage:procedure type: procedure value access: call without stack unwinding mechanism: by reference Routine to be executed while the process is in kernel mode. The routin argument is the address of this routine. arglst OpenVMS usage:arg_list type: longword (unsigned) access: read only mechanism: by reference Argument list to be passed to the routine specified by the routin argument. The arglst argument is the address of this argument list. Alpha systems require a pointer to a valid argument list or a value of 0 in the arglst argument. This means that the arglst argument must contain an accessible virtual address for an argument list, the first longword of which must be a valid list size. 2 $CMKRNL_64_(Alpha_Only) On Alpha systems, changes the access mode of the calling process to kernel mode. This service allows a process to change its access mode to kernel, execute a specified routine, and then return to the access mode in effect before the call was issued. This service accepts 64-bit addresses. Format SYS$CMKRNL_64 routin_64 ,arglst_64 C Prototype int sys$cmkrnl_64 (int (*routin_64)(__unknown_params), unsigned __int64 *arglst_64); 3 Arguments routin_64 OpenVMS usage:procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference Routine to be executed while the process is in kernel mode. The routin_64 argument is the 32- or 64-bit address of this routine. arglst_64 OpenVMS usage:arg_list type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Quadword argument list to be passed to the routine specified by the routin_64 argument. The routin_64 argument is the 32- or 64-bit address of this routine. Alpha systems require a pointer to a valid argument list or a value of 0 in the arglst_64 argument. This means that the arglst_ 64 argument, if non-zero, must contain an accessible virtual address for an argument list, the first quadword of which must be a number between 0 and 255 specifying the number of quadwords that follow it on the list. 2 $CPU_CAPABILITIES_(Alpha_Only) On Alpha systems, allows modification of the user capability set for a specified CPU, or for the global user capability CPU default. This service accepts 64-bit addresses. Format SYS$CPU_CAPABILITIES cpu_id [,select_mask] [,modify_mask] [,prev_mask] [,flags] C Prototype int sys$cpu_capabilities (int cpu_id, struct _generic_64 *select_mask, struct _generic_64 *modify_mask, struct _generic_64 *prev_mask, struct _generic_64 *flags); 3 Arguments cpu_id OpenVMS usage:longword type: longword (unsigned) access: read only mechanism: by value Identifier of the CPU whose user capability mask is to be modified or returned. The cpu_id argument is a longword containing this number, which is in the supported range of individual CPUs from 0 to SYI$_MAX_CPUS -1. Specifying the constant CAP$K_ALL_ACTIVE_CPUS applies the current modification operation to all CPUs currently in the active set, and to the default CPU initialization context in SCH$GL_DEFAULT_ CPU_CAP. If the prev_mask argument is also supplied, the previous default CPU initialization context in SCH$GL_DEFAULT_CPU_CAP will be returned rather than any specific CPU state. To modify only the user capabilities in SCH$GL_DEFAULT_CPU_CAP, the flags argument has a bit constant CAP$M_FLAG_DEFAULT_ONLY. When this bit is set, all service operations are performed on the global cell rather than on an individual CPU specified in the cpu_id argument. This bit does not supersede the CAP$K_ ALL_ACTIVE_CPUS constant, however. If both constants are specified, CAP$K_ALL_ACTIVE_CPUS take precedence; nevertheless, the operations to SCH$GL_DEFAULT_CPU are identical because that function is a direct subset of the other. select_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Mask specifying which bits of the specified CPUs user capability mask are to be modified. The select_mask argument is the 32- or 64-bit address of a quadword bit vector wherein a bit, when set, specifies that the corresponding user capability is to be modified. The individual user capability bits in select_mask can be referenced by their symbolic constant names, CAP$M_USER1 through CAP$M_USER16. These constants (not zero-relative) specify the position in the mask quadword that corresponds to the bit name. Multiple capabilities can be selected by ORing together the appropriate bits. The constant CAP$K_ALL_USER, when specified in the select_mask argument, selects all user capability bits. modify_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Mask specifying the settings for those capabilities selected in the select_mask argument. The modify_mask argument is the 32- or 64-bit address of a quadword bit vector wherein a bit, when set, specifies that the corresponding user capability is to be added to the specified CPU; when clear, the corresponding user capability is to be removed from the specified CPU. The bit constants CAP$M_USER1 through CAP$M_USER16 can be used to modify the appropriate bit position in modify_mask. Multiple capabilities can be modified by ORing together the appropriate bits. To add a specific user capability to the specified CPU, that bit position must be set in both select_mask and modify_mask. To remove a specific user capability from the specified CPU, that bit position must be set in select_mask and clear in modify_mask. The symbolic constant CAP$K_ALL_USER_ADD, when specified in modify_mask, indicates that all capabilities specified in select_ mask are to be added to the current user capability set. The constant CAP$K_ALL_USER_REMOVE indicates that all capabilities specified are to be cleared from the set. prev_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference Previous user capability mask for the specified CPU before execution of this call to $CPU_CAPABILITIES. The prev_mask argument is the 32- or 64-bit address of a quadword into which $CPU_CAPABILITIES writes a quadword bit mask specifying the previous user capabilities. If this argument is specified in conjunction with CAP$K_ALL_ ACTIVE_CPUS as the cpu_id selection constant or with CAP$M_ FLAG_DEFAULT_ONLY, the user capability portion of the default boot initialization state context SCH$GL_DEFAULT_CPU_CAP will be returned. flags OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Options selected for the user capability modification. The flags argument is a quadword bit vector wherein a bit corresponds to an option. Only the bits specified below are used; the remainder of the quadword bits are reserved and must be 0. Each option (bit) has a symbolic name, defined by the $CAPDEF macro. The flags argument is constructed by performing a logical OR operation using the symbolic names of each desired option. 2 $CREATE_BUFOBJ_64_(Alpha_Only) On Alpha systems, creates a buffer object out of a range of pages. This service accepts 64-bit addresses. Format SYS$CREATE_BUFOBJ_64 start_va_64 ,length_64 ,acmode ,flags ,return_va_64 ,return_length_64 ,buffer_handle_64 C Prototype int sys$create_bufobj_64 (void *start_va_64, unsigned __int64 length_64, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64, struct _generic_64 *buffer_handle_64); 3 Arguments start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value Starting virtual address of the pages to be included in the buffer object. The specified virtual address will be rounded down to a CPU-specific page boundary. The virtual address space must already exist. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space to be included in the buffer object. The specified length will be rounded up to a CPU-specific page boundary such that it includes all CPU-specific pages in the requested range. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode on behalf of which the request is being made. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. For the $CREATE_BUFOBJ_64 service to complete successfully, the resultant access mode must be equal to or more privileged than the access mode already associated with the pages in the specified input range. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the request options. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $CBODEF macro in STARLET.MLB and CBODEF.H file in SYS$STARLET_ C.TLB define a symbolic name for each flag. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the pages in the buffer object. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the virtual address range in the buffer object. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range in bytes. buffer_handle_64 OpenVMS usage:handle type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned quadword into which a buffer handle is returned to be used when referencing the created buffer object. 2 $CREATE_GDZRO_(Alpha_Only) On Alpha systems, creates a permanent memory-resident global demand zero section to which processes can map. This service accepts 64-bit addresses. Format SYS$CREATE_GDZRO gs_name_64 ,ident_64 ,prot ,length_64 ,acmode ,flags [,reserved_length_64] C Prototype int sys$create_gpfile (void *gs_name_64, struct _SECID *ident_64, unsigned int prot, unsigned __int64 length_64, unsigned int acmode, unsigned int flags,...); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name_64 argument is the 32- or 64-bit virtual address of a naturally aligned 32- or 64-bit string descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of the global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. The first longword specifies the matching criteria in its low- order 2 bits. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. The version number is in the second longword. The version number contains two fields: a minor identification in the low-order 24 bits and a major identification in the high-order 8 bits. You can assign values for these fields by installation convention to differentiate versions of global sections. If no version number is specified when a section is created, processes that specify a version number when mapping cannot access the global section. prot OpenVMS usage:file_protection type: longword (unsigned) access: read only mechanism: by value Protection to be applied to the global demand-zero section. The mask contains four 4-bit fields. Bits are read from right to left in each field. Cleared bits indicate that read, write, execute, and delete access, in that order, are granted to the particular category of user. Only read, write, and execute access are meaningful for section protection. Delete access bits are ignored. Read access also grants execute access for those situations where execute access applies. If 0 is specified, read access and write access are granted to all users. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length, in bytes, of the global demand-zero section to be created. The length_64 argument must be specified as a multiple of the CPU-specific page size. A length of 0 cannot be specified. NOTE Creating a memory-resident global section with shared page tables does not imply that the global section must have a length that is an even multiple of CPU-specific page- table pages. The global section might not fully use the last shared page-table page. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. If the memory resident global section is created with shared page tables, this is the access mode that is stored in the owner, read, and write fields of the corresponding shared page-table entries (PTEs). The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the type of global section to be created as well as its characteristics. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set. reserved_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: 32- or 64-bit reference Length, in bytes, of the global section as currently registered in the Reserved Memory Registry. The reserved_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the reserved length. If reserved_length_64 is not specified or is specified as 0, no reserved length is returned to the caller. If the memory-resident global section is not registered, reserved_length_64 is written with the value 0. 2 $CREATE_GFILE_(Alpha_Only) On Alpha systems, creates a permanent global disk file section to which processes can map. This service accepts 64-bit addresses. Format SYS$CREATE_GFILE gs_name_64 ,ident_64 ,file_offset_64 ,length_64 ,chan ,acmode ,flags ,return_length_64 [,fault_cluster] C Prototype int sys$create_gfile (void *gs_nam_64, struct _secid *ident_64, unsigned __int64 file_offset_64, unsigned __int64 length_64, unsigned short int chan, unsigned int acmode, unsigned int flags, unsigned __int64 *return_length_64, __optional_params); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name_64 argument is the 64- bit virtual address of a naturally aligned 32- or 64-bit string descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of a global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. file_offset_64 OpenVMS usage:byte offset type: quadword (unsigned) access: read only mechanism: by value Byte offset into the file that marks the beginning of the section. The file_offset_64 argument is a quadword containing this number. If you do not specify the file_offset_64 argument or specify it as 0, the section is created beginning with the first byte in the file. The file_offset_64 argument must be a multiple of virtual disk blocks. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length, in bytes, of the global disk file section to be created. The length specified must be 0 or a multiple of virtual disk blocks. If the length specified is 0 or extends beyond end-of- file (EOF), the global disk file section is created up to and including the virtual block number that contains EOF. chan OpenVMS usage:longword type: longword (unsigned) access: read only mechanism: by value Number of the channel on which the file has been accessed. The chan argument is a longword containing this number. The access mode at which the channel was opened must be equal to or less privileged than the access mode of the caller. You can use the OpenVMS Record Management Services (RMS) macro $OPEN to access a file; the file options parameter in the file access block must indicate a user file open (UFO keyword). acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the type of global section to be created as well as its characteristics. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an illegal combination of flags is set. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the global section created. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the global section in bytes. fault_cluster OpenVMS usage:byte count type: longword (unsigned) access: read only mechanism: by value Page fault cluster in byte units indicating how many pages are to be brought into memory when a page fault occurs for a single page. The fault cluster specified is rounded up to a multiple of CPU-specific pages. If this argument is specified as 0, the system default page fault cluster is used. If this argument is specified as more than the maximum allowed for the system, no error is returned. The systemwide maximum is used. 2 $CREATE_GPFILE_(Alpha_Only) On Alpha systems, creates a permanent global page file section to which processes can map. This service accepts 64-bit addresses. Format SYS$CREATE_GPFILE gs_name_64 ,ident_64 ,prot ,length_64 ,acmode ,flags C Prototype int sys$create_gpfile (void *gs_name_64, struct _secid *ident_64, unsigned int prot, unsigned __int64 length_64, unsigned int acmode, unsigned int flags); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name_64 argument is the 32- or 64-bit virtual address of a naturally aligned 32- or 64-bit string descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of a global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. The first longword specifies the matching criteria in its low- order 2 bits. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. The version number is in the second longword. The version number contains two fields: a minor identification in the low-order 24 bits and a major identification in the high-order 8 bits. You can assign values for these fields by installation convention to differentiate versions of global sections. If no version number is specified when a section is created, processes that specify a version number when mapping cannot access the global section. prot OpenVMS usage:file_protection type: longword (unsigned) access: read only mechanism: by value Protection to be applied to the global page file section. The mask contains four 4-bit fields. Bits are read from right to left in each field. Cleared bits indicate that read, write, execute, and delete access, in that order, are granted to the particular category of user. Only read, write, and execute access are meaningful for section protection. Delete access bits are ignored. Read access also grants execute access for those situations where execute access applies. If 0 is specified, read access and write access are granted to all users. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length, in bytes, of the global page file section to be created. The length_64 argument must be specified as a multiple of the CPU-specific page size. A length of 0 cannot be specified. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the type of global section to be created as well as its characteristics. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set. 2 $CREATE_GPFN_(Alpha_Only) On Alpha Systems, creates a permanent page frame section to which processes can map. This service accepts 64-bit addresses. Format SYS$CREATE_GPFN gs_name_64 ,ident_64 ,prot ,start_pfn ,page_count ,acmode ,flags C Prototype int sys$create_gpfn (void *gs_name_64, struct _secid *ident_64, unsigned int prot, unsigned int start_pfn, unsigned int page_count, unsigned int acmode, unsigned int flags); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name_64 argument is the 32- or 64-bit virtual address of a naturally aligned 32- or 64-bit string descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of a global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. The first longword specifies the matching criteria in its low- order two bits. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. The version number is in the second longword. The version number contains two fields: a minor identification in the low-order 24 bits and a major identification in the high-order 8 bits. You can assign values for these fields by installation convention to differentiate versions of global sections. If no version number is specified when a section is created, processes that specify a version number when mapping cannot access the global section. prot OpenVMS usage:file_protection type: longword (unsigned) access: read only mechanism: by value Protection to be applied to the global page frame section. The mask contains four 4-bit fields. Bits are read from right to left in each field. Cleared bits indicate that read, write, execute, and delete access, in that order, are granted to the particular category of user. Only read, write, and execute access are meaningful for section protection. Delete access bits are ignored. Read access also grants execute access for those situations where execute access applies. If zero is specified, read access and write access are granted to all users. start_pfn OpenVMS usage:page frame number type: longword (unsigned) access: read only mechanism: by value The CPU-specific page frame number where the section begins in memory. page_count OpenVMS usage:CPU-specific page count type: longword (unsigned) access: read only mechanism: by value Length of the page frame section in CPU-specific pages. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the characteristics of the page frame section to be created. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an illegal combination of flags is set. 2 $CREATE_RDB Initializes a rights database. Format SYS$CREATE_RDB [sysid] C Prototype int sys$create_rdb (struct _generic_64 *sysid); 3 Argument sysid OpenVMS usage:system_access_id type: quadword (unsigned) access: read only mechanism: by reference System identification value associated with the rights database when $CREATE_RDB completes execution. The sysid argument is the address of a quadword containing the system identification value. If you omit sysid, the current system time in 64-bit format is used. 2 $CREATE_REGION_64_(Alpha_Only) On Alpha systems, creates a virtual region within the process's private address space. This service accepts 64-bit addresses. Format SYS$CREATE_REGION_64 length_64 ,region_prot ,flags ,return_region_id_64 ,return_va_64 ,return_length_64 [,start_va_64] C Prototype int sys$create_region_64 ( unsigned __int64 length_64, unsigned int region_prot, unsigned int flags, struct _generic_64 *return_region_id, void *(*(return_va_64)), unsigned __int64 *return_length_64,...); 3 Arguments length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual region to be created. The length specified must be a multiple of CPU-specific pages. This length is fixed at the time the region is created. If the flag VA$M_SHARED_PTS is set, this length is rounded up to include an even multiple of CPU-specific pages maped by a page-table page. region_prot OpenVMS usage:region_protection type: longword (unsigned) access: read only mechanism: by value Region protection to be associated with the region to be created. The region_prot argument is a longword containing the create and owner mode. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define the symbols for valid combinations of create and owner modes. For both create and owner mode, the $CREATE_REGION_64 service uses whichever of the following two access modes is least privileged: o The access mode specified by the acmode argument. o The access mode of the caller. A subsequent call to any system service that created address space within a region must be made from an access mode that is the same or more privileged than the create mode associated with the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the characteristics of the region to be created. The flags argument is a longword bit vector in which each bit corresponds to a flag. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital. The condition value SS$_IVREGFLG is returned if any undefined bits are set. return_region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The region ID associated with the created region. The return_region_id_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the region ID. return_va_64 OpenVMS usage:return address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the region. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the lowest virtual address of the region. If the flag VA$M_SHARED_PTS is set, the returned virtual address is aligned to a CPU-specific page-table page boundary. If the global section mapped by this shared page table region is large enough that multiple page-table pages are required to map the global section, the page tables themselves can be mapped with granularity hints. Therefore, the alignment of the returned virtual address can be even greater than that of a single CPU- specific page-table page boundary. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the region actually created. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the region in bytes. If the flag VA$M_SHARED_PTS is set, the returned length is the input length rounded up to an even multiple of bytes mapped by a single CPU-specific page-table page. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting address for the created virtual region. The specified virtual address must be a CPU-specific page-aligned address. If the start_va_64 argument is not specified or is specified as 0, the region can be created anywhere within the following address spaces: o P2 space (if the flags VA$M_P0_SPACE and VA$M_P1_SPACE are clear) o P0 space (if the flag VA$M_P0_SPACE is set and VA$M_P1_SPACE is clear) o P1 space (if the flag VA$M_P1_SPACE is set and VA$M_P0_SPACE is clear) If the flag VA$M_SHARED_PTS is set and this argument is specified, the specified starting address must be aligned to a natural page table page boundary or an error is returned. 2 $CREATE_USER_PROFILE Returns an encoded security profile for the specified user. Format SYS$CREATE_USER_PROFILE usrnam ,[itmlst] ,[flags] ,usrpro ,usrprolen ,[contxt] C Prototype int sys$create_user_profile (void *usrnam, void *itmlst, unsigned int flags, void *usrpro, unsigned int *usrprolen, unsigned int *contxt); 3 Arguments usrnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor Name of the user whose security profile is to be returned. The usrnam argument is the address of a descriptor pointing to a text string containing the user name. The user name string can contain a maximum of 12 alphanumeric characters. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying the portions of the user's security profile to be replaced or augmented. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value The flags argument is used for controlling the behavior of the $CREATE_USER_PROFILE service. usrpro OpenVMS usage:char_string type: opaque byte stream access: write only mechanism: by descriptor Buffer to receive the security profile. The usrpro argument is the address of a buffer to receive the encoded security profile. If an address of 0 is specified, $CREATE_USER_PROFILE returns the size of the buffer needed in the usrprolen argument. usrprolen OpenVMS usage:word type: word (unsigned) access: read/write mechanism: by reference Word to receive the full size of the security profile. On input, the usrprolen argument specifies the length of the buffer pointed to by the usrpro argument. The usrprolen argument is the address of a word to which $CREATE_USER_PROFILE writes the actual length of the security profile. If the caller specifies a usrpro address of 0, $CREATE_USER_PROFILE returns the anticipated size, in bytes, of the buffer needed to hold the user's security profile in the usrprolen argument. contxt OpenVMS usage:longword type: longword (unsigned) access: modify mechanism: by reference Longword used to maintain authorization file context. The contxt argument is the address of a longword to receive a $GETUAI context value. On the initial call, this longword should contain the value -1. On subsequent calls, the value of the contxt argument from the previous call should be passed back in. 2 $CRELNM Creates a logical name and specifies its equivalence names. On Alpha systems, this service accepts 64-bit addresses. Format SYS$CRELNM [attr] ,tabnam ,lognam ,[acmode] ,[itmlst] C Prototype int sys$crelnm (unsigned int *attr, void *tabnam, void *lognam, unsigned char *acmode, void *itmlst); 3 Arguments attr OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Attributes to be associated with the logical name. The attr argument is the 32-bit address (on VAX systems) or the 32- or 64- bit address (on Alpha systems) of a longword bit mask specifying these attributes. tabnam OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of the table in which to create the logical name. The tabnam argument is the 32-bit address (on VAX systems) or the 32- or 64- bit address (on Alpha systems of a descriptor that points to the name of this table. This argument is required. lognam OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of the logical name to be created. The lognam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a descriptor that points to the logical name string. Logical name strings of logical names created within either the system or process directory table must consist of alphanumeric characters, dollar signs ($), and underscores (_); the maximum length is 31 characters. The maximum length of logical name strings created within other tables is 255 characters with no restrictions on the types of characters that can be used. This argument is required. acmode OpenVMS usage:access_mode type: byte (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Access mode to be associated with the logical name. The acmode argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a byte that specifies the access mode. itmlst OpenVMS usage:32-bit item_list_3 or 64-bit item_list 64b type: longword (unsigned) for 32-bit; quadword (unsigned) for 64-bit access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Item list describing the equivalence names to be defined for the logical name and information to be returned to the caller. The itmlst argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a list of item descriptors, each of which specifies information about an equivalence name. An item list in 32-bit format is terminated by a longword of 0; an item list in 64-bit format is terminated by a quadword of 0. All items in an item list must be of the same format-either 32-bit or 64-bit. 2 $CRELNT Creates a process-private or shareable logical name table. On Alpha systems, this service accepts 64-bit addresses. Format SYS$CRELNT [attr] ,[resnam] ,[reslen] ,[quota] ,[promsk] ,[tabnam] ,partab ,[acmode] C Prototype int sys$crelnt (unsigned int *attr, void *resnam, unsigned short int *reslen, unsigned int *quota, unsigned short int *promsk, void *tabnam, void *partab, unsigned char *acmode); 3 Arguments attr OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Attributes to affect the creation of the logical name table and to be associated with the newly created logical name table. The attr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a longword bit mask specifying these attributes. resnam OpenVMS usage:logical_name type: character-coded text string access: write only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of the newly created logical name table, returned by $CRELNT. The resnam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a descriptor pointing to this name. The name is a character string whose maximum length is 31 characters. reslen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Length in bytes of the name of the newly created logical name table, returned by $CRELNT. The reslen argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a word to receive this length. quota OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Maximum number of bytes of memory to be allocated for logical names contained in this logical name table. The quota argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a longword specifying this value. promsk OpenVMS usage:file_protection type: word (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Protection mask to be associated with the newly created shareable logical name table. The promsk argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a word that contains a value that represents four 4-bit fields. Each field grants or denies the type of access, either delete, create, write, or read, allowed for system, owner, group, and world users. The following diagram depicts these protection bits. |------------|------------|------------|------------| | World | Group | Owner | System | |------------|------------|------------|------------| | D C W R | D C W R | D C W R | D C W R | |------------|------------|------------|------------| 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 tabnam OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor(VAX) The name of the new logical name table. The tabnam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a character-string descriptor pointing to this name string. Table names are contained in either the process or system directory table (LNM$PROCESS_DIRECTORY or LNM$SYSTEM_ DIRECTORY). Therefore, table names must consist of alphanumeric characters, dollar signs ($), and underscores (_); the maximum length is 31 characters. partab OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name string for the parent table name. The partab argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a character string descriptor pointing to this name string. If the parent table is shareable, then the newly created table is shareable and is entered into the system directory LNM$SYSTEM_DIRECTORY. If the parent table is process- private, then the newly created table is process-private and is entered in the process directory LNM$PROCESS_DIRECTORY. You need SYSPRV privilege or write access to the system directory to create a named shareable table. This argument is required. acmode OpenVMS usage:access_mode type: byte (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Access mode to be associated with the newly created logical name table. The acmode argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a byte containing this access mode. The $PSLDEF macro defines symbolic names for the four access modes. 2 $CREMBX Creates a virtual mailbox device named MBAn and assigns an I/O channel to it. The system provides the unit number n when it creates the mailbox. If a logical name is specified and a mailbox with the specified name already exists, the $CREMBX service assigns a channel to the existing mailbox. Format SYS$CREMBX [prmflg] ,chan ,[maxmsg] ,[bufquo] ,[promsk] ,[acmode] ,[lognam] ,[flags] ,[nullarg] C Prototype int sys$crembx (char prmflg, unsigned short int *chan, unsigned int maxmsg, unsigned int bufquo, unsigned int promsk, unsigned int acmode, void *lognam, __optional_params); 3 Arguments prmflg OpenVMS usage:boolean type: longword (unsigned) access: read only mechanism: by value Indicator specifying whether the created mailbox is to be permanent or temporary. The prmflg argument is a longword value. The value 1 specifies a permanent mailbox; the value 0, which is the default, specifies a temporary mailbox. Any other values result in an error. chan OpenVMS usage:channel type: word access: write only mechanism: by reference Channel number assigned by $CREMBX to the mailbox. The chan argument is the address of a word into which $CREMBX writes the channel number. maxmsg OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Maximum size (in bytes) of a message that can be sent to the mailbox. The maxmsg argument is a longword value containing this size. If you do not specify maxmsg or specify it as 0, the operating system provides a default value. bufquo OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Number of bytes of system dynamic memory that can be used to buffer messages sent to the mailbox. The bufquo argument is a word value containing this number. If you do not specify the bufquo argument or specify it as 0, the operating system provides a default value. promsk OpenVMS usage:file_protection type: longword (unsigned) access: read only mechanism: by value Protection mask to be associated with the created mailbox. The promsk argument is a longword value that is the combined value of the bits set in the protection mask. Cleared bits grant access and set bits deny access to each of the four classes of user: world, group, owner, and system. The following diagram depicts these protection bits. |------------|------------|------------|------------| | World | Group | Owner | System | |------------|------------|------------|------------| | L P W R | L P W R | L P W R | L P W R | |------------|------------|------------|------------| 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode to be associated with the channel to which the mailbox is assigned. The acmode argument is a longword containing the access mode. lognam OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Logical name to be assigned to the mailbox. The lognam argument is the address of a character string descriptor pointing to the logical name string. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value The flags argument is used for specifying options for the assign operation that occurs in $CREMBX. The flags argument is a longword bit mask that enables the user to specify that the channel assigned to the mailbox is a READ ONLY or WRITE ONLY channel. If the flags argument is not specified, then the default channel behavior is READ/WRITE. The $CMBDEF macro defines a symbolic name for each flag bit. nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholding argument reserved by Digital. 2 $CREPRC Creates, on behalf of the calling process, a subprocess or detached process on the current node, or a detached process on another OpenVMS Cluster node. Format SYS$CREPRC [pidadr] ,[image] ,[input] ,[output] ,[error] ,[prvadr] ,[quota] ,[prcnam] ,[baspri] ,[uic] ,[mbxunt] ,[stsflg] ,[itmlst] ,[node] C Prototype int sys$creprc (unsigned int *pidadr, void *image, void *input, void *output, void *error, struct _generic_64 *prvadr, unsigned int *quota, void *prcnam, unsigned int baspri, unsigned int uic, unsigned short int mbxunt, unsigned int stsflg, __optional_params); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: write only mechanism: by reference Process identification (PID) of the newly created process. The pidadr argument is the address of a longword into which $CREPRC writes the PID. image OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the image to be activated in the newly created process. The image argument is the address of a character string descriptor pointing to the file specification of the image. input OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Equivalence name to be associated with the logical name SYS$INPUT in the logical name table of the created process. The input argument is the address of a character string descriptor pointing to the equivalence name string. output OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Equivalence name to be associated with the logical name SYS$OUTPUT in the logical name table of the created process. The output argument is the address of a character string descriptor pointing to the equivalence name string. error OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Equivalence name to be associated with the logical name SYS$ERROR in the logical name table of the created process. The error argument is the address of a character string descriptor pointing to the equivalence name string. prvadr OpenVMS usage:mask_privileges type: quadword (unsigned) access: read only mechanism: by reference Privileges to be given to the created process. The prvadr argument is the address of a quadword bit vector wherein each bit corresponds to a privilege; setting a bit gives the privilege. If the prvadr argument is not specified, the current privileges are used. quota OpenVMS usage:item_quota_list type: longword (unsigned) access: read only mechanism: by reference Process quotas to be established for the created process. These quotas limit the created process's use of system resources. The quota argument is the address of a list of quota descriptors, where each quota descriptor consists of a 1-byte quota name followed by a longword that specifies the desired value for that quota. The list of quota descriptors is terminated by the symbolic name PQL$_LISTEND. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Process name to be assigned to the created process. The prcnam argument is the address of a character string descriptor pointing to a process name string. baspri OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Base priority to be assigned to the created process. The baspri argument is a longword value. The OpenVMS VAX range is 0 to 31, where 31 is the highest priority and 0 is the lowest. Usual priorities are in the range 0 to 15, and real-time priorities are in the range 16 to 31. The OpenVMS Alpha range is 0 to 63, with real-time priorities in the range 32 to 63. uic OpenVMS usage:uic type: longword (unsigned) access: read only mechanism: by value User identification code (UIC) to be assigned to the created process. The uic argument is a longword value containing the UIC. mbxunt OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by value Unit number of a mailbox to receive a termination message when the created process is deleted. The mbxunt argument is a word containing this number. stsflg OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Options selected for the created process. The stsflg argument is a longword bit vector wherein a bit corresponds to an option. Only bits 0 to 18 are used; the others are reserved and must be 0. itmlst OpenVMS usage:reserved type: longword (unsigned) access: mechanism: 0 The itmlst argument is reserved by Digital. node OpenVMS usage:SCS_nodename type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the OpenVMS Cluster node on which the process is to be created. The node argument is the address of a character string descriptor pointing to a 1- to 6-character SCS node name string. If the argument is present but zero or if the string is zero length, the process is created on the current node. 2 $CRETVA Adds a range of demand-zero allocation pages (on VAX systems) or pagelets (on Alpha systems) to a process's virtual address space for the execution of the current image. Format SYS$CRETVA inadr ,[retadr] ,[acmode] C Prototype int sys$cretva (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Address of a 2-longword array containing the starting and ending virtual addresses of the pages to be created. If the starting and ending virtual addresses are the same, a single page is created. The addresses are adjusted up or down to fall on CPU-specific page boundaries. Only the virtual page number portion of the virtual address is used; the low order byte-within-page bits are ignored. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference-array reference or descriptor Address of a 2-longword array to receive the starting and ending virtual addresses of the pages created. On Alpha systems, the retadr argument should be checked by programs for actual allocation. Because the Alpha architecture defines more than one page size, more space might be created than was specified in the retadr argument. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode and protection for the new pages. The acmode argument is a longword containing the access mode. 2 $CRETVA_64_(Alpha_Only) On Alpha systems, adds a range of demand-zero allocation pages to a process's virtual address space for the execution of the current image. The new pages are added at the virtual address specified by the caller. This service accepts 64-bit addresses. Format SYS$CRETVA_64 region_id_64 ,start_va_64 ,length_64 ,acmode ,flags ,return_va_64 ,return_length_64 C Prototype int sys$cretva_64 (struct _generic_64 *region_id_64, void *start_va_64, unsigned __int64 length_64, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64); 3 Arguments region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region to create the virtual address range. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. Also, given a particular virtual address, the region ID for the region it is in can be obtained by calling the $GET_REGION_INFO system service specifying the VA$_REGSUM_BY_VA function. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting address for the created virtual address range. The specified virtual address must be a CPU-specific page-aligned address. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space to be created. The length specified must be a multiple of CPU-specific pages. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode associated with the call to $CRETVA_64. The access mode determines the owner mode of the pages as well as the read and write protection on the pages. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The $CRETVA_64 service uses whichever of the following access modes is least privileged: o The access mode specified by the acmode argument. o The access mode of the caller. The protection of the pages is read/write for the resultant access mode and those more privileged. Address space cannot be created within a region that has a create mode associated with it that is more privileged than the caller's mode. The condition value SS$_IVACMODE is returned if the caller is less privileged than the create mode for the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask controlling the characteristics of the demand-zero pages created. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $VADEF macro and the VADEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVVAFLG is returned if any undefined bits are set. return_va_64 OpenVMS usage:address type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the created virtual address range. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the virtual address range created. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range in bytes. 2 $CRMPSC Allows a process to associate (map) a section of its address space with (1) a specified section of a file (a disk file section) or (2) specified physical addresses represented by page frame numbers (a page frame section). This service also allows the process to create either type of section and to specify that the section be available only to the creating process (private section) or to all processes that map to it (global section). Format SYS$CRMPSC [inadr] ,[retadr] ,[acmode] ,[flags] ,[gsdnam] ,[ident] ,[relpag] ,[chan] ,[pagcnt] ,[vbn] ,[prot] ,[pfc] C Prototype int sys$crmpsc (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode, unsigned int flags, void *gsdnam, struct _secid *ident, unsigned int relpag, unsigned short int chan, unsigned int pagcnt,unsigned int vbn, unsigned int prot, unsigned int pfc); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Starting and ending virtual addresses into which the section is to be mapped. The inadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. Only the virtual page number portion of each virtual address is used to specify which pages are to be mapped; the low-order byte-within-page bits are ignored for this purpose. The interpretation of the inadr argument depends on the setting of SEC$M_EXPREG in the inadr argument and whether you are using an Alpha or a VAX system. See the OpenVMS System Services Reference Manual for a complete description of these differences. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference-array reference Starting and ending process virtual addresses into which the section was actually mapped by $CRMPSC. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the type of section to be created or mapped to, as well as its characteristics. The flags argument is a longword bit vector wherein each bit corresponds to a flag. The $SECDEF macro defines a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. gsdnam OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the global section. The gsdnam argument is the address of a character string descriptor pointing to this name string. ident OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by reference Identification value specifying the version number of a global section and, for processes mapping to an existing global section, the criteria for matching the identification. The ident argument is the address of a quadword structure containing three fields. relpag OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Relative page number within the global section of the first page in the section to be mapped. The relpag argument is a longword containing this page number. On Alpha systems, the relpag argument is interpreted as an index into the section file, measured in pagelets for a file-backed section or in CPU-specific pages for a PFN-mapped section. chan OpenVMS usage:channel type: word (unsigned) access: read only mechanism: by value Number of the channel on which the file has been accessed. The chan argument is a word containing this number. pagcnt OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Number of pages (on VAX systems) or pagelets (on Alpha systems) in the section. The pagcnt argument is a longword containing this number. On Alpha systems, if the SEC$M_PFNMAP flag bit is set, the pagcnt argument is interpreted as CPU-specific pages, not as pagelets. vbn OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Virtual block number in the file that marks the beginning of the section. The vbn argument is a longword containing this number. If you do not specify the vbn argument or specify it as 0 (the default), the section is created beginning with the first virtual block in the file. prot OpenVMS usage:file_protection type: longword (unsigned) access: read only mechanism: by value Protection to be applied to the global page-file and page-frame- number (PFN) sections. For file-backed sections, the protection is taken from the backing file and the prot argument is ignored. pfc OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Page fault cluster size indicating how many pages (on VAX systems) or pagelets (on Alpha systems) are to be brought into memory when a page fault occurs for a single page. On Alpha systems, this argument is not used for page-file sections or physical page frame sections. The pfc argument is rounded up to CPU-specific pages. That is, at least 16 pagelets (on an Alpha system with an 8KB page size) will be mapped for each physical page. The system cannot map less than one physical page. On VAX systems, this argument is not used for page-file sections or physical page frame sections. 2 $CRMPSC_GDZRO_64_(Alpha_Only) On Alpha systems, allows a process to create a memory-resident global demand-zero section and to map a section of its address space to the global section. This service accepts 64-bit addresses. Format SYS$CRMPSC_GPFILE_64 gs_name_64 ,ident_64 ,prot ,length_64 ,region_id_64 ,section_offset_64 ,acmode ,flags ,return_va_64 ,return_length_64 [,start_va_64 [,map_length_64] [reserved_length_64]] C Prototype int sys$crmpsc_gpfile_64 (void *gs_nam_64, struct _SECID *ident_64, unsigned int prot, unsigned __int64 length_64, struct _GENERIC_64 *region_id_64, unsigned __int64 section_offset_64, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64,...); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name_64 argument is the 32- or 64-bit virtual address of a naturally aligned 32- or 64-bit string descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of a global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. The first longword specifies the matching criteria in its low- order 2 bits. When a section is mapped at creation time, the match control field is ignored. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. The version number is in the second longword. The version number contains two fields: a minor identification in the low-order 24 bits and a major identification in the high-order 8 bits. You can assign values for these fields by installation convention to differentiate versions of global sections. If no version number is specified when a section is created, processes that specify a version number when mapping cannot access the global section. prot OpenVMS usage:file_protection type: longword (unsigned) access: read only mechanism: by value Protection to be applied to the global demand-zero section. The mask contains four 4-bit fields. Bits are read from right to left in each field. Cleared bits indicate that read, write, execute, and delete access, in that order, are granted to the particular category of user. Only read, write, and execute access are meaningful for section protection. Delete access bits are ignored. Read access also grants execute access for those situations where execute access applies. If zero is specified, read access and write access are granted to all users. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length, in bytes, of the global demand-zero section to be created. The length_64 must be specified as a multiple of the CPU-specific page size. A length of 0 cannot be specified. NOTE Creating a memory-resident global section with shared page table does not imply that the global section must have an even multiple of CPU-specific page-table pages. The global section might not fully use the last page-table page. region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region to map the global page file section. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. section_offset_64 OpenVMS usage:byte offset type: quadword (unsigned) access: read only mechanism: by value Offset into the global section to start mapping into the process's virtual address space. The offset specified must be a multiple of CPU-specific page size. If a shared page-table region is specified by the region_id_ 64 argument, section_offset_64 must be an even multiple of the number of bytes that can be mapped by a CPU-specific page-table page. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. This access mode is also the read access mode and the write access mode. The acmode argument is a longword containing the access mode. If the memory-resident global section is created with shared page tables, this is the access mode that is stored in the owner, read, and write fields of the corresponding shared page-table entries (PTEs). The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. The calling process can delete pages only if those pages are owned by an access mode equal to or less privileged than the access mode of the calling process. Address space cannot be created within a region that has a create mode associated with it that is more privileged than the caller's mode. The condition value SS$_IVACMODE is returned if the caller is less privileged than the create mode for the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the type of the global section to be created as well as its characteristics. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an invalid combination of flags is set. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address into which the global page file section was mapped. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. If a share page-table region is specified by the region_id_64 argument and the SEC$M_EXPREG flag is set, the returned virtual address is aligned to a CPU-specific page-table page boundary. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range mapped in bytes. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address to map the memory-resident global section. The specified virtual address must be a CPU-specific page-aligned address. If the flag SEC$M_EXPREG is specified, the start_va_64 argument must not be specified or must be specified as 0. If SEC$M_EXPREG is set and the start_va_64 argument is non-zero, the condition value SS$_IVSECFLG is returned. If /ALLOCATE was specified when the memory-resident global section was registered in the Reserved Memory Registry, and start_va_64 is aligned to a multiple of CPU-specific pages appropriate for taking advantage of granularity hints (8 pages, 64 pages or 512 pages), granularity hints are used to map to the global section. map_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the memory-resident global section to be mapped. The length specified must be a multiple of CPU-specific pages. If this argument is not specified or is specified as zero, the global file section is mapped up to and including the last page in that section. If a shared page table region is specified by the region_id_64 argument, map_length_64 must be an even multiple of the number of bytes that can be mapped by a CPU-specific page table page or must include the last page within the global section. reserved_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: 32- or 64-bit reference Length, in bytes, of the global section as currently registered in the Reserved Memory Registry. The reserved_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the reserved length. If reserved_length_64 is not specified or is specified as 0, no reserved length is returned to the caller. If the memory-resident global section is not registered, reserved_length_64 is written with the value 0. 2 $CRMPSC_FILE_64_(Alpha_Only) On Alpha systems, allows a process to map a section of its address space to a specified portion of a file. This service creates and maps a private disk file section. This service accepts 64-bit addresses. Format SYS$CRMPSC_FILE_64 region_id_64 ,file_offset_64 ,length_64 ,chan ,acmode ,flags ,return_va_64 ,return_length_64 [,fault_cluster [,start_va_64]] C Prototype int sys$crmpsc_file_64 (struct _generic_64 *region_id_64, unsigned __int64 file_offset_64, unsigned __int64 length_64, unsigned short int chan, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64, __optional_params); 3 Arguments region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region to map the private disk file section. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. file_offset_64 OpenVMS usage:byte offset type: quadword (unsigned) access: read only mechanism: by value Byte offset into the file that marks the beginning of the section. The file_offset_64 argument is a quadword containing this number. If you specify the file_offset_64 argument as 0, the section is created beginning with the first byte in the file. The file_offset_64 argument must be a multiple of virtual disk blocks. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: value Length, in bytes, of the private disk file section to be created and mapped to. The length specified must be 0 or a multiple of virtual disk blocks. If the length specified is 0 or extends beyond end-of-file (EOF), the disk file is mapped up to and including the virtual block number that contains EOF. chan OpenVMS usage:longword type: longword (unsigned) access: read only mechanism: by value Number of the channel on which the file has been accessed. The chan argument is a longword containing this number. The access mode at which the channel was opened must be equal to or less privileged than the access mode of the caller. Use the OpenVMS Record Management Services (RMS) macro $OPEN to access a file; the file options parameter in the file access block must indicate a user file open (UFO) keyword. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. The calling process can delete pages only if those pages are owned by an access mode equal to or less privileged than the access mode of the calling process. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the characteristics of the private section to be created. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an illegal combination of flags is set. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address into which the private disk file section was mapped. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference. The 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the usable virtual address range mapped in bytes. This length might differ from the total amount mapped. If the section being mapped does not completely fill the last page used to map the section, the return_va_64 and return_length_64 arguments indicate the highest address that actually maps the section. fault_cluster OpenVMS usage:byte count type: longword (unsigned) access: read only mechanism: by value Page fault cluster in byte units indicating how many pages are to be brought into memory when a page fault occurs for a single page. The fault cluster specified will be rounded up to a multiple of CPU-specific pages. If this argument is specified as 0, the process default page fault cluster will be used. If this argument is specified as more than the maximum allowed for the system, no condition value will be returned. The systemwide maximum will be used. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address to map the private disk file section. The specified virtual address must be a CPU-specific page-aligned address. If the flag SEC$M_EXPREG is specified, the start_va_64 argument must not be specified or must be specified as 0. If SEC$M_EXPREG is set and the start_va_64 argument is non-zero, the condition value SS$_IVSECFLG is returned. 2 $CRMPSC_GFILE_64_(Alpha_Only) On Alpha systems, allows a process to create a global disk file section and to map a section of its address space to the global section. This service accepts 64-bit addresses. Format SYS$CRMPSC_GFILE_64 gs_name_64 ,ident_64 ,file_offset_64 ,length_64 ,chan ,region_id_64 ,section_offset_64 ,acmode ,flags ,return_va_64 ,return_length_64 [,fault_cluster [,start_va_64 [,map_length_64]]] C Prototype int sys$crmpsc_gfile_64 (void *gs_nam_64, struct _secid *ident_64, unsigned __int64 file_offset_64, unsigned __int64 length_64, unsigned short int chan, struct _generic_64 *region_id_64, unsigned __int64 section_offset_64, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64, __optional_params); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name_64 argument is the 32- or 64-bit virtual address of a naturally aligned 32- or 64-bit string descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of a global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. The first longword specifies the matching criteria in its low- order 2 bits. When a section is mapped at creation time, the match control field is ignored. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. The version number is in the second longword. The version number contains two fields: a minor identification in the low-order 24 bits and a major identification in the high-order 8 bits. You can assign values for these fields by installation convention to differentiate versions of global sections. If no version number is specified when a section is created, processes that specify a version number when mapping cannot access the global section. file_offset_64 OpenVMS usage:byte offset type: quadword (unsigned) access: read only mechanism: by value Byte offset into the file that marks the beginning of the section. The file_offset_64 argument is a quadword containing this number. If you specify the file_offset_64 argument as 0, the section is created beginning with the first byte in the file. The file offset specified must be a multiple of virtual disk blocks. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length, in bytes, of the global disk file section to be created. The length specified must be 0 or a multiple of virtual disk blocks. If the length specified is 0 or extends beyond the end- of-file (EOF), the global disk file section is created up to and including the virtual block number that contains EOF. chan OpenVMS usage:longword type: longword (unsigned) access: read only mechanism: by value Number of the channel on which the file has been accessed. The chan argument is a longword containing this number. The access mode at which the channel was opened must be equal to or less privileged than the access mode of the caller. You can use the OpenVMS Record Management Services (RMS) macro $OPEN to access a file; the file options parameter in the file access block must indicate a user file open (UFO) keyword. region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 64 bit reference The region ID associated with the region in which to map the global disk file section. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. section_offset_64 OpenVMS usage:byte offset type: quadword (unsigned) access: read only mechanism: by value Offset into the global section to start mapping into the process's virtual address space. The offset specified must be a multiple of virtual disk blocks. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. Address space cannot be created within a region that has a create mode associated with it that is more privileged than the caller's mode. The condition value SS$_IVACMODE is returned if the caller is less privileged than the create mode for the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the characteristics of the global section to be created. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an illegal combination of flags is set. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address into which the global disk file section was mapped. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. Upon successful completion of this service, if the section_offset_64 argument was specified, the virtual address returned in return_va_64 reflects the offset into the global section mapped such that the virtual address returned cannot be aligned on a CPU-specific page boundary. The virtual address returned will always be on an even virtual disk block boundary. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range mapped in bytes. Upon successful completion of this service, the value in the return_length_64 argument indicates the amount of created address space backed by the section file. If the number of disk blocks mapped does not represent an exact multiple of CPU-specific pages, the last page in the mapped address space will not be completely mapped by the section file. In this case, modifying memory beyond the amount indicated by return_length_64 can result in the loss of this data. Unlike the return_length_64 argument for the $CREATE_GFILE service, upon successful completion of this service, the return_length_64 argument does not represent the total length of the global section created if the section_offset_64 argument was specified as non-zero. The value in the section_offset_64 argument plus the value in the return_length_64 argument is the total length of the global disk file section created. fault_cluster OpenVMS usage:byte count type: longword (unsigned) access: read only mechanism: by value Page fault cluster in byte units indicating how many pages are to be brought into memory when a page fault occurs for a single page. The fault cluster specified will be rounded up to a multiple of CPU-specific pages. If this argument is specified as 0, the system default page fault cluster will be used. If this argument is specified as more than the maximum allowed for the system, no error will be returned. The systemwide maximum will be used. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address to map the global disk file section. The specified virtual address must be a CPU-specific page-aligned address. If the flag SEC$M_EXPREG is specified, this argument will not be used. If SEC$M_EXPREG is clear and the start_va_64 argument is not specified or is specified as 0, the condition value SS$_IVSECFLG will be returned. Always refer to the return_va_64 and return_length_64 arguments to determine the usable range of virtual addresses mapped. map_length_64 OpenVMS usage:byte count type: quadword unsigned access: read only mechanism: by value Length of the global disk file section to be mapped. The length specified must be a multiple of virtual disk blocks. If this argument is not specified as zero, the global disk section is mapped up to and including the last disk block in the section. 2 $CRMPSC_GPFILE_64_(Alpha_Only) On Alpha systems, allows a process to create a global page file section and to map a section of its address space to the global section. This service accepts 64-bit addresses. Format SYS$CRMPSC_GPFILE_64 gs_name_64 ,ident_64 ,prot ,length_64 ,region_id_64 ,section_offset_64 ,acmode ,flags ,return_va_64 ,return_length_64 [,start_va_64 [,map_length_64]] C Prototype int sys$crmpsc_gpfile_64 (void *gs_nam_64, struct _secid *ident_64, unsigned int prot, unsigned __int64 length_64, struct _generic_64 *region_id_64, unsigned __int64 section_offset_64, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64, __optional_params); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name_64 argument is the 32- or 64-bit virtual address of a naturally aligned 32- or 64-bit string descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of a global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. The first longword specifies the matching criteria in its low- order 2 bits. When a section is mapped at creation time, the match control field is ignored. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. The version number is in the second longword. The version number contains two fields: a minor identification in the low-order 24 bits and a major identification in the high-order 8 bits. You can assign values for these fields by installation convention to differentiate versions of global sections. If no version number is specified when a section is created, processes that specify a version number when mapping cannot access the global section. prot OpenVMS usage:file_protection type: longword (unsigned) access: read only mechanism: by value Protection to be applied to the global page file section. The mask contains four 4-bit fields. Bits are read from right to left in each field. Cleared bits indicate that read, write, execute, and delete access, in that order, are granted to the particular category of user. Only read, write, and execute access are meaningful for section protection. Delete access bits are ignored. Read access also grants execute access for those situations where execute access applies. If zero is specified, read access and write access are granted to all users. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length, in bytes, of the global page file section to be created. The length specified must be a multiple of CPU-specific pages. A length of 0 cannot be specified. region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region to map the global page file section. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. section_offset_64 OpenVMS usage:byte offset type: quadword (unsigned) access: read only mechanism: by value Offset into the global section to start mapping into the process's virtual address space. The offset specified must be a multiple of virtual disk blocks. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. The calling process can delete pages only if those pages are owned by an access mode equal to or less privileged than the access mode of the calling process. Address space cannot be created within a region that has a create mode associated with it that is more privileged than the caller's mode. The condition value SS$_IVACMODE is returned if the caller is less privileged than the create mode for the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the characteristics of the global section to be created. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an invalid combination of flags is set. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address into which the global page file section was mapped. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range mapped in bytes. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address to map the global page file section. The specified virtual address must be a CPU-specific page-aligned address. If the flag SEC$M_EXPREG is specified, the start_va_64 argument must not be specified or must be specified as 0. If SEC$M_EXPREG is set and the start_va_64 argument is non-zero, the condition value SS$_IVSECFLG is returned. Always refer to the return_va_64 and return_length_64 arguments to determine the range of virtual addresses mapped. map_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the global page file section to be mapped. The length specified must be a multiple of CPU-specific pages. If this argument is not specified or is specified as zero, the global file section is mapped up to and including the last page in that section. 2 $CRMPSC_GPFN_64_(Alpha_Only) On Alpha systems, allows a process to create a permanent global page frame section and to map a section of its address space to the global page frame section. This service accepts 64-bit addresses. Format SYS$CRMPSC_GPFN_64 gs_name_64 ,ident_64 ,prot ,start_pfn ,page_count ,region_id_64 ,relative_page ,acmode ,flags ,return_va_64 ,return_length_64 [,start_va_64 [,map_page_count]] C Prototype int sys$crmpsc_gpfn_64 (void *gs_nam_64, struct _secid *ident_64, unsigned int prot, unsigned int start_pfn, unsigned int page_count, struct _generic_64 *region_id_64, unsigned int relative_page, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64, __optional_params); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name_64 argument is the 32- or 64-bit virtual address of a naturally aligned 32- or 64-bit string descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of a global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. The first longword specifies the matching criteria in its low- order 2 bits. When a section is mapped at creation time, the match control field is ignored. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. The version number is in the second longword. The version number contains two fields: a minor identification in the low-order 24 bits and a major identification in the high-order 8 bits. You can assign values for these fields by installation convention to differentiate versions of global sections. If no version number is specified when a section is created, processes that specify a version number when mapping cannot access the global section. prot OpenVMS usage:file_protection type: longword (unsigned) access: read only mechanism: by value Protection to be applied to the global page file section. The mask contains four 4-bit fields. Bits are read from right to left in each field. Cleared bits indicate that read, write, execute, and delete access, in that order, are granted to the particular category of user. Only read, write, and execute access are meaningful for section protection. Delete access bits are ignored. Read access also grants execute access for those situations where execute access applies. If zero is specified, read access and write access are granted to all users. start_pfn OpenVMS usage:page frame number type: longword (unsigned) access: read only mechanism: by value The CPU-specific page frame number where the section begins. page_count OpenVMS usage:CPU-specific page count type: longword (unsigned) access: read only mechanism: by value Length of the page frame section in CPU-specific pages. region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region to map the global page frame section. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. relative_page OpenVMS usage:CPU-specific page number type: longword (unsigned) access: read only mechanism: by value Relative CPU-specific page number within the global section to start mapping. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. Address space cannot be created within a region that has a create mode associated with it that is more privileged than the caller's mode. The condition value SS$_IVACMODE is returned if the caller is less privileged than the create mode for the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the characteristics of the global section to be created. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an illegal combination of flags is set. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address into which the global page frame section was mapped. The return_va_64 argument is the 32- or 64-bit address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range mapped in bytes. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address to map the global page frame section. The specified virtual address must be a CPU-specific page-aligned address. If the flag SEC$M_EXPREG is specified, the start_va_64 argument must not be specified or must be specified as 0. If SEC$M_EXPREG is set and the start_va_64 argument is non-zero, the condition value SS$_IVSECFLG is returned. Always refer to the return_va_64 and return_length_64 arguments to determine the range of virtual addresses mapped. map_page_count OpenVMS usage:CPU-specific page count type: longword (unsigned) access: read only mechanism: by value Length of the global page frame section to be mapped in CPU- specific pages. 2 $CRMPSC_PFN_64_(Alpha_Only) On Alpha systems, allows a process to map a section of its address space to a specified physical address range represented by page frame numbers. This service creates and maps a private page frame section. This service accepts 64-bit addresses. Format SYS$CRMPSC_PFN_64 region_id_64 ,start_pfn ,page_count ,acmode ,flags ,return_va_64 ,return_length_64 [,start_va_64] C Prototype int sys$crmpsc_pfn_64 (struct _generic_64 *region_id_64, unsigned int start_pfn, unsigned int page_count, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64, __optional_params); 3 Arguments region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region to map the private page frame section. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. start_pfn OpenVMS usage:page frame number type: longword (unsigned) access: read only mechanism: by value The CPU-specific page frame number where the section begins in memory. page_count OpenVMS usage:CPU-specific page count type: longword (unsigned) access: read only mechanism: by value Length of the page frame section in CPU-specific pages. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. The calling process can delete pages only if those pages are owned by an access mode equal to or less privileged than the access mode of the calling process. Address space cannot be created within a region that has a create mode associated with it that is more privileged than the caller's mode. The condition value SS$_IVACMODE is returned if the caller is less privileged than the create mode for the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying the characteristics of the private section to be created. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an invalid combination of flags is set. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address into which the private page frame section was mapped. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the virtual address range mapped. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range in bytes. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address to map the private page frame section. The specified virtual address must be a CPU-specific page-aligned address. If the flag SEC$M_EXPREG is specified, the start_va_64 argument must not be specified or must be specified as 0. If SEC$M_EXPREG is set and the start_va_64 argument is non-zero, the condition value SS$_IVESCFLG is returned. 2 $DACEFC Releases the calling process's association with a common event flag cluster. Format SYS$DACEFC efn C Prototype int sys$dacefc (unsigned int efn); 3 Argument efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of any event flag in the common cluster to be disassociated. The efn argument is a longword containing this number; however, $DACEFC uses only the low-order byte. The number must be in the range of 64 through 95 for cluster 2, and 96 through 127 for cluster 3. 2 $DALLOC Deallocates a previously allocated device. Format SYS$DALLOC [devnam] ,[acmode] C Prototype int sys$dalloc (void *devnam, unsigned int acmode); 3 Arguments devnam OpenVMS usage:device_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the device to be deallocated. The devnam argument is the address of a character string descriptor pointing to the device name string. The string might be either a physical device name or a logical name. If it is a logical name, it must translate to a physical device name. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode from which the deallocation is to be performed. The acmode argument is a longword containing the access mode. 2 $DASSGN Deassigns (releases) an I/O channel previously acquired using the Assign I/O Channel ($ASSIGN) service. Format SYS$DASSGN chan C Prototype int sys$dassgn (unsigned short int chan); 3 Argument chan OpenVMS usage:channel type: word (unsigned) access: read only mechanism: by value Number of the I/O channel to be deassigned. The chan argument is a word containing this number. 2 $DCLAST Queues an asynchronous system trap (AST) for the calling access mode or for a less privileged access mode. On Alpha systems, this service accepts 64-bit addresses. Format SYS$DCLAST astadr ,[astprm] ,[acmode] C Prototype int sys$dclast (void (*astadr)(__unknown_params), unsigned __int64 astprm, unsigned int acmode); 3 Arguments astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) AST service routine to be executed. On Alpha systems, the astadr argument is the 32- or 64-bit address of this routine. On VAX systems, the astadr argument is the 32-bit address of this routine. astprm OpenVMS usage:user_arg type: quadword (unsigned) access: read only mechanism: by 64-bit value (Alpha) by 32-bit value (VAX) AST parameter to be passed to the AST routine specified by the astadr argument. On Alpha sytems, the astprm argument is a quadword value containing this parameter. On VAX systems, the astprm argument is a longword value containing this parameter. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode for which the AST is to be declared. The most privileged access mode used is the access mode of the caller. The resultant mode is the access mode for which the AST is declared. 2 $DCLCMH On Alpha systems, specifies the address of a routine to receive control when a Change Mode to User or Change Mode to Supervisor instruction trap occurs. On VAX systems, specifies the address of a routine to receive control when (1) a Change Mode to User or Change Mode to Supervisor instruction trap occurs, or (2) a compatibility mode fault occurs. Format SYS$DCLCMH addres ,[prvhnd] ,[type] C Prototype int sys$dclcmh (int (*addres)(__unknown_params), void *(*(prvhnd)), char type); 3 Arguments addres OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference Routine to receive control when a change mode trap or a compatibility mode fault occurs. The addres argument is the exception handling code in the address space of the calling process. prvhnd OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Address of a previously declared handler. The prvhnd argument is the address of a longword containing the address of the previously declared handler. type OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Handler type indicator. The type argument is a longword value. The value 0 (the default) indicates that a change mode handler is to be declared for the access mode at which the request is issued; the value 1 specifies that a compatibility mode handler is to be declared. 2 $DCLEXH Declares an exit handling routine that receives control when an image exits. Format SYS$DCLEXH desblk C Prototype int sys$dclexh (void *desblk); 3 Argument desblk OpenVMS usage:exit_handler_block type: longword (unsigned) access: write mechanism: by reference Exit handler control block. The desblk argument is the address of this control block. 2 $DELETE_BUFOBJ_(Alpha_Only) On Alpha systems, deletes a buffer object previously created by the $CREATE_BUFOBJ_64 system service. This service accepts 64-bit addresses. Format SYS$DELETE_BUFOBJ buffer_handle_64 C Prototype int sys$delete_bufobj (struct _generic_64 *buffer_handle_64); 3 Arguments buffer_handle_64 OpenVMS usage:handle type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The buffer object to be deleted. The buffer_handle_64 argument is the 32- or 64-bit address of a 2-longword array previously returned by a $CREATE_BUFOBJ_64 call. 2 $DELETE_INTRUSION Searches for and deletes all records in the intrusion database matching the caller's specifications. Format SYS$DELETE_INTRUSION user_criteria ,[flags] C Prototype int sys$delete_intrusion (void *user_criteria, unsigned int flags); 3 Arguments user_criteria OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Description of intruder or suspect. The user_criteria argument is the address of a character-string descriptor pointing to a buffer containing the user criteria to match an intrusion record's user specification in the intrusion database. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Functional specification for the service. The flags argument is a longword bit mask wherein each bit corresponds to an option. 2 $DELETE_PROXY Deletes an existing proxy or removes the default user or a local user from an existing proxy in the proxy database. Format SYS$DELETE_PROXY rem_node ,rem_user ,[local_user] ,[flags] D Prototype int sys$delete_proxy (void *rem_node, void *rem_user, void *local_user, unsigned int flags); 3 Arguments rem_node OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Remote node name of the proxy to be deleted from or modified in the proxy database. The rem_node argument is the address of a character-string descriptor pointing to the remote node name string. rem_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Remote user name of the proxy to be deleted from or modified in the proxy database. The rem_user argument is the address of a character-string descriptor pointing to the user name string. local_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Local user name to delete from the proxy record specified by the rem_node and rem_user arguments in the proxy database. The local_ user argument is the address of a character-string descriptor pointing to the local user name. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Functional specification for the service and type of user the local_user argument represents. The flags argument is a longword bit mask wherein each bit corresponds to an option. 2 $DELETE_REGION_64_(Alpha_Only) On Alpha systems, deletes a virtual region within the process's address space, including all created virtual addresses within the region. This service accepts 64-bit addresses. Format SYS$DELETE_REGION_64 region_id_64 ,acmode ,return_va_64 ,return_length_64 C Prototype nt sys$delete_region_64 (struct _generic_64 *region_id_64, unsigned int acmode, void *(*(return_va_64)), unsigned __int64 *return_length_64); 3 Arguments region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region to be deleted. The region ID specified must be one returned by the $CREATE_REGION_64 service. You cannot specify VA$C_P0, VA$C_P1, or VA$C_P2. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode associated with the call to $DELETE_REGION_64. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. The caller can delete pages only if those pages are owned by an access mode equal to or less privileged than the access mode of the caller. Once all pages are deleted within the region, the region can be deleted only if the region is owned by an access mode equal to or less privileged than the access mode of the caller. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the pages that $DELETE_REGION_64 has successfully deleted. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address of the first page deleted. Virtual addresses are deleted from low address to high address, regardless of the direction in which virtual addresses expand for that region. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the virtual address range that $DELETE_REGION_64 has successfully deleted. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the deleted virtual address range in bytes. 2 $DELLNM Deletes all logical names with the specified name at the specified access mode or outer access mode, or it deletes all the logical names with the specified access mode or outer access mode in a specified table. On Alpha systems, this service accepts 64-bit addresses. Format SYS$DELLNM tabnam ,[lognam] ,[acmode] C Prototype int sys$dellnm (void *tabnam, void *lognam, unsigned char *acmode); 3 Arguments tabnam OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of a logical name table or a list of tables to be searched for the logical name to be deleted. The tabnam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a descriptor that points to the table name. This argument is required. lognam OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Logical name to be deleted. The lognam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a descriptor that points to the logical name string. acmode OpenVMS usage:access_mode type: byte (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Access mode to be used in the delete operation. The acmode argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a byte containing this access mode. The $PSLDEF macro defines symbolic names for the four access modes. 2 $DELMBX Marks a permanent mailbox for deletion. Format SYS$DELMBX chan C Prototype int sys$delmbx (unsigned short int chan); 3 Argument chan OpenVMS usage:channel type: word (unsigned) access: read only mechanism: by value Number of the channel assigned to the mailbox that is to be deleted. The chan argument is a word containing this number. 2 $DELPRC Allows a process to delete itself or another process. Format SYS$DELPRC [pidadr] ,[prcnam] C Prototype int sys$delprc (unsigned int *pidadr, void *prcnam); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) of the process to be deleted. The pidadr argument is the address of a longword that contains the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the OpenVMS Cluster system. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Process name of the process to be deleted. The prcnam is the address of a character string descriptor pointing to the process name string. A process running on the local node can be identified with a 1- to 15-character string. To identify a process on a particular node on a cluster, specify the full process name, which includes the node name as well as the process name. The full process name can contain up to 23 characters. 2 $DELTVA Deletes a range of addresses from a process's virtual address space. Upon successful completion of the service, the deleted pages are inaccessible, and references to them cause access violations. Format SYS$DELTVA inadr ,[retadr] ,[acmode] C Prototype int sys$deltva (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Starting and ending virtual addresses of the pages to be deleted. The inadr argument is the address of a 2-longword array containing, in order, the starting and the ending process virtual addresses. If the starting and ending virtual addresses are the same, a single page is deleted. The addresses are adjusted up or down to fall on CPU-specific page boundaries. Only the virtual page number portion of each virtual address is used; the low- order byte-within-page bits are ignored. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference Starting and ending process virtual addresses of the pages that $DELTVA has deleted. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode on behalf of which the service is to be performed. The acmode argument is a longword containing the access mode. 2 $DELTVA_64_(Alpha_Only) On Alpha systems, deletes a range of virtual addresses from a process's virtual address space. Upon successful completion of the service, the deleted pages are inaccessible, and references to them cause access violations. This service accepts 64-bit addresses. Format SYS$DELTVA_64 region_id_64 ,start_va_64 ,length_64 ,acmode ,return_va_64 ,return_length_64 C Prototype int sys$deltva_64 (struct _generic_64 *region_id_64, void *start_va_64, unsigned __int64 length_64, unsigned int acmode, void *(*(return_va_64)), unsigned __int64 *return_length_64); 3 Arguments region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region from which to address the VA space. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. Also, the region ID that a virtual address is in can be obtained by calling the $GET_REGION_INFO service, specifying the VA$_REGSUM_BY_VA function. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address of the pages to be deleted. The specified virtual address must be a CPU-specific page-aligned address. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space to be deleted. The length specified must be a multiple of CPU-specific pages. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode associated with the call to $DELTVA_64. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. The calling process can delete pages only if those pages are owned by an access mode equal to or less privileged than the access mode of the calling process. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the deleted virtual address range. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the $DELTVA_64 service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned quadword into which the $DELTVA_64 service returns the length of the virtual address range deleted in bytes. 2 $DEQ Dequeues (unlocks) granted locks; dequeues the sublocks of a lock; or cancels an ungranted lock request. The calling process must have previously acquired the lock or queued the lock request by calling the Enqueue Lock Request ($ENQ) service. On Alpha systems, this service accepts 64-bit addresses. Format SYS$DEQ [lkid] ,[valblk] ,[acmode] ,[flags] C Prototype int sys$deq (unsigned int lkid, void *valblk, unsigned int acmode, unsigned int flags); 3 Arguments lkid OpenVMS usage:lock_id type: longword (unsigned) access: read only mechanism: by value Lock identification of the lock to be dequeued. The lkid argument specifies this lock identification. valblk OpenVMS usage:lock_value_block type: longword (unsigned) access: modify mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Lock value block for the resource associated with the lock to be dequeued. The valblk argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit (on VAX systems) of the 16-byte lock value block. When you specify the LCK$M_DEQALL flag, you cannot use this argument. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode of the lock to be dequeued. The acmode argument is a longword containing the access mode. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flags specifying options for the $DEQ operation. The flags argument is a longword bit mask that is the logical OR of each bit set, where each bit corresponds to an option. 2 $DEVICE_SCAN Returns the names of all devices that match a specified set of search criteria. Format SYS$DEVICE_SCAN return_devnam ,retlen ,[search_devnam] ,[itmlst] ,[contxt] C Prototype int sys$device_scan (void *return_devnam, unsigned short int *retlen, void *search_devnam, void *itmlst, struct _generic_64 *contxt); 3 Arguments return_devnam OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor Buffer to receive the device name. The return_devnam argument is the address of a character string descriptor pointing to a buffer into which $DEVICE_SCAN writes the name of the first or next device that matches the specified search criteria. The maximum size of any device name is 64 bytes. retlen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the device name string returned by $DEVICE_SCAN. The retlen argument is the address of a word into which $DEVICE_SCAN writes the length of the device name string. search_devnam OpenVMS usage:device_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the device for which $DEVICE_SCAN is to search. The search_devnam argument accepts the standard wildcard characters, the asterisk (*), which matches any sequence of characters, and the percent sign (%), which matches any one character. If the search_devnam argument does not include a wildcard character, an exact match is used for comparison. For example, to match all unit 0 DU devices on any controller, specify *DU%0. This string is compared to the most complete device name (DVI$_ALLDEVNAM). Only uppercase characters are accepted. itmlst OpenVMS usage:item_list_3 type: longword_unsigned access: read only mechanism: by reference Item list specifying search criteria used to identify the device names for return by $DEVICE_SCAN. The itmlst argument is the address of a list of item descriptors, each of which describes one search criterion. The list of item descriptors is terminated by a longword of 0. contxt OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: modify mechanism: by reference Value used to indicate the current position of a $DEVICE_SCAN search. The contxt argument is the address of the quadword that receives this information. On the initial call, the quadword should contain 0. 2 $DGBLSC Marks an existing permanent global section for deletion. The actual deletion of the global section takes place when all processes that have mapped the global section have deleted the mapped pages. On Alpha systems, this service accepts 64-bit addresses. Format SYS$DGBLSC [flags] ,gsdnam ,[ident] C Prototype int sys$dgblsc (unsigned int flags, void *gsdnam, struct _secid *ident); 3 Arguments flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Mask indicating global section characteristics. The flags argument is a longword value. A value of 0 (the default) specifies a group global section; a value of SEC$M_SYSGBL specifies a system global section. gsdnam OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of the global section to be deleted. The gsdnam argument is the address of a character string descriptor pointing to this name string. ident OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Identification value specifying the version number of the global section to be deleted and the matching criteria to be applied. The ident argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a quadword structure containing three fields. 2 $DISMOU Dismounts a mounted volume or volume sets. Format SYS$DISMOU devnam ,[flags] C Prototype int sys$dismou (void *devnam, unsigned int flags); 3 Arguments devnam OpenVMS usage:device_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Device name of the device to be dismounted. The devnam argument is the address of a character string descriptor pointing to the device name string. The string can be either a physical device name or a logical name. If it is a logical name, it must translate to a physical device name. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value A longword bit vector specifying options for the dismount operation. The flags argument is a longword bit vector wherein a bit, when set, selects the corresponding option. Each bit has a symbolic name; these names are defined by the $DMTDEF macro. 2 $DISPLAY_PROXY Returns information about one or more existing proxies. Format SYS$DISPLAY_PROXY rem_node ,rem_user ,buffer_sizes ,proxy_node ,proxy_user ,default_user ,local_users ,flags ,[context] C Prototype int sys$display_proxy (void *rem_node, void *rem_user, unsigned short int buffer_sizes [4], void *proxy_node, void *proxy_user, void *default_user, unsigned int *local_users, unsigned int flags, unsigned int *context); 3 Arguments rem_node OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Remote node name of the proxy about which information is being requested. The rem_node argument is the address of a character- string descriptor pointing to the remote node name string. rem_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Remote user name of the proxy about which information is being requested. The rem_user argument is the address of a character- string descriptor pointing to the user name string. buffer_sizes OpenVMS usage:return length block type: array of 4 words (unsigned) access: write only mechanism: by reference Array of return lengths for various input buffers. proxy_node OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor Node name of a proxy matching the remote node name specified by the rem_node argument and the remote user name specified by the rem_user argument. The proxy_node argument is the address of a character-string descriptor pointing to a buffer to receive the proxy node name. proxy_user OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor User name of a proxy matching the remote node name specified by the rem_node argument and the remote user name specified by the rem_user argument. The proxy_user argument is a character-string descriptor pointing to a buffer to receive the remote user name of a proxy. default_user OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor Default user of a proxy matching the node name specified by the rem_node argument and the remote user name specified by the rem_ user argument. The default_user argument is the address of a character-string descriptor pointing to a buffer to receive the default user name. local_users OpenVMS usage:buffer type: array of 0 to 16 user name buffers access: write only mechanism: by reference Array of local user names associated with a proxy matching the remote node name specified by the rem_node argument and the remote user name specified by the rem_user argument. The local_ users argument is the address of a buffer to receive an array of local user names. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Functional specification for the service and type of user the local_user argument represents. The flags argument is a longword bit mask wherein each bit corresponds to an option. context OpenVMS usage:context type: longword (unsigned) access: write only mechanism: by reference Context information to keep between related calls to the $DISPLAY_PROXY service. The context argument is the address of a longword to receive a context from the $DISPLAY_PROXY service. 2 $DLCEFC Marks a permanent common event flag cluster for deletion. Format SYS$DLCEFC name C Prototype int sys$dlcefc (void *name); 3 Argument name OpenVMS usage:ef_cluster_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the common event flag cluster to be deleted. The name argument is the address of a character string descriptor pointing to the name of the cluster. 2 $DNS_(VAX_Only) On VAX systems, the DIGITAL Distributed Name Service (DECdns) clerk allows client applications to store resource names and addresses. The $DNS system service completes asynchronously; that is, it returns to the client immediately after making a name service call. The status returned to the client call indicates whether a request was successfully queued to the name service. The DIGITAL Distributed Name Service Clerk Wait ($DNSW) system service is the synchronous equivalent of $DNS. $DNSW is identical to $DNS in every way except that $DNSW returns to the caller after the operation completes. Format SYS$DNS [efn] ,func ,itmlst ,[dnsb] ,[astadr] ,[astprm] 3 Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when $DNS completes. The efn argument is a longword containing this number. The efn argument is optional; if not specified, event flag 0 is set. func OpenVMS usage:function_code type: longword (unsigned) access: read only mechanism: by value Function code specifying the action that $DNS is to perform. The func argument is a longword containing this function code. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list supplying information to be used in performing the function specified by the func argument. The itmlst argument is the address of the item list. The item list consists of one or more item descriptors, each of which is three longwords. The descriptors can be in any order in the item list. Each item descriptor specifies an item code. Item codes are specified as either input or output parameters. Input parameters modify functions, set context, or describe the information to be returned. Output parameters return the requested information. The item list is terminated by a longword of 0. dnsb OpenVMS usage:dns_status_block type: quadword (unsigned) access: write only mechanism: by reference Status block to receive the final completion status of the $DNS operation. The dnsb argument is the address of the quadword $DNS status block. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference Asynchronous system trap (AST) routine to be executed when I/O completes. The astadr argument is the address of the AST routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Asynchronous system trap parameter passed to the AST service routine. The astprm argument is a longword value containing the AST parameter. 2 $DNSW_(VAX_Only) On VAX systems, the DECdns clerk is the client interface to the DIGITAL Distributed Name Service. The $DNSW service completes synchronously; that is, it returns to the caller after the operation completes. For asynchronous completion, use the $DNS service, which returns to the caller immediately after making a name service call. The return status to the client call indicates whether a request was successfully queued to the name service. In all other respects, $DNSW is identical to $DNS. Refer to the $DNS description for complete information about the $DNSW service. Format SYS$DNSW [efn] ,func ,itmlst [,dnsb] [,astadr] [,astprm] 2 $END_TRANS Ends a transaction by attempting to commit it, and returns the outcome of the transaction. Format SYS$END_TRANS [efn] ,[flags] ,iosb [,[astadr] ,[astprm] ,[tid]] C Prototype int sys$end_trans (unsigned int efn, unsigned int flags, struct _iosb *iosb, __optional_params); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag that is set when the service completes. If this argument is omitted, event flag 0 is set. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flags specifying options for the service. The flags argument is a longword bit mask in which each bit corresponds to an option flag. The $DDTMDEF macro defines symbolic names for these option flags. All undefined bits must be 0. If this argument is omitted, no flag is set. Flag Description DDTM$M_SYNC Set this flag to specify that successful synchronous completion is to be indicated by returning SS$_SYNCH. When SS$_SYNCH is returned, the asynchronous system trap (AST) routine is not called, the event flag is not set, and the I/O status block is not filled in. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference I/O status block in which the following information is returned: o The completion status of the service. This is returned as a condition value. o The outcome of the transaction. If the service returns SS$_NORMAL, the outcome of the transaction is commit. If the service returns SS$_ABORT, the outcome of the transaction is abort. o An abort reason code that gives one reason why the transaction aborted, if the completion status of the service is SS$_ABORT. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST routine that is executed when the service completes. The astadr argument is the address of this routine. The routine is executed in the access mode of the caller. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter that is passed to the AST routine specified by the astadr argument. tid OpenVMS usage:transaction_id type: octaword (unsigned) access: read only mechanism: by reference Identifier of the transaction to be ended. If this argument is omitted, $END_TRANS ends the default transaction of the calling process. 2 $END_TRANSW Ends a transaction by attempting to commit it, and returns the outcome of the transaction. $END_TRANSW always waits for the request to complete before returning to the caller. Other than this, it is identical to $END_TRANS. Format SYS$END_TRANSW [efn] ,[flags] ,iosb [,[astadr] ,[astprm] ,[tid]] C Prototype int sys$end_transw (unsigned int efn, unsigned int flags, struct _iosb *iosb, __optional_params); 2 $ENQ Queues a new lock or lock conversion on a resource. The $ENQ, $ENQW, $DEQ (Dequeue Lock Request), and $GETLKI (Get Lock Information) services together provide the user interface to the Lock Management facility. On Alpha systems, this service accepts 64-bit addresses. Format SYS$ENQ [efn] ,lkmode ,lksb ,[flags] ,[resnam] ,[parid] ,[astadr] ,[astprm] ,[blkast] ,[acmode] ,[rsdm_id] ,[nullarg] C Prototype int sys$enq (unsigned int efn, unsigned int lkmode, struct _lksb *lksb, unsigned int flags, void *resnam, unsigned int parid, void (*astadr)(__unknown_params), unsigned int acmode, unsigned int rsdm_id, __optional_params); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when the request has been granted or canceled. Cancellation occurs if you use $DEQ with the cancel modifier or if the waiting request is chosen to break a deadlock. The efn argument is a longword containing this number; however, $ENQ uses only the low-order byte. lkmode OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Lock mode requested. The lkmode argument is a longword specifying this lock mode. lksb OpenVMS usage:lock_status_block type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Lock status block in which $ENQ writes the final completion status of the operation. The lksb argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of the 8-byte lock status block. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flags specifying options for the $ENQ operation. The flags argument is a longword bit mask that is the logical OR of each bit set, where each bit corresponds to an option. resnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of the resource to be locked by this lock. The resnam argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a character string descriptor pointing to this name. The name string can be from 1 to 31 bytes in length. parid OpenVMS usage:lock_id type: longword (unsigned) access: read only mechanism: by value Lock identification of the parent lock. The parid argument is a longword containing this identification value. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) AST service routine to be executed when the lock is either granted or converted. The astadr argument is the 32- or 64- bit address (on Alpha systems) or the 32-bit address (on VAX systems) of this routine. The AST is also delivered when the lock or conversion request is canceled. Cancellation occurs if you use $DEQ with the cancel modifier or if the waiting request is chosen to break a deadlock. astprm OpenVMS usage:user_arg type: quadword (unsigned) access: read only mechanism: by value AST parameter to be passed to the AST routine specified by the astadr argument. The astprm argument specifies this quadword parameter. blkast OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Blocking AST routine to be called whenever this lock is granted and is blocking any other lock requests. The blkast argument is the 32- or 64-bit address (on Alpha systems) or the 32- bit address (on VAX systems) of this routine. Locks that are converting to a new mode, but that are not yet granted in the new mode, do not receive blocking ASTs. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode to be associated with the resource name. The acmode argument indicates the least privileged access mode from which locks can be queued on the resource. rsdm_id OpenVMS usage:longword type: longword (unsigned) access: read only mechanism: by value Resource domain identification. The rsdm_id argument is a longword specifying the resource domain association through which a new lock is to be taken. This argument is ignored for lock conversions and sublocks (parid is nonzero). Valid resource domain identifiers are returned from the $SET_RESOURCE_DOMAIN service, or by the constants RSDM$K_SYSTEM_RSDM_ID or RSDM$K_ PROCESS_RSDM_ID, which are defined by the $RSDMDEF macro in STARLET. nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholding argument reserved by Digital. 2 $ENQW The Enqueue Lock Request and Wait service queues a lock on a resource. The $ENQW service completes synchronously; that is, it returns to the caller when the lock has been either granted or converted. For asynchronous completion, use the Enqueue Lock Request ($ENQ) service; $ENQ returns to the caller after queuing the lock request, without waiting for the lock to be either granted or converted. In all other respects, $ENQW is identical to $ENQ. Refer to the $ENQ description for all other information about the $ENQW service. The $ENQ, $ENQW, $DEQ, and $GETLKI services together provide the user interface to the Lock Management facility. On Alpha systems, this service accepts 64-bit addresses. Format SYS$ENQW [efn] ,lkmode ,lksb ,[flags] ,[resnam] ,[parid] ,[astadr] ,[astprm] ,[blkast] ,[acmode] ,[rsdm_id] C Prototype int sys$enqw (unsigned int efn, unsigned int lkmode, struct _lksb *lksb, unsigned int flags, void *resnam, unsigned int parid, void (*astadr)(__unknown_params), unsigned __int64 astprm, void (*blkast)(__unknown_params), unsigned int acmode, unsigned int rsdm_id, __optional_params); 2 $ERAPAT Generates a security erase pattern. Format SYS$ERAPAT [type] ,[count] ,[patadr] C Prototype int sys$erapat (int type, unsigned int count, unsigned int *patadr); 3 Arguments type OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Type of storage to be written over with the erase pattern. The type argument is a longword containing the type of storage. count OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Number of times that $ERAPAT has been called in a single security erase operation. The count argument is a longword containing the iteration count. patadr OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference Security erase pattern to be written. The patadr argument is the address of a longword into which the security erase pattern is to be written. 2 $EXIT Initiates image rundown when the current image in a process completes execution. Control normally returns to the command interpreter. Format SYS$EXIT [code] C Prototype int sys$exit (unsigned int code); 3 Argument code OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by value Longword value to be saved in the process header as the completion status of the current image. If you do not specify this argument in a macro call, a value of 1 is passed as the completion code for VAX MACRO and VAX BLISS-32, and a value of 0 is passed for other languages. You can test this value at the command level to provide conditional command execution. 2 $EXPREG Adds a specified number of new virtual pages to a process's program region or control region for the execution of the current image. Expansion occurs at the current end of that region's virtual address space. Format SYS$EXPREG pagcnt ,[retadr] ,[acmode] ,[region] C Prototype int sys$expreg (unsigned int pagcnt, struct _va_range *retadr, unsigned int acmode, char region); 3 Arguments pagcnt OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Number of pages (on VAX systems) or pagelets (on Alpha systems) to add to the current end of the program or control region. The pagcnt argument is a longword value containing this number. On Alpha systems, the specified value is rounded up to an even multiple of the CPU-specific page size. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference Starting and ending process virtual addresses of the pages that $EXPREG has actually added. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode to be associated with the newly added pages. The acmode argument is a longword containing the access mode. region OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Number specifying which program region is to be expanded. The region argument is a longword value. A value of 0 (the default) specifies that the program region (P0 region) is to be expanded. A value of 1 specifies that the control region (P1 region) is to be expanded. 2 $EXPREG_64_(Alpha_Only) On Alpha systems, adds a specified number of demand-zero allocation pages to a process's virtual address space for the execution of the current image. Expansion occurs at the next free available address within the specified region. This service accepts 64-bit addresses. Format SYS$EXPREG_64 region_id_64 ,length_64 ,acmode ,flags ,return_va_64 ,return_length_64 C Prototype int sys$expreg_64 (struct _generic_64 *region_id_64, unsigned __int64 length_64, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64); 3 Arguments region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the virtual address range to be expanded. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space to be created. The length specified must be a multiple of CPU-specific pages. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode associated with the call to $EXPREG_64. The access mode determines the owner mode of the pages as well as the read and write protection on the pages. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines symbols for the four access modes. The $EXPREG_64 service uses whichever of the following two access modes is least privileged: o The access mode specified by the acmode argument o The access mode of the caller. The protection of the pages is read/write for the resultant access mode and those more privileged. Address space cannot be created within a region that has a create mode associated with it that is more privileged than the caller's mode. The condition value SS$_IVACMODE is returned if the caller is less privileged than the create mode for the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask controlling the characteristics of the demand-zero pages created. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $VADEF macro and the VADEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVVAFLG is returned if any bits are set. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of a created virtual address range. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range created in bytes. 2 $FAOL_64_(Alpha_Only) On Alpha systems, (1) converts a binary value into an ASCII character string in decimal, hexadecimal, or octal notation and returns the character string in an output string, and (2) inserts variable character string data into an output string. $FAOL_64 interprets the parameter list as a list of quadwords rather than a list of longwords. In all other respects, $FAOL_64 is identical to $FAOL. For all other information about the $FAOL_ 64 service, refer to the help for $FAO/$FAOL. This service accepts 64-bit addresses. Format SYS$FAOL_64 ctrstr_64 [,outlen_64 [,outbuf_64 [,quad_prmlst_64]]] C Prototype int sys$faol_64 (void *ctrstr_64, unsigned short int *outlen_64, void *outbuf_64, void *quad_prmlst_64); 3 Arguments ctrstr_64 OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor The 32- or 64-bit address of the control string (64-bit or 32-bit string descriptor). outlen_64 OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit address of the quadword that contains the output length, in bytes, of the fully formatted output string. outbuf_64 OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor The 32- or 64-bit address of a character string descriptor that points to the output buffer into which $FAOL_64 writes the fully formatted output string. quad_prmlst_64 OpenVMS usage:vectpr_quadword_unsigned type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The 32- or 64-bit address of a quadword-aligned array of quadword FAO arguments. 2 $FAO The Formatted ASCII Output ($FAO) service (1) converts a binary value into an ASCII character string in decimal, hexadecimal, or octal notation and returns the character string in an output string, and (2) inserts variable character string data into an output string. The Formatted ASCII Output with List Parameter ($FAOL) service provides an alternate method for specifying input parameters when calling the $FAO system service. On Alpha systems, this service accepts 64-bit addresses. Format SYS$FAO ctrstr ,[outlen] ,outbuf ,[p1]...[pn] SYS$FAOL ctrstr ,[outlen] ,outbuf ,[prmlst] C Prototype int sys$fao (void *ctrstr, unsigned short int *outlen, void *outbuf, __optional_params); int sys$faol (void *ctrstr, unsigned short int *outlen, void *outbuf, void *prmlst); 3 Arguments ctrstr OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Control string passed to $FAO that contains the text to be output together with one or more $FAO directives. $FAO directives are used to specify repeat counts or the output field length, or both, and they are preceded by an exclamation point (!). The ctrstr argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a character string descriptor pointing to the control string. outlen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Length in bytes of the fully formatted output string returned by $FAO. The outlen argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a word containing this value. outbuf OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Output buffer into which $FAO writes the fully formatted output string. The outbuf argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a character string descriptor pointing to the output buffer. The maximum number of bytes written is limited to 64K. p1 to pn OpenVMS usage:varying_arg type: quadword (signed) access: read only mechanism: by value $FAO directive parameters. The p1 argument is a quadword containing the parameter needed by the first $FAO directive encountered in the control string, the p2 argument is a quadword containing the parameter needed for the second $FAO directive, and so on for the remaining arguments up to p17. If an $FAO directive does not require a parameter, that $FAO directive is processed without reading a parameter from the argument list. prmlst OpenVMS usage:vector_longword_unsigned type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) List of $FAO directive parameters to be passed to $FAOL. The prmlst argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a list of longwords wherein each longword is a parameter. The $FAOL service processes these parameters sequentially as it encounters, in the control string, $FAO directives that require parameters. The parameter list can be a data structure that already exists in a program and from which certain values are to be extracted. 2 $FILESCAN Searches a string for a file specification and parses the components of that file specification. Format SYS$FILESCAN srcstr ,valuelst ,[fldflags] ,[auxout] ,[retlen] C Prorotype int sys$filescan (void *srcstr, void *valuelst, unsigned int *fldflags, void *auxout, unsigned short int *retlen); 3 Arguments srcstr OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor String to be searched for the file specification. The srcstr argument is the address of a descriptor pointing to this string. valuelst OpenVMS usage:item_list_2 type: longword (unsigned) access: modify mechanism: by reference Item list specifying which components of the file specification are to be returned by $FILESCAN. The components are the full node specification, primary node name, primary node's access control, secondary node information, device, directory, file name, file type, and version number. The itmlst argument is the address of a list of item descriptors wherein each item descriptor specifies one component. The list of item descriptors is terminated by a longword of 0. fldflags OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by reference Longword flag mask in which $FILESCAN sets a bit for each file specification component found in the input string. The fldflags argument is the address of this longword flag mask. auxout OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor Auxiliary output buffer. The auxout argument is the address of a character-string descriptor pointing to the auxiliary buffer. When you specify an auxiliary output buffer, $FILESCAN copies the entire source string, with quotation information reduced and simplified for only the primary node, into the auxiliary output buffer. When the auxiliary output buffer is provided, all addresses returned in the item list point to locations in the auxiliary output buffer. retlen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the auxiliary buffer. The retlen argument is the address of a word into which $FILESCAN writes the length of the auxiliary buffer name string. 2 $FIND_HELD Returns the identifiers held by a specified holder. Format SYS$FIND_HELD holder ,[id] ,[attrib] ,[contxt] C Prototype int sys$find_held (struct _generic_64 *holder, unsigned int *id, unsigned int *attrib, unsigned int *contxt); 3 Arguments holder OpenVMS usage:rights_holder type: quadword (unsigned) access: read only mechanism: by reference Holder whose identifiers are to be found when $FIND_HELD completes execution. The holder argument is the address of a quadword data structure containing the holder identifier. This quadword data structure consists of a longword containing the holder UIC, followed by a longword containing the value 0. id OpenVMS usage:rights_id type: longword (unsigned) access: write only mechanism: by reference Identifier value found when $FIND_HELD completes execution. The id argument is the address of a longword containing the identifier value with which the holder is associated. attrib OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by reference Attributes associated with the holder returned in id when $FIND_ HELD completes execution. The attrib argument is the address of a longword containing a bit mask specifying the attributes. contxt OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Context value used when repeatedly calling $FIND_HELD. The contxt argument is the address of a longword used while searching for all identifiers. The context value must be initialized to 0, and the resulting context of each call to $FIND_HELD must be presented to each subsequent call. After contxt is passed to $FIND_HELD, you must not modify its value. 2 $FIND_HOLDER Returns the holder of a specified identifier. Format SYS$FIND_HOLDER id ,[holder] ,[attrib] ,[contxt] C Prototype int sys$find_holder (unsigned int id, struct _generic_64 *holder, unsigned int *attrib, unsigned int *contxt); 3 Arguments id OpenVMS usage:rights_id type: longword (unsigned) access: read only mechanism: by value Binary identifier value whose holders are found by $FIND_HOLDER. The id argument is a longword containing the binary identifier value. holder OpenVMS usage:rights_holder type: quadword (unsigned) access: write only mechanism: by reference Holder identifier returned when $FIND_HOLDER completes execution. The holder argument is the address of a quadword containing the holder identifier. The first longword contains the UIC of the holder with the high-order word containing the group number and the low-order word containing the member number. The second longword contains the value 0. attrib OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by reference Mask of attributes associated with the holder record specified by holder. The attrib argument is the address of a longword containing the attribute mask. contxt OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Context value used while searching for all the holders of the specified identifier when executing $FIND_HOLDER. The contxt argument is the address of a longword containing the context value. When calling $FIND_HOLDER repeatedly, contxt must be set initially to 0 and the resulting context of each call to $FIND_HOLDER must be presented to each subsequent call. After the argument is passed to $FIND_HOLDER, you must not modify its value. 2 $FINISH_RDB Deallocates the record stream and clears the context value used with $FIND_HELD, $FIND_HOLDER, or $IDTOASC. On Alpha systems, this service accepts 64-bit addresses. Format SYS$FINISH_RDB contxt C Prototype int sys$finish_rdb (unsigned int *contxt); 3 Argument contxt OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Context value to be cleared when $FINISH_RDB completes execution. The contxt argument is a longword containing the address of the context value. 2 $FORCEX Causes an Exit ($EXIT) service call to be issued on behalf of a specified process. Format SYS$FORCEX [pidadr] ,[prcnam] ,[code] C Prototype int sys$forcex (unsigned int *pidadr, void *prcnam, unsigned int code); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) of the process to be forced to exit. The pidadr argument is the address of a longword containing the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the OpenVMS Cluster system. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Process name of the process that is to be forced to exit. The prcnam argument is the address of a character string descriptor pointing to the process name string. A process running on the local node can be identified with a 1- to 15-character string. To identify a process on a particular node in a cluster, specify the full process name, which includes the node name as well as the process name. The full process name can contain up to 23 characters. code OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by value Completion code value to be used as the exit parameter. The code argument is a longword containing this value. If you do not specify the code argument, the value 0 is passed as the completion code. 2 $FORMAT_ACL Formats the specified access control entry (ACE) into a text string. Format SYS$FORMAT_ACL aclent ,[acllen] ,aclstr ,[width] ,[trmdsc] ,[indent] ,[accnam] ,[nullarg] C Prototype int sys$format_acl (void *aclent, unsigned short int *acllen, void *aclstr, unsigned short int *width, void *trmdsc, unsigned short int *indent, unsigned int *accnam, int (*routin)(__unknown_params)); 3 Arguments aclent OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Description of the ACE formatted when $FORMAT_ACL completes execution. The aclent argument is the address of a descriptor pointing to a buffer containing the description of the input ACE. The first byte of the buffer contains the length of the ACE; the second byte contains a value that identifies the type of ACE, which in turn determines the ACE format. acllen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the output string resulting when $FORMAT_ACL completes execution. The acllen argument is the address of a word containing the number of characters written to aclstr. aclstr OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor Formatted ACE resulting when $FORMAT_ACL completes its execution. The aclstr argument is the address of a string descriptor pointing to a buffer containing the output string. width OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Maximum width of the formatted ACE resulting when $FORMAT_ACL completes its execution. The width argument is the address of a word containing the maximum width of the formatted ACE. If this argument is omitted or contains the value 0, an infinite length display line is assumed. When the width is exceeded, the character specified by trmdsc is inserted. trmdsc OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Line termination characters used in the formatted ACE. The trmdsc argument is the address of a descriptor pointing to a character string containing the termination characters that are inserted for each formatted ACE when the width has been exceeded. indent OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Number of blank characters beginning each line of the formatted ACE. The indent argument is the address of a word containing the number of blank characters that you want inserted at the beginning of each formatted ACE. accnam OpenVMS usage:access_bit_names type: longword (unsigned) access: read only mechanism: by reference Names of the bits in the access mask when executing the $FORMAT_ ACL. The accnam argument is the address of an array of 32 quadword descriptors that define the names of the bits in the access mask. Each element points to the name of a bit. The first element names bit 0, the second element names bit 1, and so on. You can call LIB$GET_ACCNAM to retrieve the access name table for the class of object whose ACL is to be formatted. nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholding argument reserved to Digital. 2 $FORMAT_AUDIT Converts a security auditing event message from binary format to ASCII text. Format SYS$FORMAT_AUDIT fmttyp ,audmsg ,[outlen] ,outbuf ,[width] ,[trmdsc] ,[routin] ,[fmtflg] C Prototype int sys$format_audit (unsigned int fmttyp, void *audmsg, unsigned short int *outlen, void *outbuf, unsigned short int *width, void *trmdsc, int (*routin)(__unknown_params), unsigned int fmtflg); 3 Arguments fmttyp OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Format for the message. The fmttyp argument is a value indicating whether the security audit message should be in brief format, which is one line of information, or full format. The default is full format. audmsg OpenVMS usage:char_string type: byte stream (unsigned) access: read only mechanism: by reference Security auditing message to format. The audmsg argument is the address of a character descriptor pointing to a buffer containing the message that requires formatting. outlen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the formatted security audit message. The outlen argument is the address of the word receiving the final length of the ASCII message. outbuf OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor Buffer holding the formatted message. The outbuf argument is the address of a descriptor pointing to the buffer receiving the message. width OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Maximum width of the formatted message. The width argument is the address of a word containing the line width value. The default is 80 columns. The width argument does not work consistently. In most cases, if you specify both the width argument and the full format style (NSA$C_FORMAT_STYLE_FULL), $FORMAT_AUDIT ignores the width argument. The minimum width is 80 columns; lower values do not limit the width to less than 80. If you specify a width greater than 80 columns, most lines are not joined to use the full width. In most cases, you should avoid using the width argument. trmdsc OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor Line termination characters used in a full format message. The trmdsc argument is the address of a descriptor pointing to the line termination characters to insert within a line segment whenever the width is reached. routin OpenVMS usage:procedure type: procedure value access: read only mechanism: by reference Routine that writes a formatted line to the output buffer. The routin argument is the address of a routine called each time a line segment is formatted. The argument passed to the routine is the address of a character string descriptor for the line segment. fmtflg OpenVMS usage:longword (unsigned) type: mask_longword access: read only mechanism: by value Determines the formatting of certain kinds of audit messages. The fmtflg argument is a mask specifying whether sensitive information should be displayed or column titles built for messages in brief format. For example, the operating system uses bit 0 to suppress plain-text passwords from security alarm messages. 2 $FREE_USER_CAPABILITY_(Alpha_Only) On Alpha systems, releases a user capability, indicating to other processes that the resource is now available. This service accepts 64-bit addresses. Format SYS$GET_USER_CAPABILITY cap_num [,prev_num] [,flags] C Prototype int sys$free_user_capability (int *cap_num, struct _generic_64 *prev_mask, struct _generic_64 *flags); 3 Arguments cap_num OpenVMS usage:longword type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference Capability number to be released by the calling Kernel thread. This number can range from 1 to 16. The cap_num argument is the 32- or 64-bit address of the longword containing the user capability number. prev_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The previous user capability reservation mask before execution of this service call. The prev_mask argument is the 32- or 64-bit address of a quadword into which the service writes a quadword bit mask specifying the previously reserved user capabilities. flags OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Options selected for the user capability reservation. The flags argument is a quadword bit vector wherein a bit corresponds to an option. Each option (bit) has a symbolic name, which the $CAPDEF macro defines. The flags argument is constructed by performing a logical OR operation using the the symbolic names of each desired option. 2 $GETDVI Returns information related to the primary and secondary device characteristics of an I/O device. For synchronous completion, use the Get Device/Volume Information and Wait ($GETDVIW) service. The $GETDVIW service is identical to the $GETDVI service in every way except that $GETDVIW returns to the caller with the requested information. Format SYS$GETDVI [efn] ,[chan] ,[devnam] ,itmlst [,iosb] [,astadr] [,astprm] [,nullarg] C Prototype int sys$getdvi (unsigned int efn, unsigned short int chan, void *devnam, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm, struct _generic_64 *nullarg); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when $GETDVI returns the requested information. The efn argument is a longword containing this number; however, $GETDVI uses only the low-order byte. chan OpenVMS usage:channel type: word (unsigned) access: read only mechanism: by value Number of the I/O channel assigned to the device about which information is desired. The chan argument is a word containing this number. devnam OpenVMS usage:device_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor The name of the device about which $GETDVI is to return information. The devnam argument is the address of a character string descriptor pointing to this name string. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying which information about the device is to be returned. The itmlst argument is the address of a list of item descriptors, each of which describes an item of information. The list of item descriptors is terminated by a longword of 0. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference I/O status block that is to receive the final completion status. The iosb argument is the address of the quadword I/O status block. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference Asynchronous system trap (AST) service routine to be executed when $GETDVI completes. The astadr argument is the address of this routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter to be passed to the AST service routine specified by the astadr argument. The astprm argument is the longword parameter. nullarg OpenVMS usage:null_arg type: quadword (unsigned) access: read only mechanism: by reference Placeholding argument reserved to Digital. 2 $GETDVIW The Get Device/Volume Information and Wait service returns information about an I/O device; this information consists of primary and secondary device characteristics. The $GETDVIW service completes synchronously; that is, it returns to the caller with the requested information. Digital recommends that you use an IOSB with this service. An IOSB prevents the service from completing prematurely. In addition, the IOSB contains additional status information. For asynchronous completion, use the Get Device/Volume Information ($GETDVI) service; $GETDVI returns to the caller after queuing the information request, without waiting for the information to be returned. In all other respects, $GETDVIW is identical to $GETDVI. For all other information about the $GETDVIW service, refer to the description of $GETDVI. Format SYS$GETDVIW [efn] ,[chan] ,[devnam] ,itmlst [,iosb] [,astadr] [,astprm] [,nullarg] C Prototype int sys$getdviw (unsigned int efn, unsigned short int chan, void *devnam, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm, unsigned __int64 *nullarg); 2 $GETJPI Returns information about one or more processes on the system or across the OpenVMS Cluster system. The $GETJPI service completes asynchronously. For synchronous completion, use the Get Job/Process Information and Wait ($GETJPIW) service. On Alpha systems, this service accepts 64-bit addresses. Format SYS$GETJPI [efn] ,[pidadr] ,[prcnam] ,itmlst ,[iosb] ,[astadr] ,[astprm] C Prototype int sys$getjpi (unsigned int efn, unsigned int *pidadr, void *prcnam, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), unsigned __int64 astprm); Arguments efn OpenVMS usage:ef_number type: quadword (unsigned) access: read only mechanism: by value Number of the event flag to be set when $GETJPI returns the requested information. The efn argument is a quadword containing this number; however, $GETJPI uses only the low-order byte. pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Process identification (PID) of the process about which $GETJPI is to return information. The pidadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a longword containing the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the cluster. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of the process about which $GETJPI is to return information. The prcnam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a character string descriptor pointing to this name string. itmlst OpenVMS usage:32-bit item_list_3 or 64-bit item_list_64b type: longword (unsigned) for 32-bit; quadword (unsigned) for 64-bit access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Item list specifying which information about the process or processes is to be returned. The itmlst argument is the 32- bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a list of item descriptors, each of which describes an item of information. An item list in 32-bit format is terminated by a longword of 0; an item list in 64-bit format is terminated by a quadword of 0. All items in an item list must be of the same format-either 32-bit or 64-bit. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) I/O status block that is to receive the final completion status. The iosb argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of the quadword I/O status block. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) AST service routine to be executed when $GETJPI completes. The astadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of this routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter to be passed to the AST service routine specified by the astadr argument. The astprm argument is the longword parameter. 2 $GETJPIW The Get Job/Process Information and Wait service returns information about one or more processes on the system. The $GETJPIW service completes synchronously; that is, it returns to the caller with the requested information. Digital recommends that you use an IOSB with this service. An IOSB prevents the service from completing prematurely. In addition, the IOSB contains status information. For asynchronous completion, use the Get Job/Process Information ($GETJPI) service; $GETJPI returns to the caller after queuing the information request, without waiting for the information to be returned. In all other respects, $GETJPIW is identical to $GETJPI. For all other information about the $GETJPIW service, refer to the description of $GETJPI in this manual. On Alpha systems, this service accepts 64-bit addresses. Format SYS$GETJPIW [efn] ,[pidadr] ,[prcnam] ,itmlst ,[iosb] ,[astadr] ,[astprm] C Prototype int sys$getjpiw (unsigned int efn, unsigned int *pidadr, void *prcnam, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); 2 $GETLKI Returns information about the lock database on a system. The $GETLKI service completes asynchronously; for synchronous completion, use the Get Lock Information and Wait ($GETLKIW) service. The $GETLKI, $GETLKIW, $ENQ, $ENQW, and $DEQ services together provide the user interface to the Lock Management facility. Format SYS$GETLKI [efn] ,lkidadr ,itmlst [,iosb] [,astadr] [,astprm] [,nullarg] C Prototype int sys$getlki (unsigned int efn, unsigned int *lkidadr, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm, unsigned int reserved); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when $GETLKI completes. The efn argument is a longword containing this number; however, $GETLKI uses only the low-order byte. If you do not specify efn, $GETLKI sets event flag 0. lkidadr OpenVMS usage:lock_id type: longword (unsigned) access: modify mechanism: by reference Lock identification (lock ID) for the lock about which information is to be returned. The lock ID is the second longword in the lock status block, which was created when the lock was granted. The lkidadr argument is the address of this longword. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying the lock information that $GETLKI is to return. The itmlst argument is the address of a list of item descriptors, each of which describes an item of information. The list of item descriptors is terminated by a longword of 0. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference I/O status block that is to receive the final completion status. The iosb argument is the address of a quadword. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST service routine to be executed when the service completes. The astadr argument is the address of this routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter to be passed to the AST service routine specified by the astadr argument. The astprm argument is the longword parameter. nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholding argument reserved by Digital. 2 $GETLKIW The Get Lock Information and Wait service returns information about the lock database on a system. The $GETLKIW service completes synchronously; that is, it returns to the caller with the requested information. For asynchronous completion, use the Get Lock Information ($GETLKI) service; $GETLKI returns to the caller after queuing the information request, without waiting for the information to be returned. In all other respects, $GETLKIW is identical to $GETLKI. For all other information about the $GETLKIW service, refer to the description of $GETLKI in this manual. The $GETLKI, $GETLKIW, $ENQ, $ENQW, and $DEQ services together provide the user interface to the Lock Management facility. Format SYS$GETLKIW [efn] ,lkidadr ,itmlst [,iosb] [,astadr] [,astprm] [,nullarg] C Prototype int sys$getlkiw (unsigned int efn, unsigned int *lkidadr, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm, unsigned int reserved); 2 $GETMSG Returns message text associated with a given message identification code into the caller's buffer. The message can be from the system message file or a user-defined message. On Alpha systems, this service accepts 64-bit addresses. Format SYS$GETMSG msgid ,msglen ,bufadr ,[flags] ,[outadr] C Prototype int sys$getmsg (unsigned int msgid, unsigned short int *msglen, void *bufadr, unsigned int flags, unsigned char outadr [4]); 3 Arguments msgid OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by value Identification of the message to be retrieved. The msgid argument is a longword value containing the message identification. Each message has a unique identification, contained in bits 3 through 27 of system longword condition values. msglen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Length of the message string returned by $GETMSG. The msglen argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a word into which $GETMSG writes this length. bufadr OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Buffer to receive the message string. The bufadr argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a character string descriptor pointing to the buffer into which $GETMSG writes the message string. The maximum size of any message string is 256 bytes. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Message components to be returned. The flags argument is a longword bit vector wherein a bit, when set, specifies that the message component is to be returned. outadr OpenVMS usage:vector_byte_unsigned type: byte (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Optional information to be returned by $GETMSG. The outadr argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a 4-byte array into which $GETMSG writes the following information. Byte Contents 0 Reserved 1 Count of FAO arguments associated with message 2 User-specified value in message, if any 3 Reserved 2 $GETQUI Returns information about queues and the jobs initiated from those queues. The $GETQUI service completes asynchronously; for synchronous completion, use the Get Queue Information and Wait ($GETQUIW) service. Format SYS$GETQUI [efn] ,func [,context] [,itmlst] [,iosb] [,astadr] [,astprm] C Prototype int sys$getqui (unsigned int efn, unsigned short int func, unsigned int *context, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when $GETQUI completes. The efn argument is a longword containing this number; however, $GETQUI uses only the low-order byte. The efn argument is optional. func OpenVMS usage:function_code type: word (unsigned) access: read only mechanism: by value Function code specifying the function that $GETQUI is to perform. The func argument is a word containing this function code. The $QUIDEF macro defines the names of each function code. context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Address of a longword containing the number of a context stream for this call to the $GETQUI system service. If the argument is unspecified or 0, the service uses the default context stream (#0). itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list supplying information to be used in performing the function specified by the func argument. The itmlst argument is the address of the item list. The item list consists of one or more item descriptors, each of which contains an item code. The item list is terminated by an item code of 0 or by a longword of 0. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference I/O status block into which $GETQUI writes the completion status after the requested operation has completed. The iosb argument is the address of the I/O status block. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST service routine to be executed when $GETQUI completes. The astadr argument is the address of this routine. astprm OpenVMS usage:user_parm type: longword (unsigned) access: read only mechanism: by value AST parameter to be passed to the AST service routine specified by the astadr argument. The astprm argument is this longword parameter. 2 $GETQUIW Returns information about queues and jobs initiated from those queues. The $SNDJBC service is the major interface to the Job Controller, which is the queue and accounting manager. The $GETQUIW service completes synchronously; that is, it returns to the caller with the requested information. For asynchronous completion, use the Get Queue Information ($GETQUI) service; $GETQUI returns to the caller after queuing the information request, without waiting for the information to be returned. In all other respects, $GETQUIW is identical to $GETQUI. For additional information about system service completion, refer to the Synchronize ($SYNCH) service. Format SYS$GETQUIW [efn] ,func [,context] [,itmlst] [,iosb] [,astadr] [,astprm] C Prototype int sys$getquiw (unsigned int efn, unsigned short int func, unsigned int *context, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); 2 $GETSYI Returns information about the local system or about other systems in an OpenVMS Cluster system. The $GETSYI service completes asynchronously; for synchronous completion, use the Get Systemwide Information and Wait ($GETSYIW) service. For additional information about system service completion, refer to the Synchronize ($SYNCH) service. On Alpha systems, this service accepts 64-bit addresses. Format SYS$GETSYI [efn] ,[csidadr] ,[nodename] ,itmlst [,iosb] [,astadr] [,astprm] C Prototype int sys$getsyi (unsigned int efn, unsigned int *csidadr, void *nodename, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), unsigned __int64 astprm); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when the $GETSYI request completes. The efn argument is a longword containing this number; however, $GETSYI uses only the low-order byte. csidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) OpenVMS Cluster system identification of the node about which $GETSYI is to return information. The csidadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a longword containing this identification value. nodename OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of the node about which $GETSYI is to return information. The nodename argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a character string descriptor pointing to this name string. itmlst OpenVMS usage:32-bit item_list_3 or 64-bit item_list_64b type: longword (unsigned) for 32-bit; quadword (unsigned) for 64-bit access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Item list specifying which information is to be returned about the node or nodes. The itmlst argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a list of item descriptors, each of which describes an item of information. An item list in 32-bit format is terminated by a longword of 0; an item list in 64-bit format is terminated by a quadword of 0. All items in an item list must be of the same format-either 32-bit or 64-bit. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) I/O status block to receive the final completion status. The iosb argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of the quadword I/O status block. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) AST service routine to be executed when $GETSYI completes. The astadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of this routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter to be passed to the AST service routine specified by the astadr argument. The astprm argument is the longword parameter. 2 $GETSYIW Returns information about the local system or about other systems in a cluster. The $GETSYIW service completes synchronously; that is, it returns to the caller with the requested information. For asynchronous completion, use the Get Systemwide Information ($GETSYI) service; $GETSYI returns to the caller after queuing the information request, without waiting for the information to be returned. In all other respects, these services are identical; refer to the documentation about $GETSYI for information about the $GETSYIW service. Format SYS$GETSYIW [efn] ,[csidadr] ,[nodename] ,itmlst [,iosb] [,astadr] [,astprm] C Prototype int sys$getsyiw (unsigned int efn, unsigned int *csidadr, void *nodename, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); You must specify either the csidadr or the nodename argument, but not both. For wildcard operations, however, you must use the csidadr argument. 2 $GETTIM Returns the current system time in a 64-bit format. On Alpha systems, this service accepts 64-bit addresses. Format SYS$GETTIM timadr C Prototype int sys$gettim (struct _generic_64 *timadr); 3 Argument timadr OpenVMS usage:date_time type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) The 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a quadword to receive the current time in 64-bit format. 2 $GETUAI Returns authorization information about a specified user. Format SYS$GETUAI [nullarg] ,[contxt] ,usrnam ,itmlst ,[nullarg] ,[nullarg] ,[nullarg] C Prototype int sys$getuai (unsigned int efn, unsigned int *contxt, void *usrnam, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); 3 Arguments nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholding argument reserved to Digital. usrnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the user about whom $GETUAI returns authorization information. The usrnam argument is the address of a descriptor pointing to a character text string containing the user name. The user name string can contain a maximum of 12 alphanumeric characters. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying which information from the specified user's user authorization file (UAF) record is to be returned. The itmlst argument is the address of a list of one or more item descriptors, each of which specifies an item code. The item list is terminated by an item code value of 0 or by a longword value of 0. contxt OpenVMS usage:longword type: longword (unsigned) access: modify mechanism: by reference Longword used to maintain authorization file context. The contxt argument is the address of a longword to receive a $GETUAI context value. On the initial call, this longword should contain the value -1. On subsequent calls, the value of the contxt argument from the previous call should be passed back in. 2 $GETUTC Returns the current time in 128-bit UTC format. On Alpha systems, this service accepts 64-bit addresses. Format SYS$GETUTC utcadr C Prototype int sys$getutc (unsigned int *utcadr [4]); 3 Arguments utcadr OpenVMS usage:coordinated universal time type: utc_date_time access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) The 128-bit time value to be returned. 2 $GET_ALIGN_FAULT_DATA_(Alpha_Only) On Alpha systems, obtains data from the user image alignment fault buffer if buffered user alignment fault data reporting has been enabled. This service accepts 64-bit addresses. Format SYS$GET_ALIGN_FAULT_DATA buffer ,buffer_size ,return_size C Prototype int sys$get_align_fault_data (void *buffer, int buffer_size, int *return_size); 3 Arguments buffer OpenVMS usage:address type: longword (unsigned) access: read/write mechanism: by 32- or 64-bit reference The user buffer in which the alignment fault data is to be stored. The buffer is the 32- or 64-bit address of this user buffer. buffer_size OpenVMS usage:byte count type: longword (signed) access: read mechanism: by value The size, in bytes, of the buffer specified by the buffer argument. return_size OpenVMS usage:longword_signed type: longword (signed) access: write mechanism: by 32- or 64-bit reference The amount of data, in bytes, stored in the buffer. The return_ size argument is the 32- or 64-bit address of a naturally aligned longword into which the service returns the size of the buffer. The return_size is set to 0 if there is no data in the buffer. 2 $GET_ARITH_EXCEPTION_(Alpha_Only) On Alpha systems, returns information about the exception context for a given arithmetic exception. Format SYS$GET_ARITH_EXCEPTION sigarg ,mcharg ,buffer C Prototype int sys$get_arith_exception (void *sigarg, void *mcharg, void *buffer); 3 Arguments sigarg OpenVMS usage:signal array type: vector_longword_signed access: read only mechanism: by reference Address of the signal array for the given arithmetic exception. mcharg OpenVMS usage:mech array type: vector_quadword_unsigned access: read only mechanism: by reference Address of the mechanism array for the given arithmetic exception. buffer OpenVMS usage:vector_quadword type: vector_quadword_unsigned access: write only mechanism: by descriptor Four-quadword buffer to receive additional exception context. The buffer argument is the address of a descriptor that points to this buffer. 2 $GET_REGION_INFO_(Alpha_Only) On Alpha systems, gets information about a specified virtual region. This service accepts 64-bit addresses. Format SYS$GET_REGION_INFO function_code ,region_id_64 ,start_va_64 ,buffer_length ,buffer_address_64 ,return_length_64 C Prototype int sys$get_region_info (unsigned int function_code, struct _generic_64 *region_id_64, void *start_va_64, void *reserved, unsigned int buffer_length, void *buffer_address_64, unsigned int *return_length_64); 3 Arguments function_code OpenVMS usage:function code type: longword (unsigned) access: read only mechanism: by value Function code specifying how the information you are requesting should be looked up. All function codes return region summary information in the return buffer in the format of the Region Summary Buffer. If less buffer space is specified than the length of the Region Summary Buffer, only the amount of information requested is returned. If more buffer space is specified than the length of the Region Summary Buffer, the service will fill in the buffer. The return length will reflect the amount of useful information written to the buffer, the size of the Region Summary Buffer. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each function code. region_id OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region about which information is requested. This argument is read only if the function code VA$_REGSUM_BY_ID is specified. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. start_va_64 OpenVMS usage:input address type: quadword address access: read only mechanism: by value Virtual address associated with region about which information is requested. This argument is read only if the function_code argument is VA$_REGSUM_BY_VA or VA$_NEXT_REGSUM_BY_VA. If the function_code argument is VA$_REGSUM_BY_VA, this argument is a virtual address within the region about which you are requesting information. To perform a wildcard search on all regions, specify VA$_ NEXT_REGSUM_BY_VA as the function code and begin with the start_va_64 argument specified as -1. For subsequent calls, specify start_va_64 as the sum of the previous region's start address and length. Call the $GET_REGION_INFO service in a loop until the condition SS$_NOMOREREG is returned. NOTE Before performing the lookup function, OpenVMS sign-extends the 64-bit starting address so that it represents a properly formed virtual address for the CPU. buffer_length OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Length of the buffer into which information is returned. buffer_address_64 OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a quadword-aligned buffer into which to return information if the buffer_length argument is non-zero. This argument is ignored if the buffer_length argument is zero. return_length_64 OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned longword into which the service returns the length of the information in bytes. 2 $GET_SECURITY Retrieves the security characteristics of an object. Format SYS$GET_SECURITY [clsnam] ,[objnam] ,[objhan] ,[flags] ,[itmlst] ,[contxt] ,[acmode] C Prototype int sys$get_security ( void *clsnam, void *objnam, unsigned int *objhan, unsigned int flags, void *itmlst, unsigned int *contxt, unsigned int *acmode); 3 Arguments clsnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor Name of the object class. The clsnam argument is the address of a descriptor pointing to a string containing the name of the object class. objnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor Name of the protected object whose associated security profile is going to be retrieved. The objnam argument is the address of a descriptor pointing to a string containing the name of the protected object. objhan OpenVMS usage:object_handle type: longword (unsigned) access: read only mechanism: by reference Data structure identifying the object whose associated characteristics are going to be retrieved. The objhan argument is an address of a longword containing the object handle. You can use the objhan argument as an alternative to the objnam argument; for example, channel number clearly specifies the file open on the channel and can serve as an object handle. flags OpenVMS usage:flags type: mask_longword access: read only mechanism: by value Mask specifying processing options. The flags argument is a longword bit vector wherein a bit, when set, specifies the processing option. The flags argument requires the contxt argument. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying which information about the process or processes is to be returned. The itmlst argument is the address of a list of item descriptors, each of which describes an item of information. The list of item descriptors is terminated by a longword of 0. contxt OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Value used to maintain the processing context when dealing with a single protected object across multiple $GET_SECURITY/$SET_ SECURITY calls. Whenever the context value is nonzero, the class name, object name, or object handle arguments are disregarded. An input value of 0 indicates that a new context should be established. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by reference Access mode to be used in the object protection check. The acmode argument is the address of a longword containing the access mode. The acmode argument defaults to kernel mode; however, the system compares acmode with the caller's access mode and uses the least privileged mode. The access modes are defined in the system macro $PSLDEF library. Digital recommends that this argument be omitted (passed as zero). 2 $GET_SYS_ALIGN_FAULT_DATA_(Alpha_Only) On Alpha systems, obtains data from the system alignment fault buffer if buffered system alignment fault data reporting has been enabled. This service accepts 64-bit addresses. Format SYS$GET_SYS_ALIGN_FAULT_DATA buffer ,buffer_size ,return_size C Prototype int sys$get_sys_align_fault_data (void *buffer, int buffer_size, int *return_size); 3 Arguments buffer OpenVMS usage:address type: longword (unsigned) access: read/write mechanism: by 32- or 64-bit reference The user buffer in which the alignment fault data is to be stored. The buffer argument is the 32- or 64-bit virtual address of this buffer. buffer_size OpenVMS usage:byte count type: longword (signed) access: read mechanism: by value The size, in bytes, of the buffer specified by the buffer argument. return_size OpenVMS usage:longword_signed type: longword (signed) access: write mechanism: by 32- or 64-bit reference The amount of data, in bytes, stored in the buffer. The return_ size argument is the 32- or 64-bit virtual address of a naturally aligned longword into which the service returns the amount of data, in bytes, stored in the buffer. The return_size argument is set to 0 if there is no data in the buffer. 2 $GET_USER_CAPABILITY_(Alpha_Only) On Alpha systems, reserves a user capability, indicating to other processes that the resource is in use. This service accepts 64-bit addresses. Format SYS$GET_USER_CAPABILITY cap_num [,select_num] [,select_mask] [,prev_mask] [,flags] C Prototype int sys$get_user_capability (*cap_num, int *select_num, struct _generic_64 *select_mask, struct _generic_64 *prev_mask, struct _generic_64 *flags); 3 Arguments cap_num OpenVMS usage:longword type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference Capability number to be reserved by the calling kernel thread. This number can range from 1 to 16 for an explicit request, or the symbolic constant CAP$K_GET_FREE_CAP can be specified to get the next available user capability. The cap_num argument is the 32- or 64-bit address of the longword containing the user capability number or symbolic constant. select_num OpenVMS usage:longword type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference The number of the user capability selected by the service call. The select_num argument is the 32- or 64-bit address of a longword into which the system writes the user capability number. For an explicit numeric request, the value returned in this longword will match that specified in cap_num; otherwise, this cell contains the next available user capability. select_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference A quadword bit mask with a single bit position set, reflecting the user capability selected by the service. The select_ mask argument is the 32- or 64-bit address of a quadword into which the system writes the selected user capability bit mask. This bit mask is the most efficient method for indicating the reserved user capability with the $CPU_CAPABILITIES and $PROCESS_ CAPABILITIES services. prev_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The previous user capability reservation mask before execution of this service call. The prev_mask argument is the 32- or 64-bit address of a quadword into which the service writes a quadword bit mask specifying the previously reserved user capabilities taken from the global cell SCH$GQ_RESERVED_USER_CAPS. flags OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Options selected for the user capability reservation. The flags argument is a quadword bit vector wherein a bit corresponds to an option. Each option (bit) has a symbolic name, which the $CAPDEF macro defines. The flags argument is constructed by performing a logical OR operation using the symbolic names of each desired option. 2 $GOTO_UNWIND_(Alpha_Only) On Alpha systems, unwinds the call stack. Format SYS$GOTO_UNWIND target_invo ,target_pc ,[new_r0] ,[new_r1] C Prototype int sys$goto_unwind (void *target_invo, void *(*(target_pc)), unsigned __int64 *new_r0, unsigned __int64 *new_r1); 3 Arguments target_invo OpenVMS usage:invo_handle type: longword (unsigned) access: read only mechanism: by reference The address of a location that contains a handle for the target invocation. If you do not specify the target_invo argument, or if the handle value is 0, an exit unwind is initiated. target_pc OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference The address of a location that contains the address at which execution should continue in the target invocation. If the target_pc argument is omitted or the value is 0, a system- defined target PC is assumed and execution resumes at the location specified at the return address for the call frame of the target procedure invocation. new_r0 OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: read only mechanism: by reference The address of a location that contains the value to place in the saved R0 location of the mechanism argument vector. The contents of this location are then loaded into the processor R0 register at the time that execution continues in the target invocation. If the new_r0 argument is omitted, the contents of the processor R0 register at the time of the call to $GOTO_UNWIND are used. new_r1 OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: read only mechanism: by reference Address of a location that contains the value to place in the saved R1 location of the mechanism argument vector. The contents of the location are then loaded into the processor R1 register at the time that execution continues in the target invocation. If the new_r1 argument is omitted, the contents of the processor R1 register at the time of the call to $GOTO_UNWIND are used. 2 $GRANTID Adds the specified identifier record to the rights list of the process or the system. Format SYS$GRANTID [pidadr] ,[prcnam] ,[id] ,[name] ,[prvatr] C Prototype int sys$grantid (unsigned int *pidadr, void *prcnam, struct _generic_64 *id, void *name, unsigned int *prvatr, unsigned int segment); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) number of the process affected when $GRANTID completes execution. The pidadr argument is the address of a longword containing the PID of the process to be affected. You use -1 to indicate the system rights list. When pidadr is passed, it is also returned; therefore, you must pass it as a variable rather than a constant. If you specify neither pidadr nor prcnam, your own process is used. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Process name on which $GRANTID operates. The prcnam argument is the address of a character string descriptor containing the process name. The maximum length of the name is 15 characters. Because the UIC group number is interpreted as part of the process name, you must use pidadr to specify the rights list of a process in a different group. If you specify neither pidadr nor prcnam, your own process is used. id OpenVMS usage:rights_holder type: quadword (unsigned) access: modify mechanism: by reference Identifier and attributes to be granted when $GRANTID completes execution. The id argument is the address of a quadword containing the binary identifier code to be granted in the first longword and the attributes in the second longword. name OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the identifier granted when $GRANTID completes execution. The name argument is the address of a descriptor pointing to the name of the identifier. The identifier is granted as it is created. You must specify either id or name. prvatr OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by reference Previous attributes of the identifier. The prvatr argument is the address of a longword used to store the attributes of the identifier if it was previously present in the rights list. If you added rather than modified the identifier, prvatr is ignored. 2 $HASH_PASSWORD Applies the hash algorithm you select to an ASCII password string and returns a quadword hash value that represents the encrypted password. Format SYS$HASH_PASSWORD pwd ,alg ,[salt] ,usrnam ,hash C Prototype int sys$hash_password (void *pwd, unsigned char alg, unsigned short int salt, void *usrnam, struct _generic_64 *hash); 3 Arguments pwd OpenVMS usage: char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor ASCII password string to be encrypted. The pwd argument is the address of a character string descriptor pointing to the ASCII password. The password string can contain between 1 and 32 characters and use the uppercase characters A through Z, the numbers 0 through 9, the dollar sign ($), and the underscore (_). alg OpenVMS usage: byte_unsigned type: byte (unsigned) access: read only mechanism: by value Algorithm used to hash the ASCII password string. The alg argument is an unsigned byte specifying the hash algorithm. salt OpenVMS usage: word_unsigned type: word (unsigned) access: read only mechanism: by value Value used to increase the effectiveness of the hash. The salt argument is an unsigned word containing 16 bits of data that is used by the hash algorithms when encrypting a password for the associated user name. The $GETUAI item code UAI$_SALT is used to retrieve the SALT value for a given user. If you do not specify a SALT value, $HASH_PASSWORD uses the value of 0. usrnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the user associated with the password. The usrnam argument is the address of a descriptor pointing to a character text string containing the user name. The current password encryption algorithm (UAI$C_PURDY_S) folds the user name into the ASCII password string to ensure that different users with the same password produce different hash values. This argument must be supplied for all calls to $HASH_PASSWORD but is ignored when using the CRC algorithm (UAI$C_AD_II). hash OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: write only mechanism: by reference Output hash value representing the encrypted password. The hash argument is the address of an unsigned quadword to which $HASH_ PASSWORD writes the output of the hash. If you use the UAI$C_AD_ II algorithm, the second longword of the hash is always set to 0. 2 $HIBER Allows a process to make itself inactive but to remain known to the system so that it can be interrupted; for example, to receive ASTs. Format SYS$HIBER C Prototype int sys$hiber (void); 3 Arguments None. 2 $IDTOASC Translates the specified identifier value to its identifier name. On Alpha systems, this service accepts 64-bit addresses. Format SYS$IDTOASC id ,[namlen] ,[nambuf] ,[resid] ,[attrib] ,[contxt] C Prototype int sys$idtoasc (unsigned int id, unsigned short int *namlen, void *nambuf, unsigned int *resid, unsigned int *attrib, unsigned int *contxt); 3 Arguments id OpenVMS usage:rights_id type: longword (unsigned) access: read only mechanism: by value Binary identifier value translated by $IDTOASC. The id argument is a longword containing the binary value of the identifier. To determine the identifier names of all identifiers in the rights database, you specify id as -1 and call $IDTOASC repeatedly until it returns the status code SS$_NOSUCHID. The identifiers are returned in alphabetical order. namlen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Number of characters in the identifier name translated by $IDTOASC. The namlen argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a word containing the length of the identifier name written to nambuf. nambuf OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Identifier name text string returned when $IDTOASC completes the translation. The nambuf argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a descriptor pointing to the buffer in which the identifier name is written. resid OpenVMS usage:rights_id type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Identifier value of the identifier name returned in nambuf. The resid argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a longword containing the 32-bit code of the identifier. attrib OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Mask of attributes associated with the identifier returned in resid. The attrib argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a longword containing the attribute mask. contxt OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Context value used when repeatedly calling $IDTOASC. The contxt argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a longword used while $IDTOASC searches for all identifiers. The context value must be initialized to the value 0, and the resulting context of each call to $IDTOASC must be presented to each subsequent call. After contxt is passed to $IDTOASC, you must not modify its value. 2 $IEEE_SET_FP_CONTROL_(Alpha_Only) On Alpha systems, modifies the software IEEE floating-point control register and, optionally, returns the previous register value. The service provides the mechanism to set the specified bits in the IEEE floating-point control register, to clear the specified bits in the register, and to swap the values of the register. Format SYS$IEEE_SET_FP_CONTROL [clrmsk] ,[setmsk] ,[prvmsk] C Prototype int sys$ieee_set_fp_control (struct _ieee *clrmsk, struct _ieee *setmsk, struct _ieee *prvmsk); 3 Arguments clrmsk OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by reference Address of a quadword bit mask to be cleared in the IEEE floating-point control register. setmsk OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by reference Address of a quadword bit mask to be set in the IEEE floating- point control register. prvmsk OpenVMS usage:mask_quadword type: quadword (unsigned) access: write only mechanism: by reference Address of a quadword to receive the previous value of the IEEE floating-point control register. 2 $INIT_SYS_ALIGN_FAULT_REPORT_(Alpha_Only) On Alpha systems, initializes system process alignment fault reporting. This service accepts 64-bit addresses. Format SYS$INIT_SYS_ALIGN_FAULT_REPORT match_table ,buffer_size ,flags C Prototype int sys$init_sys_align_fault_report void *match_table, int buffer_size, unsigned int flags ;) 3 Arguments match_table OpenVMS usage:address type: longword (unsigned) access: read mechanism: by 32-bit or 64-bit reference Describes the system fault match table. The match_table argument is the 32-bit or 64-bit virtual address of an array of longwords describing the system fault match table. The first longword is the number of match entries; the remaining longwords are the match entries. buffer_size OpenVMS usage:byte count type: longword (signed) access: read mechanism: by value The number of bytes to allocate, from nonpaged pool, to save the alignment fault data. The buffer you allocate must be sufficient to accommodate one data item of the size specified in the flags argument. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag bit mask specifying options for the $GET_SYS_ALIGN_FAULT_ DATA operation. If the flags argument is 0, data items of size AFR$K_VMS_LENGTH will be returned. If the flags argument is AFR$M_USER_INFO, the user name and image name are added to each data item and they are returned in a buffer of length AFR$K_EXTENDED_LENGTH. If the user name and image name are not available, an empty string is returned in the data item. 2 $INIT_VOL Formats a disk or magnetic tape volume and writes a label on the volume. At the end of initialization, the disk is empty except for the system files containing the structure information. All former contents of the volume are lost. Format SYS$INIT_VOL devnam, volnam [,itmlst] C Prototype int sys$init_vol (void *devnam, void *volnam, void *itmlst); 3 Arguments devnam OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name of the device on which the volume is physically mounted. The descriptor must point to the device name, a character string of 1 to 64 characters. The device name can be a physical device name or a logical name; if it is a logical name, it must translate to a physical name. volnam OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Identification to be encoded on the volume. The descriptor must point to the volume name, a character string of 1 to 12 characters. For a disk volume name, you can specify a maximum of 12 ANSI characters; for a magnetic tape volume name, you can specify a maximum of 6 ANSI "a" characters. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying options that can be used when initializing the volume. The itmlst argument is the address of a list of item descriptors, each of which describes one option. The list of item descriptors is terminated by a longword of 0. 2 $IO_CLEANUP_(Alpha_Only) On Alpha systems, returns all resources allocated by $IO_SETUP. This service accepts 64-bit addresses. Format SYS$IO_CLEANUP fandle C Prototype int sys$io_cleanup (unsigned __int64 fandl); 3 Arguments fandle OpenVMS usage:fandle type: 64-bit integer (unsigned) access: read only mechanism: by value A fandle, passed by value, returned by a previous call to $IO_ SETUP. 2 $IO_PERFORM_(Alpha_Only) On Alpha systems, starts the Fast I/O operation. The $IO_PERFORM service completes asynchronously. For synchronous completion, use the Perform Fast I/O and Wait ($IO_PERFORMW) service. This service accepts 64-bit addresses. Format SYS$IO_PERFORM fandle ,chan ,iosadr ,bufadr ,buflen ,porint C Prototype int sys$io_perform (unsigned __int64 fandl, unsigned short int chan, struct _iosa *iosadr, void *bufadr, unsigned __int64 buflen, unsigned __int64 devdata); Arguments fandle OpenVMS usage:fandle type: 64-bit integer (unsigned) access: read only mechanism: by value A fandle returned by a previous call to $IO_SETUP. chan OpenVMS usage:channel type: word (unsigned) access: read mechanism: by value Software I/O channel number. iosadr OpenVMS usage:address type: address access: read only mechanism: by value Address of the I/O Status Area (IOSA). This value cannot be 0; that is, an IOSA is required. The iosadr must be aligned to a quadword boundary. bufadr OpenVMS usage:char_string type: address access: read only mechanism: by value The process buffer address. Must be aligned on a 512-byte boundary. buflen OpenVMS usage:byte count type: 64-bit integer access: read only mechanism: by value The byte count for the I/O. The buflen argument must be a multiple of 512 bytes. Drivers have further limitations on the maximum size of an I/O request. porint OpenVMS usage:address type: pointer or integer access: read only mechanism: by value A hardware integer passed unchanged to the driver. For disk devices, this is the media address for the transfer; that is, the virtual block number (VBN) for virtual I/O functions or the logical block number (LBN) for logical I/O functions. This argument is ignored for tape devices. For drivers with complex parameters, porint would be the address of a descriptor or buffer specific to the device and function and would be documented with the driver. 2 $IO_PERFORMW_(Alpha_Only) On Alpha systems, starts a Fast I/O operation. The $IO_PERFORMW service completes synchronously; that is, it returns to the caller after performing the Fast I/O operation. In all other respects, $IO_PERFORMW is identical to $IO_PERFORM. For all other information about the IO_PERFORMW service, refer to the help for $IO_PERFORM. Format SYS$IO_PERFORMW fandle ,chan ,iosadr ,bufadr ,buflen ,porint C Prototype int sys$io_performw (unsigned __int64 fandl, unsigned short int chan, struct _iosa *iosadr, void *bufadr, unsigned __int64 buflen, unsigned __int64 devdata); 2 $IO_SETUP_(Alpha_Only) On Alpha systems, allocates resources for Fast I/O. This service accepts 64-bit addresses. Format SYS$IO_SETUP func ,bufobj ,iosobj ,astadr ,flags ,return_fandle C Prototype int sys$io_setup (unsigned int func, struct _generic_64 *bufobj, struct _generic_64 *iosobj, void (*astadr)(struct _iosa *), unsigned int flags, unsigned __int64 *return_fandle); 3 Arguments func OpenVMS usage:function_code type: longword access: read only mechanism: by value I/O function code. Must be one of the following: o IO$_READVBLK o IO$_WRITEVBLK o IO$_READLBLK o IO$_WRITELBLK Various function modifiers are supported, depending on the device and driver. Disk drivers support IO$M_NOVCACHE and IO$M_DATACHECK. Some tape devices support IO$M_REVERSE. Illegal modifiers are detected by the $IO_PERFORM(W) service. bufobj OpenVMS usage:buffer object type: vector longword (unsigned) access: read only mechanism: by 32- or 64-bit reference Handle describing the buffer object that contains the user's buffer. This identifier cannot be 0. iosobj OpenVMS usage:object handle type: vector longword (unsigned) access: read only mechanism: by 32- or 64-bit reference Buffer object handle describing the buffer object that contains the I/O Status Area (IOSA). This might or might not be the same identifier as the bufobj argument. This identifier cannot be 0. astadr OpenVMS usage:ast_procedure type: procedure value access: read only mechanism: by 32- or 64-bit reference Completion AST routine address (0, if none). There is no AST parameter argument. When the AST routine is called, the AST parameter will be the address of the IOSA for the operation. Applications can store data in the IOSA at offset IOSA$IH_ CONTEXT. flags OpenVMS usage:mask_longword type: 64-bit integer (unsigned) access: read only mechanism: by value Flag mask. The flags argument is a bit vector in which each bit corresponds to a flag. Flags are defined in the module IOSADEF. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. return_fandle OpenVMS usage:fandle type: 64-bit integer (unsigned) access: write only mechanism: by 32- or 64-bit reference Address of an aligned quadword to receive the fandle for this I/O operation. 2 $LCKPAG Locks a page or range of pages in memory. The specified virtual pages are forced into the working set and then locked in memory. A locked page is not swapped out of memory if the working set of the process is swapped out. These pages are not candidates for page replacement and in this sense are locked in the working set as well. Format SYS$LCKPAG inadr ,[retadr] ,[acmode] C Prototype int sys$lckpag (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Starting and ending virtual addresses of the range of pages to be locked. The inadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. Only the virtual page number portion of each virtual address is used; the low-order byte-within-page bits are ignored. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference Starting and ending process virtual addresses of the pages that $LCKPAG actually locked. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode to be associated with the pages to be locked. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines the four access modes. 2 $LCKPAG_64_(Alpha_Only) On Alpha systems, locks a range of pages in memory. The specified virtual pages are forced into the working set and then locked in memory. A locked page is not swapped out of memory if the working set of the process is swapped out. These pages are not candidates for page replacement and, in this sense, are locked in the working set as well. This service accepts 64-bit addresses. Format SYS$LCKPAG_64 start_va_64 ,length_64 ,acmode ,return_va_64 ,return_length_64 C Prototype int sys$lckpag_64 (void *start_va_64, unsigned __int64 length_64, unsigned int acmode, void *(*(return_va_64)), unsigned __int64 *return_length_64); 3 Arguments start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address of the pages to be locked. The specified virtual address will be rounded down to a CPU-specific page boundary. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space to be locked. The specified length will be rounded up to a CPU-specific page boundary so that it includes all CPU-specific pages in the requested range. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode associated with the pages to be locked. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. For the $LCKPAG_64 service to complete successfully, the resultant access mode must be equal to or more privileged than the access mode already associated with the pages to be locked. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the pages locked in memory. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range locked in bytes. 2 $LKWSET Locks a range of pages in the working set; if the pages are not already in the working set, it brings them in and locks them. A page locked in the working set does not become a candidate for replacement. Format SYS$LKWSET inadr ,[retadr] ,[acmode] C Prototype int sys$lkwset ( struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Starting and ending virtual addresses of the range of pages to be locked in the working set. The inadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. Only the virtual page number portion of each virtual address is used; the low-order byte-within-page bits are ignored. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference Starting and ending process virtual addresses of the range of pages actually locked by $LCKWSET. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode to be associated with the pages to be locked. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines the four access modes. 2 $LKWSET_64_(Alpha_Only) On Alpha systems, locks a range of virtual addresses in the working set; if the pages are not already in the working set, the service brings them in and locks them. A page locked in the working set does not become a candidate for replacement. This service accepts 64-bit addresses. Format SYS$LKWSET_64 start_va_64 ,length_64 ,acmode ,return_va_64 ,return_length_64 C Prototype int sys$lkwset_64 (void *start_va_64, unsigned __int64 length_64, unsigned int acmode, void *(*(return_va_64)), unsigned __int64 *return_length_64); 3 Arguments start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address of the pages to be locked in the working set. The specified virtual address will be rounded down to a CPU-specific page boundary. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space to be locked in the working set. The specified length will be rounded up to a CPU-specific page boundary so that it includes all CPU-specific pages in the requested range. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode associated with the pages to be locked. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. For the $LKWSET_64 service to complete successfully, the resultant access mode must be equal to or more privileged than the access mode already associated with the pages to be locked. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the pages locked in the working set. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the virtual address range locked in the working set. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range in bytes. 2 $MGBLSC Establishes a correspondence between pages (maps) in the virtual address space of the process and physical pages occupied by a global section. Format SYS$MGBLSC inadr ,[retadr] ,[acmode] ,[flags] ,gsdnam ,[ident] ,[relpag] C Prototype int sys$mgblsc (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode, unsigned int flags, void *gsdnam, struct _secid *ident, unsigned int relpag); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Starting and ending virtual addresses into which the section is to be mapped. The inadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. Only the virtual page number portion of each virtual address is used to specify which pages are to be mapped; the low-order byte-within-page bits are ignored for this purpose. The interpretation of the inadr argument depends on the setting of SEC$M_EXPREG in the inadr argument and whether you are using an Alpha or a VAX system. See the OpenVMS System Services Reference Manual for a complete description of these differences. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference Starting and ending process virtual addresses into which the section was actually mapped by $MGBLSC. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. On Alpha systems, the retadr argument returns the starting and ending addresses of the usable range of addresses. This might differ from the total amount mapped. The retadr argument is required when the relpag argument is specified. If the section being mapped does not completely fill the last page used to map the section, the retadr argument indicates the highest address that actually maps the section. If the relpag argument is used to specify an offset into the section, the retadr argument reflects the offset. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode to be associated with the pages mapped into the process virtual address space. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines symbols for the four access modes. The most privileged access mode used is the access mode of the caller. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying options for the operation. The flags argument is a longword bit vector wherein a bit when set specifies the corresponding option. gsdnam OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the global section. The gsdnam argument is the address of a character string descriptor pointing to this name string. For group global sections, the operating system interprets the group UIC as part of the global section name; thus, the names of global sections are unique to UIC groups. Further, all global section names are implicitly qualified by their identification fields. ident OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by reference Identification value specifying the version number of a global section, and, for processes mapping to an existing global section, the criteria for matching the identification. The ident argument is the address of a quadword structure containing three fields. relpag OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Relative page number within the section of the first page to be mapped. The relpag argument is a longword containing this number. On Alpha systems, the relpag argument is interpreted as an index into the section file, measured in pagelets for a file-backed section or CPU-specific pages for a PFN-mapped section. 2 $MGBLSC_64_(Alpha_Only) On Alpha systems, establishes a correspondence between pages in the virtual address space of the process and the pages occupied by a global disk file, page file, or demand_zero section. This service accepts 64-bit addresses. Format SYS$MGBLSC_64 gs_name_64 ,ident_64 ,region_id_64 ,section_offset_64 ,length_64 ,acmode ,flags ,return_va_64 ,return_length_64 [,start_va_64] C Prototype int sys$mgblsc_64 (void *gsdnam_64, struct _secid *ident_64, struct _generic_64 *region_id_64, unsigned __int64 section_offset_64, unsigned __int64 length_64, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64,...); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name_64 argument is the 32- or 64-bit virtual address of a naturally aligned 32-bit or 64-bit string descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of a global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. The first longword specifies the matching criteria in its low- order two bits. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. The version number is in the second longword. The version number contains two fields: a minor identification in the low-order 24 bits and a major identification in the high-order 8 bits. You can assign values for these fields by installation convention to differentiate versions of global sections. If no version number is specified when a section is created, processes that specify a version number when mapping cannot access the global section. region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region to map the global section. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. section_offset_64 OpenVMS usage:byte offset type: quadword (unsigned) access: read only mechanism: by value Offset into the global section at which to start mapping into the process's virtual address space. If a map to a global section is being requested, the section_ offset_64 argument specifies an even multiple of disk blocks. If a map to a global page file section is being requested, the section_offset_64 argument specifies an even multiple of CPU- specific pages. If zero is specified, the global section is mapped beginning with the first virtual block of the disk file section. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length, in bytes, of the desired mapping of the global disk file section. If a map to a global section is being requested, the length_64 argument must specify an even multiple of disk blocks. If a map to a global page file or demand-zero section is being requested, the length_64 argument must specify an even multiple of CPU- specific pages. If zero is specified, the size of the disk file is used. If a shared page-table region is specified by the region_id_64 argument, length_64 must be an even multiple of the number of bytes that can be mapped by a CPU-specific page-table page or must include the last page within the memory-resident global section. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode that is to be the owner of the pages created during the mapping. This is also the read access mode and, if the SEC$M_ WRT flag is specified, the write access mode. The acmode argument i s a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. Address space cannot be created within a region that has a create mode associated with it that is more privileged than the caller's mode. The condition value SS$_IVACMODE is returned if the caller is less privileged than the create mode for the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying options for the operation. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an attempt is made to use the SEC$M_PAGFIL flag, which applies only to the creation of a page-file backed section. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The process virtual address into which the global disk or page file section was mapped. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. Upon successful completion of this service, if the section_offset_64 argument was specified, the virtual address returned in the return_va_64 argument reflects the offset into the global section mapped such that the virtual address returned cannot be aligned on a CPU-specific page boundary. The virtual address returned will always be on an even virtual disk block boundary. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the usable virtual address range mapped. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range mapped in bytes. Upon successful completion of this service, the value in the return_length_64 argument might differ from the total amount of virtual address space mapped. The value in the return_va_64 argument plus the value in the return_length_64 argument indicates the address of the first byte beyond the end of the mapping of the global disk file section. If the value in the section_offset_64 argument plus the value in the length_64 argument did not specify to map the entire global section, this byte can be located at an even virtual disk block boundary within the last page of the mapping. If the section being mapped does not completely fill the last page used to represent the global disk file section, this byte can be mapped into your address space; however, it is not backed up by the disk file. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address to which to map the global section. The specified virtual address must be a CPU-specific page-aligned address. If the flag SEC$M_EXPREG is specified, the start_va_64 argument must not be specified or must be specified as 0. If SEC$M_EXPREG is set and the start_va_64 argument is non-zero, the condition value SS$_IVSECFLG is returned. If the region_id_64 arguement specifies a shared page_table region, start_va_64 must be aligned to a CPU-specific page-table page boundary. 2 $MGBLSC_GPFN_64_(Alpha_Only) On Alpha systems, establishes a correspondence between pages in the virtual address space of the process and the pages occupied by a global page frame section. This service accepts 64-bit addresses. Format SYS$MGBLSC_GPFN_64 gs_name_64 ,ident_64 ,region_id_64 ,relative_page ,page_count ,acmode ,flags ,return_va_64 ,return_length_64 [,start_va_64] C Prototype int sys$mgblsc_gpfn_64 (void *gsdnam_64, struct _secid *ident_64, struct _generic_64 *region_id_64, unsigned int relative_page, unsigned int page_count, unsigned int acmode, unsigned int flags, void *(*(return_va_64)), unsigned __int64 *return_length_64, __optional_params); 3 Arguments gs_name_64 OpenVMS usage:section_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Name of the global section. The gs_name argument is the 32- or 64-bit virtual address of a naturally aligned 32-bit or 64-bit descriptor pointing to this name string. ident_64 OpenVMS usage:section_id type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Identification value specifying the version number of a global section. The ident_64 argument is a quadword containing three fields. The ident_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the identification value. The first longword specifies the matching criteria in its low- order two bits. If you specify the ident_64 argument as 0, the version number and match control fields default to 0. The version number is in the second longword. The version number contains two fields: a minor identification in the low-order 24 bits and a major identification in the high-order 8 bits. You can assign values for these fields by installation convention to differentiate versions of global sections. If no version number is specified when a section is created, processes that specify a version number when mapping cannot access the global section. region_id_64 OpenVMS usage:region identifier type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference The region ID associated with the region to map the private page frame section. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in STARLET.MLB define a symbolic name for each of the three default regions in P0, P1, and P2 space. Other region IDs, as returned by the $CREATE_REGION_64 service, can be specified. relative_page OpenVMS usage:CPU-specific page count type: longword (unsigned) access: read only mechanism: by value Relative CPU-specific page number within the global section to start mapping. page_count OpenVMS usage:CPU-specific page count type: longword (unsigned) access: read only mechanism: by value Length of mapping in CPU-specific pages. If zero is specified, the global page frame section is mapped to the end of the section. acmode OpenVMS usage:access-mode type: longword (unsigned) access: read only mechanism: by value Access mode to be associated with the pages mapped into the process virtual address space. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines symbols for the four access modes. The most privileged access mode used is the access mode of the caller. Address space cannot be created within a region that has a create mode associated with it that is more privileged than the caller's mode. The condition value SS$_IVACMODE is returned if the caller is less privileged than the create mode for the region. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flag mask specifying options for the operation. The flags argument is a longword bit vector in which each bit corresponds to a flag. The $SECDEF macro and the SECDEF.H file define a symbolic name for each flag. You construct the flags argument by performing a logical OR operation on the symbol names for all desired flags. All other bits in the flags argument are reserved for future use by Digital and should be specified as 0. The condition value SS$_IVSECFLG is returned if any undefined bits are set or if an illegal combination of flags is set. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address into which the global page frame section was mapped. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword that contains the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The 32- or 64-bit virtual address of a naturally aligned quadword into which the $MGBLSC_GPFN_64 service returns the length of the virtual address range in bytes. start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address to map the global section. The specified virtual address must be a CPU-specified page-aligned address. If the flag SEC$M_EXPREG is specified, the start_va_64 argument must not be specified or must be specified as 0. If SEC$M_EXPREG is set and the start_va_64 argument is non-zero, the condition value SS$_IVSECFLG is returned. Always refer to the return_va_64 and return_length_64 arguments to determine the range of virtual addresses mapped. 2 $MOD_HOLDER Modifies the specified holder record of the target identifier in the rights database. Format SYS$MOD_HOLDER id ,holder ,[set_attrib] ,[clr_attrib] C Prototype int sys$mod_holder (unsigned int id, struct _generic_64 *holder, unsigned int set_attrib, unsigned int clr_attrib); 3 Arguments id OpenVMS usage:rights_id type: longword (unsigned) access: read only mechanism: by value Binary value of target identifier whose holder record is modified when $MOD_HOLDER completes execution. The id argument is a longword containing the identifier value. holder OpenVMS usage:rights_holder type: quadword (unsigned) access: read only mechanism: by reference Identifier of holder being modified when $MOD_HOLDER completes execution. The holder argument is the address of a quadword containing the UIC identifier of the holder in the first longword and the value of 0 in the second longword. set_attrib OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Bit mask of attributes to be enabled for the identifier when $MOD_HOLDER completes execution. The set_attrib argument is a longword containing the attribute mask. clr_attrib OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Bit mask of attributes to be disabled for the identifier when $MOD_HOLDER completes execution. The clr_attrib argument is a longword containing the attribute mask. 2 $MOD_IDENT Modifies the specified identifier record in the rights database. Format SYS$MOD_IDENT id ,[set_attrib] ,[clr_attrib] ,[new_name] ,[new_value] C Prototype int sys$mod_ident (unsigned int id, unsigned int set_attrib, unsigned int clr_attrib, void *new_name, unsigned int new_value); 3 Arguments id OpenVMS usage:rights_id type: longword (unsigned) access: read only mechanism: by value Binary value of identifier whose identifier record is modified when $MOD_IDENT completes execution. The id argument is a longword containing the identifier value. set_attrib OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Bit mask of attributes to be enabled for the identifier when $MOD_IDENT completes execution. The set_attrib argument is a longword containing the attribute mask. clr_attrib OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Bit mask of attributes to be disabled for the identifier when $MOD_IDENT completes execution. The clr_attrib argument is a longword containing the attribute mask. new_name OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor New name to be given to the specified identifier. The new_ name argument is the address of the descriptor pointing to the identifier name string. new_value OpenVMS usage:rights_id type: longword (unsigned) access: read only mechanism: by value New value to be assigned to the specified identifier. The new_ value argument is a longword containing the binary value of the specified identifier. When the identifier value is changed, $MOD_ IDENT also changes the value of the identifier in all of the holder records in which the specified identifier appears. 2 $MOUNT Mounts a tape, disk volume, or volume set and specifies options for the mount operation. Format SYS$MOUNT itmlst C Prototype int sys$mount (void *itmlst); 3 Argument itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying options for the mount operation. The itmlst argument is the address of a list of item descriptors, each of which specifies an option and provides the information needed to perform the operation. 2 $MTACCESS Allows installations to provide their own routine to interpret and output the accessibility field in the VOL1 and HDR1 labels of an ANSI labeled magnetic tape. Format SYS$MTACCESS lblnam ,[uic] ,[std_version] ,[access_char] ,[access_spec] ,type C Prototype int sys$mtaccess ( unsigned int *lblnam, unsigned int uic, unsigned int std_version, unsigned int access_char, unsigned int access_spec, unsigned int type); 3 Arguments lblnam OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference ANSI label to be processed. The lblnam argument is the address of a longword containing the label. On input, the label passed is either the VOL1 or HDR1 label read from the magnetic tape; on output of labels, the value of this field is 0. The type of label passed is determined by type. uic OpenVMS usage:uic type: longword (unsigned) access: read only mechanism: by value UIC of the user performing the operation. The uic argument is a longword containing the UIC. std_version OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Decimal equivalent of the ANSI standard version read from the VOL1 label. The std_version argument is a longword containing the standard version number. access_char OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Accessibility character specified by the user. The access_char argument is a byte containing the accessibility character used for the output of labels. access_spec OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Value specifying whether the accessibility character passed in access_char was specified by the user. type OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Type of accessibility field to process. 2 $NUMTIM Converts an absolute or delta time from 64-bit system time format to binary integer date and time values. On Alpha systems, this service accepts 64-bit addresses. Format SYS$NUMTIM timbuf ,[timadr] C Prototype int sys$numtim (unsigned short int timbuf [7], struct _generic_64 *timadr); 3 Arguments timbuf OpenVMS usage:vector_word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Buffer into which $NUMTIM writes the converted date and time. The numtim argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a 7-word structure. timadr OpenVMS usage:date_time type: quadword access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) The 64-bit time value to be converted. The timadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a quadword containing this time. A positive- time value represents an absolute time, while a negative time value indicates a delta time. 2 $NUMUTC Converts an absolute 128-bit binary time into its numeric components. The numeric components are returned in local time. On Alpha systems, this service accepts 64-bit addresses. Format SYS$NUMUTC timbuf ,[utcadr] C Prototype int sys$numutc (unsigned short int timbuf [13], unsigned int *utcadr [4]); 3 Arguments timbuf OpenVMS usage:vector_word_unsigned type: word access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Buffer into which $NUMUTC writes the converted date and time. The timbuf argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a 13-word structure containing time, inaccuracy of time, and time differential factor. The time differential factor encoded in the 128-bit buffer is used to convert the UTC to its numerical components. Negative values in the inaccuracy field indicate an infinite inaccuracy. utcadr OpenVMS usage:coordinated universal time type: utc_date_time access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) The 128-bit UTC time value to be converted. The utcadr argument is optional; if it is not used, $NUMUTC will use the current time. 2 $PARSE_ACL Parses the specified text string and converts it to the binary representation for an access control entry (ACE). Format SYS$PARSE_ACL aclstr ,aclent ,[errpos] ,[accnam] ,[nullarg] C Prototype int sys$parse_acl void *aclstr, void *aclent, unsigned short int *errpos, void *accnam, int (*routin)(void) ;) 3 Arguments aclstr OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Formatted ACE that is parsed when $PARSE_ACL completes execution. The aclstr argument is the address of a string descriptor pointing to the text string to be parsed. aclent OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor Description of the ACE that is parsed when $PARSE_ACL completes execution. The aclent argument is the address of a descriptor pointing to the buffer in which the ACE is written. The first byte of the buffer contains the length of the ACE; the second byte contains a value that identifies the type of ACE, which in turn defines the format of the ACE. errpos OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of characters from aclstr processed by $PARSE_ACL. The errpos argument is the address of a word that receives the number of characters actually processed by the service. If the service fails, this count points to the failing point in the string. accnam OpenVMS usage:access_bit_names type: longword (unsigned) access: read only mechanism: by reference Names of the bits in the access mask when $PARSE_ACL is executing. The accnam argument is the address of an array of 32 quadword descriptors that define the names of the bits in the access mask. Each element points to the name of a bit. The first element names bit 0, the second element names bit 1, and so on. nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholding argument reserved to Digital. 2 $PERM_DIS_ALIGN_FAULT_REPORT_(Alpha_Only) On Alpha systems, disables user process alignment fault reporting. Format SYS$PERM_DIS_ALIGN_FAULT_REPORT C Prototype int sys$perm_dis_align_fault_report (void); 2 $PERM_REPORT_ALIGN_FAULT_(Alpha_Only) On Alpha systems, initializes user process alignment fault reporting. Format SYS$PERM_REPORT_ALIGN_FAULT C Prototype int sys$perm_report_align_fault (void); 2 $PROCESS_AFFINITY_(Alpha_Only) On Alpha systems, allows modification of the CPU affinity set for a specified kernel thread. This service accepts 64-bit addresses. Format SYS$PROCESS_AFFINITY [pidadr] [,prcnam] [,select_mask] [,modify_mask] [,prev_mask] [,flags] C Prototype int sys$process_affinity ( unsigned int *pidadr, void *prcnam, struct _generic_64 *select_mask, struct _generic_64 *modify_mask, struct _generic_64 *prev_mask, struct _generic_64 *flags); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference Process identification (PID) of a kernel thread whose affinity mask is to be modified or returned. The pidadr argument is the 32- or 64-bit address of a longword that contains the PID. Process selection is made through a combination of the pidadr and prcnam arguments. If neither are specified or if both have a zero value, the service operations are made to the user affinity mask of the current kernel thread of the calling process. The pidadr argument takes precedence over the prcnam argument in any circumstances where both are supplied in the service call. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Process name of the process whose affinity mask is to be modified or returned. The prcnam argument is the 32- or 64-bit address of a character string descriptor pointing to the process name string. A process can be identified with a 1- to 15-character string. The service operations are made to the user affinity mask of the initial thread of the specified process. If pidadr and prcnam are both specified, then pidadr is modified or returned and prcnam is ignored. If neither argument is specified, then the context of the current kernel thread of the calling process is modified or returned. select_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Mask specifying which bits of the specified process affinity mask are to be modified. The select_mask argument is the 32- or 64-bit address of a quadword bit vector wherein a bit, when set, specifies that the corresponding CPU position in the mask is to be modified. The individual CPU bits in select_mask can be referenced by their symbolic name constants, CAP$M_CPU0 through CAP$M_CPU31. These constants (zero-relative to match system CPU IDs) specify the position in the mask quadword that correspond to the bit name. Multiple CPUs can be selected by ORing together the appropriate bits. modify_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Mask specifying the settings for those explicit affinities selected in the select_mask argument. The modify_mask argument is the 32- or 64-bit address of a quadword bit vector wherein a bit, when set, specifies that the corresponding CPU is to be added to the specified process affinity set; when clear, the corresponding CPU is to be removed from the specified process affinity set. The bit constants CAP$M_CPU0 through CAP$M_CPU31 can be used to modify the appropriate bit position in the quadword pointed to by modify_mask. Multiple CPUs can be added to the affinity set by ORing together the appropriate bits. To add a specific CPU to the affinity mask set, that bit position must be set in both select_mask and modify_mask. To remove a specific CPU from the affinity mask set, that bit position must be set in select_mask and clear in modify_mask. The constant CAP$K_ALL_CPU_ADD, when specified in modify_mask, indicates that all CPUs specified in select_mask are to be added to the affinity mask set. The constant CAP$K_ALL_CPU_REMOVE indicates that all CPUs in select_mask are to be removed from the affinity mask set. prev_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference Previous CPU affinity mask for the specified kernel thread before execution of this call to $PROCESS_AFFINITY. The prev_mask argument is the 32- or 64-bit address of a quadword into which $PROCESS_AFFINITY writes the previous explicit affinity bit mask. flags OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Options selected for affinity modification. The flags argument is a quadword bit vector wherein a bit corresponds to an option. Only the bits specified below are used; the remainder of the quadword bits are reserved and must be 0. Each option (bit) has a symbolic name, which the $CAPDEF macro defines. The flags argument is constructed by performing a logical OR operation using the symbolic names of each desired option. 2 $PROCESS_CAPABILITIES_(Alpha_Only) On Alpha systems, allows modification of the user capability set for a specified kernel thread, or for the global user capability process default. This service accepts 64-bit addresses. Format SYS$PROCESS_CAPABILITIES [pidadr] [,prcnam] [,select_mask] [,modify_mask] [,prev_mask] [,flags] C Prototype int sys$process_capabilities (unsigned int *pidadr, void *prcnam, struct _generic_64 *select_mask, struct _generic_64 *modify_mask, struct _generic_64 *prev_mask, struct _generic_64 *flags); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference Process identification (PID) of a kernel thread whose user capability mask is to be modified or returned. The pidadr argument is the 32- or 64-bit address of a longword that contains the PID. Process selection is made through a combination of the pidadr and prcnam arguments. If neither are specified or if both have a zero value, the service operations are made to the user capability mask of the current kernel thread of the calling process. The pidadr argument takes precedence over the prcnam argument where both are supplied in the service call. If the constant CAP$M_FLAG_DEFAULT_ONLY is specified in flags, then the user portion of the default process user capability mask is modified or returned instead, regardless of the values specified in pidadr. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Process name of the process whose user capability mask is to be modified or returned. The prcnam argument is the 32- or 64- bit address of a character string descriptor pointing to the process name string. A process can be identified with a 1- to 15-character string. The service operations are made to the user capability mask of the initial thread of the specified process. You can use the prcnam argument only if the process identified by the descriptor has the same UIC group number as the calling process. To obtain information about processes in other groups, the pidadr argument must be used. If pidadr and prcnam are both specified, then prcnam is ignored. If neither argument is specified, then the context of the current kernel thread of the calling process is modified or returned. select_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Mask specifying which bits of the specified process's user capability mask are to be modified. The select_mask argument is the 32- or 64-bit address of a quadword bit vector wherein a bit, when set, specifies that the corresponding user capability is to be modified. The individual user capability bits in select_mask can be referenced by their symbolic bit constant names, CAP$M_USER1 through CAP$M_USER16. These constants (not zero-relative) specify the position in the mask quadword that corresponds to the bit name. Multiple capabilities can be selected by ORing together the appropriate bits. Alternately, the constant CAP$K_ALL_USER, when specified as the select_mask argument, selects all user capabilities. modify_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Mask specifying the settings for those capabilities selected in the select_mask argument. The modify_mask argument is the 32- or 64-bit address of a quadword bit vector wherein a bit, when set, specifies that the corresponding user capability is to be added to the specified kernel thread; when clear, the corresponding user capability is to be removed. The symbolic bit constants CAP$M_USER1 through CAP$M_USER16 can be used to modify the appropriate bit position in modify_mask. Multiple capabilities can be modified by ORing together the appropriate bits. To add a specific user capability to a kernel thread, that bit position must be set in both select_mask and modify_mask. To remove a specific user capability from a kernel thread, that bit position must be set in select_mask and clear in modify_mask. The symbolic constant CAP$K_ALL_USER_ADD, when specified in modify_mask, indicates that all capabilities specified in select_mask are to be added to the appropriate capability set. The symbolic constant CAP$K_ALL_USER_REMOVE indicates that all specified capabilities are to be removed from the set. prev_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference Previous user capability mask for the specified process or thread before execution of this call to $PROCESS_CAPABILITIES. The prev_mask argument is the 32- or 64-bit address of a quadword into which $PROCESS_CAPABILITIES writes the previous bit mask. If CAP$M_FLAG_DEFAULT_ONLY is set in the flags argument, then prev_mask will contain the user portion of the global default capability mask. flags OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Options selected for the user capability modification. The flags argument is a quadword bit vector wherein a bit corresponds to an option. Only the bits specified below are used; the remainder of the quadword bits are reserved and must be zero. Each option (bit) has a symbolic name, defined by the $CAPDEF macro. The flags argument is constructed by performing a logical OR operation using the symbolic names of each desired option. 2 $PROCESS_SCAN Creates and initializes a process context that is used by $GETJPI to scan processes on the local system or across the nodes in an OpenVMS Cluster system. On Alpha systems, this service accepts 64-bit addresses. Format SYS$PROCESS_SCAN pidctx [,itmlst] C Prototype int sys$process_scan (unsigned int *pidctx, void *itmlst); 3 Arguments pidctx OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Context value supplied by $PROCESS_SCAN to be used as the pidadr argument of $GETJPI. The pidctx argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a longword that is to receive the process context longword. This longword normally contains 0 or a previous context. If it contains a previous context, the old context is deleted. If it contains a value other than 0 or a previous context, the old value is ignored. itmlst OpenVMS usage:32-bit item_list_3 or 64-bit item_list_64b type: longword (unsigned) for 32-bit; quadword (unsigned) for 64-bit access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Item list specifying selection criteria to be used by the scan or to control the scan. 2 $PURGWS Removes a specified range of pages from the current working set of the calling process to make room for pages required by a new program segment. Format SYS$PURGWS inadr C Prototype int sys$purgws (struct _va_range *inadr); 3 Argument inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Starting and ending virtual addresses of the range of pages to be purged. The inadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. The addresses are adjusted up or down to fall on CPU- specific page boundaries. Only the virtual page number portion of each virtual address is used; the low-order byte-within-page bits are ignored. 2 $PURGE_WS_(Alpha_Only) On Alpha systems, removes a specified range of pages from the current working set of the calling process to make room for pages required by a new program segment. This service accepts 64-bit addresses. Format SYS$PURGE_WS start_va_64 ,length_64 C Prototype int sys$purge_ws (void *start_va_64, unsigned __int64 length_64); 3 Arguments start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address of the pages to be purged from the working set. The specified virtual address will be rounded down to a CPU-specific page boundary. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space to be purged from the working set. The specified length will be rounded up to a CPU-specific page boundary so that it includes all CPU-specific pages in the requested range. 2 $PUTMSG Writes informational and error messages to processes. On Alpha systems, this service accepts 64-bit addresses. Format SYS$PUTMSG msgvec ,[actrtn] ,[facnam] ,[actprm] C Prototype int sys$putmsg (void *msgvec, void (*actrtn)(__unknown_params), void *facnam, unsigned __int64 actprm); 3 Arguments msgvec OpenVMS usage:cntrlblk type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Message argument vector specifying the message or messages to be written and options that $PUTMSG is to use in writing the message or messages. The msgvec argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of the message vector. actrtn OpenVMS usage:procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) User-supplied action routine to be executed during message processing. The actrtn argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of this routine. facnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Facility prefix to be used in the first or only message written by $PUTMSG. The facnam argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a character string descriptor pointing to this facility prefix. actprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Parameter to be passed to the action routine. The actprm argument is a longword value containing this parameter. If you do not specify actprm, no parameter is passed. 2 $QIO Queues an I/O request to a channel associated with a device. This service completes asynchronously; for synchronous completion, use the Queue I/O Request and Wait ($QIOW) service. Format SYS$QIO [efn] ,chan ,func ,[iosb] ,[astadr] ,[astprm] ,[p1] ,[p2] ,[p3] ,[p4] ,[p5] ,[p6] C Prototype int sys$qio (unsigned int efn, unsigned short int chan, unsigned int func, struct _iosb *iosb, void (*astadr)(__unknown_params), __int64 astprm, void *p1, __int64 p2, __int64 p3, __int64 p4, __int64 p5, __int64 p6); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Event flag that $QIO is to set when the I/O operation completes. The efn argument is a longword value containing the number of the event flag; however, $QIO uses only the low-order byte. chan OpenVMS usage:channel type: longword (unsigned) access: read only mechanism: by value I/O channel assigned to the device to which the request is directed. The chan argument is a longword value containing the number of the I/O channel; however, $QIO uses only the low-order word. Specifying an invalid value for the chan argument will result in either SS$_IVCHAN or SS$_IVIDENT being returned. func OpenVMS usage:function_code type: longword (unsigned) access: read only mechanism: by value Device-specific function codes and function modifiers specifying the operation to be performed. The func argument is a longword containing the function code. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) I/O status block to receive the final completion status of the I/O operation. The iosb argument is the address of the quadword I/O status block. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) AST service routine to be executed when the I/O completes. The astadr argument is the address of the AST routine. The AST routine executes at the access mode of the caller of $QIO. astprm OpenVMS usage:user_arg type: quadword unsigned (Alpha); longword unsigned (VAX) access: read only mechanism: by 64-bit value (Alpha) by 32-bit value (VAX) AST parameter to be passed to the AST service routine. On Alpha systems, the astprm argument is a quadword value containing the AST parameter. On VAX systems, the astprm argument is a longword value containing the AST parameter. p1 to p6 OpenVMS usage:varying_arg type: quadword (unsigned) (Alpha); longword unsigned (VAX) access: read only mechanism: by 32- or 64-bit reference or by 64-bit value depending on the I/O function (Alpha) by 32-bit reference or by 32-bit value depending on the I/O function (VAX) Optional device-specific and function-specific I/O request parameters. 2 $QIOW The Queue I/O Request and Wait service queues an I/O request to a channel associated with a device. The $QIOW service completes synchronously; however, Digital recommends that you use an IOSB with this service to avoid premature completion. For asynchronous completion, use the Queue I/O Request ($QIO) service. In all other respects, $QIOW is identical to $QIO. For more information about $QIOW, refer to the description of $QIO. On Alpha systems, this service accepts 64-bit addresses. Format SYS$QIOW [efn] ,chan ,func ,[iosb] ,[astadr] ,[astprm] ,[p1] ,[p2] ,[p3] ,[p4] ,[p5] ,[p6] C Prototype int sys$qiow (unsigned int efn, unsigned short int chan, unsigned int func, struct _iosb *iosb, void (*astadr)(__unknown_params), __int64 astprm, void *p1, __int64 p2, __int64 p3, __int64 p4, __int64 p5, __int64 p6); 2 $READEF Returns the current status of all 32 event flags in a local or common event flag cluster and indicates whether the specified event flag is set or clear. On Alpha systems, this service accepts 64-bit addresses. Format SYS$READEF efn ,state C Prototype int sys$readef (unsigned int efn, unsigned int *state); 3 Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of any event flag in the cluster whose status is to be returned. The efn argument is a longword containing this number; however, $READEF uses only the low-order byte. Specifying an event flag within a cluster requests that $READEF return the status of all event flags in that cluster. state OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) State of all event flags in the specified cluster. The state argument is the 32- or 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a longword into which $READEF writes the state (set or clear) of the 32 event flags in the cluster. 2 $RELEASE_VP_(VAX_Only) On VAX systems, terminates the current process's status as a vector consumer. Format SYS$RELEASE_VP 2 $REM_HOLDER Deletes the specified holder record from the target identifier's list of holders. Format SYS$REM_HOLDER id ,holder C Prototype int sys$rem_holder (unsigned int id, struct _generic_64 *holder); 3 Arguments id OpenVMS usage:rights_id type: longword (unsigned) access: read only mechanism: by value Binary value of target identifier whose holder is deleted when $REM_HOLDER completes execution. The id argument is a longword containing the identifier value. holder OpenVMS usage:rights_holder type: quadword (unsigned) access: read only mechanism: by reference Identifier of holder being deleted when $REM_HOLDER completes execution. The holder argument is the address of a quadword containing the UIC identifier of the holder in the first longword and the value of 0 in the second longword. 2 $REM_IDENT Removes the specified identifier record and all its holder records (if any) from the rights database. Format SYS$REM_IDENT id C Prototype int sys$rem_ident (unsigned int id); 3 Argument id OpenVMS usage:rights_id type: longword (unsigned) access: read only mechanism: by value Binary value of identifier deleted from rights database when $REM_IDENT completes execution. The id argument is a longword containing the identifier value. 2 $RESCHED Requests reschedule of a process. Format SYS$RESCHED C Prototype int sys$resched (void); 3 Arguments None. 2 $RESTORE_VP_EXCEPTION_(VAX_Only) On VAX systems, restores the saved exception state of the vector processor. Format SYS$RESTORE_VP_EXCEPTION excid 3 Argument excid OpenVMS usage:context type: longword (unsigned) access: read only mechanism: by reference Internal ID of the exception state saved by $SAVE_VP_EXCEPTION. The excid argument is the address of a longword containing this ID. 2 $RESTORE_VP_STATE_(VAX_Only) On VAX systems, allows an AST routine or condition handler to restore the vector state of the mainline routine. Format SYS$RESTORE_VP_STATE 3 Arguments None. 2 $RESUME Causes a process previously suspended by the Suspend Process ($SUSPND) service to resume execution or cancels the effect of a subsequent suspend request. Format SYS$RESUME [pidadr] ,[prcnam] C Prototype int sys$resume (unsigned int *pidadr, void *prcnam); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) of the process to be resumed. The pidadr argument is the address of a longword containing the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the cluster. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the process to be resumed. The prcnam argument is the address of a character string descriptor pointing to the process name. A process running on the local node can be identified with a 1- to 15-character string. To identify a process on a particular node on a cluster, specify the full process name, which includes the node name as well as the process name. The full process name can contain up to 23 characters. prcnam argument. You must use the pidadr argument to delete processes in other UIC groups. 2 $REVOKID Removes the specified identifier from the rights list of the process or the system. If the identifier is listed as a holder of any other identifier, the appropriate holder records are also deleted. Format SYS$REVOKID [pidadr] ,[prcnam] ,[id] ,[name] ,[prvatr] C Prototype int sys$revokid (unsigned int *pidadr, void *prcnam, struct _generic_64 *id, void *name, unsigned int *prvatr, unsigned int segment); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) number of the process affected when $REVOKID completes execution. The pidadr argument is the address of a longword containing the PID of the process to be affected. You use -1 to indicate the system rights list. When pidadr is passed, it is also returned; therefore, you must pass it as a variable rather than a constant. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Process name on which $REVOKID operates. The prcnam argument is the address of a character string descriptor containing the process name. The maximum length of the name is 15 characters. Because the UIC group number is interpreted as part of the process name, you must use pidadr to specify the rights list of a process in a different group. id OpenVMS usage:rights_id type: quadword (unsigned) access: modify mechanism: by reference Identifier and attributes to be removed when $REVOKID completes execution. The id argument is the address of a quadword containing the binary identifier code to be removed in the first longword and the attributes in the second longword. name OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the identifier removed when $REVOKID completes execution. The name argument is the address of a descriptor pointing to the name of the identifier. prvatr OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by reference Attributes of the deleted identifier. The prvatr argument is the address of a longword used to store the attributes of the identifier. 2 $RMSRUNDWN Closes all files opened by OpenVMS RMS for the image or process and halts I/O activity. This routine performs a $CLOSE service for each file opened for processing. Format SYS$RMSRUNDWN buf-addr ,type-value C Prototype int sys$rmsrundwn ( void *buf-addr, unsigned char *type-value); 3 Arguments buf-addr OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor A descriptor pointing to a 22-byte buffer that is to receive the device identification (16 bytes) and the file identification (6 bytes) of an improperly closed output file. The buf-addr argument is the address of the descriptor that points to the buffer. type-value OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by value A single byte code that specifies the type of I/O rundown to be performed. The type-value argument is the actual value used. 2 $SAVE_VP_EXCEPTION_(VAX_Only) On VAX systems, saves the pending exception state of the vector processor. Format SYS$SAVE_VP_EXCEPTION excid 3 Argument excid OpenVMS usage:context type: longword (unsigned) access: read only mechanism: by reference Internal ID of the exception state saved by $SAVE_VP_EXCEPTION. The excid argument is the address of a longword containing this ID. 2 $SCAN_INTRUSION Scans the intrusion database for suspects or intruders during a login attempt, audits login failures and updates records, or adds new records to the intrusion database. Format SYS$SCAN_INTRUSION logfail_status ,failed_user ,job_type ,[source_terminal] ,[source_node] ,[source_user] ,[source_addr] ,[failed_password] ,[parent_user] ,[parent_id] ,[flags] C Prototype int sys$scan_intrusion (unsigned int logfail_status, void *failed_user, unsigned int job_type, void *source_terminal, void *source_node, void *source_user, void *source_address, void *failed_password, void *parent_user, unsigned int parent_id, unsigned int flags); 3 Arguments logfail_status OpenVMS usage:status code type: longword (unsigned) access: read only mechanism: by value Reason why the user's login attempt failed. The logfail_status argument is a longword containing the login failure status code. failed_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor User name associated with the unsuccessful login attempt. The failed_user argument is the address of a character-string descriptor pointing to the failed user name. job_type OpenVMS usage:job type type: longword (unsigned) access: read only mechanism: by value Type of job that failed. The job_type argument is a longword indicating the type of job that failed. source_terminal OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Source terminal where the login attempt is occurring. The source_ terminal argument is the address of a character-string descriptor pointing to the device name of the terminal from which the login attempt originates. source_node OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the node from which the user's login attempt originates. The source_node argument is the address of a character-string descriptor pointing to the source node name string. source_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor User name associated with the login attempt. The source_user argument is the address of a character-string descriptor pointing to the source user name string. source_addr OpenVMS usage:node address type: descriptor access: read only mechanism: by reference Source DECnet for OpenVMS address from which the login attempt originates. The source_addr argument is the address of a descriptor containing the source node address. failed_password OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Password the user entered for the login attempt. The failed_ password argument is the address of a character-string descriptor pointing to the plaintext password the user entered in order to log in. parent_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Parent process name of the failed login. The parent_user argument is the address of a character-string descriptor pointing to the parent process name of the failed login process. parent_id OpenVMS usage:process_id type: longword (unsigned) access: read only mechanism: by value Process identification of the parent process from which the login was attempted. The parent_id argument is a longword containing the parent process identification. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Operational instructions for the service. The flags argument is a longword bit mask wherein each bit corresponds to an option. 2 $SCHDWK Schedules the awakening (restarting) of a process that has placed itself in a state of hibernation with the Hibernate ($HIBER) service. Format SYS$SCHDWK [pidadr] ,[prcnam] ,daytim ,[reptim] C Prototype int sys$schdwk (unsigned int *pidadr, void *prcnam, struct _generic_64 *daytim, struct _generic_64 *reptim); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) of the process to be awakened. The pidadr argument is the address of a longword containing the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the OpenVMS Cluster system. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed length string descriptor Name of the process to be awakened. The prcnam is the address of a character string descriptor pointing to the process name. A process running on the local node can be identified with a string of from 1 to 15 characters. daytim OpenVMS usage:date_time type: quadword access: read only mechanism: by reference Time at which the process is to be awakened. The daytim argument is the address of a quadword containing this time in the system 64-bit time format. A positive time value specifies an absolute time at which the specified process is to be awakened. A negative time value specifies an offset (delta time) from the current time. reptim OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference Time interval at which the wakeup request is to be repeated. The reptim argument is the address of a quadword containing this time interval. The time interval must be expressed in delta time format. 2 $SCHED Affects process scheduling. This service is intended for use by a class scheduler process. Format SYS$SCHED func ,p1 ,p2 ,p3 C Prototype int sys$sched (unsigned int func, unsigned int *p1, unsigned int *p2, unsigned int *p3); 3 Arguments func OpenVMS usage:function_code type: longword (unsigned) access: write only mechanism: by value Function code specifying the action $SCHED is to perform. The func argument is a longword containing this code. p1, p2, p3 OpenVMS usage:longword type: longword (unsigned) access: varies mechanism: varies The meaning of the p1, p2, and p3 arguments depends on the function code specified in the func argument, and is defined in the Function Codes section. 2 $SETAST Enables or disables the delivery of asynchronous system traps (ASTs) for the access mode from which the service call was issued. Format SYS$SETAST enbflg C Prototype int sys$setast (char enbflg); 3 Argument enbflg OpenVMS usage:boolean type: byte (unsigned) access: read only mechanism: by value Value specifying whether ASTs are to be enabled. The enbflg argument is a byte containing this value. The value 1 enables AST delivery for the calling access mode; the value 0 disables AST delivery. 2 $SETCLUEVT_(Alpha_Only) On Alpha systems, establishes a request for notification when an OpenVMS Cluster configuration event occurs. Format SYS$SETCLUEVT event ,astadr ,[astprm] ,[acmode] ,[handle] C Prototype int sys$setcluevt (unsigned int event, void (*astadr)(__unknown_params), int astprm, unsigned int acmode, struct _generic_64 *handle); 3 Arguments event OpenVMS usage:event_code type: longword (unsigned) access: read only mechanism: by value Event code indicating the type of cluster configuration event for which an AST is to be delivered. The event argument is a value indicating which type of event is of interest. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference Notification AST routine to receive control after a change in OpenVMS Cluster configuration occurs. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Optional AST parameter to be passed to the AST service routine. The astprm argument is a longword value containing the AST parameter. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Optional access mode at which the configuration event AST is to execute. The acmode argument is a longword containing the access mode. Each access mode has a symbolic name. The $PSLDEF macro defines the following symbols for the four access modes. Symbol Access Mode PSL$C_KERNEL Kernel PSL$C_EXEC Executive PSL$C_SUPER Supervisor PSL$C_USER User The value of the access mode must not be more privileged than the access mode of the caller. handle OpenVMS usage:identifier type: quadword (unsigned) access: write only mechanism: by reference Optional identifier to receive a value that uniquely identifies this AST request. $SETCLUEVT sets this handle to a unique value so that it can later be used to identify the request in the $CLRCLUEVT and $TSTCLUEVT services. 2 $SETDDIR Allows you to read and change the default directory string for the process. Format SYS$SETDDIR [new-dir-addr] ,[length-addr] ,[cur-dir-addr] C Prototype int sys$setddir (void *newdiraddr, unsigned short int *lengthaddr, void *curdiraddr); 3 Arguments new-dir-addr OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor A descriptor of the new default directory. The new-dir-addr argument is the address of the descriptor that points to the buffer containing the new directory specification that RMS will use to set the new process-default directory. If the default directory is not to be changed, the value of the new-dir-addr argument should be 0. length-addr OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference A word that is to receive the length of the current default directory. The length-addr argument is the address of the word that will receive the length. If you do not want this value returned, specify the value 0. cur-dir-addr OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor A descriptor of a buffer that is to receive the current default directory string. The cur-dir-addr argument is the address of the descriptor that points to the buffer area that is to receive the current directory string. 2 $SETDFPROT Allows you to read and write the default file protection for the process. Format SYS$SETDFPROT [new-def-prot-addr] ,[cur-def-prot-addr] C Prototype int sys$setdfprot (unsigned short int *newdefprotaddr, unsigned short int *curdefprotaddr); 3 Arguments new-def-prot-addr OpenVMS usage:file_protection type: word (unsigned) access: read only mechanism: by reference A word that specifies the new default file protection specification. The new-def-prot-addr argument is the address of the word that specifies the desired protection. If you do not want the process-default file protection to be changed, specify the value 0. cur-def-prot-addr OpenVMS usage:file_protection type: word (unsigned) access: write only mechanism: by reference A word that is to receive the current default file protection specification. The cur-def-prot-addr argument is the address of the word that receives the current process-default protection. If you do not want the current default file protection, specify the value 0. 2 $SETEF The Set Event Flag service sets an event flag in a local or common event flag cluster. The condition value returned by $SETEF indicates whether the specified flag was previously set or clear. After the event flag is set, processes waiting for the event flag to be set resume execution. Format SYS$SETEF efn C Prototype int sys$setef (unsigned int efn); 3 Argument efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set. The efn argument is a longword containing this number; however, $SETEF uses only the low-order byte. 2 $SETEXV Assigns a condition handler address to the primary, secondary, or last chance exception vectors, or removes a previously assigned handler address from any of these three vectors. Format SYS$SETEXV [vector] ,[addres] ,[acmode] ,[prvhnd] C Prototype int sys$setexv (unsigned int vector, int (*addres)(__unknown_params), unsigned int acmode, void *(*(prvhnd))); 3 Arguments vector OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Vector for which a condition handler is to be established or removed. The vector argument is a longword value. The value 0 (the default) specifies the primary exception vector; the value 1, the secondary vector; and the value 2, the last chance exception vector. addres OpenVMS usage:procedure type: procedure value access: call without stack unwinding mechanism: by reference Condition handler address to be established for the exception vector specified by the vector argument. The addres argument is a longword value containing the address of the condition handler routine. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode for which the exception vector is to be modified. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines symbols for the four access modes. prvhnd OpenVMS usage:procedure value type: longword (unsigned) access: write only mechanism: by reference Previous condition handler address contained by the specified exception vector. The prvhnd argument is the address of a longword into which $SETEXV writes the handler's procedure value. 2 $SETIME Changes the value of, or recalibrates, the system time. On Alpha systems, this service accepts 64-bit addresses. Format SYS$SETIME [timadr] C Prototype int sys$setime (struct _generic_64 *timadr); 3 Argument timadr OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) New absolute time value for the system time, specifying the number of 100-nanosecond intervals since 00:00 o'clock, November 17, 1858. The timadr argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a quadword containing the new system time value. A negative (delta) time value is invalid. 2 $SETIMR Sets the timer to expire at a specified time. On Alpha systems, this service accepts 64-bit addresses. Format SYS$SETIMR [efn] ,daytim ,[astadr] ,[reqidt] ,[flags] C Prototype int sys$setimr (unsigned int efn, struct _generic_64 *daytim, void (*astadr)(__unknown_params), unsigned __int64 reqidt, unsigned int flags); 3 Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Event flag to be set when the timer expires. The efn argument is a longword value containing the number of the event flag; however, $SETIMR uses only the low-order byte. If you do not specify efn, event flag 0 is set. daytim OpenVMS usage:date_time type: quadword access: read only mechanism: by 64-bit reference (Alpha) by 32-bit reference (VAX) Time at which the timer expires. The daytim argument is the 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of a quadword time value. A positive time value specifies an absolute time at which the timer expires; a negative time value specifies an offset (delta time) from the current time. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by 64-bit reference (Alpha) by 32-bit reference (VAX) AST service routine that is to execute when the timer expires. The astadr argument is the 64-bit address (on Alpha systems) or the 32-bit address (on VAX systems) of the procedure value of this routine. If you do not specify the value of astadr or specify it as 0 (the default), no AST routine executes. reqidt OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Identification of the timer request. The reqidt argument is a longword value containing a number that uniquely identifies the timer request. If you do not specify reqidt, the value 0 is used. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Longword of bit flags for the set timer operation. Currently, only bit 0 is used for the flags argument. When the low bit (bit 0) is set, it indicates that this timer request should be in units of CPU time, rather than elapsed time. When bit 0 is clear (the default), the timer request is in units of elapsed time. The flags argument is optional. 2 $SET_IMPLICIT_AFFINITY_(Alpha_Only) On Alpha systems, controls or retrieves the activation state for the implicit affinity system capability of a specific kernel thread or of the global process default. This service accepts 64-bit addresses. Format SYS$SET_IMPLICIT_AFFINITY [pidadr] [,prcnam] [,state] [,cpu_id] [,prev_mask] C Prototype int sys$set_implicit_affinity (unsigned int *pidadr, void *prcnam, struct _generic_64 *state, int cpu_id, struct _generic_64 *prev_mask); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference Process identification (PID) of a kernel thread whose implicit affinity is to be modified or returned. The pidadr argument is the 32- or 64-bit address of a longword that contains the PID. Process selection is made through a combination of the pidadr and prcnam arguments. If neither are specified or if both have a zero value, the service operations are made to the user capability mask of the current kernel thread of the current calling process. The pidadr argument takes precedence over the prcnam argument where both are supplied in the service call. If the bit constant CAP$M_IMPLICIT_DEFAULT_ONLY is specified in the state argument, then the implicit affinity state portion of the default capability mask is modified or returned instead. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Process name of the process whose implicit affinity capability state is to be modified or returned. The prcnam argument is the 32- or 64-bit address of a character string descriptor pointing to the process name string. A process can be identified with a 1- to 15-character string. The service operations are made to the user capability mask of the initial thread of the specified process. If pidadr and prcnam are both specified, then pidadr is modified or returned and prcnam is ignored. If neither argument is specified, then the context of the current kernel thread of the calling process is modified or returned. state OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference State options that can be selected for the affected thread's implicit affinity. The state argument is a pointer to a quadword bit vector wherein a bit corresponds to a requested state for the implicit affinity feature. Only the bits specified below are used; the remainder of the quadword bits are reserved. Each option (bit) has a symbolic name, defined in the $CAPDEF macro. The state argument is constructed by performing a logical OR operation using the symbolic names of each desired option. cpu_id OpenVMS usage:longword type: longword (unsigned) access: read only mechanism: by value Identifier of the CPU requested as the first CPU on which this kernel thread is to execute. The cpu_id is a longword containing this number, which is in the supported range of individual CPUs from 0 to SYI$_MAX_CPUS -1. If no explicit CPU is needed, specifying a value of -1 in this argument indicates the system is to select the initial association based on system dynamics and load balancing. Note that, regardless of what explicit CPU is supplied to this argument, it will be taken only as a suggestion. This service will attempt to make the requested association, but it will be superseded by another CPU if the system dynamics are adversely affected by the operation. prev_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference Previous implicit affinity state mask for the specified kernel thread before execution of this call to $SET_IMPLICIT_AFFINITY. The prev_mask argument is the 32- or 64-bit address of a quadword into which $SET_IMPLICIT_AFFINITY writes a bit mask specifying the implicit affinity state. The current state of the kernel thread's current implicit affinity feature can be determined by testing the returned mask with the symbolic bit definitions described for the state argument. These bit definitions are found in the $CAPDEF macro. 2 $SETPRA Establishes a routine to receive control after a power recovery is detected. Format SYS$SETPRA astadr ,[acmode] C Prototype int sys$setpra (int (*astadr)(__unknown_params), unsigned int acmode); 3 Arguments astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference Power recovery AST routine to receive control when a power recovery is detected. The astadr argument is the address of this routine. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode at which the power recovery AST routine is to execute. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines symbols for the access modes. 2 $SETPRI Changes the base priority of the process. The base priority is used to determine the order in which executable processes are to run. Format SYS$SETPRI [pidadr] ,[prcnam] ,pri ,[prvpri] ,[nullarg] ,[nullarg] C Prototype int sys$setpri (unsigned int *pidadr, void *prcnam, unsigned int pri, unsigned int *prvpri, unsigned int *pol, unsigned int *prvpol); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) of the process whose priority is to be set. The pidadr argument is the address of the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the cluster. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Process name of the process whose priority is to be changed. The prcnam argument is the address of a character string descriptor pointing to the process name. A process running on the local node can be identified with a 1- to 15-character string. To identify a process on a particular node on a cluster, specify the full process name, which includes the node name as well as the process name. The full process name can contain up to 23 characters. pri OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value New base priority to be established for the process. The pri argument is a longword value containing the new priority. Priorities that are not real time are in the range 0 through 15; real-time priorities are in the range 16 through 31. prvpri OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference Base priority of the process before the call to $SETPRI. The prvpri argument is the address of a longword into which $SETPRI writes the previous base priority of the process. policy OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference On Alpha systems, address of a longword containing the new scheduling policy for the process. prvpol OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference On Alpha systems, address of a longword into which the previous scheduling policy for the process is written. If the policy argument is null, no change in policy is requested and prvpol returns the current policy. nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholding argument reserved to Digital. 2 $SETPRN Allows a process to establish or to change its own process name. Format SYS$SETPRN [prcnam] C Prototype int sys$setprn ( void *prcnam); 3 Argument prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed length string descriptor Process name to be given to the calling process. The prcnam argument is the address of a character string descriptor pointing to a 1- to 15-character process name string. If you do not specify prcnam, the calling process is given no name. 2 $SETPRT Allows a process to change the protection on a page or range of pages. Format SYS$SETPRT inadr ,[retadr] ,[acmode] ,prot ,[prvprt] C Prototype int sys$setprt (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode, unsigned int prot, unsigned char *prvprt); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Starting and ending virtual addresses of the range of pages whose protection is to be changed. The inadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. Addresses are adjusted up or down to fall on CPU-specific page boundaries. Only the virtual page number portion of each virtual address is used; the low-order byte-within-page bits are ignored. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference-array reference or descriptor Starting and ending virtual addresses of the range of pages whose protection was actually changed by $SETPRT. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode associated with the call to $SETPRT. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines symbols for the access modes. prot OpenVMS usage:page_protection type: longword (unsigned) access: read only mechanism: by value Page protection to be assigned to the specified pages. The prot argument is a longword value containing the protection code. Only bits 0 to 3 are used; bits 4 to 31 are ignored. prvprt OpenVMS usage:page_protection type: byte (unsigned) access: write only mechanism: by reference Protection previously assigned to the last page in the range. The prvprt argument is the address of a byte into which $SETPRT writes the protection of this page. The prvprt argument is useful only when protection for a single page is being changed. 2 $SETPRT_64_(Alpha_Only) On Alpha systems, allows a process to change the protection on a page or range of pages. This service accepts 64-bit addresses. Format SYS$SETPRT_64 start_va_64 ,length_64 ,acmode ,prot ,return_va_64 ,return_length_64 ,return_prot_64 C Prototype int sys$setprt_64 (void *start_va_64, unsigned __int64 length_64, unsigned int acmode, unsigned int prot, void *(*(return_va_64)), unsigned __int64 *return_length_64, unsigned int *return_prot_64); 3 Arguments start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address of the range of pages whose protection is to be changed. The specified virtual address will be rounded down to a CPU-specific boundary. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space whose protection is to be changed. The specified length will be rounded up to a CPU- specific page boundary so that it includes all CPU-specific pages in the requested range. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode associated with the call to $SETPRT_64. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. To change the protection of any page in the specified range, the resultant access mode must be equal to or more privileged than the access mode of the owner of that page. prot OpenVMS usage:page_protection type: longword (unsigned) access: read only mechanism: by value Page protection to be assigned to the specified pages. The prot argument is a longword value containing the protection code. Only bits 0 to 3 are used; bits 4 to 31 are ignored. The $PRTDEF macro for MACRO-32 and the include file PRTDEF.H for C define the symbolic names for the protection codes. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the range of pages whose protection was actually changed. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the virtual address range whose protection was actually changed. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range in bytes. return_prot_64 OpenVMS usage:page_protection type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference Protection previously assigned to the last page in the range. The return_prot_64 argument is the 32- or 64-bit virtual address of a naturally aligned longword into which $SETPRT_64 writes the protection of this page. The return_prot_64 argument is useful only when protection for a single page is being changed. 2 $SETPRV Enables or disables specified privileges for the calling process. Format SYS$SETPRV [enbflg] ,[prvadr] ,[prmflg] ,[prvprv] C Prototype int sys$setprv (char enbflg, struct _generic_64 *prvadr, char prmflg, struct _generic_64 *prvprv); 3 Arguments enbflg OpenVMS usage:boolean type: longword (unsigned) access: read only mechanism: by value Indicator specifying whether the specified privileges are to be enabled or disabled. The enbflg argument is a longword value. The value 1 indicates that the privileges specified in the prvadr argument are to be enabled. The value 0 (the default) indicates that the privileges are to be disabled. prvadr OpenVMS usage:mask_privileges type: quadword (unsigned) access: read only mechanism: by reference Privileges to be enabled or disabled for the calling process. The prvadr argument is the address of a quadword bit vector wherein each bit corresponds to a privilege that is to be enabled or disabled. prmflg OpenVMS usage:boolean type: longword (unsigned) access: read only mechanism: by value Indicator specifying whether the privileges are to be affected permanently or temporarily. The prmflg argument is a longword value. The value 1 specifies that the privileges are to be affected permanently, that is, until you change them again by using $SETPRV or until the process is deleted. The value 0 (the default) specifies that the privileges are to be affected temporarily, that is, until the current image exits (at which time the permanently enabled privileges of the process will be restored). prvprv OpenVMS usage:mask_privileges type: quadword (unsigned) access: write only mechanism: by reference Privileges previously possessed by the calling process. The prvprv argument is the address of a quadword bit vector wherein each bit corresponds to a privilege that was previously either enabled or disabled. If you do not specify prvprv or assign it the value 0, the previous privilege mask is not returned. 2 $SETRWM Allows a process to specify what action system services should take when system resources required for their execution are unavailable. Format SYS$SETRWM [watflg] C Prototype int sys$setrwm ( char watflg); 3 Argument watflg OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Indicator specifying whether system services should wait for required resources. The watflg argument is a longword value. The value 0 (the default) specifies that system services should wait until resources needed for their execution become available. The value 1 specifies that system services should return failure status immediately when resources needed for their execution are unavailable. 2 $SETSHLV Controls whether a process automatically unshelves files. Format SYS$SETSHLV [pidadr] ,[prcnam] ,[shlvflg] C Prototype int sys$setshlv (unsigned int *pidadr, void *prcnam, unsigned int shlvflg); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) of the process. The pidadr argument is the address of the PID. The pidadr argument can only refer to a process running on the local node. You cannot modify a process on a remote node. You must specify the pidadr argument to modify a process whose UIC group number is different from that of the calling process. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed length string descriptor Process name of the process. The prcnam argument is the address of a character string descriptor pointing to the process name. You identify a process with a 1- to 15-character string. You can only use the prcnam argument to modify a process in the same UIC group as the calling process. To modify a process in another UIC group, you must specify the pidadr argument. shlvflg OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Value specifying whether automatic unshelving is to be turned on or off. The shlvflg argument is a longword containing this value. The value 0 turns automatic unshelving on. The value 1 turns automatic unshelving off. 3 Description The Set Automatic Unshelving service controls whether a process automatically unshelves files. The pidadr and prcnam default to the current process. If the longword at address pidadr is 0, the PID of the target process is returned. The setting for automatic unshelving is inherited by subprocesses. The DCL command SET PROCESS/[NO]AUTOUNSHELVE also controls automatic unshelving for a process; refer to the OpenVMS DCL Dictionary for details. Required Access or Privileges Depending on the operation, the calling process might need one of the following privileges to use $SETSHLV: o GROUP privilege to modify a process in the same group, unless the target process has the same UIC as the calling process. o WORLD privilege to modify any process in the system. Required Quota None Related Services $GETJPI 3 Condition_Values_Returned SS$_WASCLR The service completed successfully. Automatic unshelving was previously on. SS$_WASSET The service completed successfully. Automatic unshelving was previously off. SS$_ACCVIO An argument was not accessible by the caller. SS$_BADPARAM The shlvflg argument was invalid. SS$_IVLOGNAM The prcnam argument was invalid. The process name string had either 0 characters or more than 15 characters. SS$_NONEXPR The specified process did not exist, or the specified process identification was invalid. SS$_NOPRIV The caller did not have the privilege to modify other processes. SS$_REMOTE_PROC The specified process was not on the local node. The service cannot modify a process on a remote node. 2 $SETSTK Allows a process to change the size of its supervisor, executive, and kernel stacks by altering the values in the stack limit and base arrays held in P1 (per-process) space. Format SYS$SETSTK inadr ,[retadr] ,[acmode] C Prototype int sys$setstk (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Range of addresses that express the stack's new limits. The inadr argument is the address of a 2-longword array containing, in order, the address of the top of the stack and the address of the base of the stack. Because stacks in P1 space expand from high to low addresses, the address of the base of the stack must be greater than the address of the top of the stack. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference Range of addresses that express the stack's previous limits. The retadr argument is the address of a 2-longword array into which $SETSTK writes, in the first longword, the previous address of the top of the stack and, in the second longword, the previous address of the base of the stack. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode of the stack to be altered. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines symbols for the four access modes. The most privileged access mode used is the access mode of the caller. 2 $SETSWM Allows a process to control whether it can be swapped out of the balance set. Format SYS$SETSWM [swpflg] C Prototype int sys$setswm (char swpflg); 3 Argument swpflg OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Indicator specifying whether the process can be swapped. The swpflg argument is a longword value. The value 0 (the default) enables process swap mode, meaning the process can be swapped. The value 1 disables process swap mode, meaning the process cannot be swapped. 2 $SETUAI Modifies the user authorization file (UAF) record for a specified user. Format SYS$SETUAI [nullarg] ,[contxt] ,usrnam ,itmlst ,[nullarg] ,[nullarg] ,[nullarg] C Prototype int sys$setuai (unsigned int efn, unsigned int *contxt, void *usrnam, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); 3 Arguments nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholding argument reserved to Digital. contxt OpenVMS usage:longword type: longword (unsigned) access: modify mechanism: by reference A longword used to maintain authorization file context. The contxt argument is the address of a longword to receive a $SETUAI context value. On the initial call, this longword should contain the value -1. On subsequent calls, the value of the contxt argument from the previous call should be passed back in. usrnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed length string descriptor Name of the user whose UAF record is modified. The usrnam argument is the address of a descriptor pointing to a character text string containing the user name. The user name string can contain a maximum of 32 alphanumeric characters. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying which information from the specified UAF record is to be modified. The itmlst argument is the address of a list of one or more item descriptors, each of which specifies an item code. The item list is terminated by the item code 0 or by the longword 0. 2 $SETUP_AVOID_PREEMPT Performs initial setup for process preemption avoidance. Format SYS$SETUP_AVOID_PREEMPT enable C Prototype int sys$setup_avoid_preempt (int enable); 3 Arguments enable OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Enables or disables preemption avoidance. If the enable argument is set to 1, preemption avoidance is enabled; if 0, preemption avoidance is disabled. 2 $SET_RESOURCE_DOMAIN Controls the association between a calling process and resource domains. Format SYS$SET_RESOURCE_DOMAIN func ,rsdm_id ,domain_number ,[nullarg] ,[access] ,[acmode] C Prototype int sys$set_resource_domain (unsigned int func, unsigned int *rsdm_id, unsigned int domain_number, unsigned int nullarg, unsigned int access, unsigned int acmode); 3 Arguments func OpenVMS usage:function_code type: longword (unsigned) access: read only mechanism: by value Function code specifying the action that $SET_RESOURCE_DOMAIN is to perform. The func argument is a longword containing this function code. rsdm_id OpenVMS usage:longword type: longword (unsigned) access: write only to join, read only to leave mechanism: by reference Resource domain identification. The rsdm_id argument is the address of a longword specifying the association of the calling process with the resource domain. domain_number OpenVMS usage:longword type: longword (unsigned) access: read only mechanism: by value Domain number that identifies the resource domain. The domain_ number argument is a longword value containing the resource domain number. nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholder reserved to Digital. You must specify 0. access OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Types of access desired when using the lock management services within the resource domain. The access argument is a longword bit mask specifying the access types required; these can include read, write, and lock. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode requested for the association to the resource domain. The most privileged access mode granted is the access mode of the caller. Locks cannot be taken from access modes less privileged than the access mode of the association. 2 $SET_SECURITY Modifies the security characteristics of a protected object. Format SYS$SET_SECURITY [clsnam] ,[objnam] ,[objhan] ,[flags] ,[itmlst] ,[contxt] ,[acmode] C Prototype int sys$set_security (void *clsnam, void *objnam, unsigned int *objhan, unsigned int flags, void *itmlst, unsigned int *contxt, unsigned int *acmode); 3 Arguments clsnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor Name of the object class. The clsnam argument is the address of a descriptor pointing to a string that contains the name of the object class. objnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor Name of the protected object whose associated security profile is going to be retrieved. The objnam argument is the address of a descriptor pointing to a string containing the name of the protected object. objhan OpenVMS usage:object_handle type: longword (unsigned) access: read only mechanism: by reference Data structure identifying the object to address. The objhan argument is an address of a longword containing the object handle. You can use the objhan argument as an alternative to the objnam argument; for example, a channel number clearly specifies the file open on the channel and can serve as an object handle. flags OpenVMS usage:flags type: mask_longword access: read only mechanism: by value Mask specifying processing options. The flags argument is a longword bit vector wherein a bit, when set, specifies the corresponding option. The flags argument requires the contxt argument. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying which information about the process or processes is to be modified. The itmlst argument is the address of a list of item descriptors, each of which describes an item of information. The list of item descriptors is terminated by a longword of 0. contxt OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Value used to maintain protected object processing context when dealing with a single protected object across multiple $GET_ SECURITY/$SET_SECURITY calls. Whenever the context value is nonzero, the class name, object name, or object handle arguments are disregarded. An input value of 0 indicates that a new context should be established. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by reference Access mode to be used in the object protection check. The acmode argument is the address of a longword containing the access mode. The acmode argument defaults to kernel mode; however, the system compares acmode with the caller's access mode and uses the least privileged mode. The access modes are defined in the system macro $PSLDEF library. Digital recommends that this argument be omitted (passed as zero). 2 $SHOW_INTRUSION Searches for and returns information about records in the intrusion database matching the caller's specifications. Format SYS$SHOW_INTRUSION user_criteria ,intruder ,intruder_len ,breakin_block ,[flags] ,[context] C Prototype int sys$show_intrusion (void *user_criteria, void *intruder, unsigned short int *intruder_len, void *breakin_block, unsigned int flags, unsigned int *context); 3 Arguments user_criteria OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed length string descriptor Description of intruder or suspect. The user_criteria argument is the address of a character-string descriptor pointing to a buffer containing the user criteria to match an intrusion record's user specification in the intrusion database. intruder OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed length string descriptor User specification of the matched intruder or suspect record in the intrusion database. The intruder argument is the address of a character-string descriptor pointing to a buffer to receive the user specification of the matched record in the intrusion database. intruder_len OpenVMS usage:string length type: longword (unsigned) access: write only mechanism: by reference Length of returned string in the intrusion buffer. The intruder_ len argument is the address of a longword to receive the length of the returned intrusion buffer. breakin_block OpenVMS usage:record type: block of 2 words (unsigned), 1 longword (unsigned), and 1 quadword (unsigned) access: write only mechanism: by reference Block to receive various information in the intrusion database about a record matching the user criteria. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Type of records in the intrusion database about which information is to be returned. The flags argument is a longword bit mask wherein each bit corresponds to an option. context OpenVMS usage:context type: longword (unsigned) access: write only mechanism: by reference Context information to keep between related calls to the $SHOW_ INTRUSION service. The context argument is the address of a longword that receives a context from the service. 2 $SIGNAL_ARRAY_64 Returns the address of a 64-bit signal array. A 32-bit signal array and a mechanism array are passed to a condition handler when it is called. $SIGNAL_ARRAY_64 provides the address of the 64-bit signal array, which might be required for programs that use 64-bit address space. This service accepts 64-bit addresses. Format $SIGNAL_ARRAY_64 mcharg, sigarg_64 C Prototype int sys$signal_array_64 (unsigned __int64 mcharg, unsigned __int64 sigarg_64); 3 Arguments mcharg OpenVMS usage:mechanism array type: vector quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference, array reference The mechanism array. The mcharg argument is the 32- or 64-bit address of this array, which was passed to the condition handler. $SIGNAL_ARRAY_64 uses this structure to determine the 64-bit signal array address. sigarg_64 OpenVMS usage:64-bit signal array type: vector quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference, array reference The 32- or 64-bit address of the 64-bit signal array is returned in this argument. 2 $SNDERR Writes a user-specified message to the system error log file, preceding it with the date and time. Format SYS$SNDERR msgbuf C Prototype int sys$snderr (void *msgbuf); 3 Argument msgbuf OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Message to be written to the error log file. The msgbuf argument is the address of a character string descriptor pointing to the message text. 2 $SNDJBC Creates, stops, and manages queues and the batch and print jobs in those queues. The $SNDJBC service completes asynchronously; to synchronize the completion of most operations, use the Send to Job Controller and Wait ($SNDJBCW) service. Format SYS$SNDJBC [efn] ,func [,nullarg] [,itmlst] [,iosb] [,astadr] [,astprm] C Prototype int sys$sndjbc (unsigned int efn, unsigned short int func, unsigned int nullarg, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag to be set when $SNDJBC completes. The efn argument is a longword containing this number; however, $SNDJBC uses only the low-order byte. func OpenVMS usage:function_code type: word (unsigned) access: read only mechanism: by value Function code specifying the function that $SNDJBC is to perform. The func argument is a word containing this function code. The $SJCDEF macro defines the names of each function code. nullarg OpenVMS usage:null_arg type: longword (unsigned) access: read only mechanism: by value Placeholding argument reserved to Digital. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list supplying information to be used in performing the function specified by the func argument. The itmlst argument is the address of the item list. The item list consists of one or more item descriptors, each of which specifies an item code. The item list is terminated by an item code of 0 or by a longword of 0. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference I/O status block into which $SNDJBC writes the completion status after the requested operation has completed. The iosb argument is the address of the I/O status block. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST service routine to be executed when $SNDJBC completes. The astadr argument is the address of this routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter to be passed to the AST service routine specified by the astadr argument. The astprm argument is this longword parameter. 2 $SNDJBCW The Send to Job Controller and Wait and $GETQUI services together provide the user interface to the Job Controller (JBC) facility. The $SNDJBW service allows you to create, stop, and manage queues and the jobs in those queues. Queues can be generic, batch, execution, or output queues. Jobs can be batch or print jobs. The $SNDJBCW service queues a request to the job controller. For most operations, $SNDJBCW completes synchronously; that is, it returns to the caller after the operation completes. However, if the requested operation is a pause queue, stop queue, or abort job operation, $SNDJBCW returns to the caller after queuing the request. There is no way to synchronize completion of these operations. Also, $SNDJBCW does not wait for a job to complete before it returns to the caller. To synchronize completion of a job, the caller must specify the SJC$_SYNCHRONIZE_JOB function code. The $SNDJBCW service is identical to the Send to Job Controller ($SNDJBC) service except that $SNDJBC completes asynchronously; the $SNDJBC service returns to the caller immediately after queuing the request, without waiting for the operation to complete. The $SNDJBC and $SNDJBCW services supersede the Send Message to Symbiont Manager ($SNDSMB) and Send Message to Accounting Manager ($SNDACC) services. You should write new programs using $SNDJBC or $SNDJBCW, instead of $SNDSMB or $SNDACC. You should convert old programs using $SNDSMB or $SNDACC to use $SNDJBC or $SNDJBCW, as convenient. Format SYS$SNDJBCW [efn] ,func [,nullarg] [,itmlst] [,iosb] [,astadr] [,astprm] C Prototype int sys$sndjbcw (unsigned int efn, unsigned short int func, unsigned int nullarg, void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); 2 $SNDOPR Performs the following functions: o Sends a user request to operator terminals o Sends a user cancellation request to operator terminals o Sends an operator reply to a user terminal o Enables an operator terminal o Displays the status of an operator terminal o Initializes the operator log file Format SYS$SNDOPR msgbuf ,[chan] C Prototype int sys$sndopr (void *msgbuf, unsigned short int chan); 3 Arguments msgbuf OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor User buffer specifying the operation to be performed and the information needed to perform that operation. The msgbuf argument is the address of a character string descriptor pointing to the buffer. chan OpenVMS usage:channel type: word (unsigned) access: read only mechanism: by value Channel assigned to the mailbox to which the reply is to be sent. The chan argument is a longword value containing the number of the channel. If you do not specify chan or specify it as the value 0 (the default), no reply is sent. 2 $START_ALIGN_FAULT_REPORT_(Alpha_Only) On Alpha systems, initializes user image alignment fault reporting. Format SYS$START_ALIGN_FAULT_REPORT report_method ,report_buffer ,buffer_length C Prototype int sys$start_align_fault_report (int report_method, void *report_buffer, int buffer_length); 3 Arguments report_method OpenVMS usage:longword_signed type: longword (signed) access: read mechanism: by value Method by which image alignment faults are to be reported. report_buffer OpenVMS usage:address type: longword (unsigned) access: read mechanism: by reference The 32-bit address of the buffer into which to write the fault data. The report_buffer argument is needed only if the value of the report_method argument is AFR$C_BUFFERED. buffer_length OpenVMS usage:byte count type: longword (signed) access: read mechanism: by value Length of the buffer specified in the report_buffer argument. The buffer must have a minimum size of AFR$K_USER_LENGTH + 32. However, a larger buffer allows for more information to be collected. 2 $START_TRANS Starts a new transaction. Format SYS$START_TRANS [efn] ,[flags] ,iosb [,[astadr] ,[astprm] ,[tid] ,[timout] ,[acmode]] C Prototype int sys$start_trans (unsigned int efn, unsigned int flags, struct _iosb *iosb, __optional_params); Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag that is set when the service completes. If this argument is omitted, event flag 0 is set. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flags specifying options for the service. The flags argument is a longword bit mask in which each bit corresponds to an option flag. The $DDTMDEF macro defines symbolic names for these option flags. All undefined bits must be 0. If this argument is omitted, no flags are set. Flag Description DDTM$M_NONDEFAULT Set this flag if you do not want the new transaction to be the default transaction of the calling process. If this flag is clear, the new transaction becomes the default transaction of the calling process. An error is returned if this flag is clear and the calling process already has a default transaction. DDTM$M_PROCESS Set this flag if you do not want the DECdtm transaction manager to try to abort the transaction if the current image terminates. If this flag is clear, when the current image terminates (normally or abnormally), the DECdtm transaction manager will abort the transaction if it has not already committed. An error is returned if this flag is set and the caller is in user mode. DDTM$M_SYNC Set this flag to specify that successful synchronous completion is to be indicated by returning SS$_SYNCH. When SS$_SYNCH is returned, the AST routine is not called, the event flag is not set, and the I/O status block is not filled in. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference I/O status block in which the completion status of the service is returned as a condition value. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST routine that is executed when the service completes. The astadr argument is the address of this routine. This routine is executed in the access mode of the caller. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter that is passed to the AST routine specified by the astadr argument. tid OpenVMS usage:transaction_id type: octaword (unsigned) access: write only mechanism: by reference Address of an octaword in which the service returns the identifier of the new transaction. timout OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference Timeout for the new transaction. This is the time at which the DECdtm transaction manager is to abort the transaction if the transaction has not already committed. The time value is a binary number, in units of 100 nanoseconds. A positive time value specifies an offset from the system base time. The system base time is 00:00 hours November 17, 1858. A negative time value specifies an offset from the current time to some time in the future. The transaction is aborted at the next timer interval if you specify either a zero time value or any time in the past. If this argument is omitted, the new transaction has no timeout. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value The least privileged access mode that the calling process must be in to end the transaction by calling $END_TRANS. Note that the calling process can end the transaction by calling $ABORT_TRANS from any access mode. The access mode that the calling process must be in to end the transaction by calling $END_TRANS is whichever is the least privileged of the following: o The access mode of the caller. o The access mode specified by the acmode argument. If the acmode argument is omitted, it defaults to the access mode of the caller. 2 $START_TRANSW Starts a new transaction. $START_TRANSW always waits for the request to complete before returning to the caller. Other than this, it is identical to $START_TRANS. 2 $STOP_ALIGN_FAULT_REPORT_(Alpha_Only) On Alpha systems, disables user image alignment fault reporting. Format SYS$STOP_ALIGN_FAULT_REPORT C Prototype int sys$stop_align_fault_report (void); 2 $STOP_SYS_ALIGN_FAULT_REPORT_(Alpha_Only) On Alpha systems, disables systemwide alignment fault reporting. Format SYS$STOP_SYS_ALIGN_FAULT_REPORT C Prototype int sys$stop_sys_align_fault_report (void); 2 $SUBSYSTEM Saves or restores the process image rights for the current protected subsystem. Format SYS$SUBSYSTEM enbflg C Prototype int sys$subsystem (unsigned int enbflg); 3 Argument enbflg OpenVMS usage:boolean type: longword (unsigned) access: read only mechanism: by value Value specifying whether the protected subsystem identifiers are to be saved or restored. If the enbflg argument is set to 0, the active subsystem is saved. If it is set to 1, the subsystem is restored. 2 $SUSPND Allows a process to suspend itself or another process. Format SYS$SUSPND [pidadr] ,[prcnam] ,[flags] C Prototype int sys$suspnd (unsigned int *pidadr, void *prcnam, unsigned int flags); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) of the process to be suspended. The pidadr argument is the address of the longword PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the OpenVMS Cluster system. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Name of the process to be suspended. The prcnam argument is the address of a character string descriptor pointing to the process name. A process running on the local node can be identified with a 1- to 15-character string. To identify a process on a particular node on a cluster, specify the full process name, which includes the node name as well as the process name. The full process name can contain up to 23 characters. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Longword of bit flags specifying options for the suspend operation. Currently, only bit 0 is used for the flags argument. When bit 0 is set, the process is suspended at kernel mode and ASTs are not deliverable to the process. 2 $SYNCH Checks the completion status of a system service that completes asynchronously. On Alpha systems, this service accepts 64-bit addresses. Format SYS$SYNCH [efn] ,[iosb] C Prototype int sys$synch (unsigned int efn, struct _iosb *iosb); 3 Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag specified in the call to the system service whose completion status is to be checked by $SYNCH. The efn argument is a longword containing this number; however, $SYNCH uses only the low-order byte. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) I/O status block specified in the call to the system service whose completion status is to be checked by $SYNCH. The iosb argument is the address of this quadword I/O status block. 2 $TIMCON Converts 128-bit Coordinated Universal Time (UTC) format to 64- bit system format or 64-bit system format to 128-bit UTC format based on the value of the convert flag. On Alpha systems, this service accepts 64-bit addresses. Format SYS$TIMCON [smnadr] ,[utcadr] ,cvtflg C Protptype int sys$timcon (struct _generic_64 *smnadr, unsigned int *utcadr [4], char cvtflg); 3 Arguments smnadr OpenVMS usage:date_time type: quadword (unsigned) access: read/write mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) The 64-bit system format value that $TIMCON will use in the conversion. The smnadr argument will be read from or written to based on the value of the cvtflg argument. The smnadr is required when converting UTC time to 64-bit system format. utcadr OpenVMS usage:coordinated universal time type: utc_date_time access: read/write mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) UTC time value that $TIMCON will use in the conversion. The utcadr argument will be read from or written to based on the value of the cvtflg argument. The utcadr argument is required when converting 64-bit system format to UTC time. cvtflg OpenVMS usage:conversion flag type: longword (unsigned) access: read only mechanism: by value A longword indicating the direction of the conversion. If the cvtflg value is 0, UTC time is converted to 64-bit system value. If the cvtflg value is 1, 64-bit system format is converted to UTC time. 2 $TRNLNM Returns information about a logical name. On Alpha systems, this service accepts 64-bit addresses. Format SYS$TRNLNM [attr] ,tabnam ,lognam ,[acmode] ,[itmlst] C Prototype int sys$trnlnm (unsigned int *attr, void *tabnam, void *lognam, unsigned char *acmode, void *itmlst); 3 Arguments attr OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Attributes controlling the search for the logical name. The attr argument is the 32-bit address (on VAX systems) or the 32- or 64- bit address (on Alpha systems) of a longword bit mask specifying these attributes. Only bit 0 is used for this argument. tabnam OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Name of the table or name of a list of table names in which to search for the logical name. The tabnam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a descriptor pointing to this name. This argument is required. lognam OpenVMS usage:logical_name type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor (Alpha) by 32-bit descriptor-fixed-length string descriptor (VAX) Logical name about which information is to be returned. The lognam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a descriptor pointing to the logical name string. This argument is required. acmode OpenVMS usage:access_mode type: byte (unsigned) access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Access mode to be used in the translation. The acmode argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a byte specifying the access mode. The $PSLDEF macro defines symbolic names for the four access modes. itmlst OpenVMS usage:32-bit item_list_3 or 64-bit item_list_64b type: longword (unsigned) for 32-bit; quadword (unsigned) for 64-bit access: read only mechanism: by 32- or 64-bit reference (Alpha) by 32-bit reference (VAX) Item list describing the information that $TRNLNM is to return. The itmlst argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a list of item descriptors, each of which specifies or controls an item of information to be returned. An item list in 32-bit format is terminated by a longword of 0; an item list in 64-bit format is terminated by a quadword of 0. All items in an item list must be of the same format-either 32-bit or 64-bit. 2 $TSTCLUEVT_(Alpha_Only) On Alpha systems, simulates the occurrence of a cluster configuration event to test the functionality of the notification AST. Format SYS$TSTCLUEVT [handle] ,[acmode] ,[event] C Prototype int sys$tstcluevt (unsigned int *handle, unsigned int acmode, unsigned int event); 3 Arguments handle OpenVMS usage:identifier type: quadword (unsigned) access: read only mechanism: by reference Identification of the asynchronous system trap (AST) to be tested. The handle argument uniquely identifies the request and is returned when the $SETCLUEVT service is called. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode for which a configuration event AST is to be triggered. The acmode argument is a longword containing the access mode. Each access mode has a symbolic name. The $PSLDEF macro defines the following symbols for the four access modes. Symbol Access Mode PSL$C_KERNEL Kernel PSL$C_EXEC Executive PSL$C_SUPER Supervisor PSL$C_USER User event OpenVMS usage:event_code type: longword (unsigned) access: read only mechanism: by value Event code indicating the type of configuration for which an AST is to be triggered. 2 $ULKPAG Unlocks pages that were previously locked in memory by the Lock Pages in Memory ($LCKPAG) service. Locked pages are automatically unlocked and deleted at image exit. Format SYS$ULKPAG inadr ,[retadr] ,[acmode] C Prototype int sys$ulkpag (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Starting and ending virtual addresses of the pages to be unlocked. The inadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. Only the virtual page number portion of each virtual address is used; the low-order byte-within-page bits are ignored. If the starting and ending virtual addresses are the same, a single page is unlocked. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference-array reference or descriptor Starting and ending process virtual addresses of the pages actually unlocked by $ULKPAG. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode on behalf of which the request is being made. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines the symbols for the four access modes. 2 $ULKPAG_64_(Alpha_Only) On Alpha systems, unlocks pages that were previously locked in memory by the Lock Pages in Memory ($LCKPAG_64) service. This service accepts 64-bit addresses. Format SYS$ULKPAG_64 start_va_64 ,length_64 ,acmode ,return_va_64 ,return_length_64 C Prototype int sys$ulkpag_64 (void *start_va_64, unsigned __int64 length_64, unsigned int acmode, void *(*(return_va_64)), unsigned __int64 *return_length_64); 3 Arguments start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address of the pages to be unlocked. The specified virtual address will be rounded down to a CPU-specific page boundary. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space to be unlocked. The specified length will be rounded up to a CPU-specific page boundary so that it includes all CPU-specific pages in the requested range. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode on behalf of which the request is being made. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. To unlock any specified page, the resultant access mode must be equal to or more privileged than the access mode of the owner of that page. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the unlocked virtual address range. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the virtual address range unlocked. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range in bytes. 2 $ULWSET Unlocks pages that were previously locked in the working set by the Lock Pages in Working Set ($LKWSET) service. Format SYS$ULWSET inadr ,[retadr] ,[acmode] C Prototype int sys$ulwset (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode); 3 Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference-array reference or descriptor Starting and ending virtual addresses of the pages to be unlocked. The inadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. Only the virtual page number portion of each virtual address is used; the low-order byte-within-page bits are ignored. If the starting and ending virtual address are the same, a single page is unlocked. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference-array reference or descriptor Starting and ending process virtual addresses of the pages that were actually unlocked by $CRMPSC. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode on behalf of which the request is being made. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines the symbols for the four access modes. 2 $ULWSET_64_(Alpha_Only) On Alpha systems, unlocks a virtual address range that was previously locked in the working set by the Lock Pages in Working Set ($LKWSET_64) service. This service accepts 64-bit addresses. Format SYS$ULWSET_64 start_va_64 ,length_64 ,acmode ,return_va_64 ,return_length_64 C Prototype int sys$ulwset_64 (void *start_va_64, unsigned __int64 length_64, unsigned int acmode, void *(*(return_va_64)), unsigned __int64 *return_length_64); 3 Arguments start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address of the pages to be unlocked from the working set. The specified virtual address will be rounded down to a CPU-specific page boundary. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space to be unlocked from the working set. The specified length will be rounded up to a CPU- specific page boundary so that it includes all CPU-specific pages in the requested range. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode on behalf of which the request is being made. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. To unlock any specified page, the resultant access mode must be equal to or more privileged than the access mode of the owner of that page. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the unlocked virtual address range. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the virtual address range unlocked. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range in bytes. 2 $UNWIND Unwinds the procedure call stack. Format SYS$UNWIND [depadr] ,[newpc] C Prototype int sys$unwind (unsigned int *depadr, void *newpc); 3 Arguments depadr OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference Depth to which the procedure call stack is to be unwound. The depadr argument is the address of a longword value. The value 0 specifies the call frame of the procedure that was executing when the condition occurred (that is, no call frames are unwound); the value 1 specifies the caller of that frame; the value 2 specifies the caller of the caller of that frame, and so on. newpc OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by value New value for the program counter (PC); this value replaces the current value of the PC in the call frame of the procedure that receives control when the unwinding operation is complete. The newpc argument is a longword value containing the address at which execution is to resume. 2 $UPDSEC Writes all modified pages in an active private or global section back into the section file on disk. One or more I/O requests are queued, based on the number of pages that have been modified. Format SYS$UPDSEC inadr ,[retadr] ,[acmode] ,[updflg] ,[efn] ,[iosb] ,[astadr] ,[astprm] C Prototype int sys$updsec (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode, char updflg, unsigned int efn, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference-array reference or descriptor Starting and ending virtual addresses of the pages that are to be written to the section file if they have been modified. The inadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. Addresses are adjusted up or down to CPU-specific pages. Only the virtual page number portion of each virtual address is used; the low-order byte-within-page bits are ignored. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference-array reference or descriptor Addresses of the first and last pages that were actually queued for writing, in the first $QIO request, back to the section file on disk. The retadr argument is the address of a 2-longword array containing, in order, the addresses of the first and last pages. Addresses always are adjusted up or down to fall on CPU-specific boundaries. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode on behalf of which the service is performed. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines the symbols for the four access modes. updflg OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Update specifier for read/write global sections. The updflg argument is a longword value. The value 0 (the default) specifies that all read/write pages in the global section are to be written to the section file on disk, whether or not they have been modified. The value 1 specifies that (1) the caller is the only process actually writing the global section, and (2) only those pages that were actually modified by the caller are to be written to the section file on disk. efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Event flag to be set when the section file on disk is actually updated. The efn argument is a longword specifying the number of the event flag; however, $UPDSEC uses only the low-order byte. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference I/O status block to receive the final completion status of the updating operation. The iosb argument is the address of the quadword I/O status block. astadr OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference-procedure reference or descriptor AST routine to be executed when the section file has been updated. The astadr argument is the address of this routine. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value AST parameter to be passed to the AST routine. The astprm argument is this longword parameter. 2 $UPDSECW The Update Section File on Disk and Wait service writes all modified pages in an active private or global section back into the section file on disk. One or more I/O requests are queued, based on the number of pages that have been modified. The $UPDSECW service completes synchronously; that is, it returns to the caller after writing all updated pages. For asynchronous completion, use the Update Section File on Disk ($UPDSEC) service; $UPDSEC returns to the caller after queuing the update request, without waiting for the pages to be updated. In all other respects, $UPDSECW is identical to $UPDSEC. For all other information about the $UPDSECW service, refer to the description of $UPDSEC. Format SYS$UPDSECW inadr [,retadr] [,acmode] [,updflg] [,efn] [,iosb] [,astadr] [,astprm] C Prototype int sys$updsecw (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode, char updflg, unsigned int efn, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm); 2 $UPDSEC_64_(Alpha_Only) On Alpha systems, writes all pages (or only those pages modified by the current process) in an active private or global disk file section back into the section file on disk. One or more I/O requests are queued to perform the write operation. The $UPDSEC_64 service completes asynchronously. For synchronous completion, use the Update Global Section File on Disk and Wait ($UPDSEC_64W) service. This service accepts 64-bit addresses. Format SYS$UPDSEC_64 start_va_64 ,length_64 ,acmode ,updflg ,efn ,iosa_64 ,return_va_64 ,return_length_64 [,astadr_64 [,astprm_64]] C Prototype int sys$updsec_64 (void *start_va_64, unsigned __int64 length_64, unsigned int acmode, unsigned int updflg, unsigned int efn, struct _iosa *iosa_64, void *(*(return_va_64)), unsigned __int64 *return_length_64, __optional_params); Arguments start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address of the pages to be written to the section file. The specified virtual address is rounded down to a CPU-specific page boundary. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address range to be written to the section file. The length specified is rounded up to a CPU-specific page boundary so that it includes all CPU-specific pages in the requested range. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode on behalf of which the service is performed. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the symbols and their values for the four access modes. The most privileged access mode used is the access mode of the caller. A page cannot be written to disk unless the access mode used by $UPDSEC_64 is equal to or more privileged than the access mode of the owner of the page to be written. updflg OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value The update specifier for read/write global sections. The updflg argument is a longword value. The value 0 (the default) specifies that all read/write pages in the global section are to be written to the section file on disk, whether or not they have been modified. The value UPDFLG$M_WRT_MODIFIED specifies that the caller is the only process actually writing the global section and that only those pages that were actually modified by the caller are to be written to the section file on disk. Definitions for this flag can be found in the file SECDEF.H in SYS$STARLET_C.TLB for C and in $SECDEF in STARLET.MLB for macro. efn OpenVMS usage:ef_number type: longword (unsigned) access: read_only mechanism: by value The event flag to be set when the section file on disk is actually updated. The efn argument is a longword specifying the number of the event flag; however, this service only uses the low-order byte. If you do not specify the efn, event flag 0 is used. When you invoke $UPDSEC_64, the specified event flag or event flag 0 is cleared. When the update operation is complete, the event flag is set. iosa_64 OpenVMS usage:io_status_area type: IOSA structure access: write only mechanism: by 32- or 64-bit reference The I/O status area to receive the final completion status of the updating operation. The iosa_64 argument is the 32- or 64- bit virtual address of the I/O status area. The I/O status area structure is 32 bytes in length. The I/O status area structure definition can be found in $IOSADEF in STARLET.MLB for macro and in the file IOSADEF.H in SYS$STARLET_C.TLB for C. When you call SYS$UPDSEC_64, the I/O status area is cleared. After the update operation is complete (that is, when all I/O to the disk is complete), the I/O status block is written as follows: o isoa$l_status (offset 0) The first word contains the condition value return by SYS$QIO, indicating the final completion status. The first bit in the second word is set only if an error occurred during the I/O operation and the error was a hardware write error. The remaining bits of the second word are zeros. o iosa$l_resd (offset 4) This field is reserved for future use by Digital. The value in this field is unpredictable. o iosa$q_count_q (offset 8) This field is reserved for future use by Digital. The value in this field is unpredictable. o iosa$ph_upsec_nowrt_va (offset 16) This field contains the virtual address of the first byte in the first disk block that was not written. In the case of an I/O error, this virtual address indicates the disk block for which the error occurred. o iosa$q_resq (offset 24) This field is reserved for future use by Digital. The value in this field is unpredictable. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The process virtual address of the first page that was actually queued for writing (in the first I/O request) back to the section file on the disk. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the first I/O request to write modified pages back to the section file on disk. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range, in bytes, written by the first I/O request. astadr_64 OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by 32- or 64-bit reference The asynchronous system trap (AST) routine to be executed when the section file has been updated. The astadr_64 argument is the 32- or 64-bit address of this routine. If you specify the astadr_64 argument, the AST routine executes at the access mode from which the section file update was requested. astprm_64 OpenVMS usage:user_arg type: quadword access: read only mechanism: by value The AST parameter to be passed to the AST routine. The astprm_64 argument is a quadword argument that is passed to the AST routine. 2 $UPDSEC_64W_(Alpha_Only) On Alpha systems, writes all modified pages in an active private or global disk file section back into the section file on disk. Zero or more I/O requests are queued, based on the number of pages that have been modified. The $UPDSEC_64W service completes synchronously; that is, it returns to the caller after writing all updated pages. In all other respects, $UPDSEC_64W is identical to $UPDSEC_64. For all other information about the $UPDSEC_64W service, refer to the help for $UPDSEC_64. This service accepts 64-bit addresses. Format SYS$UPDSEC_64W start_va_64 ,length_64 ,acmode ,updflg ,efn ,iosa_64 ,return_va_64 ,return_length_64 [,astadr_64 [,astprm_64]] C Prototype int sys$updsec_64w (void *start_va_64, unsigned __int64 length_64, unsigned int acmode, unsigned int updflg, unsigned int efn, struct _iosa *iosa_64, void *(*(return_va_64)), unsigned __int64 *return_length_64, __optional_params); 2 $VERIFY_PROXY Verifies that a proxy exists and returns a valid local user for the caller to use to create a local login. Format SYS$VERIFY_PROXY rem_node ,rem_user ,[proposed_user] ,local_user ,local_user_length ,[flags] C Prototype int sys$verify_proxy (void *rem_node, void *rem_user, void *proposed_user, void *local_user, unsigned short int *local_user_len, unsigned int flags); 3 Arguments rem_node OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Remote node name of the proxy to be verified. The rem_node argument is the address of a character-string descriptor pointing to the remote node name string. rem_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Remote user name of the proxy to be verified. The rem_user argument is the address of a character-string descriptor pointing to the user name string. proposed_user OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Local user the caller suggests be used for the proxy login. The proposed_user argument is the address of a character-string descriptor pointing to the proposed local user name. local_user OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor Local user the caller must use for a proxy login. The local_user argument is the address of a 32-byte character-string descriptor pointer to receive the local user name the caller must use for a proxy login for the proxy with the remote node name specified by the rem_node argument and the remote user name specified by the rem_user argument. local_user_length OpenVMS usage:output length type: word (unsigned) access: write only mechanism: by reference Length of the returned local user name in the local_user argument. The local_user_length argument is the address of an unsigned word to receive the length, in bytes, of the character string returned in the local_user argument. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Functional specification for the service and type of user the local_user argument represents. The flags argument is a longword bit mask wherein each bit corresponds to an option. 2 $WAITFR Tests a specific event flag and returns immediately if the flag is set. Otherwise, the process is placed in a wait state until the event flag is set. Format SYS$WAITFR efn C Prototype int sys$waitfr (unsigned int efn); 3 Argument efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag for which to wait. The efn argument is a longword containing this number; however, $WAITFR uses only the low-order byte. 2 $WAKE Activates a process that has placed itself in a state of hibernation with the Hibernate ($HIBER) service. Format SYS$WAKE [pidadr] ,[prcnam] C Prototype int sys$wake (unsigned int *pidadr, void *prcnam); 3 Arguments pidadr OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identification (PID) of the process to be activated. The pidadr argument is the address of a longword containing the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the cluster. prcnam OpenVMS usage:process_name type: character-coded text string access: read only mechanism: by descriptor-fixed-length string descriptor Process name of the process to be activated. The prcnam argument is the address of a character string descriptor pointing to the process name. A process running on the local node can be identified with a 1- to 15-character string. To identify a process on a particular node in a cluster, specify the full process name, which includes the node name as well as the process name. The full process name can contain up to 23 characters. 2 $WFLAND Allows a process to specify a set of event flags for which it wants to wait. Format SYS$WFLAND efn ,mask C Prototype int sys$wfland (unsigned int efn, unsigned int mask); 3 Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of any event flag within the event flag cluster to be used. The efn argument is a longword containing this number; however, $WFLAND uses only the low-order byte. Specifying the number of an event flag within the cluster serves to identify the event flag cluster. mask OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Event flags for which the process is to wait. The mask argument is a longword bit vector wherein a bit, when set, selects the corresponding event flag for which to wait. 2 $WFLOR Allows a process to specify a set of event flags for which it wants to wait. Format SYS$WFLOR efn ,mask C Prototype int sys$wflor (unsigned int efn, unsigned int mask); 3 Arguments efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of any event flag within the event flag cluster to be used. The efn argument is a longword containing this number; however, $WFLOR uses only the low-order byte. Specifying the number of an event flag within the cluster serves to identify the event flag cluster. mask OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Event flags for which the process is to wait. The mask argument is a longword bit vector wherein a bit, when set, selects the corresponding event flag for which to wait.