LibJuno 0.1.0
LibJuno is a lightweight C99 library designed specifically for embedded systems.
|
Go to the source code of this file.
Data Structures | |
struct | JUNO_MEMORY_BLOCK_METADATA_TAG |
struct | JUNO_MEMORY_ALLOC_HDR_TAG |
Structure for memory allocation header. Contains general information including the type of allocation. More... | |
struct | JUNO_MEMORY_TAG |
Structure for an allocated memory segment. Describes the allocated memory with a pointer to the start and its size. More... | |
struct | JUNO_MEMORY_BLOCK_TAG |
Structure representing a block-based memory allocator. Manages a fixed-size memory area along with associated free memory tracking. More... | |
union | JUNO_MEMORY_ALLOC_TAG |
Union for a generic memory allocation. Accommodates various allocation types, currently including block-based allocations. More... | |
Macros | |
#define | JUNO_MEMORY_BLOCK(name, type, length) static type name[length] = {}; |
Macro to declare a static memory block and its associated free stack. | |
#define | JUNO_MEMORY_BLOCK_METADATA(name, length) static JUNO_MEMORY_BLOCK_METADATA_T name[length] = {}; |
Macro to declare a static array for memory metadata. | |
#define | JUNO_REF(name) REF##name |
#define | JUNO_NEW_REF(name) JUNO_MEMORY_T *JUNO_REF(name) |
Typedefs | |
typedef struct JUNO_MEMORY_BLOCK_METADATA_TAG | JUNO_MEMORY_BLOCK_METADATA_T |
typedef struct JUNO_MEMORY_BLOCK_TAG | JUNO_MEMORY_BLOCK_T |
typedef struct JUNO_MEMORY_ALLOC_HDR_TAG | JUNO_MEMORY_ALLOC_HDR_T |
typedef struct JUNO_MEMORY_TAG | JUNO_MEMORY_T |
typedef union JUNO_MEMORY_ALLOC_TAG | JUNO_MEMORY_ALLOC_T |
typedef enum JUNO_MEMORY_ALLOC_TYPE_TAG | JUNO_MEMORY_ALLOC_TYPE_T |
Enumeration of memory allocation types. | |
Enumerations | |
enum | JUNO_MEMORY_ALLOC_TYPE_TAG { JUNO_MEMORY_ALLOC_TYPE_RESERVED = 0 , JUNO_MEMORY_ALLOC_TYPE_BLOCK = 1 } |
Enumeration of memory allocation types. More... | |
#define JUNO_MEMORY_BLOCK | ( | name, | |
type, | |||
length | |||
) | static type name[length] = {}; |
Macro to declare a static memory block and its associated free stack.
name | Name of the memory block. |
type | Data type of each block element. |
length | Number of elements in the memory block. |
#define JUNO_MEMORY_BLOCK_METADATA | ( | name, | |
length | |||
) | static JUNO_MEMORY_BLOCK_METADATA_T name[length] = {}; |
Macro to declare a static array for memory metadata.
name | Name of the metadata array. |
length | Number of metadata entries. |
#define JUNO_NEW_REF | ( | name | ) | JUNO_MEMORY_T *JUNO_REF(name) |
#define JUNO_REF | ( | name | ) | REF##name |
typedef struct JUNO_MEMORY_ALLOC_HDR_TAG JUNO_MEMORY_ALLOC_HDR_T |
typedef union JUNO_MEMORY_ALLOC_TAG JUNO_MEMORY_ALLOC_T |
typedef enum JUNO_MEMORY_ALLOC_TYPE_TAG JUNO_MEMORY_ALLOC_TYPE_T |
Enumeration of memory allocation types.
typedef struct JUNO_MEMORY_BLOCK_METADATA_TAG JUNO_MEMORY_BLOCK_METADATA_T |
typedef struct JUNO_MEMORY_BLOCK_TAG JUNO_MEMORY_BLOCK_T |
typedef struct JUNO_MEMORY_TAG JUNO_MEMORY_T |