6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 #pragma ident "%Z%%M% %I% %E% SMI"
27
28 /*
29 * STREAMS Packet Filter Module
30 *
31 * This module applies a filter to messages arriving on its read
32 * queue, passing on messages that the filter accepts adn discarding
33 * the others. It supports ioctls for setting the filter.
34 *
35 * On the write side, the module simply passes everything through
36 * unchanged.
37 *
38 * Based on SunOS 4.x version. This version has minor changes:
39 * - general SVR4 porting stuff
40 * - change name and prefixes from "nit" buffer to streams buffer
41 * - multithreading assumes configured as D_MTQPAIR
42 */
43
44 #include <sys/types.h>
45 #include <sys/sysmacros.h>
46 #include <sys/errno.h>
47 #include <sys/debug.h>
126 };
127
128 static struct streamtab pf_info = {
129 &pf_rinit, /* st_rdinit */
130 &pf_winit, /* st_wrinit */
131 NULL, /* st_muxrinit */
132 NULL /* st_muxwinit */
133 };
134
135 static struct fmodsw fsw = {
136 "pfmod",
137 &pf_info,
138 D_MTQPAIR | D_MP
139 };
140
141 static struct modlstrmod modlstrmod = {
142 &mod_strmodops, "streams packet filter module", &fsw
143 };
144
145 static struct modlinkage modlinkage = {
146 MODREV_1, &modlstrmod, NULL
147 };
148
149 int
150 _init(void)
151 {
152 return (mod_install(&modlinkage));
153 }
154
155 int
156 _fini(void)
157 {
158 return (mod_remove(&modlinkage));
159 }
160
161 int
162 _info(struct modinfo *modinfop)
163 {
164 return (mod_info(&modlinkage, modinfop));
165 }
166
|
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 /*
27 * STREAMS Packet Filter Module
28 *
29 * This module applies a filter to messages arriving on its read
30 * queue, passing on messages that the filter accepts adn discarding
31 * the others. It supports ioctls for setting the filter.
32 *
33 * On the write side, the module simply passes everything through
34 * unchanged.
35 *
36 * Based on SunOS 4.x version. This version has minor changes:
37 * - general SVR4 porting stuff
38 * - change name and prefixes from "nit" buffer to streams buffer
39 * - multithreading assumes configured as D_MTQPAIR
40 */
41
42 #include <sys/types.h>
43 #include <sys/sysmacros.h>
44 #include <sys/errno.h>
45 #include <sys/debug.h>
124 };
125
126 static struct streamtab pf_info = {
127 &pf_rinit, /* st_rdinit */
128 &pf_winit, /* st_wrinit */
129 NULL, /* st_muxrinit */
130 NULL /* st_muxwinit */
131 };
132
133 static struct fmodsw fsw = {
134 "pfmod",
135 &pf_info,
136 D_MTQPAIR | D_MP
137 };
138
139 static struct modlstrmod modlstrmod = {
140 &mod_strmodops, "streams packet filter module", &fsw
141 };
142
143 static struct modlinkage modlinkage = {
144 MODREV_1, { &modlstrmod, NULL }
145 };
146
147 int
148 _init(void)
149 {
150 return (mod_install(&modlinkage));
151 }
152
153 int
154 _fini(void)
155 {
156 return (mod_remove(&modlinkage));
157 }
158
159 int
160 _info(struct modinfo *modinfop)
161 {
162 return (mod_info(&modlinkage, modinfop));
163 }
164
|