 |
OpenVMS Alpha Guide to Upgrading Privileged-Code
Applications
GET_CURKTB Macro
Obtains the current process or thread KTB address. Applicable to BLISS,
C, and MACRO-32. The following three command formats are for BLISS, C,
and MACRO-32, respectively.
Format
GET_CURKTB;
GET_CURKTB()
GET_CURKTB ktbreg , pcbreg, [preserve][test_multi=yes]
Arguments
ktbreg
This argument is the destination to return the KTB address. The default
is R14.
pcbreg
This argument is the register containing the address of the PCB. The
default is R14.
preserve
This argument is optional. The default is YES to preserve R0 and R1.
Otherwise, it is NO.
test_multi
This argument is optional. The default is YES to test and validate if
there is more than one KTB. If NO, it is assumed that the process is
already known to be multithreaded.
Description
The GET_CURKTB macro obtains the current process or thread KTB address.
CVT_IPID_TO_PCB_KTB Macro
Converts a PID to PCB and KTB addresses. Applicable to MACRO-32 only.
Format
CVT_IPID_TO_PCB_KTB ipid ,ktbreg ,pcbreg ,fail
RETURNS
OpenVMS usage |
cond_value |
type |
longword (unsigned) |
access |
write only |
mechanism |
by value |
Status indicating the success or failure of the operation.
Arguments
ipid
This argument provides the internal PID to be converted.
ktbreg
This argument is the destination to return the KTB address. The default
is R14.
pcbreg
This argument provides the register which returns the PCB. The default
is R14.
preserve
This argument is not used by this macro but is passed to
CVT_IPID_TO_KTB to indicate whether to preserve R0 and R1.
fail
This argument provides the address to transfer control if the
ipid argument is not valid. If this transfer is taken,
R0 contains one of the status values in the Return Values section.
Description
The CVT_IPID_TO_PCB_KTB macro converts a PID to PCB and KTB addresses.
This macro applies to MACRO-32 only.
Return Values
SS$_NONEXPR
|
The process does not exist.
|
SS$_NOSUCHTHREAD
|
The process exists but the thread does not.
|
CVT_IPID_TO_KTB Macro
Converts a PID to a KTB address. Applies to MACRO-32 only.
Format
CVT_IPID_TO_KTB ipid ,ktbreg ,pcbreg ,perserve ,fail
RETURNS
OpenVMS usage |
cond_value |
type |
longword (unsigned) |
access |
write only |
mechanism |
by value |
Status indicating the success or failure of the operation.
Arguments
ipid
This argument provides the internal PID to be converted.
ktbreg
This argument provides the register that returns the KTB. The default
is R14.
pcbreg
This argument provides the register which holds the PCB. The default is
R14.
preserve
This argument's default is YES to save R0 and R1.
fail
This argument provides the address to transfer control if the
ipid argument is not valid. If this transfer is taken,
R0 contains one of the status values in the Return Values section.
Description
The CVT_IPID_TO_KRB macro converts a PID to a KTB address. This macro
applies to MACRO-32 only.
Return Values
SS$_NONEXPR
|
The process does not exist.
|
SS$_NOSUCHTHREAD
|
The process exists but the thread does not.
|
|