linux-bk/include/linux/kallsyms.h
<<
>>
Prefs
   1/* Rewritten and vastly simplified by Rusty Russell for in-kernel
   2 * module loader:
   3 *   Copyright 2002 Rusty Russell <rusty@rustcorp.com.au> IBM Corporation
   4 */
   5#ifndef _LINUX_KALLSYMS_H
   6#define _LINUX_KALLSYMS_H
   7
   8#include <linux/config.h>
   9
  10#define KSYM_NAME_LEN 127
  11
  12#ifdef CONFIG_KALLSYMS
  13/* Lookup the address for a symbol. Returns 0 if not found. */
  14unsigned long kallsyms_lookup_name(const char *name);
  15
  16/* Lookup an address.  modname is set to NULL if it's in the kernel. */
  17const char *kallsyms_lookup(unsigned long addr,
  18                            unsigned long *symbolsize,
  19                            unsigned long *offset,
  20                            char **modname, char *namebuf);
  21
  22/* Replace "%s" in format with address, if found */
  23extern void __print_symbol(const char *fmt, unsigned long address);
  24
  25#else /* !CONFIG_KALLSYMS */
  26
  27static inline unsigned long kallsyms_lookup_name(const char *name)
  28{
  29        return 0;
  30}
  31
  32static inline const char *kallsyms_lookup(unsigned long addr,
  33                                          unsigned long *symbolsize,
  34                                          unsigned long *offset,
  35                                          char **modname, char *namebuf)
  36{
  37        return NULL;
  38}
  39
  40/* Stupid that this does nothing, but I didn't create this mess. */
  41#define __print_symbol(fmt, addr)
  42#endif /*CONFIG_KALLSYMS*/
  43
  44/* This macro allows us to keep printk typechecking */
  45static void __check_printsym_format(const char *fmt, ...)
  46__attribute__((format(printf,1,2)));
  47static inline void __check_printsym_format(const char *fmt, ...)
  48{
  49}
  50
  51#define print_symbol(fmt, addr)                 \
  52do {                                            \
  53        __check_printsym_format(fmt, "");       \
  54        __print_symbol(fmt, addr);              \
  55} while(0)
  56
  57#endif /*_LINUX_KALLSYMS_H*/
  58
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.