ne_create_vm_ioctl(9)
β¨ ne_create_vm_ioctl(9) β the Nitro Enclaves VM-creator β¨
okay so bestie, welcome to the ne_create_vm_ioctl page from the Kernel API Manual π
this is the function that allocates a slot for an enclave and hands you back a file descriptor so you can actually do stuff with it later. iconic behavior, honestly.
πΈ NAME πΈ
ne_create_vm_ioctl β literally allocates a slot to be associated with an enclave, and creates the enclave file descriptor that you'll use for all your enclave resource handling later (think: memory regions and CPUs, the whole vibe check) π«Ά
π SYNOPSIS π
int ne_create_vm_ioctl (struct ne_pci_dev *ne_pci_dev , u64 __user *slot_uid );
no cap, that's the whole signature right there β
π ARGUMENTS π
ne_pci_devβ the private data associated with the PCI device. it's giving "context object" energy, she knows things πslot_uidβ a user pointer where the generated unique slot id (the one associated with an enclave) gets stored. so she writes back to you, basically a little gift π
π¦ CONTEXT π¦
Process context. This function is called with the ne_pci_dev enclave mutex held β so yes, the mutex is already holding court before this function even walks in. main character energy, periodt π
π₯ RETURN π₯
- Enclave fd on success π (a file descriptor, slay)
- Negative return value on failure π (not slay, but informative)
π SEE ALSO π
okay this list is a whole crew, buckle up bestie β the references go HARD:
- 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_ioctl(9)
like I said β the whole friend group π
okay that's the tea β this page lives in ./drivers/virt/nitro_enclaves, and it's stamped October 2026 with the signature ne_create_vm_ioctl(9) β so if you're reading this in the future, hiiiii bestie, you're right on time β¨ππ
π¦ 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