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

# au\_fcntl\_cmd\_t\_bsm(3)

convert between BSM and local fcntl(2) command values

Part of [au\_bsm\_to\_fcntl\_cmd(3)](/au_bsm_to_fcntl_cmd/3.md).

## NAME

**au\_bsm\_to\_fcntl\_cmd**, **au\_fcntl\_cmd\_to\_bsm** – convert between BSM and local [fcntl(2)](/fcntl/2.md) command values

## LIBRARY

library “libbsm”

## SYNOPSIS

**#include \<bsm/libbsm.h\>**

*int*\

**au\_bsm\_to\_fcntl\_cmd**(*u\_short bsm\_fcntl\_cmd*, *int \*local\_fcntl\_cmdp*);

*u\_short*\

**au\_fcntl\_cmd\_to\_bsm**(*int local\_fcntl\_cmd*);

## DESCRIPTION

These interfaces may be used to convert between the local and BSM [fcntl(2)](/fcntl/2.md) command values. The **au\_bsm\_to\_fcntl\_cmd**() function accepts a BSM command value, *bsm\_fcntl\_cmd*, and converts it to a local command value passed to [fcntl(2)](/fcntl/2.md), that will be stored in the integer pointed to by *local\_fcntl\_cmdp* if successful. This call will fail if the BSM command value cannot be mapped into a local [fcntl(2)](/fcntl/2.md) command value which may occur if the command token was generated on another operating system.

The **au\_fcntl\_cmd\_to\_bsm**() function accepts a local [fcntl(2)](/fcntl/2.md) command value, and returns the BSM [fcntl(2)](/fcntl/2.md) command value for it.  This call cannot fail, and instead returns a BSM command value indicating to a later decoder that the command value could not be encoded.

## RETURN VALUES

On success, **au\_bsm\_to\_fcntl\_cmd**() returns 0 and a converted command value; on failure, it returns -1 but does not set [errno(2)](/errno/2.md).

## SEE ALSO

[fcntl(2)](/fcntl/2.md), [au\_bsm\_to\_domain(3)](/au_bsm_to_domain/3.md), [au\_bsm\_to\_socket\_type(3)](/au_bsm_to_socket_type/3.md), [au\_domain\_to\_bsm(3)](/au_domain_to_bsm/3.md), [au\_socket\_type\_to\_bsm(3)](/au_socket_type_to_bsm/3.md), [libbsm(3)](/libbsm/3.md)

## HISTORY

**au\_bsm\_to\_domain**() and **au\_domain\_to\_bsm**() were introduced in OpenBSM 1.1.

## AUTHORS

These functions were implemented by Stacey Son under contract to Apple Inc.

The Basic Security Module (BSM) interface to audit records and audit event stream format were defined by Sun Microsystems.
