History log of /seL4-camkes-master/projects/global-components/templates/seL4VirtQueues-from.template.c
Revision Date Author Comments
# a72aa7bd 17-Jul-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

single-threaded: Merge last signal call with wait

For a virtqueue signal operation, combine the last signal with waiting
on the components endpoint. This is to optimize the case where a
component finished doing some work, signals another component and goes
back to sleep to remove an additional kernel entry/exit.

Note that this optimization is on by default and can be toggled off with
a configuration option. To turn this off, set the CAmkES attribute
"<interface_name>.disable_optimizations = 1", where interface name is
the name of the interface that's connected with another component with
the seL4VirtQueues connector.


# 5cf20f0b 21-May-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

virtqueues: Support configuration virtqueue size

Virtqueues now get initialized with a queue size


# f2e793b4 04-May-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

seL4VirtQueues: Increase default size to 8KiB

This is to support an increase in queue length to 256.


# 4c8bb99f 11-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

seL4VirtQueues: Infer topology for 2 only ends

If the connection is only connecting one driver end to one device end,
then don't require a topology configuration to be set.


# be88ca2d 11-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

seL4VirtQueues: Refactor shared memory creation

Create the shared memory regions for each virtqueue directly within the
connector. This way means that the connector can more directly guarantee
that the shared symbols are connected instead of relying on the
seL4MultiSharedData connector which had a different interface for
linking shared memories that required setting matching attributes on the
configuration in the Camkes ADL.


# c45f79a5 11-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

seL4VirtQueues: Support automatic ID allocation

If an ID isn't set in the configuration for a virtqueue then
automatically assign one.


# d7b91a83 11-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

seL4VirtQueues: register interface name with lib

Pass the interface name of the virtqueue in with the call to
camkes_virtqueue_channel_register. This allows the component to
request the channel by interface name instead of by ID.


# e2e7f059 11-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

seL4VirtQueues: Remove threads from connector def

This connector doesn't require threads for either end. The threads were
only used for registering the connector symbols on component
initialization. Instead we can use a `contstructor` attribute and the
init function will be called by the C runtime during initialization
instead.


# 226664b9 04-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

global-endpoint: Refactor to auto-allocate badges

As the global-endpoint is a notification object shared across multiple
camkes connections, we force each connection end to have a distinct
badge value and don't allow the camkes assembly to specify badge values
or notification object names.


# e7942f76 03-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

seL4VirtQueues: Add recv. notification information

When registering a virtqueue, we also provide the badge and notification
cap for receiving notifications from the other end.


# cb80c133 03-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

seL4VirtQueues: Make notification methods private

These are not expected to be called by external modules other than
through what's registered in camkes_virtqueue_channel_register.


# 1dc07a04 28-May-2019 A Felizzi <Adam.Felizzi@data61.csiro.au>

VirtQueues: Removed vswitch include in template

Removed the vswitch include in the virtqueue template as its
not used.


# efa6b856 22-Oct-2018 Adam Felizzi <Adam.Felizzi@data61.csiro.au>

VirtQueues: Added the seL4VirtQueues connector

This adds the seL4VirtQueue connector to global componants. By
importing global components, CAmkES apps can use
seL4Virtqueue's. This previously existed in the CAmkES VM project.