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