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

# uidinfo(9)

functions for managing UID information

## NAME

**uidinfo**, **uihashinit**, **uifind**, **uihold**, **uifree** – functions for managing UID information

## SYNOPSIS

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

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

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

*void*\

**uihashinit**(*void*);

*struct uidinfo \**\

**uifind**(*uid\_t uid*);

*void*\

**uihold**(*struct uidinfo \*uip*);

*void*\

**uifree**(*struct uidinfo \*uip*);

## DESCRIPTION

The **uidinfo** family of functions is used to manage *uidinfo* structures. Each *uidinfo* structure maintains per uid resource consumption counts, including the process count and socket buffer space usage.

The **uihashinit**() function initializes the *uidinfo* hash table and its mutex. This function should only be called during system initialization.

The **uifind**() function looks up and returns the *uidinfo* structure for *uid*. If no *uidinfo* structure exists for *uid*, a new structure will be allocated and initialized. The **uidinfo** hash mutex is acquired and released.

The **uihold**() function increases the reference count on *uip*. *uip*'s lock is acquired and released.

The **uifree**() function decreases the reference count on *uip*, and if the count reaches 0 *uip* is freed. *uip*'s lock is acquired and release and the uidinfo hash mutex may be acquired and released.

## RETURN VALUES

**uifind**() returns a pointer to an initialized *uidinfo* structure, and should not fail.

## AUTHORS

This manual page was written by Chad David ⟨davidc@acns.ab.ca⟩.
