  | 
		
HP OpenVMS System Services Reference Manual
 
 
None
 
Required Quota
 
 
$UPDSEC_64 uses the calling process' direct I/O limit (DIRIO) quota in 
queuing the I/O request and uses the calling process' AST limit (ASTLM) 
quota if the astadr_64 argument is specified.
 
Related Services
 
 
$CRMPSC, $CRMPSC_FILE_64, $CRMPSC_GFILE_64, $CRMPSC_GPFILE_64, 
$MGBLSC_64, $UPDSEC
  
Condition Values Returned
  
    | 
      SS$_NORMAL
     | 
    
      The service completed successfully. One or more I/O requests were 
      queued.
     | 
   
  
    | 
      SS$_NOTMODIFIED
     | 
    
      The service completed successfully. No pages in the input address range 
      were section pages that had been modified. No I/O requests were queued.
     | 
   
  
    | 
      SS$_ACCVIO
     | 
    
      The
      return_va_64,
      return_length_64, or
      iosb_64 argument cannot be written by the caller.
     | 
   
  
    | 
      SS$_EXASTLM
     | 
    
      The process has exceeded its AST limit quota.
     | 
   
  
    | 
      SS$_EXBYTLM
     | 
    
      The process has exceeded the byte count quota.
     | 
   
  
    | 
      SS$_ILLEFC
     | 
    
      An illegal event flag number was specified.
     | 
   
  
    | 
      SS$_PAGNOTINREG
     | 
    
      A page in the specified range is not within the process private address 
      space.
     | 
   
  
    | 
      SS$_PAGOWNVIO
     | 
    
      A page in the specified input address range is owned by a more 
      privileged access mode.
     | 
   
  
    | 
      SS$_UNASCEFC
     | 
    
      The process is not associated with the cluster containing the specified 
      event flag.
     | 
   
 
 
 
$UPDSEC_64W (Alpha and Integrity servers)
 
On Alpha and Integrity server 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 
additional information about the $UPDSEC_64W service, see the 
description of $UPDSEC_64 in this manual.
 
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,...);
  
 
$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);
  
 
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.
A remote node name consists of 1 to 1024 characters. No specific 
characters, format, or case are required for a remote node name string. 
All node names are converted to their DECnet for OpenVMS full name 
unless the PRX$M_BYPASS_EXPAND flag is set with the 
flags argument.
 
Wildcards are not recognized. If you specify a wildcard character in 
the rem_node argument, it is ignored and assumed to be 
part of the requested node name.
 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.
A remote user name consists of 1 to 32 alphanumeric characters, 
including dollar signs ($), underscores (_), and brackets ([ ]). Any 
lowercase characters specified are automatically converted to uppercase.
 
The rem_user argument can be specified in user 
identification code (UIC) format ([group, member]). 
Brackets are allowed only if the remote user name string specifies a 
UIC. Group and member are character-string representations of octal 
numbers with no leading zeros.
 
Wildcards are not allowed for the remote user specification. If 
wildcard characters are present in the string specified by the 
rem_user argument, the service returns SS$_BADPARAM.
 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.
The proposed local user consists of 1 to 32 alphanumeric characters, 
including dollar signs ($) and underscores (_). Any lowercase 
characters specified are automatically converted to uppercase.
 
See the Description section for information about the interaction of 
this argument with the return value of the local_user 
argument.
 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.
A local user name is a 32-character blank padded string of alphanumeric 
characters, including dollar signs ($) and underscores (_).
 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.
Each flag option has a symbolic name. The $PRXDEF macro defines the 
following symbolic name:
 
  
    | Symbolic Name  | 
    Description  | 
   
  
    | 
      PRX$M_BYPASS_EXPAND
     | 
    
      The service should not convert the node name specified in the
      rem_node argument to its corresponding DECnet for 
      OpenVMS full name. If this flag is set, it is the caller's 
      responsibility to ensure that the fully expanded node name is passed 
      into the service.
     | 
   
 
 
 
Description
The Verify Proxy service verifies the existence of a proxy in the proxy 
database and returns the local user name the caller must use for any 
proxy logins.
The following description shows how the service determines which local 
user name the caller must use for proxy logins.
 
Proxies that match the remote node and remote user specified by the 
rem_node and rem_user arguments, 
respectively, are searched in the following order if the remote user 
name is not a UIC:
 
  - rem_node::rem_user
  
 - *::rem_user
  
 - rem_node::*
  
 - *::*
  
Proxies that match the remote node and remote user specified by the 
rem_node and rem_user arguments, 
respectively, are searched for in the following order if the remote 
user name is a UIC:
 
  - rem_node::rem_user
  
 - *::rem_user
  
 - rem_node::[group,*]
  
 - rem_node::[*,member]
  
 - rem_node::[*,*]
  
 - *::*
  
