ne_start_enclave_ioctl(9)
π ne_start_enclave_ioctl β the glow-up moment
Okay so bestie, this is the manual page for ne_start_enclave_ioctl(9) in the kernel API, and it is literally the final boss move: it triggers enclave start after the enclave resources β like memory and CPU β have already been set. The way that this is the "go live" button of Nitro Enclaves. Periodt.
π SYNOPSIS π
int ne_start_enclave_ioctl (struct ne_enclave *ne_enclave , struct
ne_enclave_start_info *enclave_start_info );
Like, that's the whole signature. Cute. Simple. Iconic.
β¨ ARGUMENTS β¨
ne_enclaveβ private data associated with the current enclave. It's giving "the enclave's personal diary," iykyk.enclave_start_infoβ enclave info that includes the enclave cid and flags. Basically the lil starter pack for the launch.
π§ CONTEXT π§
Process context, bestie. And hear me when I say this: this function is called with the ne_enclave mutex held. So do not, not me, go messing with that lock situation. The mutex is already in your hands. Respect the mutex. π
πΈ RETURN πΈ
0on success. Slay. π- Negative return value on failure. π That's the vibe check failing, ngl.
π SEE ALSO π
Okay this list is long but every single one matters, so here we go, no skipping:
Kernel file ./drivers/virt/nitro_enclaves/ne_misc_dev.c β enclave 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_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), ne_ioctl(9).
Whew. That's the whole friend group right there. π«Ά
Fr fr, this is your "resources are ready, hit start" call β don't call it before the enclave memory and CPU are actually set up, or you're gonna have a bad time. π
And that's the whole page, bestie. Source is ./drivers/virt/nitro_enclaves, dated October 2026, and this manual page is ne_start_enclave_ioctl(9). Go off, queen. πβ¨
π¦ 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