c138f478d2bc94e73ab8f6a084e323bec25e62f5yz/*
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * CDDL HEADER START
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz *
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * The contents of this file are subject to the terms of the
77e515715b61e28fcf0c3f30936492888cecfd8bgongtian zhao - Sun Microsystems - Beijing China * Common Development and Distribution License (the "License").
77e515715b61e28fcf0c3f30936492888cecfd8bgongtian zhao - Sun Microsystems - Beijing China * You may not use this file except in compliance with the License.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz *
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * or http://www.opensolaris.org/os/licensing.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * See the License for the specific language governing permissions
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * and limitations under the License.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz *
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * When distributing Covered Code, include this CDDL HEADER in each
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * If applicable, add the following below this CDDL HEADER, with the
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * fields enclosed by brackets "[]" replaced with your own identifying
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * information: Portions Copyright [yyyy] [name of copyright owner]
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz *
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * CDDL HEADER END
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz */
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz/*
77e515715b61e28fcf0c3f30936492888cecfd8bgongtian zhao - Sun Microsystems - Beijing China * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * Use is subject to license terms.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz */
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#include <sys/types.h>
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#include <sys/modctl.h>
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#include <sys/ddi.h>
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#include <sys/sunddi.h>
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#include <sys/usb/clients/usbser/usbser_keyspan/keyspan_var.h>
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#include <sys/usb/clients/usbser/usbser_keyspan/keyspan_49fw.h>
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz/* Get the address of firmware structure */
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzconst usbser_keyspan_fw_record_t *
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzkeyspan_usa49wlc_fw(void)
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz{
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#ifdef KEYSPAN_NO_FIRMWARE_SOURCE
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz return (NULL);
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#else
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz return (keyspan_usa49wlc_firmware);
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#endif
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz}
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzextern struct mod_ops mod_miscops;
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzstatic struct modlmisc modlmisc = {
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#ifdef KEYSPAN_NO_FIRMWARE_SOURCE
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz &mod_miscops, "Placeholder module for the firmware of Keyspan"
77e515715b61e28fcf0c3f30936492888cecfd8bgongtian zhao - Sun Microsystems - Beijing China " usb2serial adapter (usa49wlc)"
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#else
77e515715b61e28fcf0c3f30936492888cecfd8bgongtian zhao - Sun Microsystems - Beijing China &mod_miscops, "Firmware for Keyspan usb2serial adapter (usa49wlc)"
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#endif
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz};
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzstatic struct modlinkage modlinkage = {
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz MODREV_1, (void *)&modlmisc, NULL
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz};
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzint
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz_init(void)
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz{
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz return (mod_install(&modlinkage));
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz}
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzint
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz_fini(void)
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz{
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz return (mod_remove(&modlinkage));
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz}
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzint
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz_info(struct modinfo *modinfop)
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz{
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz return (mod_info(&modlinkage, modinfop));
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz}