On 18/05/2021 00:12, Joel Sherrill wrote:
Hi

In working on the Microblaze port, it occurred to me that the prototypes for the context switch methods are always the same. The structures vary, not the signatures. What do you all think of making a separate header that can be included from various cpu.h files to avoid repeating them?

Maybe we should add a <rtems/score/cpucontext.h> which just defines the structures and corresponding defines, for example:

#define CPU_HARDWARE_FP                  TRUE
#define CPU_SOFTWARE_FP                  FALSE

We could add the prototypes to <rtems/score/context.h> and remove the _Context namespace.


Similarly, swap u32 and u16 are often the duplicated generic ones. A single header with those which ports can include if they use the generic implementation would also reduce some bulk.

Yes, this makes sense.


My rough calculation is that a shared header for CPU Context method prototypes saves about 75 lines every time it is included which should eliminate somewhere between 1300 and 1500 lines in the ports.

An alternative, slightly more aggressive,  approach be to prototype all the port required methods in one file and then let every port include that. It would eliminate even more. This would pick up _CPU_Initialize and a few others like _CPU_Thread_Idle. Just by honoring some of the existing conditionals.

Thoughts?

We could also add a <rtems/score/cpuisrlevel.h> for the interrupt enable/disable related support.

--
embedded brains GmbH
Herr 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

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

Reply via email to