274 Commits

Author SHA1 Message Date
Bill Nguyen
1340539b10 manual: add seL4_X86_EPT_VMAttributes
Signed-off-by: Bill Nguyen <bill.nguyen@student.unsw.edu.au>
2026-01-09 16:52:09 +11:00
Gerwin Klein
deec818829 manual: gracefully handle dangling references
Recent doxygen versions generate references for constants that are named
in the text. Since we do not produce a constant table in the manual
(neither markdown nor tex), these references point to nowhere and
produce a KeyError in the ref_dict on lookup.

The corresponding xml nodes are of this form:

<ref kindref="member"
     refid="include_2sel4_2constants_8h_1a9a3...">seL4_TCBFlag</ref>

Ignore such dangling references and return the content (seL4_TCBFlag in
the example) instead. Run text escape on the content to cover
underscores etc in LaTeX.

Does not produce a warning since we expect this to be normal behaviour.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-07-31 10:14:10 +10:00
Indan Zupancic
1415cac443 Add seL4_TCB_SetFlags Syscall
Add flags to tcb_t and the seL4_TCBFlag_fpuDisabled flag.

Enums are signed, make TCB flags word_t to make it unsigned.

Signed-off-by: Indan Zupancic <indan@nul.nu>
Signed-off-by: Corey Lewis <corey.lewis@proofcraft.systems>
2025-07-24 16:44:08 +10:00
Gerwin Klein
f44f103c26 parse_doxygen_xml: non-breaking space for types
Use non-breaking space for types in markdown tables to avoid line breaks

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-07-15 08:20:45 +10:00
Gerwin Klein
d815b87ce5 parse_doxygen_xml: minor typos and python lints
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-07-15 08:20:45 +10:00
Gerwin Klein
dc66e46a62 parse_doxygen_xml: properly escape string literals
More recent Python versions complain, and they are not wrong.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-07-15 08:20:45 +10:00
Gerwin Klein
c8ee042688 manual/README.md: include API doc generation
Migrate documentation of the API docs generation process here from the
docsite where it is too much out of view. Here it is closer to where it
is needed an more likely to get updated when things change.

Compared to the docsite version, this has applied:

- standard wrap column
- markdown lints
- adjusted headings
- `object-api-sel4-arch.xml` etc renames
- include RISC-V in structure

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-07-08 08:56:41 +10:00
Gerwin Klein
ae75fc3566 gen_invocations: handle undefined values
When evaluating XML condition expressions, properly treat undefined
values as undefined, not as False. Otherwise, the negation of an
undefined value may make an entire expression true and incorrectly
label some methods as MCS methods.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-07-07 08:50:47 +10:00
julia
eca86cff19 treewide: typo fixes
Signed-off-by: julia <git.ts@trainwit.ch>
2025-04-14 12:05:16 +10:00
Yanfeng Liu
80e60fe397 manual/objects: clean garbage
This drops unnecessary `iz` text at chapter end.

Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
2024-12-11 13:25:50 +11:00
Yanfeng Liu
9edd2704ea manual: add CapSMC to table 9.1
This adds `seL4_CapSMC` to table 9.1 and updates section 9.1 so
that to be in line with latest upstream code.

Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
2024-11-03 15:09:59 +00:00
Gerwin Klein
a6129c15d3 manual: document useful constants for SC creation
See also #560.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-07-01 15:49:59 +10:00
Indan Zupancic
74b4768a59 manual: fix contact link
Signed-off-by: Indan Zupancic <indan@nul.nu>
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-06-30 21:14:32 +10:00
Nick Spinale
dbd6efc507 libsel4: rename interface XML files
Before, some object API XML files conflicted when the include,
arch_include, and sel4_arch_include directories were combined:

- include/interfaces/sel4.xml
- arch_include/*/interfaces/sel4arch.xml
- sel4_arch_include/*/interfaces/sel4arch.xml

This commit renames them to:

- include/interfaces/object-api.xml
- arch_include/*/interfaces/object-api-arch.xml
- sel4_arch_include/*/interfaces/object-api-sel4-arch.xml

Now, when the include, arch_include, and sel4_arch_include directories
are combined, we are left with:

- interfaces/object-api.xml
- interfaces/object-api-arch.xml
- interfaces/object-api-sel4-arch.xml

Signed-off-by: Nick Spinale <nick@nickspinale.com>
2024-06-30 18:28:12 +10:00
Ivan Velickovic
1aa9ff8511 manual: list all faults and fix style
Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
2024-06-26 20:10:53 +10:00
hexcoder
15fa2cf9c2 manual: typos and style/grammar corrections
Co-authored-by: Gerwin Klein <gerwin.klein@proofcraft.systems>

