libnvme\_mi\_mi\_pda\_read(9) libnvme API manual libnvme\_mi\_mi\_pda\_read(9)

# [NAME](#NAME)

libnvme\_mi\_mi\_pda\_read - Read the NVMe-MI Persistent Data Area (PDA)

# [SYNOPSIS](#SYNOPSIS)

**int libnvme\_mi\_mi\_pda\_read** **(struct libnvme\_mi\_ep \*ep ,** **enum nvme\_mi\_pda\_dformat dformat ,** **\_\_u32 dofst ,** **\_\_u32 dlen ,** **void \*data ,** **size\_t \*data\_len );**

# [ARGUMENTS](#ARGUMENTS)

[ep](#ep)

endpoint for MI communication

[dformat](#dformat)

data format to use for *dofst* and *dlen*, see *enum nvme\_mi\_pda\_dformat*

[dofst](#dofst)

starting offset, in units of *dformat*, into the PDA to read

[dlen](#dlen)

length, in units of *dformat*, to read from the PDA starting at *dofst*

[data](#data)

buffer to receive the PDA contents

[data\_len](#data_len)

in: size of *data*; out: length of data actually returned

# [DESCRIPTION](#DESCRIPTION)

Performs an NVMe-MI PDA Read command. See the PDA Size (PDAS) and Supported Data Format (SDFORMAT) fields of *struct nvme\_mi\_port\_smb* for the size and supported *dformat* values of the PDA on a given port.

# [RETURN](#RETURN)

The nvme command status if a response was received (see *enum nvme\_status\_field*) or negative error code otherwise.

libnvme\_mi\_mi\_pda\_read October 2026

---

Document: libnvme_mi_mi_pda_read-libnvme3(2) from nvme-cli 3.2-r0 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
