Re: New BSP development for Microchip's RISC-V based PolarFire SoC ICICLE Kit

2020-11-09 Thread somesh deshmukh
Hi Sebastian,

I also wanted to add the HAL APIs to the BSP which will perform the basic
initializations and memory configuration. I missed this point in the last
mail.

Regards,
Somesh

On Tue, Nov 10, 2020 at 12:59 PM Sebastian Huber <
sebastian.hu...@embedded-brains.de> wrote:

> Hello Somesh,
>
> due to the change in the build system, I would use the RTEMS master
> branch for this development. You don't have to add a new RISC-V BSP. You
> could also add a new device driver to the console driver and select it
> through the device tree.
>
> --
> embedded brains GmbH
> Sebastian HUBER
> Dornierstr. 4
> 82178 Puchheim
> Germany
> email: sebastian.hu...@embedded-brains.de
> Phone: +49-89-18 94 741 - 16
> Fax:   +49-89-18 94 741 - 08
> PGP: Public key available on request.
>
> embedded brains GmbH
> Registergericht: Amtsgericht München
> Registernummer: HRB 157899
> Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
> Unsere Datenschutzerklärung finden Sie hier:
> https://embedded-brains.de/datenschutzerklaerung/
>
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: Breaking Long Lines

2020-11-09 Thread Thomas Doerfler
Hi,

Am 10.11.20 um 06:33 schrieb Chris Johns:
> On 9/11/20 5:50 pm, Sebastian Huber wrote:
>> On 09/11/2020 01:52, Chris Johns wrote:
>>
>>> On 6/11/20 7:11 pm, Sebastian Huber wrote:
...
>>>
>>>   Avoid excess parentheses. Learn the operator precedence. rules.
>>
>> Yes, and I think this is a good rule.
> 
> I am not sure it is a good rule and workable. Using it to handle indents is an
> example of it breaking down. The ability to control an indent is a long held
> tradition and editors like Emacs are designed to handle it yet it is not clear
> if it is OK under this rule.
> 

I tried not to jump in for more than 24 hours. But now I want to drop in
my opinion. What is the whole purpose of a style guide? Is it to have a
nice looking code layout, neat an tidy like a ideal front garden, or is
it about readability/accessibility? We could write the whole of a C
module into one line and it could work anyway, so what about a style guide?

IMHO it should improve readability and understanding of what goes on in
a certain module. The code should be readable and understandable not
only for highly experienced C programmers, but also for newbies (if they
trhttps://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH] libtests/dl06: Add -lm

2020-11-09 Thread Sebastian Huber

On 09/11/2020 23:42, Chris Johns wrote:


On 9/11/20 6:24 pm, Sebastian Huber wrote:

On 09/11/2020 02:23, Chris Johns wrote:


On 3/11/20 3:39 am, Sebastian Huber wrote:

There is probably something wrong with this test program.  If it is compiled
without function/data sections, no optimization, and no linker garbage
collection, then there is an undefined reference to atan2() and tan().

These symbols are referenced in the loaded module ...

https://git.rtems.org/rtems/tree/testsuites/libtests/dl06/dl06-o2.c

This test gets rtems-ld with the RAP format to collect the atan1 and tan code
into the loaded module. They should not be present in the base image. The libm
library is used because it is_not_  part of the standard libraries linked and is
available everywhere.


Fix this issue by adding -lm.

Is the error linking the base kernel image or the RAP loadable module?

If it is the loadable module and this is how you add the libraries to be
searched to the rtems-ld command then the fix is needed and there is no problem.
If the error was in the base kernel image then I suggest something else is wrong
because those symbols should not be present in the base image. If the build
system can support options for just rtems-ld then adding it there would be good.

The error is in this command:


[4044/4050] Processing link:
build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o1.o
build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o2.o
build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-tar.o
build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/init.o
build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl-load.o
build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-sym.o ->
build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06.exe
08:21:03 runner ['/build/rtems/6/bin/arm-rtems6-gcc', '-qnolinkcmds', '-T',
'linkcmds.realview_pbx_a9_qemu',
'/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o1.o',
'/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o2.o',

These should not be linked into the base image. They are in the RAP image in
dl06-tar.o.
What shouldn't be linked in? The entire object files or only some 
functions in it?



'/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-tar.o',
'/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/init.o',
'/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl-load.o',
'/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-sym.o',
'-o/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06.exe',
'-Wl,--wrap=printf', '-Wl,--wrap=puts', '-L.', '-lrtemscpu', '-lrtemsbsp',
'-lrtemstest', '-qrtems', '-march=armv7-a', '-mthumb', '-mfpu=neon',
'-mfloat-abi=hard', '-mtune=cortex-a9',
'-L/home/EB/sebastian_h/git-rtems-6/bsps/arm/shared/start',
'-L/home/EB/sebastian_h/git-rtems-6/bsps/arm/realview-pbx-a9/start']
/build/rtems/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld:
/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o2.o:
in function `dl_o2_func2':
/home/EB/sebastian_h/git-rtems-6/testsuites/libtests/dl06/dl06-o2.c:31:
undefined reference to `atan2'
/build/rtems/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld:
/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o2.o:
in function `dl_o2_func3':

/home/EB/sebastian_h/git-rtems-6/testsuites/libtests/dl06/dl06-o2.c:37:
undefined reference to `tan'

I used the following config.ini:

[arm/realview_pbx_a9_qemu]
BUILD_LIBTESTS = True
OPTIMIZATION_FLAGS = -O0 -g
LDFLAGS =


More of a concern is no error. I wonder if the code is being inlined when there
is FPU support. Maybe the test needs to create a library linking to it to be
more robust?

Using these functions without -fno-builtin is not really robust.

Would adding a pragma for this option to dl06-o1.c and dl06-o2.c be acceptable
as a solution?
I am not sure if a pragma works for these options. We can add 
-fno-builtin=tan -fno-builtin=atan2. We can use also some global 
volatile variables which seems to work for the math tests.


--
embedded brains GmbH
Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
Phone: +49-89-18 94 741 - 16
Fax:   +49-89-18 94 741 - 08
PGP: Public key available on request.

embedded brains GmbH
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier: 
https://embedded-brains.de/datenschutzerklaerung/

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: New BSP development for Microchip's RISC-V based PolarFire SoC ICICLE Kit

2020-11-09 Thread Sebastian Huber

Hello Somesh,

due to the change in the build system, I would use the RTEMS master 
branch for this development. You don't have to add a new RISC-V BSP. You 
could also add a new device driver to the console driver and select it 
through the device tree.


--
embedded brains GmbH
Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
Phone: +49-89-18 94 741 - 16
Fax:   +49-89-18 94 741 - 08
PGP: Public key available on request.

embedded brains GmbH
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier: 
https://embedded-brains.de/datenschutzerklaerung/

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: Breaking Long Lines

2020-11-09 Thread Sebastian Huber

On 10/11/2020 06:33, Chris Johns wrote:


My question is if we really should indent by two levels for the continuation of
long lines.

And my answer was it depends on what is being indented and why. The block
nesting level can also effect what works.

I would like to focus on this particular case.



variable = ...

foo bar continuation ...

vs.

variable = ...

foo bar continuation ...

I think most editors will assume this level of indenting rather than the double
indent level.


Yes, also I doubt such a special case double indentation can be 
configured in automatic code formatting tools.


So, can I commit this change?

https://lists.rtems.org/pipermail/devel/2020-November/063094.html

--
embedded brains GmbH
Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
Phone: +49-89-18 94 741 - 16
Fax:   +49-89-18 94 741 - 08
PGP: Public key available on request.

embedded brains GmbH
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier: 
https://embedded-brains.de/datenschutzerklaerung/

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

[PATCH] build: Fix cache file placement

2020-11-09 Thread Sebastian Huber
The "bsp_list" and "bsp_defaults" commands get a waflib.Context object
which has no build node.  Use a hard coded build path for these
commands.
---
 wscript | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/wscript b/wscript
index 5f6958dbf3..5ad93de453 100755
--- a/wscript
+++ b/wscript
@@ -1135,9 +1135,11 @@ def load_from_yaml(load, ctx, data_by_uid, base, path):
 
 
 def load_items_in_directory(ctx, ctors, path):
-f = ctx.bldnode.make_node(
-"c4che/" + re.sub(r"[^\w]", "_", path) + ".pickle"
-)
+p = "c4che/" + re.sub(r"[^\w]", "_", path) + ".pickle"
+try:
+f = ctx.bldnode.make_node(p)
+except AttributeError:
+f = ctx.path.make_node("build/" + p)
 f.parent.mkdir()
 cache_file = f.abspath()
 data_by_uid = {}
-- 
2.26.2

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH 1/2] c-user: Generate Event Manager documentation

2020-11-09 Thread Sebastian Huber


On 10/11/2020 00:03, Chris Johns wrote:

On 10/11/20 1:47 am, Sebastian Huber wrote:

The manager documentation is a consolidation of the comments in Doxygen
markup and the documentation sources in Sphinx markup.  The
documentation was transfered to interface specification items.  This
header file was generated from the items by a script.

Update #3993.
---
  c-user/event/directives.rst   | 320 +-
  c-user/event/introduction.rst |  31 +++-
  2 files changed, 230 insertions(+), 121 deletions(-)

diff --git a/c-user/event/directives.rst b/c-user/event/directives.rst
index ef94115..95ae456 100644
--- a/c-user/event/directives.rst
+++ b/c-user/event/directives.rst
@@ -1,142 +1,228 @@
  .. SPDX-License-Identifier: CC-BY-SA-4.0
  
+.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)

  .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
  
+.. Do not manually edit this file.  It is part of the RTEMS quality process

+.. and was automatically generated.

I am wondering if we need to pull back a little from "Do not manually edit this
file"? A patch to this file that fixes something may be better than not getting
a fix and being notified of a problem. What about ...

  .. This file has been automatically generated and is under the control of
  .. the RTEMS quality process. Manual edits to the following content may be
  .. lost.

?


+..
+.. If you find something that needs to be fixed or worded better please
+.. post a report to an RTEMS mailing list or raise a bug report:
+..
+..https://docs.rtems.org/branches/master/user/support/bugs.html
+..
+.. For information on updating and regenerating please refer to:
+..
+..https://docs.rtems.org/branches/master/eng/req/howto.html
+


Maybe we should remove the manual edit part entirely:

.. This file is part of the RTEMS quality process and was automatically
.. generated.  If you find something that needs to be fixed or worded better
.. please post a report or patch to an RTEMS mailing list or raise a bug
.. report:
..
.. https://docs.rtems.org/branches/master/user/support/bugs.html
..
.. For information on updating and regenerating please refer to:
..
.. https://docs.rtems.org/branches/master/eng/req/howto.html

--
embedded brains GmbH
Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
Phone: +49-89-18 94 741 - 16
Fax:   +49-89-18 94 741 - 08
PGP: Public key available on request.

embedded brains GmbH
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier: 
https://embedded-brains.de/datenschutzerklaerung/

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH 00/11] Generate some header files

2020-11-09 Thread Sebastian Huber

On 10/11/2020 00:05, Chris Johns wrote:


On 10/11/20 1:49 am, Sebastian Huber wrote:

This patch set replaces some hand written header files of the Classic
API with header files generated from specification items.  The main
parts are the Event Manager and the Partition Manager.  The patches for
the RTEMS Classic API Guide of these two managers is available here:

https://lists.rtems.org/pipermail/devel/2020-November/063122.html

I tried to follow the updated Doxygen guidelines:

