Changeset df6ded8 in mainline for uspace/drv/bus/usb/ehci/ehci_batch.h
- Timestamp:
- 2018-02-28T16:37:50Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1b20da0
- Parents:
- f5e5f73 (diff), b2dca8de (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - git-author:
- Jakub Jermar <jakub@…> (2018-02-28 16:06:42)
- git-committer:
- Jakub Jermar <jakub@…> (2018-02-28 16:37:50)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/ehci_batch.h
rf5e5f73 rdf6ded8 1 1 /* 2 2 * Copyright (c) 2014 Jan Vesely 3 * Copyright (c) 2018 Ondrej Hlavaty 3 4 * All rights reserved. 4 5 * … … 39 40 #include <stdbool.h> 40 41 #include <usb/host/usb_transfer_batch.h> 42 #include <usb/dma_buffer.h> 41 43 42 44 #include "hw_struct/queue_head.h" … … 45 47 /** EHCI specific data required for USB transfer */ 46 48 typedef struct ehci_transfer_batch { 47 /** Link */ 48 link_t link; 49 usb_transfer_batch_t base; 50 /** Number of TDs used by the transfer */ 51 size_t td_count; 49 52 /** Endpoint descriptor of the target endpoint. */ 50 53 qh_t *qh; 51 /** List of TDs needed for the transfer */ 52 td_t **tds; 53 /** Number of TDs used by the transfer */ 54 size_t td_count; 55 /** Data buffer, must be accessible by the EHCI hw. */ 56 char *device_buffer; 54 /** Backend for TDs and setup data. */ 55 dma_buffer_t ehci_dma_buffer; 56 /** List of TDs needed for the transfer - backed by dma_buffer */ 57 td_t *tds; 58 /** Data buffers - backed by dma_buffer */ 59 void *setup_buffer; 60 void *data_buffer; 57 61 /** Generic USB transfer structure */ 58 62 usb_transfer_batch_t *usb_batch; 59 63 } ehci_transfer_batch_t; 60 64 61 ehci_transfer_batch_t * ehci_transfer_batch_get(usb_transfer_batch_t *batch);62 bool ehci_transfer_batch_is_complete(constehci_transfer_batch_t *batch);65 ehci_transfer_batch_t *ehci_transfer_batch_create(endpoint_t *ep); 66 int ehci_transfer_batch_prepare(ehci_transfer_batch_t *batch); 63 67 void ehci_transfer_batch_commit(const ehci_transfer_batch_t *batch); 64 void ehci_transfer_batch_finish_dispose(ehci_transfer_batch_t *batch); 68 bool ehci_transfer_batch_check_completed(ehci_transfer_batch_t *batch); 69 void ehci_transfer_batch_destroy(ehci_transfer_batch_t *batch); 65 70 66 static inline ehci_transfer_batch_t *ehci_transfer_batch_from_link(link_t *l) 71 static inline ehci_transfer_batch_t *ehci_transfer_batch_get( 72 usb_transfer_batch_t *usb_batch) 67 73 { 68 assert(l); 69 return list_get_instance(l, ehci_transfer_batch_t, link); 74 assert(usb_batch); 75 76 return (ehci_transfer_batch_t *) usb_batch; 70 77 } 78 71 79 #endif 72 80 /**
Note:
See TracChangeset
for help on using the changeset viewer.