L4Re Operating System Framework
Interface and Usage Documentation
|
#include <pager>
Public Member Functions | |
l4_msgtag_t | io_page_fault (l4_fpage_t io_pfa, l4_umword_t pc, L4::Ipc::Rcv_fpage rwin, L4::Ipc::Opt< L4::Ipc::Snd_fpage & > fp) |
IO page fault protocol message. | |
Io_pager interface.
This class defines the interface for handling IO page faults. IO page faults happen when a thread tries to access an IO port that it does not currently have access to.
Depending on the microkernel's implementation, IO page faults can be handled in two ways.
If the microkernel does not support IO page faults, this IO pagefault interface is not used. Instead, the microkernel sends an exception IPC to the thread's exception handler (L4::Exception), indicating a GP
(exception number 13). The exception handler must consult the faulting instruction to determine the cause of the exception. This is the default in Fiasco.OC.
In contrast, if the microkernel supports IO page faults, the microkernel will generate an IO page fault message and send it to the thread's page fault handler (pager). The page fault handler can implement this interface to handle the IO page faults.
l4_msgtag_t L4::Io_pager::io_page_fault | ( | l4_fpage_t | io_pfa, |
l4_umword_t | pc, | ||
L4::Ipc::Rcv_fpage | rwin, | ||
L4::Ipc::Opt< L4::Ipc::Snd_fpage & > | fp | ||
) |
IO page fault protocol message.
io_pfa | Flex-page describing the faulting IO-port. | |
pc | Faulting program counter. | |
rwin | The receive window for a flex-page mapping. | |
[out] | fp | Optional: flex-page descriptor to send to the task raising the page fault. |
IO-port fault messages are usually generated by the kernel and an IO-page-fault handler needs to be in place to handle such faults and generate a reply, potentially filling in fp
.