agileRTOS (zrtos)  Version 0.8.0 (ghostbuster)
vheap_chunk.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024 ykat UG (haftungsbeschraenkt) - All Rights Reserved
3  *
4  * Permission for non-commercial use is hereby granted,
5  * free of charge, without warranty of any kind.
6  */
7 #ifndef ZRTOS_VHEAP_CHUNK_H
8 #define ZRTOS_VHEAP_CHUNK_H
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 
14 #include <zrtos/vheap_chunk_uid.h>
15 #include <zrtos/vheap_chunk_type.h>
16 
17 
18 typedef struct _zrtos_vheap_chunk_t{
19  char first[2];
20  void *ptr;
21  size_t length;
25  char last[2];
26 }__attribute__((aligned(ZRTOS_ARCH__BYTE_ALIGNMENT)))zrtos_vheap_chunk_t;
27 
29  return thiz->ptr;
30 }
31 
33  return thiz->length;
34 }
35 
37  return thiz->uid;
38 }
39 
42 ){
43  return &thiz->type;
44 }
45 
49 ){
50  thiz->type.type = type;
51 }
52 
54  return zrtos_types__ptr_add(
57  );
58 }
59 
63 ){
66  ,type
67  );
68 }
69 
70 #ifdef __cplusplus
71 }
72 #endif
73 #endif
struct _zrtos_vheap_chunk_t zrtos_vheap_chunk_t
zrtos_vheap_chunk_type_t * zrtos_vheap_chunk__get_type(zrtos_vheap_chunk_t *thiz)
Definition: vheap_chunk.h:40
void * zrtos_vheap_chunk__get_ptr(zrtos_vheap_chunk_t *thiz)
Definition: vheap_chunk.h:28
size_t zrtos_vheap_chunk__get_length(zrtos_vheap_chunk_t *thiz)
Definition: vheap_chunk.h:32
zrtos_vheap_chunk_uid_t zrtos_vheap_chunk__get_uid(zrtos_vheap_chunk_t *thiz)
Definition: vheap_chunk.h:36
void * zrtos_types__ptr_add(void *ptr, size_t byte_len)
Definition: types.h:35
bool zrtos_vheap_chunk_type__is_eq(zrtos_vheap_chunk_type_t *thiz, zrtos_vheap_type_t type)
#define ZRTOS_ARCH__BYTE_ALIGNMENT
Definition: atmega2560.h:28
zrtos_vheap_type_t
Definition: vheap_type.h:14
bool zrtos_vheap_chunk__is_type_eq(zrtos_vheap_chunk_t *thiz, zrtos_vheap_type_t type)
Definition: vheap_chunk.h:60
zrtos_vheap_chunk_uid_t uid
Definition: vheap_chunk.h:23
zrtos_vheap_chunk_type_t type
Definition: vheap_chunk.h:22
void zrtos_vheap_chunk__set_type(zrtos_vheap_chunk_t *thiz, zrtos_vheap_type_t type)
Definition: vheap_chunk.h:46
zrtos_vheap_type_t type
void * zrtos_vheap_chunk__get_last_address(zrtos_vheap_chunk_t *thiz)
Definition: vheap_chunk.h:53
zrtos_vheap_chunk_uid_t parent
Definition: vheap_chunk.h:24