[][src]Module sunrise_kernel::process::capabilities

Process Capability handling

The Horizon/NX OS uses a capability scheme for its security system. Each userspace process is created with a list of capabilities. Those capabilities are not recursive: each process has its own specific list. The capabilities include which syscall the process is allowed to call, which IRQ it's allowed to listen on, or how many handles it's allowed to create.

Those capabilities are inherently arch-specific. For instance, the x86 architecture has an additional IOPB field to take care of. To this end, the ProcessCapabilities structure exposed by this module is different from architecture to architecture. Arch-specific methods will be marked as so in their documentation.

Structs

MaskPrinter

Wrapper around a bitfield that only prints the indices of set bits.

ProcessCapabilities

Capabilities of a process.

Constants

APPLICATION_TYPE

Type of application (sysmodule, applet, application)

DEBUG_FLAGS

Flags allowing app to debug or be debugged.

HANDLE_TABLE_SIZE

Max amount of handle for the process.

INTERRUPT_PAIR

Allow creating an interrupt for the given IRQ pair.

IO_PORTS_ALLOWED

IOPorts the process is allowed to talk to

KACS_NO_DUPLICATES

Mask of kernel capabilities that cannot appear twice in a KCAP array.

KERNEL_FLAGS

Allowed CPUID and thread priorities.

KERNEL_RELEASE_VERSION

Minimum kernel release.

MAP_IO_OR_NORMAL_RANGE

Map an IO or physical memory page into process address space.

MAP_NORMAL_PAGE

Map a normal page.

MAX_SVC

The highest defined svc.

SYSCALL_MASK

Shifted mask of allowed syscalls.