Document revision date: 19 July 1999 | |
Previous | Contents | Index |
The buffer length field in the item descriptor should specify 3 (bytes).
The buffer length field in the item descriptor should specify 3 (bytes).
Because this decimal number is a word in length, the buffer length field in the item descriptor should specify 2 (bytes).
Because this decimal number is a word in length, the buffer length field in the item descriptor should specify 2 (bytes).
Because this decimal number is a word in length, the buffer length field in the item descriptor should specify 2 (bytes).
Because this decimal number is a word in length, the buffer length field in the item descriptor should specify 2 (bytes).
The buffer length field in the item descriptor should specify 3 (bytes).
The buffer length field in the item descriptor should specify 3 (bytes).
Because the owner name can include up to 31 characters plus a size-byte prefix, the buffer length field of the item descriptor should specify 32 (bytes).
The UAI$_PASSWORD and UAI$_PASSWORD2 item codes provide the building blocks for designing a site-specific SET PASSWORD utility. Note that if you create such a utility, you should also set the LOCKPWD bit in the user authorization file (UAF) to prevent users from using the DCL command SET PASSWORD and to prevent the LOGINOUT process from forcing password changes. If you create a site-specific SET PASSWORD utility, install the utility with SYSPRV privilege.
You must adhere to the following guidelines when specifying a password with UAI$_PASSWORD or UAI$_PASSWORD2:
To clear the primary password, specify the value 0 in the buffer length field.
When you use $SETUAI to change the password on an account that has the UAI$V_EXTHAUTH flag set, the UAI$V_MIGRATEPWD flag is set automatically.
To clear the secondary password, specify the value 0 in the buffer length field.
Because the paged buffer I/O byte count limit is a longword decimal number, the buffer length field in the item descriptor should specify 4 (bytes).
Because the paging file quota is a longword decimal number, the buffer length field in the item descriptor should specify 4 (bytes).
Because this decimal number is a word in length, the buffer length field in the item descriptor should specify 2 (bytes).
Because this decimal number is a byte in length, the buffer length field in the item descriptor should specify 1 (byte).
Each bit represents a day of the week, with the bit clear representing a primary day and the bit set representing a secondary day. The $UAIDEF macro defines the following symbolic names for these bits:
Because the privileges are set as a quadword value, the buffer length field in the item descriptor should specify 8 (bytes).
Because the hashed primary password is set as a quadword value, the buffer length field in the item descriptor should specify 8 (bytes).
When you use $SETUAI to change the password on an account that has the UAI$V_EXTHAUTH flag set, the UAI$V_MIGRATEPWD flag is set automatically.
Because this value is a quadword in length, the buffer length field in the item descriptor should specify 8 (bytes).
A value of --1 indicates that the password could be marked as preexpired.
Because this decimal number is a byte in length, the buffer length field in the item descriptor should specify 1 (byte).
Because this value is a quadword in length, the buffer length field in the item descriptor should specify 8 (bytes).
A quadword of 0 means that none of the password mechanisms will take effect.
Because the hashed secondary password is set as a quadword value, the buffer length field in the item descriptor should specify 8 (bytes).
Because this value is a quadword in length, the buffer length field in the item descriptor should specify 8 (bytes).
A value of --1 indicates that the password could be marked as preexpired.
Because this decimal number is a byte in length, the buffer length field in the item descriptor should specify 1 (byte).
The buffer length field in the item descriptor should specify 3 (bytes).
The buffer length field in the item descriptor should specify 3 (bytes).
Because this decimal number is a word in length, the buffer length field in the item descriptor should specify 2 (bytes).
By copying the item codes UAI$_SALT, UAI$_ENCRYPT, UAI$_PWD, UAI$_PWD_DATE, and UAI$_FLAGS, a site-security administrator can construct a utility that propagates password changes throughout the network. Note, however, that Compaq does not recommend using the same password on more than one node in a network.
Because this decimal number is a word in length, the buffer length field in the item descriptor should specify 2 (bytes).
Because this decimal number is a word in length, the buffer length field in the item descriptor should specify 2 (bytes).
To clear all the information in the user data area of the SYSUAF, specify $SETUAI with a buffer length field of 0.
Because the working set extent is a longword decimal number, the buffer length field in the item descriptor should specify 4 (bytes).
Because the working set quota is a longword decimal number, the buffer length field in the item descriptor should specify 4 (bytes).
The Set User Authorization Information service is used to modify the user authorization file (UAF) record for a specified user.The UAI$V_PWD_EXPIRED should only be set when the bit UAI$V_DISFORCE_PWD_CHANGE is set in the user's SYSUAF record and the comparison between the UAI$_PWD_DATE and UAI$_PWD_LIFETIME indicates a password is past its valid life.
For information about login and password expiration, see the Description section of the $GETUAI system service.
The following list describes the privileges you need to use the $SETUAI service:
- BYPASS or SYSPRV---Allows modification of any record in the UAF (user authorization file).
- GRPPRV---Allows modification of any record in the UAF whose UIC group matches that of the requester. Note, however, that you cannot change a UAF record whose UIC matches exactly the requester's UIC. Group managers with GRPPRV privilege are limited in the extent to which they can modify the UAF records of users in the same group; values such as privileges and quotas can be changed only if the modification does not exceed the values set in a group manager's UAF record.
- No privilege---Does not allow access to any UAF record.
None
$GETUAI
SS$_NORMAL The service completed successfully. SS$_ACCVIO The item list or input buffer cannot be read by the caller; or the return length buffer, output buffer, or status block cannot be written by the caller. SS$_BADPARAM The function code is invalid; the item list contains an invalid item code; a buffer descriptor has an invalid length; or the reserved parameter has a nonzero value. SS$_NOGRPPRV The user does not have the privileges required to modify the authorization information for other members of the UIC group. SS$_NOSYSPRV The user does not have the privileges required to modify the authorization information associated with the user or for users outside of the user's UIC group. RMS$_RSZ The UAF record is smaller than required; the caller's SYSUAF is likely corrupt.
This service can also return OpenVMS RMS status codes associated with operations on indexed files. For a description of RMS status codes that are returned by this service, refer to the OpenVMS Record Management Services Reference Manual.
Performs initial setup for process preemption avoidance.
SYS$SETUP_AVOID_PREEMPT enable
int sys$setup_avoid_preempt (int enable);
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.
The Setup for Process Preemption Avoidance service is a kernel-mode initialization routine that locks the necessary internal data structures in memory so scheduling routines can access them above pageable IPL. A process or thread can then set or clear the indicator bit by calling the $AVOID_PREEMPT service.In addition, if the process or thread has ALTPRI privilege, $SETUP_AVOID_PREEMPT sets a bit in the PKTA (a per-kernel-thread data area) to mark that the process or thread can prevent preemption by other processes or threads having the same base priority but not those that have a higher base priority.
Note that without ALTPRI, this service will still function successfully, but will only enable the $AVOID_PREEMPT service to avoid preemptions due to quantum end.
None
None
$AVOID_PREEMPT
SS$_NORMAL The service completed successfully.
Also, any values returned by the $LKWSET or $UNLKSET services.
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.
SYS$SET_IMPLICIT_AFFINITY [pidadr] [,prcnam] [,state] [,cpu_id] [,prev_mask]
int sys$set_implicit_affinity (unsigned int *pidadr, void *prcnam, struct _generic_64 *state, int cpu_id, struct _generic_64 *prev_mask);
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. The following table describes the symbolic name of each option.
Symbolic Name Description CAP$M_IMPLICIT_DEFAULT_ONLY Indicates the specified operations are to be performed on the global cell instead of on a specific kernel thread. This bit supersedes any individual kernel thread specified in pidadr or prcnam. Specifying this bit constant applies the implicit affinity operations to all newly created processes. CAP$M_IMPLICIT_AFFINITY_SET Indicates that the implicit affinity capability bit is to be set for the specified kernel thread. This is mutually exclusive with CAP$M_IMPLICIT_AFFINITY_CLEAR. CAP$M_IMPLICIT_AFFINITY_CLEAR Indicates that the implicit affinity capability bit is to be cleared for the specified kernel thread. This is mutually exclusive with CAP$M_IMPLICIT_AFFINITY_SET. 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.
The Modify Process Implicit Affinity system service modifies or returns the implicit affinity state for the specified kernel thread or from the system default process creation cell.Setting a kernel thread's implicit affinity function indicates to the system that it is to schedule the process in ways that will maximize the cache and TB performance in the current symmetric multiprocessing (SMP) configuration. This might tend to bias the process towards specific CPUs more than the standard scheduling algorithm would normally have allowed.
The caller must have the ALTPRI privilege to call SYS$SET_IMPLICIT_AFFINITY to modify its own implicit affinity capability bit. To modify another process’ capability mask, the caller must have:
- ALTPRI---To modify any process with a matching UIC
- ALTPRI and GROUP---To modify any process in the same UIC group
- ALTPRI and WORLD---To modify any process
To call SYS$SET_IMPLICIT_AFFINITY simply to retrieve the state of a specific process or global bit, the caller need only have the following privileges:
- None---To retrieve the state of itself or any process with a matching UIC
- GROUP---To retrieve the state of any process in the same UIC group
- WORLD---To retrieve the state of any process
$CPU_CAPABILITIES, $PROCESS_CAPABILITIES, $PROCESS_AFFINITY
SS$_NORMAL The service completed successfully. SS$_BADPARAM One or more arguments has an invalid value. SS$_ACCVIO The service cannot access the locations specified by one or more arguments. SS$_NOSUCHTHREAD The specified kernel thread does not exist. SS$_NONEXPR The specified process does not exist, or an invalid process identification was specified. SS$_IVLOGNAM The process name string has a length of 0 or more than 15 characters. SS$_NOPRIV Insufficient privilege for attempted operation. SS$_CPUCAP No CPU can run the specified process with new capabilities. SS$_INSFARG Fewer than the required number of arguments were specified or no operation was specified.
Previous | Next | Contents | Index |
privacy and legal statement | ||
4527PRO_083.HTML |