LCOV - code coverage report
Current view: top level - zephyr/usb/class - usbd_msc.h Hit Total Coverage
Test: new.info Lines: 2 7 28.6 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2023 Nordic Semiconductor ASA
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief USBD Mass Storage Class public header
      10             :  *
      11             :  * Header exposes API for registering LUNs.
      12             :  */
      13             : 
      14             : #include <zephyr/sys/iterable_sections.h>
      15             : 
      16             : #ifndef ZEPHYR_INCLUDE_USB_CLASS_USBD_MSC_H_
      17             : #define ZEPHYR_INCLUDE_USB_CLASS_USBD_MSC_H_
      18             : 
      19           0 : struct usbd_msc_lun {
      20           0 :         const char *disk;
      21           0 :         const char *vendor;
      22           0 :         const char *product;
      23           0 :         const char *revision;
      24             : };
      25             : 
      26             : /**
      27             :  * @brief USB Mass Storage Class device API
      28             :  * @defgroup usbd_msc_device USB Mass Storage Class device API
      29             :  * @ingroup usb
      30             :  * @since 3.4
      31             :  * @version 0.1.0
      32             :  * @{
      33             :  */
      34             : 
      35             : /**
      36             :  * @brief Define USB Mass Storage Class logical unit
      37             :  *
      38             :  * Use this macro to create Logical Unit mapping in USB MSC for selected disk.
      39             :  * Up to `CONFIG_USBD_MSC_LUNS_PER_INSTANCE` disks can be registered on single
      40             :  * USB MSC instance. Currently only one USB MSC instance is supported.
      41             :  *
      42             :  * @param id Identifier by which the linker sorts registered LUNs
      43             :  * @param disk_name Disk name as used in @ref disk_access_interface
      44             :  * @param t10_vendor T10 Vendor Indetification
      45             :  * @param t10_product T10 Product Identification
      46             :  * @param t10_revision T10 Product Revision Level
      47             :  */
      48           1 : #define USBD_DEFINE_MSC_LUN(id, disk_name, t10_vendor, t10_product, t10_revision)       \
      49             :         static const STRUCT_SECTION_ITERABLE(usbd_msc_lun, usbd_msc_lun_##id) = {       \
      50             :                 .disk = disk_name,                                                      \
      51             :                 .vendor = t10_vendor,                                                   \
      52             :                 .product = t10_product,                                                 \
      53             :                 .revision = t10_revision,                                               \
      54             :         }
      55             : 
      56             : /**
      57             :  * @}
      58             :  */
      59             : 
      60             : #endif /* ZEPHYR_INCLUDE_USB_CLASS_USBD_MSC_H_ */

Generated by: LCOV version 1.14