ne_ioctl(9)
π ne_ioctl(9) β the Kernel API Manual, but make it make sense π
okay so bestie, welcome to ne_ioctl(9) β this is the ioctl function that the NE misc device hands you. "NE" = Nitro Enclaves, and this is the literal front door for ioctl calls on that misc device. it's giving gatekeeper energy, and honestly? iconic. π₯
β¨ SYNOPSIS β¨
long ne_ioctl (struct file *file , unsigned int cmd , unsigned long arg
);
look at her. three args, one long return. simple, clean, slay. π«Ά
π ARGUMENTS π
fileβ the file that's associated with this ioctl function. like, the actual file handle that walked in the door. πcmdβ the command that's set for the ioctl call. this is the "what do you want me to do" of it all. πargβ the argument that's provided for the ioctl call. the little sidecar of extra info riding along withcmd. β¨
π¦ CONTEXT π¦
Process context. that's it, that's the whole vibe check β process context, no cap. no interrupt nonsense, no atomic weirdness to stress about here, it's just process context. πΈ
β RETURN β
- Ioctl result (e.g. enclave file descriptor) on success β so like, sometimes you literally get an enclave file descriptor back, which is a whole gift. π
- Negative return value on failure β sad girl hours, something went wrong, it's negative. π
fr fr, negative means it did NOT eat. check it before you go doing anything with the result.
π SEE ALSO π
the whole friend group, incoming. and yes, every single one of them is getting their moment:
- Kernel file
./drivers/virt/nitro_enclaves/ne_misc_dev.cEnclave lifetime management driver for Nitro Enclaves (NE).(9) NE_CPUS_SIZE(9)NE_EIF_LOAD_OFFSET(9)NE_MIN_ENCLAVE_MEM_SIZE(9)NE_MIN_MEM_REGION_SIZE(9)NE_PARENT_VM_CID(9)struct ne_cpu_pool(9)struct ne_phys_contig_mem_regions(9)ne_check_enclaves_created(9)ne_setup_cpu_pool(9)ne_teardown_cpu_pool(9)ne_set_kernel_param(9)ne_donated_cpu(9)ne_get_unused_core_from_cpu_pool(9)ne_set_enclave_threads_per_core(9)ne_get_cpu_from_cpu_pool(9)ne_get_vcpu_core_from_cpu_pool(9)ne_check_cpu_in_cpu_pool(9)ne_add_vcpu_ioctl(9)ne_sanity_check_user_mem_region(9)ne_sanity_check_user_mem_region_page(9)ne_sanity_check_phys_mem_region(9)ne_merge_phys_contig_memory_regions(9)ne_set_user_memory_region_ioctl(9)ne_start_enclave_ioctl(9)ne_enclave_ioctl(9)ne_enclave_remove_all_mem_region_entries(9)ne_enclave_remove_all_vcpu_id_entries(9)ne_pci_dev_remove_enclave_entry(9)ne_enclave_release(9)ne_enclave_poll(9)ne_create_vm_ioctl(9)
no skipping, no summarising β the whole squad is here and they all ate. ππ«
that's the page, bestie!! this one lives over in ./drivers/virt/nitro_enclaves, dated October 2026, and it's filed under ne_ioctl(9) β go read the driver, ily, bye!! π§ββοΈππ
π¦ 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