STRUCT MRAID_HBA_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct mraid_hba_info(9) β€” like, the whole kernel API manual moment

okay bestie, welcome to struct mraid_hba_info(9) ✨ this is the page that tells you everything about the controller β€” like, who it is, where it lives, and how many bytes it's serving. let's get into it 🫢


🌸 NAME 🌸

struct mraid_hba_info β€” literally just information about the controller πŸ’– that's the whole vibe.


✨ SYNOPSIS ✨

here's the shape of it, no cap, exact copy:

struct mraid_hba_info {
    uint16_t pci_vendor_id;
    uint16_t pci_device_id;
    uint16_t subsys_vendor_id;
    uint16_t subsys_device_id;
    uint64_t baseport;
    uint8_t pci_bus;
    uint8_t pci_dev_fn;
    uint8_t pci_slot;
    uint8_t irq;
    uint32_t unique_id;
    uint32_t host_no;
    uint8_t num_ldrv;
 };

πŸŽ€ Members πŸŽ€

okay so each field, one by one, main character energy ✨

  • pci_vendor_id β€” the PCI vendor id 🏷️ like, whose card is this
  • pci_device_id β€” the PCI device id πŸ’³ the specific model situation
  • subsys_vendor_id β€” (the page doesn't give a one-liner for this one πŸ™ˆ but it's a uint16_t and it's right there in the struct)
  • subsys_device_id β€” (same deal, no blurb on this page, it's a uint16_t 🌸)
  • baseport β€” base port of hba memory πŸ”₯ the starting address vibe
  • pci_bus β€” PCI bus 🚌 yes literally the bus, iconic
  • pci_dev_fn β€” PCI device/function values 🧚 the dev/fn pair
  • pci_slot β€” (no description given here πŸ’€ it's a uint8_t and it's a slot, that's all we get)
  • irq β€” interrupt vector for the device ⚑ the "hey notice me" signal
  • unique_id β€” (no blurb on this page, it's a uint32_t, and yes it's unique 😌)
  • host_no β€” (also no blurb here, uint32_t, host number shaped)
  • num_ldrv β€” (no description given, uint8_t, and the name is giving "number of ldrv" πŸ“ but the page doesn't spell it out so i'm not gonna)

πŸ’œ Description πŸ’œ

so this thing is extended information of 256 bytes about the controller πŸ’– 256 bytes, exact, not vibes-based.

and the alignment tea: it's aligned on the single byte boundary so that 32-bit applications can run on 64-bit platform drivers without re-compilation 🫢 like, compatibility slay, no rebuild needed, we love to see it.


⭐ NOTE ⭐

listen up bestie, this one's a real rule πŸ‘‘ whenever new fields get added, reduce the number of reserved bytes so the total size of the structure stays at 256 bytes. periodt. don't let it grow πŸ’…

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/scsi/megaraid/megaraid_ioctl.h
  • con_log(9)

and that's the page, bestie πŸ¦‹πŸ’– source/version energy: ./drivers/scsi/megaraid, dated October 2026, and it's still out here living as struct mraid_hba_info(9) β€” obsessed, honestly 🌸✨

πŸ“¦ where this page comes from