source: mainline/uspace/drv/bus/usb/ohci/ohci_bus.h@ 80f7c54

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 80f7c54 was d369b3b, checked in by Ondřej Hlavatý <aearsis@…>, 8 years ago

usb2_bus: no longer be a bus

As the number of implemented functions got to 3, it's not so beneficial
to inherit usb2 bus to get the functionality. Overall, four trampolines
needed to be added, which is an acceptable number.

Now, the usb2_bus has become a usb2_bus_helper, to be used as
a companion to the common bus.

This is mostly a preparation to remove the runtime binding of the bus
methods.

  • Property mode set to 100644
File size: 2.6 KB
Line 
1/*
2 * Copyright (c) 2011 Jan Vesely
3 * Copyright (c) 2017 Ondrej Hlavaty <aearsis@eideo.cz>
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/** @addtogroup drvusbohci
30 * @{
31 */
32/** @file
33 * @brief OHCI driver
34 */
35#ifndef DRV_OHCI_HCD_BUS_H
36#define DRV_OHCI_HCD_BUS_H
37
38#include <assert.h>
39#include <adt/list.h>
40#include <usb/host/usb2_bus.h>
41
42#include "hw_struct/endpoint_descriptor.h"
43#include "hw_struct/transfer_descriptor.h"
44
45/** Connector structure linking ED to to prepared TD. */
46typedef struct ohci_endpoint {
47 endpoint_t base;
48
49 /** OHCI endpoint descriptor */
50 ed_t *ed;
51 /** Currently enqueued transfer descriptor */
52 td_t *td;
53 /** Link in endpoint_list*/
54 link_t eplist_link;
55 /** Link in pending_endpoints */
56 link_t pending_link;
57} ohci_endpoint_t;
58
59typedef struct hc hc_t;
60
61typedef struct {
62 bus_t base;
63 usb2_bus_helper_t helper;
64 hc_t *hc;
65} ohci_bus_t;
66
67int ohci_bus_init(ohci_bus_t *, hc_t *);
68void ohci_ep_toggle_reset(endpoint_t *);
69
70/** Get and convert assigned ohci_endpoint_t structure
71 * @param[in] ep USBD endpoint structure.
72 * @return Pointer to assigned hcd endpoint structure
73 */
74static inline ohci_endpoint_t * ohci_endpoint_get(const endpoint_t *ep)
75{
76 assert(ep);
77 return (ohci_endpoint_t *) ep;
78}
79
80#endif
81/**
82 * @}
83 */
Note: See TracBrowser for help on using the repository browser.