7 #ifndef ZRTOS_VHEAP_TASK_PTHREAD_H 8 #define ZRTOS_VHEAP_TASK_PTHREAD_H 36 #define PTHREAD_MUTEX_INITIALIZER \ 38 .mutex = ZRTOS_TASK_MUTEX__INIT() \ 93 ,
void *(*start_routine)(
void *)
121 mem_chunk_last_address
134 mem_chunk_last_address
int pthread_join(pthread_t thread, void **retval)
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr)
uint8_t zrtos_arch_stack_t
void * zrtos_types__ptr_subtract(void *ptr, size_t byte_len)
void _zrtos_vheap__free(zrtos_vheap_t *thiz, zrtos_vheap_chunk_t *chunk)
#define ZRTOS_TYPES__MAX(a, b)
int zrtos_task_mutex__try_lock(zrtos_task_mutex_t *thiz)
int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void *), void *restrict arg)
int pthread_mutex_trylock(pthread_mutex_t *mutex)
int pthread_mutexattr_destroy(pthread_mutexattr_t *attr)
#define ZRTOS_ARCH__GET_CPU_STATE_BUFFER_LENGTH()
zrtos_vheap_chunk_uid_t id
zrtos_vheap_chunk_t * zrtos_vheap__get_by_id(zrtos_vheap_t *thiz, zrtos_vheap_chunk_uid_t uid)
void zrtos_task_mutex__deinit(zrtos_task_mutex_t *thiz)
int pthread_mutex_destroy(pthread_mutex_t *mutex)
int pthread_mutex_lock(pthread_mutex_t *mutex)
zrtos_vheap_chunk_t * zrtos_vheap__get_by_type_ex(zrtos_vheap_t *thiz, zrtos_vheap_type_t type)
int zrtos_vheap_chunk_uid__cmp(zrtos_vheap_chunk_uid_t *a, zrtos_vheap_chunk_uid_t *b)
int zrtos_task_mutex__unlock(zrtos_task_mutex_t *thiz)
zrtos_vheap_chunk_uid_t zrtos_vheap_chunk__get_uid(zrtos_vheap_chunk_t *thiz)
int zrtos_task_mutex__lock(zrtos_task_mutex_t *thiz)
zrtos_vheap_chunk_t * _zrtos_vheap__malloc(zrtos_vheap_t *thiz, zrtos_vheap_chunk_uid_t parent, zrtos_vheap_type_t type, size_t length)
int pthread_equal(pthread_t t1, pthread_t t2)
int pthread_mutex_unlock(pthread_mutex_t *mutex)
void * zrtos_vheap__get_last_address(zrtos_vheap_t *thiz)
size_t zrtos_types__ptr_get_byte_distance(void *bigger, void *smaller)
bool zrtos_task_mutex__init(zrtos_task_mutex_t *thiz)
void * zrtos_vheap_task__get_return_value(zrtos_vheap_task_t *thiz)
int pthread_attr_destroy(pthread_attr_t *attr)
bool zrtos_vheap_chunk__is_type_eq(zrtos_vheap_chunk_t *thiz, zrtos_vheap_type_t type)
zrtos_arch_stack_t * stack_ptr
zrtos_vheap_chunk_uid_t zrtos_vheap_chunk_uid__error(void)
int pthread_mutexattr_init(pthread_mutexattr_t *attr)
struct _zrtos_vheap_task_t zrtos_vheap_task_t
int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize)
pthread_t pthread_self(void)
void * zrtos_vheap_chunk__get_last_address(zrtos_vheap_chunk_t *thiz)
void zrtos_vheap_task_scheduler__delay_ms(zrtos_vheap_task_delay_t ms)
bool zrtos_vheap_task__init(zrtos_vheap_task_t *thiz, zrtos_arch_stack_t *heap, size_t stacksize_min, zrtos_arch_callback_t callback, void *args)
zrtos_vheap_t * zrtos_vheap_task_scheduler__get_heap(void)
#define ZRTOS_ARCH__GET_FN_CALL_STACK_LENGTH()
int pthread_attr_init(pthread_attr_t *attr)