usbser_pl2303.c revision 77e515715b61e28fcf0c3f30936492888cecfd8b
/*
* CDDL HEADER START
*
* 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.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* 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]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* device-specific driver (DSD) working with USB generic serial driver (GSD). It
* implements the USB-to-serial device-specific driver interface (DSDI) which is
* offered by GSD. The interface is defined by ds_ops_t structure.
*
*
* PL-2303HX and PL-2303X devices have different hardware, but from the
* perspective of device driver, they have the same software interface.
*/
/*
*
* USB Prolific PL2303 driver glue code
*
*/
/* configuration entry points */
void **);
static void *usbser_pl2303_statep; /* soft state */
/*
* STREAMS structures
*/
struct module_info usbser_pl2303_modinfo = {
0, /* module id */
"usbsprl", /* module name */
USBSER_MIN_PKTSZ, /* min pkt size */
USBSER_MAX_PKTSZ, /* max pkt size */
USBSER_HIWAT, /* hi watermark */
USBSER_LOWAT /* low watermark */
};
static struct qinit usbser_pl2303_rinit = {
putq,
NULL,
};
static struct qinit usbser_pl2303_winit = {
NULL,
NULL,
NULL,
};
struct streamtab usbser_pl2303_str_info = {
};
static struct cb_ops usbser_pl2303_cb_ops = {
nodev, /* cb_open */
nodev, /* cb_close */
nodev, /* cb_strategy */
nodev, /* cb_print */
nodev, /* cb_dump */
nodev, /* cb_read */
nodev, /* cb_write */
nodev, /* cb_ioctl */
nodev, /* cb_devmap */
nodev, /* cb_mmap */
nodev, /* cb_segmap */
nochpoll, /* cb_chpoll */
ddi_prop_op, /* cb_prop_op */
&usbser_pl2303_str_info, /* cb_stream */
};
/*
* auto configuration ops
*/
struct dev_ops usbser_pl2303_ops = {
DEVO_REV, /* devo_rev */
0, /* devo_refcnt */
usbser_pl2303_getinfo, /* devo_getinfo */
nulldev, /* devo_identify */
nulldev, /* devo_probe */
usbser_pl2303_attach, /* devo_attach */
usbser_pl2303_detach, /* devo_detach */
nodev, /* devo_reset */
&usbser_pl2303_cb_ops, /* devo_cb_ops */
usbser_power /* devo_power */
};
extern struct mod_ops mod_driverops;
&mod_driverops, /* type of module - driver */
"USB Prolific PL2303 driver 1.1",
};
static struct modlinkage modlinkage = {
};
/*
* entry points
* ------------
*
*/
int
_init(void)
{
int error;
usbser_soft_state_size(), 1);
}
return (error);
}
int
_fini(void)
{
int error;
}
return (error);
}
int
{
}
int
void **result)
{
}
static int
{
}
static int
{
}
static int
{
}