Add USB memory pool functions

This commit is contained in:
xj 2024-08-01 01:40:18 -07:00
parent 19269781b4
commit 6ab2083403
2 changed files with 6 additions and 4 deletions

View File

@ -81,7 +81,7 @@ mmap_error:
}
usb_mem_page_t usb_alloc_mem_page(){
int usb_alloc_mem_page(usb_mem_page_t page){
usb_mem_page_t selected_page;
int header, tail;
@ -94,17 +94,19 @@ usb_mem_page_t usb_alloc_mem_page(){
*/
if((tail + 1) % MEM_POOL_SIZE == header)
return NULL;
return -1;
selected_page = &usb_mem_pool.pages[tail];
tail++;
memcpy(page, selected_page, sizeof(struct usb_mem_page));
if(tail == MEM_POOL_SIZE)
tail = 0;
usb_mem_pool.tail = tail;
return selected_page;
return 0;
}

View File

@ -58,7 +58,7 @@ typedef struct usb_mem_pool *usb_mem_pool_t;
int usb_mem_pool_init();
void usb_mem_pool_destory();
usb_mem_page_t usb_alloc_mem_page();
int usb_alloc_mem_page(usb_mem_page_t page);
void usb_free_mem_page(usb_mem_page_t page);