Zephyr Project API
3.5.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
bos.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 Intel Corporation
3
* Copyright (c) 2023 Nordic Semiconductor ASA
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
8
#ifndef ZEPHYR_INCLUDE_USB_BOS_H_
9
#define ZEPHYR_INCLUDE_USB_BOS_H_
10
11
#include <
stdint.h
>
12
24
#define USB_DEVICE_BOS_DESC_DEFINE_CAP \
25
static __in_section(usb, bos_desc_area, 1) __aligned(1) __used
26
28
enum
usb_bos_capability_types
{
29
USB_BOS_CAPABILITY_EXTENSION
= 0x02,
30
USB_BOS_CAPABILITY_PLATFORM
= 0x05,
31
};
32
34
struct
usb_bos_capability_lpm
{
35
uint8_t
bLength
;
36
uint8_t
bDescriptorType
;
37
uint8_t
bDevCapabilityType
;
38
uint32_t
bmAttributes
;
39
} __packed;
40
42
struct
usb_bos_platform_descriptor
{
43
uint8_t
bLength
;
44
uint8_t
bDescriptorType
;
45
uint8_t
bDevCapabilityType
;
46
uint8_t
bReserved
;
47
uint8_t
PlatformCapabilityUUID
[16];
48
} __packed;
49
51
struct
usb_bos_capability_webusb
{
52
uint16_t
bcdVersion
;
53
uint8_t
bVendorCode
;
54
uint8_t
iLandingPage
;
55
} __packed;
56
58
struct
usb_bos_capability_msos
{
59
uint32_t
dwWindowsVersion
;
60
uint16_t
wMSOSDescriptorSetTotalLength
;
61
uint8_t
bMS_VendorCode
;
62
uint8_t
bAltEnumCode
;
63
} __packed;
64
73
void
usb_bos_register_cap
(
struct
usb_bos_platform_descriptor
*hdr);
74
80
/* BOS Descriptor (root descriptor) */
81
struct
usb_bos_descriptor {
82
uint8_t
bLength;
83
uint8_t
bDescriptorType;
84
uint16_t
wTotalLength;
85
uint8_t
bNumDeviceCaps;
86
} __packed;
87
88
#define USB_DEVICE_BOS_DESC_DEFINE_HDR \
89
static __in_section(usb, bos_desc_area, 0) __aligned(1) __used
90
91
size_t
usb_bos_get_length(
void
);
92
93
void
usb_bos_fix_total_length(
void
);
94
95
const
void
*usb_bos_get_header(
void
);
96
97
#if defined(CONFIG_USB_DEVICE_BOS)
98
int
usb_handle_bos(
struct
usb_setup_packet
*setup,
int32_t
*len,
uint8_t
**
data
);
99
#else
100
#define usb_handle_bos(x, y, z) -ENOTSUP
101
#endif
108
#endif
/* ZEPHYR_INCLUDE_USB_BOS_H_ */
usb_bos_capability_types
usb_bos_capability_types
Device capability type codes.
Definition
bos.h:28
usb_bos_register_cap
void usb_bos_register_cap(struct usb_bos_platform_descriptor *hdr)
Register BOS capability descriptor.
USB_BOS_CAPABILITY_EXTENSION
@ USB_BOS_CAPABILITY_EXTENSION
Definition
bos.h:29
USB_BOS_CAPABILITY_PLATFORM
@ USB_BOS_CAPABILITY_PLATFORM
Definition
bos.h:30
stdint.h
uint32_t
__UINT32_TYPE__ uint32_t
Definition
stdint.h:90
int32_t
__INT32_TYPE__ int32_t
Definition
stdint.h:74
uint8_t
__UINT8_TYPE__ uint8_t
Definition
stdint.h:88
uint16_t
__UINT16_TYPE__ uint16_t
Definition
stdint.h:89
usb_bos_capability_lpm
BOS USB 2.0 extension capability descriptor.
Definition
bos.h:34
usb_bos_capability_lpm::bLength
uint8_t bLength
Definition
bos.h:35
usb_bos_capability_lpm::bDevCapabilityType
uint8_t bDevCapabilityType
Definition
bos.h:37
usb_bos_capability_lpm::bDescriptorType
uint8_t bDescriptorType
Definition
bos.h:36
usb_bos_capability_lpm::bmAttributes
uint32_t bmAttributes
Definition
bos.h:38
usb_bos_capability_msos
Microsoft OS 2.0 descriptor specific part of platform capability descriptor.
Definition
bos.h:58
usb_bos_capability_msos::bAltEnumCode
uint8_t bAltEnumCode
Definition
bos.h:62
usb_bos_capability_msos::bMS_VendorCode
uint8_t bMS_VendorCode
Definition
bos.h:61
usb_bos_capability_msos::dwWindowsVersion
uint32_t dwWindowsVersion
Definition
bos.h:59
usb_bos_capability_msos::wMSOSDescriptorSetTotalLength
uint16_t wMSOSDescriptorSetTotalLength
Definition
bos.h:60
usb_bos_capability_webusb
WebUSB specific part of platform capability descriptor.
Definition
bos.h:51
usb_bos_capability_webusb::iLandingPage
uint8_t iLandingPage
Definition
bos.h:54
usb_bos_capability_webusb::bcdVersion
uint16_t bcdVersion
Definition
bos.h:52
usb_bos_capability_webusb::bVendorCode
uint8_t bVendorCode
Definition
bos.h:53
usb_bos_platform_descriptor
BOS platform capability descriptor.
Definition
bos.h:42
usb_bos_platform_descriptor::PlatformCapabilityUUID
uint8_t PlatformCapabilityUUID[16]
Definition
bos.h:47
usb_bos_platform_descriptor::bDescriptorType
uint8_t bDescriptorType
Definition
bos.h:44
usb_bos_platform_descriptor::bReserved
uint8_t bReserved
Definition
bos.h:46
usb_bos_platform_descriptor::bLength
uint8_t bLength
Definition
bos.h:43
usb_bos_platform_descriptor::bDevCapabilityType
uint8_t bDevCapabilityType
Definition
bos.h:45
usb_setup_packet
USB Setup Data packet defined in spec.
Definition
usb_ch9.h:39
data
static fdata_t data[2]
Definition
test_fifo_contexts.c:15
include
zephyr
usb
bos.h
Generated on Tue Mar 5 2024 08:42:07 for Zephyr Project API by
1.9.8