Guardian Procedure Calls Reference Manual
Returned Value
EXTADDR
The extended address of the memory block obtained if the operation is successful, or -1D if an
error occurred or block-size is 0. (Values less than -1D may be returned to privileged callers.)
CAUTION: The address must be a simple INT(32) or EXTADDR variable; otherwise, the assignment
can alter the condition code.
Considerations
• For performance reasons in the operating system, GETPOOL and PUTPOOL do not check pool
data structures on each call. A process that destroys data structures or uses an incorrect address
for a parameter can terminate on a call to GETPOOL or PUTPOOL: a TNS Guardian process
can get an instruction failure trap (trap 1) or invalid address trap (trap 0); an OSS or native
process can receive a SIGILL or signal.
• In the native environment, GETPOOL verifies that all data blocks returned from the pool are
aligned on a 16-byte boundary. HP suggests that code running in the TNS environment also
allocate data blocks in 16-byte chunks.
Example
@PBLOCK := GETPOOL ( POOL^HEAD , $UDBL( $LEN( PBLOCK ) ) );
! get pool block size of PBLOCK in bytes.
Related Programming Manual
For programming information about the GETPOOL memory-management procedure, see the
Guardian Programmer's Guide.
662 Guardian Procedure Calls (G)