NE_EVTCNT(9)
π NE_EVTCNT(9) β the Kernel API Manual, but make it make sense
okay so bestie, welcome to the manual page for NE_EVTCNT β it's a 4-byte register living in the Nitro Enclaves kernel API, and honestly? it's iconic. it's the little messenger that tells the driver "hey, something's ready for you." no cap.
β¨ NAME β¨
NE_EVTCNT β a 4-byte register that exists purely to notify the driver that a reply or a device event is available. it's Read-Only, so don't even think about writing to it, bestie π«Ά
and listen β it's split into two halves, which is the cute part:
- Lower half β command reply counter
- Higher half β out-of-band device event counter
two counters, one register, main character energy fr fr π
πΈ SYNOPSIS πΈ
NE_EVTCNT
that's it. that's the whole synopsis. she's lowkey minimal π
π¦ SEE ALSO π¦
okay this is the part where the manpage goes absolutely feral with cross-references, and i respect it. here's literally every single one, no skipping, periodt:
Kernel file ./drivers/virt/nitro_enclaves/ne_pci_dev.hβ the header file itself, the source of truth, the blueprint πNitro Enclaves (NE) PCI device(9)β the parent device section, the whole vibePCI_DEVICE_ID_NE(9)β the device ID identifying an NE PCI devicePCI_BAR_NE(9)β the NE PCI BARDevice registers in the NE PCI device MMIO BAR(9)β all the registers, this one includedNE_ENABLE(9)β the enable registerNE_VERSION(9)β the version registerNE_COMMAND(9)β the command registerNE_SEND_DATA(9)β sending dataNE_RECV_DATA(9)β receiving dataDevice MMIO buffer sizes(9)β the buffer sizes in the MMIO spaceNE_SEND_DATA_SIZE(9)β size of the send data bufferNE_RECV_DATA_SIZE(9)β size of the recv data bufferMSI-X interrupt vectors(9)β the MSI-X vectors, the interrupt squadNE_VEC_REPLY(9)β the reply interrupt vectorNE_VEC_EVENT(9)β the event interrupt vectorenum ne_pci_dev_cmd_type(9)β the enum of device command typesDevice commands - payload structure for requests and replies.(9)β the payload structure story for requests and repliesstruct enclave_start_req(9)β struct for starting an enclavestruct enclave_get_slot_req(9)β struct for getting a slotstruct enclave_stop_req(9)β struct for stopping an enclavestruct slot_alloc_req(9)β struct for allocating a slotstruct slot_free_req(9)β struct for freeing a slotstruct slot_add_mem_req(9)β struct for adding memory to a slotstruct slot_add_vcpu_req(9)β struct for adding a vCPU to a slotstruct slot_count_req(9)β struct for getting the slot countstruct next_slot_req(9)β struct for getting the next slotstruct slot_info_req(9)β struct for slot infostruct slot_add_bulk_vcpus_req(9)β struct for adding vCPUs in bulkstruct ne_pci_dev_cmd_reply(9)β struct for the command replystruct ne_pci_dev(9)β struct for the NE PCI device itselfne_do_request(9)β the function that actually does the request π
likeβ¦ it's giving "linked list of documentation." obsessed π
ngl bestie, remember NE_EVTCNT is Read-Only β that's not a suggestion, that's the whole spec π
and that's the page!! this gem ships from ./drivers/virt/nitro_enclaves, dated October 2026, and it's literally part of the Kernel API Manual. go read ne_pci_dev.h if you wanna see the source of all this drama π§β¨ bye bestie, slay your kernel work π
π¦ 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