2025-06-27 00:32:57 +08:00
|
|
|
|
#ifndef OS_MEM_H__
|
|
|
|
|
#define OS_MEM_H__
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
2025-10-18 13:58:40 +08:00
|
|
|
|
extern "C" {
|
2025-06-27 00:32:57 +08:00
|
|
|
|
#endif
|
|
|
|
|
|
2025-06-28 22:15:49 +08:00
|
|
|
|
#include "stddef.h"
|
2025-10-18 13:58:40 +08:00
|
|
|
|
#include "stdint.h"
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
|
|
|
|
#ifndef NULL
|
|
|
|
|
#define NULL 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
struct _m_mallco_dev {
|
|
|
|
|
uint8_t *membase; // <20>ڴ<EFBFBD><DAB4><EFBFBD>
|
|
|
|
|
uint16_t *memmap; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
|
|
|
|
|
uint8_t memrdy; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
};
|
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
void mymemset(void *s, uint8_t c, uint32_t count); // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|
|
|
|
void mymemcpy(void *des, void *src, uint32_t n); // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
int mem_perused(void); // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>
|
|
|
|
|
int exmem_perused(void); // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>
|
|
|
|
|
int ccm_perused(void);
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
2025-10-18 13:58:40 +08:00
|
|
|
|
// <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
void mymem_init(void);
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
void myfree(void *ptr); // <20>ڴ<EFBFBD><DAB4>ͷ<EFBFBD>
|
|
|
|
|
void *mymalloc(size_t size); // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void *myrealloc(void *ptr, uint32_t size); // <20><><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ沢<DAB4><E6B2A2><EFBFBD><EFBFBD>
|
|
|
|
|
void *mycalloc(uint32_t size);
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>ڴ<EFBFBD>
|
|
|
|
|
void *mymalloc_fast(uint32_t size);
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
void *mymalloc_exm(uint32_t size);
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
// <20>ͷ<EFBFBD>CCM<43>ڴ<EFBFBD>
|
|
|
|
|
void myfree_ccm(void *ptr);
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>CCM<43>ڴ<EFBFBD>
|
|
|
|
|
void *mymalloc_ccm(uint32_t size);
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
2025-10-18 13:58:40 +08:00
|
|
|
|
}
|
2025-06-27 00:32:57 +08:00
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif
|