Guardian Application Conversion Guide
Declaring and Using TACL Variables
Converting TACL Programs
096047 Tandem Computers Incorporated 7–3
To allow for high-PIN processes, convert your program to use INT data types for both
CPU and PIN values. For example:
[#DEF cpu^and^pin STRUCT
BEGIN
INT cpu;
INT pin;
END;
]
Declaring Process
Identifiers
The C-series interface uses 4-word process IDs to identify processes. The D-series
enhanced interface instead uses 20-byte process handles or process descriptor strings,
depending on what the identifier is used for.
Your existing program might declare a STRUCT containing a process ID. For example:
[#DEF process^identifier STRUCT
BEGIN
INT process^id(0:3);
BYTE cpu;
BYTE pin;
END;
]
You need to change the declaration to contain either a process handle (for process-
control operations) or a process descriptor (used by Guardian procedures to return the
identity of a process).
A process handle is a series of 10 numbers in the range 0 through 65535 separated by
periods. You declare a process handle using the new PHANDLE data type.
A process descriptor is represented by a string of at most 29 bytes for an unnamed
process or 33 bytes for a named process. For example:
[#DEF process^information STRUCT
BEGIN
PHANDLE process^handle;
CHAR process^descriptor(0:32);
INT cpu;
INT pin;
END;
]
If your existing program is part of a DSM application and uses SPI buffers, the process
IDs might be identified by a ZSPI-TYP-CRTPID token type.
Convert your application to use either a process-descriptor token or a process-handle
token instead of the process identifier. You need to use a process descriptor when the
token contains information returned from a Guardian procedure. You can use the
token type ZSPI-TYP-STRING for a process descriptor.
For process-control information, the token contains a process handle. You should use
the ZSPI-TDT-PHANDLE token data type.