|
Shared Persistent Heap Data Environment Manual
1.1.0
|
Shared Address Space Simple Space. Allocate a SAS block as one contiguous space. More...
#include "sastype.h"Go to the source code of this file.
Macros | |
| #define | __C__ |
| ignore this macro behind the curtain | |
Typedefs | |
| typedef void * | SASSimpleSpace_t |
| Handle to SAS Simple Space. More... | |
Functions | |
| __C__ SASSimpleSpace_t | SASSimpleSpaceInit (void *heap_block, block_size_t block_size, block_size_t space_size) |
| Initialize a shared storage block as a simple space. More... | |
| __C__ SASSimpleSpace_t | SASSimpleSpaceCreate (block_size_t space_size) |
| Allocate a SAS block large enough to contain the requested SAS Simple Space. More... | |
| __C__ void * | SASSimpleSpaceToAddr (SASSimpleSpace_t space) |
| Obtain the starting byte address of the simple space within the SASSimpleSpace_t block. More... | |
| __C__ SASSimpleSpace_t | SASSimpleSpaceFromAddr (void *space) |
| Obtain the SASSimpleSpace_t handle from a contained space address. More... | |
| __C__ int | SASSimpleSpaceDestroy (SASSimpleSpace_t space) |
| Destroy a SASSimpleSpace_t and free the shared storage block. More... | |
| __C__ block_size_t | SASSimpleSpaceFreeSpace (SASSimpleSpace_t space) |
| Return the block free space not occupied by control blocks and the simple space. More... | |
| __C__ int | SASSimpleSpaceDestroyNoLock (SASSimpleSpace_t space) |
| Destroy a SASSimpleSpace_t and free the shared storage block. More... | |
Shared Address Space Simple Space. Allocate a SAS block as one contiguous space.
!
| typedef void* SASSimpleSpace_t |
Handle to SAS Simple Space.
The type is SAS_RUNTIME_SIMPLESPACE
| __C__ SASSimpleSpace_t SASSimpleSpaceCreate | ( | block_size_t | space_size | ) |
Allocate a SAS block large enough to contain the requested SAS Simple Space.
Initialize the control blocks within the specified storage block as a Simple Space. The storage block must be power of two in size. The type should be SAS_RUNTIME_SIMPLESPACE.
| space_size | size of the simple space within the block. |
| __C__ int SASSimpleSpaceDestroy | ( | SASSimpleSpace_t | space | ) |
Destroy a SASSimpleSpace_t and free the shared storage block.
The sas_type_t must be SAS_RUNTIME_SIMPLESPACE. Destroy holds an exclusive write while clearing the control blocks and freeing the SAS block.
| space | handle of the SASSimpleSpace_t to be destroyed. |
| __C__ int SASSimpleSpaceDestroyNoLock | ( | SASSimpleSpace_t | space | ) |
Destroy a SASSimpleSpace_t and free the shared storage block.
The sas_type_t must be SAS_RUNTIME_SIMPLESPACE.
| space | handle of the SASSimpleSpace_t to be destroyed. |
| __C__ block_size_t SASSimpleSpaceFreeSpace | ( | SASSimpleSpace_t | space | ) |
Return the block free space not occupied by control blocks and the simple space.
| space | Handle of a SAS Simple Space. |
| __C__ SASSimpleSpace_t SASSimpleSpaceFromAddr | ( | void * | space | ) |
Obtain the SASSimpleSpace_t handle from a contained space address.
Find the associated SASSimpleSpace_t control block and return its address as a SASSimpleSpace_t handle.
| space | Address within the range of the contained simple space. |
| __C__ SASSimpleSpace_t SASSimpleSpaceInit | ( | void * | heap_block, |
| block_size_t | block_size, | ||
| block_size_t | space_size | ||
| ) |
Initialize a shared storage block as a simple space.
Initialize the control blocks within the specified storage block as a Simple Space. The storage block must be power of two in size and have the same power of two (or better) alignment. The type should be SAS_RUNTIME_SIMPLESPACE.
| heap_block | a block of allocated SAS storage. |
| block_size | power of two size of the heap to be initialized. |
| space_size | size of the simple space within the block. |
| __C__ void* SASSimpleSpaceToAddr | ( | SASSimpleSpace_t | space | ) |
Obtain the starting byte address of the simple space within the SASSimpleSpace_t block.
Each SASSimpleSpace_t starts with a control block. The Simple Space data starts after this control block.
| space | Handle of a SAS Simple Space. |
1.8.9.1