00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00034 #ifndef DRV_OHCI_HW_STRUCT_COMPLETION_CODES_H
00035 #define DRV_OHCI_HW_STRUCT_COMPLETION_CODES_H
00036
00037 #include <errno.h>
00038
00039 #define CC_NOERROR (0x0)
00040 #define CC_CRC (0x1)
00041 #define CC_BITSTUFF (0x2)
00042 #define CC_TOGGLE (0x3)
00043 #define CC_STALL (0x4)
00044 #define CC_NORESPONSE (0x5)
00045 #define CC_PIDFAIL (0x6)
00046 #define CC_PIDUNEXPECTED (0x7)
00047 #define CC_DATAOVERRRUN (0x8)
00048 #define CC_DATAUNDERRRUN (0x9)
00049 #define CC_BUFFEROVERRRUN (0xc)
00050 #define CC_BUFFERUNDERRUN (0xd)
00051 #define CC_NOACCESS1 (0xe)
00052 #define CC_NOACCESS2 (0xf)
00053
00054 inline static int cc_to_rc(int cc)
00055 {
00056 switch (cc) {
00057 case CC_NOERROR:
00058 return EOK;
00059
00060 case CC_CRC:
00061 return EBADCHECKSUM;
00062
00063 case CC_PIDUNEXPECTED:
00064 case CC_PIDFAIL:
00065 case CC_BITSTUFF:
00066 return EIO;
00067
00068 case CC_TOGGLE:
00069 case CC_STALL:
00070 return ESTALL;
00071
00072 case CC_NORESPONSE:
00073 return ETIMEOUT;
00074
00075 case CC_DATAOVERRRUN:
00076 case CC_DATAUNDERRRUN:
00077 case CC_BUFFEROVERRRUN:
00078 case CC_BUFFERUNDERRUN:
00079 return EOVERFLOW;
00080
00081 case CC_NOACCESS1:
00082 case CC_NOACCESS2:
00083 default:
00084 return ENOTSUP;
00085 }
00086 }
00087
00088 #endif
00089