diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-07-16 15:34:40 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-07-21 16:27:58 +0200 |
commit | 938c27998dbf90ca183e817b4e9211712c55948a (patch) | |
tree | 6944a01033156d2de4744288e954bb0a42c9246a | |
parent | spec: Add APBUART functions (diff) | |
download | rtems-central-938c27998dbf90ca183e817b4e9211712c55948a.tar.bz2 |
spec: Add IRQ(A)MP support function
-rw-r--r-- | spec/dev/grlib/if/io-header.yml | 14 | ||||
-rw-r--r-- | spec/dev/grlib/if/irqamp-get-timestamp.yml | 48 | ||||
-rw-r--r-- | spec/dev/grlib/if/irqamp-header-2.yml | 16 | ||||
-rw-r--r-- | spec/dev/grlib/if/load-32.yml | 12 |
4 files changed, 90 insertions, 0 deletions
diff --git a/spec/dev/grlib/if/io-header.yml b/spec/dev/grlib/if/io-header.yml new file mode 100644 index 00000000..075f5365 --- /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 00000000..c7fbba1a --- /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}( ×tamp_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 00000000..62f4d3ec --- /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 00000000..5627eb28 --- /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 |