https://lists.rtems.org/pipermail/devel/2020-November/063119.html

Sebastian Huber (11):
   rtems: Include missing header file
   rtems: Generate 
   rtems: Generate 
   rtems: Generate 
   rtems: Generate 
   rtems: Generate 
   rtems: Generate 
   rtems: Generate 
   rtems: Generate 
   rtems: Generate 
   rtems: Generate 

Do these files need something that indicates they are generated and part of the
RTEMS Quality Process (RQP?)?

I could not see anything.
All the generated files have the standard header and the generated by 
comments or do you mean something else?


--
embedded brains GmbH
Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
Phone: +49-89-18 94 741 - 16
Fax:   +49-89-18 94 741 - 08
PGP: Public key available on request.

embedded brains GmbH
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier: 
https://embedded-brains.de/datenschutzerklaerung/

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

New BSP development for Microchip's RISC-V based PolarFire SoC ICICLE Kit

2020-11-09 Thread somesh deshmukh
Hi All,

I am trying to port the RTEMS v5.1 on PolarFire SoC ICICLE Kit. The
available console driver in the risc-v bsp does not support the target
hardware so I am looking into developing a custom BSP for the PolarFire SoC
ICICLE Kit.
It will be a great help if anyone could point me to custom BSP development
documentation.
Currently I am referring the RTEMS BSP and driver guide(5.1)
.


For more information about ICICLE kit please visit the following link:
https://www.microsemi.com/existing-parts/parts/152514


Regards,
Somesh
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH] bsp/atsam: Fix XDMAD status

2020-11-09 Thread Chris Johns
On 9/11/20 7:20 pm, Christian Mauderer wrote:
> I would like to apply this patch to master (ticket #4173) and to the 5 branch
> (ticket #4172). It would be great if someone could have a look and 
> acknowledge it.

OK for 5.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Breaking Long Lines

2020-11-09 Thread Chris Johns
On 9/11/20 5:50 pm, Sebastian Huber wrote:
> On 09/11/2020 01:52, Chris Johns wrote:
> 
>> On 6/11/20 7:11 pm, Sebastian Huber wrote:
>>> Hello,
>>>
>>> for breaking long lines we have currently:
>>>
>>> "Should be replaced with
>>>
>>> .. code-block:: c
>>>
>>>    for (
>>>  initialization = statement;
>>>  a + really + longish + statement + that + evaluates + to <
>>>  a + boolean;
>>>  another + statement++
>>>    ) {
>>>  z = a + really + longish + statement + that + needs +
>>>  two + lines + gets + indented + four + more +
>>>  spaces + on + the + second + and + subsequent +
>>>  lines + and + broken + up + at + operators;
>>>    }
>>>
>>> Note that indentations should add 2 nesting levels (4 space characters, not
>>> tabs)."
>>>
>>> Do we really need two indent levels for breaking long lines in block 
>>> statements?
>>> I would just say that the continuation of a broken line is indented by one
>>> level. The example would look like this (please note the change in the for 
>>> loop
>>> "a + boolean"):
>>>
>>> .. code-block:: c
>>>
>>>    for (
>>>  initialization = statement;
>>>  a + really + longish + statement + that + evaluates + to <
>>>    a + boolean;
>>>  another + statement++
>>>    ) {
>>>  z = a + really + longish + statement + that + needs +
>>>    two + lines + gets + indented + four + more +
>>>    spaces + on + the + second + and + subsequent +
>>>    lines + and + broken + up + at + operators;
>> I sometimes add parentheses to aid indenting:
>>
>>    z = (a + really + longish + stat
>>   
>>     lines + and + broken + up + at + operators);
>>
>> Emacs automatically indents to the opening `(`. This is mentioned in the GNU
>> coding standard. We however have this statement in our standard ...
>>
>>   Avoid excess parentheses. Learn the operator precedence. rules.
> 
> Yes, and I think this is a good rule.

I am not sure it is a good rule and workable. Using it to handle indents is an
example of it breaking down. The ability to control an indent is a long held
tradition and editors like Emacs are designed to handle it yet it is not clear
if it is OK under this rule.

Is explicit grouping more robust in the face of changes? I find it a little
ironic extra braces are considered good practice because code can change but we
consider explicit grouping with parentheses is not?

The next rule is an exception for sizeof however return is not discussed. Then
there is `x = ((char)y) == 'a' ? 0 : 1` logic and finally type promotion. Making
sure the logic is right and then laying the need to deal with this rule on top
makes things harder. There are a bunch of difficult corner cases such as macros,
eg `#define SOMETHING() ((xxx) + 1)`. How is "excess" defined here?

I get the purpose is about 'if' statements but the rule is fragile.

Anyway this is off topic.

> My question is if we really should indent by two levels for the continuation 
> of
> long lines.

And my answer was it depends on what is being indented and why. The block
nesting level can also effect what works.

> variable = ...
> 
> foo bar continuation ...
> 
> vs.
> 
> variable = ...
> 
> foo bar continuation ...

I think most editors will assume this level of indenting rather than the double
indent level.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH 00/11] Generate some header files

2020-11-09 Thread Chris Johns
On 10/11/20 1:49 am, Sebastian Huber wrote:
> This patch set replaces some hand written header files of the Classic
> API with header files generated from specification items.  The main
> parts are the Event Manager and the Partition Manager.  The patches for
> the RTEMS Classic API Guide of these two managers is available here:
> 
> https://lists.rtems.org/pipermail/devel/2020-November/063122.html
> 
> I tried to follow the updated Doxygen guidelines:
> 
> https://lists.rtems.org/pipermail/devel/2020-November/063119.html
> 
> Sebastian Huber (11):
>   rtems: Include missing header file
>   rtems: Generate 
>   rtems: Generate 
>   rtems: Generate 
>   rtems: Generate 
>   rtems: Generate 
>   rtems: Generate 
>   rtems: Generate 
>   rtems: Generate 
>   rtems: Generate 
>   rtems: Generate 

Do these files need something that indicates they are generated and part of the
RTEMS Quality Process (RQP?)?

I could not see anything.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH 1/2] c-user: Generate Event Manager documentation

2020-11-09 Thread Chris Johns
On 10/11/20 1:47 am, Sebastian Huber wrote:
> The manager documentation is a consolidation of the comments in Doxygen
> markup and the documentation sources in Sphinx markup.  The
> documentation was transfered to interface specification items.  This
> header file was generated from the items by a script.
> 
> Update #3993.
> ---
>  c-user/event/directives.rst   | 320 +-
>  c-user/event/introduction.rst |  31 +++-
>  2 files changed, 230 insertions(+), 121 deletions(-)
> 
> diff --git a/c-user/event/directives.rst b/c-user/event/directives.rst
> index ef94115..95ae456 100644
> --- a/c-user/event/directives.rst
> +++ b/c-user/event/directives.rst
> @@ -1,142 +1,228 @@
>  .. SPDX-License-Identifier: CC-BY-SA-4.0
>  
> +.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
>  .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
>  
> +.. Do not manually edit this file.  It is part of the RTEMS quality process
> +.. and was automatically generated.

I am wondering if we need to pull back a little from "Do not manually edit this
file"? A patch to this file that fixes something may be better than not getting
a fix and being notified of a problem. What about ...

 .. This file has been automatically generated and is under the control of
 .. the RTEMS quality process. Manual edits to the following content may be
 .. lost.

?

> +..
> +.. If you find something that needs to be fixed or worded better please
> +.. post a report to an RTEMS mailing list or raise a bug report:
> +..
> +.. https://docs.rtems.org/branches/master/user/support/bugs.html
> +..
> +.. For information on updating and regenerating please refer to:
> +..
> +.. https://docs.rtems.org/branches/master/eng/req/howto.html
> +

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH] libtests/dl06: Add -lm

2020-11-09 Thread Chris Johns
On 9/11/20 6:24 pm, Sebastian Huber wrote:
> On 09/11/2020 02:23, Chris Johns wrote:
> 
>> On 3/11/20 3:39 am, Sebastian Huber wrote:
>>> There is probably something wrong with this test program.  If it is compiled
>>> without function/data sections, no optimization, and no linker garbage
>>> collection, then there is an undefined reference to atan2() and tan().
>> These symbols are referenced in the loaded module ...
>>
>> https://git.rtems.org/rtems/tree/testsuites/libtests/dl06/dl06-o2.c
>>
>> This test gets rtems-ld with the RAP format to collect the atan1 and tan code
>> into the loaded module. They should not be present in the base image. The 
>> libm
>> library is used because it is _not_ part of the standard libraries linked 
>> and is
>> available everywhere.
>>
>>> Fix this issue by adding -lm.
>> Is the error linking the base kernel image or the RAP loadable module?
>>
>> If it is the loadable module and this is how you add the libraries to be
>> searched to the rtems-ld command then the fix is needed and there is no 
>> problem.
>> If the error was in the base kernel image then I suggest something else is 
>> wrong
>> because those symbols should not be present in the base image. If the build
>> system can support options for just rtems-ld then adding it there would be 
>> good.
> 
> The error is in this command:
> 
> 
> [4044/4050] Processing link:
> build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o1.o
> build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o2.o
> build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-tar.o
> build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/init.o
> build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl-load.o
> build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-sym.o ->
> build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06.exe
> 08:21:03 runner ['/build/rtems/6/bin/arm-rtems6-gcc', '-qnolinkcmds', '-T',
> 'linkcmds.realview_pbx_a9_qemu',
> '/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o1.o',
> '/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o2.o',

These should not be linked into the base image. They are in the RAP image in
dl06-tar.o.

> '/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-tar.o',
> '/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/init.o',
> '/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl-load.o',
> '/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-sym.o',
> '-o/home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06.exe',
> '-Wl,--wrap=printf', '-Wl,--wrap=puts', '-L.', '-lrtemscpu', '-lrtemsbsp',
> '-lrtemstest', '-qrtems', '-march=armv7-a', '-mthumb', '-mfpu=neon',
> '-mfloat-abi=hard', '-mtune=cortex-a9',
> '-L/home/EB/sebastian_h/git-rtems-6/bsps/arm/shared/start',
> '-L/home/EB/sebastian_h/git-rtems-6/bsps/arm/realview-pbx-a9/start']
> /build/rtems/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld:
> /home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o2.o:
> in function `dl_o2_func2':
> /home/EB/sebastian_h/git-rtems-6/testsuites/libtests/dl06/dl06-o2.c:31:
> undefined reference to `atan2'
> /build/rtems/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld:
> /home/EB/sebastian_h/git-rtems-6/build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl06/dl06-o2.o:
> in function `dl_o2_func3':
> 
> /home/EB/sebastian_h/git-rtems-6/testsuites/libtests/dl06/dl06-o2.c:37:
> undefined reference to `tan'
> 
> I used the following config.ini:
> 
> [arm/realview_pbx_a9_qemu]
> BUILD_LIBTESTS = True
> OPTIMIZATION_FLAGS = -O0 -g
> LDFLAGS =
> 
>>
>> More of a concern is no error. I wonder if the code is being inlined when 
>> there
>> is FPU support. Maybe the test needs to create a library linking to it to be
>> more robust?
> Using these functions without -fno-builtin is not really robust.

Would adding a pragma for this option to dl06-o1.c and dl06-o2.c be acceptable
as a solution?

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH] build: Place cache file in build directory

2020-11-09 Thread Karel Gardas


Hello Sebastian,

sorry for late warning, but this patch breaks wscript on Ubuntu 20.04
LTS. It looks like bldnode is not part of the ctx variable. At least
bsp_defaults and bsp_list commands are broken by it. The output looks as:

