1*0f1702c5SYu Xiangning /* 2*0f1702c5SYu Xiangning * CDDL HEADER START 3*0f1702c5SYu Xiangning * 4*0f1702c5SYu Xiangning * The contents of this file are subject to the terms of the 5*0f1702c5SYu Xiangning * Common Development and Distribution License (the "License"). 6*0f1702c5SYu Xiangning * You may not use this file except in compliance with the License. 7*0f1702c5SYu Xiangning * 8*0f1702c5SYu Xiangning * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*0f1702c5SYu Xiangning * or http://www.opensolaris.org/os/licensing. 10*0f1702c5SYu Xiangning * See the License for the specific language governing permissions 11*0f1702c5SYu Xiangning * and limitations under the License. 12*0f1702c5SYu Xiangning * 13*0f1702c5SYu Xiangning * When distributing Covered Code, include this CDDL HEADER in each 14*0f1702c5SYu Xiangning * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*0f1702c5SYu Xiangning * If applicable, add the following below this CDDL HEADER, with the 16*0f1702c5SYu Xiangning * fields enclosed by brackets "[]" replaced with your own identifying 17*0f1702c5SYu Xiangning * information: Portions Copyright [yyyy] [name of copyright owner] 18*0f1702c5SYu Xiangning * 19*0f1702c5SYu Xiangning * CDDL HEADER END 20*0f1702c5SYu Xiangning */ 21*0f1702c5SYu Xiangning /* 22*0f1702c5SYu Xiangning * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*0f1702c5SYu Xiangning * Use is subject to license terms. 24*0f1702c5SYu Xiangning */ 25*0f1702c5SYu Xiangning 26*0f1702c5SYu Xiangning #include <sys/types.h> 27*0f1702c5SYu Xiangning #include <sys/sunddi.h> 28*0f1702c5SYu Xiangning #include <sys/errno.h> 29*0f1702c5SYu Xiangning #include <sys/modctl.h> 30*0f1702c5SYu Xiangning 31*0f1702c5SYu Xiangning #include <io/ksocket/ksocket_impl.h> 32*0f1702c5SYu Xiangning 33*0f1702c5SYu Xiangning static struct modlmisc modlmisc = { 34*0f1702c5SYu Xiangning &mod_miscops, KSOCKET_MOD_VERSION 35*0f1702c5SYu Xiangning }; 36*0f1702c5SYu Xiangning 37*0f1702c5SYu Xiangning static struct modlinkage modlinkage = { 38*0f1702c5SYu Xiangning MODREV_1, (void *)&modlmisc, NULL 39*0f1702c5SYu Xiangning }; 40*0f1702c5SYu Xiangning 41*0f1702c5SYu Xiangning int 42*0f1702c5SYu Xiangning _init(void) 43*0f1702c5SYu Xiangning { 44*0f1702c5SYu Xiangning return (mod_install(&modlinkage)); 45*0f1702c5SYu Xiangning } 46*0f1702c5SYu Xiangning 47*0f1702c5SYu Xiangning int 48*0f1702c5SYu Xiangning _fini(void) 49*0f1702c5SYu Xiangning { 50*0f1702c5SYu Xiangning return (mod_remove(&modlinkage)); 51*0f1702c5SYu Xiangning } 52*0f1702c5SYu Xiangning 53*0f1702c5SYu Xiangning int 54*0f1702c5SYu Xiangning _info(struct modinfo *modinfop) 55*0f1702c5SYu Xiangning { 56*0f1702c5SYu Xiangning return (mod_info(&modlinkage, modinfop)); 57*0f1702c5SYu Xiangning } 58