forked from xuos/xiuos
Add USB memory pool functions
This commit is contained in:
parent
19269781b4
commit
6ab2083403
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue