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