00001 00041 #include <assert.h> 00042 #include <mempool.h> 00043 #include <physmem.h> 00044 #include <slist.h> 00045 #include <usb/request.h> 00046 00047 #include <app/usb.h> 00048 00049 static struct mem_pool usb_request_pool; 00050 00060 void usb_req_init(struct usb_request *req) 00061 { 00062 slist_init(&req->buf_list); 00063 req->flags = 0; 00064 req->bytes_xfered = 0; 00065 } 00066 00073 struct usb_request *usb_req_alloc(void) 00074 { 00075 struct usb_request *req; 00076 00077 req = mem_pool_alloc(&usb_request_pool); 00078 if (req) 00079 usb_req_init(req); 00080 00081 return req; 00082 } 00083 00089 void usb_req_free(struct usb_request *req) 00090 { 00091 mem_pool_free(&usb_request_pool, req); 00092 } 00093 00099 void usb_init(void) 00100 { 00101 mem_pool_init_physmem(&usb_request_pool, &cpu_sram_pool, 00102 APP_USB_NR_REQUESTS, 00103 sizeof(struct usb_request), 2); 00104 }
1.6.3