mirror of
git://projects.qi-hardware.com/iris.git
synced 2025-04-21 12:27:27 +03:00
make keyboard work a bit
This commit is contained in:
@@ -269,16 +269,37 @@ registers and possibly other information which is different per Thread.
|
||||
\item Let Iris schedule the next process. This is not thread-specific.
|
||||
\item Get the top Memory object. This is not thread-specific. Most Threads
|
||||
are not allowed to perform this operation. It is given to the initial Threads.
|
||||
They can pass it on to Threads that need it (mostly device drivers).
|
||||
They can pass it on to Threads that need it (if any).
|
||||
\item In the same category, register a Receiver for an interrupt. Upon
|
||||
registration, the interrupt is enabled. When the interrupt arrives, the
|
||||
registered Receiver gets a message from Iris and the interrupt is disabled
|
||||
again. After the Thread has handled the interrupt, it must reregister it in
|
||||
order to enable it again.
|
||||
\item Allocate a range of contiguous physical memory. This is only relevant
|
||||
for device drivers whose device will directly access the storage, such as the
|
||||
display driver. The result of this call is that the memory is counted as used
|
||||
by the Thread, and it is reserved, but it is not returned. Instead, the
|
||||
address of physical memory is returned, and the pages need to be retrieved with
|
||||
the next operation. This capability is not present in normally created
|
||||
threads.
|
||||
\item Allocate a page of physical memory. This is used in combination with the
|
||||
previous operation to reserve a block of physical memory, and by device drivers
|
||||
to map I/O memory into their address space. There is a flag indicating whether
|
||||
this memory should be freed (ranges) or not (I/O). Users of this operation are
|
||||
trusted to handle it properly; no checks are done to ensure that no kernel
|
||||
memory is leaked, or that the allocated memory isn't used by other threads or
|
||||
the kernel. Of course, this capability is not present in normally created
|
||||
threads.
|
||||
\item Get the physical address of a page. Only device drivers need to know the
|
||||
physical address of their pages, so this operation is not available on normal
|
||||
threads.
|
||||
\item And similarly, allow these priviledged operations (or some of them) in an
|
||||
other thread. This is a property of the caller, because the target thread
|
||||
normally doesn't have the permission to do this (otherwise the call would not
|
||||
be needed). The result of this operation is a new Thread capability with all specified rights set. Normally this is inserted in a priviledged process's address space during setup, before it is run (instead of the capability which is obtained during Thread creation).
|
||||
be needed). The result of this operation is a new Thread capability with all
|
||||
specified rights set. Normally this is inserted in a priviledged process's
|
||||
address space during setup, before it is run (instead of the capability which
|
||||
is obtained during Thread creation).
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Page and Cappage}
|
||||
@@ -317,4 +338,14 @@ Operations or capability objects:
|
||||
\item Get a copy of the capability.
|
||||
\end{itemize}
|
||||
|
||||
\section{Interface classes}
|
||||
Around Iris is a system of some programs to create the operating system. These
|
||||
include the device drivers. While Iris itself needs no specific interfaces
|
||||
from them, some interface classes are defined, which are used by the default
|
||||
environment. By defining classes, it is possible to let a program use any
|
||||
device of that type without needing changes to its code.
|
||||
|
||||
These definitions are in the source. A copy of the information here would only
|
||||
lead to it getting outdated.
|
||||
|
||||
\end{document}
|
||||
|
||||
Reference in New Issue
Block a user