#ifndef AD0X0_MEMMAN_H #define AD0X0_MEMMAN_H #include "stdint.h" //#include "ad0x0_sfuncs.h" //#define AD0X0_SFUNC_COUNT 10 /*typedef __packed struct{ uint8_t mb_index; }ad0x0_memman_eba_t; typedef __packed struct{ uint8_t eb_index; }ad0x0_memman_la_t;*/ typedef struct{ volatile uint8_t *puba,*pla,cur_ei,total_count,lock; void (*perr)(void); }ad0x0_memman_desc_t; /*Используется два байтовых массива и индекс свободной ячейки. Один массив нужен для хранения индексов занятых ячеек, второй по индексу ячейки ссылается на первый. Такой гемор нужен для произвольного использования ячеек*/ void ad0x0_memman_init(ad0x0_memman_desc_t *_mdesc); uint8_t ad0x0_memman_get(ad0x0_memman_desc_t *_mdesc,uint8_t *_out_i);//вернет 0 если забилось uint8_t ad0x0_memman_free(ad0x0_memman_desc_t *_mdesc,uint8_t _index); #endif