History log of /seL4-camkes-master/projects/camkes-tool/camkes/templates/rpc-connector-common-from.c
Revision Date Author Comments
# bdd32ffa 28-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

templates,rpc-connector: Nitpick generation style

Tweak the newline character generation in the rpc templates to make the
outputted code more readable. It is expected that the output files are
formatted by clang-format as part of the build process.


# 792a1449 28-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

templates,rpc-connector-common: Remove c_symbol()

Use more readable symbol names than those generated by c_symbol().


# 5dc6c9f2 28-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

templates,marshal: Pass buf and size in function

Allow the target buffer to marshal data into to be passed into the
marshal functions. This will make it easier to support buffers that
aren't the IPC buffer or a global buffer.


# 49c0e1cf 28-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

templates, marshal: Remove dead macro parameters

The `instance`, `interface` and `error_handler` arguments are no longer
used by the marshalling template macros as they are used by the C
preprocessor macros instead.


# b4252287 28-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

templates: Convert repeated marshal code to macros

Add camkes/marshal_macros.h which provides a series of marshal and
unmarshal macros for different RPC parameter types (array, string array,
string, regular) into a fixed size buffer.
Refactor the marshal.c template code to use the macros.
This refactor doesn't change any behavior.


# cecf8a37 28-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

templates: Remove TLS usage from rpc connectors

The TLS macro implementation was used to manually manage thread local
variables in the .data and .bss sections instead of on the stack. This
mechanism was used for glue code verification and shouldn't be used in
connectors that are free to use the stack.


# f03df4ec 19-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Remove array_check implementation

Lot of complexity to provide an error/warning for something that the
compiler now won't let you do.


# 58762359 17-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Remove maybe_perform_optimized_empty_call

Also remove related configuration options for this optimization
This optimisation is so narrow that it is never used.


# 0e3b19c2 31-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Fix namespace typo


# 0a994d4e 17-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Rewrite seL4RPCCall to use an abstract 'connector'

This is a substantial refactor that is meant to make it easier to change how different
templated connections work without having to duplicate a template and change it. In
theory the seL4RPCCall template could be instantiated with a different 'connector' to
give it different behaviours, although the mechanism to change the used connector is not
done in this change.

Whilst intended to be a semantics preserving refactor there are some minor changes. Some
code gets trivial changes of being split into multiple statements or moved into different
blocks. The largest change is some error handling is changed to be 'less helpful' due to
difficulties in getting precise information to the point where the error code now has to be
generated and having nice abstractions.


# f1347346 18-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Remove size that is not used


# ad5d6e8f 17-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Move call-unmarshal-outputs into helpers/marshal.c as macro


# c0f9e6cb 17-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Move unmarshal-outputs into helpers.marshal.c as macro


# 2e5d81ca 17-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Deduplicate logic for showing input parameter lists


# b958c5cb 17-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Use 'show_type' macro for string types

Handling the 'string' case of a type separately is not needed as show_type already handles
this case in the expected way.


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

Move input marshalling into macros


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

Move thread local generation into macros


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

Move array typedef check generation into macros


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


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

Fix licenses


# 5f025fda 13-Feb-2017 Kofi Doku Atuah <kofidoku.atuah@data61.csiro.au>

CAMKES-560: Add support for new-rt APIs to next

Replace instances of seL4_Recv, seL4_SignalRecv, seL4_Send, with
RT-compliant versions that operate on reply object caps.


# 82572448 26-Jan-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Error checking on badge attribute in rpc template


# 8eef4381 02-Jan-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Permit rpc ep badges being specified as strings


# 53665bfe 23-Jun-2016 Stephen Sherratt <Stephen.Sherratt@nicta.com.au>

Removed call-leave-reply-cap options

These flags were used to tell camkes to only protect reply caps right
before they were about to be overwritten, rather than protecting reply
caps unconditionally. It is now redundant, as this is the only behaviour
in camkes next.


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

Remove unused marshalling helpers.

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


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


# 180e4dda 10-Dec-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Remove marshalling helpers.

This commit removes the following API functions:

* `camkes_marshal`
* `camkes_marshal_string`
* `camkes_unmarshal`
* `camkes_unmarshal_string`

None of these functions are used in template code any more.


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

Refactored parser init commit.


# 90edb92b 13-Jul-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Be more permissive with string parameters in some templates.

This commit allows unicode in a couple of places, where they were not allowed
previously. Support is still lacking currently, but upcoming changes to the
parser introduce full unicode support here.


# 8bcc6063 02-Jun-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Stop defining `_POSIX_SOURCE`.

I think this was just legacy stuff as we never actually call `stpcpy`
currently.


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

Remove support for arrays as return types.

This commit effectively backs out part of
20f4072ac25eeb707f4e17c4a26501d4b59308ee. The motivation for removing support
for this is that array return types are not representable in the upcoming
refactored AST. Note that there is currently no grammar for describing an array
return type anyway, so no end users are relying on this support. The only way
to use an array return type was to programmatically construct a method with one
and I am not currently aware of any uses of this.


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

Fix comment typo.


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

seL4RPCCall: Simplify syscall optimisation judgement.

Both checks that guarded the syscall specialisation in seL4RPCCall have been
tightened previously and the inner one now subsumed the outer one. To simplify
it, this commit reduces it to a single check. Should have no user-visible
effect, though note that this optimisation almost never comes into play anyway.


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


# 4ff636b6 20-May-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Refactor RPCCall template

Move most of the functionality of the RPCCall template into common
stubs that are included into the existing RPCCall template.

These common stubs can eventually be refactored and used by the other
existing RPC templates as well as other custom RPC templates