diff options
Diffstat (limited to 'lib/libc/sys/kldsym.2')
-rw-r--r-- | lib/libc/sys/kldsym.2 | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/lib/libc/sys/kldsym.2 b/lib/libc/sys/kldsym.2 new file mode 100644 index 0000000..acd6fcd --- /dev/null +++ b/lib/libc/sys/kldsym.2 @@ -0,0 +1,122 @@ +.\" Copyright (c) 2001 Chris Costello <chris@FreeBSD.org> +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd July 26, 2001 +.Dt KLDSYM 2 +.Os +.Sh NAME +.Nm kldsym +.Nd look up address by symbol name in a KLD +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In sys/param.h +.In sys/linker.h +.Ft int +.Fn kldsym "int fileid" "int command" "void *data" +.Sh DESCRIPTION +The +.Fn kldsym +system call returns the address of the symbol specified in +.Fa data +in the module specified by +.Fa fileid . +If +.Fa fileid +is 0, all loaded modules are searched. +Currently, the only +.Fa command +implemented is +.Dv KLDSYM_LOOKUP . +.Pp +The +.Fa data +argument is of the following structure: +.Pp +.Bd -literal -offset indent +struct kld_sym_lookup { + int version; /* sizeof(struct kld_sym_lookup) */ + char *symname; /* Symbol name we are looking up */ + u_long symvalue; + size_t symsize; +}; +.Ed +.Pp +The +.Va version +member is to be set +by the code calling +.Fn kldsym +to +.Fn sizeof "struct kld_sym_lookup" . +The next two members, +.Va version +and +.Va symname , +are specified by the user. +The last two, +.Va symvalue +and +.Va symsize , +are filled in by +.Fn kldsym +and contain the address associated with +.Va symname +and the size of the data it points to, respectively. +.Sh RETURN VALUES +.Rv -std kldsym +.Sh ERRORS +The +.Fn kldsym +system call will fail if: +.Bl -tag -width Er +.It Bq Er EINVAL +Invalid value in +.Fa data->version +or +.Fa command . +.It Bq Er ENOENT +The +.Fa fileid +argument +is invalid, +or the specified symbol could not be found. +.El +.Sh SEE ALSO +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldunload 2 , +.Xr modfind 2 , +.Xr modnext 2 , +.Xr modstat 2 , +.Xr kld 4 +.Sh HISTORY +The +.Fn kldsym +system call first appeared in +.Fx 3.0 . |