Signed-off-by: hexcoder <heiko@hexco.de>
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-06-17 19:24:20 +10:00
Indan Zupancic
5fd8602bc0 Manual: Document ARM Virtualisation Faults
This resolves issue #1234.

Signed-off-by: Indan Zupancic <indan@nul.nu>
2024-06-17 00:37:00 +01:00
Indan Zupancic
8cbc13d5b8 Manual: Document ARM Virtualisation
This resolves issue #1083.

Signed-off-by: Indan Zupancic <indan@nul.nu>
2024-06-17 00:37:00 +01:00
Ivan Velickovic
bf2134e6de manual: document write-only pages
Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
2024-06-11 22:46:57 +08:00
Ivan Velickovic
67a812009a manual: remove dependency on 'six' Python package
Python2 is no longer supported and hence the dependency
on six is no longer necessary.

According to https://six.readthedocs.io/#six.string_types,
six.string_types is just str in Python3.

According to https://six.readthedocs.io/#six.next in Python2.6
and above, six.next is just next.

Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
2024-05-02 10:17:13 +01:00
Birgit Brecknell
f6656e2c78 Add a glossary to the manual
Add a glossary with seL4-specific terms and their
definitions.
Remove chapter number from bibliography
Tweak Makefile for glossary

Signed-off-by: Birgit Brecknell <bbrcknl@gmail.com>
2024-03-20 14:54:06 +11:00
Indan Zupancic
43607edb68 Manual: Xinclude support
This way common error codes can be in their own file.

To use, add the xmlns:xi="http://www.w3.org/2001/XInclude
attribute to the top level node and use:

<xi:include href="file-to-include.xml"/>

The content of the file will be included verbatim.

Include files must be complete XML documents, but without
<?xml version="1.0" ?> at the top. Practically this means
all nodes within the file need to be contained in one root
element.

Caveat: There is no proper dependency for Xincludes files in
the Makefile, so you need to do make clean after changing an
included XML file!

Signed-off-by: Indan Zupancic <indan@nul.nu>
2024-03-18 10:03:07 +00:00
Birg
0a0739074d manual: add bibliography to toc
Signed-off-by: Birg <bbrcknl@github.com>
2024-01-22 10:09:11 +11:00
Birg
9a532efc15 change CPTR to CPtr
Signed-off-by: Birg <bbrcknl@github.com>
2023-12-06 10:41:28 +00:00
Birg
391bfb15f8 update some manual todos
Signed-off-by: Birg <bbrcknl@github.com>
2023-11-29 10:21:32 +00:00
Gerwin Klein
d8f4a95b72 manual: group invocations by MCS/non-MCS
Put MCS-only invocations into their own groups and files. This solves
the problem that doxygen gets confused by duplicate function names with
the same parameters.

MCS/non-MCS is distinguished by evaluating the <condition> field in the
API XML definition. If the condition evaluates to true when
CONFIG_KERNEL_MCS is set, it is an MCS-only method, otherwise it is
assumed to be non-MCS or present in both configs.

Fixes #558

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-07 16:13:28 +11:00
Gerwin Klein
beb2c0d176 manual: remove obsolete doxygen settings
HTML_TIMESTAMP and LATEX_TIMESTAMP have been removed in more recent
doxygen versions. Since we are using the defaults, they are safe to
remove in our config file.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-07 16:13:27 +11:00
Gerwin Klein
9956101ba6 manual: handle name duplication between groups
Different API groups may contain the same function name, for instance
IRQ_Control GetTrigger for RISC-V vs the same for ARM. Duplicate
function names with identical parameter lists confuse doxygen, leading
it to generate a single merged xml entry for both, which means one of
the entires will be missing and the other will be potentially wrong.

When the functions are placed in different files and different groups
at the same time, doxygen no longer is confused in all cases.

Therefore:

- generate a separate file for each API group
- generate a separate file group_defs.h that contains group definitions
  and declares group nesting

Unfortunately, this does not seem to always work (e.g. the toplevel
MCS/non-MCS syscalls), so manual inspection is still necessary when
adding new calls and separate doxygen runs for duplicate function names
may be necessary. Generating separate files as above enables this
option, should it become necessary in the future.

Fixes #530

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-07 16:01:50 +11:00
Gerwin Klein
1de89ba1f2 trivial: spelling (sel4 -> seL4)
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-07 16:01:50 +11:00
Gerwin Klein
b67c7310af parse_doxygen_xml: avoid XMLParsedAsHTMLWarning
Explicitly select xml parser (instead of html) via "lxml-xml" in
BeatifulSoup to avoid warning.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-07 16:01:49 +11:00
Ivan-Velickovic
a9dae74c52 manual: adjust AArch64 VSpace section for RFC-10
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2023-10-05 10:43:16 +01:00
Axel Heider
a58b9437a2 manual: improve thread affinity description
Signed-off-by: Axel Heider <axelheider@gmx.de>
2023-08-24 15:58:18 +02:00
Axel Heider
998ed9a34f manual: change 'core' to 'node'
The term "node" is used in other parts of the manual also.