The following table describes how the local user name the caller must 
use for any proxy logins is determined if a matching proxy record is 
found by the search:
 
  
    Remote   User  | 
    Proposed   User  | 
    Proxy   Default User  | 
    Proxy Local   User Names  | 
    Returned Local   User Name  | 
   
  
    | 
      rem_user
     | 
    
      null
     | 
    
      null
     | 
    
      n/a
     | 
    
      error
     | 
   
  
    | 
      rem_user
     | 
    
      null
     | 
    
      default user
     | 
    
      n/a
     | 
    
      default user
     | 
   
  
    | 
      rem_user
     | 
    
      null
     | 
    
      *
     | 
    
      n/a
     | 
    
      rem_user
     | 
   
  
    | 
      rem_user
     | 
    
      prop_user
     | 
    
      default user
     | 
    
      n/a
     | 
    
      prop_user
     | 
   
  
    | 
      rem_user
     | 
    
      prop_user
     | 
    
      default user
     | 
    
      prop_user
     | 
    
      prop_user
     | 
   
  
    | 
      rem_user
     | 
    
      prop_user
     | 
    
      default user
     | 
    
      local user
     | 
    
      error
     | 
   
  
    | 
      rem_user
     | 
    
      prop_user
     | 
    
      default user
     | 
    
      *
     | 
    
      rem_user if it equals prop_user
     | 
   
  
    | 
      rem_user
     | 
    
      prop_user
     | 
    
      *
     | 
    
      local user
     | 
    
      rem_user if it equals prop_user
     | 
   
 
Required Access or Privileges
 
 
You must have SYSPRV privilege.
 
Required Quota
 
 
None
 
Related Services
 
 
$ADD_PROXY, $DELETE_PROXY, $DISPLAY_PROXY
  
 
Condition Values Returned
  
    | 
      SS$_NORMAL
     | 
    
      The service completed successfully.
     | 
   
  
    | 
      SS$_ACCVIO
     | 
    
      The
      rem_node,
      rem_user, or
      proposed_user argument cannot be read by the service; 
      or the
      local_user or
      local_user_length argument cannot be written by the 
      service.
     | 
   
  
    | 
      SS$_BADBUFLEN
     | 
    
      The length of the
      rem_node,
      rem_user,
      proposed_user, or
      local_user argument was out of range.
     | 
   
  
    | 
      SS$_BADPARAM
     | 
    
      The
      rem_user or
      proposed_user argument contains an invalid user name.
     | 
   
  
    | 
      SS$_NOREADALL
     | 
    
      The caller does not have access to the proxy database.
     | 
   
  
    |  
      
     | 
     
      
     | 
   
  
    
       This service can also return any of the following messages passed from 
       the security server, or any OpenVMS RMS error message encountered 
       during operations on the proxy database:
       
     | 
   
  
    | 
      SECSRV$_BADLOCALUSERLEN
     | 
    
      The local user name length is out of range.
     | 
   
  
    | 
      SECSRV$_BADNODENAMELEN
     | 
    
      The node name length is out of range.
     | 
   
  
    | 
      SECSRV$_BADREMUSERLEN
     | 
    
      The remote user name length is out of range.
     | 
   
  
    | 
      SECSRV$_NOSUCHPROXY
     | 
    
      The proxy specified by the
      rem_node and
      rem_user arguments does not exist in the proxy 
      database.
     | 
   
  
    | 
      SECSRV$_NOSUCHUSER
     | 
    
      No valid user was found for the requested proxy.
     | 
   
  
    | 
      SECSRV$_PROXYNOTACTIVE
     | 
    
      Proxy processing is currently stopped. Try the request again later.
     | 
   
  
    | 
      SECSRV$_SERVERNOTACTIVE
     | 
    
      The security server is not currently active. Try the request again 
      later.
     | 
   
 
 
 
$WAIT
 
The Wait service suspends image execution until an asynchronous record 
service completes. Upon completion of the service, RMS returns control 
to your program at the point following the Wait service call.
For additional information about this service, see the OpenVMS Record Management Services  Reference Manual.
  
 
$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);
  
 
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.
 
 
Description
The Wait for Single Event Flag service 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. The wait state 
caused by this service can be interrupted by an asynchronous system 
trap (AST) if (1) the access mode at which the AST executes is equal to 
or more privileged than the access mode from which the $WAITFR service 
was issued and (2) the process is enabled for ASTs at that access mode.
When a wait state is interrupted by an AST and after the AST service 
routine completes execution, the operating system repeats the $WAITFR 
request on behalf of the process. At this point, if the event flag has 
been set, the process resumes execution.
 
