[rtems-central commit] spec: Add IRQ(A)MP support function

Sebastian Huber sebh at rtems.org
Wed Jul 21 17:20:21 UTC 2021


Module:    rtems-central
Branch:    master
Commit:    938c27998dbf90ca183e817b4e9211712c55948a
Changeset: http://git.rtems.org/rtems-central/commit/?id=938c27998dbf90ca183e817b4e9211712c55948a

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Jul 16 15:34:40 2021 +0200

spec: Add IRQ(A)MP support function

---

 spec/dev/grlib/if/io-header.yml            | 14 +++++++++
 spec/dev/grlib/if/irqamp-get-timestamp.yml | 48 ++++++++++++++++++++++++++++++
 spec/dev/grlib/if/irqamp-header-2.yml      | 16 ++++++++++
 spec/dev/grlib/if/load-32.yml              | 12 ++++++++
 4 files changed, 90 insertions(+)

diff --git a/spec/dev/grlib/if/io-header.yml b/spec/dev/grlib/if/io-header.yml
new file mode 100644
index 0000000..075f536
--- /dev/null
+++ b/spec/dev/grlib/if/io-header.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file defines the register load/store interface.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: container
+links:
+- role: interface-placement
+  uid: /if/domain
+path: grlib/io.h
+prefix: bsps/include
+type: interface
diff --git a/spec/dev/grlib/if/irqamp-get-timestamp.yml b/spec/dev/grlib/if/irqamp-get-timestamp.yml
new file mode 100644
index 0000000..c7fbba1
--- /dev/null
+++ b/spec/dev/grlib/if/irqamp-get-timestamp.yml
@@ -0,0 +1,48 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Gets the interrupt timestamping register bock.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    attributes: null
+    body: |
+      ${irqamp-timestamp:/name} *timestamp_regs;
+      uint32_t itstmpc;
+
+      timestamp_regs = &${.:/params[0]/name}->itstmp[ 0 ];
+      itstmpc = ${load-32:/name}( &timestamp_regs->itstmpc );
+
+      if ( IRQAMP_ITSTMPC_TSTAMP_GET( itstmpc ) == 0 ) {
+        return NULL;
+      }
+
+      return timestamp_regs;
+    params:
+    - ${irqamp:/name} *${.:/params[0]/name}
+    return: ${irqamp-timestamp:/name} *
+  variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+  uid: irqamp-header-2
+- role: interface-ingroup
+  uid: irqamp
+name: irqamp_get_timestamp_registers
+notes: null
+params:
+- description: |
+    is the IRQ(A)MP register block.
+  dir: null
+  name: irqamp_regs
+return:
+  return: |
+    Returns the interrupt timestamping register block.
+  return-values:
+  - description: |
+      The IRQ(A)MP does not support the interrupt timestamping feature.
+    value: ${/c/if/null:/name}
+type: interface
diff --git a/spec/dev/grlib/if/irqamp-header-2.yml b/spec/dev/grlib/if/irqamp-header-2.yml
new file mode 100644
index 0000000..62f4d3e
--- /dev/null
+++ b/spec/dev/grlib/if/irqamp-header-2.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file defines the IRQ(A)MP interface.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+- role: interface-ingroup
+  uid: irqamp
+path: grlib/irqamp.h
+prefix: bsps/include
+type: interface
diff --git a/spec/dev/grlib/if/load-32.yml b/spec/dev/grlib/if/load-32.yml
new file mode 100644
index 0000000..5627eb2
--- /dev/null
+++ b/spec/dev/grlib/if/load-32.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-function
+links:
+- role: interface-placement
+  uid: io-header
+name: grlib_load_32
+references: {}
+type: interface



More information about the vc mailing list