Cargo Features

[dependencies]
hermit-kernel = { version = "0.11.0", default-features = false, features = ["nostd", "acpi", "common-os", "dhcpv4", "dns", "fs", "fsgsbase", "fuse", "gem-net", "mmap", "newlib", "pci", "rtl8139", "semihosting", "shell", "smp", "strace", "tcp", "trace", "udp", "vga", "vsock", "pci-ids"] }
default = acpi, dhcpv4, fsgsbase, fuse, pci, pci-ids, smp, tcp, vsock

These default features are set whenever hermit-kernel is added without default-features = false somewhere in the dependency tree.

nostd
acpi default

Affects kernel::acpi, paging::PageTableEntryFlagsExt.read_only, paging::identity_map, env::rsdp

common-os

Affects kernel::load_application, kernel::jump_to_user_land, mm::create_new_root_page_table, paging::PageTableEntryFlagsExt.execute_enable, paging::PageTableEntryFlagsExt.user, paging::PageTableEntryFlagsExt.kernel

dhcpv4 default = smoltcp

Enables proto-dhcpv4 and socket-dhcpv4 of smoltcp

dns = smoltcp

Enables socket-dns of smoltcp

Affects socket::sys_getaddrbyname

fs = fuse
fsgsbase default
fuse default fs? = pci

Enables num_enum of fuse-abi

Affects drivers::fs, paging::virt_to_phys, paging::virt_to_phys, paging::virt_to_phys, drivers::virtio

gem-net = tcp

Enables tock-registers

Affects net::gem

idle-poll mmap
newlib

Affects synch::recmutex, tasks::SignalHandler, tasks::sys_getprio, tasks::sys_setprio, tasks::sys_clone, tasks::sys_kill, tasks::sys_signal

pci default fuse rtl8139? vsock

Enables pci of virtio-spec

Affects kernel::pci, kernel::pci, kernel::pci, fs::virtio_fs, fs::virtio_pci, drivers::pci, transport::pci, vsock::pci

rtl8139 = pci, tcp

Affects net::rtl8139

semihosting

Enables semihosting

shell = simple-shell
smp default

Affects kernel::get_possible_cpus, kernel::get_processor_count, core_local::CoreLocal.scheduler_input, kernel::get_possible_cpus, kernel::get_processor_count, kernel::application_processor_init, scheduler::wakeup_handler, paging::init_application_processor, apic::local_apic_id_count, apic::boot_application_processors, apic::ipi_tlb_flush, kernel::get_possible_cpus, kernel::get_processor_count, kernel::application_processor_init

strace
tcp default gem-net? rtl8139? = smoltcp

Enables socket-tcp of smoltcp

Affects kernel::mmio, kernel::mmio, kernel::mmio, drivers::net, syscalls::socket, paging::virt_to_phys, paging::virt_to_phys, paging::virt_to_phys, drivers::virtio

trace
udp = smoltcp

Enables socket-udp of smoltcp

Affects kernel::mmio, kernel::mmio, drivers::net, syscalls::socket, paging::virt_to_phys, paging::virt_to_phys, paging::virt_to_phys, drivers::virtio

vga
vsock default = pci

Affects drivers::vsock, socket::sockaddr_vm, syscalls::socket, paging::virt_to_phys, paging::virt_to_phys, paging::virt_to_phys, drivers::virtio

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

pci-ids default
simple-shell shell?
smoltcp dhcpv4 dns? tcp udp?