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]
23 * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
24 * Copyright (c) 2017, Joyent, Inc. All rights reserved.
27 #include <sys/asm_linkage.h>
31 char stubs_base
[1], stubs_end
[1];
38 * !!!!!!!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!!!!!!
40 * For functions which are either STUBs or WSTUBs the actual function
41 * need to be called using 'call' instruction because of preamble and
42 * postamble (i.e mod_hold_stub and mod_release_stub) around the
43 * function call. Due to this we need to copy arguments for the
44 * real function. On Intel we can't tell how many arguments are there
45 * on the stack so we have to either copy everything between esp and
46 * ebp or copy only a fixed number (MAXNARG - defined here) for
47 * all the stub functions. Currently we are using MAXNARG (it is a kludge
50 * NOTE: Use NO_UNLOAD_STUBs if the module is NOT unloadable once it is
56 * WARNING: there is no check for forgetting to write END_MODULE,
57 * and if you do, the kernel will most likely crash. Be careful
59 * This file assumes that all of the contributions to the data segment
60 * will be contiguous in the output file, even though they are separated
61 * by pieces of text. This is safe for all assemblers I know of now...
65 * This file uses ansi preprocessor features:
67 * 1. #define mac(a) extra_ ## a --> mac(x) expands to extra_a
68 * The old version of this is
69 * #define mac(a) extra_/.*.*./a
70 * but this fails if the argument has spaces "mac ( x )"
71 * (Ignore the dots above, I had to put them in to keep this a comment.)
73 * 2. #define mac(a) #a --> mac(x) expands to "x"
77 * For some reason, the 5.0 preprocessor isn't happy with the above usage.
78 * For now, we're not using these ansi features.
80 * The reason is that "the 5.0 ANSI preprocessor" is built into the compiler
81 * and is a tokenizing preprocessor. This means, when confronted by something
82 * other than C token generation rules, strange things occur. In this case,
83 * when confronted by an assembly file, it would turn the token ".globl" into
84 * two tokens "." and "globl". For this reason, the traditional, non-ANSI
85 * preprocessor is used on assembly files.
87 * It would be desirable to have a non-tokenizing cpp (accp?) to use for this.
91 * This file contains the stubs routines for modules which can be autoloaded.
97 * See the 'struct mod_modinfo' definition to see what this declaration
98 * is trying to achieve here.
100 #define MODULE(module,namespace) \
102 module
/**/_modname
: \
103 .string "namespace/module"; \
104 SET_SIZE
(module
/**/_modname
); \
106 .globl module/**/_modinfo; \
107 .type module/**/_modinfo, @object; \
108 module
/**/_modinfo
: \
109 .quad module/**/_modname; \
110 .quad 0 /* storage for modctl pointer */
112 /* then mod_stub_info structures follow until a mods_func_adr is 0 */
114 /* this puts a 0 where the next mods_func_adr would be */
115 #define END_MODULE(module) \
119 SET_SIZE
(module
/**/_modinfo
)
122 * The data section in the stub_common macro is the
123 * mod_stub_info structure for the stub function
126 #define STUB_COMMON(module, fcnname, install_fcn, retfcn, weak) \
128 leaq fcnname
/**/_info
(%rip
), %rax; \
129 cmpl $
0, MODS_FLAG
(%rax
);
/* weak? */ \
130 je stubs_common_code;
/* not weak */ \
131 testb $MODS_INSTALLED
, MODS_FLAG
(%rax
);
/* installed? */ \
132 jne stubs_common_code;
/* yes, do the mod_hold */ \
133 jmp
*MODS_RETFCN
(%rax
);
/* no, jump to retfcn */ \
137 .type fcnname/**/_info, @object; \
139 .quad install_fcn; /* 0 */ \
140 .quad module/**/_modinfo; /* 0x8 */ \
141 .quad fcnname; /* 0x10 */ \
142 .quad retfcn; /* 0x18 */ \
143 .long weak; /* 0x20 */ \
144 SET_SIZE
(fcnname
/**/_info
)
146 #define STUB_NO_UNLOADABLE(module, fcnname, install_fcn, retfcn, weak) \
148 leaq fcnname
/**/_info
(%rip
), %rax; \
149 testb $MODS_INSTALLED
, MODS_FLAG
(%rax
);
/* installed? */ \
151 jmp
*(%rax
);
/* yes, jump to install_fcn */ \
152 5: testb $MODS_WEAK
, MODS_FLAG
(%rax
);
/* weak? */ \
153 je stubs_common_code;
/* no, do mod load */ \
154 jmp
*MODS_RETFCN
(%rax
);
/* yes, jump to retfcn */ \
158 .type fcnname/**/_info, @object; \
160 .quad install_fcn; /* 0 */ \
161 .quad module/**/_modinfo; /* 0x8 */ \
162 .quad fcnname; /* 0x10 */ \
163 .quad retfcn; /* 0x18 */ \
164 .long weak; /* 0x20 */ \
165 SET_SIZE
(fcnname
/**/_info
)
168 * We branch here with the fcnname_info pointer in %rax
170 ENTRY_NP
(stubs_common_code
)
172 .globl mod_release_stub
176 movq
%r15, (%rsp
) /* (caller saved) */
177 movq
%rax
, %r15 /* stash the fcnname_info pointer */
179 * save incoming register arguments
187 /* (next 4 args, if any, are already on the stack above %rbp) */
189 call mod_hold_stub
/* mod_hold_stub(mod_stub_info *) */
190 cmpl $
-1, %eax
/* error? */
192 movq
0x18(%r15), %rax
198 * copy MAXNARG == 10 incoming arguments
212 * saved %rip 0x18(%rsp)
213 * saved %rbp 0x10(%rsp)
215 * saved %r15 0x0(%rsp)
217 movl $MAXNARG
- 6 + 3, %r11d
218 pushq
(%rsp
, %r11, 8)
219 pushq
(%rsp
, %r11, 8)
220 pushq
(%rsp
, %r11, 8)
221 pushq
(%rsp
, %r11, 8)
222 call
*(%r15) /* call the stub fn(arg, ..) */
223 addq $
0x20, %rsp
/* pop off last 4 args */
224 pushq
%rax
/* save any return values */
227 call mod_release_stub
/* release hold on module */
228 popq
%rdx
/* restore return values */
234 SET_SIZE
(stubs_common_code
)
236 #elif defined(__i386)
239 * See the 'struct mod_modinfo' definition to see what this declaration
240 * is trying to achieve here.
242 #define MODULE(module,namespace) \
244 module
/**/_modname
: \
245 .string "namespace/module"; \
246 SET_SIZE
(module
/**/_modname
); \
248 .globl module/**/_modinfo; \
249 .type module/**/_modinfo, @object; \
250 module
/**/_modinfo
: \
251 .long module/**/_modname; \
252 .long 0 /* storage for modctl pointer */
254 /* then mod_stub_info structures follow until a mods_func_adr is 0 */
256 /* this puts a 0 where the next mods_func_adr would be */
257 #define END_MODULE(module) \
261 SET_SIZE
(module
/**/_modinfo
)
264 * The data section in the stub_common macro is the
265 * mod_stub_info structure for the stub function
269 * The flag MODS_INSTALLED is stored in the stub data and is used to
270 * indicate if a module is installed and initialized. This flag is used
271 * instead of the mod_stub_info->mods_modinfo->mod_installed flag
272 * to minimize the number of pointer de-references for each function
273 * call (and also to avoid possible TLB misses which could be induced
274 * by dereferencing these pointers.)
277 #define STUB_COMMON(module, fcnname, install_fcn, retfcn, weak) \
279 leal fcnname
/**/_info
, %eax; \
280 cmpl $
0, MODS_FLAG
(%eax
);
/* weak? */ \
281 je stubs_common_code;
/* not weak */ \
282 testb $MODS_INSTALLED
, MODS_FLAG
(%eax
);
/* installed? */ \
283 jne stubs_common_code;
/* yes, do the mod_hold */ \
284 jmp
*MODS_RETFCN
(%eax
);
/* no, just jump to retfcn */ \
288 .type fcnname/**/_info, @object; \
291 .long module/**/_modinfo; \
295 SET_SIZE
(fcnname
/**/_info
)
297 #define STUB_NO_UNLOADABLE(module, fcnname, install_fcn, retfcn, weak) \
299 leal fcnname
/**/_info
, %eax; \
300 testb $MODS_INSTALLED
, MODS_FLAG
(%eax
);
/* installed? */ \
302 jmp
*(%eax
);
/* yes, just jump to install_fcn */ \
303 5: testb $MODS_WEAK
, MODS_FLAG
(%eax
);
/* weak? */ \
304 je stubs_common_code;
/* no, do mod load */ \
305 jmp
*MODS_RETFCN
(%eax
);
/* yes, just jump to retfcn */ \
309 .type fcnname/**/_info, @object; \
311 .long install_fcn; /* 0 */ \
312 .long module/**/_modinfo; /* 0x4 */ \
313 .long fcnname; /* 0x8 */ \
314 .long retfcn; /* 0xc */ \
315 .long weak; /* 0x10 */ \
316 SET_SIZE
(fcnname
/**/_info
)
319 * We branch here with the fcnname_info pointer in %eax
321 ENTRY_NP
(stubs_common_code
)
323 .globl mod_release_stub
325 movl
%eax
, %esi
/ save the info pointer
327 call mod_hold_stub
/ mod_hold_stub
(mod_stub_info
*)
329 cmpl $
-1, %eax
/ error?
331 movl MODS_RETFCN
(%esi
), %eax
333 popl
%esi
/ yes
, return error
(panic?
)
336 movl $MAXNARG+
1, %ecx
337 / copy incoming arguments
338 pushl
(%esp
, %ecx
, 4) / push MAXNARG times
339 pushl
(%esp
, %ecx
, 4)
340 pushl
(%esp
, %ecx
, 4)
341 pushl
(%esp
, %ecx
, 4)
342 pushl
(%esp
, %ecx
, 4)
343 pushl
(%esp
, %ecx
, 4)
344 pushl
(%esp
, %ecx
, 4)
345 pushl
(%esp
, %ecx
, 4)
346 pushl
(%esp
, %ecx
, 4)
347 pushl
(%esp
, %ecx
, 4)
348 call
*(%esi
) / call the stub function
(arg1
,arg2
, ...)
349 add $_MUL
(MAXNARG
, 4), %esp
/ pop off MAXNARG arguments
350 pushl
%eax
/ save any return values from the stub
353 call mod_release_stub
/ release hold on module
355 popl
%edx
/ restore return values
360 SET_SIZE
(stubs_common_code
)
364 #define STUB(module, fcnname, retfcn) \
365 STUB_COMMON
(module
, fcnname
, mod_hold_stub
, retfcn
, 0)
368 * "weak stub", don't load on account of this call
370 #define WSTUB(module, fcnname, retfcn) \
371 STUB_COMMON
(module
, fcnname
, retfcn
, retfcn
, MODS_WEAK
)
374 * "non-unloadable stub", don't bother 'holding' module if it's already loaded
375 * since the module cannot be unloaded.
377 * User *MUST* guarantee the module is not unloadable (no _fini routine).
379 #define NO_UNLOAD_STUB(module, fcnname, retfcn) \
380 STUB_NO_UNLOADABLE
(module
, fcnname
, retfcn
, retfcn
, MODS_NOUNLOAD
)
383 * "weak stub" for non-unloadable module, don't load on account of this call
385 #define NO_UNLOAD_WSTUB(module, fcnname, retfcn) \
386 STUB_NO_UNLOADABLE
(module
, fcnname
, retfcn
, retfcn
, MODS_NOUNLOAD|MODS_WEAK
)
389 * this is just a marker for the beginning area of text that contains stubs
395 * WARNING WARNING WARNING!!!!!!
397 * On the MODULE macro you MUST NOT use any spaces!!! They are
398 * significant to the preprocessor. With ansi c there is a way around this
399 * but for some reason (yet to be investigated) ansi didn't work for other
402 * When zero is used as the return function, the system will call
403 * panic if the stub can't be resolved.
407 * Stubs for devfs. A non-unloadable module.
412 NO_UNLOAD_STUB
(devfs
, devfs_clean
, nomod_minus_one
);
413 NO_UNLOAD_STUB
(devfs
, devfs_lookupname
, nomod_minus_one
);
414 NO_UNLOAD_STUB
(devfs
, devfs_walk
, nomod_minus_one
);
415 NO_UNLOAD_STUB
(devfs
, devfs_devpolicy
, nomod_minus_one
);
416 NO_UNLOAD_STUB
(devfs
, devfs_reset_perm
, nomod_minus_one
);
417 NO_UNLOAD_STUB
(devfs
, devfs_remdrv_cleanup
, nomod_minus_one
);
423 NO_UNLOAD_STUB
(dev
, sdev_modctl_readdir
, nomod_minus_one
);
424 NO_UNLOAD_STUB
(dev
, sdev_modctl_readdir_free
, nomod_minus_one
);
425 NO_UNLOAD_STUB
(dev
, devname_filename_register
, nomod_minus_one
);
426 NO_UNLOAD_STUB
(dev
, sdev_modctl_devexists
, nomod_minus_one
);
427 NO_UNLOAD_STUB
(dev
, devname_profile_update
, nomod_minus_one
);
428 NO_UNLOAD_STUB
(dev
, sdev_devstate_change
, nomod_minus_one
);
429 NO_UNLOAD_STUB
(dev
, devvt_getvnodeops
, nomod_minus_one
);
430 NO_UNLOAD_STUB
(dev
, devpts_getvnodeops
, nomod_zero
);
435 * Stubs for specfs. A non-unloadable module.
440 NO_UNLOAD_STUB
(specfs
, common_specvp
, nomod_zero
);
441 NO_UNLOAD_STUB
(specfs
, makectty
, nomod_zero
);
442 NO_UNLOAD_STUB
(specfs
, makespecvp
, nomod_zero
);
443 NO_UNLOAD_STUB
(specfs
, smark
, nomod_zero
);
444 NO_UNLOAD_STUB
(specfs
, spec_segmap
, nomod_einval
);
445 NO_UNLOAD_STUB
(specfs
, specfind
, nomod_zero
);
446 NO_UNLOAD_STUB
(specfs
, specvp
, nomod_zero
);
447 NO_UNLOAD_STUB
(specfs
, devi_stillreferenced
, nomod_zero
);
448 NO_UNLOAD_STUB
(specfs
, spec_getvnodeops
, nomod_zero
);
449 NO_UNLOAD_STUB
(specfs
, spec_char_map
, nomod_zero
);
450 NO_UNLOAD_STUB
(specfs
, specvp_devfs
, nomod_zero
);
451 NO_UNLOAD_STUB
(specfs
, spec_assoc_vp_with_devi
, nomod_void
);
452 NO_UNLOAD_STUB
(specfs
, spec_hold_devi_by_vp
, nomod_zero
);
453 NO_UNLOAD_STUB
(specfs
, spec_snode_walk
, nomod_void
);
454 NO_UNLOAD_STUB
(specfs
, spec_devi_open_count
, nomod_minus_one
);
455 NO_UNLOAD_STUB
(specfs
, spec_is_clone
, nomod_zero
);
456 NO_UNLOAD_STUB
(specfs
, spec_is_selfclone
, nomod_zero
);
457 NO_UNLOAD_STUB
(specfs
, spec_fence_snode
, nomod_minus_one
);
458 NO_UNLOAD_STUB
(specfs
, spec_unfence_snode
, nomod_minus_one
);
464 * Stubs for sockfs. A non-unloadable module.
468 NO_UNLOAD_STUB
(sockfs
, so_socket
, nomod_zero
);
469 NO_UNLOAD_STUB
(sockfs
, so_socketpair
, nomod_zero
);
470 NO_UNLOAD_STUB
(sockfs
, bind
, nomod_zero
);
471 NO_UNLOAD_STUB
(sockfs
, listen
, nomod_zero
);
472 NO_UNLOAD_STUB
(sockfs
, accept
, nomod_zero
);
473 NO_UNLOAD_STUB
(sockfs
, connect
, nomod_zero
);
474 NO_UNLOAD_STUB
(sockfs
, shutdown
, nomod_zero
);
475 NO_UNLOAD_STUB
(sockfs
, recv
, nomod_zero
);
476 NO_UNLOAD_STUB
(sockfs
, recvfrom
, nomod_zero
);
477 NO_UNLOAD_STUB
(sockfs
, recvmsg
, nomod_zero
);
478 NO_UNLOAD_STUB
(sockfs
, send
, nomod_zero
);
479 NO_UNLOAD_STUB
(sockfs
, sendmsg
, nomod_zero
);
480 NO_UNLOAD_STUB
(sockfs
, sendto
, nomod_zero
);
481 #ifdef _SYSCALL32_IMPL
482 NO_UNLOAD_STUB
(sockfs
, recv32
, nomod_zero
);
483 NO_UNLOAD_STUB
(sockfs
, recvfrom32
, nomod_zero
);
484 NO_UNLOAD_STUB
(sockfs
, send32
, nomod_zero
);
485 NO_UNLOAD_STUB
(sockfs
, sendto32
, nomod_zero
);
486 #endif /* _SYSCALL32_IMPL */
487 NO_UNLOAD_STUB
(sockfs
, getpeername
, nomod_zero
);
488 NO_UNLOAD_STUB
(sockfs
, getsockname
, nomod_zero
);
489 NO_UNLOAD_STUB
(sockfs
, getsockopt
, nomod_zero
);
490 NO_UNLOAD_STUB
(sockfs
, setsockopt
, nomod_zero
);
491 NO_UNLOAD_STUB
(sockfs
, sockconfig
, nomod_zero
);
492 NO_UNLOAD_STUB
(sockfs
, sock_getmsg
, nomod_zero
);
493 NO_UNLOAD_STUB
(sockfs
, sock_putmsg
, nomod_zero
);
494 NO_UNLOAD_STUB
(sockfs
, sosendfile64
, nomod_zero
);
495 NO_UNLOAD_STUB
(sockfs
, snf_segmap
, nomod_einval
);
496 NO_UNLOAD_STUB
(sockfs
, sock_getfasync
, nomod_zero
);
497 NO_UNLOAD_STUB
(sockfs
, nl7c_sendfilev
, nomod_zero
);
498 NO_UNLOAD_STUB
(sockfs
, sotpi_sototpi
, nomod_zero
);
499 NO_UNLOAD_STUB
(sockfs
, socket_sendmblk
, nomod_zero
);
500 NO_UNLOAD_STUB
(sockfs
, socket_setsockopt
, nomod_zero
);
508 #ifndef IPSECAH_MODULE
510 WSTUB
(ipsecah
, ipsec_construct_inverse_acquire
, nomod_zero
);
511 WSTUB
(ipsecah
, sadb_acquire
, nomod_zero
);
512 WSTUB
(ipsecah
, ipsecah_algs_changed
, nomod_zero
);
513 WSTUB
(ipsecah
, sadb_alg_update
, nomod_zero
);
514 WSTUB
(ipsecah
, sadb_unlinkassoc
, nomod_zero
);
515 WSTUB
(ipsecah
, sadb_insertassoc
, nomod_zero
);
516 WSTUB
(ipsecah
, ipsecah_in_assocfailure
, nomod_zero
);
517 WSTUB
(ipsecah
, sadb_set_lpkt
, nomod_zero
);
518 WSTUB
(ipsecah
, ipsecah_icmp_error
, nomod_zero
);
522 #ifndef IPSECESP_MODULE
523 MODULE
(ipsecesp
,drv
);
524 WSTUB
(ipsecesp
, ipsecesp_fill_defs
, nomod_zero
);
525 WSTUB
(ipsecesp
, ipsecesp_algs_changed
, nomod_zero
);
526 WSTUB
(ipsecesp
, ipsecesp_in_assocfailure
, nomod_zero
);
527 WSTUB
(ipsecesp
, ipsecesp_init_funcs
, nomod_zero
);
528 WSTUB
(ipsecesp
, ipsecesp_icmp_error
, nomod_zero
);
529 WSTUB
(ipsecesp
, ipsecesp_send_keepalive
, nomod_zero
);
530 END_MODULE
(ipsecesp
);
533 #ifndef KEYSOCK_MODULE
534 MODULE
(keysock
, drv
);
535 WSTUB
(keysock
, keysock_spdsock_wput_iocdata
, nomod_void
);
536 WSTUB
(keysock
, keysock_plumb_ipsec
, nomod_zero
);
537 WSTUB
(keysock
, keysock_extended_reg
, nomod_zero
);
538 WSTUB
(keysock
, keysock_next_seq
, nomod_zero
);
542 #ifndef SPDSOCK_MODULE
544 WSTUB
(spdsock
, spdsock_update_pending_algs
, nomod_zero
);
549 * Stubs for nfs common code.
550 * XXX nfs_getvnodeops should go away with removal of kludge in vnode.c
554 WSTUB
(nfs
, nfs_getvnodeops
, nomod_zero
);
555 WSTUB
(nfs
, nfs_perror
, nomod_zero
);
556 WSTUB
(nfs
, nfs_cmn_err
, nomod_zero
);
557 WSTUB
(nfs
, clcleanup_zone
, nomod_zero
);
558 WSTUB
(nfs
, clcleanup4_zone
, nomod_zero
);
564 * Stubs for nfs_dlboot (diskless booting).
566 #ifndef NFS_DLBOOT_MODULE
567 MODULE
(nfs_dlboot
,misc
);
568 STUB
(nfs_dlboot
, mount_root
, nomod_minus_one
);
569 STUB
(nfs_dlboot
, dhcpinit
, nomod_minus_one
);
570 END_MODULE
(nfs_dlboot
);
574 * Stubs for nfs server-only code.
576 #ifndef NFSSRV_MODULE
578 STUB
(nfssrv
, exportfs
, nomod_minus_one
);
579 STUB
(nfssrv
, nfs_getfh
, nomod_minus_one
);
580 STUB
(nfssrv
, nfsl_flush
, nomod_minus_one
);
581 STUB
(nfssrv
, rfs4_check_delegated
, nomod_zero
);
582 STUB
(nfssrv
, mountd_args
, nomod_minus_one
);
583 NO_UNLOAD_STUB
(nfssrv
, rdma_start
, nomod_zero
);
584 NO_UNLOAD_STUB
(nfssrv
, nfs_svc
, nomod_zero
);
589 * Stubs for kernel lock manager.
593 NO_UNLOAD_STUB
(klmmod
, lm_svc
, nomod_zero
);
594 NO_UNLOAD_STUB
(klmmod
, lm_shutdown
, nomod_zero
);
595 NO_UNLOAD_STUB
(klmmod
, lm_unexport
, nomod_zero
);
596 NO_UNLOAD_STUB
(klmmod
, lm_cprresume
, nomod_zero
);
597 NO_UNLOAD_STUB
(klmmod
, lm_cprsuspend
, nomod_zero
);
598 NO_UNLOAD_STUB
(klmmod
, lm_safelock
, nomod_zero
);
599 NO_UNLOAD_STUB
(klmmod
, lm_safemap
, nomod_zero
);
600 NO_UNLOAD_STUB
(klmmod
, lm_has_sleep
, nomod_zero
);
601 NO_UNLOAD_STUB
(klmmod
, lm_free_config
, nomod_zero
);
602 NO_UNLOAD_STUB
(klmmod
, lm_vp_active
, nomod_zero
);
603 NO_UNLOAD_STUB
(klmmod
, lm_get_sysid
, nomod_zero
);
604 NO_UNLOAD_STUB
(klmmod
, lm_rel_sysid
, nomod_zero
);
605 NO_UNLOAD_STUB
(klmmod
, lm_alloc_sysidt
, nomod_minus_one
);
606 NO_UNLOAD_STUB
(klmmod
, lm_free_sysidt
, nomod_zero
);
607 NO_UNLOAD_STUB
(klmmod
, lm_sysidt
, nomod_minus_one
);
611 #ifndef KLMOPS_MODULE
613 NO_UNLOAD_STUB
(klmops
, lm_frlock
, nomod_zero
);
614 NO_UNLOAD_STUB
(klmops
, lm4_frlock
, nomod_zero
);
615 NO_UNLOAD_STUB
(klmops
, lm_shrlock
, nomod_zero
);
616 NO_UNLOAD_STUB
(klmops
, lm4_shrlock
, nomod_zero
);
617 NO_UNLOAD_STUB
(klmops
, lm_nlm_dispatch
, nomod_zero
);
618 NO_UNLOAD_STUB
(klmops
, lm_nlm4_dispatch
, nomod_zero
);
619 NO_UNLOAD_STUB
(klmops
, lm_nlm_reclaim
, nomod_zero
);
620 NO_UNLOAD_STUB
(klmops
, lm_nlm4_reclaim
, nomod_zero
);
621 NO_UNLOAD_STUB
(klmops
, lm_register_lock_locally
, nomod_zero
);
626 * Stubs for kernel TLI module
627 * XXX currently we never allow this to unload
631 NO_UNLOAD_STUB
(tlimod
, t_kopen
, nomod_minus_one
);
632 NO_UNLOAD_STUB
(tlimod
, t_kunbind
, nomod_zero
);
633 NO_UNLOAD_STUB
(tlimod
, t_kadvise
, nomod_zero
);
634 NO_UNLOAD_STUB
(tlimod
, t_krcvudata
, nomod_zero
);
635 NO_UNLOAD_STUB
(tlimod
, t_ksndudata
, nomod_zero
);
636 NO_UNLOAD_STUB
(tlimod
, t_kalloc
, nomod_zero
);
637 NO_UNLOAD_STUB
(tlimod
, t_kbind
, nomod_zero
);
638 NO_UNLOAD_STUB
(tlimod
, t_kclose
, nomod_zero
);
639 NO_UNLOAD_STUB
(tlimod
, t_kspoll
, nomod_zero
);
640 NO_UNLOAD_STUB
(tlimod
, t_kfree
, nomod_zero
);
645 * Stubs for kernel RPC module
646 * XXX currently we never allow this to unload
649 MODULE
(rpcmod
,strmod
);
650 NO_UNLOAD_STUB
(rpcmod
, clnt_tli_kcreate
, nomod_minus_one
);
651 NO_UNLOAD_STUB
(rpcmod
, svc_tli_kcreate
, nomod_minus_one
);
652 NO_UNLOAD_STUB
(rpcmod
, bindresvport
, nomod_minus_one
);
653 NO_UNLOAD_STUB
(rpcmod
, rdma_register_mod
, nomod_minus_one
);
654 NO_UNLOAD_STUB
(rpcmod
, rdma_unregister_mod
, nomod_minus_one
);
655 NO_UNLOAD_STUB
(rpcmod
, svc_queuereq
, nomod_minus_one
);
656 NO_UNLOAD_STUB
(rpcmod
, clist_add
, nomod_minus_one
);
665 STUB
(des
, cbc_crypt
, nomod_zero
);
666 STUB
(des
, ecb_crypt
, nomod_zero
);
667 STUB
(des
, _des_crypt
, nomod_zero
);
672 * Stubs for procfs. A non-unloadable module.
676 NO_UNLOAD_STUB
(procfs
, prfree
, nomod_zero
);
677 NO_UNLOAD_STUB
(procfs
, prexit
, nomod_zero
);
678 NO_UNLOAD_STUB
(procfs
, prlwpfree
, nomod_zero
);
679 NO_UNLOAD_STUB
(procfs
, prlwpexit
, nomod_zero
);
680 NO_UNLOAD_STUB
(procfs
, prinvalidate
, nomod_zero
);
681 NO_UNLOAD_STUB
(procfs
, prnsegs
, nomod_zero
);
682 NO_UNLOAD_STUB
(procfs
, prgetcred
, nomod_zero
);
683 NO_UNLOAD_STUB
(procfs
, prgetpriv
, nomod_zero
);
684 NO_UNLOAD_STUB
(procfs
, prgetprivsize
, nomod_zero
);
685 NO_UNLOAD_STUB
(procfs
, prgetsecflags
, nomod_zero
);
686 NO_UNLOAD_STUB
(procfs
, prgetstatus
, nomod_zero
);
687 NO_UNLOAD_STUB
(procfs
, prgetlwpstatus
, nomod_zero
);
688 NO_UNLOAD_STUB
(procfs
, prgetpsinfo
, nomod_zero
);
689 NO_UNLOAD_STUB
(procfs
, prgetlwpsinfo
, nomod_zero
);
690 NO_UNLOAD_STUB
(procfs
, oprgetstatus
, nomod_zero
);
691 NO_UNLOAD_STUB
(procfs
, oprgetpsinfo
, nomod_zero
);
692 #ifdef _SYSCALL32_IMPL
693 NO_UNLOAD_STUB
(procfs
, prgetstatus32
, nomod_zero
);
694 NO_UNLOAD_STUB
(procfs
, prgetlwpstatus32
, nomod_zero
);
695 NO_UNLOAD_STUB
(procfs
, prgetpsinfo32
, nomod_zero
);
696 NO_UNLOAD_STUB
(procfs
, prgetlwpsinfo32
, nomod_zero
);
697 NO_UNLOAD_STUB
(procfs
, oprgetstatus32
, nomod_zero
);
698 NO_UNLOAD_STUB
(procfs
, oprgetpsinfo32
, nomod_zero
);
699 NO_UNLOAD_STUB
(procfs
, psinfo_kto32
, nomod_zero
);
700 NO_UNLOAD_STUB
(procfs
, lwpsinfo_kto32
, nomod_zero
);
701 #endif /* _SYSCALL32_IMPL */
702 NO_UNLOAD_STUB
(procfs
, prnotify
, nomod_zero
);
703 NO_UNLOAD_STUB
(procfs
, prexecstart
, nomod_zero
);
704 NO_UNLOAD_STUB
(procfs
, prexecend
, nomod_zero
);
705 NO_UNLOAD_STUB
(procfs
, prrelvm
, nomod_zero
);
706 NO_UNLOAD_STUB
(procfs
, prbarrier
, nomod_zero
);
707 NO_UNLOAD_STUB
(procfs
, estimate_msacct
, nomod_zero
);
708 NO_UNLOAD_STUB
(procfs
, pr_getprot
, nomod_zero
);
709 NO_UNLOAD_STUB
(procfs
, pr_getprot_done
, nomod_zero
);
710 NO_UNLOAD_STUB
(procfs
, pr_getsegsize
, nomod_zero
);
711 NO_UNLOAD_STUB
(procfs
, pr_isobject
, nomod_zero
);
712 NO_UNLOAD_STUB
(procfs
, pr_isself
, nomod_zero
);
713 NO_UNLOAD_STUB
(procfs
, pr_allstopped
, nomod_zero
);
714 NO_UNLOAD_STUB
(procfs
, pr_free_watched_pages
, nomod_zero
);
723 NO_UNLOAD_STUB
(fifofs
, fifovp
, nomod_zero
);
724 NO_UNLOAD_STUB
(fifofs
, fifo_getinfo
, nomod_zero
);
725 NO_UNLOAD_STUB
(fifofs
, fifo_vfastoff
, nomod_zero
);
732 * This is needed to support the old quotactl system call.
733 * When the old sysent stuff goes away, this will need to be revisited.
737 STUB
(ufs
, quotactl
, nomod_minus_one
);
746 STUB
(zfs
, dsl_prop_get
, nomod_minus_one
);
747 STUB
(zfs
, spa_boot_init
, nomod_minus_one
);
748 STUB
(zfs
, zfs_prop_to_name
, nomod_zero
);
757 STUB
(dcfs
, decompvp
, 0);
764 #ifndef NAMEFS_MODULE
766 STUB
(namefs
, nm_unmountall
, 0);
775 NO_UNLOAD_STUB
(SDC
, sysdc_thread_enter
, nomod_zero
);
782 #ifndef TS_DPTBL_MODULE
783 MODULE
(TS_DPTBL
,sched
);
784 STUB
(TS_DPTBL
, ts_getdptbl
, 0);
785 STUB
(TS_DPTBL
, ts_getkmdpris
, 0);
786 STUB
(TS_DPTBL
, ts_getmaxumdpri
, 0);
787 END_MODULE
(TS_DPTBL
);
793 #ifndef RT_DPTBL_MODULE
794 MODULE
(RT_DPTBL
,sched
);
795 STUB
(RT_DPTBL
, rt_getdptbl
, 0);
796 END_MODULE
(RT_DPTBL
);
802 #ifndef IA_DPTBL_MODULE
803 MODULE
(IA_DPTBL
,sched
);
804 STUB
(IA_DPTBL
, ia_getdptbl
, nomod_zero
);
805 STUB
(IA_DPTBL
, ia_getkmdpris
, nomod_zero
);
806 STUB
(IA_DPTBL
, ia_getmaxumdpri
, nomod_zero
);
807 END_MODULE
(IA_DPTBL
);
811 * Stubs for FSS scheduler
815 WSTUB
(FSS
, fss_allocbuf
, nomod_zero
);
816 WSTUB
(FSS
, fss_freebuf
, nomod_zero
);
817 WSTUB
(FSS
, fss_changeproj
, nomod_zero
);
818 WSTUB
(FSS
, fss_changepset
, nomod_zero
);
825 #ifndef FX_DPTBL_MODULE
826 MODULE
(FX_DPTBL
,sched
);
827 STUB
(FX_DPTBL
, fx_getdptbl
, 0);
828 STUB
(FX_DPTBL
, fx_getmaxumdpri
, 0);
829 END_MODULE
(FX_DPTBL
);
835 #ifndef BOOTDEV_MODULE
836 MODULE
(bootdev
,misc
);
837 STUB
(bootdev
, i_promname_to_devname
, 0);
838 STUB
(bootdev
, i_convert_boot_device_name
, 0);
843 * stubs for strplumb...
845 #ifndef STRPLUMB_MODULE
846 MODULE
(strplumb
,misc
);
847 STUB
(strplumb
, strplumb
, 0);
848 STUB
(strplumb
, strplumb_load
, 0);
849 STUB
(strplumb
, strplumb_get_netdev_path
, 0);
850 END_MODULE
(strplumb
);
854 * Stubs for console configuration module
856 #ifndef CONSCONFIG_MODULE
857 MODULE
(consconfig
,misc
);
858 STUB
(consconfig
, consconfig
, 0);
859 STUB
(consconfig
, consconfig_get_usb_kb_path
, 0);
860 STUB
(consconfig
, consconfig_get_usb_ms_path
, 0);
861 STUB
(consconfig
, consconfig_get_plat_fbpath
, 0);
862 STUB
(consconfig
, consconfig_console_is_ready
, 0);
863 END_MODULE
(consconfig
);
867 * Stubs for accounting.
869 #ifndef SYSACCT_MODULE
871 NO_UNLOAD_WSTUB
(sysacct
, acct
, nomod_zero
);
872 NO_UNLOAD_WSTUB
(sysacct
, acct_fs_in_use
, nomod_zero
);
877 * Stubs for semaphore routines. sem.c
879 #ifndef SEMSYS_MODULE
881 NO_UNLOAD_WSTUB
(semsys
, semexit
, nomod_zero
);
886 * Stubs for shmem routines. shm.c
888 #ifndef SHMSYS_MODULE
890 NO_UNLOAD_WSTUB
(shmsys
, shmexit
, nomod_zero
);
891 NO_UNLOAD_WSTUB
(shmsys
, shmfork
, nomod_zero
);
892 NO_UNLOAD_WSTUB
(shmsys
, shmgetid
, nomod_minus_one
);
901 NO_UNLOAD_WSTUB
(doorfs
, door_slam
, nomod_zero
);
902 NO_UNLOAD_WSTUB
(doorfs
, door_exit
, nomod_zero
);
903 NO_UNLOAD_WSTUB
(doorfs
, door_revoke_all
, nomod_zero
);
904 NO_UNLOAD_WSTUB
(doorfs
, door_fork
, nomod_zero
);
905 NO_UNLOAD_STUB
(doorfs
, door_upcall
, nomod_einval
);
906 NO_UNLOAD_STUB
(doorfs
, door_ki_create
, nomod_einval
);
907 NO_UNLOAD_STUB
(doorfs
, door_ki_open
, nomod_einval
);
908 NO_UNLOAD_STUB
(doorfs
, door_ki_lookup
, nomod_zero
);
909 NO_UNLOAD_WSTUB
(doorfs
, door_ki_upcall
, nomod_einval
);
910 NO_UNLOAD_WSTUB
(doorfs
, door_ki_upcall_limited
, nomod_einval
);
911 NO_UNLOAD_WSTUB
(doorfs
, door_ki_hold
, nomod_zero
);
912 NO_UNLOAD_WSTUB
(doorfs
, door_ki_rele
, nomod_zero
);
913 NO_UNLOAD_WSTUB
(doorfs
, door_ki_info
, nomod_einval
);
922 WSTUB
(md5
, MD5Init
, nomod_zero
);
923 WSTUB
(md5
, MD5Update
, nomod_zero
);
924 WSTUB
(md5
, MD5Final
, nomod_zero
);
933 STUB
(idmap
, kidmap_batch_getgidbysid
, nomod_zero
);
934 STUB
(idmap
, kidmap_batch_getpidbysid
, nomod_zero
);
935 STUB
(idmap
, kidmap_batch_getsidbygid
, nomod_zero
);
936 STUB
(idmap
, kidmap_batch_getsidbyuid
, nomod_zero
);
937 STUB
(idmap
, kidmap_batch_getuidbysid
, nomod_zero
);
938 STUB
(idmap
, kidmap_get_create
, nomod_zero
);
939 STUB
(idmap
, kidmap_get_destroy
, nomod_zero
);
940 STUB
(idmap
, kidmap_get_mappings
, nomod_zero
);
941 STUB
(idmap
, kidmap_getgidbysid
, nomod_zero
);
942 STUB
(idmap
, kidmap_getpidbysid
, nomod_zero
);
943 STUB
(idmap
, kidmap_getsidbygid
, nomod_zero
);
944 STUB
(idmap
, kidmap_getsidbyuid
, nomod_zero
);
945 STUB
(idmap
, kidmap_getuidbysid
, nomod_zero
);
946 STUB
(idmap
, idmap_get_door
, nomod_einval
);
947 STUB
(idmap
, idmap_unreg_dh
, nomod_einval
);
948 STUB
(idmap
, idmap_reg_dh
, nomod_einval
);
949 STUB
(idmap
, idmap_purge_cache
, nomod_einval
);
954 * Stubs for auditing.
956 #ifndef C2AUDIT_MODULE
958 NO_UNLOAD_STUB
(c2audit
, audit_init_module
, nomod_zero
);
959 NO_UNLOAD_STUB
(c2audit
, audit_start
, nomod_zero
);
960 NO_UNLOAD_STUB
(c2audit
, audit_finish
, nomod_zero
);
961 NO_UNLOAD_STUB
(c2audit
, audit
, nomod_zero
);
962 NO_UNLOAD_STUB
(c2audit
, auditdoor
, nomod_zero
);
963 NO_UNLOAD_STUB
(c2audit
, audit_closef
, nomod_zero
);
964 NO_UNLOAD_STUB
(c2audit
, audit_core_start
, nomod_zero
);
965 NO_UNLOAD_STUB
(c2audit
, audit_core_finish
, nomod_zero
);
966 NO_UNLOAD_STUB
(c2audit
, audit_strputmsg
, nomod_zero
);
967 NO_UNLOAD_STUB
(c2audit
, audit_savepath
, nomod_zero
);
968 NO_UNLOAD_STUB
(c2audit
, audit_anchorpath
, nomod_zero
);
969 NO_UNLOAD_STUB
(c2audit
, audit_exit
, nomod_zero
);
970 NO_UNLOAD_STUB
(c2audit
, audit_exec
, nomod_zero
);
971 NO_UNLOAD_STUB
(c2audit
, audit_symlink
, nomod_zero
);
972 NO_UNLOAD_STUB
(c2audit
, audit_symlink_create
, nomod_zero
);
973 NO_UNLOAD_STUB
(c2audit
, audit_vncreate_start
, nomod_zero
);
974 NO_UNLOAD_STUB
(c2audit
, audit_vncreate_finish
, nomod_zero
);
975 NO_UNLOAD_STUB
(c2audit
, audit_enterprom
, nomod_zero
);
976 NO_UNLOAD_STUB
(c2audit
, audit_exitprom
, nomod_zero
);
977 NO_UNLOAD_STUB
(c2audit
, audit_chdirec
, nomod_zero
);
978 NO_UNLOAD_STUB
(c2audit
, audit_setf
, nomod_zero
);
979 NO_UNLOAD_STUB
(c2audit
, audit_sock
, nomod_zero
);
980 NO_UNLOAD_STUB
(c2audit
, audit_strgetmsg
, nomod_zero
);
981 NO_UNLOAD_STUB
(c2audit
, audit_ipc
, nomod_zero
);
982 NO_UNLOAD_STUB
(c2audit
, audit_ipcget
, nomod_zero
);
983 NO_UNLOAD_STUB
(c2audit
, audit_fdsend
, nomod_zero
);
984 NO_UNLOAD_STUB
(c2audit
, audit_fdrecv
, nomod_zero
);
985 NO_UNLOAD_STUB
(c2audit
, audit_priv
, nomod_zero
);
986 NO_UNLOAD_STUB
(c2audit
, audit_setppriv
, nomod_zero
);
987 NO_UNLOAD_STUB
(c2audit
, audit_psecflags
, nomod_zero
);
988 NO_UNLOAD_STUB
(c2audit
, audit_devpolicy
, nomod_zero
);
989 NO_UNLOAD_STUB
(c2audit
, audit_setfsat_path
, nomod_zero
);
990 NO_UNLOAD_STUB
(c2audit
, audit_cryptoadm
, nomod_zero
);
991 NO_UNLOAD_STUB
(c2audit
, audit_kssl
, nomod_zero
);
992 NO_UNLOAD_STUB
(c2audit
, audit_pf_policy
, nomod_zero
);
993 NO_UNLOAD_STUB
(c2audit
, au_doormsg
, nomod_zero
);
994 NO_UNLOAD_STUB
(c2audit
, au_uwrite
, nomod_zero
);
995 NO_UNLOAD_STUB
(c2audit
, au_to_arg32
, nomod_zero
);
996 NO_UNLOAD_STUB
(c2audit
, au_free_rec
, nomod_zero
);
1001 * Stubs for kernel rpc security service module
1003 #ifndef RPCSEC_MODULE
1004 MODULE
(rpcsec
,misc
);
1005 NO_UNLOAD_STUB
(rpcsec
, sec_clnt_revoke
, nomod_zero
);
1006 NO_UNLOAD_STUB
(rpcsec
, authkern_create
, nomod_zero
);
1007 NO_UNLOAD_STUB
(rpcsec
, sec_svc_msg
, nomod_zero
);
1008 NO_UNLOAD_STUB
(rpcsec
, sec_svc_control
, nomod_zero
);
1013 * Stubs for rpc RPCSEC_GSS security service module
1015 #ifndef RPCSEC_GSS_MODULE
1016 MODULE
(rpcsec_gss
,misc
);
1017 NO_UNLOAD_STUB
(rpcsec_gss
, __svcrpcsec_gss
, nomod_zero
);
1018 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_getcred
, nomod_zero
);
1019 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_set_callback
, nomod_zero
);
1020 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_secget
, nomod_zero
);
1021 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_secfree
, nomod_zero
);
1022 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_seccreate
, nomod_zero
);
1023 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_set_defaults
, nomod_zero
);
1024 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_revauth
, nomod_zero
);
1025 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_secpurge
, nomod_zero
);
1026 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_cleanup
, nomod_zero
);
1027 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_get_versions
, nomod_zero
);
1028 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_max_data_length
, nomod_zero
);
1029 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_svc_max_data_length
, nomod_zero
);
1030 NO_UNLOAD_STUB
(rpcsec_gss
, rpc_gss_get_service_type
, nomod_zero
);
1031 END_MODULE
(rpcsec_gss
);
1035 * Stubs for PCI configurator module (misc/pcicfg).
1037 #ifndef PCICFG_MODULE
1038 MODULE
(pcicfg
,misc
);
1039 STUB
(pcicfg
, pcicfg_configure
, 0);
1040 STUB
(pcicfg
, pcicfg_unconfigure
, 0);
1045 * Stubs for pcieb nexus driver.
1047 #ifndef PCIEB_MODULE
1049 STUB
(pcieb
, pcieb_intel_error_workaround
, 0);
1053 #ifndef IWSCN_MODULE
1055 STUB
(iwscn
, srpop
, 0);
1060 * Stubs for checkpoint-resume module
1069 * Stubs for kernel probes (tnf module). Not unloadable.
1073 NO_UNLOAD_STUB
(tnf
, tnf_ref32_1
, nomod_zero
);
1074 NO_UNLOAD_STUB
(tnf
, tnf_string_1
, nomod_zero
);
1075 NO_UNLOAD_STUB
(tnf
, tnf_opaque_array_1
, nomod_zero
);
1076 NO_UNLOAD_STUB
(tnf
, tnf_struct_tag_1
, nomod_zero
);
1077 NO_UNLOAD_STUB
(tnf
, tnf_allocate
, nomod_zero
);
1082 * Stubs for i86hvm bootstraping
1084 #ifndef HVM_BOOTSTRAP
1085 MODULE
(hvm_bootstrap
,misc
);
1086 NO_UNLOAD_STUB
(hvm_bootstrap
, hvmboot_rootconf
, nomod_zero
);
1087 END_MODULE
(hvm_bootstrap
);
1091 * Clustering: stubs for bootstrapping.
1093 #ifndef CL_BOOTSTRAP
1094 MODULE
(cl_bootstrap
,misc
);
1095 NO_UNLOAD_WSTUB
(cl_bootstrap
, clboot_modload
, nomod_minus_one
);
1096 NO_UNLOAD_WSTUB
(cl_bootstrap
, clboot_loadrootmodules
, nomod_zero
);
1097 NO_UNLOAD_WSTUB
(cl_bootstrap
, clboot_rootconf
, nomod_zero
);
1098 NO_UNLOAD_WSTUB
(cl_bootstrap
, clboot_mountroot
, nomod_zero
);
1099 NO_UNLOAD_WSTUB
(cl_bootstrap
, clconf_init
, nomod_zero
);
1100 NO_UNLOAD_WSTUB
(cl_bootstrap
, clconf_get_nodeid
, nomod_zero
);
1101 NO_UNLOAD_WSTUB
(cl_bootstrap
, clconf_maximum_nodeid
, nomod_zero
);
1102 NO_UNLOAD_WSTUB
(cl_bootstrap
, cluster
, nomod_zero
);
1103 END_MODULE
(cl_bootstrap
);
1107 * Clustering: stubs for cluster infrastructure.
1109 #ifndef CL_COMM_MODULE
1110 MODULE
(cl_comm
,misc
);
1111 NO_UNLOAD_STUB
(cl_comm
, cladmin
, nomod_minus_one
);
1112 END_MODULE
(cl_comm
);
1116 * Clustering: stubs for global file system operations.
1120 NO_UNLOAD_WSTUB
(pxfs
, clpxfs_aio_read
, nomod_zero
);
1121 NO_UNLOAD_WSTUB
(pxfs
, clpxfs_aio_write
, nomod_zero
);
1122 NO_UNLOAD_WSTUB
(pxfs
, cl_flk_state_transition_notify
, nomod_zero
);
1127 * Stubs for kernel cryptographic framework module (misc/kcf).
1131 NO_UNLOAD_STUB
(kcf
, crypto_mech2id
, nomod_minus_one
);
1132 NO_UNLOAD_STUB
(kcf
, crypto_register_provider
, nomod_minus_one
);
1133 NO_UNLOAD_STUB
(kcf
, crypto_unregister_provider
, nomod_minus_one
);
1134 NO_UNLOAD_STUB
(kcf
, crypto_provider_notification
, nomod_minus_one
);
1135 NO_UNLOAD_STUB
(kcf
, crypto_op_notification
, nomod_minus_one
);
1136 NO_UNLOAD_STUB
(kcf
, crypto_kmflag
, nomod_minus_one
);
1137 NO_UNLOAD_STUB
(kcf
, crypto_digest
, nomod_minus_one
);
1138 NO_UNLOAD_STUB
(kcf
, crypto_digest_prov
, nomod_minus_one
);
1139 NO_UNLOAD_STUB
(kcf
, crypto_digest_init
, nomod_minus_one
);
1140 NO_UNLOAD_STUB
(kcf
, crypto_digest_init_prov
, nomod_minus_one
);
1141 NO_UNLOAD_STUB
(kcf
, crypto_digest_update
, nomod_minus_one
);
1142 NO_UNLOAD_STUB
(kcf
, crypto_digest_final
, nomod_minus_one
);
1143 NO_UNLOAD_STUB
(kcf
, crypto_digest_key_prov
, nomod_minus_one
);
1144 NO_UNLOAD_STUB
(kcf
, crypto_encrypt
, nomod_minus_one
);
1145 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_prov
, nomod_minus_one
);
1146 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_init
, nomod_minus_one
);
1147 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_init_prov
, nomod_minus_one
);
1148 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_update
, nomod_minus_one
);
1149 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_final
, nomod_minus_one
);
1150 NO_UNLOAD_STUB
(kcf
, crypto_decrypt
, nomod_minus_one
);
1151 NO_UNLOAD_STUB
(kcf
, crypto_decrypt_prov
, nomod_minus_one
);
1152 NO_UNLOAD_STUB
(kcf
, crypto_decrypt_init
, nomod_minus_one
);
1153 NO_UNLOAD_STUB
(kcf
, crypto_decrypt_init_prov
, nomod_minus_one
);
1154 NO_UNLOAD_STUB
(kcf
, crypto_decrypt_update
, nomod_minus_one
);
1155 NO_UNLOAD_STUB
(kcf
, crypto_decrypt_final
, nomod_minus_one
);
1156 NO_UNLOAD_STUB
(kcf
, crypto_get_all_mech_info
, nomod_minus_one
);
1157 NO_UNLOAD_STUB
(kcf
, crypto_key_check
, nomod_minus_one
);
1158 NO_UNLOAD_STUB
(kcf
, crypto_key_check_prov
, nomod_minus_one
);
1159 NO_UNLOAD_STUB
(kcf
, crypto_key_derive
, nomod_minus_one
);
1160 NO_UNLOAD_STUB
(kcf
, crypto_key_generate
, nomod_minus_one
);
1161 NO_UNLOAD_STUB
(kcf
, crypto_key_generate_pair
, nomod_minus_one
);
1162 NO_UNLOAD_STUB
(kcf
, crypto_key_unwrap
, nomod_minus_one
);
1163 NO_UNLOAD_STUB
(kcf
, crypto_key_wrap
, nomod_minus_one
);
1164 NO_UNLOAD_STUB
(kcf
, crypto_mac
, nomod_minus_one
);
1165 NO_UNLOAD_STUB
(kcf
, crypto_mac_prov
, nomod_minus_one
);
1166 NO_UNLOAD_STUB
(kcf
, crypto_mac_verify
, nomod_minus_one
);
1167 NO_UNLOAD_STUB
(kcf
, crypto_mac_verify_prov
, nomod_minus_one
);
1168 NO_UNLOAD_STUB
(kcf
, crypto_mac_init
, nomod_minus_one
);
1169 NO_UNLOAD_STUB
(kcf
, crypto_mac_init_prov
, nomod_minus_one
);
1170 NO_UNLOAD_STUB
(kcf
, crypto_mac_update
, nomod_minus_one
);
1171 NO_UNLOAD_STUB
(kcf
, crypto_mac_final
, nomod_minus_one
);
1172 NO_UNLOAD_STUB
(kcf
, crypto_mac_decrypt
, nomod_minus_one
);
1173 NO_UNLOAD_STUB
(kcf
, crypto_mac_decrypt_prov
, nomod_minus_one
);
1174 NO_UNLOAD_STUB
(kcf
, crypto_mac_verify_decrypt
, nomod_minus_one
);
1175 NO_UNLOAD_STUB
(kcf
, crypto_mac_verify_decrypt_prov
, nomod_minus_one
);
1176 NO_UNLOAD_STUB
(kcf
, crypto_mac_decrypt_init
, nomod_minus_one
);
1177 NO_UNLOAD_STUB
(kcf
, crypto_mac_decrypt_init_prov
, nomod_minus_one
);
1178 NO_UNLOAD_STUB
(kcf
, crypto_mac_decrypt_update
, nomod_minus_one
);
1179 NO_UNLOAD_STUB
(kcf
, crypto_mac_decrypt_final
, nomod_minus_one
);
1180 NO_UNLOAD_STUB
(kcf
, crypto_object_copy
, nomod_minus_one
);
1181 NO_UNLOAD_STUB
(kcf
, crypto_object_create
, nomod_minus_one
);
1182 NO_UNLOAD_STUB
(kcf
, crypto_object_destroy
, nomod_minus_one
);
1183 NO_UNLOAD_STUB
(kcf
, crypto_object_find_final
, nomod_minus_one
);
1184 NO_UNLOAD_STUB
(kcf
, crypto_object_find_init
, nomod_minus_one
);
1185 NO_UNLOAD_STUB
(kcf
, crypto_object_find
, nomod_minus_one
);
1186 NO_UNLOAD_STUB
(kcf
, crypto_object_get_attribute_value
, nomod_minus_one
);
1187 NO_UNLOAD_STUB
(kcf
, crypto_object_get_size
, nomod_minus_one
);
1188 NO_UNLOAD_STUB
(kcf
, crypto_object_set_attribute_value
, nomod_minus_one
);
1189 NO_UNLOAD_STUB
(kcf
, crypto_session_close
, nomod_minus_one
);
1190 NO_UNLOAD_STUB
(kcf
, crypto_session_login
, nomod_minus_one
);
1191 NO_UNLOAD_STUB
(kcf
, crypto_session_logout
, nomod_minus_one
);
1192 NO_UNLOAD_STUB
(kcf
, crypto_session_open
, nomod_minus_one
);
1193 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_mac
, nomod_minus_one
);
1194 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_mac_prov
, nomod_minus_one
);
1195 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_mac_init
, nomod_minus_one
);
1196 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_mac_init_prov
, nomod_minus_one
);
1197 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_mac_update
, nomod_minus_one
);
1198 NO_UNLOAD_STUB
(kcf
, crypto_encrypt_mac_final
, nomod_minus_one
);
1199 NO_UNLOAD_STUB
(kcf
, crypto_create_ctx_template
, nomod_minus_one
);
1200 NO_UNLOAD_STUB
(kcf
, crypto_destroy_ctx_template
, nomod_minus_one
);
1201 NO_UNLOAD_STUB
(kcf
, crypto_get_mech_list
, nomod_minus_one
);
1202 NO_UNLOAD_STUB
(kcf
, crypto_free_mech_list
, nomod_minus_one
);
1203 NO_UNLOAD_STUB
(kcf
, crypto_cancel_req
, nomod_minus_one
);
1204 NO_UNLOAD_STUB
(kcf
, crypto_cancel_ctx
, nomod_minus_one
);
1205 NO_UNLOAD_STUB
(kcf
, crypto_bufcall_alloc
, nomod_minus_one
);
1206 NO_UNLOAD_STUB
(kcf
, crypto_bufcall_free
, nomod_minus_one
);
1207 NO_UNLOAD_STUB
(kcf
, crypto_bufcall
, nomod_minus_one
);
1208 NO_UNLOAD_STUB
(kcf
, crypto_unbufcall
, nomod_minus_one
);
1209 NO_UNLOAD_STUB
(kcf
, crypto_notify_events
, nomod_minus_one
);
1210 NO_UNLOAD_STUB
(kcf
, crypto_unnotify_events
, nomod_minus_one
);
1211 NO_UNLOAD_STUB
(kcf
, crypto_get_provider
, nomod_minus_one
);
1212 NO_UNLOAD_STUB
(kcf
, crypto_get_provinfo
, nomod_minus_one
);
1213 NO_UNLOAD_STUB
(kcf
, crypto_release_provider
, nomod_minus_one
);
1214 NO_UNLOAD_STUB
(kcf
, crypto_sign
, nomod_minus_one
);
1215 NO_UNLOAD_STUB
(kcf
, crypto_sign_prov
, nomod_minus_one
);
1216 NO_UNLOAD_STUB
(kcf
, crypto_sign_init
, nomod_minus_one
);
1217 NO_UNLOAD_STUB
(kcf
, crypto_sign_init_prov
, nomod_minus_one
);
1218 NO_UNLOAD_STUB
(kcf
, crypto_sign_update
, nomod_minus_one
);
1219 NO_UNLOAD_STUB
(kcf
, crypto_sign_final
, nomod_minus_one
);
1220 NO_UNLOAD_STUB
(kcf
, crypto_sign_recover
, nomod_minus_one
);
1221 NO_UNLOAD_STUB
(kcf
, crypto_sign_recover_prov
, nomod_minus_one
);
1222 NO_UNLOAD_STUB
(kcf
, crypto_sign_recover_init_prov
, nomod_minus_one
);
1223 NO_UNLOAD_STUB
(kcf
, crypto_verify
, nomod_minus_one
);
1224 NO_UNLOAD_STUB
(kcf
, crypto_verify_prov
, nomod_minus_one
);
1225 NO_UNLOAD_STUB
(kcf
, crypto_verify_init
, nomod_minus_one
);
1226 NO_UNLOAD_STUB
(kcf
, crypto_verify_init_prov
, nomod_minus_one
);
1227 NO_UNLOAD_STUB
(kcf
, crypto_verify_update
, nomod_minus_one
);
1228 NO_UNLOAD_STUB
(kcf
, crypto_verify_final
, nomod_minus_one
);
1229 NO_UNLOAD_STUB
(kcf
, crypto_verify_recover
, nomod_minus_one
);
1230 NO_UNLOAD_STUB
(kcf
, crypto_verify_recover_prov
, nomod_minus_one
);
1231 NO_UNLOAD_STUB
(kcf
, crypto_verify_recover_init_prov
, nomod_minus_one
);
1232 NO_UNLOAD_STUB
(kcf
, random_add_entropy
, nomod_minus_one
);
1233 NO_UNLOAD_STUB
(kcf
, random_add_pseudo_entropy
, nomod_minus_one
);
1234 NO_UNLOAD_STUB
(kcf
, random_get_blocking_bytes
, nomod_minus_one
);
1235 NO_UNLOAD_STUB
(kcf
, random_get_bytes
, nomod_minus_one
);
1236 NO_UNLOAD_STUB
(kcf
, random_get_pseudo_bytes
, nomod_minus_one
);
1241 * Stubs for sha1. A non-unloadable module.
1244 MODULE
(sha1
,crypto
);
1245 NO_UNLOAD_STUB
(sha1
, SHA1Init
, nomod_void
);
1246 NO_UNLOAD_STUB
(sha1
, SHA1Update
, nomod_void
);
1247 NO_UNLOAD_STUB
(sha1
, SHA1Final
, nomod_void
);
1252 * The following stubs are used by the mac module.
1253 * Since dld already depends on mac, these
1254 * stubs are needed to avoid circular dependencies.
1258 STUB
(dld
, dld_init_ops
, nomod_void
);
1259 STUB
(dld
, dld_fini_ops
, nomod_void
);
1260 STUB
(dld
, dld_devt_to_instance
, nomod_minus_one
);
1261 STUB
(dld
, dld_autopush
, nomod_minus_one
);
1262 STUB
(dld
, dld_ioc_register
, nomod_einval
);
1263 STUB
(dld
, dld_ioc_unregister
, nomod_void
);
1268 * The following stubs are used by the mac module.
1269 * Since dls already depends on mac, these
1270 * stubs are needed to avoid circular dependencies.
1274 STUB
(dls
, dls_devnet_mac
, nomod_zero
);
1275 STUB
(dls
, dls_devnet_hold_tmp
, nomod_einval
);
1276 STUB
(dls
, dls_devnet_rele_tmp
, nomod_void
);
1277 STUB
(dls
, dls_devnet_hold_link
, nomod_einval
);
1278 STUB
(dls
, dls_devnet_rele_link
, nomod_void
);
1279 STUB
(dls
, dls_devnet_prop_task_wait
, nomod_void
);
1280 STUB
(dls
, dls_mgmt_get_linkid
, nomod_einval
);
1281 STUB
(dls
, dls_devnet_macname2linkid
, nomod_einval
);
1282 STUB
(dls
, dls_mgmt_get_linkinfo
, nomod_einval
);
1286 #ifndef SOFTMAC_MODULE
1287 MODULE
(softmac
,drv
);
1288 STUB
(softmac
, softmac_hold_device
, nomod_einval
);
1289 STUB
(softmac
, softmac_rele_device
, nomod_void
);
1290 STUB
(softmac
, softmac_recreate
, nomod_void
);
1291 END_MODULE
(softmac
);
1294 #ifndef IPTUN_MODULE
1296 STUB
(iptun
, iptun_create
, nomod_einval
);
1297 STUB
(iptun
, iptun_delete
, nomod_einval
);
1298 STUB
(iptun
, iptun_set_policy
, nomod_void
) ;
1303 * Stubs for dcopy, for Intel IOAT KAPIs
1305 #ifndef DCOPY_MODULE
1307 NO_UNLOAD_STUB
(dcopy
, dcopy_query
, nomod_minus_one
);
1308 NO_UNLOAD_STUB
(dcopy
, dcopy_query_channel
, nomod_minus_one
);
1309 NO_UNLOAD_STUB
(dcopy
, dcopy_alloc
, nomod_minus_one
);
1310 NO_UNLOAD_STUB
(dcopy
, dcopy_free
, nomod_minus_one
);
1311 NO_UNLOAD_STUB
(dcopy
, dcopy_cmd_alloc
, nomod_minus_one
);
1312 NO_UNLOAD_STUB
(dcopy
, dcopy_cmd_free
, nomod_void
);
1313 NO_UNLOAD_STUB
(dcopy
, dcopy_cmd_post
, nomod_minus_one
);
1314 NO_UNLOAD_STUB
(dcopy
, dcopy_cmd_poll
, nomod_minus_one
);
1321 #ifndef ACPICA_MODULE
1322 MODULE
(acpica
,misc
);
1323 NO_UNLOAD_STUB
(acpica
, AcpiOsReadPort
, nomod_minus_one
) ;
1324 NO_UNLOAD_STUB
(acpica
, AcpiOsWritePort
, nomod_minus_one
) ;
1325 NO_UNLOAD_STUB
(acpica
, AcpiInstallNotifyHandler
, nomod_minus_one
) ;
1326 NO_UNLOAD_STUB
(acpica
, AcpiRemoveNotifyHandler
, nomod_minus_one
) ;
1327 NO_UNLOAD_STUB
(acpica
, AcpiEvaluateObject
, nomod_minus_one
) ;
1328 NO_UNLOAD_STUB
(acpica
, AcpiEvaluateObjectTyped
, nomod_minus_one
) ;
1329 NO_UNLOAD_STUB
(acpica
, AcpiWriteBitRegister
, nomod_minus_one
) ;
1330 NO_UNLOAD_STUB
(acpica
, AcpiReadBitRegister
, nomod_minus_one
) ;
1331 NO_UNLOAD_STUB
(acpica
, AcpiOsFree
, nomod_minus_one
) ;
1332 NO_UNLOAD_STUB
(acpica
, acpica_get_handle_cpu
, nomod_minus_one
) ;
1333 NO_UNLOAD_STUB
(acpica
, acpica_get_global_FADT
, nomod_minus_one
) ;
1334 NO_UNLOAD_STUB
(acpica
, acpica_write_cpupm_capabilities
,
1336 NO_UNLOAD_STUB
(acpica
, __acpi_wbinvd
, nomod_minus_one
) ;
1337 NO_UNLOAD_STUB
(acpica
, acpi_reset_system
, nomod_minus_one
) ;
1344 #ifndef ACPIDEV_MODULE
1345 MODULE
(acpidev
,misc
);
1346 NO_UNLOAD_STUB
(acpidev
, acpidev_dr_get_cpu_numa_info
, nomod_minus_one
) ;
1347 NO_UNLOAD_STUB
(acpidev
, acpidev_dr_free_cpu_numa_info
,
1349 END_MODULE
(acpidev
);
1352 #ifndef IPNET_MODULE
1354 STUB
(ipnet
, ipnet_if_getdev
, nomod_zero
);
1355 STUB
(ipnet
, ipnet_walk_if
, nomod_zero
);
1359 #ifndef IOMMULIB_MODULE
1360 MODULE
(iommulib
,misc
);
1361 STUB
(iommulib
, iommulib_nex_close
, nomod_void
);
1362 END_MODULE
(iommulib
);
1366 * Stubs for rootnex nexus driver.
1368 #ifndef ROOTNEX_MODULE
1369 MODULE
(rootnex
,drv
);
1370 STUB
(rootnex
, immu_init
, 0);
1371 STUB
(rootnex
, immu_startup
, 0);
1372 STUB
(rootnex
, immu_physmem_update
, 0);
1373 END_MODULE
(rootnex
);
1377 * Stubs for kernel socket, for iscsi
1379 #ifndef KSOCKET_MODULE
1380 MODULE
(ksocket
, misc
);
1381 NO_UNLOAD_STUB
(ksocket
, ksocket_setsockopt
, nomod_minus_one
);
1382 NO_UNLOAD_STUB
(ksocket
, ksocket_getsockopt
, nomod_minus_one
);
1383 NO_UNLOAD_STUB
(ksocket
, ksocket_getpeername
, nomod_minus_one
);
1384 NO_UNLOAD_STUB
(ksocket
, ksocket_getsockname
, nomod_minus_one
);
1385 NO_UNLOAD_STUB
(ksocket
, ksocket_socket
, nomod_minus_one
);
1386 NO_UNLOAD_STUB
(ksocket
, ksocket_bind
, nomod_minus_one
);
1387 NO_UNLOAD_STUB
(ksocket
, ksocket_listen
, nomod_minus_one
);
1388 NO_UNLOAD_STUB
(ksocket
, ksocket_accept
, nomod_minus_one
);
1389 NO_UNLOAD_STUB
(ksocket
, ksocket_connect
, nomod_minus_one
);
1390 NO_UNLOAD_STUB
(ksocket
, ksocket_recv
, nomod_minus_one
);
1391 NO_UNLOAD_STUB
(ksocket
, ksocket_recvfrom
, nomod_minus_one
);
1392 NO_UNLOAD_STUB
(ksocket
, ksocket_recvmsg
, nomod_minus_one
);
1393 NO_UNLOAD_STUB
(ksocket
, ksocket_send
, nomod_minus_one
);
1394 NO_UNLOAD_STUB
(ksocket
, ksocket_sendto
, nomod_minus_one
);
1395 NO_UNLOAD_STUB
(ksocket
, ksocket_sendmsg
, nomod_minus_one
);
1396 NO_UNLOAD_STUB
(ksocket
, ksocket_ioctl
, nomod_minus_one
);
1397 NO_UNLOAD_STUB
(ksocket
, ksocket_setcallbacks
, nomod_minus_one
);
1398 NO_UNLOAD_STUB
(ksocket
, ksocket_hold
, nomod_minus_one
);
1399 NO_UNLOAD_STUB
(ksocket
, ksocket_rele
, nomod_minus_one
);
1400 NO_UNLOAD_STUB
(ksocket
, ksocket_shutdown
, nomod_minus_one
);
1401 NO_UNLOAD_STUB
(ksocket
, ksocket_close
, nomod_minus_one
);
1402 END_MODULE
(ksocket
);
1408 #ifndef ELFEXEC_MODULE
1409 MODULE
(elfexec
,exec
);
1410 STUB
(elfexec
, elfexec
, nomod_einval
);
1411 STUB
(elfexec
, mapexec_brand
, nomod_einval
);
1412 #if defined(__amd64)
1413 STUB
(elfexec
, elf32exec
, nomod_einval
);
1414 STUB
(elfexec
, mapexec32_brand
, nomod_einval
);
1416 END_MODULE
(elfexec
);
1420 * Stub(s) for APIX module.
1424 WSTUB
(apix
, apix_loaded
, nomod_zero
);
1428 / this is just
a marker for the area of text that contains stubs