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; usb_mem_page_t selected_page;
int header, tail; int header, tail;
@ -94,17 +94,19 @@ usb_mem_page_t usb_alloc_mem_page(){
*/ */
if((tail + 1) % MEM_POOL_SIZE == header) if((tail + 1) % MEM_POOL_SIZE == header)
return NULL; return -1;
selected_page = &usb_mem_pool.pages[tail]; selected_page = &usb_mem_pool.pages[tail];
tail++; tail++;
memcpy(page, selected_page, sizeof(struct usb_mem_page));
if(tail == MEM_POOL_SIZE) if(tail == MEM_POOL_SIZE)
tail = 0; tail = 0;
usb_mem_pool.tail = tail; 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(); int usb_mem_pool_init();
void usb_mem_pool_destory(); 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); void usb_free_mem_page(usb_mem_page_t page);