The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/ddb/db_kld.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Mach Operating System
    3  * Copyright (c) 1991,1990 Carnegie Mellon University
    4  * All Rights Reserved.
    5  *
    6  * Permission to use, copy, modify and distribute this software and its
    7  * documentation is hereby granted, provided that both the copyright
    8  * notice and this permission notice appear in all copies of the
    9  * software, derivative works or modified versions, and any portions
   10  * thereof, and that both notices appear in supporting documentation.
   11  *
   12  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
   13  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   14  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   15  *
   16  * Carnegie Mellon requests users of this software to return to
   17  *
   18  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   19  *  School of Computer Science
   20  *  Carnegie Mellon University
   21  *  Pittsburgh PA 15213-3890
   22  *
   23  * any improvements or extensions that they make and grant Carnegie the
   24  * rights to redistribute these changes.
   25  *
   26  * $FreeBSD: src/sys/ddb/db_kld.c,v 1.9 2000/01/11 13:25:12 peter Exp $
   27  *      from db_aout.c,v 1.20 1998/06/07 17:09:36 dfr Exp
   28  */
   29 
   30 /*
   31  *      Author: David B. Golub, Carnegie Mellon University
   32  *      Date:   7/90
   33  */
   34 /*
   35  * Symbol table routines for kld maintained kernels.
   36  */
   37 
   38 #include <sys/param.h>
   39 #include <sys/systm.h>
   40 #include <sys/linker.h>
   41 
   42 #include <ddb/ddb.h>
   43 #include <ddb/db_sym.h>
   44 
   45 #if defined(__x86_64__)
   46 vm_offset_t    ksym_start, ksym_end;
   47 #endif
   48 
   49 c_db_sym_t
   50 X_db_lookup(db_symtab_t *stab, const char *symstr)
   51 {
   52         c_linker_sym_t sym;
   53 
   54         if (linker_ddb_lookup(symstr, &sym) == 0)
   55             return (c_db_sym_t) sym;
   56         else
   57             return (c_db_sym_t) 0;
   58 }
   59 
   60 /*
   61  * Parameters:
   62  *     diffp:   in/out
   63  */
   64 c_db_sym_t
   65 X_db_search_symbol(db_symtab_t *symtab, db_addr_t off, db_strategy_t strategy,
   66                    db_expr_t *diffp)
   67 {
   68         c_linker_sym_t sym;
   69         long diff;
   70 
   71         if (linker_ddb_search_symbol((caddr_t) off, &sym, &diff) == 0) {
   72                 *diffp = (db_expr_t) diff;
   73                 return (c_db_sym_t) sym;
   74         }
   75 
   76         return 0;
   77 }
   78 
   79 /*
   80  * Return the name and value for a symbol.
   81  */
   82 void
   83 X_db_symbol_values(db_symtab_t *symtab, c_db_sym_t dbsym, const char **namep,
   84                    db_expr_t *valuep)
   85 {
   86         c_linker_sym_t sym = (c_linker_sym_t) dbsym;
   87         linker_symval_t symval;
   88 
   89         symval.name = NULL;
   90         symval.value = NULL;
   91         linker_ddb_symbol_values(sym, &symval);
   92         if (namep)
   93             *namep = (const char*) symval.name;
   94         if (valuep)
   95             *valuep = (db_expr_t) symval.value;
   96 }
   97 
   98 
   99 boolean_t
  100 X_db_line_at_pc(db_symtab_t *symtab, c_db_sym_t cursym, char **filename,
  101                 int *linenum, db_expr_t off)
  102 {
  103         return FALSE;
  104 }
  105 
  106 boolean_t
  107 X_db_sym_numargs(db_symtab_t *symtab, c_db_sym_t cursym, int *nargp,
  108                  char **argnamep)
  109 {
  110         return FALSE;
  111 }
  112 
  113 /*
  114  * Initialization routine for a.out files.
  115  */
  116 void
  117 kdb_init(void)
  118 {
  119         db_add_symbol_table(0, 0, "kernel", 0);
  120 }

Cache object: 3fa40af3cf6abdfef4e52e78531aea4a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.