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
_init(void)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
_fini(void)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
_info(struct modinfo * modinfop)54*0f1702c5SYu Xiangning _info(struct modinfo *modinfop)
55*0f1702c5SYu Xiangning {
56*0f1702c5SYu Xiangning 	return (mod_info(&modlinkage, modinfop));
57*0f1702c5SYu Xiangning }
58