History log of /seL4-camkes-master/projects/camkes-tool/camkes/templates/helpers/marshal.c
Revision Date Author Comments
# 33bc05ea 09-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

templates,marshal.c: Allow size param to be number

Allow the buffer size type to be a number as well as a string.


# d7aa0224 29-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

templates, marshal.c: Add missing semicolons

These were previously lost in an earlier rebase.


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


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


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

templates,marshal: Remove usages of c_symbol()

c_symbol() generates a unique C symbol name that depends on a global
counter. This leads to confusing variable names that change frequently
based on any other calls to c_symbol in a project build process. In
cases where a globally unique name is not needed, using a local name is
better.


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

templates, marshal: add namespace_prefix option

Macros that print out C variable declarations for the parameters now
take an argument, namespace_prefix, that specifies a prefix to add to
the variable name. This is to enable generated functions to use local
variables without accidentally using a variable name that refers to an
interface parameter.


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


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

templates, marshal: Free old char* array correctly

We need to use the old array length to free all of the old strings
before updating it to the new array length.


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

templates: Unfold internal marshal function calls

Don't call one function per parameter and instead perform marshalling
operations for all parameters within the single method function.


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


# 24e60e15 19-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Move call-marshal-outputs to helpers/marshal.c as macro


# 84058df1 19-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Move marshal-outputs to helpers/marshal.c as macro


# 6cf89496 19-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

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


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

Move unmarshal-inputs into helpers/marshal.c as macro


# 4e23d6c1 19-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Move empty case out of show_output_parameter_list

The no parameter case needs to be handled differently depending on the callers context
and cannot assume it is always correct to put a 'void' in there.


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

Remove size that is not used


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

Common macro for showing output parameters


# 2d443ff5 19-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Fix missing semicolon


# 7e87c6b6 19-Jul-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Fix typo nullen->nulllen


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

Fix buffer length check generation

This fixes an error in the refactor to use the macro


# 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


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

Use macro for determining type for


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

Macro for generating buffer length checks


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

trivial: Fix indentation


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

Use show_input_parameter for marshal functions


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

Deduplicate logic for showing input parameter lists


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

Move input marshalling into macros