12345678910111213141516171819202122232425262728 |
- #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
|