#include "lbm_types.h"
#include <stdint.h>
#include <stddef.h>
Go to the source code of this file.
|  | 
| #define | LBM_MEMORY_SIZE_64BYTES_TIMES_X(X)   (16*(X)) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE(X)   (X) | 
|  | 
| #define | LBM_MEMORY_SIZE_512   LBM_MEMORY_SIZE_64BYTES_TIMES_X(8) | 
|  | 
| #define | LBM_MEMORY_SIZE_1K   LBM_MEMORY_SIZE_64BYTES_TIMES_X(16) | 
|  | 
| #define | LBM_MEMORY_SIZE_2K   LBM_MEMORY_SIZE_64BYTES_TIMES_X(32) | 
|  | 
| #define | LBM_MEMORY_SIZE_4K   LBM_MEMORY_SIZE_64BYTES_TIMES_X(64) | 
|  | 
| #define | LBM_MEMORY_SIZE_8K   LBM_MEMORY_SIZE_64BYTES_TIMES_X(128) | 
|  | 
| #define | LBM_MEMORY_SIZE_10K   LBM_MEMORY_SIZE_64BYTES_TIMES_X(160) | 
|  | 
| #define | LBM_MEMORY_SIZE_12K   LBM_MEMORY_SIZE_64BYTES_TIMES_X(192) | 
|  | 
| #define | LBM_MEMORY_SIZE_14K   LBM_MEMORY_SIZE_64BYTES_TIMES_X(224) | 
|  | 
| #define | LBM_MEMORY_SIZE_16K   LBM_MEMORY_SIZE_64BYTES_TIMES_X(256) | 
|  | 
| #define | LBM_MEMORY_SIZE_32K   LBM_MEMORY_SIZE_64BYTES_TIMES_X(512) | 
|  | 
| #define | LBM_MEMORY_SIZE_1M   LBM_MEMORY_SIZE_64BYTES_TIMES_X(16384) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_512   LBM_MEMORY_BITMAP_SIZE(8) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_1K   LBM_MEMORY_BITMAP_SIZE(16) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_2K   LBM_MEMORY_BITMAP_SIZE(32) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_4K   LBM_MEMORY_BITMAP_SIZE(64) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_8K   LBM_MEMORY_BITMAP_SIZE(128) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_10K   LBM_MEMORY_BITMAP_SIZE(160) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_12K   LBM_MEMORY_BITMAP_SIZE(192) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_14K   LBM_MEMORY_BITMAP_SIZE(224) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_16K   LBM_MEMORY_BITMAP_SIZE(256) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_32K   LBM_MEMORY_BITMAP_SIZE(512) | 
|  | 
| #define | LBM_MEMORY_BITMAP_SIZE_1M   LBM_MEMORY_BITMAP_SIZE(16384) | 
|  | 
◆ lbm_free()
      
        
          | void lbm_free | ( | void * | ptr | ) |  | 
      
 
Free memory allocated with lbm_malloc 
- Parameters
- 
  
  
 
 
◆ lbm_malloc()
      
        
          | void* lbm_malloc | ( | size_t | size | ) |  | 
      
 
Malloc like interface to lbm_memory 
- Parameters
- 
  
    | size | Size in bytes of memory to allocate. |  
 
- Returns
- Pointer to array or NULL. 
 
 
◆ lbm_malloc_reserve()
      
        
          | void* lbm_malloc_reserve | ( | size_t | size | ) |  | 
      
 
Allocate memory potentially from the reserved memory. 
- Parameters
- 
  
    | size | Size in bytes of memory to allocate. |  
 
- Returns
- Pointer to array or NULL. 
 
 
◆ lbm_memory_allocate()
      
        
          | lbm_uint* lbm_memory_allocate | ( | lbm_uint | num_words | ) |  | 
      
 
Allocate a number of words from the symbols and arrays memory.
- Parameters
- 
  
    | num_words | Number of words to allocate. |  
 
- Returns
- pointer to allocated array or NULL. 
 
 
◆ lbm_memory_free()
      
        
          | int lbm_memory_free | ( | lbm_uint * | ptr | ) |  | 
      
 
Free an allocated array int the symbols and arrays memory.
- Parameters
- 
  
    | ptr | Pointer to array to free. |  
 
- Returns
- 1 on success and 0 on failure. 
 
 
◆ lbm_memory_get_reserve()
      
        
          | lbm_uint lbm_memory_get_reserve | ( | void |  | ) |  | 
      
 
Get the number of words of memory that is treated as reserve. 
- Returns
- Number of words that are reserved 
 
 
◆ lbm_memory_init()
      
        
          | int lbm_memory_init | ( | lbm_uint * | data, | 
        
          |  |  | lbm_uint | data_size, | 
        
          |  |  | lbm_uint * | bitmap, | 
        
          |  |  | lbm_uint | bitmap_size | 
        
          |  | ) |  |  | 
      
 
Initialize the symbols and arrays memory
- Parameters
- 
  
    | data | Pointer to an array of uint32_t for data storage. |  | data_size | The size of the data storage array in number of uint32_t elements. |  | bitmap | Pointer to an array of uint32_t for memory allocator meta-data. |  | bitmap_size | The size of the meta-data in number of uint32_t elements. |  
 
- Returns
 
 
◆ lbm_memory_longest_free()
      
        
          | lbm_uint lbm_memory_longest_free | ( | void |  | ) |  | 
      
 
Find the length of the longest run of consecutire free indices in the LBM memory. 
 
 
◆ lbm_memory_num_free()
      
        
          | lbm_uint lbm_memory_num_free | ( | void |  | ) |  | 
      
 
- Returns
- The number of free words in the symbols and arrays memory. 
 
 
◆ lbm_memory_num_words()
      
        
          | lbm_uint lbm_memory_num_words | ( | void |  | ) |  | 
      
 
Size of of the symbols and arrays memory in uint32_t chunks.
- Returns
- Number of uint32_t words. 
 
 
◆ lbm_memory_ptr_inside()
      
        
          | int lbm_memory_ptr_inside | ( | lbm_uint * | ptr | ) |  | 
      
 
Check if a pointer points into the lbm_memory
- Parameters
- 
  
  
- Returns
- 1 for yes and 0 for no. 
 
 
◆ lbm_memory_set_reserve()
      
        
          | void lbm_memory_set_reserve | ( | lbm_uint | num_words | ) |  | 
      
 
Set the size of the memory reserve in words. 
- Parameters
- 
  
    | num_words | Number of words to treat as reserve. |  
 
 
 
◆ lbm_memory_shrink()
      
        
          | int lbm_memory_shrink | ( | lbm_uint * | ptr, | 
        
          |  |  | lbm_uint | n | 
        
          |  | ) |  |  | 
      
 
Shrink an allocated array. 
- Parameters
- 
  
    | ptr | Pointer to array to shrink |  | n | New smaller size of array |  
 
- Returns
- 1 on success and 0 on failure.