8210 uts: remove kb streams module
[unleashed.git] / usr / src / uts / sparc / ml / modstubs.s
blob700dcf92cc16e9217c9f4080c9edb2bd68ad9505
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
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.
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]
19 * CDDL HEADER END
23 * Copyright (c) 1990, 2010, Oracle and/or its affiliates. All rights reserved.
24 * Copyright 2016 Nexenta Systems, Inc.
25 * Copyright (c) 2017, Joyent, Inc. All rights reserved.
28 #if !defined(lint)
29 #include "assym.h"
30 #endif /* !lint */
32 #include <sys/asm_linkage.h>
34 #if defined(lint)
36 char stubs_base[1], stubs_end[1];
38 #else /* lint */
41 * WARNING: there is no check for forgetting to write END_MODULE,
42 * and if you do, the kernel will most likely crash. Be careful
44 * This file assumes that all of the contributions to the data segment
45 * will be contiguous in the output file, even though they are separated
46 * by pieces of text. This is safe for all assemblers I know of now...
50 * This file uses ansi preprocessor features:
52 * 1. #define mac(a) extra_ ## a --> mac(x) expands to extra_a
53 * The old version of this is
54 * #define mac(a) extra_/.*.*./a
55 * but this fails if the argument has spaces "mac ( x )"
56 * (Ignore the dots above, I had to put them in to keep this a comment.)
58 * 2. #define mac(a) #a --> mac(x) expands to "x"
59 * The old version is
60 * #define mac(a) "a"
62 * For some reason, the 5.0 preprocessor isn't happy with the above usage.
63 * For now, we're not using these ansi features.
65 * The reason is that "the 5.0 ANSI preprocessor" is built into the compiler
66 * and is a tokenizing preprocessor. This means, when confronted by something
67 * other than C token generation rules, strange things occur. In this case,
68 * when confronted by an assembly file, it would turn the token ".globl" into
69 * two tokens "." and "globl". For this reason, the traditional, non-ANSI
70 * preprocessor is used on assembly files.
72 * It would be desirable to have a non-tokenizing cpp (accp?) to use for this.
76 * This file contains the stubs routines for modules which can be autoloaded.
81 * See the 'struct mod_modinfo' definition to see what this structure
82 * is trying to achieve here.
85 * XX64 - This still needs some repair.
86 * (a) define 'pointer alignment' and use it
87 * (b) define '.pword' or equivalent, and use it (to mean .word or .xword).
89 #define MODULE(module,namespace) \
90 .seg ".data"; \
91 module/**/_modname: \
92 .ascii "namespace/module"; \
93 .byte 0; \
94 .align CPTRSIZE; \
95 .global module/**/_modinfo; \
96 .type module/**/_modinfo, #object; \
97 .size module/**/_modinfo, 16; \
98 module/**/_modinfo: \
99 .word 0; \
100 .word module/**/_modname; \
101 .word 0; \
102 .word 0;
104 #define END_MODULE(module) \
105 .align 8; .word 0; .word 0 /* FIXME: .xword 0 */
108 #define STUB(module, fcnname, retfcn) \
109 STUB_COMMON(module, fcnname, mod_hold_stub, retfcn, 0)
112 * "weak stub", don't load on account of this call
114 #define WSTUB(module, fcnname, retfcn) \
115 STUB_COMMON(module, fcnname, retfcn, retfcn, MODS_WEAK)
118 * "non-unloadable stub", don't bother 'holding' module if it's already loaded
119 * since the module cannot be unloaded.
121 * User *MUST* guarantee the module is not unloadable (no _fini routine).
123 #define NO_UNLOAD_STUB(module, fcnname, retfcn) \
124 STUB_UNLOADABLE(module, fcnname, retfcn, retfcn, MODS_NOUNLOAD)
127 * Macro for modstubbed system calls whose modules are not unloadable.
129 * System call modstubs needs special handling for the case where
130 * the modstub is a system call, because %fp comes from user frame.
132 #define SCALL_NU_STUB(module, fcnname, retfcn) \
133 SCALL_UNLOADABLE(module, fcnname, retfcn, retfcn, MODS_NOUNLOAD)
134 /* "weak stub" for non-unloadable module, don't load on account of this call */
135 #define NO_UNLOAD_WSTUB(module, fcnname, retfcn) \
136 STUB_UNLOADABLE(module, fcnname, retfcn, retfcn, MODS_NOUNLOAD|MODS_WEAK)
138 #define STUB_DATA(module, fcnname, install_fcn, retfcn, weak) \
139 .seg ".data"; \
140 .align 8; \
141 fcnname/**/_info: \
142 .word 0; /* 0 */ \
143 .word install_fcn; /* 4 */ \
144 .word 0; /* 8 */ \
145 .word module/**/_modinfo; /* c */ \
146 .word 0; /* 10 */ \
147 .word fcnname; /* 14 */ \
148 .word 0; /* 18 */ \
149 .word retfcn; /* 1c */ \
150 .word weak /* 20 */
153 * The flag MODS_INSTALLED is stored in the stub data and is used to
154 * indicate if a module is installed and initialized. This flag is used
155 * instead of the mod_stub_info->mods_modinfo->mod_installed flag
156 * to minimize the number of pointer de-references for each function
157 * call (and also to avoid possible TLB misses which could be induced
158 * by dereferencing these pointers.)
161 #define STUB_COMMON(module, fcnname, install_fcn, retfcn, weak) \
162 ENTRY_NP(fcnname); \
163 save %sp, -SA(MINFRAME), %sp;/* new window */ \
164 set fcnname/**/_info, %l5; \
165 ld [%l5 + MODS_FLAG], %l1; /* weak?? */ \
166 cmp %l1, 0; \
167 be,a 1f; /* not weak */ \
168 restore; \
169 btst MODS_INSTALLED, %l1; /* installed?? */ \
170 bne,a,pt %xcc, 1f; /* yes, do mod_hold thing */ \
171 restore; \
172 ldn [%l5 + MODS_RETFCN], %g1; \
173 jmp %g1; /* no, just jump to retfcn */ \
174 restore; \
175 1: sub %sp, %fp, %g1; /* get (-)size of callers stack */ \
176 save %sp, %g1, %sp; /* create new frame same size */ \
177 sub %g0, %g1, %l4; /* size of stack frame */ \
178 sethi %hi(fcnname/**/_info), %l5; \
179 b stubs_common_code; \
180 or %l5, %lo(fcnname/**/_info), %l5; \
181 SET_SIZE(fcnname); \
182 STUB_DATA(module, fcnname, install_fcn, retfcn, weak)
184 #define STUB_UNLOADABLE(module, fcnname, install_fcn, retfcn, weak) \
185 ENTRY_NP(fcnname); \
186 save %sp, -SA(MINFRAME), %sp; /* new window */ \
187 set fcnname/**/_info, %l5; \
188 ld [%l5 + MODS_FLAG], %l1; \
189 btst MODS_INSTALLED, %l1; /* installed?? */ \
190 bne,a %xcc, 1f; /* yes */ \
191 ldn [%l5], %g1; \
192 btst MODS_WEAK, %l1; /* weak?? */ \
193 be,a 2f; /* no, load module */ \
194 restore; \
195 ldn [%l5 + MODS_RETFCN], %g1; \
196 1: jmp %g1; /* off we go */ \
197 restore; \
198 2: sub %sp, %fp, %g1; /* get (-)size of callers frame */ \
199 save %sp, %g1, %sp; /* create new frame same size */ \
200 sub %g0, %g1, %l4; /* size of stack frame */ \
201 sethi %hi(fcnname/**/_info), %l5; \
202 b stubs_common_code; \
203 or %l5, %lo(fcnname/**/_info), %l5; \
204 SET_SIZE(fcnname); \
205 STUB_DATA(module, fcnname, install_fcn, retfcn, weak)
207 #define SCALL_UNLOADABLE(module, fcnname, install_fcn, retfcn, weak) \
208 ENTRY_NP(fcnname); \
209 save %sp, -SA(MINFRAME), %sp; /* new window */ \
210 set fcnname/**/_info, %l5; \
211 ld [%l5 + MODS_FLAG], %l1; /* installed?? */ \
212 btst MODS_INSTALLED, %l1; \
213 be,a %xcc, 1f; /* no, load module */ \
214 restore; \
215 ldn [%l5], %g1; \
216 jmp %g1; /* yes, off we go */ \
217 restore; \
218 1: save %sp, -SA(MINFRAME), %sp;/* new frame */ \
219 sub %g0, -SA(MINFRAME), %l4;/* size of stack frame */ \
220 sethi %hi(fcnname/**/_info), %l5; \
221 b stubs_common_code; \
222 or %l5, %lo(fcnname/**/_info), %l5; \
223 SET_SIZE(fcnname); \
224 STUB_DATA(module, fcnname, install_fcn, retfcn, weak)
226 .section ".text"
229 * We branch here with the fcnname_info pointer in l5
230 * and the frame size in %l4.
232 ENTRY_NP(stubs_common_code)
233 cmp %l4, SA(MINFRAME)
234 ble,a,pn %xcc, 2f
237 sub %l4, 0x80, %l4 /* skip locals and outs */
238 add %sp, 0x80, %l0
239 add %fp, 0x80, %l1 /* get original sp before save */
241 /* Copy stack frame */
242 ldn [%l1 + STACK_BIAS], %l2
243 inc 8, %l1
244 stn %l2, [%l0 + STACK_BIAS]
245 deccc 8, %l4
246 bg,a 1b
247 inc 8, %l0
249 call mod_hold_stub /* Hold the module */
250 mov %l5, %o0
251 cmp %o0, -1 /* if error then return error */
252 bne,a 1f
254 ldn [%l5 + MODS_RETFCN], %i0
255 call %i0
258 restore %o0, 0, %o0
260 ldn [%l5], %g1
261 mov %i0, %o0 /* copy over incoming args, if number of */
262 mov %i1, %o1 /* args is > 6 then we copied them above */
263 mov %i2, %o2
264 mov %i3, %o3
265 mov %i4, %o4
266 call %g1 /* jump to the stub function */
267 mov %i5, %o5
268 mov %o0, %i0 /* copy any return values */
269 mov %o1, %i1
270 call mod_release_stub /* release hold on module */
271 mov %l5, %o0
272 ret /* return to caller */
273 restore
274 SET_SIZE(stubs_common_code)
276 ! this is just a marker for the area of text that contains stubs
277 .seg ".text"
278 .global stubs_base
279 stubs_base:
283 * WARNING WARNING WARNING!!!!!!
285 * On the MODULE macro you MUST NOT use any spaces!!! They are
286 * significant to the preprocessor. With ansi c there is a way around this
287 * but for some reason (yet to be investigated) ansi didn't work for other
288 * reasons!
290 * When zero is used as the return function, the system will call
291 * panic if the stub can't be resolved.
295 * Stubs for devfs. A non-unloadable module.
297 #ifndef DEVFS_MODULE
298 MODULE(devfs,fs);
299 NO_UNLOAD_STUB(devfs, devfs_clean, nomod_minus_one);
300 NO_UNLOAD_STUB(devfs, devfs_lookupname, nomod_minus_one);
301 NO_UNLOAD_STUB(devfs, devfs_walk, nomod_minus_one);
302 NO_UNLOAD_STUB(devfs, devfs_devpolicy, nomod_minus_one);
303 NO_UNLOAD_STUB(devfs, devfs_reset_perm, nomod_minus_one);
304 NO_UNLOAD_STUB(devfs, devfs_remdrv_cleanup, nomod_minus_one);
305 END_MODULE(devfs);
306 #endif
309 * Stubs for /dev fs.
311 #ifndef DEV_MODULE
312 MODULE(dev, fs);
313 NO_UNLOAD_STUB(dev, sdev_modctl_readdir, nomod_minus_one);
314 NO_UNLOAD_STUB(dev, sdev_modctl_readdir_free, nomod_minus_one);
315 NO_UNLOAD_STUB(dev, devname_filename_register, nomod_minus_one);
316 NO_UNLOAD_STUB(dev, sdev_modctl_devexists, nomod_minus_one);
317 NO_UNLOAD_STUB(dev, devname_profile_update, nomod_minus_one);
318 NO_UNLOAD_STUB(dev, sdev_devstate_change, nomod_minus_one);
319 NO_UNLOAD_STUB(dev, devvt_getvnodeops, nomod_minus_one);
320 NO_UNLOAD_STUB(dev, devpts_getvnodeops, nomod_zero);
321 END_MODULE(dev);
322 #endif
325 * Stubs for specfs. A non-unloadable module.
328 #ifndef SPEC_MODULE
329 MODULE(specfs,fs);
330 NO_UNLOAD_STUB(specfs, common_specvp, nomod_zero);
331 NO_UNLOAD_STUB(specfs, makectty, nomod_zero);
332 NO_UNLOAD_STUB(specfs, makespecvp, nomod_zero);
333 NO_UNLOAD_STUB(specfs, smark, nomod_zero);
334 NO_UNLOAD_STUB(specfs, spec_segmap, nomod_einval);
335 NO_UNLOAD_STUB(specfs, specfind, nomod_zero);
336 NO_UNLOAD_STUB(specfs, specvp, nomod_zero);
337 NO_UNLOAD_STUB(specfs, devi_stillreferenced, nomod_zero);
338 NO_UNLOAD_STUB(specfs, spec_getvnodeops, nomod_zero);
339 NO_UNLOAD_STUB(specfs, spec_char_map, nomod_zero);
340 NO_UNLOAD_STUB(specfs, specvp_devfs, nomod_zero);
341 NO_UNLOAD_STUB(specfs, spec_assoc_vp_with_devi, nomod_void);
342 NO_UNLOAD_STUB(specfs, spec_hold_devi_by_vp, nomod_zero);
343 NO_UNLOAD_STUB(specfs, spec_snode_walk, nomod_void);
344 NO_UNLOAD_STUB(specfs, spec_devi_open_count, nomod_minus_one);
345 NO_UNLOAD_STUB(specfs, spec_is_clone, nomod_zero);
346 NO_UNLOAD_STUB(specfs, spec_is_selfclone, nomod_zero);
347 NO_UNLOAD_STUB(specfs, spec_fence_snode, nomod_minus_one);
348 NO_UNLOAD_STUB(specfs, spec_unfence_snode, nomod_minus_one);
349 END_MODULE(specfs);
350 #endif
354 * Stubs for sockfs. A non-unloadable module.
356 #ifndef SOCK_MODULE
357 MODULE(sockfs, fs);
358 SCALL_NU_STUB(sockfs, so_socket, nomod_zero);
359 SCALL_NU_STUB(sockfs, so_socketpair, nomod_zero);
360 SCALL_NU_STUB(sockfs, bind, nomod_zero);
361 SCALL_NU_STUB(sockfs, listen, nomod_zero);
362 SCALL_NU_STUB(sockfs, accept, nomod_zero);
363 SCALL_NU_STUB(sockfs, connect, nomod_zero);
364 SCALL_NU_STUB(sockfs, shutdown, nomod_zero);
365 SCALL_NU_STUB(sockfs, recv, nomod_zero);
366 SCALL_NU_STUB(sockfs, recvfrom, nomod_zero);
367 SCALL_NU_STUB(sockfs, recvmsg, nomod_zero);
368 SCALL_NU_STUB(sockfs, send, nomod_zero);
369 SCALL_NU_STUB(sockfs, sendmsg, nomod_zero);
370 SCALL_NU_STUB(sockfs, sendto, nomod_zero);
371 #ifdef _SYSCALL32_IMPL
372 SCALL_NU_STUB(sockfs, recv32, nomod_zero);
373 SCALL_NU_STUB(sockfs, recvfrom32, nomod_zero);
374 SCALL_NU_STUB(sockfs, send32, nomod_zero);
375 SCALL_NU_STUB(sockfs, sendto32, nomod_zero);
376 #endif /* _SYSCALL32_IMPL */
377 SCALL_NU_STUB(sockfs, getpeername, nomod_zero);
378 SCALL_NU_STUB(sockfs, getsockname, nomod_zero);
379 SCALL_NU_STUB(sockfs, getsockopt, nomod_zero);
380 SCALL_NU_STUB(sockfs, setsockopt, nomod_zero);
381 SCALL_NU_STUB(sockfs, sockconfig, nomod_zero);
382 NO_UNLOAD_STUB(sockfs, sock_getmsg, nomod_zero);
383 NO_UNLOAD_STUB(sockfs, sock_putmsg, nomod_zero);
384 NO_UNLOAD_STUB(sockfs, sosendfile64, nomod_zero);
385 NO_UNLOAD_STUB(sockfs, snf_segmap, nomod_einval);
386 NO_UNLOAD_STUB(sockfs, sock_getfasync, nomod_zero);
387 NO_UNLOAD_STUB(sockfs, nl7c_sendfilev, nomod_zero);
388 NO_UNLOAD_STUB(sockfs, sotpi_sototpi, nomod_zero);
389 NO_UNLOAD_STUB(sockfs, socket_sendmblk, nomod_zero);
390 NO_UNLOAD_STUB(sockfs, socket_setsockopt, nomod_zero);
391 END_MODULE(sockfs);
392 #endif
395 * IPsec stubs.
398 #ifndef IPSECAH_MODULE
399 MODULE(ipsecah,drv);
400 WSTUB(ipsecah, ipsec_construct_inverse_acquire, nomod_zero);
401 WSTUB(ipsecah, sadb_acquire, nomod_zero);
402 WSTUB(ipsecah, ipsecah_algs_changed, nomod_zero);
403 WSTUB(ipsecah, sadb_alg_update, nomod_zero);
404 WSTUB(ipsecah, sadb_unlinkassoc, nomod_zero);
405 WSTUB(ipsecah, sadb_insertassoc, nomod_zero);
406 WSTUB(ipsecah, ipsecah_in_assocfailure, nomod_zero);
407 WSTUB(ipsecah, sadb_set_lpkt, nomod_zero);
408 WSTUB(ipsecah, ipsecah_icmp_error, nomod_zero);
409 END_MODULE(ipsecah);
410 #endif
412 #ifndef IPSECESP_MODULE
413 MODULE(ipsecesp,drv);
414 WSTUB(ipsecesp, ipsecesp_fill_defs, nomod_zero);
415 WSTUB(ipsecesp, ipsecesp_algs_changed, nomod_zero);
416 WSTUB(ipsecesp, ipsecesp_in_assocfailure, nomod_zero);
417 WSTUB(ipsecesp, ipsecesp_init_funcs, nomod_zero);
418 WSTUB(ipsecesp, ipsecesp_icmp_error, nomod_zero);
419 WSTUB(ipsecesp, ipsecesp_send_keepalive, nomod_zero);
420 END_MODULE(ipsecesp);
421 #endif
423 #ifndef KEYSOCK_MODULE
424 MODULE(keysock,drv);
425 WSTUB(keysock, keysock_spdsock_wput_iocdata, nomod_void);
426 WSTUB(keysock, keysock_plumb_ipsec, nomod_zero);
427 WSTUB(keysock, keysock_extended_reg, nomod_zero);
428 WSTUB(keysock, keysock_next_seq, nomod_zero);
429 END_MODULE(keysock);
430 #endif
432 #ifndef SPDSOCK_MODULE
433 MODULE(spdsock,drv);
434 WSTUB(spdsock, spdsock_update_pending_algs, nomod_zero);
435 END_MODULE(spdsock);
436 #endif
439 * Stubs for nfs common code.
440 * XXX nfs_getvnodeops should go away with removal of kludge in vnode.c
442 #ifndef NFS_MODULE
443 MODULE(nfs,fs);
444 WSTUB(nfs, nfs_getvnodeops, nomod_zero);
445 WSTUB(nfs, nfs_perror, nomod_zero);
446 WSTUB(nfs, nfs_cmn_err, nomod_zero);
447 WSTUB(nfs, clcleanup_zone, nomod_zero);
448 WSTUB(nfs, clcleanup4_zone, nomod_zero);
449 END_MODULE(nfs);
450 #endif
453 * Stubs for nfs_dlboot (diskless booting).
455 #ifndef NFS_DLBOOT_MODULE
456 MODULE(nfs_dlboot,misc);
457 STUB(nfs_dlboot, mount_root, nomod_minus_one);
458 STUB(nfs_dlboot, dhcpinit, nomod_minus_one);
459 END_MODULE(nfs_dlboot);
460 #endif
463 * Stubs for nfs server-only code.
465 #ifndef NFSSRV_MODULE
466 MODULE(nfssrv,misc);
467 STUB(nfssrv, exportfs, nomod_minus_one);
468 STUB(nfssrv, nfs_getfh, nomod_minus_one);
469 STUB(nfssrv, nfsl_flush, nomod_minus_one);
470 STUB(nfssrv, rfs4_check_delegated, nomod_zero);
471 STUB(nfssrv, mountd_args, nomod_minus_one);
472 NO_UNLOAD_STUB(nfssrv, rdma_start, nomod_zero);
473 NO_UNLOAD_STUB(nfssrv, nfs_svc, nomod_zero);
474 END_MODULE(nfssrv);
475 #endif
478 * Stubs for kernel lock manager.
480 #ifndef KLM_MODULE
481 MODULE(klmmod,misc);
482 NO_UNLOAD_STUB(klmmod, lm_svc, nomod_zero);
483 NO_UNLOAD_STUB(klmmod, lm_shutdown, nomod_zero);
484 NO_UNLOAD_STUB(klmmod, lm_unexport, nomod_zero);
485 NO_UNLOAD_STUB(klmmod, lm_cprresume, nomod_zero);
486 NO_UNLOAD_STUB(klmmod, lm_cprsuspend, nomod_zero);
487 NO_UNLOAD_STUB(klmmod, lm_safelock, nomod_zero);
488 NO_UNLOAD_STUB(klmmod, lm_safemap, nomod_zero);
489 NO_UNLOAD_STUB(klmmod, lm_has_sleep, nomod_zero);
490 NO_UNLOAD_STUB(klmmod, lm_free_config, nomod_zero);
491 NO_UNLOAD_STUB(klmmod, lm_vp_active, nomod_zero);
492 NO_UNLOAD_STUB(klmmod, lm_get_sysid, nomod_zero);
493 NO_UNLOAD_STUB(klmmod, lm_rel_sysid, nomod_zero);
494 NO_UNLOAD_STUB(klmmod, lm_alloc_sysidt, nomod_minus_one);
495 NO_UNLOAD_STUB(klmmod, lm_free_sysidt, nomod_zero);
496 NO_UNLOAD_STUB(klmmod, lm_sysidt, nomod_minus_one);
497 END_MODULE(klmmod);
498 #endif
500 #ifndef KLMOPS_MODULE
501 MODULE(klmops,misc);
502 NO_UNLOAD_STUB(klmops, lm_frlock, nomod_zero);
503 NO_UNLOAD_STUB(klmops, lm4_frlock, nomod_zero);
504 NO_UNLOAD_STUB(klmops, lm_shrlock, nomod_zero);
505 NO_UNLOAD_STUB(klmops, lm4_shrlock, nomod_zero);
506 NO_UNLOAD_STUB(klmops, lm_nlm_dispatch, nomod_zero);
507 NO_UNLOAD_STUB(klmops, lm_nlm4_dispatch, nomod_zero);
508 NO_UNLOAD_STUB(klmops, lm_nlm_reclaim, nomod_zero);
509 NO_UNLOAD_STUB(klmops, lm_nlm4_reclaim, nomod_zero);
510 NO_UNLOAD_STUB(klmops, lm_register_lock_locally, nomod_zero);
511 END_MODULE(klmops);
512 #endif
515 * Stubs for kernel TLI module
516 * XXX currently we never allow this to unload
518 #ifndef TLI_MODULE
519 MODULE(tlimod,misc);
520 NO_UNLOAD_STUB(tlimod, t_kopen, nomod_minus_one);
521 NO_UNLOAD_STUB(tlimod, t_kunbind, nomod_zero);
522 NO_UNLOAD_STUB(tlimod, t_kadvise, nomod_zero);
523 NO_UNLOAD_STUB(tlimod, t_krcvudata, nomod_zero);
524 NO_UNLOAD_STUB(tlimod, t_ksndudata, nomod_zero);
525 NO_UNLOAD_STUB(tlimod, t_kalloc, nomod_zero);
526 NO_UNLOAD_STUB(tlimod, t_kbind, nomod_zero);
527 NO_UNLOAD_STUB(tlimod, t_kclose, nomod_zero);
528 NO_UNLOAD_STUB(tlimod, t_kspoll, nomod_zero);
529 NO_UNLOAD_STUB(tlimod, t_kfree, nomod_zero);
530 END_MODULE(tlimod);
531 #endif
534 * Stubs for kernel RPC module
535 * XXX currently we never allow this to unload
537 #ifndef RPC_MODULE
538 MODULE(rpcmod,strmod);
539 NO_UNLOAD_STUB(rpcmod, clnt_tli_kcreate, nomod_minus_one);
540 NO_UNLOAD_STUB(rpcmod, svc_tli_kcreate, nomod_minus_one);
541 NO_UNLOAD_STUB(rpcmod, bindresvport, nomod_minus_one);
542 NO_UNLOAD_STUB(rpcmod, rdma_register_mod, nomod_minus_one);
543 NO_UNLOAD_STUB(rpcmod, rdma_unregister_mod, nomod_minus_one);
544 NO_UNLOAD_STUB(rpcmod, svc_queuereq, nomod_minus_one);
545 NO_UNLOAD_STUB(rpcmod, clist_add, nomod_minus_one);
546 END_MODULE(rpcmod);
547 #endif
550 * Stubs for des
552 #ifndef DES_MODULE
553 MODULE(des,misc);
554 STUB(des, cbc_crypt, nomod_zero);
555 STUB(des, ecb_crypt, nomod_zero);
556 STUB(des, _des_crypt, nomod_zero);
557 END_MODULE(des);
558 #endif
561 * Stubs for procfs. A non-unloadable module.
563 #ifndef PROC_MODULE
564 MODULE(procfs,fs);
565 NO_UNLOAD_STUB(procfs, prfree, nomod_zero);
566 NO_UNLOAD_STUB(procfs, prexit, nomod_zero);
567 NO_UNLOAD_STUB(procfs, prlwpfree, nomod_zero);
568 NO_UNLOAD_STUB(procfs, prlwpexit, nomod_zero);
569 NO_UNLOAD_STUB(procfs, prinvalidate, nomod_zero);
570 NO_UNLOAD_STUB(procfs, prnsegs, nomod_zero);
571 NO_UNLOAD_STUB(procfs, prgetcred, nomod_zero);
572 NO_UNLOAD_STUB(procfs, prgetpriv, nomod_zero);
573 NO_UNLOAD_STUB(procfs, prgetprivsize, nomod_zero);
574 NO_UNLOAD_STUB(procfs, prgetsecflags, nomod_zero);
575 NO_UNLOAD_STUB(procfs, prgetstatus, nomod_zero);
576 NO_UNLOAD_STUB(procfs, prgetlwpstatus, nomod_zero);
577 NO_UNLOAD_STUB(procfs, prgetpsinfo, nomod_zero);
578 NO_UNLOAD_STUB(procfs, prgetlwpsinfo, nomod_zero);
579 NO_UNLOAD_STUB(procfs, oprgetstatus, nomod_zero);
580 NO_UNLOAD_STUB(procfs, oprgetpsinfo, nomod_zero);
581 #ifdef _SYSCALL32_IMPL
582 NO_UNLOAD_STUB(procfs, prgetstatus32, nomod_zero);
583 NO_UNLOAD_STUB(procfs, prgetlwpstatus32, nomod_zero);
584 NO_UNLOAD_STUB(procfs, prgetpsinfo32, nomod_zero);
585 NO_UNLOAD_STUB(procfs, prgetlwpsinfo32, nomod_zero);
586 NO_UNLOAD_STUB(procfs, oprgetstatus32, nomod_zero);
587 NO_UNLOAD_STUB(procfs, oprgetpsinfo32, nomod_zero);
588 NO_UNLOAD_STUB(procfs, psinfo_kto32, nomod_zero);
589 NO_UNLOAD_STUB(procfs, lwpsinfo_kto32, nomod_zero);
590 #endif /* _SYSCALL32_IMPL */
591 NO_UNLOAD_STUB(procfs, prnotify, nomod_zero);
592 NO_UNLOAD_STUB(procfs, prexecstart, nomod_zero);
593 NO_UNLOAD_STUB(procfs, prexecend, nomod_zero);
594 NO_UNLOAD_STUB(procfs, prrelvm, nomod_zero);
595 NO_UNLOAD_STUB(procfs, prbarrier, nomod_zero);
596 NO_UNLOAD_STUB(procfs, estimate_msacct, nomod_zero);
597 NO_UNLOAD_STUB(procfs, pr_getprot, nomod_zero);
598 NO_UNLOAD_STUB(procfs, pr_getprot_done, nomod_zero);
599 NO_UNLOAD_STUB(procfs, pr_getsegsize, nomod_zero);
600 NO_UNLOAD_STUB(procfs, pr_isobject, nomod_zero);
601 NO_UNLOAD_STUB(procfs, pr_isself, nomod_zero);
602 NO_UNLOAD_STUB(procfs, pr_allstopped, nomod_zero);
603 NO_UNLOAD_STUB(procfs, pr_free_watched_pages, nomod_zero);
604 END_MODULE(procfs);
605 #endif
608 * Stubs for fifofs
610 #ifndef FIFO_MODULE
611 MODULE(fifofs,fs);
612 STUB(fifofs, fifovp, 0);
613 STUB(fifofs, fifo_getinfo, 0);
614 STUB(fifofs, fifo_vfastoff, 0);
615 END_MODULE(fifofs);
616 #endif
619 * Stubs for ufs
621 * This is needed to support the old quotactl system call.
622 * When the old sysent stuff goes away, this will need to be revisited.
624 #ifndef UFS_MODULE
625 MODULE(ufs,fs);
626 STUB(ufs, quotactl, nomod_minus_one);
627 END_MODULE(ufs);
628 #endif
631 * Stubs for zfs
633 #ifndef ZFS_MODULE
634 MODULE(zfs,fs);
635 STUB(zfs, dsl_prop_get, nomod_minus_one);
636 STUB(zfs, spa_boot_init, nomod_minus_one);
637 STUB(zfs, zfs_prop_to_name, nomod_zero);
638 END_MODULE(zfs);
639 #endif
642 * Stubs for dcfs
644 #ifndef DCFS_MODULE
645 MODULE(dcfs,fs);
646 STUB(dcfs, decompvp, 0);
647 END_MODULE(dcfs);
648 #endif
651 * Stubs for namefs
653 #ifndef NAMEFS_MODULE
654 MODULE(namefs,fs);
655 STUB(namefs, nm_unmountall, 0);
656 END_MODULE(namefs);
657 #endif
660 * Stubs for sysdc
662 #ifndef SDC_MODULE
663 MODULE(SDC,sched);
664 NO_UNLOAD_STUB(SDC, sysdc_thread_enter, nomod_zero);
665 END_MODULE(SDC);
666 #endif
669 * Stubs for ts_dptbl
671 #ifndef TS_DPTBL_MODULE
672 MODULE(TS_DPTBL,sched);
673 STUB(TS_DPTBL, ts_getdptbl, 0);
674 STUB(TS_DPTBL, ts_getkmdpris, 0);
675 STUB(TS_DPTBL, ts_getmaxumdpri, 0);
676 END_MODULE(TS_DPTBL);
677 #endif
680 * Stubs for rt_dptbl
682 #ifndef RT_DPTBL_MODULE
683 MODULE(RT_DPTBL,sched);
684 STUB(RT_DPTBL, rt_getdptbl, 0);
685 END_MODULE(RT_DPTBL);
686 #endif
689 * Stubs for ia_dptbl
691 #ifndef IA_DPTBL_MODULE
692 MODULE(IA_DPTBL,sched);
693 STUB(IA_DPTBL, ia_getdptbl, 0);
694 STUB(IA_DPTBL, ia_getkmdpris, 0);
695 STUB(IA_DPTBL, ia_getmaxumdpri, 0);
696 END_MODULE(IA_DPTBL);
697 #endif
700 * Stubs for FSS scheduler
702 #ifndef FSS_MODULE
703 MODULE(FSS,sched);
704 WSTUB(FSS, fss_allocbuf, nomod_zero);
705 WSTUB(FSS, fss_freebuf, nomod_zero);
706 WSTUB(FSS, fss_changeproj, nomod_zero);
707 WSTUB(FSS, fss_changepset, nomod_zero);
708 END_MODULE(FSS);
709 #endif
712 * Stubs for fx_dptbl
714 #ifndef FX_DPTBL_MODULE
715 MODULE(FX_DPTBL,sched);
716 STUB(FX_DPTBL, fx_getdptbl, 0);
717 STUB(FX_DPTBL, fx_getmaxumdpri, 0);
718 END_MODULE(FX_DPTBL);
719 #endif
722 * Stubs for swapgeneric
724 #ifndef SWAPGENERIC_MODULE
725 MODULE(swapgeneric,misc);
726 STUB(swapgeneric, rootconf, 0);
727 STUB(swapgeneric, getrootdev, 0);
728 STUB(swapgeneric, getfsname, 0);
729 STUB(swapgeneric, loadrootmodules, 0);
730 END_MODULE(swapgeneric);
731 #endif
734 * Stubs for bootdev
736 #ifndef BOOTDEV_MODULE
737 MODULE(bootdev,misc);
738 STUB(bootdev, i_devname_to_promname, 0);
739 STUB(bootdev, i_promname_to_devname, 0);
740 STUB(bootdev, i_convert_boot_device_name, 0);
741 END_MODULE(bootdev);
742 #endif
745 * stubs for strplumb...
747 #ifndef STRPLUMB_MODULE
748 MODULE(strplumb,misc);
749 STUB(strplumb, strplumb, 0);
750 STUB(strplumb, strplumb_load, 0);
751 STUB(strplumb, strplumb_get_netdev_path, 0)
752 END_MODULE(strplumb);
753 #endif
756 * Stubs for console configuration module
758 #ifndef CONSCONFIG_MODULE
759 MODULE(consconfig,misc);
760 STUB(consconfig, consconfig, 0);
761 STUB(consconfig, consconfig_get_usb_kb_path, 0);
762 STUB(consconfig, consconfig_get_usb_ms_path, 0);
763 STUB(consconfig, consconfig_console_is_ready, 0);
764 END_MODULE(consconfig);
765 #endif
768 * Stubs for zs (uart) module
770 #ifndef ZS_MODULE
771 MODULE(zs,drv);
772 STUB(zs, zsgetspeed, 0);
773 END_MODULE(zs);
774 #endif
777 * Stubs for accounting.
779 #ifndef SYSACCT_MODULE
780 MODULE(sysacct,sys);
781 WSTUB(sysacct, acct, nomod_zero);
782 WSTUB(sysacct, acct_fs_in_use, nomod_zero);
783 END_MODULE(sysacct);
784 #endif
787 * Stubs for semaphore routines. sem.c
789 #ifndef SEMSYS_MODULE
790 MODULE(semsys,sys);
791 WSTUB(semsys, semexit, nomod_zero);
792 END_MODULE(semsys);
793 #endif
796 * Stubs for shmem routines. shm.c
798 #ifndef SHMSYS_MODULE
799 MODULE(shmsys,sys);
800 WSTUB(shmsys, shmexit, nomod_zero);
801 WSTUB(shmsys, shmfork, nomod_zero);
802 WSTUB(shmsys, shmgetid, nomod_minus_one);
803 END_MODULE(shmsys);
804 #endif
807 * Stubs for doors
809 #ifndef DOORFS_MODULE
810 MODULE(doorfs,sys);
811 WSTUB(doorfs, door_slam, nomod_zero);
812 WSTUB(doorfs, door_exit, nomod_zero);
813 WSTUB(doorfs, door_revoke_all, nomod_zero);
814 WSTUB(doorfs, door_fork, nomod_zero);
815 NO_UNLOAD_STUB(doorfs, door_upcall, nomod_einval);
816 NO_UNLOAD_STUB(doorfs, door_ki_create, nomod_einval);
817 NO_UNLOAD_STUB(doorfs, door_ki_open, nomod_einval);
818 NO_UNLOAD_STUB(doorfs, door_ki_lookup, nomod_zero);
819 WSTUB(doorfs, door_ki_upcall, nomod_einval);
820 WSTUB(doorfs, door_ki_upcall_limited, nomod_einval);
821 WSTUB(doorfs, door_ki_hold, nomod_zero);
822 WSTUB(doorfs, door_ki_rele, nomod_zero);
823 WSTUB(doorfs, door_ki_info, nomod_einval);
824 END_MODULE(doorfs);
825 #endif
828 * Stubs for idmap
830 #ifndef IDMAP_MODULE
831 MODULE(idmap,misc);
832 STUB(idmap, kidmap_batch_getgidbysid, nomod_zero);
833 STUB(idmap, kidmap_batch_getpidbysid, nomod_zero);
834 STUB(idmap, kidmap_batch_getsidbygid, nomod_zero);
835 STUB(idmap, kidmap_batch_getsidbyuid, nomod_zero);
836 STUB(idmap, kidmap_batch_getuidbysid, nomod_zero);
837 STUB(idmap, kidmap_get_create, nomod_zero);
838 STUB(idmap, kidmap_get_destroy, nomod_zero);
839 STUB(idmap, kidmap_get_mappings, nomod_zero);
840 STUB(idmap, kidmap_getgidbysid, nomod_zero);
841 STUB(idmap, kidmap_getpidbysid, nomod_zero);
842 STUB(idmap, kidmap_getsidbygid, nomod_zero);
843 STUB(idmap, kidmap_getsidbyuid, nomod_zero);
844 STUB(idmap, kidmap_getuidbysid, nomod_zero);
845 STUB(idmap, idmap_get_door, nomod_einval);
846 STUB(idmap, idmap_unreg_dh, nomod_einval);
847 STUB(idmap, idmap_reg_dh, nomod_einval);
848 STUB(idmap, idmap_purge_cache, nomod_einval);
849 END_MODULE(idmap);
850 #endif
853 * Stubs for dma routines. dmaga.c
854 * (These are only needed for cross-checks, not autoloading)
856 #ifndef DMA_MODULE
857 MODULE(dma,drv);
858 WSTUB(dma, dma_alloc, nomod_zero); /* (DMAGA *)0 */
859 WSTUB(dma, dma_free, nomod_zero); /* (DMAGA *)0 */
860 END_MODULE(dma);
861 #endif
864 * Stubs for auditing.
866 #ifndef C2AUDIT_MODULE
867 MODULE(c2audit,sys);
868 NO_UNLOAD_STUB(c2audit, audit_init_module, nomod_zero);
869 NO_UNLOAD_STUB(c2audit, audit_start, nomod_zero);
870 NO_UNLOAD_STUB(c2audit, audit_finish, nomod_zero);
871 NO_UNLOAD_STUB(c2audit, audit, nomod_zero);
872 NO_UNLOAD_STUB(c2audit, auditdoor, nomod_zero);
873 NO_UNLOAD_STUB(c2audit, audit_closef, nomod_zero);
874 NO_UNLOAD_STUB(c2audit, audit_core_start, nomod_zero);
875 NO_UNLOAD_STUB(c2audit, audit_core_finish, nomod_zero);
876 NO_UNLOAD_STUB(c2audit, audit_strputmsg, nomod_zero);
877 NO_UNLOAD_STUB(c2audit, audit_savepath, nomod_zero);
878 NO_UNLOAD_STUB(c2audit, audit_anchorpath, nomod_zero);
879 NO_UNLOAD_STUB(c2audit, audit_exit, nomod_zero);
880 NO_UNLOAD_STUB(c2audit, audit_exec, nomod_zero);
881 NO_UNLOAD_STUB(c2audit, audit_symlink, nomod_zero);
882 NO_UNLOAD_STUB(c2audit, audit_symlink_create, nomod_zero);
883 NO_UNLOAD_STUB(c2audit, audit_vncreate_start, nomod_zero);
884 NO_UNLOAD_STUB(c2audit, audit_vncreate_finish, nomod_zero);
885 NO_UNLOAD_STUB(c2audit, audit_enterprom, nomod_zero);
886 NO_UNLOAD_STUB(c2audit, audit_exitprom, nomod_zero);
887 NO_UNLOAD_STUB(c2audit, audit_chdirec, nomod_zero);
888 NO_UNLOAD_STUB(c2audit, audit_setf, nomod_zero);
889 NO_UNLOAD_STUB(c2audit, audit_sock, nomod_zero);
890 NO_UNLOAD_STUB(c2audit, audit_strgetmsg, nomod_zero);
891 NO_UNLOAD_STUB(c2audit, audit_ipc, nomod_zero);
892 NO_UNLOAD_STUB(c2audit, audit_ipcget, nomod_zero);
893 NO_UNLOAD_STUB(c2audit, audit_fdsend, nomod_zero);
894 NO_UNLOAD_STUB(c2audit, audit_fdrecv, nomod_zero);
895 NO_UNLOAD_STUB(c2audit, audit_priv, nomod_zero);
896 NO_UNLOAD_STUB(c2audit, audit_setppriv, nomod_zero);
897 NO_UNLOAD_STUB(c2audit, audit_psecflags, nomod_zero);
898 NO_UNLOAD_STUB(c2audit, audit_devpolicy, nomod_zero);
899 NO_UNLOAD_STUB(c2audit, audit_setfsat_path, nomod_zero);
900 NO_UNLOAD_STUB(c2audit, audit_cryptoadm, nomod_zero);
901 NO_UNLOAD_STUB(c2audit, audit_kssl, nomod_zero);
902 NO_UNLOAD_STUB(c2audit, audit_pf_policy, nomod_zero);
903 NO_UNLOAD_STUB(c2audit, au_doormsg, nomod_zero);
904 NO_UNLOAD_STUB(c2audit, au_uwrite, nomod_zero);
905 NO_UNLOAD_STUB(c2audit, au_to_arg32, nomod_zero);
906 NO_UNLOAD_STUB(c2audit, au_free_rec, nomod_zero);
907 END_MODULE(c2audit);
908 #endif
911 * Stubs for kernel rpc security service module
913 #ifndef RPCSEC_MODULE
914 MODULE(rpcsec,misc);
915 NO_UNLOAD_STUB(rpcsec, sec_clnt_revoke, nomod_zero);
916 NO_UNLOAD_STUB(rpcsec, authkern_create, nomod_zero);
917 NO_UNLOAD_STUB(rpcsec, sec_svc_msg, nomod_zero);
918 NO_UNLOAD_STUB(rpcsec, sec_svc_control, nomod_zero);
919 END_MODULE(rpcsec);
920 #endif
923 * Stubs for rpc RPCSEC_GSS security service module
925 #ifndef RPCSEC_GSS_MODULE
926 MODULE(rpcsec_gss,misc);
927 NO_UNLOAD_STUB(rpcsec_gss, __svcrpcsec_gss, nomod_zero);
928 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_getcred, nomod_zero);
929 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_set_callback, nomod_zero);
930 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_secget, nomod_zero);
931 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_secfree, nomod_zero);
932 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_seccreate, nomod_zero);
933 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_set_defaults, nomod_zero);
934 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_revauth, nomod_zero);
935 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_secpurge, nomod_zero);
936 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_cleanup, nomod_zero);
937 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_get_versions, nomod_zero);
938 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_max_data_length, nomod_zero);
939 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_svc_max_data_length, nomod_zero);
940 NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_get_service_type, nomod_zero);
941 END_MODULE(rpcsec_gss);
942 #endif
944 #ifndef IWSCN_MODULE
945 MODULE(iwscn,drv);
946 STUB(iwscn, srpop, 0);
947 END_MODULE(iwscn);
948 #endif
951 * Stubs for checkpoint-resume module
953 #ifndef CPR_MODULE
954 MODULE(cpr,misc);
955 STUB(cpr, cpr, 0);
956 END_MODULE(cpr);
957 #endif
960 * Stubs for VIS module
962 #ifndef VIS_MODULE
963 MODULE(vis,misc);
964 STUB(vis, vis_fpu_simulator, 0);
965 STUB(vis, vis_fldst, 0);
966 STUB(vis, vis_rdgsr, 0);
967 STUB(vis, vis_wrgsr, 0);
968 END_MODULE(vis);
969 #endif
972 * Stubs for kernel probes (tnf module). Not unloadable.
974 #ifndef TNF_MODULE
975 MODULE(tnf,drv);
976 NO_UNLOAD_STUB(tnf, tnf_ref32_1, nomod_zero);
977 NO_UNLOAD_STUB(tnf, tnf_string_1, nomod_zero);
978 NO_UNLOAD_STUB(tnf, tnf_opaque_array_1, nomod_zero);
979 NO_UNLOAD_STUB(tnf, tnf_opaque32_array_1, nomod_zero);
980 NO_UNLOAD_STUB(tnf, tnf_struct_tag_1, nomod_zero);
981 NO_UNLOAD_STUB(tnf, tnf_allocate, nomod_zero);
982 END_MODULE(tnf);
983 #endif
986 * Clustering: stubs for bootstrapping.
988 #ifndef CL_BOOTSTRAP
989 MODULE(cl_bootstrap,misc);
990 NO_UNLOAD_WSTUB(cl_bootstrap, clboot_modload, nomod_minus_one);
991 NO_UNLOAD_WSTUB(cl_bootstrap, clboot_loadrootmodules, nomod_zero);
992 NO_UNLOAD_WSTUB(cl_bootstrap, clboot_rootconf, nomod_zero);
993 NO_UNLOAD_WSTUB(cl_bootstrap, clboot_mountroot, nomod_zero);
994 NO_UNLOAD_WSTUB(cl_bootstrap, clconf_init, nomod_zero);
995 NO_UNLOAD_WSTUB(cl_bootstrap, clconf_get_nodeid, nomod_zero);
996 NO_UNLOAD_WSTUB(cl_bootstrap, clconf_maximum_nodeid, nomod_zero);
997 NO_UNLOAD_WSTUB(cl_bootstrap, cluster, nomod_zero);
998 END_MODULE(cl_bootstrap);
999 #endif
1002 * Clustering: stubs for cluster infrastructure.
1004 #ifndef CL_COMM_MODULE
1005 MODULE(cl_comm,misc);
1006 NO_UNLOAD_STUB(cl_comm, cladmin, nomod_minus_one);
1007 END_MODULE(cl_comm);
1008 #endif
1011 * Clustering: stubs for global file system operations.
1013 #ifndef PXFS_MODULE
1014 MODULE(pxfs,fs);
1015 NO_UNLOAD_WSTUB(pxfs, clpxfs_aio_read, nomod_zero);
1016 NO_UNLOAD_WSTUB(pxfs, clpxfs_aio_write, nomod_zero);
1017 NO_UNLOAD_WSTUB(pxfs, cl_flk_state_transition_notify, nomod_zero);
1018 END_MODULE(pxfs);
1019 #endif
1022 * Stubs for PCI configurator module (misc/pcicfg).
1024 #ifndef PCICFG_MODULE
1025 MODULE(pcicfg,misc);
1026 STUB(pcicfg, pcicfg_configure, 0);
1027 STUB(pcicfg, pcicfg_unconfigure, 0);
1028 END_MODULE(pcicfg);
1029 #endif
1031 #ifndef PCIHP_MODULE
1032 MODULE(pcihp,misc);
1033 WSTUB(pcihp, pcihp_init, nomod_minus_one);
1034 WSTUB(pcihp, pcihp_uninit, nomod_minus_one);
1035 WSTUB(pcihp, pcihp_info, nomod_minus_one);
1036 WSTUB(pcihp, pcihp_get_cb_ops, nomod_zero);
1037 END_MODULE(pcihp);
1038 #endif
1041 * Stubs for kernel cryptographic framework module (misc/kcf).
1043 #ifndef KCF_MODULE
1044 MODULE(kcf,misc);
1045 NO_UNLOAD_STUB(kcf, crypto_mech2id, nomod_minus_one);
1046 NO_UNLOAD_STUB(kcf, crypto_register_provider, nomod_minus_one);
1047 NO_UNLOAD_STUB(kcf, crypto_unregister_provider, nomod_minus_one);
1048 NO_UNLOAD_STUB(kcf, crypto_provider_notification, nomod_minus_one);
1049 NO_UNLOAD_STUB(kcf, crypto_op_notification, nomod_minus_one);
1050 NO_UNLOAD_STUB(kcf, crypto_kmflag, nomod_minus_one);
1051 NO_UNLOAD_STUB(kcf, crypto_digest, nomod_minus_one);
1052 NO_UNLOAD_STUB(kcf, crypto_digest_prov, nomod_minus_one);
1053 NO_UNLOAD_STUB(kcf, crypto_digest_init, nomod_minus_one);
1054 NO_UNLOAD_STUB(kcf, crypto_digest_init_prov, nomod_minus_one);
1055 NO_UNLOAD_STUB(kcf, crypto_digest_update, nomod_minus_one);
1056 NO_UNLOAD_STUB(kcf, crypto_digest_final, nomod_minus_one);
1057 NO_UNLOAD_STUB(kcf, crypto_digest_key_prov, nomod_minus_one);
1058 NO_UNLOAD_STUB(kcf, crypto_encrypt, nomod_minus_one);
1059 NO_UNLOAD_STUB(kcf, crypto_encrypt_prov, nomod_minus_one);
1060 NO_UNLOAD_STUB(kcf, crypto_encrypt_init, nomod_minus_one);
1061 NO_UNLOAD_STUB(kcf, crypto_encrypt_init_prov, nomod_minus_one);
1062 NO_UNLOAD_STUB(kcf, crypto_encrypt_update, nomod_minus_one);
1063 NO_UNLOAD_STUB(kcf, crypto_encrypt_final, nomod_minus_one);
1064 NO_UNLOAD_STUB(kcf, crypto_decrypt, nomod_minus_one);
1065 NO_UNLOAD_STUB(kcf, crypto_decrypt_prov, nomod_minus_one);
1066 NO_UNLOAD_STUB(kcf, crypto_decrypt_init, nomod_minus_one);
1067 NO_UNLOAD_STUB(kcf, crypto_decrypt_init_prov, nomod_minus_one);
1068 NO_UNLOAD_STUB(kcf, crypto_decrypt_update, nomod_minus_one);
1069 NO_UNLOAD_STUB(kcf, crypto_decrypt_final, nomod_minus_one);
1070 NO_UNLOAD_STUB(kcf, crypto_get_all_mech_info, nomod_minus_one);
1071 NO_UNLOAD_STUB(kcf, crypto_key_check, nomod_minus_one);
1072 NO_UNLOAD_STUB(kcf, crypto_key_check_prov, nomod_minus_one);
1073 NO_UNLOAD_STUB(kcf, crypto_key_derive, nomod_minus_one);
1074 NO_UNLOAD_STUB(kcf, crypto_key_generate, nomod_minus_one);
1075 NO_UNLOAD_STUB(kcf, crypto_key_generate_pair, nomod_minus_one);
1076 NO_UNLOAD_STUB(kcf, crypto_key_unwrap, nomod_minus_one);
1077 NO_UNLOAD_STUB(kcf, crypto_key_wrap, nomod_minus_one);
1078 NO_UNLOAD_STUB(kcf, crypto_mac, nomod_minus_one);
1079 NO_UNLOAD_STUB(kcf, crypto_mac_prov, nomod_minus_one);
1080 NO_UNLOAD_STUB(kcf, crypto_mac_verify, nomod_minus_one);
1081 NO_UNLOAD_STUB(kcf, crypto_mac_verify_prov, nomod_minus_one);
1082 NO_UNLOAD_STUB(kcf, crypto_mac_init, nomod_minus_one);
1083 NO_UNLOAD_STUB(kcf, crypto_mac_init_prov, nomod_minus_one);
1084 NO_UNLOAD_STUB(kcf, crypto_mac_update, nomod_minus_one);
1085 NO_UNLOAD_STUB(kcf, crypto_mac_final, nomod_minus_one);
1086 NO_UNLOAD_STUB(kcf, crypto_mac_decrypt, nomod_minus_one);
1087 NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_prov, nomod_minus_one);
1088 NO_UNLOAD_STUB(kcf, crypto_mac_verify_decrypt, nomod_minus_one);
1089 NO_UNLOAD_STUB(kcf, crypto_mac_verify_decrypt_prov, nomod_minus_one);
1090 NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_init, nomod_minus_one);
1091 NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_init_prov, nomod_minus_one);
1092 NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_update, nomod_minus_one);
1093 NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_final, nomod_minus_one);
1094 NO_UNLOAD_STUB(kcf, crypto_object_copy, nomod_minus_one);
1095 NO_UNLOAD_STUB(kcf, crypto_object_create, nomod_minus_one);
1096 NO_UNLOAD_STUB(kcf, crypto_object_destroy, nomod_minus_one);
1097 NO_UNLOAD_STUB(kcf, crypto_object_find_final, nomod_minus_one);
1098 NO_UNLOAD_STUB(kcf, crypto_object_find_init, nomod_minus_one);
1099 NO_UNLOAD_STUB(kcf, crypto_object_find, nomod_minus_one);
1100 NO_UNLOAD_STUB(kcf, crypto_object_get_attribute_value, nomod_minus_one);
1101 NO_UNLOAD_STUB(kcf, crypto_object_get_size, nomod_minus_one);
1102 NO_UNLOAD_STUB(kcf, crypto_object_set_attribute_value, nomod_minus_one);
1103 NO_UNLOAD_STUB(kcf, crypto_session_close, nomod_minus_one);
1104 NO_UNLOAD_STUB(kcf, crypto_session_login, nomod_minus_one);
1105 NO_UNLOAD_STUB(kcf, crypto_session_logout, nomod_minus_one);
1106 NO_UNLOAD_STUB(kcf, crypto_session_open, nomod_minus_one);
1107 NO_UNLOAD_STUB(kcf, crypto_encrypt_mac, nomod_minus_one);
1108 NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_prov, nomod_minus_one);
1109 NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_init, nomod_minus_one);
1110 NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_init_prov, nomod_minus_one);
1111 NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_update, nomod_minus_one);
1112 NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_final, nomod_minus_one);
1113 NO_UNLOAD_STUB(kcf, crypto_create_ctx_template, nomod_minus_one);
1114 NO_UNLOAD_STUB(kcf, crypto_destroy_ctx_template, nomod_minus_one);
1115 NO_UNLOAD_STUB(kcf, crypto_get_mech_list, nomod_minus_one);
1116 NO_UNLOAD_STUB(kcf, crypto_free_mech_list, nomod_minus_one);
1117 NO_UNLOAD_STUB(kcf, crypto_cancel_req, nomod_minus_one);
1118 NO_UNLOAD_STUB(kcf, crypto_cancel_ctx, nomod_minus_one);
1119 NO_UNLOAD_STUB(kcf, crypto_bufcall_alloc, nomod_minus_one);
1120 NO_UNLOAD_STUB(kcf, crypto_bufcall_free, nomod_minus_one);
1121 NO_UNLOAD_STUB(kcf, crypto_bufcall, nomod_minus_one);
1122 NO_UNLOAD_STUB(kcf, crypto_unbufcall, nomod_minus_one);
1123 NO_UNLOAD_STUB(kcf, crypto_notify_events, nomod_minus_one);
1124 NO_UNLOAD_STUB(kcf, crypto_unnotify_events, nomod_minus_one);
1125 NO_UNLOAD_STUB(kcf, crypto_get_provider, nomod_minus_one);
1126 NO_UNLOAD_STUB(kcf, crypto_get_provinfo, nomod_minus_one);
1127 NO_UNLOAD_STUB(kcf, crypto_release_provider, nomod_minus_one);
1128 NO_UNLOAD_STUB(kcf, crypto_sign, nomod_minus_one);
1129 NO_UNLOAD_STUB(kcf, crypto_sign_prov, nomod_minus_one);
1130 NO_UNLOAD_STUB(kcf, crypto_sign_init, nomod_minus_one);
1131 NO_UNLOAD_STUB(kcf, crypto_sign_init_prov, nomod_minus_one);
1132 NO_UNLOAD_STUB(kcf, crypto_sign_update, nomod_minus_one);
1133 NO_UNLOAD_STUB(kcf, crypto_sign_final, nomod_minus_one);
1134 NO_UNLOAD_STUB(kcf, crypto_sign_recover, nomod_minus_one);
1135 NO_UNLOAD_STUB(kcf, crypto_sign_recover_prov, nomod_minus_one);
1136 NO_UNLOAD_STUB(kcf, crypto_sign_recover_init_prov, nomod_minus_one);
1137 NO_UNLOAD_STUB(kcf, crypto_verify, nomod_minus_one);
1138 NO_UNLOAD_STUB(kcf, crypto_verify_prov, nomod_minus_one);
1139 NO_UNLOAD_STUB(kcf, crypto_verify_init, nomod_minus_one);
1140 NO_UNLOAD_STUB(kcf, crypto_verify_init_prov, nomod_minus_one);
1141 NO_UNLOAD_STUB(kcf, crypto_verify_update, nomod_minus_one);
1142 NO_UNLOAD_STUB(kcf, crypto_verify_final, nomod_minus_one);
1143 NO_UNLOAD_STUB(kcf, crypto_verify_recover, nomod_minus_one);
1144 NO_UNLOAD_STUB(kcf, crypto_verify_recover_prov, nomod_minus_one);
1145 NO_UNLOAD_STUB(kcf, crypto_verify_recover_init_prov, nomod_minus_one);
1146 NO_UNLOAD_STUB(kcf, random_add_entropy, nomod_minus_one);
1147 NO_UNLOAD_STUB(kcf, random_add_pseudo_entropy, nomod_minus_one);
1148 NO_UNLOAD_STUB(kcf, random_get_blocking_bytes, nomod_minus_one);
1149 NO_UNLOAD_STUB(kcf, random_get_bytes, nomod_minus_one);
1150 NO_UNLOAD_STUB(kcf, random_get_pseudo_bytes, nomod_minus_one);
1151 END_MODULE(kcf);
1152 #endif
1155 * Stubs for sha1. A non-unloadable module.
1157 #ifndef SHA1_MODULE
1158 MODULE(sha1,crypto);
1159 NO_UNLOAD_STUB(sha1, SHA1Init, nomod_void);
1160 NO_UNLOAD_STUB(sha1, SHA1Update, nomod_void);
1161 NO_UNLOAD_STUB(sha1, SHA1Final, nomod_void);
1162 END_MODULE(sha1);
1163 #endif
1166 * The following stubs are used by the mac module.
1167 * Since dld already depends on mac, these
1168 * stubs are needed to avoid circular dependencies.
1170 #ifndef DLD_MODULE
1171 MODULE(dld,drv);
1172 STUB(dld, dld_init_ops, nomod_void);
1173 STUB(dld, dld_fini_ops, nomod_void);
1174 STUB(dld, dld_autopush, nomod_minus_one);
1175 STUB(dld, dld_devt_to_instance, nomod_minus_one);
1176 STUB(dld, dld_ioc_register, nomod_einval);
1177 STUB(dld, dld_ioc_unregister, nomod_void);
1178 END_MODULE(dld);
1179 #endif
1182 * The following stubs are used by the mac module.
1183 * Since dls already depends on mac, these
1184 * stubs are needed to avoid circular dependencies.
1186 #ifndef DLS_MODULE
1187 MODULE(dls,misc);
1188 STUB(dls, dls_devnet_mac, nomod_zero);
1189 STUB(dls, dls_devnet_hold_tmp, nomod_einval);
1190 STUB(dls, dls_devnet_rele_tmp, nomod_void);
1191 STUB(dls, dls_devnet_hold_link, nomod_einval);
1192 STUB(dls, dls_devnet_rele_link, nomod_void);
1193 STUB(dls, dls_devnet_prop_task_wait, nomod_void);
1194 STUB(dls, dls_mgmt_get_linkid, nomod_einval);
1195 STUB(dls, dls_devnet_macname2linkid, nomod_einval);
1196 STUB(dls, dls_mgmt_get_linkinfo, nomod_einval);
1197 END_MODULE(dls);
1198 #endif
1200 #ifndef SOFTMAC_MODULE
1201 MODULE(softmac,drv);
1202 STUB(softmac, softmac_hold_device, nomod_einval);
1203 STUB(softmac, softmac_rele_device, nomod_void);
1204 STUB(softmac, softmac_recreate, nomod_void);
1205 END_MODULE(softmac);
1206 #endif
1208 #ifndef IPTUN_MODULE
1209 MODULE(iptun,drv);
1210 STUB(iptun, iptun_create, nomod_einval);
1211 STUB(iptun, iptun_delete, nomod_einval);
1212 STUB(iptun, iptun_set_policy, nomod_einval);
1213 END_MODULE(iptun);
1214 #endif
1217 * Stubs for dcopy, for Intel IOAT KAPIs
1219 #ifndef DCOPY_MODULE
1220 MODULE(dcopy,misc);
1221 NO_UNLOAD_STUB(dcopy, dcopy_query, nomod_minus_one);
1222 NO_UNLOAD_STUB(dcopy, dcopy_query_channel, nomod_minus_one);
1223 NO_UNLOAD_STUB(dcopy, dcopy_alloc, nomod_minus_one);
1224 NO_UNLOAD_STUB(dcopy, dcopy_free, nomod_minus_one);
1225 NO_UNLOAD_STUB(dcopy, dcopy_cmd_alloc, nomod_minus_one);
1226 NO_UNLOAD_STUB(dcopy, dcopy_cmd_free, nomod_void);
1227 NO_UNLOAD_STUB(dcopy, dcopy_cmd_post, nomod_minus_one);
1228 NO_UNLOAD_STUB(dcopy, dcopy_cmd_poll, nomod_minus_one);
1229 END_MODULE(dcopy);
1230 #endif
1232 #ifndef IPNET_MODULE
1233 MODULE(ipnet,drv);
1234 STUB(ipnet, ipnet_if_getdev, nomod_zero);
1235 STUB(ipnet, ipnet_walk_if, nomod_zero);
1236 END_MODULE(ipnet);
1237 #endif
1240 * Stubs for kernel socket, for iscsi
1242 #ifndef KSOCKET_MODULE
1243 MODULE(ksocket, misc);
1244 NO_UNLOAD_STUB(ksocket, ksocket_setsockopt, nomod_minus_one);
1245 NO_UNLOAD_STUB(ksocket, ksocket_getsockopt, nomod_minus_one);
1246 NO_UNLOAD_STUB(ksocket, ksocket_getpeername, nomod_minus_one);
1247 NO_UNLOAD_STUB(ksocket, ksocket_getsockname, nomod_minus_one);
1248 NO_UNLOAD_STUB(ksocket, ksocket_socket, nomod_minus_one);
1249 NO_UNLOAD_STUB(ksocket, ksocket_bind, nomod_minus_one);
1250 NO_UNLOAD_STUB(ksocket, ksocket_listen, nomod_minus_one);
1251 NO_UNLOAD_STUB(ksocket, ksocket_accept, nomod_minus_one);
1252 NO_UNLOAD_STUB(ksocket, ksocket_connect, nomod_minus_one);
1253 NO_UNLOAD_STUB(ksocket, ksocket_recv, nomod_minus_one);
1254 NO_UNLOAD_STUB(ksocket, ksocket_recvfrom, nomod_minus_one);
1255 NO_UNLOAD_STUB(ksocket, ksocket_recvmsg, nomod_minus_one);
1256 NO_UNLOAD_STUB(ksocket, ksocket_send, nomod_minus_one);
1257 NO_UNLOAD_STUB(ksocket, ksocket_sendto, nomod_minus_one);
1258 NO_UNLOAD_STUB(ksocket, ksocket_sendmsg, nomod_minus_one);
1259 NO_UNLOAD_STUB(ksocket, ksocket_ioctl, nomod_minus_one);
1260 NO_UNLOAD_STUB(ksocket, ksocket_setcallbacks, nomod_minus_one);
1261 NO_UNLOAD_STUB(ksocket, ksocket_hold, nomod_minus_one);
1262 NO_UNLOAD_STUB(ksocket, ksocket_rele, nomod_minus_one);
1263 NO_UNLOAD_STUB(ksocket, ksocket_shutdown, nomod_minus_one);
1264 NO_UNLOAD_STUB(ksocket, ksocket_close, nomod_minus_one);
1265 END_MODULE(ksocket);
1266 #endif
1269 * Stubs for elfexec
1271 #ifndef ELFEXEC_MODULE
1272 MODULE(elfexec,exec);
1273 STUB(elfexec, elfexec, nomod_einval);
1274 STUB(elfexec, elf32exec, nomod_einval);
1275 STUB(elfexec, mapexec_brand, nomod_einval);
1276 STUB(elfexec, mapexec32_brand, nomod_einval);
1277 END_MODULE(elfexec);
1278 #endif
1280 ! this is just a marker for the area of text that contains stubs
1281 .seg ".text"
1282 .global stubs_end
1283 stubs_end:
1286 #endif /* lint */