shpclmove(3F)
SHPCLMOVE - Extends a symmetric heap block or copies the contents of the block into a larger block
As shipped in IRIX 6.5.22. Added in IRIX 6.5.19.
NAME SHPCLMOVE - Extends a symmetric heap block or copies the contents of the block into a larger block SYNOPSIS POINTER (addr, A(1)) INTEGER length, status, abort CALL SHPCLMOVE (addr, length, status, abort) DESCRIPTION The SHPCLMOVE function either extends a symmetric heap block if the block is followed by a large enough free block or copies the contents of the existing block to a larger block and returns a status code indicating that the block was moved. This function also can reduce the size of a block if the new length is less than the old length. All processing elements (PEs) in a program must call SHPCLMOVE with the same value of addr to maintain symmetric heap consistency; if any PEs are missing, the program hangs. The SHPCLMOVE function accepts the following arguments: Argument Description addr On entry, first word address of the block to change; on exit, the new address of the block if it was moved. length Requested new total length in words (input). One word is 32 bits. status Status is 0 if the block was extended in place, 1 if it was moved, and a negative integer for the type of error detected (output). abort Abort code. Nonzero requests abort on error; 0 requests an error code (input). RETURN VALUES Error conditions are as follows: Code Condition -1 Length is not an integer greater than 0. -2 No more memory is available from the system (checked if the block cannot be extended and the free space list does not include a large enough block). -3 Address is outside the bounds of the symmetric heap. -4 Block is already free. -5 Address is not at the beginning of a block. SEE ALSO intro_shmem(3), shmalloc(3F), shpalloc(3F), shpdeallc(3F)