Changeset f1be95c8 in mainline for uspace/drv/ohci/hw_struct
- Timestamp:
- 2011-04-09T00:22:30Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4c28d17
- Parents:
- e42dd32
- Location:
- uspace/drv/ohci/hw_struct
- Files:
-
- 1 added
- 2 edited
-
completion_codes.h (modified) (2 diffs)
-
transfer_descriptor.c (added)
-
transfer_descriptor.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/hw_struct/completion_codes.h
re42dd32 rf1be95c8 35 35 #define DRV_OHCI_HW_STRUCT_COMPLETION_CODES_H 36 36 37 #include <errno.h> 38 37 39 #define CC_NOERROR (0x0) 38 40 #define CC_CRC (0x1) … … 50 52 #define CC_NOACCESS2 (0xf) 51 53 54 inline 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 52 88 #endif 53 89 /** -
uspace/drv/ohci/hw_struct/transfer_descriptor.h
re42dd32 rf1be95c8 35 35 #define DRV_OHCI_HW_STRUCT_TRANSFER_DESCRIPTOR_H 36 36 37 #include <bool.h> 37 38 #include <stdint.h> 38 39 #include "utils/malloc32.h" … … 79 80 instance->next = addr_to_phys(next) & TD_NEXT_PTR_MASK; 80 81 } 82 83 inline static bool td_is_finished(td_t *instance) 84 { 85 assert(instance); 86 int cc = (instance->status >> TD_STATUS_CC_SHIFT) & TD_STATUS_CC_MASK; 87 /* something went wrong, error code is set */ 88 if (cc != CC_NOACCESS1 && cc != CC_NOACCESS2 && cc != CC_NOERROR) { 89 return true; 90 } 91 /* everything done */ 92 if (cc == CC_NOERROR && instance->cbp == 0) { 93 return true; 94 } 95 return false; 96 } 97 98 static inline int td_error(td_t *instance) 99 { 100 assert(instance); 101 int cc = (instance->status >> TD_STATUS_CC_SHIFT) & TD_STATUS_CC_MASK; 102 return cc_to_rc(cc); 103 } 81 104 #endif 82 105 /**
Note:
See TracChangeset
for help on using the changeset viewer.
