source: mainline/uspace/drv/bus/usb/ohci/ohci_bus.h@ 27de618

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

usb: update copyrights

The data was generated by a script, guided manually. If you feel your
name is missing somewhere, please add it!

The semi-automated process was roughly:

1) Changes per file and author (limited to our team) were counted
2) Trivial numbers were thrown away
3) Authors were sorted by lines added to file
4) All previous copyrights were replaced by the newly generated one
5) Hunks changing only year were discarded

It seems that a lot of my copyrights were added. It is due to me being
both sticking my nose everywhere and lazy to update the copyright right
away :)

  • Property mode set to 100644
File size: 3.0 KB
Line 
1/*
2 * Copyright (c) 2011 Jan Vesely
3 * Copyright (c) 2018 Ondrej Hlavaty
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/dma_buffer.h>
41#include <usb/host/usb2_bus.h>
42
43#include "hw_struct/endpoint_descriptor.h"
44#include "hw_struct/transfer_descriptor.h"
45
46/**
47 * Connector structure linking ED to to prepared TD.
48 *
49 * OHCI requires new transfers to be appended at the end of a queue. But it has
50 * a weird semantics of a leftover TD, which serves as a placeholder. This left
51 * TD is overwritten with first TD of a new transfer, and the spare one is used
52 * as the next placeholder. Then the two are swapped for the next transaction.
53 */
54typedef struct ohci_endpoint {
55 endpoint_t base;
56
57 /** OHCI endpoint descriptor */
58 ed_t *ed;
59 /** TDs to be used at the beginning and end of transaction */
60 td_t *tds [2];
61
62 /** Buffer to back ED + 2 TD */
63 dma_buffer_t dma_buffer;
64
65 /** Link in endpoint_list*/
66 link_t eplist_link;
67 /** Link in pending_endpoints */
68 link_t pending_link;
69} ohci_endpoint_t;
70
71typedef struct hc hc_t;
72
73typedef struct {
74 bus_t base;
75 usb2_bus_helper_t helper;
76 hc_t *hc;
77} ohci_bus_t;
78
79errno_t ohci_bus_init(ohci_bus_t *, hc_t *);
80void ohci_ep_toggle_reset(endpoint_t *);
81
82/** Get and convert assigned ohci_endpoint_t structure
83 * @param[in] ep USBD endpoint structure.
84 * @return Pointer to assigned hcd endpoint structure
85 */
86static inline ohci_endpoint_t * ohci_endpoint_get(const endpoint_t *ep)
87{
88 assert(ep);
89 return (ohci_endpoint_t *) ep;
90}
91
92#endif
93/**
94 * @}
95 */
Note: See TracBrowser for help on using the repository browser.