Commit Graph

184 Commits

Author SHA1 Message Date
Anna Lyons
a38e62f2f9 mcs: timeout exceptions
- Add seL4_TCB_SetTimeoutEndpoint
- implement timeout exceptions
2019-08-22 11:22:38 +10:00
Anna Lyons
106b893ee0 mcs: configurable scheduling context size
This allows users to define custom amounts of refills without
increasing the scheduling context size system wide.

also add libsel4 functions for refill size
2019-08-22 11:22:38 +10:00
Anna Lyons
abcd5affb1 mcs: update manual
Major manual update with details of the MCS configuration option of the
kernel.
2019-08-22 11:22:37 +10:00
Anna Lyons
554f812da3 mcs: scheduling context donation over ipc
After this commit, threads blocked on an endpoint can recieve a
scheduling context from the thread that wakes the blocked thread.
2019-08-22 11:22:37 +10:00
Anna Lyons
7b25653de7 manual: parse all doxygen xml for refdict
Previously the manual would only parse the doxygen for a single xml
file, which meant references to symbols on other files would break.
Parse all doxygen files when constructing the ref dict to fix this.
2019-08-22 11:22:36 +10:00
Anna Lyons
952134d1b8 mcs: Add a scheduling context object
This is the first part of the seL4 MCS. This commit:

    * adds a scheduling context object. Threads without scheduling
      context objects cannot be scheduled.
    * replaces tcbTimeSlice with the scheduling context object
    * adds seL4_SchedControl caps for each core
    * adds seL4_SchedControl_Configure which allows users to configure
      amount of ticks a scheduling context has, and set a core for the
      scheduling context.
    * adds seL4_SchedContext_Bind, Unbind and UnbindObject, which allows
      a tcb to be bound to a scheduling context.
2019-08-22 11:22:34 +10:00
Anna Lyons
bc61a7f3bd python2 --> python3
Update all scripts and build system to call python3, given python2's
upcoming doom. Use sys.maxsize instead of sys.maxint in one script
(maxint does not exist in python3).
2019-08-08 10:19:24 +10:00
Jimmy Brush
affebe295a manual: Correct CNode slot size in bytes
It is 16 bytes on 32-bit systems and 32 bytes on 64-bit systems
2019-06-27 14:04:53 -04:00
Jimmy Brush
4d87d8e9cf manual: Clarify meaning of size_bits
The discussion on variable-sized kernel objects did not cover what to
pass as the value of size_bits nor the resulting kernel object size in
bytes.
2019-06-14 10:45:02 +10:00
Anna Lyons
cf57914c7f style: run autopep8 on python files 2019-03-27 10:43:58 +11:00
Japheth Lim
a8879f0159 manual: document badge range for 64-bit platforms 2019-02-19 12:16:27 +11:00
Jimmy Brush
01be26a779 manual: ipc: clarify sending caps is a copy 2019-02-14 10:14:11 +11:00
Jimmy Brush
5fb6f8b38c manual: document seL4_TruncatedMessage error 2019-02-14 10:12:46 +11:00
Anna Lyons
c08b8543ae manual: remove incorrect paragraph 2019-01-14 13:19:33 +11:00
James Ye
c51a2cf306 manual: use Latin Modern font
Latin Modern is a vectorised version of the default Computer Modern.
2018-12-14 11:50:03 +11:00
Thibaut Perami
3df00ea4d7 SELFOUR-6: Add GrantReply to the rights system.
GrantReply is a new access right added to endpoint capabilities, which
allows seL4_Call to be used on those capabilities (specifically, it
allows reply caps *only* to be granted across endpoints).

