Changeset 3f189c5 in mainline for uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h
- Timestamp:
- 2011-02-07T14:06:57Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- fe10e72
- Parents:
- 7e62b62
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h
r7e62b62 r3f189c5 38 38 #include <usb/usb.h> 39 39 40 #include "utils/malloc32.h"41 #include "callback.h"42 40 #include "link_pointer.h" 43 41 … … 86 84 volatile uint32_t buffer_ptr; 87 85 88 /* there is 16 bytes of data available here 89 * those are used to store callback pointer 90 * and next pointer. Thus, there is some free space 91 * on 32bits systems. 86 /* there is 16 bytes of data available here, according to UHCI 87 * Design guide, according to linux kernel the hardware does not care 88 * we don't use it anyway 92 89 */ 93 struct transfer_descriptor *next_va;94 callback_t *callback;95 90 } __attribute__((packed)) transfer_descriptor_t; 96 91 … … 100 95 int pid, void *buffer); 101 96 102 static inline transfer_descriptor_t * transfer_descriptor_get(103 int error_count, size_t size, bool isochronous, usb_target_t target,104 int pid, void *buffer)105 {106 transfer_descriptor_t * instance =107 malloc32(sizeof(transfer_descriptor_t));108 109 if (instance)110 transfer_descriptor_init(111 instance, error_count, size, isochronous, target, pid, buffer);112 return instance;113 }114 115 void transfer_descriptor_fini(transfer_descriptor_t *instance);116 117 static inline void transfer_descriptor_dispose(transfer_descriptor_t *instance)118 {119 assert(instance);120 transfer_descriptor_fini(instance);121 free32(instance);122 }123 97 124 98 int transfer_descriptor_status(transfer_descriptor_t *instance); … … 130 104 return instance->status & TD_STATUS_ERROR_ACTIVE; 131 105 } 132 133 static inline void transfer_descriptor_append(134 transfer_descriptor_t *instance, transfer_descriptor_t *item)135 {136 assert(instance);137 instance->next_va = item;138 instance->next = (uintptr_t)addr_to_phys(item) & LINK_POINTER_ADDRESS_MASK;139 }140 106 #endif 141 107 /**
Note:
See TracChangeset
for help on using the changeset viewer.