Mercurial > ecos-v3_0-branch
annotate packages/io/usb/slave/current/doc/usbs-data.html @ 2863:7d8c61e6225c default tip
* Added execute permissions to files missed in conversion from CVS
| author | alexs |
|---|---|
| date | Thu, 26 Mar 2009 20:39:18 +0000 |
| parents | 74dbf4c3f2e1 |
| children |
| rev | line source |
|---|---|
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
208
diff
changeset
|
1 <!-- Copyright (C) 2002 Free Software Foundation, Inc. --> |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
2 <!-- This material may be distributed only subject to the terms --> |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
3 <!-- and conditions set forth in the Open Publication License, v1.0 --> |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
4 <!-- or later (the latest version is presently available at --> |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
5 <!-- http://www.opencontent.org/openpub/). --> |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
6 <!-- Distribution of substantively modified versions of this --> |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
7 <!-- document is prohibited without the explicit permission of the --> |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
8 <!-- copyright holder. --> |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
9 <!-- Distribution of the work or derivative of the work in any --> |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
10 <!-- standard (paper) book form is prohibited unless prior --> |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
11 <!-- permission is obtained from the copyright holder. --> |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
12 <HTML |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
13 ><HEAD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
14 ><TITLE |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
15 >Data Endpoints</TITLE |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
16 ><meta name="MSSmartTagsPreventParsing" content="TRUE"> |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
17 <META |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
18 NAME="GENERATOR" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
19 CONTENT="Modular DocBook HTML Stylesheet Version 1.64 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
20 "><LINK |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
21 REL="HOME" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
22 TITLE="eCos USB Slave Support" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
23 HREF="io-usb-slave.html"><LINK |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
24 REL="PREVIOUS" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
25 TITLE="Control Endpoints" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
26 HREF="usbs-control.html"><LINK |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
27 REL="NEXT" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
28 TITLE="Writing a USB Device Driver" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
29 HREF="usbs-writing.html"></HEAD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
30 ><BODY |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
31 CLASS="REFENTRY" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
32 BGCOLOR="#FFFFFF" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
33 TEXT="#000000" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
34 LINK="#0000FF" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
35 VLINK="#840084" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
36 ALINK="#0000FF" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
37 ><DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
38 CLASS="NAVHEADER" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
39 ><TABLE |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
40 WIDTH="100%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
41 BORDER="0" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
42 CELLPADDING="0" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
43 CELLSPACING="0" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
44 ><TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
45 ><TH |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
46 COLSPAN="3" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
47 ALIGN="center" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
48 >eCos USB Slave Support</TH |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
49 ></TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
50 ><TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
51 ><TD |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
52 WIDTH="10%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
53 ALIGN="left" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
54 VALIGN="bottom" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
55 ><A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
56 HREF="usbs-control.html" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
57 >Prev</A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
58 ></TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
59 ><TD |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
60 WIDTH="80%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
61 ALIGN="center" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
62 VALIGN="bottom" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
63 ></TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
64 ><TD |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
65 WIDTH="10%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
66 ALIGN="right" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
67 VALIGN="bottom" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
68 ><A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
69 HREF="usbs-writing.html" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
70 >Next</A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
71 ></TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
72 ></TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
73 ></TABLE |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
74 ><HR |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
75 ALIGN="LEFT" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
76 WIDTH="100%"></DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
77 ><H1 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
78 ><A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
79 NAME="USBS-DATA" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
80 >Data Endpoints</A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
81 ></H1 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
82 ><DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
83 CLASS="REFNAMEDIV" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
84 ><A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
85 NAME="AEN623" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
86 ></A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
87 ><H2 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
88 >Name</H2 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
89 >Data Endpoints -- Data endpoint data structures</DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
90 ><DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
91 CLASS="REFSYNOPSISDIV" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
92 ><A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
93 NAME="AEN626" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
94 ></A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
95 ><H2 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
96 >Synopsis</H2 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
97 ><TABLE |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
98 BORDER="0" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
99 BGCOLOR="#E0E0E0" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
100 WIDTH="100%" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
101 ><TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
102 ><TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
103 ><PRE |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
104 CLASS="SYNOPSIS" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
105 >#include <cyg/io/usb/usbs.h> |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
106 |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
107 typedef struct usbs_rx_endpoint { |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
108 void (*start_rx_fn)(struct usbs_rx_endpoint*); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
109 void (*set_halted_fn)(struct usbs_rx_endpoint*, cyg_bool); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
110 void (*complete_fn)(void*, int); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
111 void* complete_data; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
112 unsigned char* buffer; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
113 int buffer_size; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
114 cyg_bool halted; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
115 } usbs_rx_endpoint; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
116 |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
117 typedef struct usbs_tx_endpoint { |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
118 void (*start_tx_fn)(struct usbs_tx_endpoint*); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
119 void (*set_halted_fn)(struct usbs_tx_endpoint*, cyg_bool); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
120 void (*complete_fn)(void*, int); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
121 void* complete_data; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
122 const unsigned char* buffer; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
123 int buffer_size; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
124 cyg_bool halted; |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
125 } usbs_tx_endpoint;</PRE |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
126 ></TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
127 ></TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
128 ></TABLE |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
129 ></DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
130 ><DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
131 CLASS="REFSECT1" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
132 ><A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
133 NAME="AEN628" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
134 ></A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
135 ><H2 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
136 >Receive and Transmit Data Structures</H2 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
137 ><P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
138 >In addition to a single <SPAN |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
139 CLASS="STRUCTNAME" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
140 >usbs_control_endpoint</SPAN |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
141 > |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
142 data structure per USB slave device, the USB device driver should also |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
143 provide receive and transmit data structures corresponding to the |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
144 other endpoints. The names of these are determined by the device |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
145 driver. For example, the SA1110 USB device driver package provides |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
146 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
147 CLASS="LITERAL" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
148 >usbs_sa11x0_ep1</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
149 > for receives and |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
150 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
151 CLASS="LITERAL" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
152 >usbs_sa11x0_ep2</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
153 > for transmits.</P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
154 ><P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
155 >Unlike control endpoints, the common USB slave package does provide a |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
156 number of utility routines to manipulate data endpoints. For example |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
157 <A |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
158 HREF="usbs-start-rx.html" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
159 ><TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
160 CLASS="FUNCTION" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
161 >usbs_start_rx_buffer</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
162 ></A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
163 > |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
164 can be used to receive data from the host into a buffer. In addition |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
165 the USB device driver can provide devtab entries such as |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
166 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
167 CLASS="LITERAL" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
168 >/dev/usbs1r</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
169 > and <TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
170 CLASS="LITERAL" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
171 >/dev/usbs2w</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
172 >, so |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
173 higher-level code can <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
174 CLASS="FUNCTION" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
175 >open</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
176 > these devices and then |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
177 perform blocking <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
178 CLASS="FUNCTION" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
179 >read</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
180 > and |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
181 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
182 CLASS="FUNCTION" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
183 >write</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
184 > operations.</P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
185 ><P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
186 >However, the operation of data endpoints and the various |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
187 endpoint-related functions is relatively straightforward. First |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
188 consider a <SPAN |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
189 CLASS="STRUCTNAME" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
190 >usbs_rx_endpoint</SPAN |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
191 > structure. The |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
192 device driver will provide the members |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
193 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
194 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
195 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
196 >start_rx_fn</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
197 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
198 > and |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
199 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
200 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
201 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
202 >set_halted_fn</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
203 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
204 >, and it will maintain the |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
205 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
206 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
207 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
208 >halted</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
209 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
210 > field. To receive data, higher-level |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
211 code sets the <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
212 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
213 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
214 >buffer</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
215 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
216 >, |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
217 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
218 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
219 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
220 >buffer_size</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
221 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
222 >, |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
223 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
224 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
225 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
226 >complete_fn</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
227 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
228 > and optionally the |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
229 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
230 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
231 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
232 >complete_data</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
233 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
234 > fields. Next the |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
235 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
236 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
237 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
238 >start_rx_fn</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
239 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
240 > member should be called. When |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
241 the transfer has finished the device driver will invoke the completion |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
242 function, using <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
243 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
244 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
245 >complete_data</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
246 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
247 > as the first |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
248 argument and a size field for the second argument. A negative size |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
249 indicates an error of some sort: <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
250 CLASS="LITERAL" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
251 >-EGAIN</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
252 > indicates |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
253 that the endpoint has been halted, usually at the request of the host; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
254 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
255 CLASS="LITERAL" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
256 >-EPIPE</TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
257 > indicates that the connection between the |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
258 host and the peripheral has been broken. Certain device drivers may |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
259 generate other error codes.</P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
260 ><P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
261 >If higher-level code needs to halt or unhalt an endpoint then it can |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
262 invoke the <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
263 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
264 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
265 >set_halted_fn</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
266 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
267 > member. When an |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
268 endpoint is halted, invoking <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
269 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
270 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
271 >start_rx_fn</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
272 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
273 > |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
274 wit <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
275 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
276 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
277 >buffer_size</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
278 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
279 > set to 0 indicates that |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
280 higher-level code wants to block until the endpoint is no longer |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
281 halted; at that point the completion function will be invoked.</P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
282 ><P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
283 >USB device drivers are allowed to assume that higher-level protocols |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
284 ensure that host and peripheral agree on the amount of data that will |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
285 be transferred, or at least on an upper bound. Therefore there is no |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
286 need for the device driver to maintain its own buffers, and copy |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
287 operations are avoided. If the host sends more data than expected then |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
288 the resulting behaviour is undefined.</P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
289 ><P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
290 >Transmit endpoints work in essentially the same way as receive |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
291 endpoints. Higher-level code should set the |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
292 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
293 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
294 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
295 >buffer</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
296 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
297 > and |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
298 <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
299 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
300 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
301 >buffer_size</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
302 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
303 > fields to point at the data to |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
304 be transferred, then call <TT |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
305 CLASS="STRUCTFIELD" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
306 ><I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
307 >start_tx_fn</I |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
308 ></TT |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
309 >, and |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
310 the device driver will invoked the completion function when the |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
311 transfer has completed.</P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
312 ><P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
313 >USB device drivers are not expected to perform any locking. If at any |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
314 time there are two concurrent receive operations for a given endpoint, |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
315 or two concurrent transmit operations, then the resulting behaviour is |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
316 undefined. It is the responsibility of higher-level code to perform |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
317 any synchronisation that may be necessary. In practice, conflicts are |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
318 unlikely because typically a given endpoint will only be accessed |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
319 sequentially by just one part of the overall system.</P |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
320 ></DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
321 ><DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
322 CLASS="NAVFOOTER" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
323 ><HR |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
324 ALIGN="LEFT" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
325 WIDTH="100%"><TABLE |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
326 WIDTH="100%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
327 BORDER="0" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
328 CELLPADDING="0" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
329 CELLSPACING="0" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
330 ><TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
331 ><TD |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
332 WIDTH="33%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
333 ALIGN="left" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
334 VALIGN="top" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
335 ><A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
336 HREF="usbs-control.html" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
337 >Prev</A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
338 ></TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
339 ><TD |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
340 WIDTH="34%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
341 ALIGN="center" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
342 VALIGN="top" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
343 ><A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
344 HREF="io-usb-slave.html" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
345 >Home</A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
346 ></TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
347 ><TD |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
348 WIDTH="33%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
349 ALIGN="right" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
350 VALIGN="top" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
351 ><A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
352 HREF="usbs-writing.html" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
353 >Next</A |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
354 ></TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
355 ></TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
356 ><TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
357 ><TD |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
358 WIDTH="33%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
359 ALIGN="left" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
360 VALIGN="top" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
361 >Control Endpoints</TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
362 ><TD |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
363 WIDTH="34%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
364 ALIGN="center" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
365 VALIGN="top" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
366 > </TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
367 ><TD |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
368 WIDTH="33%" |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
diff
changeset
|
369 ALIGN="right" |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
370 VALIGN="top" |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
371 >Writing a USB Device Driver</TD |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
372 ></TR |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
373 ></TABLE |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
374 ></DIV |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
375 ></BODY |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
151
diff
changeset
|
376 ></HTML |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
208
diff
changeset
|
377 > |