Prior to the addition of GrantReply, endpoint capabilities required the
Grant access right, which allowed any arbitrary capabilitiy to be
transferred over an endpoint. Using GrantReply, systems can now be
constructed where threads using seL4_Call over an endpoint do not need to be in the same
security subsystem.
2018-12-12 14:04:28 +11:00
Adam Felizzi
bc4580c64e parse_doxygen: Removed tab in Markdown doc format
Removed a trailing tab character in the Markdown API doc format
string.
2018-09-04 12:05:06 +10:00
Anna Lyons
f3dc34f427 manual: add missing newline
fixes a missing new line in generated markdown
2018-05-14 15:34:37 +10:00
Anna Lyons
28648bc843 manual: fix stray brace in output
Invocation headers had a stray brace which broke the markdown output
2018-05-14 15:34:35 +10:00
Anna Lyons
17b901d79f manual: clarify VSpace as top-level paging structure
This change updates the vspace chapter to separate the high-level concept of a VSpace from the
architectually defined objects. It also updates the various names for the vspace parameter to all be
vspace.
2018-05-11 16:14:09 +10:00
Anna Lyons
2168e5322d manual: add author 2018-05-11 16:13:15 +10:00
Anna Lyons
756d246593 manual: refactor vspace chapter
- instead of referring to only PDs and PTs, use generic language about paging structures
- link to each architectures methods
- create tables that show the info for all archictures
2018-05-11 16:13:14 +10:00
Anna Lyons
ac01547562 manual: remove hard-coded PD, PT and Page invocations
- increases the maintainability of the docs
- move descriptions of methods to the API reference
- remove hardcoded invocations in manual

This commit removes the content completely from vspace.tex, as it is out of date and needs
restructuring. The next commit does the restructuring.
2018-05-11 16:13:08 +10:00
Anna Lyons
56abae43fb manual: remove hard-coded ASID invocations
- move documentation to API ref
- create tables pointing to the API ref for these objects
2018-05-11 16:13:06 +10:00
Anna Lyons
d0f69f8ff5 manual: remove gen_invocations.py unused functions 2018-05-11 16:13:05 +10:00
Anna Lyons
d9780ec73e manual: label object groups in parse_doxygen_xml.py
This change adds a label to the latex generated object groups.
2018-05-10 11:36:05 +10:00
Anna Lyons
63c5ac6d19 manual: use level 3 for syscalls
As syscalls are not part of an inner group, which bumps the level,
they need to start at 3 not 2
2018-05-10 11:36:04 +10:00
Anna Lyons
deba85b285 manual: promote sel4_arch API docs level
This change makes sel4_arch api docs the same level as the base arch api docs. This is because the
header level became too deep for latex section types, and there is not much advantage to such deep
hierarchies.
2018-05-10 11:36:02 +10:00
Anna Lyons
b5ee12f00c manual: group generated API methods by object type
This change generates doxygen groups for each object type, which allows us to create sections in
output documents for each object. This has the advantage that we can later label those sections and
link to them from the main document. Additionally, it improves nagivation of the API docs.
2018-05-10 11:36:01 +10:00
Anna Lyons
da1e73fe96 manual: use int level in parse_doxygen_xml.py
The level argument to parse_doxygen_xml.py was previously a latex section header (either subsection
or subsubsection). This change converts the argument to numerical which is more robust and is not
limited to 2 specific levels.

This change
- alters the level argument to be an int, where 0 = highest level header,
- removes the translation of latex header to markdown,
- adds a new 'level_to_header' function to the generator class, which translates the level number
  to a header for that specific output type.
2018-05-10 11:35:59 +10:00
Anna Lyons
84b065b06a manual: use fontenc package
This fixes a problem where underscores were not searchable in the pdf manual.

In more detail, fontenc uses 8-bit encoding rather than 7-bit. The latter results in multiple glyphs for
single characters meaning normal search doesn't work. It's considered good practice to use this
package.
2018-05-08 13:59:03 +10:00
Adam Felizzi
65012ae417 manual: Markdown generation rule in Makefile
Added support to generate the libsel4 api in markdown within the
manual Makefile.
2018-05-02 18:16:32 +10:00
Adam Felizzi
e9b43006a3 manual: Added command line option for Markdown
Added a command line option for the user to specify the output
format i.e markdown or latex. The command option is used to either
create a Latex or Markdown class.
2018-05-01 13:50:39 +10:00
Adam Felizzi
8afce61b43 manual: Updated comments
Minor comment changes to the parse_doxygen_xml.py script.
2018-05-01 13:50:39 +10:00
Adam Felizzi
8ab5b3b7d1 manual: Markdown Generator Implementation
Added Markdown Generator implementation. This is a child class
to the Generator class. The Markdown generator class overrides
specific parsing table elements and methods to achieve Markdown
specific output, similar to the Latex Generator.
2018-05-01 13:50:26 +10:00
Adam Felizzi
336b73735f manual: Updated escape character regex
Updated the text_escape function to regex escape characters in the
generators escape set. This is for the case when a generators
special character set collides with regex's special character
set.
2018-05-01 12:28:03 +10:00
Adam Felizzi
8fd604eb13 manual: Added <docref> XML Tag to Doxygen
Introduced a new Doxygen XML tag '<docref>'. The intention of
this tag is to indicate a section of text in the Doxygen XML that
will contain a reference to another section in the Manual e.g.
"See \autoref<sec:x>". As other generation formats aren't aware of
other chapters/sections in the manual, the <docref> encapsulation
allows it to omit the text from the output. The Latex generator
has been modified to continue parsing the 'docref' contents.
2018-05-01 12:28:03 +10:00
Adam Felizzi
33f2fe7d92 manual: Added "heading" field to ref_dict
Updated the reference dictionary with a heading field. This is
the heading title given to the api doc section.
2018-05-01 12:28:03 +10:00
Adam Felizzi
0e6c45f69e manual: Added "original_name" field to ref_dict
Updated the reference dictionary with a non text escaped name
field. This is in case the generator doesn't need the name field
text escaped.
2018-05-01 10:42:09 +10:00
Adam Felizzi
50bffce06e manual: Parameterised escape in 'parse_prototype'
The option to escape the text when parsing the prototype can be
specified to the parse_prototype function. Markdown does not
require special C code characters to be escaped.
2018-05-01 10:42:09 +10:00
Adrian Danis
de42f82691 x86: Introduce IO port control caps
Changes the way IO ports work such that instead of 'minting' IO port caps down into new
IO port caps with smaller ranges new IO port ranges must be allocated centrally from
an IO port control cap. This mechanism acts in a very similar fashion as IRQ handler/control
capabilities and ensures that allocated IO ports do not overlap. Disallowing overlapping
IO ports is necessary to ensure the CDT remains valid as capabilities are deleted.
2018-04-24 14:04:46 +10:00
Adam Felizzi
a0ce040af8 manual: Generalised param_string generation
Moved Latex specific param string generation out of the Generator
class. Added functions to generate the desired param string
format that the Latex class can then override.
2018-04-24 10:03:52 +10:00
Adam Felizzi
886e5f59e0 manual: Generalised Generator Class
Generalised the Generator class, removing Latex specific format
code. Generator class returns empty or plain text when used
by itself.
2018-04-24 10:03:52 +10:00
Adam Felizzi
f636155acf manual: Added LatexGenerator Child class
Implemented LatexGenerator child class which extends the
Generator class. The Latex class overrides methods of the
Generator with Latex specific format. Currently a lot of
duplication between Generator and Latex class, need to
generalise the Generator class.
2018-04-24 10:03:52 +10:00
Adam Felizzi
b51ca046a4 manual: Renamed methods in Generator class
Renamed select methods to more generic names that don't suggest
they create Latex output.
2018-04-24 10:03:52 +10:00
Adam Felizzi
561e005774 manual: Moved location of get_parse_table function
Code tidying. Moved get_parse_table to the top of the class
implementation to make it more clear/distinct from the other
methods.
2018-04-24 10:03:52 +10:00
Adam Felizzi
a8ffb6e54d manual: Moved escape regex into latex_escape func
New generator classes are expected to override the ESCAPE_PATTERNS
variable. Moving the regex into an object method allows it to use
the overriden escape patterns.
2018-04-24 10:03:52 +10:00
Adam Felizzi
334514a7c8 manual: Parameterised the generator class
Parameterised the generator class for the
'generate_general_syscall_doc' method. This will allow the caller
to pass the desired generator to the function.
2018-04-24 10:03:52 +10:00
Adam Felizzi
d64ebe473f manual: Created generate_api_doc methods
Moved api doc string format into a seperate function within the
Generator class. This will allow new generators to override the
function with their own api doc format.
2018-04-24 10:03:52 +10:00
Adam Felizzi
326c6fbf26 manual: Moved functionality into Generator class
Moved the parsing functionality into a object. The goal is to
refactor the script into an object model such that we can extend
and override parsing functions to output the doxygen to different
formats. Additionally updated the various methods and variable
accesses to use 'self' inorder to work in the new object oriented
paradigm.
2018-04-24 10:03:52 +10:00