New source layout.
Amar Takhar
amar at rtems.org
Sat Mar 7 20:53:49 UTC 2015
On 2015-03-07 09:44 +0100, Dominik Taborsky wrote:
> I am a newbie to RTEMS, but this sounds great. The current layout is
> very confusing to newcomers. Kudos to you, Amar!
> Please, see my notes further on.
Great to hear input from new users, thank you!
> > include locations
> > ~~~~~~~~~~~~~~~~~
> > include/rtems/include/ - Private API
> > include/rtems/include/rtems/ - Public API
> > include/rtems/bsp/include/ - Common BSP files
> > include/rtems/bsp/include/<arch> - Architecture specific
>
> Just one question here: Why have the public API hidden in a subdir of
> private APIs? Shouldn't this be the other way around?
This has to do with how we have the includes in source. For instance all source
will be moved to a full-path style include. eg:
#include <rtems/public.h>
#include <rtems/bsp/public.h>
For private it would simply be:
#include <private.h>
#include <sys/private.h>
Private APIs can include public but not the other way around. Using this method
keeps the build easy as all we need is -Iinclude and nothing more to have
everything work. When installed only the include/rtems dir is copied.
> > rtems/classic [cpukit/rtems]
>
> Again, I'm a newbie, but what is 'classic' in RTEMS?
> The old 'cpukit' sounds like it's a bunch of tools to work with the CPU.
> The new 'classic' sounds like it's the good old RTEMS from history.
Yes that is exactly what it is.
> > - All RTEMS source will use #include <rtems/header.h> for public API
>
> You actually mean "<rtems/header.h>" and not "<rtems/rtems.h>" or even
> just "<rtems.h>"? When you say "RTEMS source" and "public API", do you
> mean the RTEMS source code or 3rd party source that builds with RTEMS?
Only private APIs will lack the 'rtems/' prefix. Both the RTEMS source, BSP or
any 3rd part software can use it. BSPs will only have headers in the public
space eg <rtems/...>
Amar.
More information about the devel
mailing list