//分配内存(外部调用) //memx:所属内存块 //size:内存大小(字节) //返回值:分配到的内存首地址. void *mymalloc(uint8_t memx,uint32_t size) { uint32_t offset; offset=my_mem_malloc(memx,size); if(offset==0XFFFFFFFF)return NULL; else return (void*)((uint32_t)mallco_dev.membase[memx]+offset); }
//分配内存(外部调用) //memx:所属内存块 //size:内存大小(字节) //返回值:分配到的内存首地址. void *mymalloc(u8 memx,u32 size) { u32 offset; offset=my_mem_malloc(memx,size); if(offset==0XFFFFFFFF)return NULL; else return (void*)((u32)mallco_dev.membase[memx]+offset); }
//重新分配内存(外部调用) //memx:所属内存块 //*ptr:旧内存首地址 //size:要分配的内存大小(字节) //返回值:新分配到的内存首地址. void *myrealloc(uint8_t memx,void *ptr,uint32_t size) { uint32_t offset; offset=my_mem_malloc(memx,size); if(offset==0XFFFFFFFF)return NULL; else { mymemcpy((void*)((uint32_t)mallco_dev.membase[memx]+offset),ptr,size); //拷贝旧内存内容到新内存 myfree(memx,ptr); //释放旧内存 return (void*)((uint32_t)mallco_dev.membase[memx]+offset); //返回新内存首地址 } }