===== ACPI ===== Support for [[http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface|ACPI]] in Minix has 2 parts, in-kernel code and a userspace driver. ==== Kernel ==== The in-kernel code is used to locate the ACPI information in memory and export this to userland, discover IO APICs and all CPU in a multi-processor system. ==== Userspace ACPI driver ==== The userspace driver is based on the [[http://www.acpica.org/|ACPI CA]] library. The library covers the whole ACPI functionality which means that in theory Minix can uses any of the ACPI feature, the functionality is limited though. * Currently the driver provides interface to discover PCI interrupts routing information only * Does not register interrupt hooks to handle events It is fairly easy to add interfaces to any other functions as need be. Minix does not have any use for this yet. The main disadvantage of the ACPI driver is that it can access **//any//** system memory and IO ports which is a **//possible vulnerability//**. It is not possible to limit the memory acces in the sense of the the isolation policies as implemented in current Minix.