LCOV - code coverage report
Current view: top level - zephyr/usb/class - usbd_msc.h Coverage Total Hit
Test: new.info Lines: 28.6 % 7 2
Test Date: 2025-09-05 20:47:19

            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.2.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 2.0-1