---
name: "kldsym"
section: "2"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/kldsym"
---

# kldsym(2)

look up address by symbol name in a KLD

## NAME

**kldsym** – look up address by symbol name in a KLD

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<sys/param.h\>**

**#include \<sys/linker.h\>**

*int*\

**kldsym**(*int fileid*, *int command*, *void \*data*);

## DESCRIPTION

The **kldsym**() system call returns the address of the symbol specified in *data* in the module specified by *fileid*. If *fileid* is 0, all loaded modules are searched. Currently, the only *command* implemented is KLDSYM\_LOOKUP.

The *data* argument is of the following structure:

```
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;
};
```

The *version* member is to be set by the code calling **kldsym**() to **sizeof**(*struct kld\_sym\_lookup*). The next two members, *version* and *symname*, are specified by the user. The last two, *symvalue* and *symsize*, are filled in by **kldsym**() and contain the address associated with *symname* and the size of the data it points to, respectively.

## RETURN VALUES

The **kldsym()** function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

## ERRORS

The **kldsym**() system call will fail if:

- \[EINVAL\]

  Invalid value in *data-\>version* or *command*.

- \[ENOENT\]

  The *fileid* argument is invalid, or the specified symbol could not be found.

## SEE ALSO

[kldfind(2)](/kldfind/2.md), [kldfirstmod(2)](/kldfirstmod/2.md), [kldload(2)](/kldload/2.md), [kldnext(2)](/kldnext/2.md), [kldunload(2)](/kldunload/2.md), [modfind(2)](/modfind/2.md), [modnext(2)](/modnext/2.md), [modstat(2)](/modstat/2.md), [kld(4)](/kld/4.md)

## HISTORY

The **kldsym**() system call first appeared in FreeBSD 3.0.