$ ./waf bsp_list
Traceback (most recent call last):
  File
"/export/home/karel/git/rtems/rtems-head/.waf-2.0.20-36f5354d605298f6a89c09e0c7ef6c1d/waflib/Scripting.py",
line 119, in waf_entry_point
run_commands()
  File
"/export/home/karel/git/rtems/rtems-head/.waf-2.0.20-36f5354d605298f6a89c09e0c7ef6c1d/waflib/Scripting.py",
line 182, in run_commands
ctx=run_command(cmd_name)
  File
"/export/home/karel/git/rtems/rtems-head/.waf-2.0.20-36f5354d605298f6a89c09e0c7ef6c1d/waflib/Scripting.py",
line 173, in run_command
ctx.execute()
  File
"/export/home/karel/git/rtems/rtems-head/.waf-2.0.20-36f5354d605298f6a89c09e0c7ef6c1d/waflib/Context.py",
line 92, in execute
self.recurse([os.path.dirname(g_module.root_path)])
  File
"/export/home/karel/git/rtems/rtems-head/.waf-2.0.20-36f5354d605298f6a89c09e0c7ef6c1d/waflib/Context.py",
line 133, in recurse
user_function(self)
  File "/export/home/karel/git/rtems/rtems-head/wscript", line 1564, in
bsp_list
load_items_from_options(ctx)
  File "/export/home/karel/git/rtems/rtems-head/wscript", line 1202, in
load_items_from_options
load_items(ctx, specs)
  File "/export/home/karel/git/rtems/rtems-head/wscript", line 1193, in
load_items
load_items_in_directory(ctx, ctors, path)
  File "/export/home/karel/git/rtems/rtems-head/wscript", line 1138, in
