manual: remove hard-coded ASID invocations

- move documentation to API ref
- create tables pointing to the API ref for these objects
This commit is contained in:
Anna Lyons 2018-05-10 11:20:55 +10:00
parent d0f69f8ff5
commit 56abae43fb
4 changed files with 32 additions and 28 deletions

View file

@ -189,7 +189,9 @@
Create an ASID Pool.
</brief>
<description>
<docref>See <autoref label="ch:vspace"/>.</docref>
Together with a capability to <texttt text="Untyped Memory"/>, which is passed as an argument,
create an <texttt text="ASID Pool"/>. The untyped capability must represent a
4K memory object. This will create an ASID pool with enough space for 1024 VSpaces.
</description>
<param dir="in" name="untyped" type="seL4_Untyped"
description="Capability to an untyped memory object that will become the pool. Must be 4K bytes."/>
@ -209,7 +211,7 @@
Assign an ASID Pool.
</brief>
<description>
<docref>See <autoref label="ch:vspace"/>.</docref>
Assigns an ASID to the VSpace associated with the <texttt text="Page Directory"/> passed in as an argument.
</description>
<param dir="in" name="vroot" type="seL4_CPtr"
description="The page directory that is being assigned to an ASID pool. Must not already be assigned to an ASID pool."/>

View file

@ -144,7 +144,9 @@
Create an ASID Pool.
</brief>
<description>
<docref>See <autoref label="ch:vspace"/>.</docref>
Together with a capability to <texttt text="Untyped Memory"/>, which is passed as an argument,
create an <texttt text="ASID Pool"/>. The untyped capability must represent a
4K memory object. This will create an ASID pool with enough space for 1024 VSpaces.
</description>
<param dir="in" name="untyped" type="seL4_Untyped"
description="Capability to an untyped memory object that will become the pool. Must be 4K bytes."/>
@ -163,7 +165,7 @@
Assign an ASID Pool.
</brief>
<description>
<docref>See <autoref label="ch:vspace"/>.</docref>
Assigns an ASID to the VSpace associated with the <texttt text="Page Directory"/> passed in as an argument.
</description>
<param dir="in" name="vroot" type="seL4_CPtr">
<description>

View file

@ -217,7 +217,9 @@
Create an X86 ASID pool.
</brief>
<description>
<docref>See <autoref label="ch:vspace"/></docref>
Together with a capability to <texttt text="Untyped Memory"/>, which is passed as an argument,
create an <texttt text="ASID Pool"/>. The untyped capability must represent a
4K memory object. This will create an ASID pool with enough space for 1024 VSpaces.
</description>
<cap_param append_description='The master ASIDControl capability.'/>
<param dir="in" name="untyped" type="seL4_Untyped"
@ -237,7 +239,7 @@
Assign an ASID pool.
</brief>
<description>
<docref>See <autoref label="ch:vspace"/></docref>
Assigns an ASID to the VSpace associated with the <texttt text="Page Directory"/> passed in as an argument.
</description>
<cap_param append_description='The ASID pool which is being assigned to. Must not be full. Each ASID pool can contain 1024 entries.'/>
<param dir="in" name="vroot" type="seL4_CPtr" description='The page directory that is being assigned to an ASID pool. Must not already be assigned to an ASID pool.'/>

View file

@ -164,34 +164,32 @@ this limited resource, the microkernel provides an \obj{ASID Control}
capability. The \obj{ASID Control} capability is used to generate a
capability that authorises the use of a subset of available address-space identifiers.
This newly created capability is called an
\obj{ASID Pool}. \obj{ASID Control} only has a single method:
\vspace{2ex}\\
\vmfunc{
\apifunc{seL4\_ARM\_ASIDControl\_MakePool}{arm_asidcontrol_makepool}\\
\ifxeightsix\apifunc{seL4\_x86\_ASIDControl\_MakePool}{x86_ASID_controlmakepool}\fi
}{
Together with a capability to
\obj{Untyped Memory} as argument creates an \obj{ASID Pool}.
}\vspace{2ex}
\obj{ASID Pool}. \obj{ASID Control} only has a single \texttt{MakePool} method for each
architecture, listed in the table below.
The untyped
capability given to the \apifunc{seL4\_ARM\_ASIDControl\_MakePool}{arm_asidcontrol_makepool} call must represent a 4K memory object.
This will create an ASID pool with enough space for 1024 VSpaces.
\begin{tabularx}{\textwidth}{Xl} \toprule
\emph{Architectures} & \emph{Methods} \\ \midrule
IA32, X64 & \autoref{group__x86__seL4__X86__ASIDControl} \\
AArch32, AArch64 & \autoref{group__arm__seL4__ARM__ASIDControl} \\
RISC-V & \autoref{group__riscv__seL4__RISCV__ASIDControl} \\
\bottomrule
\end{tabularx}
\paragraph{\obj{ASID Pool}}
\subsection{ASID Pool}
An \obj{ASID Pool} confers the right to create a subset of the available
maximum applications. For a VSpace to be usable by an application, it
must be assigned to an ASID. This is done using a capability to an
\obj{ASID Pool}. The \obj{ASID Pool} object has a single method:
\vspace{2ex}\\
\vmfunc{
\apifunc{seL4\_ARM\_ASIDPool\_Assign}{arm_asidpool_assign}\\
\ifxeightsix\apifunc{seL4\_x86\_ASIDPool\_Assign}{x86_asidpool_assign}\fi
}{
Assigns an ASID to the VSpace
associated with the \obj{Page Directory} passed in as an argument.
}
\obj{ASID Pool}. The \obj{ASID Pool} object has a single method, \texttt{Assign}, for each
architecture:
\begin{tabularx}{\textwidth}{Xl} \toprule
\emph{Architectures} & \emph{Methods} \\ \midrule
IA32, X64 & \autoref{group__x86__seL4__X86__ASIDPool} \\
AArch32, AArch64 & \autoref{group__arm__seL4__ARM__ASIDPool} \\
RISC-V & \autoref{group__riscv__seL4__RISCV__ASIDPool} \\
\bottomrule
\end{tabularx}
\section{Mapping Attributes}
A parameter of type \texttt{seL4\_ARM\_VMAttributes} or