source: mainline/uspace/lib/usbdev/include/usb/dev/alternate_ifaces.h@ 36f0738

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 36f0738 was 36f0738, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 7 years ago

Add #include <errno.h> where necessary for the following commits.

It's very likely this does not account for all the places where the include
should be, but this is enough for the code to build.

  • Property mode set to 100644
File size: 2.8 KB
Line 
1/*
2 * Copyright (c) 2011 Vojtech Horky
3 * Copyright (c) 2013 Jan Vesely
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * - Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * - Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * - The name of the author may not be used to endorse or promote products
16 * derived from this software without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30/** @addtogroup libusbdev
31 * @{
32 */
33/** @file
34 * USB device driver framework.
35 */
36
37#ifndef LIBUSBDEV_ALTERNATE_IFACES_H_
38#define LIBUSBDEV_ALTERNATE_IFACES_H_
39
40#include <errno.h>
41#include <usb/descriptor.h>
42#include <stddef.h>
43#include <stdint.h>
44
45/** Wrapper for data related to alternate interface setting.
46 * The pointers will typically point inside configuration descriptor and
47 * thus you shall not deallocate them.
48 */
49typedef struct {
50 /** Interface descriptor. */
51 const usb_standard_interface_descriptor_t *interface;
52 /** Pointer to start of descriptor tree bound with this interface. */
53 const uint8_t *nested_descriptors;
54 /** Size of data pointed by nested_descriptors in bytes. */
55 size_t nested_descriptors_size;
56} usb_alternate_interface_descriptors_t;
57
58/** Alternate interface settings. */
59typedef struct {
60 /** Array of alternate interfaces descriptions. */
61 const usb_alternate_interface_descriptors_t *alternatives;
62 /** Size of @c alternatives array. */
63 size_t alternative_count;
64 /** Index of currently selected one. */
65 size_t current;
66} usb_alternate_interfaces_t;
67
68size_t usb_interface_count_alternates(const uint8_t *, size_t, uint8_t);
69int usb_alternate_interfaces_init(usb_alternate_interfaces_t *,
70 const uint8_t *, size_t, int);
71void usb_alternate_interfaces_deinit(usb_alternate_interfaces_t *);
72
73#endif
74/**
75 * @}
76 */
Note: See TracBrowser for help on using the repository browser.