libnvme(9)

πŸ’– libnvme β€” struct nvme_lm_migration_send_args πŸ’–

okay bestie, so this page lives in the libnvme API manual, and it's all about one lil struct: the arguments for the Migration Send command. that's it. that's the whole vibe. let's get into it πŸ¦‹


✨ NAME ✨

struct nvme_lm_migration_send_args β€” Arguments for the Migration Send command


🌸 SYNOPSIS 🌸

struct nvme_lm_migration_send_args {
    __u64 offset;
    __u32 *result;
    void *data;
    int args_size;
    int fd;
    __u32 timeout;
    __u32 numd;
    __u16 mos;
    __u16 cntlid;
    __u16 csuuidi;
    __u8 sel;
    __u8 uidx;
    __u8 stype;
    __u8 seqind;
    __u8 csvi;
    bool dudmq;
};

πŸŽ€ Members πŸŽ€

  • offset β€” Offset: this one says where in the data you're starting, in bytes, inside all the data that's available to be returned. basically it sets the starting point for whatever actually gets handed back to the host. πŸ“
  • result β€” on completion this gets set to the command's CQE DWORD 0 controller response. she reports back fr fr.
  • data β€” Pointer to data. yes ma'am, the data pointer.
  • args_size β€” Length of structure. how big she is.
  • fd β€” File descriptor of nvme device. that's your connection to the device, bestie.
  • timeout β€” Timeout in ms. clock's ticking ⏰
  • numd β€” Number of Dwords (NUMD): this field specifies the number of dwords being transferred. dwords. not words. dwords. πŸ’…
  • mos β€” Management Operation Specific (MOS): this field is specific to the SEL type. it's giving "depends who's asking".
  • cntlid β€” Controller ID: this field specifies the identifier of the controller that the operation gets performed on. 🎯
  • csuuidi β€” Controller State UUID Index (CSUUIDI): a non-zero value here specifies the index to a specific entry in the Vendor Specific Controller State UUID Supported. list of the Supported Controller State Formats data structure. (that sentence is exactly what the manpage says, I'm just the messenger 🫢)
  • sel β€” Select (SEL): this field specifies the type of management operation to perform. the main character selector, lowkey.
  • uidx β€” UUID Index (UIDX): if this field is set to a non-zero value, then the value of this field is the index of a UUID in the UUID List (refer to Figure 320) that is used by the command. πŸ“–
  • stype β€” Suspend Type (STYPE): this field specifies the type of suspend. which flavour of suspend, if you will.
  • seqind β€” Sequence Identifier (SEQIND): this field identified the sequences of this Migration Send command in relation to other Migration Send commands. (again, that's the manpage's own wording, verbatim, no notes 😭)
  • csvi β€” Controller State Version Index (CSVI): a non-zero value in this field specifies the index to a specific entry in the NVMe Controller State Version list of the Supported Controller State Formats data structure. ✨
  • dudmq β€” Delete User Data Migration Queue (DUDMQ): if set, the migration queue is deleted is deleted as part of the Suspend operation. if cleared, it is retained. (yes the original says "deleted is deleted" twice β€” iconic typo behavior, we preserve it, we don't touch it, it's canon πŸ’€)
no cap: the data pointer is just a pointer, and args_size is the length of the struct. don't overthink her.

and that's the whole page, bestie. slay. πŸ‘‘

this was the API Manual for libnvme, dated August 2026 β€” signing off, mwah πŸ’‹ 🌈 ⭐

πŸ“¦ where this page comes from