56 * Per queue instances are single-threaded since the q_ptr
57 * field of queues need to be shared among threads.
58 */
59 static struct fmodsw fsw = {
60 "pckt",
61 &pcktinfo,
62 D_NEW | D_MTPERQ | D_MP
63 };
64
65 /*
66 * Module linkage information for the kernel.
67 */
68
69 static struct modlstrmod modlstrmod = {
70 &mod_strmodops,
71 "pckt module",
72 &fsw
73 };
74
75 static struct modlinkage modlinkage = {
76 MODREV_1, &modlstrmod, NULL
77 };
78
79
80 int
81 _init(void)
82 {
83 return (mod_install(&modlinkage));
84 }
85
86 int
87 _fini(void)
88 {
89 return (mod_remove(&modlinkage));
90 }
91
92 int
93 _info(struct modinfo *modinfop)
94 {
95 return (mod_info(&modlinkage, modinfop));
96 }
|
56 * Per queue instances are single-threaded since the q_ptr
57 * field of queues need to be shared among threads.
58 */
59 static struct fmodsw fsw = {
60 "pckt",
61 &pcktinfo,
62 D_NEW | D_MTPERQ | D_MP
63 };
64
65 /*
66 * Module linkage information for the kernel.
67 */
68
69 static struct modlstrmod modlstrmod = {
70 &mod_strmodops,
71 "pckt module",
72 &fsw
73 };
74
75 static struct modlinkage modlinkage = {
76 MODREV_1, { &modlstrmod, NULL }
77 };
78
79
80 int
81 _init(void)
82 {
83 return (mod_install(&modlinkage));
84 }
85
86 int
87 _fini(void)
88 {
89 return (mod_remove(&modlinkage));
90 }
91
92 int
93 _info(struct modinfo *modinfop)
94 {
95 return (mod_info(&modlinkage, modinfop));
96 }
|