Shared Persistent Heap Data Environment Manual  1.4.0
Macros | Typedefs | Functions
sassimplespace.h File Reference

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...
 

Detailed Description

Shared Address Space Simple Space. Allocate a SAS block as one contiguous space.

!

Typedef Documentation

◆ SASSimpleSpace_t

typedef void* SASSimpleSpace_t

Handle to SAS Simple Space.

The type is SAS_RUNTIME_SIMPLESPACE

Function Documentation

◆ SASSimpleSpaceCreate()

__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.

@param space_size size of the simple space within the block.
@return a handle to the created SASSimpleSpace_t.

◆ SASSimpleSpaceDestroy()

__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.

@param space handle of the SASSimpleSpace_t to be destroyed.
@return a 0 value indicates success, otherwise failure.

◆ SASSimpleSpaceDestroyNoLock()

__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.

@param space handle of the SASSimpleSpace_t to be destroyed.
@return a 0 value indicates success, otherwise failure.

◆ SASSimpleSpaceFreeSpace()

__C__ block_size_t SASSimpleSpaceFreeSpace ( SASSimpleSpace_t  space)

Return the block free space not occupied by control blocks and the simple space.

@param space Handle of a SAS Simple Space.
@return the size of the remaining free space.

◆ SASSimpleSpaceFromAddr()

__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.

@param space Address within the range of the contained simple space.
@return a handle to the created SASSimpleSpace_t.

◆ SASSimpleSpaceInit()

__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.

@param heap_block a block of allocated SAS storage.
@param block_size power of two size of the heap to be initialized.
@param space_size size of the simple space within the block.
@return a handle to the initialized SASSimpleSpace_t

◆ SASSimpleSpaceToAddr()

__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.

@param space Handle of a SAS Simple Space.
@return address of contained simple space data.