From 4b832f548a67d56f694a209bee19a8fc559fca1b Mon Sep 17 00:00:00 2001 From: Aaron Cuevas Lopez Date: Mon, 18 Nov 2024 15:55:30 +0100 Subject: [PATCH 1/2] Rewrite channel access concurrency description --- source/hw-spec/controller/channels/index.rst | 21 ++++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/source/hw-spec/controller/channels/index.rst b/source/hw-spec/controller/channels/index.rst index 5572219..ff285f3 100644 --- a/source/hw-spec/controller/channels/index.rst +++ b/source/hw-spec/controller/channels/index.rst @@ -14,17 +14,16 @@ four abstract communication channels: events from controller to host. #. :ref:`conf-chan`: Bidirectional, addressed access to device registers. -API access to all these channels is blocking, i.e.: an API call that accesses -any channel will not return until the requested transaction on that channel is -complete. Concurrent access to a single channel by different threads is NOT -permitted. However, channels are independent and concurrent access to -*different* channels MUST be permitted. A stream transaction is defined as a -blocking read or write of a set number of bytes, while a register transaction -is defined as a single register read or write cycle to an individual address. - -The required characteristics of these channels are described in the following -sections. A complete understanding of their use during software development -requires an understanding of the :ref:`oni-api`. +These channels are implemented by the combination of the controller hardware and the :term:`Driver Translator`. + +Concurrent access to a single channel by the host MUST NOT be permitted. However, individual +channels MUST be able to be accessed independently. + +.. note:: Concurrent access requirements relate only to the hardware implementation. Functions in + a high-level :term:`API` MAY introduce their own access dependencies and concurrency limitations. + +The required characteristics of the controller channels are described in the following +sections. .. toctree:: :hidden: From 4a5951f7e1afe5d39fa17249820260fcc70f09af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aar=C3=B3n=20Cuevas=20L=C3=B3pez?= Date: Tue, 19 Nov 2024 17:46:22 +0100 Subject: [PATCH 2/2] Clarify text for concurrent access --- source/hw-spec/controller/channels/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/hw-spec/controller/channels/index.rst b/source/hw-spec/controller/channels/index.rst index ff285f3..1ba85e5 100644 --- a/source/hw-spec/controller/channels/index.rst +++ b/source/hw-spec/controller/channels/index.rst @@ -16,8 +16,8 @@ four abstract communication channels: These channels are implemented by the combination of the controller hardware and the :term:`Driver Translator`. -Concurrent access to a single channel by the host MUST NOT be permitted. However, individual -channels MUST be able to be accessed independently. +Concurrent access to a single channel by the host (e.g. by multiple threads of execution or applications) is +NOT permitted. However, individual channels MUST be able to be accessed independently. .. note:: Concurrent access requirements relate only to the hardware implementation. Functions in a high-level :term:`API` MAY introduce their own access dependencies and concurrency limitations.