1 .\" $NetBSD: ksyms.4,v 1.5 2008/04/30 13:10:54 martin Exp $
3 .\" Copyright (c) 2003 The NetBSD Foundation, Inc.
4 .\" All rights reserved.
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\" notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\" notice, this list of conditions and the following disclaimer in the
13 .\" documentation and/or other materials provided with the distribution.
15 .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
16 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17 .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
19 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 .\" POSSIBILITY OF SUCH DAMAGE.
32 .Nd kernel symbol table interface
34 .Cd "pseudo-device ksyms"
38 character device provides a read-only interface to the current
40 It can be accessed either as a sequential
41 file, where it looks like an executable file but with zero-sized
42 text and data segments, or via
46 represents the symbol table at the time when the device is opened,
47 and may not change until it is closed.
49 The in-kernel symbol manager is designed to be able to handle
50 any type of symbol table.
53 symbol tables are currently dealt with.
57 command codes below are defined in
60 The (third) argument to the
62 should be a pointer to the type indicated.
63 .Bl -tag -width indent -offset indent
64 .It Dv KIOCGSIZE (int)
65 Returns the total size of the current symbol table.
66 This should be used when allocating a buffer to read in the
67 whole symbol table to memory.
68 .It Dv KIOCGVALUE (struct ksyms_gsymbol)
69 Returns the value for the given symbol name in a symtab-independent
71 .Bd -literal -offset indent
72 struct ksyms_gsymbol {
74 unsigned long *kg_value;
80 should be set to the name of the requested value, and the address that
82 points to will receive the symbol value.
83 .It Dv KIOCGSYMBOL (struct ksyms_gsymbol)
84 Returns the complete symbol for the given symbol name.
85 .Bd -literal -offset indent
86 struct ksyms_gsymbol {
94 should be set to the name of the requested symbol, and the found
95 symbol will be written to the
98 It is the callers responsibility to ensure that enough space
99 for the symbol is allocated.
102 .Bl -tag -width /dev/ksymsX
112 device exists in many different operating systems.
113 This implementation is modelled in function after Solaris
117 driver was written by Anders Magnusson for
122 driver first appeared in