source: mainline/uspace/drv/ohci/hw_struct/completion_codes.h@ dc4c19e

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since dc4c19e was f1be95c8, checked in by Jan Vesely <jano.vesely@…>, 14 years ago

Add forgotten TD implementation, add error parsing

  • Property mode set to 100644
File size: 2.5 KB
Line 
1/*
2 * Copyright (c) 2011 Jan Vesely
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28/** @addtogroup drvusbohci
29 * @{
30 */
31/** @file
32 * @brief OHCI driver
33 */
34#ifndef DRV_OHCI_HW_STRUCT_COMPLETION_CODES_H
35#define DRV_OHCI_HW_STRUCT_COMPLETION_CODES_H
36
37#include <errno.h>
38
39#define CC_NOERROR (0x0)
40#define CC_CRC (0x1)
41#define CC_BITSTUFF (0x2)
42#define CC_TOGGLE (0x3)
43#define CC_STALL (0x4)
44#define CC_NORESPONSE (0x5)
45#define CC_PIDFAIL (0x6)
46#define CC_PIDUNEXPECTED (0x7)
47#define CC_DATAOVERRRUN (0x8)
48#define CC_DATAUNDERRRUN (0x9)
49#define CC_BUFFEROVERRRUN (0xc)
50#define CC_BUFFERUNDERRUN (0xd)
51#define CC_NOACCESS1 (0xe)
52#define CC_NOACCESS2 (0xf)
53
54inline static int cc_to_rc(int cc)
55{
56 switch (cc) {
57 case CC_NOERROR:
58 return EOK;
59
60 case CC_CRC:
61 return EBADCHECKSUM;
62
63 case CC_PIDUNEXPECTED:
64 case CC_PIDFAIL:
65 case CC_BITSTUFF:
66 return EIO;
67
68 case CC_TOGGLE:
69 case CC_STALL:
70 return ESTALL;
71
72 case CC_NORESPONSE:
73 return ETIMEOUT;
74
75 case CC_DATAOVERRRUN:
76 case CC_DATAUNDERRRUN:
77 case CC_BUFFEROVERRRUN:
78 case CC_BUFFERUNDERRUN:
79 return EOVERFLOW;
80
81 case CC_NOACCESS1:
82 case CC_NOACCESS2:
83 default:
84 return ENOTSUP;
85 }
86}
87
88#endif
89/**
90 * @}
91 */
Note: See TracBrowser for help on using the repository browser.