macOS#
System Configuration#
To use the macOS backend you need to be running macOS. xNVMe is likely to work on multiple different versions of macOS, however to ensure compatibility we recommend choosing among the versions listed in the Toolchain section.
Device Identifiers#
macOS exposes NVMe devices as files using the following naming schemes:
/dev/disk{ctrlr_id}
NVMe Controller device node
Instrumentation#
The backend identifier for the macOS backend is: macos
. The macOS backend
encapsulates the interfaces below. Some of these are mix-ins from the
Common-Backend Implementations. For these, links point to descriptions in
the CBI section. For the macOS-specific interfaces, descriptions are available in the
corresponding subsections.
Memory Allocators
posix`
, Use libcmalloc()/free()
withsysconf()
for alignment, add link to CBI
Asynchronous Interfaces
emu
, add link to CBIposix
, add link to CBIthrpool
, add link to CBI
Synchronous Interfaces
macos
, Use pread()/write() for synchronous I/O
Admin Interfaces
macos
, Use macOS NVMe SMART Interface admin commands
Device Interfaces
macos
, Use macOS file/dev handles and enumerate NVMe devices