get_kernel_syms - retrieve exported kernel and module sym­
       bols


SYNOPSIS

       #include <linux/module.h>

       int get_kernel_syms(struct kernel_sym *table);


DESCRIPTION

       If table is NULL, get_kernel_syms returns  the  number  of
       symbols  available  for  query.   Otherwise  it fills in a
       table of structures:

              struct kernel_sym
              {
                unsigned long value;
                char name[60];
              };

       The symbols are interspersed with  magic  symbols  of  the
       form  #module-name  with  the kernel having an empty name.
       The value associated with a symbol of  this  form  is  the
       address at which the module is loaded.

       The  symbols  exported from each module follow their magic
       module tag and the modules are  returned  in  the  reverse
       order they were loaded.


RETURN VALUE

       Returns  the number of symbols returned.  There is no pos­
       sible error return.


SEE ALSO

       create_module(2),    init_module(2),     delete_module(2),
       query_module(2).


BUGS

       There  is  no way to indicate the size of the buffer allo­
       cated for table.  If symbols have been added to the kernel
       since  the program queried for the symbol table size, mem­
       ory will be corrupted.

       The length of exported symbol names is limited to 59.

       Because of these limitations, this system call  is  depre­
       cated in favor of query_module.