[Bug 766] __RTEMS_APPLICATION__

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Tue Aug 5 16:07:45 UTC 2008


http://www.rtems.org/bugzilla/show_bug.cgi?id=766


Joel Sherrill <joel.sherrill at oarcorp.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |WAITING
             Status|ASSIGNED                    |RESOLVED
           Platform|                            |All
         Resolution|                            |WONTFIX
   Target Milestone|---                         |4.9


I fail to see the usefulness of __RTEMS_APPLICATION__ as it is being used in
various places headers in RTEMS:
#ifndef __RTEMS_APPLICATION__
#include <some.inl>
#endif

Is this supposed to separate "private" vs. "public" parts of the headers? By
default __RTEMS_APPLICATION__ is undefined, so this doesn't work.

Is this supposed to separate "kernel" vs. "application"?
This also doesn't work, because all files referrenced are public.

Is this just code rott?

Yes, I know it is set in rtems/rtems.h:
#if (!defined(__RTEMS_VIOLATE_KERNEL_VISIBILITY__)) &&
(!defined(__RTEMS_INSIDE__))
#define __RTEMS_APPLICATION__
#endif

Release:
unknown


--- Comment #1 from Ralf Corsepius <ralf.corsepius at rtems.org>  2005-02-21 06:42:41 ---
Fix:
Depends on what __RTEMS_APPLICATION__ is meant to mean.

IMO, all these __RTEMS_INSIDE__, __RTEMS_APPLICATION__ and __RTEMS_VIOLATE_KERNEL_VISIBILITY__ are superflous and can be eliminated by moving the file being guarded by "__RTEMS_APPLICATION__" to a rtems/private directory and letting files wanting to include these private files directly.

--- Comment #2 from Joel Sherrill <joel.sherrill at oarcorp.com>  2005-09-01 09:50:24 ---
State-Changed-From-To: open->feedback
State-Changed-Why: The intention and apparently still the current behavior of
__RTEMS_APPLICATION__ is that the application code does not
see the inline files unless it specifically says it wants to
violate visisbility.

When implemented, this significantly sped up compile times
because it reduced the number of files opened and parsed in
a significant way.

I think it still works as intended.  If you include rtems.h,
you are not "inside RTEMS" and are treated as an application.  

Any new thoughts?


--- Comment #3 from Joel Sherrill <joel.sherrill at oarcorp.com>  2008-08-05 11:07:45 ---
This is ancient and no activity has occurred.  It prevents the user from
getting to private inlined routines and hides a large body of intensionally
private inlined routines.  If the .h files were reimplemented, we would
probably hide even more like the POSIX ones do.


-- 
Configure bugmail: http://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the bugs mailing list