[GSOC] : Reducing Publicly Installed .h Files

Rempel, Cynthia cynt6007 at vandals.uidaho.edu
Sun Apr 14 21:37:17 UTC 2013


>________________________________________
>From: Joel Sherrill [joel.sherrill at oarcorp.com]
>Sent: Sunday, April 14, 2013 1:34 PM
>To: Rempel, Cynthia
>Cc: Vipul Nayyar; rtems-devel at rtems.org
>Subject: [GSOC] : Reducing Publicly Installed .h Files
>
>Hi
>
>I had an insight which makes it easy to answer the question
>"What BSP specific .h files do the testsuites depend upon?"
Thanks for figuring out what question to ask, and coming up with a reasoned answer!
>
>We typically think of BSPs for real hardware with levels of
>complexity. It is easy to forget that RTEMS has a number of
>very simple BSPs for the simulators built into gdb.
>
>Looking at gdbv850sim, m32rsim, m32csim, and h8sim, I can
>pretty confidently state that this is the MINIMUM set of .h files
>a BSP must install:
>
>$(PROJECT_INCLUDE)/bsp.h
>$(PROJECT_INCLUDE)/tm27.h
>$(PROJECT_INCLUDE)/bspopts.h
>$(PROJECT_INCLUDE)/bsp/bootcard.h
>$(PROJECT_INCLUDE)/coverhd.h
>
>And here are some notes on these:
>
>$(PROJECT_INCLUDE)/bsp.h - Universally needed per current rules
>$(PROJECT_INCLUDE)/tm27.h - Only used by tmtests/tm27
>$(PROJECT_INCLUDE)/bspopts.h - Universally needed per current rules
>$(PROJECT_INCLUDE)/bsp/bootcard.h - Needed for fatal error information
>    Rework possible since it has mix of what I would think is internal to the
>    BSP and what would be part of its public interface.
>$(PROJECT_INCLUDE)/coverhd.h - Used by tmtests.
>     We could discuss obsoleting this. I bet most recent BSPs use the
>version
>     which default all values to 0.
If coverhd.h, and tm27.h are just for supporting tmtests we should deprecate them, and obsolete them once we integrate one of the unit testing frameworks into the testsuite.

The merge procedure could start with the easiest to merge of bsp.h, bspopts.h, and bsp/bootcard.h and slowly work towards the harder to merge bsp files.

>Anything beyond that needs to be questioned using this as a starting point
>for things which can be public:
>
>+ Is it in support of an optional (but standard) API?
>    - PCI
>    - PIC IRQ
>    - ... more TBD but a known list ...
If the header is part of an optional (but standard) API that we are supporting, and not in the testsuite, tests should be added for them in the testsuite, so we can check the libraries. (This should most likely be added to the "wishlist" and not included in the header cleanup GSoC project.) We could also add to the "wishlist" (not the header cleanup GSoC project) patching the "sid" sourceware, qemu, and skyeye projects respectively to support testing these optional (but standard) API on simulated hardware, so we can run regression tests on at least simulated hardware.

>+ ... more questions TBD ...
>
>If the answer isn't yes based on that growing list of questions, then we
>should
>push to make it private.
>
>Every publicly installed .h file should be there for a known reason. :)
I agree.
>
>--
>Joel Sherrill, Ph.D.             Director of Research & Development
>joel.sherrill at OARcorp.com        On-Line Applications Research
>Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>Support Available                (256) 722-9985







More information about the devel mailing list