---
name: "BUF_TIMELOCK"
section: "9"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/BUF_TIMELOCK"
---

# BUF\_TIMELOCK(9)

locks a buffer

## NAME

**BUF\_TIMELOCK** – locks a buffer

## SYNOPSIS

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

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

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

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

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

*int*\

**BUF\_TIMELOCK**(*struct buf \*bp*, *int locktype*, *char \*wmesg*, *int catch*, *int timo*);

## DESCRIPTION

The **BUF\_TIMELOCK**() function locks the given buffer, and limits the amount of time it will sleep to *timo* and OR's *catch* into the sleep's priority. *wmesg* is the wmesg used in the sleep.

Its arguments are:

- *bp*

  The buffer to lock.

- *locktype*

  Flags controlling the type of lock. See [lockmgr(9)](/lockmgr/9.md) for details.

- *wmesg*

  The wmesg used in any sleeps while acquiring the lock.

- *catch*

  Priority OR'd into the sleep's priority.

- *timo*

  The timeout for any sleeps encountered during the lock.

## RETURN VALUES

A value of 0 is returned on success. See [lockmgr(9)](/lockmgr/9.md) for details on non-zero return values.

## SEE ALSO

[buf(9)](/buf/9.md), [BUF\_LOCK(9)](/BUF_LOCK/9.md), [BUF\_UNLOCK(9)](/BUF_UNLOCK/9.md), [lockmgr(9)](/lockmgr/9.md)

## AUTHORS

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