libnvme\_mi\_control(9) libnvme API manual libnvme\_mi\_control(9)

# [NAME](#NAME)

libnvme\_mi\_control - Perform a Control Primitive command

# [SYNOPSIS](#SYNOPSIS)

**int libnvme\_mi\_control** **(struct libnvme\_mi\_ep \*ep ,** **\_\_u8 opcode ,** **\_\_u16 cpsp ,** **\_\_u16 \*result\_cpsr );**

# [ARGUMENTS](#ARGUMENTS)

[ep](#ep)

endpoint for MI communication

[opcode](#opcode)

Control Primitive opcode (using *enum nvme\_mi\_control\_opcode*)

[cpsp](#cpsp)

Control Primitive Specific Parameter

[result\_cpsr](#result_cpsr)

Optional field to return the result from the CPSR field

# [DESCRIPTION](#DESCRIPTION)

Perform a Control Primitive command, using the opcode specified in *opcode* Stores the result from the CPSR field in *result\_cpsr* if set.

See: *enum nvme\_mi\_control\_opcode*

# [RETURN](#RETURN)

0 on success, negative error code otherwise.

libnvme\_mi\_control September 2026

---

Document: libnvme_mi_control-libnvme3(2) from nvme-cli 3.1-r1 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