load_items_in_directory
f = ctx.bldnode.make_node(
AttributeError: 'Context' object has no attribute 'bldnode'


The error is the same and independent of python2/python3 execution.
Reverting the patch helps here.

Thanks,
Karel

On 11/5/20 4:59 PM, Sebastian Huber wrote:
> This improves support for the --out option.
> ---
>  wscript | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/wscript b/wscript
> index 57ec6ff7f7..5f6958dbf3 100755
> --- a/wscript
> +++ b/wscript
> @@ -1135,8 +1135,8 @@ def load_from_yaml(load, ctx, data_by_uid, base, path):
>  
>  
>  def load_items_in_directory(ctx, ctors, path):
> -f = ctx.path.make_node(
> -"build/c4che/" + re.sub(r"[^\w]", "_", path) + ".pickle"
> +f = ctx.bldnode.make_node(
> +"c4che/" + re.sub(r"[^\w]", "_", path) + ".pickle"
>  )
>  f.parent.mkdir()
>  cache_file = f.abspath()
> 

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH v2 2/2] libtests/ofw01: Added a test for RTEMS OFW

2020-11-09 Thread Niteesh G. S.
Hello Christian,

On Tue, Nov 10, 2020 at 12:59 AM Christian Mauderer 
wrote:

> Hello Niteesh,
>
> I've seen the patches. I have to run a test at least on one BSP with and
> one without a FDT to make sure they don't break test runs.
>
OK Great. Please take your time. I just wanted to make sure you saw these
patches.

Thanks,
Niteesh.



> Best regards
>
> Christian
>
> On 09/11/2020 04:45, Niteesh G. S. wrote:
> > Hello,
> >
> > Pinging again incase this patch missed your attention.
> >
> > Thanks,
> > Niteesh.
> >
> > On Tue, Nov 3, 2020 at 11:49 PM G S Niteesh Babu  > > wrote:
> >
> > Added a basic test for the implemented RTEMS OFW
> > API.
> > ---
> >  spec/build/testsuites/libtests/grp.yml   |   2 +
> >  spec/build/testsuites/libtests/ofw01.yml |  21 +++
> >  testsuites/libtests/ofw01/init.c | 187
> +++
> >  testsuites/libtests/ofw01/ofw01.doc  |  29 
> >  testsuites/libtests/ofw01/ofw01.scn  |   2 +
> >  testsuites/libtests/ofw01/some.c |  72 +
> >  testsuites/libtests/ofw01/some.dts   |  76 +
> >  testsuites/libtests/ofw01/some.h |  15 ++
> >  8 files changed, 404 insertions(+)
> >  create mode 100644 spec/build/testsuites/libtests/ofw01.yml
> >  create mode 100644 testsuites/libtests/ofw01/init.c
> >  create mode 100644 testsuites/libtests/ofw01/ofw01.doc
> >  create mode 100644 testsuites/libtests/ofw01/ofw01.scn
> >  create mode 100644 testsuites/libtests/ofw01/some.c
> >  create mode 100644 testsuites/libtests/ofw01/some.dts
> >  create mode 100644 testsuites/libtests/ofw01/some.h
> >
> > diff --git a/spec/build/testsuites/libtests/grp.yml
> > b/spec/build/testsuites/libtests/grp.yml
> > index b9ca014b0d..1aa136854a 100644
> > --- a/spec/build/testsuites/libtests/grp.yml
> > +++ b/spec/build/testsuites/libtests/grp.yml
> > @@ -316,6 +316,8 @@ links:
> >uid: write
> >  - role: build-dependency
> >uid: writev
> > +- role: build-dependency
> > +  uid: ofw01
> >  type: build
> >  use-after:
> >  - rtemstest
> > diff --git a/spec/build/testsuites/libtests/ofw01.yml
> > b/spec/build/testsuites/libtests/ofw01.yml
> > new file mode 100644
> > index 00..8517c58bad
> > --- /dev/null
> > +++ b/spec/build/testsuites/libtests/ofw01.yml
> > @@ -0,0 +1,21 @@
> > +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
> > +build-type: test-program
> > +cflags: []
> > +copyrights:
> > +- Copyright (C) 2020 Niteesh G S
> > +cppflags: []
> > +cxxflags: []
> > +enabled-by: true
> > +features: c cprogram
> > +includes: []
> > +ldflags:
> > +- -Wl,--wrap=bsp_fdt_get
> > +links: []
> > +source:
> > +- testsuites/libtests/ofw01/init.c
> > +- testsuites/libtests/ofw01/some.c
> > +stlib: []
> > +target: testsuites/libtests/ofw01.exe
> > +type: build
> > +use-after: []
> > +use-before: []
> > diff --git a/testsuites/libtests/ofw01/init.c
> > b/testsuites/libtests/ofw01/init.c
> > new file mode 100644
> > index 00..82ee5eb11f
> > --- /dev/null
> > +++ b/testsuites/libtests/ofw01/init.c
> > @@ -0,0 +1,187 @@
> > +/* SPDX-License-Identifier: BSD-2-Clause */
> > +
> > +/*
> > + * Copyright (C) <2020> Niteesh G S  > >
> > + *
> > + * Redistribution and use in source and binary forms, with or
> without
> > + * modification, are permitted provided that the following
> conditions
> > + * are met:
> > + * 1. Redistributions of source code must retain the above copyright
> > + *notice, this list of conditions and the following disclaimer.
> > + * 2. Redistributions in binary form must reproduce the above
> copyright
> > + *notice, this list of conditions and the following disclaimer
> > in the
> > + *documentation and/or other materials provided with the
> > distribution.
> > + *
> > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > CONTRIBUTORS "AS IS"
> > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> > LIMITED TO, THE
> > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
> > PARTICULAR PURPOSE
> > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> > CONTRIBUTORS BE
> > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
> OR
> > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
> PROCUREMENT OF
> > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
> > BUSINESS
> > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
> > WHETHER IN
> > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> > OTHERWISE)
> > + * ARISING IN ANY WAY OUT OF THE USE 

Re: [PATCH v2 2/2] libtests/ofw01: Added a test for RTEMS OFW

2020-11-09 Thread Christian Mauderer
Hello Niteesh,

I've seen the patches. I have to run a test at least on one BSP with and
one without a FDT to make sure they don't break test runs.

Best regards

Christian

On 09/11/2020 04:45, Niteesh G. S. wrote:
> Hello,
> 
> Pinging again incase this patch missed your attention.
> 
> Thanks,
> Niteesh.
> 
> On Tue, Nov 3, 2020 at 11:49 PM G S Niteesh Babu  > wrote:
> 
> Added a basic test for the implemented RTEMS OFW
> API.
> ---
>  spec/build/testsuites/libtests/grp.yml   |   2 +
>  spec/build/testsuites/libtests/ofw01.yml |  21 +++
>  testsuites/libtests/ofw01/init.c         | 187 +++
>  testsuites/libtests/ofw01/ofw01.doc      |  29 
>  testsuites/libtests/ofw01/ofw01.scn      |   2 +
>  testsuites/libtests/ofw01/some.c         |  72 +
>  testsuites/libtests/ofw01/some.dts       |  76 +
>  testsuites/libtests/ofw01/some.h         |  15 ++
>  8 files changed, 404 insertions(+)
>  create mode 100644 spec/build/testsuites/libtests/ofw01.yml
>  create mode 100644 testsuites/libtests/ofw01/init.c
>  create mode 100644 testsuites/libtests/ofw01/ofw01.doc
>  create mode 100644 testsuites/libtests/ofw01/ofw01.scn
>  create mode 100644 testsuites/libtests/ofw01/some.c
>  create mode 100644 testsuites/libtests/ofw01/some.dts
>  create mode 100644 testsuites/libtests/ofw01/some.h
> 
> diff --git a/spec/build/testsuites/libtests/grp.yml
> b/spec/build/testsuites/libtests/grp.yml
> index b9ca014b0d..1aa136854a 100644
> --- a/spec/build/testsuites/libtests/grp.yml
> +++ b/spec/build/testsuites/libtests/grp.yml
> @@ -316,6 +316,8 @@ links:
>    uid: write
>  - role: build-dependency
>    uid: writev
> +- role: build-dependency
> +  uid: ofw01
>  type: build
>  use-after:
>  - rtemstest
> diff --git a/spec/build/testsuites/libtests/ofw01.yml
> b/spec/build/testsuites/libtests/ofw01.yml
> new file mode 100644
> index 00..8517c58bad
> --- /dev/null
> +++ b/spec/build/testsuites/libtests/ofw01.yml
> @@ -0,0 +1,21 @@
> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
> +build-type: test-program
> +cflags: []
> +copyrights:
> +- Copyright (C) 2020 Niteesh G S
> +cppflags: []
> +cxxflags: []
> +enabled-by: true
> +features: c cprogram
> +includes: []
> +ldflags:
> +- -Wl,--wrap=bsp_fdt_get
> +links: []
> +source:
> +- testsuites/libtests/ofw01/init.c
> +- testsuites/libtests/ofw01/some.c
> +stlib: []
> +target: testsuites/libtests/ofw01.exe
> +type: build
> +use-after: []
> +use-before: []
> diff --git a/testsuites/libtests/ofw01/init.c
> b/testsuites/libtests/ofw01/init.c
> new file mode 100644
> index 00..82ee5eb11f
> --- /dev/null
> +++ b/testsuites/libtests/ofw01/init.c
> @@ -0,0 +1,187 @@
> +/* SPDX-License-Identifier: BSD-2-Clause */
> +
> +/*
> + * Copyright (C) <2020> Niteesh G S  >
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer
> in the
> + *    documentation and/or other materials provided with the
> distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
> PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
> BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
> WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
> ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#include "some.h"
> +
> +#define BUF_SIZE 100
> +
> +const char rtems_test_name[] = "OFW 01";
> +

[PATCH 11/11] rtems: Generate

2020-11-09 Thread Sebastian Huber
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
---
 cpukit/include/rtems/score/basedefs.h | 1052 +
 1 file changed, 705 insertions(+), 347 deletions(-)

diff --git a/cpukit/include/rtems/score/basedefs.h 
b/cpukit/include/rtems/score/basedefs.h
index 0244af1471..4855df18eb 100644
--- a/cpukit/include/rtems/score/basedefs.h
+++ b/cpukit/include/rtems/score/basedefs.h
@@ -1,601 +1,959 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
 /**
  * @file
  *
- * @ingroup RTEMSScore
- *
- * @brief Basic Definitions
+ * @brief This header file provides basic definitions used by the API and the
+ *   implementation.
  */
 
 /*
- *  COPYRIGHT (c) 1989-2007.
- *  On-Line Applications Research Corporation (OAR).
+ * Copyright (C) 2014 Paval Pisa
+ * Copyright (C) 2011, 2013 On-Line Applications Research Corporation (OAR)
+ * Copyright (C) 2009, 2020 embedded brains GmbH 
(http://www.embedded-brains.de)
  *
- *  Copyright (C) 2010, 2019 embedded brains GmbH
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
  *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.org/license/LICENSE.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef _RTEMS_BASEDEFS_H
-#define _RTEMS_BASEDEFS_H
-
-/**
- * @defgroup RTEMSScoreBaseDefs Basic Definitions
+/*
+ * Do not manually edit this file.  It is part of the RTEMS quality process
+ * and was automatically generated.
+ *
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
  *
- * @ingroup RTEMSScore
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
  *
- * @{
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
  */
 
+/* Generated from spec:/rtems/basedefs/if/header */
+
+#ifndef _RTEMS_SCORE_BASEDEFS_H
+#define _RTEMS_SCORE_BASEDEFS_H
+
 #include 
 
-#ifndef ASM
-  #include 
+#if !defined(ASM)
   #include 
+  #include 
   #include 
 #endif
 
-#ifndef TRUE
-  /**
-   *  This ensures that RTEMS has TRUE defined in all situations.
-   */
-  #define TRUE 1
-#endif
-
-#ifndef FALSE
-  /**
-   *  This ensures that RTEMS has FALSE defined in all situations.
-   */
-  #define FALSE 0
+#ifdef __cplusplus
+extern "C" {
 #endif
 
-#if TRUE == FALSE
-  #error "TRUE equals FALSE"
-#endif
+/* Generated from spec:/if/api */
 
 /**
- *  The following (in conjunction with compiler arguments) are used
- *  to choose between the use of static inline functions and macro
- *  functions.   The static inline implementation allows better
- *  type checking with no cost in code size or execution speed.
+ * @defgroup RTEMSAPI API
+ *
+ * @brief API
+ *
+ * This group contains the RTEMS Application Programming Interface (API).
  */
-#ifdef __GNUC__
-  #define RTEMS_INLINE_ROUTINE static __inline__
-#else
-  #define RTEMS_INLINE_ROUTINE static inline
-#endif
+
+/* Generated from spec:/rtems/basedefs/if/group */
 
 /**
- *  The following macro is a compiler specific way to ensure that memory
- *  writes are not reordered around certain points.  This specifically can
- *  impact interrupt disable and thread dispatching critical sections.
+ * @defgroup RTEMSAPIBaseDefs Base Definitions
+ *
+ * @ingroup RTEMSAPI
+ *
+ * @brief This group contains basic macros and defines to give access to
+ *   compiler-specific features.
  */
-#ifdef __GNUC__
-  #define RTEMS_COMPILER_MEMORY_BARRIER() __asm__ volatile("" ::: "memory")
-#else
-  #define RTEMS_COMPILER_MEMORY_BARRIER()
-#endif
+
+/* Generated from spec:/rtems/basedefs/if/alias */
 
 /**
- * 

[PATCH 09/11] rtems: Generate

2020-11-09 Thread Sebastian Huber
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
---
 cpukit/include/rtems/rtems/event.h | 1052 +---
 1 file changed, 636 insertions(+), 416 deletions(-)

diff --git a/cpukit/include/rtems/rtems/event.h 
b/cpukit/include/rtems/rtems/event.h
index 48a871edf8..e275b4d661 100644
--- a/cpukit/include/rtems/rtems/event.h
+++ b/cpukit/include/rtems/rtems/event.h
@@ -1,22 +1,59 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
 /**
  * @file
  *
- * @ingroup ClassicEvent
+ * @ingroup RTEMSAPIClassicEvent
  *
- * @brief Classic Event Manager API
+ * @brief This header file provides the Event Manager API.
+ */
+
+/*
+ * Copyright (C) 2014, 2020 embedded brains GmbH 
(http://www.embedded-brains.de)
+ * Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/*
+ * Do not manually edit this file.  It is part of the RTEMS quality process
+ * and was automatically generated.
+ *
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
+ *
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
  *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
  */
 
+/* Generated from spec:/rtems/event/if/header */
+
 #ifndef _RTEMS_RTEMS_EVENT_H
 #define _RTEMS_RTEMS_EVENT_H
 
+#include 
 #include 
 #include 
 #include 
@@ -25,451 +62,494 @@
 extern "C" {
 #endif
 
+/* Generated from spec:/rtems/event/if/group */
+
 /**
- *  @defgroup ClassicEventSet Event Set
- *
- *  @ingroup ClassicEvent
- *
- *  @{
- */
-
-/**
- *  @brief Integer type to hold an event set of up to 32 events represented as
- *  a bit field.
- */
-typedef uint32_t   rtems_event_set;
-
-/**
- *  @brief Constant used to send or receive all events.
- */
-#define RTEMS_ALL_EVENTS  0x
-
-/** @brief Defines the bit in the event set associated with event 0. */
-#define RTEMS_EVENT_0 0x0001
-/** @brief Defines the bit in the event set associated with event 1. */
-#define RTEMS_EVENT_1 0x0002
-/** @brief Defines the bit in the event set associated with event 2. */
-#define RTEMS_EVENT_2 0x0004
-/** @brief Defines the bit in the event set associated with event 3. */
-#define RTEMS_EVENT_3 0x0008
-/** @brief Defines the bit in the event set associated with event 4. */
-#define RTEMS_EVENT_4 0x0010
-/** @brief Defines the bit in the event set associated with event 5. */
-#define RTEMS_EVENT_5 0x0020
-/** @brief Defines the bit in the event set associated with event 6. */
-#define RTEMS_EVENT_6 0x0040
-/** @brief Defines the bit in the event set associated with event 7. */
-#define RTEMS_EVENT_7 0x0080
-/** @brief Defines the bit in the event set associated with event 8. */
-#define RTEMS_EVENT_8 0x0100
-/** @brief Defines the bit in the event set associated with event 9. */
-#define RTEMS_EVENT_9 0x0200
-/** @brief Defines the bit in the event set associated with event 10. */
-#define RTEMS_EVENT_100x0400
-/** @brief Defines the bit in the event set associated with event 11. */
-#define RTEMS_EVENT_110x0800
-/** @brief Defines the bit in the event set associated with event 12. */
-#define RTEMS_EVENT_120x1000
-/** @brief Defines 

[PATCH 03/11] rtems: Generate

2020-11-09 Thread Sebastian Huber
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
---
 cpukit/include/rtems/rtems/config.h | 305 +---
 1 file changed, 237 insertions(+), 68 deletions(-)

diff --git a/cpukit/include/rtems/rtems/config.h 
b/cpukit/include/rtems/rtems/config.h
index bd6b38a532..82102fb713 100644
--- a/cpukit/include/rtems/rtems/config.h
+++ b/cpukit/include/rtems/rtems/config.h
@@ -1,152 +1,321 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
 /**
  * @file
  *
- * @ingroup ClassicConfig
+ * @brief This header file provides parts of the application configuration
+ *   information API.
+ */
+
+/*
+ * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ * Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
  *
- * This include file contains the table of user defined configuration
- * parameters specific for the RTEMS API.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
+/*
+ * Do not manually edit this file.  It is part of the RTEMS quality process
+ * and was automatically generated.
+ *
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
  *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
+ *
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
  */
 
+/* Generated from spec:/rtems/config/if/header-2 */
+
 #ifndef _RTEMS_RTEMS_CONFIG_H
 #define _RTEMS_RTEMS_CONFIG_H
 
-#include 
+#include 
+#include 
 #include 
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/**
- *  @defgroup ClassicConfig Configuration
- *
- *  @ingroup RTEMSAPIClassic
- *
- *  This encapsulates functionality related to the application's configuration
- *  of the Classic API including the maximum number of each class of objects.
- */
-/**@{*/
+/* Generated from spec:/rtems/config/if/api-table */
 
 /**
- *  The following records define the Configuration Table.  The
- *  information contained in this table is required in all
- *  RTEMS systems, whether single or multiprocessor.  This
- *  table primarily defines the following:
+ * @ingroup RTEMSAPIConfig
+ *
+ * @brief This structure contains a summary of the Classic API configuration.
  *
- * + required number of each object type
+ * Use rtems_configuration_get_rtems_api_configuration() to get the
+ * configuration table.
  */
 typedef struct {
   /**
-   * This field contains the maximum number of Classic API
-   * Tasks which are configured for this application.
+   * @brief This member contains the maximum number of Classic API Tasks
+   *   configured for this application.
+   *
+   * See #CONFIGURE_MAXIMUM_TASKS.
*/
-  uint32_tmaximum_tasks;
+  uint32_t maximum_tasks;
 
   /**
-   * This field indicates whether Classic API notepads are
-   * enabled or disabled.
+   * @brief This member is true, if the Classic API Notepads are enabled,
+   *   otherwise it is false.
*/
-  boolnotepads_enabled;
+  bool notepads_enabled;
 
   /**
-   * This field contains the maximum number of Classic API
-   * Timers which are configured for this application.
+   * @brief This member contains the maximum number of Classic API Timers
+   *   configured for this application.
+   *
+   * See #CONFIGURE_MAXIMUM_TIMERS.
*/
-  uint32_t   

[PATCH 02/11] rtems: Generate

2020-11-09 Thread Sebastian Huber
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
---
 cpukit/include/rtems/config.h | 528 +++---
 1 file changed, 432 insertions(+), 96 deletions(-)

diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h
index 1fbcf22f2e..9aa90ad0f3 100644
--- a/cpukit/include/rtems/config.h
+++ b/cpukit/include/rtems/config.h
@@ -1,189 +1,525 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
 /**
  * @file
  *
- * @brief Table of User Defined Configuration Parameters
+ * @ingroup RTEMSAPIConfig
  *
- * This include file contains the table of user defined configuration
- * parameters.
+ * @brief This header file provides parts of the application configuration
+ *   information API.
  */
 
 /*
- *  COPYRIGHT (c) 1989-2014.
- *  On-Line Applications Research Corporation (OAR).
+ * Copyright (C) 2009, 2020 embedded brains GmbH 
(http://www.embedded-brains.de)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
  *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.org/license/LICENSE.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef _RTEMS_CONFIG_H
-#define _RTEMS_CONFIG_H
-
 /*
- *  Unlimited object support. Changes the configuration table entry for POSIX
- *  or RTEMS APIs to bounded only by the memory of the work-space.
+ * Do not manually edit this file.  It is part of the RTEMS quality process
+ * and was automatically generated.
+ *
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
+ *
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
  *
- *  Use the macro to define the resource unlimited before placing in
- *  the configuration table.
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
  */
 
+/* Generated from spec:/rtems/config/if/header */
+
+#ifndef _RTEMS_CONFIG_H
+#define _RTEMS_CONFIG_H
+
+#include 
+#include 
+#include 
 #include 
-#include 
 #include 
 #include 
+#include 
 #include 
 #include 
-#include 
 #include 
+#include 
 #include 
 #include 
-#include 
-#include 
+
 #if defined(RTEMS_MULTIPROCESSING)
-#include 
+  #include 
+  #include 
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#define RTEMS_UNLIMITED_OBJECTS OBJECTS_UNLIMITED_OBJECTS
+/* Generated from spec:/rtems/config/if/group */
+
+/**
+ * @defgroup RTEMSAPIConfig Application Configuration Information
+ *
+ * @ingroup RTEMSAPI
+ *
+ * @brief The application configuration information group provides an API to
+ *   get the configuration of an application.
+ *
+ * Some interfaces of this API are also used to define application
+ * configuration option values, for example rtems_resource_unlimited().
+ */
 
-#define rtems_resource_unlimited(resource) \
-  ( resource | RTEMS_UNLIMITED_OBJECTS )
+/* Generated from spec:/rtems/config/if/get-copyright-notice */
 
-#define rtems_resource_is_unlimited(resource) \
-  _Objects_Is_unlimited(resource)
+/**
+ * @ingroup RTEMSAPIConfig
+ *
+ * @brief Gets the RTEMS copyright notice.
+ *
+ * @return Returns the pointer to the RTEMS copyright notice.
+ */
+const char *rtems_get_copyright_notice( void );
 
-#define rtems_resource_maximum_per_allocation(resource) \
-  _Objects_Maximum_per_allocation(resource)
+/* Generated from spec:/rtems/config/if/get-do-zero-of-workspace */
 
 /**
- * @copydoc Stack_Allocator_initialize
+ * @ingroup RTEMSAPIConfig
+ *
+ * @brief Indicates if the RTEMS Workspace is configured to be zeroed during
+ *   system initialization for this application.
+ *
+ * See 

[PATCH 10/11] rtems: Generate

2020-11-09 Thread Sebastian Huber
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
---
 cpukit/include/rtems/rtems/part.h | 397 --
 1 file changed, 317 insertions(+), 80 deletions(-)

diff --git a/cpukit/include/rtems/rtems/part.h 
b/cpukit/include/rtems/rtems/part.h
index a3c3128a00..b7f9b944a6 100644
--- a/cpukit/include/rtems/rtems/part.h
+++ b/cpukit/include/rtems/rtems/part.h
@@ -1,41 +1,85 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
 /**
  * @file
  *
- * @ingroup ClassicPart
+ * @ingroup RTEMSAPIClassicPart
+ *
+ * @brief This header file provides the Partition Manager API.
+ */
+
+/*
+ * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ * Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
  *
- * @brief Classic Partition Manager API
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/*
+ * Do not manually edit this file.  It is part of the RTEMS quality process
+ * and was automatically generated.
+ *
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
  *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
+ *
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
  */
 
+/* Generated from spec:/rtems/part/if/header */
+
 #ifndef _RTEMS_RTEMS_PART_H
 #define _RTEMS_RTEMS_PART_H
 
+#include 
+#include 
 #include 
 #include 
 #include 
+#include 
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+/* Generated from spec:/rtems/part/if/group */
+
 /**
- *  @defgroup ClassicPart Partitions
+ * @defgroup RTEMSAPIClassicPart Partition Manager
  *
- *  @ingroup RTEMSAPIClassic
+ * @ingroup RTEMSAPIClassic
  *
- *  This encapsulates functionality related to the
- *  Classic API Partition Manager.
+ * @brief The Partition Manager provides facilities to dynamically allocate
+ *   memory in fixed-size units.
  */
-/**@{*/
+
+/* Generated from spec:/rtems/part/if/alignment */
 
 /**
+ * @ingroup RTEMSAPIClassicPart
+ *
  * @brief This constant defines the minimum alignment of a partition buffer in
  *   bytes.
  *
@@ -44,103 +88,296 @@ extern "C" {
  */
 #define RTEMS_PARTITION_ALIGNMENT CPU_SIZEOF_POINTER
 
+/* Generated from spec:/rtems/part/if/create */
+
 /**
- *  @brief RTEMS Partition Create
+ * @ingroup RTEMSAPIClassicPart
+ *
+ * @brief Creates a partition.
+ *
+ * This directive creates a partition of fixed size buffers from a physically
+ * contiguous memory space which starts at ``starting_address`` and is
+ * ``length`` bytes in size.  Each allocated buffer is to be of ``buffer_size``
+ * in bytes.  The assigned partition identifier is returned in ``id``.  This
+ * partition identifier is used to access the partition with other partition
+ * related directives.
+ *
+ * The **attribute set** specified in ``attribute_set`` is built through a
+ * *bitwise or* of the attribute constants described below.  Attributes not
+ * mentioned below are not evaluated by this directive and have no effect.
+ *
+ * The partition can have **local** or **global** scope in a multiprocessing
+ * network (this attribute does not refer to SMP systems).
+ *
+ * * A **local** scope is the default and can be emphasized through the use of
+ *   the #RTEMS_LOCAL attribute.  A local partition can be only used by the
+ *   node which created 

[PATCH 00/11] Generate some header files

2020-11-09 Thread Sebastian Huber
This patch set replaces some hand written header files of the Classic
API with header files generated from specification items.  The main
parts are the Event Manager and the Partition Manager.  The patches for
the RTEMS Classic API Guide of these two managers is available here:

https://lists.rtems.org/pipermail/devel/2020-November/063122.html

I tried to follow the updated Doxygen guidelines:

https://lists.rtems.org/pipermail/devel/2020-November/063119.html

Sebastian Huber (11):
  rtems: Include missing header file
  rtems: Generate 
  rtems: Generate 
  rtems: Generate 
  rtems: Generate 
  rtems: Generate 
  rtems: Generate 
  rtems: Generate 
  rtems: Generate 
  rtems: Generate 
  rtems: Generate 

 cpukit/include/rtems/config.h |  528 ++---
 cpukit/include/rtems/rtems/attr.h |  312 +---
 cpukit/include/rtems/rtems/config.h   |  305 +--
 cpukit/include/rtems/rtems/event.h| 1052 +++--
 cpukit/include/rtems/rtems/modes.h|  259 --
 cpukit/include/rtems/rtems/options.h  |  132 +++-
 cpukit/include/rtems/rtems/part.h |  397 --
 cpukit/include/rtems/rtems/region.h   |1 +
 cpukit/include/rtems/rtems/status.h   |  400 ++
 cpukit/include/rtems/rtems/support.h  |1 +
 cpukit/include/rtems/rtems/types.h|  328 +---
 cpukit/include/rtems/score/basedefs.h | 1052 +
 12 files changed, 3309 insertions(+), 1458 deletions(-)

-- 
2.26.2

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 04/11] rtems: Generate

2020-11-09 Thread Sebastian Huber
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
---
 cpukit/include/rtems/rtems/status.h | 400 ++--
 1 file changed, 256 insertions(+), 144 deletions(-)

diff --git a/cpukit/include/rtems/rtems/status.h 
b/cpukit/include/rtems/rtems/status.h
index 7310fe905b..d0359cff03 100644
--- a/cpukit/include/rtems/rtems/status.h
+++ b/cpukit/include/rtems/rtems/status.h
@@ -1,267 +1,379 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
 /**
  * @file
  *
- * @ingroup ClassicStatus
+ * @brief This header file provides the status codes of Classic API directives
+ *   and support functions.
+ */
+
+/*
+ * Copyright (C) 2014, 2020 embedded brains GmbH 
(http://www.embedded-brains.de)
+ * Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
  *
- * This include file contains the status codes returned from the
- * executive directives.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
+/*
+ * Do not manually edit this file.  It is part of the RTEMS quality process
+ * and was automatically generated.
+ *
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
  *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
+ *
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
  */
 
+/* Generated from spec:/rtems/status/if/header */
+
 #ifndef _RTEMS_RTEMS_STATUS_H
 #define _RTEMS_RTEMS_STATUS_H
 
-#include 
+#include 
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+/* Generated from spec:/rtems/status/if/group */
+
 /**
- *  @defgroup ClassicStatus Status Codes
+ * @defgroup RTEMSAPIClassicStatus Directive Status Codes
  *
- *  @ingroup RTEMSAPIClassic
+ * @ingroup RTEMSAPIClassic
  *
- *  This encapsulates functionality related to the status codes returned
- *  by Classic API directives.
+ * @brief This group contains the Classic API directive status codes and
+ *   support functions.
  */
-/**@{*/
+
+/* Generated from spec:/rtems/status/if/code */
 
 /**
- *  @brief Classic API Status
+ * @ingroup RTEMSAPIClassicStatus
  *
- *  This enumerates the possible status values returned b
- *  Classic API directives.
+ * @brief This enumeration provides status codes for directives of the Classic
+ *   API.
  */
 typedef enum {
   /**
-   *  This is the status to indicate successful completion.
+   * @brief This status code indicates successful completion of a requested
+   *   operation.
*/
-  RTEMS_SUCCESSFUL   =  0,
+  RTEMS_SUCCESSFUL = 0,
+
   /**
-   *  This is the status to indicate that a thread exited.
+   * @brief This status code indicates that a thread exitted.
*/
-  RTEMS_TASK_EXITTED =  1,
+  RTEMS_TASK_EXITTED = 1,
+
   /**
-   *  This is the status to indicate multiprocessing is not configured.
+   * @brief This status code indicates that multiprocessing was not configured.
*/
-  RTEMS_MP_NOT_CONFIGURED=  2,
+  RTEMS_MP_NOT_CONFIGURED = 2,
+
   /**
-   *  This is the status to indicate that the object name was invalid.
+   * @brief This status code indicates that an object name was invalid.
*/
-  RTEMS_INVALID_NAME =  3,
+  RTEMS_INVALID_NAME = 3,
+
   /**
-   *  This is the status to indicate that the object Id was invalid.
+   * @brief This status code indicates that an 

[PATCH 06/11] rtems: Generate

2020-11-09 Thread Sebastian Huber
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
---
 cpukit/include/rtems/rtems/options.h | 132 +++
 1 file changed, 96 insertions(+), 36 deletions(-)

diff --git a/cpukit/include/rtems/rtems/options.h 
b/cpukit/include/rtems/rtems/options.h
index e50c4d1429..b7f3692d33 100644
--- a/cpukit/include/rtems/rtems/options.h
+++ b/cpukit/include/rtems/rtems/options.h
@@ -1,80 +1,140 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
 /**
  * @file
  *
- * @ingroup ClassicOptions
+ * @brief This header file provides the Classic API directive options.
+ */
+
+/*
+ * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ * Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
  *
- * This include file contains information which defines the
- * options available on many directives.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/*
+ * Do not manually edit this file.  It is part of the RTEMS quality process
+ * and was automatically generated.
  *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
+ *
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
+ *
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
  */
 
+/* Generated from spec:/rtems/option/if/header */
+
 #ifndef _RTEMS_RTEMS_OPTIONS_H
 #define _RTEMS_RTEMS_OPTIONS_H
 
-#include 
+#include 
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+/* Generated from spec:/rtems/option/if/group */
+
 /**
- * @defgroup ClassicOptions Classic API Options
+ * @defgroup RTEMSAPIClassicOptions Directive Options
  *
  * @ingroup RTEMSAPIClassic
  *
- * This encapsulates functionality related to the options argument
- * to Classic API blocking operations. The primary option is whether
- * or not a task is willing to wait for the operation to complete.
+ * @brief This group contains the Classic API directive options.
  */
-/**@{*/
+
+/* Generated from spec:/rtems/option/if/default */
 
 /**
- *  The following type defines the control block used to manage
- *  option sets.
+ * @ingroup RTEMSAPIClassicOptions
+ *
+ * @brief This option constant represents the default option set.
  */
-typedef uint32_t   rtems_option;
+#define RTEMS_DEFAULT_OPTIONS 0x
+
+/* Generated from spec:/rtems/option/if/event-all */
 
 /**
- *  The following constants define the individual options which may
- *  be used to compose an option set.
+ * @ingroup RTEMSAPIClassicOptions
+ *
+ * @brief This option constant indicates that the task wishes to wait until all
+ *   events of interest are available in rtems_event_receive() and
+ *   rtems_event_system_receive().
  */
-#define RTEMS_DEFAULT_OPTIONS   0x
+#define RTEMS_EVENT_ALL 0x
+
+/* Generated from spec:/rtems/option/if/event-any */
 
 /**
- *  This option constants indicates that the task is to wait on resource.
+ * @ingroup RTEMSAPIClassicOptions
+ *
+ * @brief This option constant indicates that the task wishes to wait until at
+ *   least one of the events of interest is available in rtems_event_receive()
+ *   and rtems_event_system_receive().
  */
-#define RTEMS_WAIT  0x
+#define RTEMS_EVENT_ANY 0x0002
+
+/* Generated from spec:/rtems/option/if/no-wait */
+
 /**
- *  This option constants 

[PATCH 08/11] rtems: Generate

2020-11-09 Thread Sebastian Huber
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
---
 cpukit/include/rtems/rtems/attr.h | 312 +-
 1 file changed, 223 insertions(+), 89 deletions(-)

diff --git a/cpukit/include/rtems/rtems/attr.h 
b/cpukit/include/rtems/rtems/attr.h
index 74ed96fdba..c0bc990c45 100644
--- a/cpukit/include/rtems/rtems/attr.h
+++ b/cpukit/include/rtems/rtems/attr.h
@@ -1,188 +1,322 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
 /**
  * @file
  *
- * @ingroup ClassicAttributes
+ * @brief This header file provides Classic API directive attributes.
+ */
+
+/*
+ * Copyright (C) 2014, 2020 embedded brains GmbH 
(http://www.embedded-brains.de)
+ * Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
  *
- * This include file contains all information about the Object Attributes
- * Handler.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/*
+ * Do not manually edit this file.  It is part of the RTEMS quality process
+ * and was automatically generated.
  *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
+ *
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
+ *
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
  */
 
+/* Generated from spec:/rtems/attr/if/header */
+
 #ifndef _RTEMS_RTEMS_ATTR_H
 #define _RTEMS_RTEMS_ATTR_H
 
-#include 
+#include 
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+/* Generated from spec:/rtems/attr/if/group */
+
 /**
- *  @defgroup ClassicAttributes Attributes
+ * @defgroup RTEMSAPIClassicAttr Directive Attributes
  *
- *  @ingroup RTEMSAPIClassic
+ * @ingroup RTEMSAPIClassic
  *
- *  This encapsulates functionality which defines and manages the
- *  set of Classic API object attributes.
+ * @brief This group contains the Classic API directive attributes.
  */
-/**@{*/
+
+/* Generated from spec:/rtems/attr/if/application-task */
 
 /**
- *  This defines the type used to contain Classic API attributes.  These
- *  are primarily used when creating objects.
+ * @ingroup RTEMSAPIClassicAttr
+ *
+ * @brief This attribute constant indicates that the Classic API task created
+ *   by rtems_task_create() or rtems_task_construct() shall be an application
+ *   task.
  */
-typedef uint32_t   rtems_attribute;
-
-/** This is the default value for an attribute set. */
+#define RTEMS_APPLICATION_TASK 0x
 
-#define RTEMS_DEFAULT_ATTRIBUTES  0x
+/* Generated from spec:/rtems/attr/if/attribute */
 
 /**
- *  This is the attribute constant to indicate local resource.
+ * @ingroup RTEMSAPIClassicAttr
+ *
+ * @brief This type represents Classic API attributes.
+ *
+ * Attributes are primarily used when creating objects.
  */
-#define RTEMS_LOCAL   0x
+typedef uint32_t rtems_attribute;
+
+/* Generated from spec:/rtems/attr/if/barrier-automatic-release */
 
 /**
- *  This is the attribute constant to indicate global resource.
+ * @ingroup RTEMSAPIClassicAttr
+ *
+ * @brief This attribute constant indicates that the Classic API barrier
+ *   created by rtems_barrier_create() shall use the automatic release
+ *   protocol.
  */
-#define RTEMS_GLOBAL  0x0002
+#define RTEMS_BARRIER_AUTOMATIC_RELEASE 0x0200
+
+/* Generated from spec:/rtems/attr/if/barrier-manual-release 

[PATCH 01/11] rtems: Include missing header file

2020-11-09 Thread Sebastian Huber
---
 cpukit/include/rtems/rtems/region.h  | 1 +
 cpukit/include/rtems/rtems/support.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/cpukit/include/rtems/rtems/region.h 
b/cpukit/include/rtems/rtems/region.h
index 0809a31998..65866ced7b 100644
--- a/cpukit/include/rtems/rtems/region.h
+++ b/cpukit/include/rtems/rtems/region.h
@@ -21,6 +21,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/cpukit/include/rtems/rtems/support.h 
b/cpukit/include/rtems/rtems/support.h
index 944e9fbe5b..92dd49076f 100644
--- a/cpukit/include/rtems/rtems/support.h
+++ b/cpukit/include/rtems/rtems/support.h
@@ -16,6 +16,7 @@
 #define _RTEMS_RTEMS_SUPPORT_H
 
 #include 
+#include 
 #include 
 
 #ifdef __cplusplus
-- 
2.26.2

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 07/11] rtems: Generate

2020-11-09 Thread Sebastian Huber
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
---
 cpukit/include/rtems/rtems/types.h | 328 +++--
 1 file changed, 213 insertions(+), 115 deletions(-)

diff --git a/cpukit/include/rtems/rtems/types.h 
b/cpukit/include/rtems/rtems/types.h
index 5ce3eb6604..09cdb55af2 100644
--- a/cpukit/include/rtems/rtems/types.h
+++ b/cpukit/include/rtems/rtems/types.h
@@ -1,196 +1,294 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
 /**
  * @file
  *
- * @defgroup ClassicTypes Types
+ * @brief This header file provides types used by the Classic API.
+ */
+
+/*
+ * Copyright (C) 2009, 2020 embedded brains GmbH 
(http://www.embedded-brains.de)
+ * Copyright (C) 2006, 2008 On-Line Applications Research Corporation (OAR)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
  *
- * @ingroup RTEMSAPIClassic
- * 
- * @brief Types used by Classic API.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
-/* COPYRIGHT (c) 1989-2009.
- * On-Line Applications Research Corporation (OAR).
+/*
+ * Do not manually edit this file.  It is part of the RTEMS quality process
+ * and was automatically generated.
+ *
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
  *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
+ *
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
  */
 
+/* Generated from spec:/rtems/type/if/header */
+
 #ifndef _RTEMS_RTEMS_TYPES_H
 #define _RTEMS_RTEMS_TYPES_H
 
-/*
- *  RTEMS basic type definitions
- */
-
-#include 
+#include 
 #include 
 #include 
-#include 
-#include 
+#include 
+#include 
+#include 
 #include 
 #include 
-#include 
+
 #if defined(RTEMS_MULTIPROCESSING)
-#include 
+  #include 
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/**
- * @addtogroup ClassicTasks
- */
-/**@{**/
+/* Generated from spec:/rtems/type/if/group */
 
 /**
- * @brief Classic API @ref ClassicRTEMSSubSecObjectNames "object name" type.
+ * @defgroup RTEMSAPIClassicTypes Basic Types
  *
- * Contains the name of a Classic API object. It is an unsigned 32-bit integer
- * which can be treated as a numeric value or initialized using
- * rtems_build_name() to contain four ASCII characters.
+ * @ingroup RTEMSAPIClassic
+ *
+ * @brief This group contains basic Classic API types.
  */
-typedef uint32_t rtems_name;
 
-/**
- * @brief Used to manage and manipulate
- * @ref ClassicRTEMSSubSecObjectIdentifiers "RTEMS object identifiers".
- */
-typedef Objects_Id   rtems_id;
+/* Generated from spec:/rtems/type/if/id */
 
 /**
- * @brief Invalid object identifier value.
+ * @ingroup RTEMSAPIClassicTypes
  *
- * No object can have this identifier value.
+ * @brief This type represents RTEMS object identifiers.
  */
-#define RTEMS_ID_NONE OBJECTS_ID_NONE
+typedef Objects_Id rtems_id;
+
+/* Generated from spec:/rtems/type/if/id-none */
 
-#if (CPU_ISR_PASSES_FRAME_POINTER == TRUE)
 /**
- * @brief Defines the format of the interrupt stack frame as it appears to a
- * user ISR.
+ * @ingroup RTEMSAPIClassicTypes
  *
- * This data structure is only provided if the interrupt stack frame is passed
- * to the ISR handler.
+ * @brief This constant represents an invalid RTEMS object identifier.
  *
- * @see rtems_interrupt_catch().
+ * No RTEMS object can have this identifier.
  */
-typedef CPU_Interrupt_framertems_interrupt_frame;
-#endif
+#define RTEMS_ID_NONE OBJECTS_ID_NONE
 
-/**

[PATCH 2/2] c-user: Generate Partition Manager documentation

2020-11-09 Thread Sebastian Huber
The manager documentation is a consolidation of the comments in Doxygen
markup and the documentation sources in Sphinx markup.  The
documentation was transfered to interface specification items.  This
header file was generated from the items by a script.

Update #3993.
---
 c-user/partition/directives.rst   | 647 +-
 c-user/partition/introduction.rst |  41 +-
 2 files changed, 408 insertions(+), 280 deletions(-)

diff --git a/c-user/partition/directives.rst b/c-user/partition/directives.rst
index f81c37f..cd50671 100644
--- a/c-user/partition/directives.rst
+++ b/c-user/partition/directives.rst
@@ -1,349 +1,450 @@
 .. SPDX-License-Identifier: CC-BY-SA-4.0
 
+.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 
+.. Do not manually edit this file.  It is part of the RTEMS quality process
+.. and was automatically generated.
+..
+.. If you find something that needs to be fixed or worded better please
+.. post a report to an RTEMS mailing list or raise a bug report:
+..
+.. https://docs.rtems.org/branches/master/user/support/bugs.html
+..
+.. For information on updating and regenerating please refer to:
+..
+.. https://docs.rtems.org/branches/master/eng/req/howto.html
+
+.. _PartitionManagerDirectives:
+
 Directives
 ==
 
-This section details the partition manager's directives.  A subsection is
-dedicated to each of this manager's directives and describes the calling
-sequence, related constants, usage, and status codes.
+This section details the directives of the Partition Manager. A subsection is
+dedicated to each of this manager's directives and lists the calling sequence,
+parameters, description, return values, and notes of the directive.
+
+.. Generated from spec:/rtems/part/if/create
 
 .. raw:: latex
 
-   \clearpage
+\clearpage
 
+.. index:: rtems_partition_create()
 .. index:: create a partition
-.. index:: rtems_partition_create
-
-.. _rtems_partition_create:
-
-PARTITION_CREATE - Create a partition
--
-
-CALLING SEQUENCE:
-.. code-block:: c
-
-rtems_status_code rtems_partition_create(
-rtems_name   name,
-void*starting_address,
-uintptr_tlength,
-size_t   buffer_size,
-rtems_attribute  attribute_set,
-rtems_id*id
-);
-
-DIRECTIVE STATUS CODES:
-.. list-table::
- :class: rtems-table
-
- * - ``RTEMS_SUCCESSFUL``
-   - partition created successfully
- * - ``RTEMS_INVALID_NAME``
-   - invalid partition ``name``
- * - ``RTEMS_TOO_MANY``
-   - too many partitions created
- * - ``RTEMS_INVALID_ADDRESS``
-   - ``starting_address`` is not on a pointer size boundary
- * - ``RTEMS_INVALID_ADDRESS``
-   - ``starting_address`` is NULL
- * - ``RTEMS_INVALID_ADDRESS``
-   - ``id`` is NULL
- * - ``RTEMS_INVALID_SIZE``
-   - ``length`` or ``buffer_size`` is 0
- * - ``RTEMS_INVALID_SIZE``
-   - ``length`` is less than the ``buffer_size``
- * - ``RTEMS_INVALID_SIZE``
-   - ``buffer_size`` is not an integral multiple of the pointer size
- * - ``RTEMS_INVALID_SIZE``
-   - ``buffer_size`` is less than two times the pointer size
- * - ``RTEMS_TOO_MANY``
-   - too many global objects
-
-DESCRIPTION:
-This directive creates a partition of fixed size buffers from a physically
-contiguous memory space which starts at starting_address and is length
-bytes in size.  Each allocated buffer is to be of ``buffer_size`` in bytes.
-The assigned partition id is returned in ``id``.  This partition id is used
-to access the partition with other partition related directives.  For
-control and maintenance of the partition, RTEMS allocates a PTCB from the
-local PTCB free pool and initializes it.
-
-NOTES:
-This directive may cause the calling task to be preempted due to an
-obtain and release of the object allocator mutex.
-
-The partition buffer area specified by the ``starting_address`` must be
-properly aligned.  It must be possible to directly store target
-architecture pointers and the also the user data.  For example, if the user
-data contains some long double or vector data types, the partition buffer
-area and the buffer size must take the alignment of these types into
-account which is usually larger than the pointer alignment.  A cache line
-alignment may be also a factor.
-
-The ``buffer_size`` parameter must be an integral multiple of the pointer
-size on the target architecture.  Additionally, ``buffer_size`` must be
-large enough to hold two pointers on the target architecture.  This is
-required for RTEMS to manage the buffers when they are free.
-
-Memory from the partition is not used by RTEMS to store the Partition
-Control Block.
-

[PATCH 1/2] c-user: Generate Event Manager documentation

2020-11-09 Thread Sebastian Huber
The manager documentation is a consolidation of the comments in Doxygen
markup and the documentation sources in Sphinx markup.  The
documentation was transfered to interface specification items.  This
header file was generated from the items by a script.

Update #3993.
---
 c-user/event/directives.rst   | 320 +-
 c-user/event/introduction.rst |  31 +++-
 2 files changed, 230 insertions(+), 121 deletions(-)

diff --git a/c-user/event/directives.rst b/c-user/event/directives.rst
index ef94115..95ae456 100644
--- a/c-user/event/directives.rst
+++ b/c-user/event/directives.rst
@@ -1,142 +1,228 @@
 .. SPDX-License-Identifier: CC-BY-SA-4.0
 
+.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 
+.. Do not manually edit this file.  It is part of the RTEMS quality process
+.. and was automatically generated.
+..
+.. If you find something that needs to be fixed or worded better please
+.. post a report to an RTEMS mailing list or raise a bug report:
+..
+.. https://docs.rtems.org/branches/master/user/support/bugs.html
+..
+.. For information on updating and regenerating please refer to:
+..
+.. https://docs.rtems.org/branches/master/eng/req/howto.html
+
+.. _EventManagerDirectives:
+
 Directives
 ==
 
-This section details the event manager's directives.  A subsection is dedicated
-to each of this manager's directives and describes the calling sequence,
-related constants, usage, and status codes.
+This section details the directives of the Event Manager. A subsection is
+dedicated to each of this manager's directives and lists the calling sequence,
+parameters, description, return values, and notes of the directive.
+
+.. Generated from spec:/rtems/event/if/send
 
 .. raw:: latex
 
-   \clearpage
+\clearpage
+
+.. index:: rtems_event_send()
+
+.. _InterfaceRtemsEventSend:
+
+rtems_event_send()
+--
+
+Sends the event set to the task.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+rtems_status_code rtems_event_send( rtems_id id, rtems_event_set event_in 
);
+
+.. rubric:: PARAMETERS:
+
+``id``
+This parameter is the identifier of the target task to receive the event
+set.
+
+``event_in``
+This parameter is the event set to send.
+
+.. rubric:: DESCRIPTION:
 
-.. index:: send event set to a task
-.. index:: rtems_event_send
+This directive sends the event set, ``event_in``, to the target task identified
+by ``id``.  Based upon the state of the target task, one of the following
+situations applies:
 
-.. _rtems_event_send:
+* The target task is blocked waiting for events, then
 
-EVENT_SEND - Send event set to a task
--
+  * if the waiting task's input event condition is satisfied, then the task is
+made ready for execution, or
 
-CALLING SEQUENCE:
-.. code-block:: c
+  * otherwise, the event set is posted but left pending and the task remains
+blocked.
 
-rtems_status_code rtems_event_send (
-rtems_id id,
-rtems_event_set  event_in
-);
+* The target task is not waiting for events, then the event set is posted and
+  left pending.
 
-DIRECTIVE STATUS CODES:
-.. list-table::
- :class: rtems-table
+.. rubric:: RETURN VALUES:
 
- * - ``RTEMS_SUCCESSFUL``
-   - event set sent successfully
- * - ``RTEMS_INVALID_ID``
-   - invalid task id
+:c:macro:`RTEMS_SUCCESSFUL`
+The requested operation was successful.
 
-DESCRIPTION:
-This directive sends an event set, event_in, to the task specified by id.
-If a blocked task's input event condition is satisfied by this directive,
-then it will be made ready.  If its input event condition is not satisfied,
-then the events satisfied are updated and the events not satisfied are left
-pending.  If the task specified by id is not blocked waiting for events,
-then the events sent are left pending.
+:c:macro:`RTEMS_INVALID_ID`
+There was no task with the specified identifier.
 
-NOTES:
-Specifying ``RTEMS_SELF`` for id results in the event set being sent to the
-calling task.
+.. rubric:: NOTES:
 
-Identical events sent to a task are not queued.  In other words, the
-second, and subsequent, posting of an event to a task before it can perform
-an ``rtems_event_receive`` has no effect.
+Events can be sent by tasks or an :term:`ISR`.
 
-The calling task will be preempted if it has preemption enabled and a
-higher priority task is unblocked as the result of this directive.
+Specifying :c:macro:`RTEMS_SELF` for ``id`` results in the event set being sent
+to the calling task.
 
-Sending an event set to a global task which does not reside on the local
-node will generate a request telling the remote node to send the event set
-to the appropriate task.
+The event set to send shall be built by a *bitwise or* of the desired 

[PATCH 0/2] c-user: Generate Event and Partition sections

2020-11-09 Thread Sebastian Huber
The manager documentation is a consolidation of the comments in Doxygen
markup and the documentation sources in Sphinx markup.  The
documentation was transfered to interface specification items.  This
header file was generated from the items by a script.  The generated PDF
is available here:

https://ftp.rtems.org/pub/rtems/people/sebh/c-user.pdf

Sebastian Huber (2):
  c-user: Generate Event Manager documentation
  c-user: Generate Partition Manager documentation

 c-user/event/directives.rst   | 320 +--
 c-user/event/introduction.rst |  31 +-
 c-user/partition/directives.rst   | 647 +-
 c-user/partition/introduction.rst |  41 +-
 4 files changed, 638 insertions(+), 401 deletions(-)

-- 
2.26.2

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH] eng: Rework and clarify Doxygen Guidelines

2020-11-09 Thread Sebastian Huber
---
 eng/coding-doxygen.rst  | 210 
 eng/coding-file-hdr.rst |   2 +
 2 files changed, 149 insertions(+), 63 deletions(-)

diff --git a/eng/coding-doxygen.rst b/eng/coding-doxygen.rst
index f4308ef..b2e6b61 100644
--- a/eng/coding-doxygen.rst
+++ b/eng/coding-doxygen.rst
@@ -16,12 +16,13 @@ In the RTEMS source code, CamelCase is rarely used, so this 
makes it easier to
 search and replace Doxygen groups.  It avoids ambiguous references to
 functions, types, defines, macros, and groups.  All groups shall have an
 ``RTEMS`` prefix.  This makes it possible to include the RTEMS files with
-Doxygen comments in a larger project without name conflicts.
+Doxygen comments in a larger project without name conflicts.  The group name
+shall use `Title Case `_.
 
 .. code:: c
 
 /**
- * @defgroup RTEMSScoreThread
+ * @defgroup RTEMSScoreThread Thread Handler
  *
  * @ingrop RTEMSScore
  *
@@ -36,18 +37,28 @@ global variable declaration shall belong to at least one 
Doxygen group.  Use
 ``@defgroup`` and ``@addtogroup`` with ``@{`` and ``@}`` brackets to add
 members to a group.  A group shall be defined at most once.  Each group shall
 be documented with an ``@brief`` description and an optional detailed
-description.  The ``@brief`` description shall use
-`Title Case `_.
-Use grammatically correct sentences for the detailed descriptions.
+description.  Use grammatically correct sentences for the ``@brief`` and
+detailed descriptions.
+
+For the ``@brief`` description use phrases like this:
+
+* This group contains ... and so on.
+
+* The XYZ Handler provides ... and so on.
+
+* The ABC Component contains ... and so on.
 
 .. code:: c
 
 /**
- * @defgroup RTEMSScoreThread
+ * @defgroup RTEMSScoreThread Thread Handler
  *
  * @ingrop RTEMSScore
  *
- * @brief Thread Handler
+ * @brief The Thread Handler provides functionality related to the
+ *   management of threads.
+ *
+ * This includes the creation, deletion, and scheduling of threads.
  *
  * ...
  *
@@ -73,24 +84,33 @@ Use grammatically correct sentences for the detailed 
descriptions.
 Files
 -
 
-Each source or header file shall have an ``@file`` block at the top of the
-file.  The ``@file`` block should precede the license header separated by one
-blank line.  This placement reduces the chance of merge conflicts in imported
-third-party code.  The ``@file`` block shall be put into a group with
-``@ingroup GroupName``.  The ``@file`` block should have an ``@brief``
-description and a detailed description if it is considered helpful.  Use
-``@brief @copybrief GroupName`` as a default to copy the ``@brief`` description
-from the corresponding group and omit the detailed description.
+Each header and source file shall have an ``@file`` block at the top of the
+file after the SPDX License Identifier.  The ``@file`` block shall precede the
+license header separated by one blank line, see :ref:`CCXXHeaderFileTemplate`
+and :ref:`CCXXASMSourceFileTemplate`.  The ``@file`` block shall be put into a
+group with ``@ingroup GroupName``.  The ``@file`` block shall have an
+``@brief`` description and an optional detailed description.  The detailed
+description could give an explanation why a certain set of functions or data
+structures is grouped in one file.  Use grammatically correct sentences for the
+``@brief`` and detailed descriptions.
 
-.. code:: c
+For the ``@brief`` description of header files use phrases like this:
 
-/**
- * @file
- *
- * @ingroup RTEMSScoreThread
- *
- * @brief @copybrief RTEMSScoreThread
- */
+* This header file provides ... and so on.
+
+* This header file provides the API of the ABC Manager.
+
+* This header file provides interfaces and functions used to implement the XYZ
+  Handler.
+
+For the ``@brief`` description of source files use phrases like this:
+
+* This source file contains the implementation of some_function().
+
+* This source file contains the definition of some_data_element.
+
+* This source file contains the implementation of XZY Hander functions related
+  to ABC processing.
 
 .. code:: c
 
@@ -99,38 +119,69 @@ from the corresponding group and omit the detailed 
description.
  *
  * @ingroup RTEMSScoreThread
  *
- * @brief Some helpful brief description.
- *
- * Some helpful detailed description.
+ * @brief This source file contains the implementation of
+ *   _Thread_Initialize().
  */
 
 Type Definitions
 
 
-Each type defined in a header file shall be documented with an ``@brief``
-description and an optional detailed description.  Each type member shall be
+Each type (``typedef``, ``struct``, ``enum``) defined in a header file shall be
 documented with an ``@brief`` description and an optional detailed 

Re: [PATCH] bsp/atsam: Fix XDMAD status

2020-11-09 Thread Christian Mauderer
I would like to apply this patch to master (ticket #4173) and to the 5 
branch (ticket #4172). It would be great if someone could have a look 
and acknowledge it.


On 09/11/2020 09:16, Christian Mauderer wrote:

In "bsp/atsam: Simplify XDMAD_Handler()" (5f813694f68cee) the interrupt
callback has been made unconditional. That allowed to avoid some special
deadlock situations in error cases. But it removed part of the XDMAD
status handling.

This patch adds the ability to update the XDMAD status from the
callback if that is necessary for the driver.

Fixes #4172
---
  .../contrib/libraries/libchip/source/xdmad.c  | 60 ++-
  .../arm/atsam/include/libchip/include/xdmad.h |  4 ++
  2 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/bsps/arm/atsam/contrib/libraries/libchip/source/xdmad.c 
b/bsps/arm/atsam/contrib/libraries/libchip/source/xdmad.c
index 13b227036e..161cf0bee4 100644
--- a/bsps/arm/atsam/contrib/libraries/libchip/source/xdmad.c
+++ b/bsps/arm/atsam/contrib/libraries/libchip/source/xdmad.c
@@ -132,9 +132,66 @@ static uint32_t XDMAD_AllocateXdmacChannel(sXdmad *pXdmad,
return XDMAD_ALLOC_FAILED;
  }
  
+/*

+ * Update the internal xdmad state. Returns true if further processing in the
+ * callback is recommended.
+ *
+ * In an earlier version of the API this has been done by the interrupt handler
+ * directly. But in some cases the application might want to process some of 
the
+ * other interrupts too. Therefore the user callback should now decide itself
+ * whether this is necessary or not.
+ */
+bool XDMAD_UpdateStatusFromCallback(sXdmad *pXdmad,
+   uint32_t Channel,
+   uint32_t status)
+{
+   Xdmac *pXdmac;
+   uint32_t xdmaGlobalChStatus;
+   bool bExec;
+
+   bExec = false;
+   pXdmac = pXdmad->pXdmacs;
+   xdmaGlobalChStatus = XDMAC_GetGlobalChStatus(pXdmac);
+
+   if ((xdmaGlobalChStatus & (XDMAC_GS_ST0 << Channel)) == 0) {
+   uint32_t xdmaChannelIntMask;
+   sXdmadChannel *pCh;
+
+   pCh = >XdmaChannels[Channel];
+
+   xdmaChannelIntMask = XDMAC_GetChannelItMask(pXdmac, Channel);
+   status &= xdmaChannelIntMask;
+
+   if (status & XDMAC_CIS_BIS) {
+   if ((xdmaChannelIntMask & XDMAC_CIM_LIM) == 0) {
+   pCh->state = XDMAD_STATE_DONE;
+   bExec = true;
+   }
+   }
+
+   if (status & XDMAC_CIS_LIS) {
+   pCh->state = XDMAD_STATE_DONE;
+   bExec = true;
+   }
+
+   if (status & XDMAC_CIS_DIS) {
+   pCh->state = XDMAD_STATE_DONE;
+   bExec = true;
+   }
+   } else {
+   /* Block end interrupt for LLI dma mode */
+   if (XDMAC_GetChannelIsr(pXdmac, Channel) & XDMAC_CIS_BIS) {
+   bExec = true;
+   }
+   }
+
+   return bExec;
+}
+
  void XDMAD_DoNothingCallback(uint32_t Channel, void *pArg, uint32_t status)
  {
-   /* Do nothing */
+   /* Do nothing except status update */
+   XDMAD_UpdateStatusFromCallback((sXdmad *)pArg, Channel, status);
  }
  
  /*

@@ -157,6 +214,7 @@ static void XDMAD_SysInitialize(void)
  
  	for (j = 0; j < pXdmad->numChannels; j ++) {

pXdmad->XdmaChannels[j].fCallback = XDMAD_DoNothingCallback;
+   pXdmad->XdmaChannels[j].pArg = (void *)pXdmad;
}
  
  	sc = rtems_interrupt_handler_install(

diff --git a/bsps/arm/atsam/include/libchip/include/xdmad.h 
b/bsps/arm/atsam/include/libchip/include/xdmad.h
index 97e24c880b..cba3d052ab 100644
--- a/bsps/arm/atsam/include/libchip/include/xdmad.h
+++ b/bsps/arm/atsam/include/libchip/include/xdmad.h
@@ -241,6 +241,10 @@ extern eXdmadRC XDMAD_StartTransfer(sXdmad *pXdmad, 
uint32_t dwChannel);
  
  extern void XDMAD_DoNothingCallback(uint32_t Channel, void *pArg, uint32_t status);
  
+extern bool XDMAD_UpdateStatusFromCallback(sXdmad *pXdmad,

+   uint32_t Channel,
+   uint32_t status);
+
  extern eXdmadRC XDMAD_SetCallback(sXdmad *pXdmad,
   uint32_t 
dwChannel,
   
XdmadTransferCallback fCallback,



--

embedded brains GmbH
Christian MAUDERER
Dornierstr. 4
82178 Puchheim
Germany
email: christian.maude...@embedded-brains.de
Phone: +49-89-18 94 741 - 18
Fax:   +49-89-18 94 741 - 08
PGP: Public key available on request.

embedded brains GmbH
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:

[PATCH] bsp/atsam: Fix XDMAD status

2020-11-09 Thread Christian Mauderer
In "bsp/atsam: Simplify XDMAD_Handler()" (5f813694f68cee) the interrupt
callback has been made unconditional. That allowed to avoid some special
deadlock situations in error cases. But it removed part of the XDMAD
status handling.

This patch adds the ability to update the XDMAD status from the
callback if that is necessary for the driver.

Fixes #4172
---
 .../contrib/libraries/libchip/source/xdmad.c  | 60 ++-
 .../arm/atsam/include/libchip/include/xdmad.h |  4 ++
 2 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/bsps/arm/atsam/contrib/libraries/libchip/source/xdmad.c 
b/bsps/arm/atsam/contrib/libraries/libchip/source/xdmad.c
index 13b227036e..161cf0bee4 100644
--- a/bsps/arm/atsam/contrib/libraries/libchip/source/xdmad.c
+++ b/bsps/arm/atsam/contrib/libraries/libchip/source/xdmad.c
@@ -132,9 +132,66 @@ static uint32_t XDMAD_AllocateXdmacChannel(sXdmad *pXdmad,
return XDMAD_ALLOC_FAILED;
 }
 
+/*
+ * Update the internal xdmad state. Returns true if further processing in the
+ * callback is recommended.
+ *
+ * In an earlier version of the API this has been done by the interrupt handler
+ * directly. But in some cases the application might want to process some of 
the
+ * other interrupts too. Therefore the user callback should now decide itself
+ * whether this is necessary or not.
+ */
+bool XDMAD_UpdateStatusFromCallback(sXdmad *pXdmad,
+   uint32_t Channel,
+   uint32_t status)
+{
+   Xdmac *pXdmac;
+   uint32_t xdmaGlobalChStatus;
+   bool bExec;
+
+   bExec = false;
+   pXdmac = pXdmad->pXdmacs;
+   xdmaGlobalChStatus = XDMAC_GetGlobalChStatus(pXdmac);
+
+   if ((xdmaGlobalChStatus & (XDMAC_GS_ST0 << Channel)) == 0) {
+   uint32_t xdmaChannelIntMask;
+   sXdmadChannel *pCh;
+
+   pCh = >XdmaChannels[Channel];
+
+   xdmaChannelIntMask = XDMAC_GetChannelItMask(pXdmac, Channel);
+   status &= xdmaChannelIntMask;
+
+   if (status & XDMAC_CIS_BIS) {
+   if ((xdmaChannelIntMask & XDMAC_CIM_LIM) == 0) {
+   pCh->state = XDMAD_STATE_DONE;
+   bExec = true;
+   }
+   }
+
+   if (status & XDMAC_CIS_LIS) {
+   pCh->state = XDMAD_STATE_DONE;
+   bExec = true;
+   }
+
+   if (status & XDMAC_CIS_DIS) {
+   pCh->state = XDMAD_STATE_DONE;
+   bExec = true;
+   }
+   } else {
+   /* Block end interrupt for LLI dma mode */
+   if (XDMAC_GetChannelIsr(pXdmac, Channel) & XDMAC_CIS_BIS) {
+   bExec = true;
+   }
+   }
+
+   return bExec;
+}
+
 void XDMAD_DoNothingCallback(uint32_t Channel, void *pArg, uint32_t status)
 {
-   /* Do nothing */
+   /* Do nothing except status update */
+   XDMAD_UpdateStatusFromCallback((sXdmad *)pArg, Channel, status);
 }
 
 /*
@@ -157,6 +214,7 @@ static void XDMAD_SysInitialize(void)
 
for (j = 0; j < pXdmad->numChannels; j ++) {
pXdmad->XdmaChannels[j].fCallback = XDMAD_DoNothingCallback;
+   pXdmad->XdmaChannels[j].pArg = (void *)pXdmad;
}
 
sc = rtems_interrupt_handler_install(
diff --git a/bsps/arm/atsam/include/libchip/include/xdmad.h 
b/bsps/arm/atsam/include/libchip/include/xdmad.h
index 97e24c880b..cba3d052ab 100644
--- a/bsps/arm/atsam/include/libchip/include/xdmad.h
+++ b/bsps/arm/atsam/include/libchip/include/xdmad.h
@@ -241,6 +241,10 @@ extern eXdmadRC XDMAD_StartTransfer(sXdmad *pXdmad, 
uint32_t dwChannel);
 
 extern void XDMAD_DoNothingCallback(uint32_t Channel, void *pArg, uint32_t 
status);
 
+extern bool XDMAD_UpdateStatusFromCallback(sXdmad *pXdmad,
+   uint32_t Channel,
+   uint32_t status);
+
 extern eXdmadRC XDMAD_SetCallback(sXdmad *pXdmad,
   uint32_t 
dwChannel,
   
XdmadTransferCallback fCallback,
-- 
2.26.2

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel