History log of /seL4-camkes-master/projects/camkes-tool/camkes/templates/component.simple.c
Revision Date Author Comments
# fb68284d 04-Nov-2020 Oliver Scott <Oliver.Scott@data61.csiro.au>

trivial: fix missed header related to tk1

Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>


# a0618cc7 04-Nov-2020 Oliver Scott <Oliver.Scott@data61.csiro.au>

trivial: change smmu to tk1 guard

Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>


# d5e2846f 20-Jul-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

trivial: Fix compiler warnings

- Remove unused variables
- Conditionally define functions that are conditionally used
- Add default cases to non-exhaustive switch statements
- Correct printf modifiers
- Correct type mismatches
- Initialize variables to prevent uninitialized usages
- Insert missing return statements


# b2a39af0 09-Jul-2020 Oliver Scott <Oliver.Scott@data61.csiro.au>

trivial: fix style


# 12297d67 20-Nov-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

component.simple: Use correct ioports function def

When seL4's IOPort api was changed, the simple interface definition also
changed but the camkes simple implementation wasn't updated.


# 5055bbb0 09-Oct-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Update FrameFill declarations to match new api

FrameFills in the capDL spec have been updated to always require
destination_offset and size parameters before the FrameFill subtype
specific parameters.


# f6d1ba48 21-Aug-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

mcs: Rename CONFIG_KERNEL_RT to CONFIG_KERNEL_MCS

This is to be consistent with the name defined in the kernel.


# c12bb3fb 22-May-2019 Yu Hou <Yu.Hou@data61.csiro.au>

camkes-tool: explicitly include gen_config.h

explicitly include gen_config.h since there is going to be
no more global configuration lib


# 00581d2a 16-Jun-2019 Damon Lee <Damon.Lee@data61.csiro.au>

templates: Update use of register_fill_frame

This commit follows from the addition of the size argument in
register_fill_frames(). We update the previous uses of
register_fill_frames().


# 927ac174 15-May-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

camkes/templates: update for capdl api change

Use CDL_FrameFill_BootInfo constant instead of arbitrary "bootinfo"
string for specifying frame fill type.


# a477ca2e 03-Mar-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

component.simple.c: Remove bad assignment

The branch was previously unused and the assignment was always invalid


# d12e24cf 13-Feb-2019 Japheth Lim <Japheth.Lim@data61.csiro.au>

templates: don't request cap rights for object types that don't have them


# 684d8bbb 12-Feb-2019 Japheth Lim <Japheth.Lim@data61.csiro.au>

camkes: use hexadecimal for physical addresses in object names

This almost always makes more sense than decimal.


# 51f03c9f 02-Jan-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

templates: guard sched_ctrl in component.simple.c

If sched_ctrl is specified in a component that uses component.simple.c, the sched ctrl
allocation should only take place if options.realtime is set.


# 10c75159 20-Dec-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

component.simple.c: fix function name

s/simple_default_core_count/camkes_simple_core_count


# 2822fb97 19-Dec-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

camkes/templates: add simple_get_core_count

Define simple_get_core_count in component.simple.c

This is required for running on the MCS kernel


# 66d82e92 10-Oct-2018 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Change Camkes alignment and section linking policy

There are now special sections created by the Camkes linker script that
are aligned to each of the architecture page sizes. Symbols that require
a certain alignment in order to be backed by an underlying seL4 frame of
a certain size should declare to be in the section of that size. The
purpose of this is to drastically simplify the linking policy shared
between Camkes and the capdl python scripts that would create the
address space objects.

The linker script requirement is because a compiler/assembler is not required to
respect the `align` attribute above a certain small size and any
alignment requirements on the order of page sizes needs to be specified
by a linker script.

These changes make it possible to remove some architecture special cases
that exist in Camkes templates, which is why they are removed.

It is assumed that any of the special policy associated with the special
section names: guarded, shared_*, ignore_* and persistent can still be
implemented by using the new section name with the same alignment, eg
align_12bit for all symbols that require 4k guard pages.


# 28fac4ae 09-Oct-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

templates: seL4_IRQControl -> seL4_IRQHandler

These types should be seL4_IRQHandler, and were misnamed as
seL4_IRQControl, which is a different type of capability.


# e1337625 22-Apr-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Update I/O port allocation in templates

This reflects an update in the model presented by the python capdl tool, which ultimately
reflects a change in the kernel capability model.


# 50bae6fd 18-Feb-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Remove arch_info from simple template

The archInfo member of bootinfo has been removed and accordingly arch_info has also
been removed from the simple interface.


# 8b2ec3e6 20-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix licenses


# b380d007 03-May-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Add missing guard for CONFIG_RT_KERNEL


# bc37bde2 03-May-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Ability to get sched_ctrl caps from simple

sched_ctrl caps should be added to a configuration
as component.sched_ctrl = core, where core determines which
CPU core the sched_ctrl cap is for.


# fefcf025 02-May-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Add scheduling context cap to simple


# f6b94417 18-Apr-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Interface for simple components to request extended boot information


# b7f51e67 18-Apr-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Option for giving a simple component the arch info word


# 0fadff05 02-Apr-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Remove hardcoded min and max untyped size


# 5b92904f 11-Dec-2016 Kent McLeod <kent.mcleod@nicta.com.au>

Change syntax for lists in component.simple

Currently lists of numbers for describing pointers and interrupt numbers
are parsed as a single string. This makes it hard to add comments on
each line. This changes the parsing to take a list of numbers rather
than strings so comments can be added inline.


# 4323b14d 17-Nov-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

Remove unnecessary Recycle invocation


# 932bb306 01-Nov-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

Export untyped MMIOs through the simple untyped interface


# 20edf65e 01-Nov-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

ARM SMMU support in simple template

Adds support for getting ARM IOSpace caps through the simple interface


# c40b1981 13-Oct-2016 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Check if device pointer is null in simple impl


# 5b169729 04-Oct-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

Update simple template for simple interface changes


# ca7cb3df 04-Oct-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

Update simple template for simple interface changes


# 0da32813 15-Sep-2016 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Using arch_simple interface for "stable" kernel


# 25846add 29-Aug-2016 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Treat asid_pool as bool in simple template


# 278b3bdb 29-Aug-2016 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Implemenent arch_simple interface


# 33366354 20-Jul-2016 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Fixed support for the simple template

This was broken due to attributes having types in camkes next.
Specifically, the attribute setting 'simple = true' used to treat "true"
as a string, but now it is treated as a boolean.


# d1b539d9 03-Jul-2016 Stephen Sherratt <Stephen.Sherratt@nicta.com.au>

Replaced aep with notification internally

This changes variable names and comments replacing aep with
notification. This change should have no impact on functionality.


# b4546aa4 31-May-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

Add guard in simple template

IO ports only exist on x86, this guard prevents compilation
errors on arm


# 821b79df 26-May-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

Reintroduce some stable kernel support

This reintroduces a minimal amount of backwards compatiblity
to allow the CAmkES VM project to work again


# 53dcb818 16-May-2016 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Remove code relating to KERNEL_STABLE.

Apparently this is no longer a thing.


# 2c8927a7 16-May-2016 Matthew Fernandez <matthew.fernandez@nicta.com.au>

templates: Squash compiler warning.


# 5fe9fc5f 04-May-2016 Adrian Danis <Adrian.Danis@nicta.com.au>

Update simple template for libsel4simple changes


# 83adccf7 21-Apr-2016 Adrian Danis <Adrian.Danis@nicta.com.au>

Change ARCH_IA32 to ARCH_X86


# 4e37470f 17-Apr-2016 Adrian Danis <Adrian.Danis@nicta.com.au>

Remove some 32-bit assumptions


# 1fcc9dff 10-Jan-2016 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Fix: rename 'aep' to 'notification' in arguments to alloc.

The internals of python-capdl have changed and unfortunately silently accept
the old 'aep' parameter, but then raise a message-less exception. This commit
corrects such calls to `alloc` to correctly allocate a notification object.


# b923ca7b 16-Dec-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Find and replace seL4_AsyncEndpointObject with seL4_NotificationObject.


# 05c21caf 26-Nov-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Always pass a cap to an AEP when associating IRQs.

Prior to this change, templates that associated IRQs with AEPs always did so via
an AEP object. Internally, the python-capdl module would allocate a cap to this
object, as IRQs always need to be associated with AEP *caps*, as opposed to AEP
*objects*. This change modifies all in-tree instances to pass a cap to the AEP.
This is marginally more efficient (due to avoiding creating another cap in
python-capdl, but the main motivation for this change is that an upcoming
change to python-capdl removes the ability to pass an AEP object as this
parameter and requires a cap.


# bacfebce 27-Oct-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Refactored parser init commit.


# ac0e750a 14-Oct-2015 Stephen Sherratt <Stephen.Sherratt@nicta.com.au>

Replaced AsyncEndpoint with Notification. Applied "s/AsyncEndpoint/Notification/g" and "s/aep/notification/g" to each file.


# d344d60d 29-Jul-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Fix: Include stddef.h and stdint.h where appropriate.

This issue only became apparent after pulling in the change that divorced
libsel4 from libc.


# 8b3771b9 31-May-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Fix: Tighten some attribute regexes.

Python's `re.match` only requires a match from the start of the source string,
not exactly matching the source string. So, for example, the regex r'hello'
matches 'hello world', though you may have actually intended it to only match
precisely 'hello'. This commit fixes some `re.match` calls in template code.


# 48646e67 21-May-2015 Stephen Sherratt <stephen.sherratt@nicta.com.au>

Removed unnecessary check for assembly configuration being none.


# ad452a00 20-May-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Simple template: Rephrase some settings access.

This is done for style, but coincidentally I believe it resolves JIRA
CAMKES-390.


# b79167a9 20-May-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Templates: Use explicit comparison when testing against `None`.

This is slightly clearer and safer.


# fc349fe0 13-May-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

simple: Fix some comment typos.


# 657009f2 14-Apr-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Accept integer literals in any form for attributes.


# bc95dab5 07-Apr-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Correct simple template to pull multiple configuration entries out of a single attribute instead of relying on the same attribute line being declared multiple times


# ea01d742 27-Mar-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Optimisation: Use new configuration dictionary interface in the templates.


# 0b8982a4 26-Mar-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Templates: Be more explicit about testing for None and [].

This commit replaces the idiom 'if foo' with explicit tests for None or the
empty list when that is the intention of the given code. This makes the
templates a little more readable and is necessary to avoid confusion in
relation to some upcoming commits.


# a09a7346 16-Feb-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Add cnode_size_bits attribute for overriding CNode size.

No ordinary user should need this feature, but more unorthodox components that
need to do dynamic cap operations sometimes need an enlarged CSpace.


# f9cda8f8 29-Jan-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Implement error handling in glue code.

This commit replaces previous assertion placeholders and other assumptions with
a flexible error handling mechanism. For details on how to use this, refer to
the accompanying documentation.


# 6b220ff6 28-Jan-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Fix: Missing include in simple template.

In the previous fixup I failed to notice that the simple template was missing
the same include.


# eaed18db 22-Jan-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Remove arch page abstractions for GetAddress and friends.

These abstractions are now in libsel4utils.


# 79c41d2c 15-Jan-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Generate an error if user requests untyped mmio regions on a kernel that does not support them


# 0ef2fd08 14-Jan-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Add support to simple template for frame only untyped objects


# 27f9118e 15-Dec-2014 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Change template license headers to Jinja comments.

The effect of this is that they do not appear in generated output, which was a
bit confusing previously.

Closes JIRA CAMKES-319

Conflicts:
camkes/templates/autocorres/AsynchNativeFrom.template.thy
camkes/templates/autocorres/AsynchNativeTo.template.thy
camkes/templates/autocorres/RPCSimpleFrom.template.thy
camkes/templates/autocorres/RPCSimpleTo.template.thy
camkes/templates/autocorres/SharedDataFrom.template.thy
camkes/templates/autocorres/SharedDataTo.template.thy
camkes/templates/echronos/eChronosAsynch-from.template.c
camkes/templates/echronos/eChronosAsynch-to.template.c
camkes/templates/echronos/eChronosDirectCall-from.template.c
camkes/templates/echronos/eChronosDirectCall-to.template.c
camkes/templates/linker.lds
camkes/templates/linux/component.template.c
camkes/templates/linux/component.template.h
camkes/templates/linux/linuxMQ-from.template.c
camkes/templates/linux/linuxMQ-to.template.c
camkes/templates/linux/linuxMQEmpty-from.template.c
camkes/templates/linux/linuxMQEmpty-to.template.c
camkes/templates/linux/linuxMmap-from.template.c
camkes/templates/linux/linuxMmap-to.template.c


# 4f238629 08-Dec-2014 Adrian Danis <Adrian.Danis@nicta.com.au>

Correct type of simple_camkes_set_ASID to avoid compiler warning


# b722a651 12-Nov-2014 Adrian Danis <Adrian.Danis@nicta.com.au>

Use separate untyped pools for simple generation as the overload of the existing camkes pools does not make sense as camkes allocator should not be used if you are retrieving untypeds through the simple interface


# 2fed8fbb 06-Nov-2014 Adrian Danis <Adrian.Danis@nicta.com.au>

Improve the simple template with variable sized mmio regions, irq capabilities and asid pools


# cc64bb50 21-Jul-2014 TrustworthySystems <gatekeeper@sel4.systems>

Release snapshot