1 /*
2  * Copyright (c) 2022, sakumisu
3  * Copyright (c) 2024, zhihong chen
4  *
5  * SPDX-License-Identifier: Apache-2.0
6  */
7 #ifndef USBD_MSC_H
8 #define USBD_MSC_H
9 
10 #include "usb_msc.h"
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 /* Init msc interface driver */
17 struct usbd_interface *usbd_msc_init_intf(uint8_t busid, struct usbd_interface *intf,
18                                           const uint8_t out_ep,
19                                           const uint8_t in_ep);
20 
21 void usbd_msc_get_cap(uint8_t busid, uint8_t lun, uint32_t *block_num, uint32_t *block_size);
22 int usbd_msc_sector_read(uint8_t busid, uint8_t lun, uint32_t sector, uint8_t *buffer, uint32_t length);
23 int usbd_msc_sector_write(uint8_t busid, uint8_t lun, uint32_t sector, uint8_t *buffer, uint32_t length);
24 
25 void usbd_msc_set_readonly(uint8_t busid, bool readonly);
26 bool usbd_msc_get_popup(uint8_t busid);
27 
28 void usbd_msc_polling(uint8_t busid);
29 
30 #ifdef __cplusplus
31 }
32 #endif
33 
34 #endif /* USBD_MSC_H */
35