doc: add event crypto adapter guide
Add entries in the programmer's guide, API index, maintainer's file and release notes for the event crypto adapter. Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
This commit is contained in:
parent
3c2c535ecf
commit
7b51fc96d1
|
@ -367,6 +367,7 @@ M: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
|
|||
T: git://dpdk.org/next/dpdk-next-eventdev
|
||||
F: lib/librte_eventdev/*crypto_adapter*
|
||||
F: test/test/test_event_crypto_adapter.c
|
||||
F: doc/guides/prog_guide/event_crypto_adapter.rst
|
||||
|
||||
Raw device API - EXPERIMENTAL
|
||||
M: Shreyansh Jain <shreyansh.jain@nxp.com>
|
||||
|
|
296
doc/guides/prog_guide/event_crypto_adapter.rst
Normal file
296
doc/guides/prog_guide/event_crypto_adapter.rst
Normal file
|
@ -0,0 +1,296 @@
|
|||
.. SPDX-License-Identifier: BSD-3-Clause
|
||||
Copyright(c) 2018 Intel Corporation. All rights reserved.
|
||||
|
||||
Event Crypto Adapter Library
|
||||
============================
|
||||
|
||||
The DPDK :doc:`Eventdev library <eventdev>` provides event driven
|
||||
programming model with features to schedule events.
|
||||
The :doc:`Cryptodev library <cryptodev_lib>` provides an interface to
|
||||
the crypto poll mode drivers which supports different crypto operations.
|
||||
The Event Crypto Adapter is one of the adapter which is intended to
|
||||
bridge between the event device and the crypto device.
|
||||
|
||||
The packet flow from crypto device to the event device can be accomplished
|
||||
using SW and HW based transfer mechanism.
|
||||
The Adapter queries an eventdev PMD to determine which mechanism to be used.
|
||||
The adapter uses an EAL service core function for SW based packet transfer
|
||||
and uses the eventdev PMD functions to configure HW based packet transfer
|
||||
between the crypto device and the event device. The crypto adapter uses a new
|
||||
event type called ``RTE_EVENT_TYPE_CRYPTODEV`` to indicate the event source.
|
||||
|
||||
The application can choose to submit a crypto operation directly to
|
||||
crypto device or send it to the crypto adapter via eventdev based on
|
||||
RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD capability.
|
||||
The first mode is known as the event new(RTE_EVENT_CRYPTO_ADAPTER_OP_NEW)
|
||||
mode and the second as the event forward(RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD)
|
||||
mode. The choice of mode can be specified while creating the adapter.
|
||||
In the former mode, it is an application responsibility to enable ingress
|
||||
packet ordering. In the latter mode, it is the adapter responsibility to
|
||||
enable the ingress packet ordering.
|
||||
|
||||
|
||||
Adapter Mode
|
||||
------------
|
||||
|
||||
RTE_EVENT_CRYPTO_ADAPTER_OP_NEW mode
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In the RTE_EVENT_CRYPTO_ADAPTER_OP_NEW mode, application submits crypto
|
||||
operations directly to crypto device. The adapter then dequeues crypto
|
||||
completions from crypto device and enqueues them as events to the event device.
|
||||
This mode does not ensure ingress ordering, if the application directly
|
||||
enqueues to the cryptodev without going through crypto/atomic stage.
|
||||
In this mode, events dequeued from the adapter will be treated as new events.
|
||||
The application needs to specify event information (response information)
|
||||
which is needed to enqueue an event after the crypto operation is completed.
|
||||
|
||||
.. _figure_event_crypto_adapter_op_new:
|
||||
|
||||
.. figure:: img/event_crypto_adapter_op_new.*
|
||||
|
||||
Working model of ``RTE_EVENT_CRYPTO_ADAPTER_OP_NEW`` mode
|
||||
|
||||
|
||||
RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD mode
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In the RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD mode, if HW supports
|
||||
RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD capability the application
|
||||
can directly submit the crypto operations to the cryptodev.
|
||||
If not, application retrieves crypto adapter's event port using
|
||||
rte_event_crypto_adapter_event_port_get() API. Then, links its event
|
||||
queue to this port and starts enqueuing crypto operations as events
|
||||
to the eventdev. The adapter then dequeues the events and submits the
|
||||
crypto operations to the cryptodev. After the crypto completions, the
|
||||
adapter enqueues events to the event device.
|
||||
Application can use this mode, when ingress packet ordering is needed.
|
||||
In this mode, events dequeued from the adapter will be treated as
|
||||
forwarded events. The application needs to specify the cryptodev ID
|
||||
and queue pair ID (request information) needed to enqueue a crypto
|
||||
operation in addition to the event information (response information)
|
||||
needed to enqueue an event after the crypto operation has completed.
|
||||
|
||||
.. _figure_event_crypto_adapter_op_forward:
|
||||
|
||||
.. figure:: img/event_crypto_adapter_op_forward.*
|
||||
|
||||
Working model of ``RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD`` mode
|
||||
|
||||
|
||||
API Overview
|
||||
------------
|
||||
|
||||
This section has a brief introduction to the event crypto adapter APIs.
|
||||
The application is expected to create an adapter which is associated with
|
||||
a single eventdev, then add cryptodev and queue pair to the adapter instance.
|
||||
|
||||
Create an adapter instance
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
An adapter instance is created using ``rte_event_crypto_adapter_create()``. This
|
||||
function is called with event device to be associated with the adapter and port
|
||||
configuration for the adapter to setup an event port(if the adapter needs to use
|
||||
a service function).
|
||||
|
||||
Adapter can be started in ``RTE_EVENT_CRYPTO_ADAPTER_OP_NEW`` or
|
||||
``RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD`` mode.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
int err;
|
||||
uint8_t dev_id, id;
|
||||
struct rte_event_dev_info dev_info;
|
||||
struct rte_event_port_conf conf;
|
||||
enum rte_event_crypto_adapter_mode mode;
|
||||
|
||||
err = rte_event_dev_info_get(id, &dev_info);
|
||||
|
||||
conf.new_event_threshold = dev_info.max_num_events;
|
||||
conf.dequeue_depth = dev_info.max_event_port_dequeue_depth;
|
||||
conf.enqueue_depth = dev_info.max_event_port_enqueue_depth;
|
||||
mode = RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD;
|
||||
err = rte_event_crypto_adapter_create(id, dev_id, &conf, mode);
|
||||
|
||||
If the application desires to have finer control of eventdev port allocation
|
||||
and setup, it can use the ``rte_event_crypto_adapter_create_ext()`` function.
|
||||
The ``rte_event_crypto_adapter_create_ext()`` function is passed as a callback
|
||||
function. The callback function is invoked if the adapter needs to use a
|
||||
service function and needs to create an event port for it. The callback is
|
||||
expected to fill the ``struct rte_event_crypto_adapter_conf`` structure
|
||||
passed to it.
|
||||
|
||||
For RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD mode, the event port created by adapter
|
||||
can be retrieved using ``rte_event_crypto_adapter_event_port_get()`` API.
|
||||
Application can use this event port to link with event queue on which it
|
||||
enqueues events towards the crypto adapter.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
uint8_t id, evdev, crypto_ev_port_id, app_qid;
|
||||
struct rte_event ev;
|
||||
int ret;
|
||||
|
||||
ret = rte_event_crypto_adapter_event_port_get(id, &crypto_ev_port_id);
|
||||
ret = rte_event_queue_setup(evdev, app_qid, NULL);
|
||||
ret = rte_event_port_link(evdev, crypto_ev_port_id, &app_qid, NULL, 1);
|
||||
|
||||
// Fill in event info and update event_ptr with rte_crypto_op
|
||||
memset(&ev, 0, sizeof(ev));
|
||||
ev.queue_id = app_qid;
|
||||
.
|
||||
.
|
||||
ev.event_ptr = op;
|
||||
ret = rte_event_enqueue_burst(evdev, app_ev_port_id, ev, nb_events);
|
||||
|
||||
Querying adapter capabilities
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The ``rte_event_crypto_adapter_caps_get()`` function allows
|
||||
the application to query the adapter capabilities for an eventdev and cryptodev
|
||||
combination. This API provides whether cryptodev and eventdev are connected using
|
||||
internal HW port or not.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
rte_event_crypto_adapter_caps_get(dev_id, cdev_id, &cap);
|
||||
|
||||
Adding queue pair to the adapter instance
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Cryptodev device id and queue pair are created using cryptodev APIs.
|
||||
For more information see :doc:`here <cryptodev_lib>`.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
struct rte_cryptodev_config conf;
|
||||
struct rte_cryptodev_qp_conf qp_conf;
|
||||
uint8_t cdev_id = 0;
|
||||
uint16_t qp_id = 0;
|
||||
|
||||
rte_cryptodev_configure(cdev_id, &conf);
|
||||
rte_cryptodev_queue_pair_setup(cdev_id, qp_id, &qp_conf);
|
||||
|
||||
These cryptodev id and queue pair are added to the instance using the
|
||||
``rte_event_crypto_adapter_queue_pair_add()`` API.
|
||||
The same is removed using ``rte_event_crypto_adapter_queue_pair_del()`` API.
|
||||
If HW supports RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND
|
||||
capability, event information must be passed to the add API.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
uint32_t cap;
|
||||
int ret;
|
||||
|
||||
ret = rte_event_crypto_adapter_caps_get(id, evdev, &cap);
|
||||
if (cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND) {
|
||||
struct rte_event event;
|
||||
|
||||
// Fill in event information & pass it to add API
|
||||
rte_event_crypto_adapter_queue_pair_add(id, cdev_id, qp_id, &event);
|
||||
} else
|
||||
rte_event_crypto_adapter_queue_pair_add(id, cdev_id, qp_id, NULL);
|
||||
|
||||
Configure the service function
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If the adapter uses a service function, the application is required to assign
|
||||
a service core to the service function as show below.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
uint32_t service_id;
|
||||
|
||||
if (rte_event_crypto_adapter_service_id_get(id, &service_id) == 0)
|
||||
rte_service_map_lcore_set(service_id, CORE_ID);
|
||||
|
||||
Set event request/response information
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In the RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD mode, the application needs
|
||||
to specify the cryptodev ID and queue pair ID (request information) in
|
||||
addition to the event information (response information) needed to enqueue
|
||||
an event after the crypto operation has completed. The request and response
|
||||
information are specified in the ``struct rte_crypto_op`` private data or
|
||||
session's private data.
|
||||
|
||||
In the RTE_EVENT_CRYPTO_ADAPTER_OP_NEW mode, the application is required
|
||||
to provide only the response information.
|
||||
|
||||
The SW adapter or HW PMD uses ``rte_crypto_op::sess_type`` to
|
||||
decide whether request/response data is located in the crypto session/
|
||||
crypto security session or at an offset in the ``struct rte_crypto_op``.
|
||||
The ``rte_crypto_op::private_data_offset`` is used to locate the request/
|
||||
response in the ``rte_crypto_op``.
|
||||
|
||||
For crypto session, ``rte_cryptodev_sym_session_set_private_data()`` API
|
||||
will be used to set request/response data. The same data will be obtained
|
||||
by ``rte_cryptodev_sym_session_get_private_data()`` API. The
|
||||
RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA capability indicates
|
||||
whether HW or SW supports this feature.
|
||||
|
||||
For security session, ``rte_security_session_set_private_data()`` API
|
||||
will be used to set request/response data. The same data will be obtained
|
||||
by ``rte_security_session_get_private_data()`` API.
|
||||
|
||||
For session-less it is mandatory to place the request/response data with
|
||||
the ``rte_crypto_op``.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
union rte_event_crypto_metadata m_data;
|
||||
struct rte_event ev;
|
||||
struct rte_crypto_op *op;
|
||||
|
||||
/* Allocate & fill op structure */
|
||||
op = rte_crypto_op_alloc();
|
||||
|
||||
memset(&m_data, 0, sizeof(m_data));
|
||||
memset(&ev, 0, sizeof(ev));
|
||||
/* Fill event information and update event_ptr to rte_crypto_op */
|
||||
ev.event_ptr = op;
|
||||
|
||||
if (op->sess_type == RTE_CRYPTO_OP_WITH_SESSION) {
|
||||
/* Copy response information */
|
||||
rte_memcpy(&m_data.response_info, &ev, sizeof(ev));
|
||||
/* Copy request information */
|
||||
m_data.request_info.cdev_id = cdev_id;
|
||||
m_data.request_info.queue_pair_id = qp_id;
|
||||
/* Call set API to store private data information */
|
||||
rte_cryptodev_sym_session_set_private_data(
|
||||
op->sym->session,
|
||||
&m_data,
|
||||
sizeof(m_data));
|
||||
} if (op->sess_type == RTE_CRYPTO_OP_SESSIONLESS) {
|
||||
uint32_t len = IV_OFFSET + MAXIMUM_IV_LENGTH +
|
||||
(sizeof(struct rte_crypto_sym_xform) * 2);
|
||||
op->private_data_offset = len;
|
||||
/* Copy response information */
|
||||
rte_memcpy(&m_data.response_info, &ev, sizeof(ev));
|
||||
/* Copy request information */
|
||||
m_data.request_info.cdev_id = cdev_id;
|
||||
m_data.request_info.queue_pair_id = qp_id;
|
||||
/* Store private data information along with rte_crypto_op */
|
||||
rte_memcpy(op + len, &m_data, sizeof(m_data));
|
||||
}
|
||||
|
||||
Start the adapter instance
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The application calls ``rte_event_crypto_adapter_start()`` to start the adapter.
|
||||
This function calls the start callbacks of the eventdev PMDs for hardware based
|
||||
eventdev-cryptodev connections and ``rte_service_run_state_set()`` to enable the
|
||||
service function if one exists.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
rte_event_crypto_adapter_start(id, mode);
|
||||
|
||||
Get adapter statistics
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The ``rte_event_crypto_adapter_stats_get()`` function reports counters defined
|
||||
in struct ``rte_event_crypto_adapter_stats``. The received packet and
|
||||
enqueued event counts are a sum of the counts from the eventdev PMD callbacks
|
||||
if the callback is supported, and the counts maintained by the service function,
|
||||
if one exists.
|
1078
doc/guides/prog_guide/img/event_crypto_adapter_op_forward.svg
Normal file
1078
doc/guides/prog_guide/img/event_crypto_adapter_op_forward.svg
Normal file
|
@ -0,0 +1,1078 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="720px"
|
||||
height="486px"
|
||||
id="svg13237"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="event_crypto_adapter_enq_deq.svg">
|
||||
<defs
|
||||
id="defs13239">
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Sstart"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Sstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8416"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.2) translate(6,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
id="path8419"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
|
||||
transform="scale(0.2) rotate(180) translate(6,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="DiamondL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="DiamondL"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8483"
|
||||
d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="DotL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="DotL"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8465"
|
||||
d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8) translate(7.4, 1)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="SquareL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="SquareL"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8474"
|
||||
d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleOutL"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8546"
|
||||
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8404"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8) translate(12.5,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Mend"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
id="path8413"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
|
||||
transform="scale(0.4) rotate(180) translate(10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow2Lend"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
id="path8425"
|
||||
style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="scale(1.1) rotate(180) translate(1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
id="path8407"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<filter
|
||||
id="filter_2"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-0"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-7" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-0-8"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-7-7" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3-9"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-6" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3-6"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-63" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3-91"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-3" />
|
||||
</filter>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-5"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-3"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-6"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-0"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart-7"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8404-0"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-51"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-3"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-6"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-62"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-9"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-2"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-7"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart-7-9"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8404-0-3"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<filter
|
||||
id="filter_2-3-6-1"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-63-8" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3-92"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-2" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3-94"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-7" />
|
||||
</filter>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart-7-6"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8404-0-1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-55"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-4"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="359.77003"
|
||||
inkscape:cy="287.74194"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1200"
|
||||
inkscape:window-height="898"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:snap-nodes="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid13454" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata13242">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<g
|
||||
style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"
|
||||
id="shape1-1-2-4"
|
||||
v:mID="1"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(2.1604167,0,0,1.5671361,88.874699,-812.39909)">
|
||||
<title
|
||||
id="title22-7-5">Square</title>
|
||||
<desc
|
||||
id="desc24-7-8">Atomic Queue #1</desc>
|
||||
<v:userDefs>
|
||||
<v:ud
|
||||
v:nameU="visVersion"
|
||||
v:val="VT0(15):26" />
|
||||
</v:userDefs>
|
||||
<v:textBlock
|
||||
v:margins="rect(4,4,4,4)" />
|
||||
<v:textRect
|
||||
cx="30.75"
|
||||
cy="581.25"
|
||||
width="61.5"
|
||||
height="61.5" />
|
||||
<g
|
||||
id="shadow1-2-9-5"
|
||||
v:groupContext="shadow"
|
||||
v:shadowOffsetX="0.345598"
|
||||
v:shadowOffsetY="-1.97279"
|
||||
v:shadowType="1"
|
||||
transform="translate(0.345598,1.97279)"
|
||||
class="st1"
|
||||
style="visibility:visible">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st2"
|
||||
id="rect27-8-7"
|
||||
style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2-3-91)" />
|
||||
</g>
|
||||
<g
|
||||
id="g13515-33">
|
||||
<g
|
||||
id="g13534-8">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st3"
|
||||
id="rect29-1-95"
|
||||
style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.71226478;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart-7);marker-end:none"
|
||||
d="m 312.28671,240.74335 -84.28774,0"
|
||||
id="path17209"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.71898615px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Lend)"
|
||||
d="m 221.6484,77.57125 94.28101,0"
|
||||
id="path17209-8"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"
|
||||
id="shape1-1-2"
|
||||
v:mID="1"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(2.1604167,0,0,1.5671361,314.24227,-811.89589)">
|
||||
<title
|
||||
id="title22-7">Square</title>
|
||||
<desc
|
||||
id="desc24-7">Atomic Queue #1</desc>
|
||||
<v:userDefs>
|
||||
<v:ud
|
||||
v:nameU="visVersion"
|
||||
v:val="VT0(15):26" />
|
||||
</v:userDefs>
|
||||
<v:textBlock
|
||||
v:margins="rect(4,4,4,4)" />
|
||||
<v:textRect
|
||||
cx="30.75"
|
||||
cy="581.25"
|
||||
width="61.5"
|
||||
height="61.5" />
|
||||
<g
|
||||
id="shadow1-2-9"
|
||||
v:groupContext="shadow"
|
||||
v:shadowOffsetX="0.345598"
|
||||
v:shadowOffsetY="-1.97279"
|
||||
v:shadowType="1"
|
||||
transform="translate(0.345598,1.97279)"
|
||||
class="st1"
|
||||
style="visibility:visible">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st2"
|
||||
id="rect27-8"
|
||||
style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2-3)" />
|
||||
</g>
|
||||
<g
|
||||
id="g13515">
|
||||
<g
|
||||
id="g13534">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st3"
|
||||
id="rect29-1"
|
||||
style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.72471404;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:none"
|
||||
d="m 89.025329,74.39932 -64.275286,0"
|
||||
id="path17209-3"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-4.325033,28.642983)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-3"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-1.93108,192.80833)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-1"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.75141162;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart-7);marker-end:none"
|
||||
d="m 18.763392,120.7432 68.995153,0"
|
||||
id="path17209-3-0"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-218.16394,72.68276)" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-2"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-217.40136,26.716271)" />
|
||||
<g
|
||||
id="g29167-4"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-217.31662,28.007562)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-9"
|
||||
sodipodi:role="line">1</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-9"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-4.9726112,28.689051)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-3"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-3"
|
||||
sodipodi:role="line">2</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.67803264px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart-7);marker-end:none"
|
||||
d="m 181,214.66098 0,-69.32196"
|
||||
id="path17211-7-1-6"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g29167"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-218.07919,73.10621)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165"
|
||||
sodipodi:role="line">8</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.67803264px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart-7);marker-end:none"
|
||||
d="m 131,145.8531 0,69.32197"
|
||||
id="path17211-7-1"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-140.37076,129.97088)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-8"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<g
|
||||
id="g29167-2"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-140.28602,131.01695)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-92"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-8"
|
||||
sodipodi:role="line">7</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.71898615px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Lend)"
|
||||
d="m 317.1405,116 -94.281,0"
|
||||
id="path17209-8-0"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-3.4914,66.68745)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-6"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<g
|
||||
id="g29167-46"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-4.40666,67.48829)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-1"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-5"
|
||||
sodipodi:role="line">3</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-90.692582,130.31695)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-8-6"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<g
|
||||
id="g29167-6"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-90.84634,131.60918)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-17"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-2"
|
||||
sodipodi:role="line">4</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-2-0"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-2.424397,194.0216)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-92-6"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-8-2"
|
||||
sodipodi:role="line">5</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"
|
||||
id="shape1-1-2-8"
|
||||
v:mID="1"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(2.1604167,0,0,1.5671361,93.82055,-648.98949)">
|
||||
<title
|
||||
id="title22-7-97">Square</title>
|
||||
<desc
|
||||
id="desc24-7-3">Atomic Queue #1</desc>
|
||||
<v:userDefs>
|
||||
<v:ud
|
||||
v:nameU="visVersion"
|
||||
v:val="VT0(15):26" />
|
||||
</v:userDefs>
|
||||
<v:textBlock
|
||||
v:margins="rect(4,4,4,4)" />
|
||||
<v:textRect
|
||||
cx="30.75"
|
||||
cy="581.25"
|
||||
width="61.5"
|
||||
height="61.5" />
|
||||
<g
|
||||
id="shadow1-2-9-6"
|
||||
v:groupContext="shadow"
|
||||
v:shadowOffsetX="0.345598"
|
||||
v:shadowOffsetY="-1.97279"
|
||||
v:shadowType="1"
|
||||
transform="translate(0.345598,1.97279)"
|
||||
class="st1"
|
||||
style="visibility:visible">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st2"
|
||||
id="rect27-8-12"
|
||||
style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2-3-92)" />
|
||||
</g>
|
||||
<g
|
||||
id="g13515-9">
|
||||
<g
|
||||
id="g13534-3">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st3"
|
||||
id="rect29-1-1"
|
||||
style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"
|
||||
id="shape1-1-2-84"
|
||||
v:mID="1"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(2.1604167,0,0,1.5671361,314.82055,-648.98949)">
|
||||
<title
|
||||
id="title22-7-50">Square</title>
|
||||
<desc
|
||||
id="desc24-7-36">Atomic Queue #1</desc>
|
||||
<v:userDefs>
|
||||
<v:ud
|
||||
v:nameU="visVersion"
|
||||
v:val="VT0(15):26" />
|
||||
</v:userDefs>
|
||||
<v:textBlock
|
||||
v:margins="rect(4,4,4,4)" />
|
||||
<v:textRect
|
||||
cx="30.75"
|
||||
cy="581.25"
|
||||
width="61.5"
|
||||
height="61.5" />
|
||||
<g
|
||||
id="shadow1-2-9-1"
|
||||
v:groupContext="shadow"
|
||||
v:shadowOffsetX="0.345598"
|
||||
v:shadowOffsetY="-1.97279"
|
||||
v:shadowType="1"
|
||||
transform="translate(0.345598,1.97279)"
|
||||
class="st1"
|
||||
style="visibility:visible">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st2"
|
||||
id="rect27-8-0"
|
||||
style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2-3-94)" />
|
||||
</g>
|
||||
<g
|
||||
id="g13515-6">
|
||||
<g
|
||||
id="g13534-32">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st3"
|
||||
id="rect29-1-0"
|
||||
style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.71226478;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow1Lend)"
|
||||
d="m 313.14387,285 -84.28774,0"
|
||||
id="path17209-7"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-2.692582,236.31695)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-1-6"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<g
|
||||
id="g29167-2-0-5"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-2.424397,237.0216)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-92-6-6"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-8-2-9"
|
||||
sodipodi:role="line">6</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-154.60784,51.117791)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-9-7"
|
||||
sodipodi:role="line">Eventdev</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3-5"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-144.65044,201.97821)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6-3"
|
||||
y="70"
|
||||
x="412.93716"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="412.93716"
|
||||
id="tspan29165-9-7-5"
|
||||
sodipodi:role="line">Crypto</tspan><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="100.26366"
|
||||
x="412.93716"
|
||||
sodipodi:role="line"
|
||||
id="tspan3201">Adapter</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3-5-6"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,79.53518,46.62529)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6-3-2"
|
||||
y="48.801659"
|
||||
x="412.93716"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="48.801659"
|
||||
x="412.93716"
|
||||
sodipodi:role="line"
|
||||
id="tspan3155">Application</tspan><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="79.065323"
|
||||
x="412.93716"
|
||||
sodipodi:role="line"
|
||||
id="tspan3201-1">in ordered</tspan><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="109.32899"
|
||||
x="412.93716"
|
||||
sodipodi:role="line"
|
||||
id="tspan3161">stage</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3-5-2"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,77.535182,213.62529)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6-3-7"
|
||||
y="70"
|
||||
x="412.93716"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="412.93716"
|
||||
sodipodi:role="line"
|
||||
id="tspan3201-9">Cryptodev</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3-5-3"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,188.53518,-3.37471)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6-3-6"
|
||||
y="70"
|
||||
x="375.65271"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3201-6">1. Events from the previous stage.</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="93.538406"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3260" /><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="117.07681"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3262">2. Application in ordered stage</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="140.61522"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3288"> dequeues events from eventdev.</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="164.15363"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3264" /><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="187.69203"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3266">3. Application enqueues crypto</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="211.23044"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3290"> operations as events to eventdev.</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="234.76884"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3268" /><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="258.30725"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3270">4. Crypto adapter dequeues event</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="281.84564"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3292"> from eventdev.</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="305.38406"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3272" /><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="328.92245"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3274">5. Crypto adapter submits crypto</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="352.46088"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3294"> operations to cryptodev (Atomic</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="375.99927"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3296"> stage)</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="399.53769"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3276" /><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="423.07608"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3278">6. Crypto adapter dequeues crypto</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="446.6145"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3298"> completions from cryptodev</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="470.15289"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3280" /><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="493.69131"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3282">7. Crypto adapter enqueues events</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="517.22974"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3300"> to the eventdev</tspan><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="540.76813"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3284" /><tspan
|
||||
style="font-size:18.83072472px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="564.30652"
|
||||
x="375.65271"
|
||||
sodipodi:role="line"
|
||||
id="tspan3286">8. Events to the next stage</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 43 KiB |
1061
doc/guides/prog_guide/img/event_crypto_adapter_op_new.svg
Normal file
1061
doc/guides/prog_guide/img/event_crypto_adapter_op_new.svg
Normal file
|
@ -0,0 +1,1061 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="720px"
|
||||
height="486px"
|
||||
id="svg13237"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="event_crypto_adapter_deq_only.svg">
|
||||
<defs
|
||||
id="defs13239">
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Sstart"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Sstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8416"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.2) translate(6,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
id="path8419"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
|
||||
transform="scale(0.2) rotate(180) translate(6,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="DiamondL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="DiamondL"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8483"
|
||||
d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="DotL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="DotL"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8465"
|
||||
d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8) translate(7.4, 1)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="SquareL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="SquareL"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8474"
|
||||
d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleOutL"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8546"
|
||||
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path8404"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8) translate(12.5,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Mend"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
id="path8413"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
|
||||
transform="scale(0.4) rotate(180) translate(10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow2Lend"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
id="path8425"
|
||||
style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="scale(1.1) rotate(180) translate(1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
id="path8407"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<filter
|
||||
id="filter_2"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-0"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-7" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-0-8"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-7-7" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3-9"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-6" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3-6"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-63" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter_2-3-91"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-3" />
|
||||
</filter>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-5"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-3"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-6"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-0"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart-7"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8404-0"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-51"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-3"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-6"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-62"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-9"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend-2"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8407-7"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<filter
|
||||
id="filter_2-3-91-3"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur15-1-3-6" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="511.66308"
|
||||
inkscape:cy="233.69667"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1200"
|
||||
inkscape:window-height="898"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:snap-nodes="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid13454" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata13242">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<g
|
||||
style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"
|
||||
id="shape1-1-2-0"
|
||||
v:mID="1"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(2.1604167,0,0,1.5671361,323.2187,-540.25927)">
|
||||
<title
|
||||
id="title22-7-6">Square</title>
|
||||
<desc
|
||||
id="desc24-7-4">Atomic Queue #1</desc>
|
||||
<v:userDefs>
|
||||
<v:ud
|
||||
v:nameU="visVersion"
|
||||
v:val="VT0(15):26" />
|
||||
</v:userDefs>
|
||||
<v:textBlock
|
||||
v:margins="rect(4,4,4,4)" />
|
||||
<v:textRect
|
||||
cx="30.75"
|
||||
cy="581.25"
|
||||
width="61.5"
|
||||
height="61.5" />
|
||||
<g
|
||||
id="shadow1-2-9-0"
|
||||
v:groupContext="shadow"
|
||||
v:shadowOffsetX="0.345598"
|
||||
v:shadowOffsetY="-1.97279"
|
||||
v:shadowType="1"
|
||||
transform="translate(0.345598,1.97279)"
|
||||
class="st1"
|
||||
style="visibility:visible">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st2"
|
||||
id="rect27-8-9"
|
||||
style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2-3-9)" />
|
||||
</g>
|
||||
<g
|
||||
id="g13515-4">
|
||||
<g
|
||||
id="g13534-5">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st3"
|
||||
id="rect29-1-4"
|
||||
style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"
|
||||
id="shape1-1-2-4"
|
||||
v:mID="1"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(2.1604167,0,0,1.165886,88.874699,-447.8809)">
|
||||
<title
|
||||
id="title22-7-5">Square</title>
|
||||
<desc
|
||||
id="desc24-7-8">Atomic Queue #1</desc>
|
||||
<v:userDefs>
|
||||
<v:ud
|
||||
v:nameU="visVersion"
|
||||
v:val="VT0(15):26" />
|
||||
</v:userDefs>
|
||||
<v:textBlock
|
||||
v:margins="rect(4,4,4,4)" />
|
||||
<v:textRect
|
||||
cx="30.75"
|
||||
cy="581.25"
|
||||
width="61.5"
|
||||
height="61.5" />
|
||||
<g
|
||||
id="shadow1-2-9-5"
|
||||
v:groupContext="shadow"
|
||||
v:shadowOffsetX="0.345598"
|
||||
v:shadowOffsetY="-1.97279"
|
||||
v:shadowType="1"
|
||||
transform="translate(0.345598,1.97279)"
|
||||
class="st1"
|
||||
style="visibility:visible">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st2"
|
||||
id="rect27-8-7"
|
||||
style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2-3-91)" />
|
||||
</g>
|
||||
<g
|
||||
id="g13515-33">
|
||||
<g
|
||||
id="g13534-8">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st3"
|
||||
id="rect29-1-95"
|
||||
style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"
|
||||
id="shape1-1-2-9"
|
||||
v:mID="1"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(2.1604167,0,0,1.5671361,88.874699,-538.24651)">
|
||||
<title
|
||||
id="title22-7-9">Square</title>
|
||||
<desc
|
||||
id="desc24-7-5">Atomic Queue #1</desc>
|
||||
<v:userDefs>
|
||||
<v:ud
|
||||
v:nameU="visVersion"
|
||||
v:val="VT0(15):26" />
|
||||
</v:userDefs>
|
||||
<v:textBlock
|
||||
v:margins="rect(4,4,4,4)" />
|
||||
<v:textRect
|
||||
cx="30.75"
|
||||
cy="581.25"
|
||||
width="61.5"
|
||||
height="61.5" />
|
||||
<g
|
||||
id="shadow1-2-9-2"
|
||||
v:groupContext="shadow"
|
||||
v:shadowOffsetX="0.345598"
|
||||
v:shadowOffsetY="-1.97279"
|
||||
v:shadowType="1"
|
||||
transform="translate(0.345598,1.97279)"
|
||||
class="st1"
|
||||
style="visibility:visible">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st2"
|
||||
id="rect27-8-1"
|
||||
style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2-3-6)" />
|
||||
</g>
|
||||
<g
|
||||
id="g13515-3">
|
||||
<g
|
||||
id="g13534-0">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st3"
|
||||
id="rect29-1-9"
|
||||
style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.74346578px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Lend)"
|
||||
d="m 220.66064,98.57125 101.22528,0"
|
||||
id="path17209-8"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"
|
||||
id="shape1-1-2"
|
||||
v:mID="1"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(2.1604167,0,0,1.5671361,322.24227,-811.89589)">
|
||||
<title
|
||||
id="title22-7">Square</title>
|
||||
<desc
|
||||
id="desc24-7">Atomic Queue #1</desc>
|
||||
<v:userDefs>
|
||||
<v:ud
|
||||
v:nameU="visVersion"
|
||||
v:val="VT0(15):26" />
|
||||
</v:userDefs>
|
||||
<v:textBlock
|
||||
v:margins="rect(4,4,4,4)" />
|
||||
<v:textRect
|
||||
cx="30.75"
|
||||
cy="581.25"
|
||||
width="61.5"
|
||||
height="61.5" />
|
||||
<g
|
||||
id="shadow1-2-9"
|
||||
v:groupContext="shadow"
|
||||
v:shadowOffsetX="0.345598"
|
||||
v:shadowOffsetY="-1.97279"
|
||||
v:shadowType="1"
|
||||
transform="translate(0.345598,1.97279)"
|
||||
class="st1"
|
||||
style="visibility:visible">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st2"
|
||||
id="rect27-8"
|
||||
style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2-3)" />
|
||||
</g>
|
||||
<g
|
||||
id="g13515">
|
||||
<g
|
||||
id="g13534">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st3"
|
||||
id="rect29-1"
|
||||
style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g13518"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,25.29268,348.89752)">
|
||||
<g
|
||||
id="g13526">
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot13464-9"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
transform="translate(-12.00521,-129.65179)"><flowRegion
|
||||
id="flowRegion13466-1"><rect
|
||||
id="rect13468-2"
|
||||
width="195.99997"
|
||||
height="112.00001"
|
||||
x="273.33334"
|
||||
y="175.33333"
|
||||
style="text-align:center;text-anchor:middle" /></flowRegion><flowPara
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
id="flowPara13511" /></flowRoot> </g>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.75145501;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:none"
|
||||
d="m 176.26096,124.64833 0,69.24854"
|
||||
id="path17209-3"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-4.325033,50.642983)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-3"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.74346578px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Lend)"
|
||||
d="m 322.61264,375 -101.22528,0"
|
||||
id="path17209-8-0"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,0.0689171,324.80833)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-1"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.62908167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 155,324.19955 0,-59.37092"
|
||||
id="path17211-7-1"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-116.37076,245.97088)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-8"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.75058991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart-7);marker-end:none"
|
||||
d="m 126.26097,124.99178 0,69.24941"
|
||||
id="path17209-3-0"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-146.16394,110.68276)" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-2"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-95.40136,110.71627)" />
|
||||
<g
|
||||
id="g29167-4"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-95.31662,112.00756)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-9"
|
||||
sodipodi:role="line">1</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-9"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-4.9726112,50.689051)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-3"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-3"
|
||||
sodipodi:role="line">2</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.04032874px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 388.20118,147.93341 0,173.95967"
|
||||
id="path17211-7"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="matrix(0.73232502,0,0,0.75477602,116.5086,136.68745)"
|
||||
sodipodi:type="arc"
|
||||
style="fill:#539de6;fill-opacity:1;stroke:#0000ea;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path29161-6"
|
||||
sodipodi:cx="371"
|
||||
sodipodi:cy="64.5"
|
||||
sodipodi:rx="17"
|
||||
sodipodi:ry="15.5"
|
||||
d="m 388,64.5 a 17,15.5 0 1 1 -34,0 17,15.5 0 1 1 34,0 z" />
|
||||
<g
|
||||
id="g29167-46"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,116.59334,137.48829)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-1"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-5"
|
||||
sodipodi:role="line">3</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-6"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,0.1536639,325.60918)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-17"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-2"
|
||||
sodipodi:role="line">4</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-146.07919,111.10621)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165"
|
||||
sodipodi:role="line">6</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-117.60784,180.11779)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6"
|
||||
y="70"
|
||||
x="321.30356"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="321.30356"
|
||||
id="tspan29165-9-7"
|
||||
sodipodi:role="line">Eventdev</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3-5"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,55.34956,26.97821)">
|
||||
<text
|
||||
sodipodi:linespacing="100%"
|
||||
id="text29163-9-6-3"
|
||||
y="70"
|
||||
x="454.74152"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="454.74152"
|
||||
id="tspan29165-9-7-5"
|
||||
sodipodi:role="line">A<tspan
|
||||
style="line-height:100%"
|
||||
id="tspan3374">tomic stage</tspan></tspan><tspan
|
||||
style="font-size:21.52082825000000099px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="96.901031"
|
||||
x="454.74152"
|
||||
sodipodi:role="line"
|
||||
id="tspan3320">+</tspan><tspan
|
||||
style="font-size:21.52082825000000099px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="123.80207"
|
||||
x="454.74152"
|
||||
sodipodi:role="line"
|
||||
id="tspan3322">enqueue to</tspan><tspan
|
||||
style="font-size:21.52082825000000099px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="150.70311"
|
||||
x="454.74152"
|
||||
sodipodi:role="line"
|
||||
id="tspan3324">cryptodev</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-2"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-116.28602,248.01695)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-92"
|
||||
y="70"
|
||||
x="365"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="365"
|
||||
id="tspan29165-8"
|
||||
sodipodi:role="line">5</tspan></text>
|
||||
</g>
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot3376"
|
||||
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:18px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
|
||||
id="flowRegion3378"><rect
|
||||
id="rect3380"
|
||||
width="100"
|
||||
height="37"
|
||||
x="109"
|
||||
y="259" /></flowRegion><flowPara
|
||||
id="flowPara3382" /></flowRoot> <g
|
||||
id="g29167-4-3-1"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,109.34956,323.97821)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6-8"
|
||||
y="70"
|
||||
x="321.30356"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="321.30356"
|
||||
id="tspan29165-9-7-7"
|
||||
sodipodi:role="line">Cryptodev</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3-1-9"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-114.48565,314.20704)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6-8-2"
|
||||
y="70"
|
||||
x="368.01718"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="368.01718"
|
||||
id="tspan29165-9-7-7-0"
|
||||
sodipodi:role="line">Crypto</tspan><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="100.26366"
|
||||
x="368.01718"
|
||||
sodipodi:role="line"
|
||||
id="tspan3488">adapter</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3-1-9-2"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,250.96804,192.62529)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6-8-2-3"
|
||||
y="-188.35481"
|
||||
x="318.61978"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="-188.35481"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3543">1. Application dequeues</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="-161.45378"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3196"> events from the previous</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="-134.55275"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3232"> stage</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="-107.65171"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3519" /><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="-80.750671"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3551">2. Application prepares the</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="-53.84964"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3203"> crypto operations.</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="-26.948603"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3523" /><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="-0.047568277"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3541">3. Crypto operations are</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="26.853468"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3207"> submitted to cryptodev</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="53.754501"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3209"> by application..</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="80.65554"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3527" /><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="107.55657"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3547">4. Crypto adapter dequeues</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="134.45761"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3216"> crypto completions from</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="161.35864"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3218"> cryptodev.</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="188.25969"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3531" /><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="215.16072"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3549">5. Crypto adapter enqueues</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="242.06175"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3222"> events to the eventdev.</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="268.96277"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3535" /><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="295.8638"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3537">6. Application dequeues from</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="322.76483"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3224"> eventdev and prepare for</tspan><tspan
|
||||
style="font-size:21.52082825px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="349.66586"
|
||||
x="318.61978"
|
||||
sodipodi:role="line"
|
||||
id="tspan3226"> further processing</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"
|
||||
id="shape1-1-2-4-7"
|
||||
v:mID="1"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(2.1604167,0,0,1.165886,90.820551,-587.97129)">
|
||||
<title
|
||||
id="title22-7-5-5">Square</title>
|
||||
<desc
|
||||
id="desc24-7-8-3">Atomic Queue #1</desc>
|
||||
<v:userDefs>
|
||||
<v:ud
|
||||
v:nameU="visVersion"
|
||||
v:val="VT0(15):26" />
|
||||
</v:userDefs>
|
||||
<v:textBlock
|
||||
v:margins="rect(4,4,4,4)" />
|
||||
<v:textRect
|
||||
cx="30.75"
|
||||
cy="581.25"
|
||||
width="61.5"
|
||||
height="61.5" />
|
||||
<g
|
||||
id="shadow1-2-9-5-5"
|
||||
v:groupContext="shadow"
|
||||
v:shadowOffsetX="0.345598"
|
||||
v:shadowOffsetY="-1.97279"
|
||||
v:shadowType="1"
|
||||
transform="translate(0.345598,1.97279)"
|
||||
class="st1"
|
||||
style="visibility:visible">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st2"
|
||||
id="rect27-8-7-6"
|
||||
style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2-3-91-3)" />
|
||||
</g>
|
||||
<g
|
||||
id="g13515-33-2">
|
||||
<g
|
||||
id="g13534-8-9">
|
||||
<rect
|
||||
x="0"
|
||||
y="550.5"
|
||||
width="61.5"
|
||||
height="61.5"
|
||||
class="st3"
|
||||
id="rect29-1-95-1"
|
||||
style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g29167-4-3-2"
|
||||
transform="matrix(0.73232502,0,0,0.75477602,-125.66199,44.027402)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text29163-9-6-7"
|
||||
y="70"
|
||||
x="321.30356"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:24.21093369px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="70"
|
||||
x="321.30356"
|
||||
id="tspan29165-9-7-0"
|
||||
sodipodi:role="line">Application</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 42 KiB |
|
@ -44,6 +44,7 @@ Programmer's Guide
|
|||
eventdev
|
||||
event_ethernet_rx_adapter
|
||||
event_timer_adapter
|
||||
event_crypto_adapter
|
||||
qos_framework
|
||||
power_man
|
||||
packet_classif_access_ctrl
|
||||
|
|
|
@ -153,6 +153,13 @@ New Features
|
|||
|
||||
See the :doc:`../eventdevs/octeontx` guide for more details
|
||||
|
||||
* **Added Event Crypto Adapter Library.**
|
||||
|
||||
Added the Event Crypto Adapter Library. This library extends the
|
||||
event-based model by introducing APIs that allow applications to
|
||||
enqueue/dequeue crypto operations to/from cryptodev as events scheduled
|
||||
by an event device.
|
||||
|
||||
* **Added DPAA2 QDMA Driver (in rawdev).**
|
||||
|
||||
The DPAA2 QDMA is an implementation of the rawdev API, that provide means
|
||||
|
|
Loading…
Reference in a new issue