Lines Matching refs:func

53 typedef rt_ssize_t (*cbw_handler)(ufunction_t func, ustorage_cbw_t cbw);
177 static rt_ssize_t _test_unit_ready(ufunction_t func, ustorage_cbw_t cbw);
178 static rt_ssize_t _request_sense(ufunction_t func, ustorage_cbw_t cbw);
179 static rt_ssize_t _inquiry_cmd(ufunction_t func, ustorage_cbw_t cbw);
180 static rt_ssize_t _allow_removal(ufunction_t func, ustorage_cbw_t cbw);
181 static rt_ssize_t _start_stop(ufunction_t func, ustorage_cbw_t cbw);
182 static rt_ssize_t _mode_sense_6(ufunction_t func, ustorage_cbw_t cbw);
183 static rt_ssize_t _read_capacities(ufunction_t func, ustorage_cbw_t cbw);
184 static rt_ssize_t _read_capacity(ufunction_t func, ustorage_cbw_t cbw);
185 static rt_ssize_t _read_10(ufunction_t func, ustorage_cbw_t cbw);
186 static rt_ssize_t _write_10(ufunction_t func, ustorage_cbw_t cbw);
187 static rt_ssize_t _verify_10(ufunction_t func, ustorage_cbw_t cbw);
205 static void _send_status(ufunction_t func) in _send_status() argument
209 RT_ASSERT(func != RT_NULL); in _send_status()
213 data = (struct mstorage*)func->user_data; in _send_status()
217 rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request); in _send_status()
221 static rt_ssize_t _test_unit_ready(ufunction_t func, ustorage_cbw_t cbw) in _test_unit_ready() argument
225 RT_ASSERT(func != RT_NULL); in _test_unit_ready()
226 RT_ASSERT(func->device != RT_NULL); in _test_unit_ready()
230 data = (struct mstorage*)func->user_data; in _test_unit_ready()
236 static rt_ssize_t _allow_removal(ufunction_t func, ustorage_cbw_t cbw) in _allow_removal() argument
240 RT_ASSERT(func != RT_NULL); in _allow_removal()
241 RT_ASSERT(func->device != RT_NULL); in _allow_removal()
245 data = (struct mstorage*)func->user_data; in _allow_removal()
260 static rt_ssize_t _inquiry_cmd(ufunction_t func, ustorage_cbw_t cbw) in _inquiry_cmd() argument
265 RT_ASSERT(func != RT_NULL); in _inquiry_cmd()
266 RT_ASSERT(func->device != RT_NULL); in _inquiry_cmd()
271 data = (struct mstorage*)func->user_data; in _inquiry_cmd()
285 rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request); in _inquiry_cmd()
299 static rt_ssize_t _request_sense(ufunction_t func, ustorage_cbw_t cbw) in _request_sense() argument
304 RT_ASSERT(func != RT_NULL); in _request_sense()
305 RT_ASSERT(func->device != RT_NULL); in _request_sense()
310 data = (struct mstorage*)func->user_data; in _request_sense()
328 rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request); in _request_sense()
342 static rt_ssize_t _mode_sense_6(ufunction_t func, ustorage_cbw_t cbw) in _mode_sense_6() argument
347 RT_ASSERT(func != RT_NULL); in _mode_sense_6()
348 RT_ASSERT(func->device != RT_NULL); in _mode_sense_6()
353 data = (struct mstorage*)func->user_data; in _mode_sense_6()
364 rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request); in _mode_sense_6()
378 static rt_ssize_t _read_capacities(ufunction_t func, ustorage_cbw_t cbw) in _read_capacities() argument
384 RT_ASSERT(func != RT_NULL); in _read_capacities()
385 RT_ASSERT(func->device != RT_NULL); in _read_capacities()
390 data = (struct mstorage*)func->user_data; in _read_capacities()
409 rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request); in _read_capacities()
423 static rt_ssize_t _read_capacity(ufunction_t func, ustorage_cbw_t cbw) in _read_capacity() argument
430 RT_ASSERT(func != RT_NULL); in _read_capacity()
431 RT_ASSERT(func->device != RT_NULL); in _read_capacity()
436 data = (struct mstorage*)func->user_data; in _read_capacity()
454 rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request); in _read_capacity()
468 static rt_ssize_t _read_10(ufunction_t func, ustorage_cbw_t cbw) in _read_10() argument
473 RT_ASSERT(func != RT_NULL); in _read_10()
474 RT_ASSERT(func->device != RT_NULL); in _read_10()
477 data = (struct mstorage*)func->user_data; in _read_10()
494 rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request); in _read_10()
508 static rt_ssize_t _write_10(ufunction_t func, ustorage_cbw_t cbw) in _write_10() argument
512 RT_ASSERT(func != RT_NULL); in _write_10()
513 RT_ASSERT(func->device != RT_NULL); in _write_10()
516 data = (struct mstorage*)func->user_data; in _write_10()
532 rt_usbd_io_request(func->device, data->ep_out, &data->ep_out->request); in _write_10()
545 static rt_ssize_t _verify_10(ufunction_t func, ustorage_cbw_t cbw) in _verify_10() argument
549 RT_ASSERT(func != RT_NULL); in _verify_10()
550 RT_ASSERT(func->device != RT_NULL); in _verify_10()
554 data = (struct mstorage*)func->user_data; in _verify_10()
560 static rt_ssize_t _start_stop(ufunction_t func, in _start_stop() argument
565 RT_ASSERT(func != RT_NULL); in _start_stop()
566 RT_ASSERT(func->device != RT_NULL); in _start_stop()
570 data = (struct mstorage*)func->user_data; in _start_stop()
576 static rt_err_t _ep_in_handler(ufunction_t func, rt_size_t size) in _ep_in_handler() argument
580 RT_ASSERT(func != RT_NULL); in _ep_in_handler()
581 RT_ASSERT(func->device != RT_NULL); in _ep_in_handler()
585 data = (struct mstorage*)func->user_data; in _ep_in_handler()
593 rt_usbd_ep_set_stall(func->device, data->ep_in); in _ep_in_handler()
601 rt_usbd_io_request(func->device, data->ep_out, &data->ep_out->request); in _ep_in_handler()
619 rt_usbd_ep_set_stall(func->device, data->ep_out); in _ep_in_handler()
631 _send_status(func); in _ep_in_handler()
642 rt_usbd_ep_set_stall(func->device, data->ep_in); in _ep_in_handler()
649 rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request); in _ep_in_handler()
653 _send_status(func); in _ep_in_handler()
689 static void _cb_len_calc(ufunction_t func, struct scsi_cmd* cmd, in _cb_len_calc() argument
694 RT_ASSERT(func != RT_NULL); in _cb_len_calc()
698 data = (struct mstorage*)func->user_data; in _cb_len_calc()
753 static rt_bool_t _cbw_verify(ufunction_t func, struct scsi_cmd* cmd, in _cbw_verify() argument
760 RT_ASSERT(func != RT_NULL); in _cbw_verify()
762 data = (struct mstorage*)func->user_data; in _cbw_verify()
804 static rt_ssize_t _cbw_handler(ufunction_t func, struct scsi_cmd* cmd, in _cbw_handler() argument
809 RT_ASSERT(func != RT_NULL); in _cbw_handler()
813 data = (struct mstorage*)func->user_data; in _cbw_handler()
815 return cmd->handler(func, cbw); in _cbw_handler()
826 static rt_err_t _ep_out_handler(ufunction_t func, rt_size_t size) in _ep_out_handler() argument
833 RT_ASSERT(func != RT_NULL); in _ep_out_handler()
834 RT_ASSERT(func->device != RT_NULL); in _ep_out_handler()
838 data = (struct mstorage*)func->user_data; in _ep_out_handler()
862 _cb_len_calc(func, cmd, cbw); in _ep_out_handler()
863 if(!_cbw_verify(func, cmd, cbw)) in _ep_out_handler()
868 len = _cbw_handler(func, cmd, cbw); in _ep_out_handler()
871 _send_status(func); in _ep_out_handler()
891 rt_usbd_io_request(func->device, data->ep_out, &data->ep_out->request); in _ep_out_handler()
896 _send_status(func); in _ep_out_handler()
907 rt_usbd_ep_set_stall(func->device, data->ep_in); in _ep_out_handler()
911 rt_usbd_ep_set_stall(func->device, data->ep_in); in _ep_out_handler()
912 rt_usbd_ep_set_stall(func->device, data->ep_out); in _ep_out_handler()
916 _send_status(func); in _ep_out_handler()
929 static rt_err_t _interface_handler(ufunction_t func, ureq_t setup) in _interface_handler() argument
933 RT_ASSERT(func != RT_NULL); in _interface_handler()
934 RT_ASSERT(func->device != RT_NULL); in _interface_handler()
947 rt_usbd_ep0_set_stall(func->device); in _interface_handler()
951 rt_usbd_ep0_write(func->device, &lun, setup->wLength); in _interface_handler()
960 rt_usbd_ep0_set_stall(func->device); in _interface_handler()
964 dcd_ep0_send_status(func->device->dcd); in _interface_handler()
982 static rt_err_t _function_enable(ufunction_t func) in _function_enable() argument
985 RT_ASSERT(func != RT_NULL); in _function_enable()
987 data = (struct mstorage*)func->user_data; in _function_enable()
1031 rt_usbd_io_request(func->device, data->ep_out, &data->ep_out->request); in _function_enable()
1043 static rt_err_t _function_disable(ufunction_t func) in _function_disable() argument
1046 RT_ASSERT(func != RT_NULL); in _function_disable()
1050 data = (struct mstorage*)func->user_data; in _function_disable()
1102 ufunction_t func; in rt_usbd_function_mstorage_create() local
1117 func = rt_usbd_function_new(device, &dev_desc, &ops); in rt_usbd_function_mstorage_create()
1123 func->user_data = (void*)data; in rt_usbd_function_mstorage_create()
1151 rt_usbd_function_add_interface(func, intf); in rt_usbd_function_mstorage_create()
1153 return func; in rt_usbd_function_mstorage_create()