blob: ab796ef3f90febc3e3b99d2e5d54eeb1b80f924a [file] [log] [blame]
/*
* Copyright (c) 2022 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_USBD_DESC_H
#define ZEPHYR_INCLUDE_USBD_DESC_H
#include <zephyr/usb/usbd.h>
/**
* @brief Get common USB descriptor
*
* Get descriptor from internal descrptor list.
*
* @param[in] ctx Pointer to USB device support context
* @param[in] type Descriptor type (bDescriptorType)
* @param[in] idx Descriptor index
*
* @return pointer to descriptor or NULL if not found.
*/
void *usbd_get_descriptor(struct usbd_contex *uds_ctx,
const uint8_t type, const uint8_t idx);
/**
* @brief Remove all descriptors from an USB device context
*
* This removes all loose descriptors like string descriptors.
* Descriptors like configuration, or interface are not touched
* by this.
*
* @param[in] uds_ctx Pointer to device context
*
* @return 0 on success, other values on fail.
*/
int usbd_desc_remove_all(struct usbd_contex *const uds_ctx);
#endif /* ZEPHYR_INCLUDE_USBD_DESC_H */