VMS Help
System Services, $CPU TRANSITION (Alpha Only)

 *Conan The Librarian (sorry for the slow response - running on an old VAX)

    On Alpha systems, changes the current processing state of a CPU
    in the configure set of the current system or an unassigned
    CPU in an OpenVMS Galaxy configuration. This service completes
    asynchronously. For synchronous completion, use the $CPU_
    TRANSITIONW service.

    This service accepts 64-bit addresses. Parameter and bit
    definitions are resolved in $CSTDEF in the appropriate STARLET
    library.

    Refer to the OpenVMS Alpha Partitioning and Galaxy Guide for more
    information.

    Format

      SYS$CPU_TRANSITION  tran_code ,cpu_id ,nodename ,node_id ,flags

                          ,efn ,iosb ,astadr_64 ,astprm_64

    C Prototype

      int sys$cpu_transition  (int tran_code, int cpu_id,

                              dsc64$descriptor_s_pq nodename, int

                              node_id, uint32 flags, int efn, IOSB

                              *iosb, VOID_PQ astadr, uint64 astprm,

                              uint32 timout);

    Arguments

 tran_code

    OpenVMS usage:longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Identifier specifying the type of state change to be initiated on
    the target CPU. The tran_code argument is a longword containing
    one of the following values:

    Symbolic Name      Description

    CST$K_CPU_STOP     The target CPU is to be removed from the
                       active set and halted into console mode. It
                       remains in the configure set of the current
                       partition.
    CST$K_CPU_MIGRATE  The target CPU is removed from the configure
                       set of the local partition and the console
                       is requested to add it to the configure set
                       of the partition specified in node_id. If
                       the CPU is currently in the active set, it is
                       automatically brought to console mode through
                       the CST$K_CPU_STOP function first.
    CST$K_CPU_START    The target CPU is requested to exit console
                       mode and join the active set of the current
                       partition. The CPU must already be part of the
                       configure set.
    CST$K_CPU_         The CPU is assigned a default target partition
    FAILOVER           where it will automatically migrate on system
                       failure. This assignment persists until it
                       is superseded. To remove an assignment or
                       partition name, the current partition ID
                       should be specified.

 cpu_id

    OpenVMS usage:longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Identifier of the CPU whose state is to be modified. The cpu_
    id argument is a longword number in the supported range of
    individual CPUs from 0 to SYI$_MAX_CPUS - 1. In a Galaxy, this
    CPU must be in the configure set of the local partition or not
    assigned to any other partitions. The symbolic values, CST$K_ANY_
    LOCAL_CPU can be used in certain types of transitions to allow
    the next available processor of the appropriate type be used
    instead of a specific one.

 node_id

    OpenVMS usage:longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Identifier of the target Galaxy partition in CST$K_CPU_ASSIGN,
    CST$K_CPU_FAILOVER, or CST$K_CPU_MIGRATE transition. The node_id
    argument is a longword containing a number in the supported range
    of IDs provided by the console for the current hardware platform.
    If the nodename parameter is specified, node_id is ignored.

 flags

    OpenVMS usage:longword_mask
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Options selected for the CPU state transition. The flags argument
    is a longword bit vector wherein a bit corresponds to an option.
    Only the bits specified below are used; the remainder of the
    longword bits are reserved and must be 0.

    Each option (bit) has a symbolic name. The flags argument is
    constructed by performing a logical OR operation using the
    symbolic names of the following options:

    Symbolic Name      Description

    CST$V_CPU_         At the completion of the transition, the CPU's
    DEFAULT_           user capabilities are set back to the default
    CAPABILITIES       system value. If this option is not specified,
                       modified user capabilities are maintained
                       across STOP and START transitions as long
                       as the CPU remains in the local partition
                       configure set.
    CST$V_CPU_ALLOW_   The transition is to be allowed even though it
    ORPHANS            will leave at least one thread in the system
                       unable to execute on any CPU in the active
                       set.

 efn

    OpenVMS usage:ef_number
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    The event flag to be set when the state transition attempt has
    completed. The efn argument is a longword specifying the number
    of the event flag; however, this service only uses the low-order
    byte.

    When you invoke $CPU_TRANSITION, the specified event flag is
    cleared; when the operation is complete, the event flag is set.

 iosb

    OpenVMS usage:io_status_area
    type:         IOSB structure
    access:       write only
    mechanism:    by 32-bit or 64-bit reference
    The I/O status area to receive the final completion status of
    the transition operation. The iosb argument is the 32-bit or 64-
    bit virtual address of the I/O status area. The I/O status area
    structure is 32 bytes in length; its definition can be found in
    $IOSBDEF in STARLET.MLB for macro and in the file IOSBDEF.H in
    SYS$STARLET_C.TLB for C.

    When you call $CPU_TRANSITION, the I/O status area is cleared.
    After the transition operation is complete, the block is modified
    as follows:

    Symbolic Name      Description

    iosb$w_status      The first word contains the condition value
                       return, indicating the final completion status
                       of the operation.
                       The first bit in the second word of the IOSB
                       is set only if an error occurred during the
                       operation; the remaining bits are zeroes.

 astadr_64

    OpenVMS usage:ast_procedure
    type:         procedure value
    access:       call without stack unwinding
    mechanism:    by 32-bit or 64-bit reference
    The AST routine to be executed when the requested transition
    attempt has completed. The astadr_64 argument is the 32-bit
    or 64-bit virtual address of this routine. If you specify the
    astadr_64 argument, the AST routine executes at the access mode
    from which the state transition was requested.

 astprm_64

    OpenVMS usage:user_arg
    type:         quadword
    access:       read only
    mechanism:    by value
    The quadword AST parameter to be passed to the AST routine.
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.