/* Copyright 2017 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ /* WebUSB platform descriptor */ #include "common.h" #include "usb_descriptor.h" #include "util.h" #ifndef CONFIG_USB_BOS #error "CONFIG_USB_BOS must be defined to use WebUSB descriptor" #endif const void *webusb_url = USB_URL_DESC(HTTPS, CONFIG_WEBUSB_URL); /* * Platform Descriptor in the device Binary Object Store * as defined by USB 3.1 spec chapter 9.6.2. */ static struct { struct usb_bos_hdr_descriptor bos; struct usb_platform_descriptor platform; } bos_desc = { .bos = { .bLength = USB_DT_BOS_SIZE, .bDescriptorType = USB_DT_BOS, .wTotalLength = (USB_DT_BOS_SIZE + USB_DT_PLATFORM_SIZE), .bNumDeviceCaps = 1, /* platform caps */ }, .platform = { .bLength = USB_DT_PLATFORM_SIZE, .bDescriptorType = USB_DT_DEVICE_CAPABILITY, .bDevCapabilityType = USB_DC_DTYPE_PLATFORM, .bReserved = 0, .PlatformCapUUID = USB_PLAT_CAP_WEBUSB, .bcdVersion = 0x0100, .bVendorCode = 0x01, .iLandingPage = 1, }, }; const struct bos_context bos_ctx = { .descp = (void *)&bos_desc, .size = sizeof(bos_desc), };