root/include/linux/symtab_begin.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 #include <linux/linkage.h>
   2 
   3 #ifdef MODVERSIONS
   4 # undef _set_ver
   5 # undef X
   6 /*
   7  * These two macros _will_ get enough arguments from the X* macros
   8  * since "sym" expands to "symaddr, symstr" from the #define in *.ver
   9  */
  10 # define _basic_version(symaddr,symstr)  symaddr, symstr
  11 # define _alias_version(really,symaddr,symstr)  (void *) & really , symstr
  12 
  13 # ifndef __GENKSYMS__
  14 #  ifdef MODULE
  15 #    define _set_ver(sym,ver) \
  16         (void *) & sym ## _R ## ver, SYMBOL_NAME_STR(sym) "_R" #ver
  17 #  else /* !MODULE */
  18 #    define _set_ver(sym,ver) \
  19         (void *) & sym, SYMBOL_NAME_STR(sym) "_R" #ver
  20 #  endif /* !MODULE */
  21 #  define X(sym) { _basic_version(sym) }
  22 /*
  23  * For _really_ stacked modules:
  24  *
  25  * Use "Xalias(local_symbol, symbol_from_other_module)"
  26  * to make subsequent modules really use "local_symbol"
  27  * when they think that they are using "symbol_from_other_module"
  28  *
  29  * The "aliasing" module can still use "symbol_from_other_module",
  30  * but can now replace and/or modify the behaviour of that symbol.
  31  */
  32 #  define Xalias(really,sym) { _alias_version(really,sym) }
  33 # endif /* !__GENKSYMS__ */
  34 #else /* !MODVERSIONS */
  35 # define X(sym) { (void *) & sym, SYMBOL_NAME_STR(sym)}
  36 # define Xalias(really,sym) { (void *) & really, SYMBOL_NAME_STR(sym)}
  37 #endif /* MODVERSIONS */
  38 /*
  39  * Some symbols always need to be unversioned.  This includes
  40  * compiler generated calls to functions.
  41  */
  42 #define XNOVERS(sym) { (void *) & sym, SYMBOL_NAME_STR(sym)}
  43 
  44 #define EMPTY {0,0}
  45         0, 0, 0, {

/* [previous][next][first][last][top][bottom][index][help] */