---
name: "modstat"
section: "2freebsd"
platform: "linux"
package: "freebsd-manpages"
version: "12.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/modstat/2freebsd"
---

# modstat(2freebsd)

get status of kernel module

## NAME

**modstat** – get status of kernel module

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

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

*int*\

**modstat**(*int modid*, *struct module\_stat \*stat*);

## DESCRIPTION

The **modstat**() system call writes the info for the kernel module referred to by *modid* into *stat*.

```
struct module_stat {
	int         version;        /* set to sizeof(module_stat) */
	char        name[MAXMODNAME];
	int         refs;
	int         id;
	modspecific_t data;
};
typedef union modspecific {
	int         intval;
	u_int       uintval;
	long        longval;
	u_long      ulongval;
} modspecific_t;
```

- version

  This field is set to the size of the structure mentioned above by the code calling **modstat**(), and not **modstat**() itself.

- name

  The name of the module referred to by *modid*.

- refs

  The number of modules referenced by *modid*.

- id

  The id of the module specified in *modid*.

- data

  Module specific data.

## RETURN VALUES

The **modstat()** 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 information for the module referred to by *modid* is filled into the structure pointed to by *stat* unless:

- \[ENOENT\]

  The module was not found (probably not loaded).

- \[EINVAL\]

  The version specified in the *version* field of stat is not the proper version. You would need to rebuild world, the kernel, or your application, if this error occurs, given that you did properly fill in the *version* field.

- \[EFAULT\]

  There was a problem copying one, some, or all of the fields into *stat* in the [copyout(9)](/copyout/9.md) function.

## SEE ALSO

[kldfind(2)](/kldfind/2.md), [kldfirstmod(2)](/kldfirstmod/2.md), [kldload(2)](/kldload/2.md), [kldnext(2)](/kldnext/2.md), [kldstat(2)](/kldstat/2.md), [kldsym(2)](/kldsym/2.md), [kldunload(2)](/kldunload/2.md), [modfind(2)](/modfind/2.md), [modfnext(2)](/modfnext/2.md), [modnext(2)](/modnext/2.md), [kld(4)](/kld/4.md), [kldstat(8)](/kldstat/8.md)

## HISTORY

The **kld** interface first appeared in FreeBSD 3.0.
