1 '\" te
2 .\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH UGEN 7D "Dec 3, 2008"
7 .SH NAME
8 ugen \- USB generic driver
9 .SH SYNOPSIS
10 .LP
11 .nf
12 \fBNode Name@unit-address\fR
13 .fi
14
15 .LP
16 .nf
17 \fB#include <sys/usb/clients/ugen/usb_ugen.h>\fR
18 .fi
19
20 .SH DESCRIPTION
21 .sp
22 .LP
23 \fBugen\fR is a generic USBA (Solaris USB Architecture) compliant client
24 character driver that presents USB devices to applications through a standard
25 \fBopen\fR(2), \fBclose\fR(2), \fBread\fR(2), \fBwrite\fR(2),
26 \fBaioread\fR(3C), \fBaiowrite\fR(3C) Unix interface. Uninterpreted raw data
1122 /* Error recovery. */
1123 }
1124
1125 /*
1126 * Read length should be sum of all pkt descriptors
1127 * length + payload data length of all pkts
1128 * (sizeof(ugen_isoc_pkt_descr_t) + pktlen) * pktcnt
1129 */
1130 if (read(fd, rdbuf, (sizeof(ugen_isoc_pkt_descr_t) +
1131 pktlen) * pktcnt) < 0) {
1132 /* Error recovery. */
1133 }
1134
1135 pktdesc = (ugen_isoc_pkt_descr_t *) rdbuf;
1136
1137 /* points to payload beginning */
1138 p = rdbuf + pktcnt * sizeof(ugen_isoc_pkt_descr_t);
1139
1140 for (i = 0; i < pktcnt; i++) {
1141 printf("packet %d len = %d,"
1142 " actual_len = %d, status = 0x%x\n",
1143 i, pktdesc->dsc_isoc_pkt_len,
1144 pktdesc->dsc_isoc_pkt_actual_len,
1145 pktdesc->dsc_isoc_pkt_status);
1146
1147 /* Processing data */
1148
1149 /*
1150 * next packet data payload, do NOT use
1151 * dsc_isoc_pkt_actual_len
1152 */
1153 p += pktdesc->dsc_isoc_pkt_len;
1154
1155 pktdesc++;
1156 }
1157 .fi
1158 .in -2
1159
1160 .sp
1161 .LP
1162 For an isochronous-OUT endpoint, applications use the same packet descriptor
|
1 '\" te
2 .\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH UGEN 7D "Sep 10, 2013"
7 .SH NAME
8 ugen \- USB generic driver
9 .SH SYNOPSIS
10 .LP
11 .nf
12 \fBNode Name@unit-address\fR
13 .fi
14
15 .LP
16 .nf
17 \fB#include <sys/usb/clients/ugen/usb_ugen.h>\fR
18 .fi
19
20 .SH DESCRIPTION
21 .sp
22 .LP
23 \fBugen\fR is a generic USBA (Solaris USB Architecture) compliant client
24 character driver that presents USB devices to applications through a standard
25 \fBopen\fR(2), \fBclose\fR(2), \fBread\fR(2), \fBwrite\fR(2),
26 \fBaioread\fR(3C), \fBaiowrite\fR(3C) Unix interface. Uninterpreted raw data
1122 /* Error recovery. */
1123 }
1124
1125 /*
1126 * Read length should be sum of all pkt descriptors
1127 * length + payload data length of all pkts
1128 * (sizeof(ugen_isoc_pkt_descr_t) + pktlen) * pktcnt
1129 */
1130 if (read(fd, rdbuf, (sizeof(ugen_isoc_pkt_descr_t) +
1131 pktlen) * pktcnt) < 0) {
1132 /* Error recovery. */
1133 }
1134
1135 pktdesc = (ugen_isoc_pkt_descr_t *) rdbuf;
1136
1137 /* points to payload beginning */
1138 p = rdbuf + pktcnt * sizeof(ugen_isoc_pkt_descr_t);
1139
1140 for (i = 0; i < pktcnt; i++) {
1141 printf("packet %d len = %d,"
1142 " actual_len = %d, status = 0x%x\en",
1143 i, pktdesc->dsc_isoc_pkt_len,
1144 pktdesc->dsc_isoc_pkt_actual_len,
1145 pktdesc->dsc_isoc_pkt_status);
1146
1147 /* Processing data */
1148
1149 /*
1150 * next packet data payload, do NOT use
1151 * dsc_isoc_pkt_actual_len
1152 */
1153 p += pktdesc->dsc_isoc_pkt_len;
1154
1155 pktdesc++;
1156 }
1157 .fi
1158 .in -2
1159
1160 .sp
1161 .LP
1162 For an isochronous-OUT endpoint, applications use the same packet descriptor
|