STRUCT NE_PCI_DEV(9)
π struct ne_pci_dev(9) π
okay bestie, welcome to the Kernel API Manual, section 9 β specifically the <hotpink>struct ne_pci_dev(9)</hotpink> page. This is the Nitro Enclaves (NE) PCI device struct, and weβre gonna read it with full group-chat energy while keeping every single fact intact. no cap. obsessed. π«Ά
π NAME π
struct ne_pci_dev β the Nitro Enclaves (NE) PCI device. periodt. π
β¨ SYNOPSIS β¨
okay so hereβs the exact struct shape, character-for-character vibes:
struct ne_pci_dev {
atomic_t cmd_reply_avail;
wait_queue_head_t cmd_reply_wait_q;
struct list_head enclaves_list;
struct mutex enclaves_list_mutex;
struct workqueue_struct *event_wq;
void __iomem *iomem_base;
struct work_struct notify_work;
struct mutex pci_dev_mutex;
struct pci_dev *pdev;
};
vibe check: passed. this struct ate and left no crumbs. π₯
πΈ Members πΈ
cmd_reply_availβ a variable thatβs set if a reply has been sent by the PCI device. lowkey the βdid the device answer?β flag. βcmd_reply_wait_qβ wait queue for handling command reply from the PCI device. itβs where you wait for the tea. βenclaves_listβ list of the enclaves managed by the PCI device. the whole roster, bestie. πenclaves_list_mutexβ mutex for accessing the list of enclaves. one at a time, please, no shoving. πevent_wqβ work queue for handling out-of-band events triggered by the Nitro Hypervisor which require enclave state scanning and propagation to the enclave process. highkey busy energy. β‘iomem_baseβ MMIO region of the PCI device. thatβs the memory-mapped I/O spot. πΊοΈnotify_workβ work item for every received out-of-band event. one lil work item per event, slay. π οΈpci_dev_mutexβ mutex for accessing the PCI device MMIO space. protect the MMIO, queen. π‘οΈpdevβ PCI device data structure. the deviceβs own data, main character energy. π
π¦ SEE ALSO π¦
okay so the whole linked squad is right here β every reference, no skips, iykyk:
- Kernel file
./drivers/virt/nitro_enclaves/ne_pci_dev.h Nitro Enclaves (NE) PCI device(9)PCI_DEVICE_ID_NE(9)PCI_BAR_NE(9)Device registers in the NE PCI device MMIO BAR(9)NE_ENABLE(9)NE_VERSION(9)NE_COMMAND(9)NE_EVTCNT(9)NE_SEND_DATA(9)NE_RECV_DATA(9)Device MMIO buffer sizes(9)NE_SEND_DATA_SIZE(9)NE_RECV_DATA_SIZE(9)MSI-X interrupt vectors(9)NE_VEC_REPLY(9)NE_VEC_EVENT(9)enum ne_pci_dev_cmd_type(9)Device commands - payload structure for requests and replies.(9)struct enclave_start_req(9)struct enclave_get_slot_req(9)struct enclave_stop_req(9)struct slot_alloc_req(9)struct slot_free_req(9)struct slot_add_mem_req(9)struct slot_add_vcpu_req(9)struct slot_count_req(9)struct next_slot_req(9)struct slot_info_req(9)struct slot_add_bulk_vcpus_req(9)struct ne_pci_dev_cmd_reply(9)ne_do_request(9)
mwah π β this page came from the ./drivers/virt/nitro_enclaves source, dated October 2026, and itβs the struct ne_pci_dev(9) manual page. byeee, go be iconic with your kernel structs π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms