History log of /seL4-camkes-master/projects/camkes-tool/camkes/templates/seL4HardwareIOPort.template.c
Revision Date Author Comments
# 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


# f38f5c90 16-Apr-2019 Damon Lee <Damon.Lee@data61.csiro.au>

templates: Update IO port connector to use lib

Following from the IO port changes in libsel4camkes, this commit updates
the code inside the seL4HardwareIOPort connector to use the new IO port
code in libsel4camkes via a platsupport interface. Additionally, the
commit removes unnecessary code that is longer being called following
the previous commit.


# a4bce7fc 15-Apr-2019 Damon Lee <Damon.Lee@data61.csiro.au>

templates: Expose IO port regions in connector

This commit exposes the IO port region allocated by CAmkES to a section
in the ELF file.


# 9bc857aa 16-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Make error-handler.c a macro

Moves the 'error-handler.c' template logic into a 'helpers' template as a macro with
arguments, instead of a template file that is 'include'd and relies on peeking at
global variables to simulate argument passing.


# 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.


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

Fix licenses


# 8dff1c71 06-Jun-2016 Matthew Fernandez <matthew.fernandez@nicta.com.au>

s/unsigned int/unsigned; Why use 12 characters when 8 will do?

This commit cherry-picks 6f50d5e0ebf0d97665edc77a23c5f280d9dd8e6d from
ssh://github.inside.nicta.com.au/mfernandez/project.


# 13f0e841 09-Mar-2016 Stephen Sherratt <Stephen.Sherratt@nicta.com.au>

Updated seL4 API usage in hardware ioport template

This renames _IA32 suffixed names to use the _X86 suffix.


# be6ac006 06-Mar-2016 Stephen Sherratt <Stephen.Sherratt@nicta.com.au>

Updated seL4 API usage in hardware ioport template

This renames _IA32 suffixed names to use the _X86 suffix.


# 07aeecb8 15-Dec-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Fix: inability to register error handler in IO port connector.

This commit is a modified version of
https://github.inside.nicta.com.au/mfernandez/project/commit/5b69416d6af92107c60610782b5268bbab7363c8

Fixes JIRA CAMKES-391


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

Refactored parser init commit.


# 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.


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

Fix whitespace schizophrenia.


# 9ca1ccba 17-May-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Check if port accesses are in range in IO port template


# b56a35b1 17-May-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Correct _in_range check in IO port template


# 9787c194 14-May-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Add ability to invoke x86 I/O ports by offset instead of just absolute port number

This change allows I/O ports to be used in a similar way to memory mapped IO, where
the specification chooses the physical address that you are accessing, and you
perform all operations effectively via offset. In the case where the are multiple
I/O port devices, or the device can move around, this allows the component to not
need to be told somehow where it is.


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

Accept integer literals in any form for attributes.


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

Optimisation: Use new configuration dictionary interface in the templates.


# 16bfcca2 09-Mar-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Templates: Name per-interface error handlers statically.

This allows us to more straightforwardly blacklist these symbols -- which is
also done in this commit -- to avoid them appearing in verification input.


# 2d348014 04-Feb-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

libsel4camkes: Separate IO functionality from DMA.

Prior to this commit, the DMA allocator functions incorrectly presumed that the
user would want to use ps_io functions to lookup DMA pages by their physical
address. These functions are actually intended to be used to lookup the virtual
addresses of memory-mapped IO devices. This commit separates this functionality
into a separate file and extends IO access functionality to cover IO ports as
well. This is primarily for interaction with libplatsupport. If you are not
using libplatsupport infrastructure, it will probably be simply to directly
invoke CAmkES interface functions.


# 4ba9d9fb 04-Feb-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Fix missing #include.


# 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.


# 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


# 2187a516 22-Oct-2014 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Move Jinja macros into Python.

Jinja macros have unexpected, and often unpleasant, behaviour. A non-exhaustive
list of issues with them is:
- They are not first class Python functions so cannot be passed within the
template context to, e.g., `map`;
- They can mask and inadvertently overwrite your local variables;
- Certain types of references have unexpected expansions within the context of
a macro;
- Calling a macro within a macro is dangerous; and
- You cannot call certain Python functions from within a macro.

This commit transliterates the existing macros into Python, attempting to
preserve all current functionality. This has involved essentially inverting
their implementation such that they become C hosted within Python, rather than
Python hosted within C. The macros are now unconditionally available to all
templates (see Context.py).

This change is intended to be transparent to template authors and CAmkES users.

Conflicts:
camkes/templates/echronos/eChronosAsynch-from.template.c
camkes/templates/echronos/eChronosAsynch-to.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
camkes/templates/macros.jinja


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

Release snapshot