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) 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.
32 #include <sys/asm_linkage.h>
36 char stubs_base
[1], stubs_end
[1];
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"
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) \
92 .ascii "namespace/module"; \
95 .global module/**/_modinfo; \
96 .type module/**/_modinfo, #object; \
97 .size module/**/_modinfo, 16; \
100 .word module/**/_modname; \
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) \
143 .word install_fcn; /* 4 */ \
145 .word module/**/_modinfo; /* c */ \
147 .word fcnname; /* 14 */ \
149 .word retfcn; /* 1c */ \
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) \
163 save
%sp
, -SA
(MINFRAME
), %sp;
/* new window */ \
164 set fcnname
/**/_info
, %l5; \
165 ld [%l5
+ MODS_FLAG
], %l1;
/* weak?? */ \
167 be,a 1f;
/* not weak */ \
169 btst MODS_INSTALLED
, %l1;
/* installed?? */ \
170 bne,a,pt
%xcc
, 1f;
/* yes, do mod_hold thing */ \
172 ldn
[%l5
+ MODS_RETFCN
], %g1; \
173 jmp
%g1;
/* no, just jump to retfcn */ \
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; \
182 STUB_DATA
(module
, fcnname
, install_fcn
, retfcn
, weak
)
184 #define STUB_UNLOADABLE(module, fcnname, install_fcn, retfcn, weak) \
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 */ \
192 btst MODS_WEAK
, %l1;
/* weak?? */ \
193 be,a 2f;
/* no, load module */ \
195 ldn
[%l5
+ MODS_RETFCN
], %g1; \
196 1: jmp
%g1;
/* off we go */ \
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; \
205 STUB_DATA
(module
, fcnname
, install_fcn
, retfcn
, weak
)
207 #define SCALL_UNLOADABLE(module, fcnname, install_fcn, retfcn, weak) \
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 */ \
216 jmp
%g1;
/* yes, off we go */ \
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; \
224 STUB_DATA
(module
, fcnname
, install_fcn
, retfcn
, weak
)
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
)
237 sub %l4
, 0x80, %l4
/* skip locals and outs */
239 add %fp
, 0x80, %l1
/* get original sp before save */
241 /* Copy stack frame */
242 ldn
[%l1
+ STACK_BIAS
], %l2
244 stn
%l2
, [%l0
+ STACK_BIAS
]
249 call mod_hold_stub
/* Hold the module */
251 cmp %o0
, -1 /* if error then return error */
254 ldn
[%l5
+ MODS_RETFCN
], %i0
261 mov
%i0
, %o0
/* copy over incoming args, if number of */
262 mov
%i1
, %o1
/* args is > 6 then we copied them above */
266 call
%g1
/* jump to the stub function */
268 mov
%o0
, %i0
/* copy any return values */
270 call mod_release_stub
/* release hold on module */
272 ret
/* return to caller */
274 SET_SIZE
(stubs_common_code
)
276 ! this is just
a marker for the area of text that contains stubs
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
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.
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
);
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
);
325 * Stubs for specfs. A non-unloadable module.
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
);
354 * Stubs for sockfs. A non-unloadable module.
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
);
398 #ifndef IPSECAH_MODULE
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
);
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
);
423 #ifndef KEYSOCK_MODULE
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
);
432 #ifndef SPDSOCK_MODULE
434 WSTUB
(spdsock
, spdsock_update_pending_algs
, nomod_zero
);
439 * Stubs for nfs common code.
440 * XXX nfs_getvnodeops should go away with removal of kludge in vnode.c
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
);
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
);
463 * Stubs for nfs server-only code.
465 #ifndef NFSSRV_MODULE
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
);
478 * Stubs for kernel lock manager.
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
);
500 #ifndef KLMOPS_MODULE
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
);
515 * Stubs for kernel TLI module
516 * XXX currently we never allow this to unload
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
);
534 * Stubs for kernel RPC module
535 * XXX currently we never allow this to unload
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
);
554 STUB
(des
, cbc_crypt
, nomod_zero
);
555 STUB
(des
, ecb_crypt
, nomod_zero
);
556 STUB
(des
, _des_crypt
, nomod_zero
);
561 * Stubs for procfs. A non-unloadable module.
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
);
612 STUB
(fifofs
, fifovp
, 0);
613 STUB
(fifofs
, fifo_getinfo
, 0);
614 STUB
(fifofs
, fifo_vfastoff
, 0);
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.
626 STUB
(ufs
, quotactl
, nomod_minus_one
);
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
);
646 STUB
(dcfs
, decompvp
, 0);
653 #ifndef NAMEFS_MODULE
655 STUB
(namefs
, nm_unmountall
, 0);
664 NO_UNLOAD_STUB
(SDC
, sysdc_thread_enter
, nomod_zero
);
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
);
682 #ifndef RT_DPTBL_MODULE
683 MODULE
(RT_DPTBL
,sched
);
684 STUB
(RT_DPTBL
, rt_getdptbl
, 0);
685 END_MODULE
(RT_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
);
700 * Stubs for FSS scheduler
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
);
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
);
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
);
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);
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
);
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
);
768 * Stubs for zs (uart) module
772 STUB
(zs
, zsgetspeed
, 0);
777 * Stubs for accounting.
779 #ifndef SYSACCT_MODULE
781 WSTUB
(sysacct
, acct
, nomod_zero
);
782 WSTUB
(sysacct
, acct_fs_in_use
, nomod_zero
);
787 * Stubs for semaphore routines. sem.c
789 #ifndef SEMSYS_MODULE
791 WSTUB
(semsys
, semexit
, nomod_zero
);
796 * Stubs for shmem routines. shm.c
798 #ifndef SHMSYS_MODULE
800 WSTUB
(shmsys
, shmexit
, nomod_zero
);
801 WSTUB
(shmsys
, shmfork
, nomod_zero
);
802 WSTUB
(shmsys
, shmgetid
, nomod_minus_one
);
809 #ifndef DOORFS_MODULE
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
);
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
);
853 * Stubs for dma routines. dmaga.c
854 * (These are only needed for cross-checks, not autoloading)
858 WSTUB
(dma
, dma_alloc
, nomod_zero
);
/* (DMAGA *)0 */
859 WSTUB
(dma
, dma_free
, nomod_zero
);
/* (DMAGA *)0 */
864 * Stubs for auditing.
866 #ifndef C2AUDIT_MODULE
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
);
911 * Stubs for kernel rpc security service module
913 #ifndef RPCSEC_MODULE
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
);
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
);
946 STUB
(iwscn
, srpop
, 0);
951 * Stubs for checkpoint-resume module
960 * Stubs for VIS module
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);
972 * Stubs for kernel probes (tnf module). Not unloadable.
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
);
986 * Clustering: stubs for bootstrapping.
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
);
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
);
1011 * Clustering: stubs for global file system operations.
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
);
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);
1031 #ifndef PCIHP_MODULE
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
);
1041 * Stubs for kernel cryptographic framework module (misc/kcf).
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
);
1155 * Stubs for sha1. A non-unloadable 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
);
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.
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
);
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.
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
);
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
);
1208 #ifndef IPTUN_MODULE
1210 STUB
(iptun
, iptun_create
, nomod_einval
);
1211 STUB
(iptun
, iptun_delete
, nomod_einval
);
1212 STUB
(iptun
, iptun_set_policy
, nomod_einval
);
1217 * Stubs for dcopy, for Intel IOAT KAPIs
1219 #ifndef DCOPY_MODULE
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
);
1232 #ifndef IPNET_MODULE
1234 STUB
(ipnet
, ipnet_if_getdev
, nomod_zero
);
1235 STUB
(ipnet
, ipnet_walk_if
, nomod_zero
);
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
);
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
);
1280 ! this is just
a marker for the area of text that contains stubs