xref: /onnv-gate/usr/src/uts/sparc/ml/modstubs.s (revision 12644:4f9a0cd40c5f)
10Sstevel@tonic-gate/*
20Sstevel@tonic-gate * CDDL HEADER START
30Sstevel@tonic-gate *
40Sstevel@tonic-gate * The contents of this file are subject to the terms of the
51540Skini * Common Development and Distribution License (the "License").
61540Skini * You may not use this file except in compliance with the License.
70Sstevel@tonic-gate *
80Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate * See the License for the specific language governing permissions
110Sstevel@tonic-gate * and limitations under the License.
120Sstevel@tonic-gate *
130Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate *
190Sstevel@tonic-gate * CDDL HEADER END
200Sstevel@tonic-gate */
210Sstevel@tonic-gate/*
2212199Sgerald.jelinek@sun.com * Copyright (c) 1990, 2010, Oracle and/or its affiliates. All rights reserved.
230Sstevel@tonic-gate */
240Sstevel@tonic-gate
250Sstevel@tonic-gate#if !defined(lint)
260Sstevel@tonic-gate#include "assym.h"
270Sstevel@tonic-gate#endif /* !lint */
280Sstevel@tonic-gate
290Sstevel@tonic-gate#include <sys/asm_linkage.h>
300Sstevel@tonic-gate
310Sstevel@tonic-gate#if defined(lint)
320Sstevel@tonic-gate
330Sstevel@tonic-gatechar stubs_base[1], stubs_end[1];
340Sstevel@tonic-gate
350Sstevel@tonic-gate#else	/* lint */
360Sstevel@tonic-gate
370Sstevel@tonic-gate/*
380Sstevel@tonic-gate * WARNING: there is no check for forgetting to write END_MODULE,
390Sstevel@tonic-gate * and if you do, the kernel will most likely crash.  Be careful
400Sstevel@tonic-gate *
410Sstevel@tonic-gate * This file assumes that all of the contributions to the data segment
420Sstevel@tonic-gate * will be contiguous in the output file, even though they are separated
430Sstevel@tonic-gate * by pieces of text.  This is safe for all assemblers I know of now...
440Sstevel@tonic-gate */
450Sstevel@tonic-gate
460Sstevel@tonic-gate/*
470Sstevel@tonic-gate * This file uses ansi preprocessor features:
480Sstevel@tonic-gate *
490Sstevel@tonic-gate * 1. 	#define mac(a) extra_ ## a     -->   mac(x) expands to extra_a
500Sstevel@tonic-gate * The old version of this is
510Sstevel@tonic-gate *      #define mac(a) extra_/.*.*./a
520Sstevel@tonic-gate * but this fails if the argument has spaces "mac ( x )"
530Sstevel@tonic-gate * (Ignore the dots above, I had to put them in to keep this a comment.)
540Sstevel@tonic-gate *
550Sstevel@tonic-gate * 2.   #define mac(a) #a             -->    mac(x) expands to "x"
560Sstevel@tonic-gate * The old version is
570Sstevel@tonic-gate *      #define mac(a) "a"
580Sstevel@tonic-gate *
590Sstevel@tonic-gate * For some reason, the 5.0 preprocessor isn't happy with the above usage.
600Sstevel@tonic-gate * For now, we're not using these ansi features.
610Sstevel@tonic-gate *
620Sstevel@tonic-gate * The reason is that "the 5.0 ANSI preprocessor" is built into the compiler
630Sstevel@tonic-gate * and is a tokenizing preprocessor. This means, when confronted by something
640Sstevel@tonic-gate * other than C token generation rules, strange things occur. In this case,
650Sstevel@tonic-gate * when confronted by an assembly file, it would turn the token ".globl" into
660Sstevel@tonic-gate * two tokens "." and "globl". For this reason, the traditional, non-ANSI
670Sstevel@tonic-gate * preprocessor is used on assembly files.
680Sstevel@tonic-gate *
690Sstevel@tonic-gate * It would be desirable to have a non-tokenizing cpp (accp?) to use for this.
700Sstevel@tonic-gate */
710Sstevel@tonic-gate
720Sstevel@tonic-gate/*
730Sstevel@tonic-gate * This file contains the stubs routines for modules which can be autoloaded.
740Sstevel@tonic-gate */
750Sstevel@tonic-gate
760Sstevel@tonic-gate
770Sstevel@tonic-gate/*
780Sstevel@tonic-gate * See the 'struct mod_modinfo' definition to see what this structure
790Sstevel@tonic-gate * is trying to achieve here.
800Sstevel@tonic-gate */
810Sstevel@tonic-gate/*
820Sstevel@tonic-gate * XX64 - This still needs some repair.
830Sstevel@tonic-gate * (a) define 'pointer alignment' and use it
840Sstevel@tonic-gate * (b) define '.pword' or equivalent, and use it (to mean .word or .xword).
850Sstevel@tonic-gate */
860Sstevel@tonic-gate#define	MODULE(module,namespace)	\
870Sstevel@tonic-gate	.seg	".data";		\
880Sstevel@tonic-gatemodule/**/_modname:			\
890Sstevel@tonic-gate	.ascii	"namespace/module";	\
900Sstevel@tonic-gate	.byte	0;			\
910Sstevel@tonic-gate	.align	CPTRSIZE;		\
920Sstevel@tonic-gate	.global	module/**/_modinfo;	\
930Sstevel@tonic-gate	.type	module/**/_modinfo, #object;	\
940Sstevel@tonic-gate	.size	module/**/_modinfo, 16;	\
950Sstevel@tonic-gatemodule/**/_modinfo:			\
960Sstevel@tonic-gate	.word 0;			\
970Sstevel@tonic-gate	.word module/**/_modname;	\
980Sstevel@tonic-gate	.word 0;			\
990Sstevel@tonic-gate	.word 0;
1000Sstevel@tonic-gate
1010Sstevel@tonic-gate#define	END_MODULE(module)		\
1020Sstevel@tonic-gate	.align 8; .word 0; .word 0	/* FIXME: .xword 0 */
1030Sstevel@tonic-gate
1040Sstevel@tonic-gate
1050Sstevel@tonic-gate#define STUB(module, fcnname, retfcn)	\
1060Sstevel@tonic-gate    STUB_COMMON(module, fcnname, mod_hold_stub, retfcn, 0)
1070Sstevel@tonic-gate
1080Sstevel@tonic-gate/*
1090Sstevel@tonic-gate * "weak stub", don't load on account of this call
1100Sstevel@tonic-gate */
1110Sstevel@tonic-gate#define WSTUB(module, fcnname, retfcn)	\
1120Sstevel@tonic-gate    STUB_COMMON(module, fcnname, retfcn, retfcn, MODS_WEAK)
1130Sstevel@tonic-gate
1140Sstevel@tonic-gate/*
1150Sstevel@tonic-gate * "non-unloadable stub", don't bother 'holding' module if it's already loaded
1160Sstevel@tonic-gate * since the module cannot be unloaded.
1170Sstevel@tonic-gate *
1180Sstevel@tonic-gate * User *MUST* guarantee the module is not unloadable (no _fini routine).
1190Sstevel@tonic-gate */
1200Sstevel@tonic-gate#define NO_UNLOAD_STUB(module, fcnname, retfcn)	\
1210Sstevel@tonic-gate    STUB_UNLOADABLE(module, fcnname, retfcn, retfcn, MODS_NOUNLOAD)
1220Sstevel@tonic-gate
1230Sstevel@tonic-gate/*
1240Sstevel@tonic-gate * Macro for modstubbed system calls whose modules are not unloadable.
1250Sstevel@tonic-gate *
1260Sstevel@tonic-gate * System call modstubs needs special handling for the case where
1270Sstevel@tonic-gate * the modstub is a system call, because %fp comes from user frame.
1280Sstevel@tonic-gate */
1290Sstevel@tonic-gate#define	SCALL_NU_STUB(module, fcnname, retfcn)	\
1300Sstevel@tonic-gate    SCALL_UNLOADABLE(module, fcnname, retfcn, retfcn, MODS_NOUNLOAD)
1310Sstevel@tonic-gate/* "weak stub" for non-unloadable module, don't load on account of this call */
1320Sstevel@tonic-gate#define NO_UNLOAD_WSTUB(module, fcnname, retfcn) \
1330Sstevel@tonic-gate    STUB_UNLOADABLE(module, fcnname, retfcn, retfcn, MODS_NOUNLOAD|MODS_WEAK)
1340Sstevel@tonic-gate
1350Sstevel@tonic-gate#define	STUB_DATA(module, fcnname, install_fcn, retfcn, weak)		\
1360Sstevel@tonic-gate	.seg	".data";						\
1370Sstevel@tonic-gate	.align	8;							\
1380Sstevel@tonic-gatefcnname/**/_info:							\
1390Sstevel@tonic-gate	.word	0;			/* 0 */				\
1400Sstevel@tonic-gate	.word	install_fcn;		/* 4 */				\
1410Sstevel@tonic-gate	.word	0;			/* 8 */				\
1420Sstevel@tonic-gate	.word	module/**/_modinfo;	/* c */				\
1430Sstevel@tonic-gate	.word	0;			/* 10 */			\
1440Sstevel@tonic-gate	.word	fcnname;		/* 14 */			\
1450Sstevel@tonic-gate	.word	0;			/* 18 */			\
1460Sstevel@tonic-gate	.word	retfcn;			/* 1c */			\
1470Sstevel@tonic-gate	.word   weak			/* 20 */
1480Sstevel@tonic-gate
1490Sstevel@tonic-gate/*
1500Sstevel@tonic-gate * The flag MODS_INSTALLED is stored in the stub data and is used to
1510Sstevel@tonic-gate * indicate if a module is installed and initialized.  This flag is used
1520Sstevel@tonic-gate * instead of the mod_stub_info->mods_modinfo->mod_installed flag
1530Sstevel@tonic-gate * to minimize the number of pointer de-references for each function
1540Sstevel@tonic-gate * call (and also to avoid possible TLB misses which could be induced
1550Sstevel@tonic-gate * by dereferencing these pointers.)
1560Sstevel@tonic-gate */
1570Sstevel@tonic-gate
1580Sstevel@tonic-gate#define STUB_COMMON(module, fcnname, install_fcn, retfcn, weak)		\
1590Sstevel@tonic-gate	ENTRY_NP(fcnname);						\
1600Sstevel@tonic-gate	save	%sp, -SA(MINFRAME), %sp;/* new window */		\
1610Sstevel@tonic-gate	set	fcnname/**/_info, %l5;					\
1620Sstevel@tonic-gate	ld	[%l5 + MODS_FLAG], %l1;	/* weak?? */			\
1630Sstevel@tonic-gate	cmp	%l1, 0;							\
1640Sstevel@tonic-gate	be,a	1f;			/* not weak */			\
1650Sstevel@tonic-gate	restore;							\
1660Sstevel@tonic-gate	btst	MODS_INSTALLED, %l1;	/* installed?? */		\
1670Sstevel@tonic-gate 	bne,a,pt %xcc, 1f;		/* yes, do mod_hold thing */	\
1680Sstevel@tonic-gate 	restore;							\
1690Sstevel@tonic-gate 	ldn	[%l5 + MODS_RETFCN], %g1;				\
1700Sstevel@tonic-gate	jmp	%g1;			/* no, just jump to retfcn */	\
1710Sstevel@tonic-gate	restore;							\
1720Sstevel@tonic-gate1:	sub	%sp, %fp, %g1;	/* get (-)size of callers stack */	\
1730Sstevel@tonic-gate	save	%sp, %g1, %sp;	/* create new frame same size */	\
1740Sstevel@tonic-gate	sub	%g0, %g1, %l4;  /* size of stack frame */		\
1750Sstevel@tonic-gate	sethi	%hi(fcnname/**/_info), %l5;				\
1760Sstevel@tonic-gate	b	stubs_common_code;					\
1770Sstevel@tonic-gate	or	%l5, %lo(fcnname/**/_info), %l5;			\
1780Sstevel@tonic-gate	SET_SIZE(fcnname);						\
1790Sstevel@tonic-gate	STUB_DATA(module, fcnname, install_fcn, retfcn, weak)
1800Sstevel@tonic-gate
1810Sstevel@tonic-gate#define STUB_UNLOADABLE(module, fcnname, install_fcn, retfcn, weak)	\
1820Sstevel@tonic-gate	ENTRY_NP(fcnname);						\
1830Sstevel@tonic-gate	save	%sp, -SA(MINFRAME), %sp;	/* new window */	\
1840Sstevel@tonic-gate	set	fcnname/**/_info, %l5;					\
1850Sstevel@tonic-gate	ld	[%l5 + MODS_FLAG], %l1;					\
1860Sstevel@tonic-gate	btst	MODS_INSTALLED, %l1;		/* installed?? */	\
1870Sstevel@tonic-gate	bne,a	%xcc, 1f;			/* yes */		\
1880Sstevel@tonic-gate	ldn	[%l5], %g1;						\
1890Sstevel@tonic-gate	btst	MODS_WEAK, %l1;			/* weak?? */		\
1900Sstevel@tonic-gate	be,a	2f;				/* no, load module */	\
1910Sstevel@tonic-gate	restore;							\
1920Sstevel@tonic-gate	ldn	[%l5 + MODS_RETFCN], %g1;				\
1930Sstevel@tonic-gate1:	jmp	%g1;				/* off we go */		\
1940Sstevel@tonic-gate	restore;							\
1950Sstevel@tonic-gate2:	sub	%sp, %fp, %g1;	/* get (-)size of callers frame */	\
1960Sstevel@tonic-gate	save	%sp, %g1, %sp;	/* create new frame same size */	\
1970Sstevel@tonic-gate	sub	%g0, %g1, %l4;  /* size of stack frame */		\
1980Sstevel@tonic-gate	sethi	%hi(fcnname/**/_info), %l5;				\
1990Sstevel@tonic-gate	b	stubs_common_code;					\
2000Sstevel@tonic-gate	or	%l5, %lo(fcnname/**/_info), %l5;			\
2010Sstevel@tonic-gate	SET_SIZE(fcnname);						\
2020Sstevel@tonic-gate	STUB_DATA(module, fcnname, install_fcn, retfcn, weak)
2030Sstevel@tonic-gate
2040Sstevel@tonic-gate#define SCALL_UNLOADABLE(module, fcnname, install_fcn, retfcn, weak)	\
2050Sstevel@tonic-gate	ENTRY_NP(fcnname);						\
2060Sstevel@tonic-gate	save	%sp, -SA(MINFRAME), %sp;	/* new window */	\
2070Sstevel@tonic-gate	set	fcnname/**/_info, %l5;					\
2080Sstevel@tonic-gate	ld	[%l5 + MODS_FLAG], %l1;		/* installed?? */	\
2090Sstevel@tonic-gate	btst	MODS_INSTALLED, %l1;					\
2100Sstevel@tonic-gate	be,a	%xcc, 1f;			/* no, load module */	\
2110Sstevel@tonic-gate	restore;							\
2120Sstevel@tonic-gate 	ldn	[%l5], %g1;						\
2130Sstevel@tonic-gate	jmp	%g1;				/* yes, off we go */	\
2140Sstevel@tonic-gate	restore;							\
2150Sstevel@tonic-gate1:	save	%sp, -SA(MINFRAME), %sp;/* new frame */			\
2160Sstevel@tonic-gate	sub	%g0, -SA(MINFRAME), %l4;/* size of stack frame */	\
2170Sstevel@tonic-gate	sethi	%hi(fcnname/**/_info), %l5;				\
2180Sstevel@tonic-gate	b	stubs_common_code;					\
2190Sstevel@tonic-gate	or	%l5, %lo(fcnname/**/_info), %l5;			\
2200Sstevel@tonic-gate	SET_SIZE(fcnname);						\
2210Sstevel@tonic-gate	STUB_DATA(module, fcnname, install_fcn, retfcn, weak)
2220Sstevel@tonic-gate
2230Sstevel@tonic-gate	.section	".text"
2240Sstevel@tonic-gate
2250Sstevel@tonic-gate	/*
2260Sstevel@tonic-gate	 * We branch here with the fcnname_info pointer in l5
2270Sstevel@tonic-gate	 * and the frame size in %l4.
2280Sstevel@tonic-gate	 */
2290Sstevel@tonic-gate	ENTRY_NP(stubs_common_code)
2300Sstevel@tonic-gate	cmp	%l4, SA(MINFRAME)
2310Sstevel@tonic-gate	ble,a,pn %xcc, 2f
2320Sstevel@tonic-gate	nop
2330Sstevel@tonic-gate
2340Sstevel@tonic-gate	sub	%l4, 0x80, %l4		/* skip locals and outs */
2350Sstevel@tonic-gate	add	%sp, 0x80, %l0
2360Sstevel@tonic-gate	add	%fp, 0x80, %l1		/* get original sp before save */
2370Sstevel@tonic-gate1:
2380Sstevel@tonic-gate	/* Copy stack frame */
2390Sstevel@tonic-gate	ldn	[%l1 + STACK_BIAS], %l2
2400Sstevel@tonic-gate	inc	8, %l1
2410Sstevel@tonic-gate	stn	%l2, [%l0 + STACK_BIAS]
2420Sstevel@tonic-gate	deccc	8, %l4
2430Sstevel@tonic-gate	bg,a	1b
2440Sstevel@tonic-gate	inc	8, %l0
2450Sstevel@tonic-gate2:
2460Sstevel@tonic-gate	call	mod_hold_stub		/* Hold the module */
2470Sstevel@tonic-gate	mov	%l5, %o0
2480Sstevel@tonic-gate	cmp	%o0, -1			/* if error then return error */
2490Sstevel@tonic-gate	bne,a	1f
2500Sstevel@tonic-gate	nop
2510Sstevel@tonic-gate	ldn	[%l5 + MODS_RETFCN], %i0
2520Sstevel@tonic-gate	call	%i0
2530Sstevel@tonic-gate	nop
2540Sstevel@tonic-gate	ret
2550Sstevel@tonic-gate	restore	%o0, 0, %o0
2560Sstevel@tonic-gate1:
2570Sstevel@tonic-gate	ldn	[%l5], %g1
2580Sstevel@tonic-gate	mov	%i0, %o0	/* copy over incoming args, if number of */
2590Sstevel@tonic-gate	mov	%i1, %o1	/* args is > 6 then we copied them above */
2600Sstevel@tonic-gate	mov	%i2, %o2
2610Sstevel@tonic-gate	mov	%i3, %o3
2620Sstevel@tonic-gate	mov	%i4, %o4
2630Sstevel@tonic-gate	call	%g1		/* jump to the stub function */
2640Sstevel@tonic-gate	mov	%i5, %o5
2650Sstevel@tonic-gate	mov	%o0, %i0	/* copy any return values */
2660Sstevel@tonic-gate	mov	%o1, %i1
2670Sstevel@tonic-gate	call	mod_release_stub	/* release hold on module */
2680Sstevel@tonic-gate	mov	%l5, %o0
2690Sstevel@tonic-gate	ret			/* return to caller */
2700Sstevel@tonic-gate	restore
2710Sstevel@tonic-gate	SET_SIZE(stubs_common_code)
2720Sstevel@tonic-gate
2730Sstevel@tonic-gate! this is just a marker for the area of text that contains stubs
2740Sstevel@tonic-gate	.seg ".text"
2750Sstevel@tonic-gate	.global stubs_base
2760Sstevel@tonic-gatestubs_base:
2770Sstevel@tonic-gate	nop
2780Sstevel@tonic-gate
2790Sstevel@tonic-gate/*
2800Sstevel@tonic-gate * WARNING WARNING WARNING!!!!!!
2810Sstevel@tonic-gate *
2820Sstevel@tonic-gate * On the MODULE macro you MUST NOT use any spaces!!! They are
2830Sstevel@tonic-gate * significant to the preprocessor.  With ansi c there is a way around this
2840Sstevel@tonic-gate * but for some reason (yet to be investigated) ansi didn't work for other
2850Sstevel@tonic-gate * reasons!
2860Sstevel@tonic-gate *
2870Sstevel@tonic-gate * When zero is used as the return function, the system will call
2880Sstevel@tonic-gate * panic if the stub can't be resolved.
2890Sstevel@tonic-gate */
2900Sstevel@tonic-gate
2910Sstevel@tonic-gate/*
2920Sstevel@tonic-gate * Stubs for devfs. A non-unloadable module.
2930Sstevel@tonic-gate */
2940Sstevel@tonic-gate#ifndef DEVFS_MODULE
2950Sstevel@tonic-gate	MODULE(devfs,fs);
2960Sstevel@tonic-gate	NO_UNLOAD_STUB(devfs, devfs_clean,		nomod_minus_one);
2970Sstevel@tonic-gate	NO_UNLOAD_STUB(devfs, devfs_lookupname,		nomod_minus_one);
2980Sstevel@tonic-gate	NO_UNLOAD_STUB(devfs, devfs_walk,		nomod_minus_one);
2990Sstevel@tonic-gate	NO_UNLOAD_STUB(devfs, devfs_devpolicy,		nomod_minus_one);
3000Sstevel@tonic-gate	NO_UNLOAD_STUB(devfs, devfs_reset_perm,		nomod_minus_one);
3010Sstevel@tonic-gate	NO_UNLOAD_STUB(devfs, devfs_remdrv_cleanup,	nomod_minus_one);
3020Sstevel@tonic-gate	END_MODULE(devfs);
3030Sstevel@tonic-gate#endif
3040Sstevel@tonic-gate
3050Sstevel@tonic-gate/*
3062621Sllai1 * Stubs for /dev fs.
3072621Sllai1 */
3082621Sllai1#ifndef DEV_MODULE
3092621Sllai1	MODULE(dev, fs);
3102621Sllai1	NO_UNLOAD_STUB(dev, sdev_modctl_readdir,	nomod_minus_one);
3112621Sllai1	NO_UNLOAD_STUB(dev, sdev_modctl_readdir_free,	nomod_minus_one);
3122621Sllai1	NO_UNLOAD_STUB(dev, devname_filename_register,	nomod_minus_one);
3132621Sllai1	NO_UNLOAD_STUB(dev, sdev_modctl_devexists,	nomod_minus_one);
3142621Sllai1	NO_UNLOAD_STUB(dev, devname_profile_update,	nomod_minus_one);
3152621Sllai1	NO_UNLOAD_STUB(dev, sdev_devstate_change,	nomod_minus_one);
3167688SAaron.Zang@Sun.COM	NO_UNLOAD_STUB(dev, devvt_getvnodeops,		nomod_minus_one);
3172621Sllai1	NO_UNLOAD_STUB(dev, devpts_getvnodeops,		nomod_zero);
3182621Sllai1	END_MODULE(dev);
3192621Sllai1#endif
3202621Sllai1
3212621Sllai1/*
3220Sstevel@tonic-gate * Stubs for specfs. A non-unloadable module.
3230Sstevel@tonic-gate */
3240Sstevel@tonic-gate
3250Sstevel@tonic-gate#ifndef SPEC_MODULE
3260Sstevel@tonic-gate	MODULE(specfs,fs);
3270Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, common_specvp,  	nomod_zero);
3280Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, makectty,		nomod_zero);
3290Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, makespecvp,      	nomod_zero);
3300Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, smark,           	nomod_zero);
3310Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, spec_segmap,     	nomod_einval);
3320Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, specfind,        	nomod_zero);
3330Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, specvp,          	nomod_zero);
3340Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, devi_stillreferenced,	nomod_zero);
3350Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, spec_getvnodeops,	nomod_zero);
3360Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, spec_char_map,		nomod_zero);
3370Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, specvp_devfs,  		nomod_zero);
3380Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, spec_assoc_vp_with_devi,	nomod_void);
3390Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, spec_hold_devi_by_vp,	nomod_zero);
3400Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, spec_snode_walk,		nomod_void);
3410Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, spec_devi_open_count,	nomod_minus_one);
3420Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, spec_is_clone,		nomod_zero);
3430Sstevel@tonic-gate	NO_UNLOAD_STUB(specfs, spec_is_selfclone,	nomod_zero);
3444845Svikram	NO_UNLOAD_STUB(specfs, spec_fence_snode,	nomod_minus_one);
3454845Svikram	NO_UNLOAD_STUB(specfs, spec_unfence_snode,	nomod_minus_one);
3460Sstevel@tonic-gate	END_MODULE(specfs);
3470Sstevel@tonic-gate#endif
3480Sstevel@tonic-gate
3490Sstevel@tonic-gate
3500Sstevel@tonic-gate/*
3510Sstevel@tonic-gate * Stubs for sockfs. A non-unloadable module.
3520Sstevel@tonic-gate */
3530Sstevel@tonic-gate#ifndef SOCK_MODULE
3540Sstevel@tonic-gate	MODULE(sockfs, fs);
3550Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, so_socket,  	nomod_zero);
3560Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, so_socketpair,	nomod_zero);
3570Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, bind,  		nomod_zero);
3580Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, listen,  		nomod_zero);
3590Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, accept,  		nomod_zero);
3600Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, connect,  	nomod_zero);
3610Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, shutdown,  	nomod_zero);
3620Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, recv,  		nomod_zero);
3630Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, recvfrom,  	nomod_zero);
3640Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, recvmsg,  	nomod_zero);
3650Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, send,  		nomod_zero);
3660Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, sendmsg,  	nomod_zero);
3670Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, sendto, 		nomod_zero);
3680Sstevel@tonic-gate#ifdef _SYSCALL32_IMPL
3690Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, recv32,  		nomod_zero);
3700Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, recvfrom32,  	nomod_zero);
3710Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, send32,  		nomod_zero);
3720Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, sendto32, 	nomod_zero);
3730Sstevel@tonic-gate#endif /* _SYSCALL32_IMPL */
3740Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, getpeername,  	nomod_zero);
3750Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, getsockname,  	nomod_zero);
3760Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, getsockopt,  	nomod_zero);
3770Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, setsockopt,  	nomod_zero);
3780Sstevel@tonic-gate	SCALL_NU_STUB(sockfs, sockconfig,  	nomod_zero);
3790Sstevel@tonic-gate	NO_UNLOAD_STUB(sockfs, sock_getmsg,  	nomod_zero);
3800Sstevel@tonic-gate	NO_UNLOAD_STUB(sockfs, sock_putmsg,  	nomod_zero);
3810Sstevel@tonic-gate	NO_UNLOAD_STUB(sockfs, sosendfile64,  	nomod_zero);
3824173Spr14459	NO_UNLOAD_STUB(sockfs, snf_segmap,  	nomod_einval);
3830Sstevel@tonic-gate	NO_UNLOAD_STUB(sockfs, sock_getfasync,  nomod_zero);
3840Sstevel@tonic-gate	NO_UNLOAD_STUB(sockfs, nl7c_sendfilev,  nomod_zero);
3858348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(sockfs, sotpi_sototpi,  nomod_zero);
3868348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(sockfs, socket_sendmblk,	nomod_zero);
3878348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(sockfs, socket_setsockopt,	nomod_zero);
3880Sstevel@tonic-gate	END_MODULE(sockfs);
3890Sstevel@tonic-gate#endif
3900Sstevel@tonic-gate
3910Sstevel@tonic-gate/*
3920Sstevel@tonic-gate * IPsec stubs.
3930Sstevel@tonic-gate */
3940Sstevel@tonic-gate
3950Sstevel@tonic-gate#ifndef	IPSECAH_MODULE
3960Sstevel@tonic-gate	MODULE(ipsecah,drv);
3970Sstevel@tonic-gate	WSTUB(ipsecah,	ipsec_construct_inverse_acquire,	nomod_zero);
3980Sstevel@tonic-gate	WSTUB(ipsecah,	sadb_acquire,		nomod_zero);
3990Sstevel@tonic-gate	WSTUB(ipsecah,	ipsecah_algs_changed,	nomod_zero);
4000Sstevel@tonic-gate	WSTUB(ipsecah,	sadb_alg_update,	nomod_zero);
4010Sstevel@tonic-gate	WSTUB(ipsecah,	sadb_unlinkassoc,	nomod_zero);
4020Sstevel@tonic-gate	WSTUB(ipsecah,	sadb_insertassoc,	nomod_zero);
4030Sstevel@tonic-gate	WSTUB(ipsecah,	ipsecah_in_assocfailure,	nomod_zero);
4040Sstevel@tonic-gate	WSTUB(ipsecah,	sadb_set_lpkt,		nomod_zero);
4050Sstevel@tonic-gate	WSTUB(ipsecah,	ipsecah_icmp_error,	nomod_zero);
4060Sstevel@tonic-gate	END_MODULE(ipsecah);
4070Sstevel@tonic-gate#endif
4080Sstevel@tonic-gate
4090Sstevel@tonic-gate#ifndef	IPSECESP_MODULE
4100Sstevel@tonic-gate	MODULE(ipsecesp,drv);
4110Sstevel@tonic-gate	WSTUB(ipsecesp,	ipsecesp_fill_defs,	nomod_zero);
4120Sstevel@tonic-gate	WSTUB(ipsecesp,	ipsecesp_algs_changed,	nomod_zero);
4130Sstevel@tonic-gate	WSTUB(ipsecesp, ipsecesp_in_assocfailure,	nomod_zero);
4140Sstevel@tonic-gate	WSTUB(ipsecesp, ipsecesp_init_funcs,	nomod_zero);
4150Sstevel@tonic-gate	WSTUB(ipsecesp,	ipsecesp_icmp_error,	nomod_zero);
4164987Sdanmcd	WSTUB(ipsecesp,	ipsecesp_send_keepalive,	nomod_zero);
4170Sstevel@tonic-gate	END_MODULE(ipsecesp);
4180Sstevel@tonic-gate#endif
4190Sstevel@tonic-gate
4200Sstevel@tonic-gate#ifndef KEYSOCK_MODULE
4210Sstevel@tonic-gate	MODULE(keysock,drv);
4220Sstevel@tonic-gate	WSTUB(keysock,	keysock_plumb_ipsec,	nomod_zero);
4230Sstevel@tonic-gate	WSTUB(keysock,	keysock_extended_reg,	nomod_zero);
4240Sstevel@tonic-gate	WSTUB(keysock,	keysock_next_seq,	nomod_zero);
4250Sstevel@tonic-gate	END_MODULE(keysock);
4260Sstevel@tonic-gate#endif
4270Sstevel@tonic-gate
4280Sstevel@tonic-gate#ifndef SPDSOCK_MODULE
4290Sstevel@tonic-gate	MODULE(spdsock,drv);
4300Sstevel@tonic-gate	WSTUB(spdsock,	spdsock_update_pending_algs,	nomod_zero);
4310Sstevel@tonic-gate	END_MODULE(spdsock);
4320Sstevel@tonic-gate#endif
4330Sstevel@tonic-gate
4340Sstevel@tonic-gate/*
4350Sstevel@tonic-gate * Stubs for nfs common code.
4360Sstevel@tonic-gate * XXX nfs_getvnodeops should go away with removal of kludge in vnode.c
4370Sstevel@tonic-gate */
4380Sstevel@tonic-gate#ifndef NFS_MODULE
4390Sstevel@tonic-gate	MODULE(nfs,fs);
4400Sstevel@tonic-gate	WSTUB(nfs,	nfs_getvnodeops,	nomod_zero);
4410Sstevel@tonic-gate	WSTUB(nfs,	nfs_perror,		nomod_zero);
4420Sstevel@tonic-gate	WSTUB(nfs,	nfs_cmn_err,		nomod_zero);
4430Sstevel@tonic-gate	WSTUB(nfs,	clcleanup_zone,		nomod_zero);
4440Sstevel@tonic-gate	WSTUB(nfs,	clcleanup4_zone,	nomod_zero);
4450Sstevel@tonic-gate	END_MODULE(nfs);
4460Sstevel@tonic-gate#endif
4470Sstevel@tonic-gate
4480Sstevel@tonic-gate/*
4490Sstevel@tonic-gate * Stubs for nfs_dlboot (diskless booting).
4500Sstevel@tonic-gate */
4510Sstevel@tonic-gate#ifndef NFS_DLBOOT_MODULE
4520Sstevel@tonic-gate	MODULE(nfs_dlboot,misc);
4530Sstevel@tonic-gate	STUB(nfs_dlboot,	mount_root,	nomod_minus_one);
4540Sstevel@tonic-gate	STUB(nfs_dlboot,        dhcpinit,       nomod_minus_one);
4550Sstevel@tonic-gate	END_MODULE(nfs_dlboot);
4560Sstevel@tonic-gate#endif
4570Sstevel@tonic-gate
4580Sstevel@tonic-gate/*
4590Sstevel@tonic-gate * Stubs for nfs server-only code.
4600Sstevel@tonic-gate */
4610Sstevel@tonic-gate#ifndef NFSSRV_MODULE
4620Sstevel@tonic-gate	MODULE(nfssrv,misc);
4630Sstevel@tonic-gate	STUB(nfssrv,		lm_nfs3_fhtovp,	nomod_minus_one);
4640Sstevel@tonic-gate	STUB(nfssrv,		lm_fhtovp,	nomod_minus_one);
4650Sstevel@tonic-gate	STUB(nfssrv,		exportfs,	nomod_minus_one);
4660Sstevel@tonic-gate	STUB(nfssrv,		nfs_getfh,	nomod_minus_one);
4670Sstevel@tonic-gate	STUB(nfssrv,		nfsl_flush,	nomod_minus_one);
4682140Srmesta	STUB(nfssrv,		rfs4_check_delegated, nomod_zero);
4692140Srmesta	STUB(nfssrv,		mountd_args,	nomod_minus_one);
4700Sstevel@tonic-gate	NO_UNLOAD_STUB(nfssrv,	rdma_start,	nomod_zero);
4710Sstevel@tonic-gate	NO_UNLOAD_STUB(nfssrv,	nfs_svc,	nomod_zero);
4720Sstevel@tonic-gate	END_MODULE(nfssrv);
4730Sstevel@tonic-gate#endif
4740Sstevel@tonic-gate
4750Sstevel@tonic-gate/*
4760Sstevel@tonic-gate * Stubs for kernel lock manager.
4770Sstevel@tonic-gate */
4780Sstevel@tonic-gate#ifndef KLM_MODULE
4790Sstevel@tonic-gate	MODULE(klmmod,misc);
4800Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_svc,		nomod_zero);
4810Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_shutdown,	nomod_zero);
4820Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_unexport,	nomod_zero);
4830Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_cprresume,	nomod_zero);
4840Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_cprsuspend,	nomod_zero);
4850Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_safelock, nomod_zero);
4860Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_safemap, nomod_zero);
4870Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_has_sleep, nomod_zero);
4880Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_free_config, nomod_zero);
4890Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_vp_active, nomod_zero);
4900Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_get_sysid, nomod_zero);
4910Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_rel_sysid, nomod_zero);
4920Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_alloc_sysidt, nomod_minus_one);
4930Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_free_sysidt, nomod_zero);
4940Sstevel@tonic-gate	NO_UNLOAD_STUB(klmmod, lm_sysidt, nomod_minus_one);
4950Sstevel@tonic-gate	END_MODULE(klmmod);
4960Sstevel@tonic-gate#endif
4970Sstevel@tonic-gate
4980Sstevel@tonic-gate#ifndef KLMOPS_MODULE
4990Sstevel@tonic-gate	MODULE(klmops,misc);
5000Sstevel@tonic-gate	NO_UNLOAD_STUB(klmops, lm_frlock,	nomod_zero);
5010Sstevel@tonic-gate	NO_UNLOAD_STUB(klmops, lm4_frlock,	nomod_zero);
5020Sstevel@tonic-gate	NO_UNLOAD_STUB(klmops, lm_shrlock,	nomod_zero);
5030Sstevel@tonic-gate	NO_UNLOAD_STUB(klmops, lm4_shrlock,	nomod_zero);
5040Sstevel@tonic-gate	NO_UNLOAD_STUB(klmops, lm_nlm_dispatch,	nomod_zero);
5050Sstevel@tonic-gate	NO_UNLOAD_STUB(klmops, lm_nlm4_dispatch,	nomod_zero);
5060Sstevel@tonic-gate	NO_UNLOAD_STUB(klmops, lm_nlm_reclaim,	nomod_zero);
5070Sstevel@tonic-gate	NO_UNLOAD_STUB(klmops, lm_nlm4_reclaim,	nomod_zero);
5080Sstevel@tonic-gate	NO_UNLOAD_STUB(klmops, lm_register_lock_locally, nomod_zero);
5090Sstevel@tonic-gate	END_MODULE(klmops);
5100Sstevel@tonic-gate#endif
5110Sstevel@tonic-gate
5120Sstevel@tonic-gate/*
5130Sstevel@tonic-gate * Stubs for kernel TLI module
5140Sstevel@tonic-gate *   XXX currently we never allow this to unload
5150Sstevel@tonic-gate */
5160Sstevel@tonic-gate#ifndef TLI_MODULE
5170Sstevel@tonic-gate	MODULE(tlimod,misc);
5180Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_kopen,		nomod_minus_one);
5190Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_kunbind,  	nomod_zero);
5200Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_kadvise,  	nomod_zero);
5210Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_krcvudata,  	nomod_zero);
5220Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_ksndudata,  	nomod_zero);
5230Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_kalloc,  	nomod_zero);
5240Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_kbind,  	nomod_zero);
5250Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_kclose,  	nomod_zero);
5260Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_kspoll,  	nomod_zero);
5270Sstevel@tonic-gate	NO_UNLOAD_STUB(tlimod, t_kfree,  	nomod_zero);
5280Sstevel@tonic-gate	END_MODULE(tlimod);
5290Sstevel@tonic-gate#endif
5300Sstevel@tonic-gate
5310Sstevel@tonic-gate/*
5320Sstevel@tonic-gate * Stubs for kernel RPC module
5330Sstevel@tonic-gate *   XXX currently we never allow this to unload
5340Sstevel@tonic-gate */
5350Sstevel@tonic-gate#ifndef RPC_MODULE
5360Sstevel@tonic-gate	MODULE(rpcmod,strmod);
5370Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcmod, clnt_tli_kcreate,	nomod_minus_one);
5380Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcmod, svc_tli_kcreate,		nomod_minus_one);
5390Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcmod, bindresvport,		nomod_minus_one);
5400Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcmod, rdma_register_mod,	nomod_minus_one);
5410Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcmod, rdma_unregister_mod,	nomod_minus_one);
5420Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcmod, svc_queuereq,		nomod_minus_one);
5430Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcmod, clist_add,		nomod_minus_one);
5440Sstevel@tonic-gate	END_MODULE(rpcmod);
5450Sstevel@tonic-gate#endif
5460Sstevel@tonic-gate
5470Sstevel@tonic-gate/*
5480Sstevel@tonic-gate * Stubs for des
5490Sstevel@tonic-gate */
5500Sstevel@tonic-gate#ifndef DES_MODULE
5510Sstevel@tonic-gate	MODULE(des,misc);
5520Sstevel@tonic-gate	STUB(des, cbc_crypt, 	 	nomod_zero);
5530Sstevel@tonic-gate	STUB(des, ecb_crypt, 		nomod_zero);
5540Sstevel@tonic-gate	STUB(des, _des_crypt,		nomod_zero);
5550Sstevel@tonic-gate	END_MODULE(des);
5560Sstevel@tonic-gate#endif
5570Sstevel@tonic-gate
5580Sstevel@tonic-gate/*
5590Sstevel@tonic-gate * Stubs for procfs. A non-unloadable module.
5600Sstevel@tonic-gate */
5610Sstevel@tonic-gate#ifndef PROC_MODULE
5620Sstevel@tonic-gate	MODULE(procfs,fs);
5630Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prfree,		nomod_zero);
5640Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prexit,		nomod_zero);
5650Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prlwpfree,	nomod_zero);
5660Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prlwpexit,	nomod_zero);
5670Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prinvalidate,	nomod_zero);
5680Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prnsegs,		nomod_zero);
5690Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetcred,	nomod_zero);
5700Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetpriv,	nomod_zero);
5710Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetprivsize,	nomod_zero);
5720Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetstatus,	nomod_zero);
5730Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetlwpstatus,	nomod_zero);
5740Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetpsinfo,	nomod_zero);
5750Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetlwpsinfo,	nomod_zero);
5760Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, oprgetstatus,	nomod_zero);
5770Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, oprgetpsinfo,	nomod_zero);
5780Sstevel@tonic-gate#ifdef _SYSCALL32_IMPL
5790Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetstatus32,	nomod_zero);
5800Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetlwpstatus32, nomod_zero);
5810Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetpsinfo32,	nomod_zero);
5820Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prgetlwpsinfo32,	nomod_zero);
5830Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, oprgetstatus32,	nomod_zero);
5840Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, oprgetpsinfo32,	nomod_zero);
5850Sstevel@tonic-gate#endif	/* _SYSCALL32_IMPL */
5860Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prnotify,	nomod_zero);
5870Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prexecstart,	nomod_zero);
5880Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prexecend,	nomod_zero);
5890Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prrelvm,		nomod_zero);
5900Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, prbarrier,	nomod_zero);
5910Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, estimate_msacct,	nomod_zero);
5920Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, pr_getprot,	nomod_zero);
5930Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, pr_getprot_done,	nomod_zero);
5940Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, pr_getsegsize,	nomod_zero);
5950Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, pr_isobject,	nomod_zero);
5960Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, pr_isself,	nomod_zero);
5970Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, pr_allstopped,	nomod_zero);
5980Sstevel@tonic-gate	NO_UNLOAD_STUB(procfs, pr_free_watched_pages, nomod_zero);
5990Sstevel@tonic-gate	END_MODULE(procfs);
6000Sstevel@tonic-gate#endif
6010Sstevel@tonic-gate
6020Sstevel@tonic-gate/*
6030Sstevel@tonic-gate * Stubs for fifofs
6040Sstevel@tonic-gate */
6050Sstevel@tonic-gate#ifndef FIFO_MODULE
6060Sstevel@tonic-gate	MODULE(fifofs,fs);
6070Sstevel@tonic-gate	STUB(fifofs, fifovp,      	0);
6080Sstevel@tonic-gate	STUB(fifofs, fifo_getinfo,	0);
6090Sstevel@tonic-gate	STUB(fifofs, fifo_vfastoff,	0);
6100Sstevel@tonic-gate	END_MODULE(fifofs);
6110Sstevel@tonic-gate#endif
6120Sstevel@tonic-gate
6130Sstevel@tonic-gate/*
6140Sstevel@tonic-gate * Stubs for ufs
6150Sstevel@tonic-gate *
6160Sstevel@tonic-gate * This is needed to support the old quotactl system call.
6170Sstevel@tonic-gate * When the old sysent stuff goes away, this will need to be revisited.
6180Sstevel@tonic-gate */
6190Sstevel@tonic-gate#ifndef UFS_MODULE
6200Sstevel@tonic-gate	MODULE(ufs,fs);
6210Sstevel@tonic-gate	STUB(ufs, quotactl, nomod_minus_one);
6220Sstevel@tonic-gate	STUB(ufs, ufs_remountroot, 0);
6230Sstevel@tonic-gate	END_MODULE(ufs);
6240Sstevel@tonic-gate#endif
6250Sstevel@tonic-gate
6260Sstevel@tonic-gate/*
6276423Sgw25295 * Stubs for zfs
6286423Sgw25295 */
6296423Sgw25295#ifndef ZFS_MODULE
6306423Sgw25295	MODULE(zfs,fs);
631*12236SRic.Aleshire@Sun.COM	STUB(zfs, dsl_prop_get, nomod_minus_one);
6326423Sgw25295	STUB(zfs, spa_boot_init, nomod_minus_one);
633*12236SRic.Aleshire@Sun.COM	STUB(zfs, zfs_prop_to_name, nomod_zero);
6346423Sgw25295	END_MODULE(zfs);
6356423Sgw25295#endif
6366423Sgw25295
6376423Sgw25295/*
6385648Ssetje * Stubs for dcfs
6395648Ssetje */
6405648Ssetje#ifndef DCFS_MODULE
6415648Ssetje	MODULE(dcfs,fs);
6425648Ssetje	STUB(dcfs, decompvp, 0);
6435648Ssetje	END_MODULE(dcfs);
6445648Ssetje#endif
6455648Ssetje
6465648Ssetje/*
6470Sstevel@tonic-gate * Stubs for namefs
6480Sstevel@tonic-gate */
6490Sstevel@tonic-gate#ifndef NAMEFS_MODULE
6500Sstevel@tonic-gate	MODULE(namefs,fs);
6510Sstevel@tonic-gate	STUB(namefs, nm_unmountall, 	0);
6520Sstevel@tonic-gate	END_MODULE(namefs);
6530Sstevel@tonic-gate#endif
6540Sstevel@tonic-gate
6550Sstevel@tonic-gate/*
65611173SJonathan.Adams@Sun.COM * Stubs for sysdc
65711173SJonathan.Adams@Sun.COM */
65811173SJonathan.Adams@Sun.COM#ifndef SDC_MODULE
65911173SJonathan.Adams@Sun.COM	MODULE(SDC,sched);
66011173SJonathan.Adams@Sun.COM	NO_UNLOAD_STUB(SDC, sysdc_thread_enter,		nomod_zero);
66111173SJonathan.Adams@Sun.COM	END_MODULE(SDC);
66211173SJonathan.Adams@Sun.COM#endif
66311173SJonathan.Adams@Sun.COM
66411173SJonathan.Adams@Sun.COM/*
6650Sstevel@tonic-gate * Stubs for ts_dptbl
6660Sstevel@tonic-gate */
6670Sstevel@tonic-gate#ifndef TS_DPTBL_MODULE
6680Sstevel@tonic-gate	MODULE(TS_DPTBL,sched);
6690Sstevel@tonic-gate	STUB(TS_DPTBL, ts_getdptbl,		0);
6700Sstevel@tonic-gate	STUB(TS_DPTBL, ts_getkmdpris,		0);
6710Sstevel@tonic-gate	STUB(TS_DPTBL, ts_getmaxumdpri,	0);
6720Sstevel@tonic-gate	END_MODULE(TS_DPTBL);
6730Sstevel@tonic-gate#endif
6740Sstevel@tonic-gate
6750Sstevel@tonic-gate/*
6760Sstevel@tonic-gate * Stubs for rt_dptbl
6770Sstevel@tonic-gate */
6780Sstevel@tonic-gate#ifndef RT_DPTBL_MODULE
6790Sstevel@tonic-gate	MODULE(RT_DPTBL,sched);
6800Sstevel@tonic-gate	STUB(RT_DPTBL, rt_getdptbl,		0);
6810Sstevel@tonic-gate	END_MODULE(RT_DPTBL);
6820Sstevel@tonic-gate#endif
6830Sstevel@tonic-gate
6840Sstevel@tonic-gate/*
6850Sstevel@tonic-gate * Stubs for ia_dptbl
6860Sstevel@tonic-gate */
6870Sstevel@tonic-gate#ifndef IA_DPTBL_MODULE
6880Sstevel@tonic-gate	MODULE(IA_DPTBL,sched);
6890Sstevel@tonic-gate	STUB(IA_DPTBL, ia_getdptbl,		0);
6900Sstevel@tonic-gate	STUB(IA_DPTBL, ia_getkmdpris,		0);
6910Sstevel@tonic-gate	STUB(IA_DPTBL, ia_getmaxumdpri,	0);
6920Sstevel@tonic-gate	END_MODULE(IA_DPTBL);
6930Sstevel@tonic-gate#endif
6940Sstevel@tonic-gate
6950Sstevel@tonic-gate/*
6960Sstevel@tonic-gate * Stubs for FSS scheduler
6970Sstevel@tonic-gate */
6980Sstevel@tonic-gate#ifndef	FSS_MODULE
6990Sstevel@tonic-gate	MODULE(FSS,sched);
7000Sstevel@tonic-gate	WSTUB(FSS, fss_allocbuf,		nomod_zero);
7010Sstevel@tonic-gate	WSTUB(FSS, fss_freebuf,			nomod_zero);
7020Sstevel@tonic-gate	WSTUB(FSS, fss_changeproj,		nomod_zero);
7030Sstevel@tonic-gate	WSTUB(FSS, fss_changepset,		nomod_zero);
7040Sstevel@tonic-gate	END_MODULE(FSS);
7050Sstevel@tonic-gate#endif
7060Sstevel@tonic-gate
7070Sstevel@tonic-gate/*
7080Sstevel@tonic-gate * Stubs for fx_dptbl
7090Sstevel@tonic-gate */
7100Sstevel@tonic-gate#ifndef FX_DPTBL_MODULE
7110Sstevel@tonic-gate	MODULE(FX_DPTBL,sched);
7120Sstevel@tonic-gate	STUB(FX_DPTBL, fx_getdptbl,		0);
7130Sstevel@tonic-gate	STUB(FX_DPTBL, fx_getmaxumdpri,		0);
7140Sstevel@tonic-gate	END_MODULE(FX_DPTBL);
7150Sstevel@tonic-gate#endif
7160Sstevel@tonic-gate
7170Sstevel@tonic-gate/*
7180Sstevel@tonic-gate * Stubs for kb (only needed for 'win')
7190Sstevel@tonic-gate */
7200Sstevel@tonic-gate#ifndef KB_MODULE
7210Sstevel@tonic-gate	MODULE(kb,strmod);
7220Sstevel@tonic-gate	STUB(kb, strsetwithdecimal,	0);
7230Sstevel@tonic-gate	END_MODULE(kb);
7240Sstevel@tonic-gate#endif
7250Sstevel@tonic-gate
7260Sstevel@tonic-gate/*
7270Sstevel@tonic-gate * Stubs for swapgeneric
7280Sstevel@tonic-gate */
7290Sstevel@tonic-gate#ifndef SWAPGENERIC_MODULE
7300Sstevel@tonic-gate	MODULE(swapgeneric,misc);
7310Sstevel@tonic-gate	STUB(swapgeneric, rootconf,     0);
7320Sstevel@tonic-gate	STUB(swapgeneric, svm_rootconf, 0);
7330Sstevel@tonic-gate	STUB(swapgeneric, getfstype,    0);
7340Sstevel@tonic-gate	STUB(swapgeneric, getrootdev,   0);
7350Sstevel@tonic-gate	STUB(swapgeneric, getfsname,    0);
7360Sstevel@tonic-gate	STUB(swapgeneric, loadrootmodules, 0);
7370Sstevel@tonic-gate	END_MODULE(swapgeneric);
7380Sstevel@tonic-gate#endif
7390Sstevel@tonic-gate
7400Sstevel@tonic-gate/*
7410Sstevel@tonic-gate * Stubs for bootdev
7420Sstevel@tonic-gate */
7430Sstevel@tonic-gate#ifndef BOOTDEV_MODULE
7440Sstevel@tonic-gate	MODULE(bootdev,misc);
7450Sstevel@tonic-gate	STUB(bootdev, i_devname_to_promname, 0);
7460Sstevel@tonic-gate	STUB(bootdev, i_promname_to_devname, 0);
7470Sstevel@tonic-gate	STUB(bootdev, i_convert_boot_device_name, 0);
7480Sstevel@tonic-gate	END_MODULE(bootdev);
7490Sstevel@tonic-gate#endif
7500Sstevel@tonic-gate
7510Sstevel@tonic-gate/*
7520Sstevel@tonic-gate * stubs for strplumb...
7530Sstevel@tonic-gate */
7540Sstevel@tonic-gate#ifndef STRPLUMB_MODULE
7550Sstevel@tonic-gate	MODULE(strplumb,misc);
7560Sstevel@tonic-gate	STUB(strplumb, strplumb,     0);
7570Sstevel@tonic-gate	STUB(strplumb, strplumb_load, 0);
7584172Ssetje	STUB(strplumb, strplumb_get_netdev_path, 0)
7590Sstevel@tonic-gate	END_MODULE(strplumb);
7600Sstevel@tonic-gate#endif
7610Sstevel@tonic-gate
7620Sstevel@tonic-gate/*
7630Sstevel@tonic-gate * Stubs for console configuration module
7640Sstevel@tonic-gate */
7650Sstevel@tonic-gate#ifndef CONSCONFIG_MODULE
7660Sstevel@tonic-gate	MODULE(consconfig,misc);
7670Sstevel@tonic-gate	STUB(consconfig, consconfig,	0);
7680Sstevel@tonic-gate	STUB(consconfig, consconfig_get_usb_kb_path,	0);
7690Sstevel@tonic-gate	STUB(consconfig, consconfig_get_usb_ms_path,	0);
77010783SVincent.Wang@Sun.COM	STUB(consconfig, consconfig_console_is_ready,	0);
7710Sstevel@tonic-gate	END_MODULE(consconfig);
7720Sstevel@tonic-gate#endif
7730Sstevel@tonic-gate
7740Sstevel@tonic-gate/*
7750Sstevel@tonic-gate * Stubs for zs (uart) module
7760Sstevel@tonic-gate */
7770Sstevel@tonic-gate#ifndef ZS_MODULE
7780Sstevel@tonic-gate	MODULE(zs,drv);
7790Sstevel@tonic-gate	STUB(zs, zsgetspeed,		0);
7800Sstevel@tonic-gate	END_MODULE(zs);
7810Sstevel@tonic-gate#endif
7820Sstevel@tonic-gate
7830Sstevel@tonic-gate/*
7840Sstevel@tonic-gate * Stubs for accounting.
7850Sstevel@tonic-gate */
7860Sstevel@tonic-gate#ifndef SYSACCT_MODULE
7870Sstevel@tonic-gate	MODULE(sysacct,sys);
7880Sstevel@tonic-gate	WSTUB(sysacct, acct,  		nomod_zero);
7890Sstevel@tonic-gate	WSTUB(sysacct, acct_fs_in_use,	nomod_zero);
7900Sstevel@tonic-gate	END_MODULE(sysacct);
7910Sstevel@tonic-gate#endif
7920Sstevel@tonic-gate
7930Sstevel@tonic-gate/*
7940Sstevel@tonic-gate * Stubs for semaphore routines. sem.c
7950Sstevel@tonic-gate */
7960Sstevel@tonic-gate#ifndef SEMSYS_MODULE
7970Sstevel@tonic-gate	MODULE(semsys,sys);
7980Sstevel@tonic-gate	WSTUB(semsys, semexit,		nomod_zero);
7990Sstevel@tonic-gate	END_MODULE(semsys);
8000Sstevel@tonic-gate#endif
8010Sstevel@tonic-gate
8020Sstevel@tonic-gate/*
8030Sstevel@tonic-gate * Stubs for shmem routines. shm.c
8040Sstevel@tonic-gate */
8050Sstevel@tonic-gate#ifndef SHMSYS_MODULE
8060Sstevel@tonic-gate	MODULE(shmsys,sys);
8070Sstevel@tonic-gate	WSTUB(shmsys, shmexit,		nomod_zero);
8080Sstevel@tonic-gate	WSTUB(shmsys, shmfork,		nomod_zero);
809942Sahl	WSTUB(shmsys, shmgetid,		nomod_minus_one);
8100Sstevel@tonic-gate	END_MODULE(shmsys);
8110Sstevel@tonic-gate#endif
8120Sstevel@tonic-gate
8130Sstevel@tonic-gate/*
8140Sstevel@tonic-gate * Stubs for doors
8150Sstevel@tonic-gate */
8160Sstevel@tonic-gate#ifndef DOORFS_MODULE
8170Sstevel@tonic-gate	MODULE(doorfs,sys);
8180Sstevel@tonic-gate	WSTUB(doorfs, door_slam,			nomod_zero);
8190Sstevel@tonic-gate	WSTUB(doorfs, door_exit,			nomod_zero);
8200Sstevel@tonic-gate	WSTUB(doorfs, door_revoke_all,			nomod_zero);
8210Sstevel@tonic-gate	WSTUB(doorfs, door_fork,			nomod_zero);
8220Sstevel@tonic-gate	NO_UNLOAD_STUB(doorfs, door_upcall,		nomod_einval);
8230Sstevel@tonic-gate	NO_UNLOAD_STUB(doorfs, door_ki_create,		nomod_einval);
8240Sstevel@tonic-gate	NO_UNLOAD_STUB(doorfs, door_ki_open,		nomod_einval);
8250Sstevel@tonic-gate	NO_UNLOAD_STUB(doorfs, door_ki_lookup,		nomod_zero);
8260Sstevel@tonic-gate	WSTUB(doorfs, door_ki_upcall,			nomod_einval);
8276997Sjwadams	WSTUB(doorfs, door_ki_upcall_limited,		nomod_einval);
8280Sstevel@tonic-gate	WSTUB(doorfs, door_ki_hold,			nomod_zero);
8290Sstevel@tonic-gate	WSTUB(doorfs, door_ki_rele,			nomod_zero);
8300Sstevel@tonic-gate	WSTUB(doorfs, door_ki_info,			nomod_einval);
8310Sstevel@tonic-gate	END_MODULE(doorfs);
8320Sstevel@tonic-gate#endif
8330Sstevel@tonic-gate
8340Sstevel@tonic-gate/*
8354520Snw141292 * Stubs for idmap
8364520Snw141292 */
8374520Snw141292#ifndef IDMAP_MODULE
8384520Snw141292	MODULE(idmap,misc);
8395771Sjp151216	STUB(idmap, kidmap_batch_getgidbysid,	nomod_zero);
8405771Sjp151216	STUB(idmap, kidmap_batch_getpidbysid,	nomod_zero);
8415771Sjp151216	STUB(idmap, kidmap_batch_getsidbygid,	nomod_zero);
8425771Sjp151216	STUB(idmap, kidmap_batch_getsidbyuid,	nomod_zero);
8435771Sjp151216	STUB(idmap, kidmap_batch_getuidbysid,	nomod_zero);
8445771Sjp151216	STUB(idmap, kidmap_get_create,		nomod_zero);
8455771Sjp151216	STUB(idmap, kidmap_get_destroy,		nomod_zero);
8465771Sjp151216	STUB(idmap, kidmap_get_mappings,	nomod_zero);
8475771Sjp151216	STUB(idmap, kidmap_getgidbysid,		nomod_zero);
8485771Sjp151216	STUB(idmap, kidmap_getpidbysid,		nomod_zero);
8495771Sjp151216	STUB(idmap, kidmap_getsidbygid,		nomod_zero);
8505771Sjp151216	STUB(idmap, kidmap_getsidbyuid,		nomod_zero);
8515771Sjp151216	STUB(idmap, kidmap_getuidbysid,		nomod_zero);
8525771Sjp151216	STUB(idmap, idmap_get_door,		nomod_einval);
8535771Sjp151216	STUB(idmap, idmap_unreg_dh,		nomod_einval);
8545771Sjp151216	STUB(idmap, idmap_reg_dh,		nomod_einval);
8555771Sjp151216	STUB(idmap, idmap_purge_cache,		nomod_einval);
8564520Snw141292	END_MODULE(idmap);
8574520Snw141292#endif
8584520Snw141292
8594520Snw141292/*
8600Sstevel@tonic-gate * Stubs for dma routines. dmaga.c
8610Sstevel@tonic-gate * (These are only needed for cross-checks, not autoloading)
8620Sstevel@tonic-gate */
8630Sstevel@tonic-gate#ifndef DMA_MODULE
8640Sstevel@tonic-gate	MODULE(dma,drv);
8650Sstevel@tonic-gate	WSTUB(dma, dma_alloc,		nomod_zero); /* (DMAGA *)0 */
8660Sstevel@tonic-gate	WSTUB(dma, dma_free,		nomod_zero); /* (DMAGA *)0 */
8670Sstevel@tonic-gate	END_MODULE(dma);
8680Sstevel@tonic-gate#endif
8690Sstevel@tonic-gate
8700Sstevel@tonic-gate/*
8710Sstevel@tonic-gate * Stubs for auditing.
8720Sstevel@tonic-gate */
8730Sstevel@tonic-gate#ifndef C2AUDIT_MODULE
8740Sstevel@tonic-gate	MODULE(c2audit,sys);
87511861SMarek.Pospisil@Sun.COM	NO_UNLOAD_STUB(c2audit, audit_init_module,	nomod_zero);
8760Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_start, 		nomod_zero);
8770Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_finish,		nomod_zero);
87811861SMarek.Pospisil@Sun.COM	NO_UNLOAD_STUB(c2audit, audit,			nomod_zero);
87911861SMarek.Pospisil@Sun.COM	NO_UNLOAD_STUB(c2audit, auditdoor,		nomod_zero);
8800Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_closef,		nomod_zero);
8810Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_core_start,	nomod_zero);
8820Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_core_finish,	nomod_zero);
8830Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_strputmsg,	nomod_zero);
8840Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_savepath,		nomod_zero);
8850Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_anchorpath,	nomod_zero);
8860Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_exit,		nomod_zero);
8870Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_exec,		nomod_zero);
8880Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_symlink,		nomod_zero);
8890Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_symlink_create,	nomod_zero);
8900Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_vncreate_start,	nomod_zero);
8910Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_vncreate_finish,	nomod_zero);
8920Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_enterprom,	nomod_zero);
8930Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_exitprom,		nomod_zero);
8940Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_chdirec,		nomod_zero);
8950Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_setf,		nomod_zero);
8960Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_sock,		nomod_zero);
8970Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_strgetmsg,	nomod_zero);
8980Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_ipc,		nomod_zero);
8990Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_ipcget,		nomod_zero);
9000Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_fdsend,		nomod_zero);
9010Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_fdrecv,		nomod_zero);
9020Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_priv,		nomod_zero);
9030Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_setppriv,		nomod_zero);
9040Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_devpolicy,	nomod_zero);
9050Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_setfsat_path,	nomod_zero);
9060Sstevel@tonic-gate	NO_UNLOAD_STUB(c2audit, audit_cryptoadm,	nomod_zero);
907898Skais	NO_UNLOAD_STUB(c2audit, audit_kssl,		nomod_zero);
9084307Spwernau	NO_UNLOAD_STUB(c2audit, audit_pf_policy,	nomod_zero);
90911861SMarek.Pospisil@Sun.COM	NO_UNLOAD_STUB(c2audit, au_doormsg,		nomod_zero);
91011861SMarek.Pospisil@Sun.COM	NO_UNLOAD_STUB(c2audit, au_uwrite,		nomod_zero);
91111861SMarek.Pospisil@Sun.COM	NO_UNLOAD_STUB(c2audit, au_to_arg32,		nomod_zero);
91211861SMarek.Pospisil@Sun.COM	NO_UNLOAD_STUB(c2audit, au_free_rec,		nomod_zero);
9130Sstevel@tonic-gate	END_MODULE(c2audit);
9140Sstevel@tonic-gate#endif
9150Sstevel@tonic-gate
9160Sstevel@tonic-gate/*
9170Sstevel@tonic-gate * Stubs for kernel rpc security service module
9180Sstevel@tonic-gate */
9190Sstevel@tonic-gate#ifndef RPCSEC_MODULE
9200Sstevel@tonic-gate	MODULE(rpcsec,misc);
9210Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec, sec_clnt_revoke,		nomod_zero);
9220Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec, authkern_create,		nomod_zero);
9230Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec, sec_svc_msg,		nomod_zero);
9240Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec, sec_svc_control,		nomod_zero);
9250Sstevel@tonic-gate	END_MODULE(rpcsec);
9260Sstevel@tonic-gate#endif
9270Sstevel@tonic-gate
9280Sstevel@tonic-gate/*
9290Sstevel@tonic-gate * Stubs for rpc RPCSEC_GSS security service module
9300Sstevel@tonic-gate */
9310Sstevel@tonic-gate#ifndef RPCSEC_GSS_MODULE
9320Sstevel@tonic-gate	MODULE(rpcsec_gss,misc);
9330Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, __svcrpcsec_gss,		nomod_zero);
9340Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_getcred,		nomod_zero);
9350Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_set_callback,	nomod_zero);
9360Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_secget,		nomod_zero);
9370Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_secfree,		nomod_zero);
9380Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_seccreate,		nomod_zero);
9390Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_set_defaults,	nomod_zero);
9400Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_revauth,		nomod_zero);
9410Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_secpurge,		nomod_zero);
9420Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_cleanup,		nomod_zero);
9430Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_get_versions,	nomod_zero);
9440Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_max_data_length,	nomod_zero);
9450Sstevel@tonic-gate	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_svc_max_data_length,	nomod_zero);
9467387SRobert.Gordon@Sun.COM	NO_UNLOAD_STUB(rpcsec_gss, rpc_gss_get_service_type,	nomod_zero);
9470Sstevel@tonic-gate	END_MODULE(rpcsec_gss);
9480Sstevel@tonic-gate#endif
9490Sstevel@tonic-gate
9500Sstevel@tonic-gate#ifndef IWSCN_MODULE
9510Sstevel@tonic-gate	MODULE(iwscn,drv);
9520Sstevel@tonic-gate	STUB(iwscn, srpop, 0);
9530Sstevel@tonic-gate	END_MODULE(iwscn);
9540Sstevel@tonic-gate#endif
9550Sstevel@tonic-gate
9560Sstevel@tonic-gate/*
9570Sstevel@tonic-gate * Stubs for checkpoint-resume module
9580Sstevel@tonic-gate */
9590Sstevel@tonic-gate#ifndef CPR_MODULE
9600Sstevel@tonic-gate        MODULE(cpr,misc);
9610Sstevel@tonic-gate        STUB(cpr, cpr, 0);
9620Sstevel@tonic-gate        END_MODULE(cpr);
9630Sstevel@tonic-gate#endif
9640Sstevel@tonic-gate
9650Sstevel@tonic-gate/*
9660Sstevel@tonic-gate * Stubs for VIS module
9670Sstevel@tonic-gate */
9680Sstevel@tonic-gate#ifndef VIS_MODULE
9690Sstevel@tonic-gate        MODULE(vis,misc);
9700Sstevel@tonic-gate        STUB(vis, vis_fpu_simulator, 0);
9710Sstevel@tonic-gate        STUB(vis, vis_fldst, 0);
9720Sstevel@tonic-gate        STUB(vis, vis_rdgsr, 0);
9730Sstevel@tonic-gate        STUB(vis, vis_wrgsr, 0);
9740Sstevel@tonic-gate        END_MODULE(vis);
9750Sstevel@tonic-gate#endif
9760Sstevel@tonic-gate
9770Sstevel@tonic-gate/*
9780Sstevel@tonic-gate * Stubs for kernel probes (tnf module).  Not unloadable.
9790Sstevel@tonic-gate */
9800Sstevel@tonic-gate#ifndef TNF_MODULE
9810Sstevel@tonic-gate	MODULE(tnf,drv);
9820Sstevel@tonic-gate	NO_UNLOAD_STUB(tnf, tnf_ref32_1,	nomod_zero);
9830Sstevel@tonic-gate	NO_UNLOAD_STUB(tnf, tnf_string_1,	nomod_zero);
9840Sstevel@tonic-gate	NO_UNLOAD_STUB(tnf, tnf_opaque_array_1,	nomod_zero);
9850Sstevel@tonic-gate	NO_UNLOAD_STUB(tnf, tnf_opaque32_array_1, nomod_zero);
9860Sstevel@tonic-gate	NO_UNLOAD_STUB(tnf, tnf_struct_tag_1,	nomod_zero);
9870Sstevel@tonic-gate	NO_UNLOAD_STUB(tnf, tnf_allocate,	nomod_zero);
9880Sstevel@tonic-gate	END_MODULE(tnf);
9890Sstevel@tonic-gate#endif
9900Sstevel@tonic-gate
9910Sstevel@tonic-gate/*
9920Sstevel@tonic-gate * Clustering: stubs for bootstrapping.
9930Sstevel@tonic-gate */
9940Sstevel@tonic-gate#ifndef CL_BOOTSTRAP
9950Sstevel@tonic-gate	MODULE(cl_bootstrap,misc);
9960Sstevel@tonic-gate	NO_UNLOAD_WSTUB(cl_bootstrap, clboot_modload, nomod_minus_one);
9970Sstevel@tonic-gate	NO_UNLOAD_WSTUB(cl_bootstrap, clboot_loadrootmodules, nomod_zero);
9980Sstevel@tonic-gate	NO_UNLOAD_WSTUB(cl_bootstrap, clboot_rootconf, nomod_zero);
9990Sstevel@tonic-gate	NO_UNLOAD_WSTUB(cl_bootstrap, clboot_mountroot, nomod_zero);
10000Sstevel@tonic-gate	NO_UNLOAD_WSTUB(cl_bootstrap, clconf_init, nomod_zero);
10010Sstevel@tonic-gate	NO_UNLOAD_WSTUB(cl_bootstrap, clconf_get_nodeid, nomod_zero);
10020Sstevel@tonic-gate	NO_UNLOAD_WSTUB(cl_bootstrap, clconf_maximum_nodeid, nomod_zero);
10030Sstevel@tonic-gate	NO_UNLOAD_WSTUB(cl_bootstrap, cluster, nomod_zero);
10040Sstevel@tonic-gate	END_MODULE(cl_bootstrap);
10050Sstevel@tonic-gate#endif
10060Sstevel@tonic-gate
10070Sstevel@tonic-gate/*
10080Sstevel@tonic-gate * Clustering: stubs for cluster infrastructure.
10090Sstevel@tonic-gate */
10100Sstevel@tonic-gate#ifndef CL_COMM_MODULE
10110Sstevel@tonic-gate	MODULE(cl_comm,misc);
10120Sstevel@tonic-gate	NO_UNLOAD_STUB(cl_comm, cladmin, nomod_minus_one);
10130Sstevel@tonic-gate	END_MODULE(cl_comm);
10140Sstevel@tonic-gate#endif
10150Sstevel@tonic-gate
10160Sstevel@tonic-gate/*
10170Sstevel@tonic-gate * Clustering: stubs for global file system operations.
10180Sstevel@tonic-gate */
10190Sstevel@tonic-gate#ifndef PXFS_MODULE
10200Sstevel@tonic-gate	MODULE(pxfs,fs);
10210Sstevel@tonic-gate	NO_UNLOAD_WSTUB(pxfs, clpxfs_aio_read, nomod_zero);
10220Sstevel@tonic-gate	NO_UNLOAD_WSTUB(pxfs, clpxfs_aio_write, nomod_zero);
10230Sstevel@tonic-gate	NO_UNLOAD_WSTUB(pxfs, cl_flk_state_transition_notify, nomod_zero);
10240Sstevel@tonic-gate	END_MODULE(pxfs);
10250Sstevel@tonic-gate#endif
10260Sstevel@tonic-gate
10270Sstevel@tonic-gate/*
102810923SEvan.Yan@Sun.COM * Stubs for PCI configurator module (misc/pcicfg).
10290Sstevel@tonic-gate */
103010923SEvan.Yan@Sun.COM#ifndef	PCICFG_MODULE
103110923SEvan.Yan@Sun.COM	MODULE(pcicfg,misc);
103210923SEvan.Yan@Sun.COM	STUB(pcicfg, pcicfg_configure, 0);
103310923SEvan.Yan@Sun.COM	STUB(pcicfg, pcicfg_unconfigure, 0);
103410923SEvan.Yan@Sun.COM	END_MODULE(pcicfg);
10350Sstevel@tonic-gate#endif
10360Sstevel@tonic-gate
10370Sstevel@tonic-gate#ifndef PCIHP_MODULE
10380Sstevel@tonic-gate	MODULE(pcihp,misc);
10390Sstevel@tonic-gate	WSTUB(pcihp, pcihp_init, nomod_minus_one);
10400Sstevel@tonic-gate	WSTUB(pcihp, pcihp_uninit, nomod_minus_one);
10410Sstevel@tonic-gate	WSTUB(pcihp, pcihp_info, nomod_minus_one);
10420Sstevel@tonic-gate	WSTUB(pcihp, pcihp_get_cb_ops, nomod_zero);
10430Sstevel@tonic-gate	END_MODULE(pcihp);
10440Sstevel@tonic-gate#endif
10450Sstevel@tonic-gate
10460Sstevel@tonic-gate/*
10470Sstevel@tonic-gate * Stubs for kernel cryptographic framework module (misc/kcf).
10480Sstevel@tonic-gate */
10490Sstevel@tonic-gate#ifndef KCF_MODULE
10500Sstevel@tonic-gate	MODULE(kcf,misc);
10510Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mech2id, nomod_minus_one);
10520Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_register_provider, nomod_minus_one);
10530Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_unregister_provider, nomod_minus_one);
10540Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_provider_notification, nomod_minus_one);
10550Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_op_notification, nomod_minus_one);
10560Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_kmflag, nomod_minus_one);
10570Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_digest, nomod_minus_one);
1058904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_digest_prov, nomod_minus_one);
10590Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_digest_init, nomod_minus_one);
1060904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_digest_init_prov, nomod_minus_one);
10610Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_digest_update, nomod_minus_one);
10620Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_digest_final, nomod_minus_one);
1063904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_digest_key_prov, nomod_minus_one);
10640Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_encrypt, nomod_minus_one);
1065904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_encrypt_prov, nomod_minus_one);
10660Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_encrypt_init, nomod_minus_one);
1067904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_encrypt_init_prov, nomod_minus_one);
10680Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_encrypt_update, nomod_minus_one);
10690Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_encrypt_final, nomod_minus_one);
10700Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_decrypt, nomod_minus_one);
1071904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_decrypt_prov, nomod_minus_one);
10720Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_decrypt_init, nomod_minus_one);
1073904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_decrypt_init_prov, nomod_minus_one);
10740Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_decrypt_update, nomod_minus_one);
10750Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_decrypt_final, nomod_minus_one);
10760Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_get_all_mech_info, nomod_minus_one);
1077904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_key_check, nomod_minus_one);
1078904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_key_check_prov, nomod_minus_one);
1079904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_key_derive, nomod_minus_one);
1080904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_key_generate, nomod_minus_one);
1081904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_key_generate_pair, nomod_minus_one);
1082904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_key_unwrap, nomod_minus_one);
1083904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_key_wrap, nomod_minus_one);
10840Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac, nomod_minus_one);
1085904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_mac_prov, nomod_minus_one);
10860Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac_verify, nomod_minus_one);
1087904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_mac_verify_prov, nomod_minus_one);
10880Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac_init, nomod_minus_one);
1089904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_mac_init_prov, nomod_minus_one);
10900Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac_update, nomod_minus_one);
10910Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac_final, nomod_minus_one);
10920Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac_decrypt, nomod_minus_one);
1093904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_prov, nomod_minus_one);
10940Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac_verify_decrypt, nomod_minus_one);
1095904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_mac_verify_decrypt_prov, nomod_minus_one);
10960Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_init, nomod_minus_one);
1097904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_init_prov, nomod_minus_one);
10980Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_update, nomod_minus_one);
10990Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_mac_decrypt_final, nomod_minus_one);
1100904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_object_copy, nomod_minus_one);
1101904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_object_create, nomod_minus_one);
1102904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_object_destroy, nomod_minus_one);
1103904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_object_find_final, nomod_minus_one);
1104904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_object_find_init, nomod_minus_one);
1105904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_object_find, nomod_minus_one);
1106904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_object_get_attribute_value, nomod_minus_one);
1107904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_object_get_size, nomod_minus_one);
1108904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_object_set_attribute_value, nomod_minus_one);
1109904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_session_close, nomod_minus_one);
1110904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_session_login, nomod_minus_one);
1111904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_session_logout, nomod_minus_one);
1112904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_session_open, nomod_minus_one);
11130Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_encrypt_mac, nomod_minus_one);
1114904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_prov, nomod_minus_one);
11150Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_init, nomod_minus_one);
1116904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_init_prov, nomod_minus_one);
11170Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_update, nomod_minus_one);
11180Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_encrypt_mac_final, nomod_minus_one);
11190Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_create_ctx_template, nomod_minus_one);
11200Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_destroy_ctx_template, nomod_minus_one);
11210Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_get_mech_list, nomod_minus_one);
11220Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_free_mech_list, nomod_minus_one);
11230Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_cancel_req, nomod_minus_one);
11240Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_cancel_ctx, nomod_minus_one);
11250Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_bufcall_alloc, nomod_minus_one);
11260Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_bufcall_free, nomod_minus_one);
11270Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_bufcall, nomod_minus_one);
11280Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_unbufcall, nomod_minus_one);
11290Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_notify_events, nomod_minus_one);
11300Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_unnotify_events, nomod_minus_one);
1131904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_get_provider, nomod_minus_one);
11322800Skrishna	NO_UNLOAD_STUB(kcf, crypto_get_provinfo, nomod_minus_one);
1133904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_release_provider, nomod_minus_one);
11340Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_sign, nomod_minus_one);
1135904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_sign_prov, nomod_minus_one);
11360Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_sign_init, nomod_minus_one);
1137904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_sign_init_prov, nomod_minus_one);
11380Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_sign_update, nomod_minus_one);
11390Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_sign_final, nomod_minus_one);
11400Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_sign_recover, nomod_minus_one);
1141904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_sign_recover_prov, nomod_minus_one);
1142904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_sign_recover_init_prov, nomod_minus_one);
11430Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_verify, nomod_minus_one);
1144904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_verify_prov, nomod_minus_one);
11450Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_verify_init, nomod_minus_one);
1146904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_verify_init_prov, nomod_minus_one);
11470Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_verify_update, nomod_minus_one);
11480Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_verify_final, nomod_minus_one);
11490Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, crypto_verify_recover, nomod_minus_one);
1150904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_verify_recover_prov, nomod_minus_one);
1151904Smcpowers	NO_UNLOAD_STUB(kcf, crypto_verify_recover_init_prov, nomod_minus_one);
11520Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, random_add_entropy, nomod_minus_one);
11538513SVladimir.Kotal@Sun.COM	NO_UNLOAD_STUB(kcf, random_add_pseudo_entropy, nomod_minus_one);
11540Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, random_get_bytes, nomod_minus_one);
11550Sstevel@tonic-gate	NO_UNLOAD_STUB(kcf, random_get_pseudo_bytes, nomod_minus_one);
11560Sstevel@tonic-gate	END_MODULE(kcf);
11570Sstevel@tonic-gate#endif
11580Sstevel@tonic-gate
11590Sstevel@tonic-gate/*
11600Sstevel@tonic-gate * Stubs for sha1. A non-unloadable module.
11610Sstevel@tonic-gate */
11620Sstevel@tonic-gate#ifndef SHA1_MODULE
11630Sstevel@tonic-gate	MODULE(sha1,crypto);
11640Sstevel@tonic-gate	NO_UNLOAD_STUB(sha1, SHA1Init, nomod_void);
11650Sstevel@tonic-gate	NO_UNLOAD_STUB(sha1, SHA1Update, nomod_void);
11660Sstevel@tonic-gate	NO_UNLOAD_STUB(sha1, SHA1Final,	nomod_void);
11670Sstevel@tonic-gate	END_MODULE(sha1);
11680Sstevel@tonic-gate#endif
11690Sstevel@tonic-gate
1170269Sericheng/*
1171269Sericheng * The following stubs are used by the mac module.
11725895Syz147064 * Since dld already depends on mac, these
1173269Sericheng * stubs are needed to avoid circular dependencies.
1174269Sericheng */
1175269Sericheng#ifndef	DLD_MODULE
11760Sstevel@tonic-gate	MODULE(dld,drv);
1177269Sericheng	STUB(dld, dld_init_ops, nomod_void);
1178269Sericheng	STUB(dld, dld_fini_ops, nomod_void);
117910616SSebastien.Roy@Sun.COM	STUB(dld, dld_autopush, nomod_minus_one);
118010654SGarrett.Damore@Sun.COM	STUB(dld, dld_devt_to_instance, nomod_minus_one);
11818275SEric Cheng	STUB(dld, dld_ioc_register, nomod_einval);
11828275SEric Cheng	STUB(dld, dld_ioc_unregister, nomod_void);
11830Sstevel@tonic-gate	END_MODULE(dld);
11840Sstevel@tonic-gate#endif
11850Sstevel@tonic-gate
11865895Syz147064/*
11875895Syz147064 * The following stubs are used by the mac module.
11885895Syz147064 * Since dls already depends on mac, these
11895895Syz147064 * stubs are needed to avoid circular dependencies.
11905895Syz147064 */
11915895Syz147064#ifndef	DLS_MODULE
11925895Syz147064	MODULE(dls,misc);
11935895Syz147064	STUB(dls, dls_devnet_mac, nomod_zero);
11945895Syz147064	STUB(dls, dls_devnet_hold_tmp, nomod_einval);
11955895Syz147064	STUB(dls, dls_devnet_rele_tmp, nomod_void);
11968275SEric Cheng	STUB(dls, dls_devnet_hold_link, nomod_einval);
11978275SEric Cheng	STUB(dls, dls_devnet_rele_link, nomod_void);
11986916Sartem	STUB(dls, dls_devnet_prop_task_wait, nomod_void);
11995895Syz147064	STUB(dls, dls_mgmt_get_linkid, nomod_einval);
12008275SEric Cheng	STUB(dls, dls_devnet_macname2linkid, nomod_einval);
12018275SEric Cheng	STUB(dls, dls_mgmt_get_linkinfo, nomod_einval);
12025895Syz147064	END_MODULE(dls);
12035895Syz147064#endif
12045895Syz147064
12055895Syz147064#ifndef SOFTMAC_MODULE
12065895Syz147064	MODULE(softmac,drv);
12075895Syz147064	STUB(softmac, softmac_hold_device, nomod_einval);
12085895Syz147064	STUB(softmac, softmac_rele_device, nomod_void);
12095895Syz147064	STUB(softmac, softmac_recreate, nomod_void);
12105895Syz147064	END_MODULE(softmac);
12115895Syz147064#endif
12125895Syz147064
121310616SSebastien.Roy@Sun.COM#ifndef IPTUN_MODULE
121410616SSebastien.Roy@Sun.COM	MODULE(iptun,drv);
121510616SSebastien.Roy@Sun.COM	STUB(iptun, iptun_create, nomod_einval);
121610616SSebastien.Roy@Sun.COM	STUB(iptun, iptun_delete, nomod_einval);
121710616SSebastien.Roy@Sun.COM	STUB(iptun, iptun_set_policy, nomod_einval);
121810616SSebastien.Roy@Sun.COM	END_MODULE(iptun);
121910616SSebastien.Roy@Sun.COM#endif
122010616SSebastien.Roy@Sun.COM
1221898Skais/*
12226707Sbrutus * Stubs for dcopy, for Intel IOAT KAPIs
12236707Sbrutus */
12246707Sbrutus#ifndef DCOPY_MODULE
12256707Sbrutus	MODULE(dcopy,misc);
12266707Sbrutus	NO_UNLOAD_STUB(dcopy, dcopy_query, nomod_minus_one);
12276707Sbrutus	NO_UNLOAD_STUB(dcopy, dcopy_query_channel, nomod_minus_one);
12286707Sbrutus	NO_UNLOAD_STUB(dcopy, dcopy_alloc, nomod_minus_one);
12296707Sbrutus	NO_UNLOAD_STUB(dcopy, dcopy_free, nomod_minus_one);
12306707Sbrutus	NO_UNLOAD_STUB(dcopy, dcopy_cmd_alloc, nomod_minus_one);
12316707Sbrutus	NO_UNLOAD_STUB(dcopy, dcopy_cmd_free, nomod_void);
12326707Sbrutus	NO_UNLOAD_STUB(dcopy, dcopy_cmd_post, nomod_minus_one);
12336707Sbrutus	NO_UNLOAD_STUB(dcopy, dcopy_cmd_poll, nomod_minus_one);
12346707Sbrutus	END_MODULE(dcopy);
12356707Sbrutus#endif
12366707Sbrutus
12378023SPhil.Kirk@Sun.COM#ifndef IPNET_MODULE
12388023SPhil.Kirk@Sun.COM	MODULE(ipnet,drv);
12398023SPhil.Kirk@Sun.COM	STUB(ipnet, ipnet_if_getdev, nomod_zero);
12408023SPhil.Kirk@Sun.COM	STUB(ipnet, ipnet_walk_if, nomod_zero);
12418023SPhil.Kirk@Sun.COM	END_MODULE(ipnet);
12428023SPhil.Kirk@Sun.COM#endif
12438023SPhil.Kirk@Sun.COM
12448348SEric.Yu@Sun.COM/*
12458348SEric.Yu@Sun.COM * Stubs for kernel socket, for iscsi
12468348SEric.Yu@Sun.COM */
12478348SEric.Yu@Sun.COM#ifndef KSOCKET_MODULE
12488348SEric.Yu@Sun.COM	MODULE(ksocket, misc);
12498348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_setsockopt, nomod_minus_one);
12508348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_getsockopt, nomod_minus_one);
12518348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_getpeername, nomod_minus_one);
12528348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_getsockname, nomod_minus_one);
12538348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_socket, nomod_minus_one);
12548348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_bind, nomod_minus_one);
12558348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_listen, nomod_minus_one);
12568348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_accept, nomod_minus_one);
12578348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_connect, nomod_minus_one);
12588348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_recv, nomod_minus_one);
12598348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_recvfrom, nomod_minus_one);
12608348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_recvmsg, nomod_minus_one);
12618348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_send, nomod_minus_one);
12628348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_sendto, nomod_minus_one);
12638348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_sendmsg, nomod_minus_one);
12648348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_ioctl, nomod_minus_one);
12658348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_setcallbacks, nomod_minus_one);
12668348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_hold, nomod_minus_one);
12678348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_rele, nomod_minus_one);
12688348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_shutdown, nomod_minus_one);
12698348SEric.Yu@Sun.COM	NO_UNLOAD_STUB(ksocket, ksocket_close, nomod_minus_one);
12708348SEric.Yu@Sun.COM	END_MODULE(ksocket);
12718348SEric.Yu@Sun.COM#endif
12728348SEric.Yu@Sun.COM
127312199Sgerald.jelinek@sun.com/*
127412199Sgerald.jelinek@sun.com * Stubs for elfexec
127512199Sgerald.jelinek@sun.com */
127612199Sgerald.jelinek@sun.com#ifndef ELFEXEC_MODULE
127712199Sgerald.jelinek@sun.com	MODULE(elfexec,exec);
127812199Sgerald.jelinek@sun.com	STUB(elfexec, elfexec,      	nomod_einval);
127912199Sgerald.jelinek@sun.com	STUB(elfexec, elf32exec,	nomod_einval);
128012199Sgerald.jelinek@sun.com	STUB(elfexec, mapexec_brand,	nomod_einval);
128112199Sgerald.jelinek@sun.com	STUB(elfexec, mapexec32_brand,	nomod_einval);
128212199Sgerald.jelinek@sun.com	END_MODULE(elfexec);
128312199Sgerald.jelinek@sun.com#endif
128412199Sgerald.jelinek@sun.com
12850Sstevel@tonic-gate! this is just a marker for the area of text that contains stubs
12860Sstevel@tonic-gate	.seg ".text"
12870Sstevel@tonic-gate	.global stubs_end
12880Sstevel@tonic-gatestubs_end:
12890Sstevel@tonic-gate	nop
12900Sstevel@tonic-gate
12910Sstevel@tonic-gate#endif	/* lint */
1292