Signed-off-by: Axel Heider <axelheider@gmx.de>
2023-08-24 15:58:18 +02:00
Axel Heider
dac273a2f6 manual: replace 'master' by 'non-MCS'
MCS was a separate branch initially, it got merged into the master
branch for version 11.0.0.

Signed-off-by: Axel Heider <axelheider@gmx.de>
2023-08-24 15:58:18 +02:00
Axel Heider
b8c0b1cb02 boot: introduce seL4_BootInfoFrameSize
Provide seL4_BootInfoFrameSize (and seL4_BootInfoFrameBits) for
userland, to there is no longer a need to hard-code the 4 KiByte
assumption.

Signed-off-by: Axel Heider <axelheider@gmx.de>
2023-08-23 15:10:32 +02:00
Ivan Velickovic
6dbfeccd7c manual: fix typos in x86 virtualisation section
Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
2023-08-08 09:26:43 +02:00
Kent McLeod
7fec9bc9e9 Add CONFIG_X86_64_VTX_64BIT_GUESTS guards
Guard the new implementation of 64-bit x86 guests behind a config
option. This is done so that existing projects that use x86_64 hosts
with ia32-bit guests can continue to be supported until either the old
feature is preferred to be deprecated, or support can be added to
support both simmultaneously.

Signed-off-by: Kent McLeod <kent@kry10.com>
2023-06-06 13:29:34 +10:00
Ivan-Velickovic
ac49331e2a manual: ARM_ParityEnabled is ignored on AArch64
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2023-05-22 11:57:29 +10:00
Ivan-Velickovic
6dcbcbd320 manual: x86 VM attributes are for IA-32 and x64
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2023-05-22 11:57:29 +10:00
Ivan-Velickovic
afb6300426 manual: document VM attributes for RISC-V
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2023-05-22 11:57:29 +10:00
Gerwin Klein
ec170f4c21 manual: make sharing more precise
Using the same cap twice on the same slot is possible for remapping,
but using the same cap twice in different tables or VSpaces will result
in an error.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-30 18:36:54 +11:00
Gerwin Klein
a57c38c5fc manual: AArch32 page tables are config dependent
Mention that in hyp mode AArch32 page tables cover more address space.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-30 18:36:54 +11:00
Gerwin Klein
10bb041b15 manual: 3 and 4 level configs in AArch64
Describe the difference in 3 and 4 level configs for AArch64 and point
to the libsel4 macros that abstract from the distinction.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-30 18:36:54 +11:00
Gerwin Klein
1479e3d831 manual: use \obj macro consistently in sect 7
Remove previous mix of \texttt and \obj, use \obj consistently when
referring to kernel objects.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-30 18:36:54 +11:00
Gerwin Klein
aa4ce0840d manual: terminology in ASID Control+Pool sections
- clarify terminology (cap vs object) in ASID Control and ASID pool
- same for page sharing

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-30 18:36:54 +11:00
Gerwin Klein
59e751852c manual: more consistent terminology in sec 7.1
Adjusting for VSpace object clarification and making sure terminology
is used consistently.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-30 18:36:53 +11:00
Gerwin Klein
e4c0e561d6 manual: describe VSpace objects more explicitly
Rework the intro to the VSpace section for slightly improved clarity
and a more explicit definition of the distinctions between VSpace and
VSpace object, and between frame object and page capability.

Addresses #564

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-30 18:36:53 +11:00
Gerwin Klein
0328754e11 manual: prevent unnecessary rebuilds
- use a marker file to get a time stamp for when doxygen output was
  last generated. Use that as a file target instead of a phony target
  to avoid rebuilds when there is nothing to do.

- use static pattern rules so that `make` creates files instead of
  giving up when the prerequisite of a pattern rule does not exist yet.

- remove file list duplication (needed because the static pattern
  rules also need to mention these files)

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-27 21:25:48 +11:00
Gerwin Klein
aa89ae064e manual: remove obsolete doxygen options
Remove options that are obsolete in doxygen >= 1.9. We only use default
values here, so everything should keep working as before in doxygen 1.8.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-27 21:25:48 +11:00
Gerwin Klein
5e0b95fecf manual: fix broken links and latex complaints
- fix broken links in the document
- small tweaks to make latex complain less:
  - increase headheight by 2pt
  - give small possible stretch value to parskip for filling pages
  - use \sloppy for TOC to avoid unnecessary overfull hboxes
  - make table placement more explicit (it currently doesn't fit
    where [h] wants to place it, so allow it to go to the top of
    the next page)

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-27 21:25:48 +11:00