Required Access or Privileges
 
 
None
 
Required Quota
 
 
None
 
Related Services
 
 
$ASCEFC, $CLREF, $DACEFC, $DLCEFC, $READEF, $SETEF, $WFLAND, $WFLOR
  
 
Condition Values Returned
  
    | 
      SS$_NORMAL
     | 
    
      The service completed successfully.
     | 
   
  
    | 
      SS$_ILLEFC
     | 
    
      You specified an illegal event flag number.
     | 
   
  
    | 
      SS$_UNASEFC
     | 
    
      The process is not associated with the cluster containing the specified 
      event flag.
     | 
   
 
 
 
$WAKE
 
Activates a process that has placed itself in a state of hibernation 
with the Hibernate ($HIBER) service.
This service accepts 64-bit addresses.
  
 
Format
SYS$WAKE [pidadr] ,[prcnam]
  
 
C Prototype
int sys$wake (unsigned int *pidadr, void *prcnam);
  
 
Arguments
pidadr
 
  
    | OpenVMS usage: | 
    process_id | 
   
  
    | type: | 
    longword (unsigned) | 
   
  
    | access: | 
    modify | 
   
  
    | mechanism:  | 
    by 32- or 64-bit reference | 
   
 
 
Process identification (PID) of the process to be activated. The 
pidadr argument is the 32- or 64-bit 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 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 | 
   
 
 
Process name of the process to be activated. The 
prcnam argument is the 32- or 64-bit address of a 32- 
or 64-bit 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.
 
The process name is implicitly qualified by the UIC group number of the 
calling process. For this reason, you can use the 
prcnam argument only if the process to be activated is 
in the same UIC group as the calling process. To activate a process in 
another UIC group, you must specify the pidadr 
argument.
  
 
Description
The Wake Process from Hibernation service activates a process that has 
placed itself in a state of hibernation with the Hibernate ($HIBER) 
service. If you specify neither the pidadr nor the 
prcnam argument, the wake request is issued for the 
calling process.
If the longword at address pidadr is the value 0, the 
PID of the target process is returned.
 
If one or more wake requests are issued for a process not currently 
hibernating, a subsequent hibernate request completes immediately; that 
is, the process does not hibernate. No count of outstanding wakeup 
requests is maintained.
 
You can also activate a hibernating process with the Schedule Wakeup 
($SCHDWK) service.
 
Required Access or Privileges
 
 
Depending on the operation, the calling process might need one of the 
following privileges to use $WAKE:
 
  - GROUP privilege to wake another process in the same group, unless 
  the process has the same UIC as the calling process
  
 - WORLD privilege to wake any other process in the system
  
Required Quota
 
 
None
 
Related Services
 
 
$CANEXH, $CREPRC, $DCLEXH, $DELPRC, $EXIT, $FORCEX, $GETJPI, $GETJPIW, 
$HIBER, $PROCESS_SCAN, $RESUME, $SETPRI, $SETPRN, $SETPRV, $SETRWM, 
$SUSPND
  
 
Condition Values Returned
  
    | 
      SS$_NORMAL
     | 
    
      The service completed successfully.
     | 
   
  
    | 
      SS$_ACCVIO
     | 
    
      The process name string or string descriptor cannot be read by the 
      caller, or the process identification cannot be written by the caller.
     | 
   
  
    | 
      SS$_INCOMPAT
     | 
    
      The remote node is running an incompatible version of the operating 
      system.
     | 
   
  
    | 
      SS$_IVLOGNAM
     | 
    
      The specified process name string has a length of 0 or has more than 15 
      characters.
     | 
   
  
    | 
      SS$_NONEXPR
     | 
    
      The specified process does not exist, or you specified an invalid 
      process identification.
     | 
   
  
    | 
      SS$_NOPRIV
     | 
    
      The process does not have the privilege to wake the specified process.
     | 
   
  
    | 
      SS$_NOSUCHNODE
     | 
    
      The process name refers to a node that is not currently recognized as 
      part of the VSMcluster system.
     | 
   
  
    | 
      SS$_NOSUCHTHREAD
     | 
    
      The specified kernel thread does not exist.
     | 
   
  
    | 
      SS$_REMRSRC
     | 
    
      The remote node has insufficient resources to respond to the request. 
      (Bring this error to the attention of your system manager.)
     | 
   
  
    | 
      SS$_UNREACHABLE
     | 
    
      The remote node is a member of the cluster but is not accepting 
      requests. (This is normal for a brief period early in the system boot 
      process.)
     | 
   
 
 
  
 |