about header files used in score

Joel Sherrill joel.sherrill at OARcorp.com
Sat Jun 13 22:39:05 UTC 2009


Zhongjie wrote:
> Hi,
> I don't know whether am I wrong, but I don't think it is right to uesd 
> header files like stdlib.h sys/types.h in the score?
> logically, we should not use any c library in the score and bsp.
> could any one tell me why?
>
The compiler defines the fundamental C99 types.  Most of these appear to be
are getting standard C99 types.  The obvious exceptions I see are

+ super core time is now available as struct timespec so
   there are includes for that.
+ score/cpu/unix which is a port to a "synthetic" unix target
   so is allowed to include anything.
+Nothing in this set should include stdio.h.  I removed those.
   Thanks for this one.
+ region.h was including stddef.h which was already included
   by system.h so I removed that one.

But stdint.h, stdbool.h, sys/types.h are ok.    I wouldn't be surprised
if they are not needed in .c files because they are already included in
.h files though.

If you have specific cases and a patch for unnecessary includes,
we are happy to merge them. 

I am guessing that <stdio.h> anywhere is a hint that someone
had a debug printf and it can likely be removed or the printf
converted to a printk.  But each case would have to be examined.

> here is a list of some of those files, there are more in bsp code.
> rtems/src/ratemonreportstatistics.c:#include <stdlib.h>
> rtems/src/rtemsobjectgetclassinfo.c:#include <stdio.h>
> rtems/include/rtems/rtems/types.h:#include <stdint.h>
> rtems/include/rtems/rtems/object.h:#include <stdint.h>
> rtems/include/rtems/rtems/region.h:#include <stddef.h>
> score/cpu/sh/rtems/score/types.h:#include <stdbool.h>
> score/cpu/sh/rtems/score/types.h:#include <stdint.h>
> score/cpu/c4x/rtems/score/types.h:#include <stdbool.h>
> score/cpu/c4x/rtems/score/types.h:#include <stdint.h>
> score/cpu/arm/rtems/score/types.h:#include <stdbool.h>
> score/cpu/arm/rtems/score/types.h:#include <stdint.h>
> score/cpu/avr/rtems/score/types.h:#include <stdbool.h>
> score/cpu/avr/rtems/score/types.h:#include <stdint.h>
> score/cpu/bfin/rtems/score/types.h:#include <stdbool.h>
> score/cpu/bfin/rtems/score/types.h:#include <stdint.h>
> score/cpu/i386/rtems/score/types.h:#include <stdbool.h>
> score/cpu/i386/rtems/score/types.h:#include <stdint.h>
> score/cpu/m32c/rtems/score/types.h:#include <stdbool.h>
> score/cpu/m32c/rtems/score/types.h:#include <stdint.h>
> score/cpu/m32c/context_init.c:#include <stdint.h>
> score/cpu/m32r/rtems/score/types.h:#include <stdbool.h>
> score/cpu/m32r/rtems/score/types.h:#include <stdint.h>
> score/cpu/m32r/context_init.c:#include <stdint.h>
> score/cpu/m68k/rtems/score/types.h:#include <stdbool.h>
> score/cpu/m68k/rtems/score/types.h:#include <stdint.h>
> score/cpu/lm32/rtems/score/types.h:#include <stdbool.h>
> score/cpu/lm32/rtems/score/types.h:#include <stdint.h>
> score/cpu/mips/rtems/score/types.h:#include <stdbool.h>
> score/cpu/mips/rtems/score/types.h:#include <stdint.h>
> score/cpu/unix/cpu.c:#include <stdio.h>
> score/cpu/unix/cpu.c:#include <stdlib.h>
> score/cpu/unix/cpu.c:#include <unistd.h>
> score/cpu/unix/cpu.c:   * Avoid using the stdio section of the library.
> score/cpu/unix/cpu.c:         *  We avoid using the stdio section of 
> the library.
> score/cpu/unix/rtems/score/types.h:#include <stdbool.h>
> score/cpu/unix/rtems/score/types.h:#include <stdint.h>
> score/cpu/h8300/rtems/score/types.h:#include <stdbool.h>
> score/cpu/h8300/rtems/score/types.h:#include <stdint.h>
> score/cpu/nios2/rtems/score/types.h:#include <stdbool.h>
> score/cpu/nios2/rtems/score/types.h:#include <stdint.h>
> score/cpu/sparc/rtems/score/types.h:#include <stdbool.h>
> score/cpu/sparc/rtems/score/types.h:#include <stdint.h>
> score/cpu/no_cpu/rtems/score/types.h:#include <stdbool.h>
> score/cpu/no_cpu/rtems/score/types.h:#include <stdint.h>
> score/cpu/powerpc/rtems/score/types.h:#include <stdbool.h>
> score/cpu/powerpc/rtems/score/types.h:#include <stdint.h>
> score/cpu/powerpc/rtems/powerpc/registers.h:#include <stdint.h>
> score/src/objectgetnameasstring.c:#include <stdlib.h>
> score/src/objectgetnameasstring.c:#include <stdio.h>
> score/src/timespecdivide.c:#include <stdio.h>
> score/src/objectsetname.c:#include <stdlib.h>
> score/src/objectsetname.c:#include <stdio.h>
> score/src/heapwalk.c:#include <stdlib.h> /* abort */
> score/src/heapwalk.c:#include <stdio.h>
> score/src/ts64divide.c:#include <stdio.h>
> score/include/rtems/score/timespec.h:#include <stdint.h> /* uint32_t */
> score/include/rtems/system.h:#include <stddef.h>
> score/include/rtems/system.h:#include <stdint.h>
> sapi/src/posixapi.c:#include <sys/types.h>
> sapi/src/itronapi.c:#include <sys/types.h>
> sapi/include/confdefs.h:  #include <sys/types.h>
> score/cpu/unix/cpu.c:#include <sys/types.h>
> score/src/ts64lessthan.c:#include <sys/types.h>
> score/src/timespectoticks.c:#include <sys/types.h>
> score/src/timespecdivide.c:#include <sys/types.h>
> score/src/timespecdividebyinteger.c:#include <sys/types.h>
> score/src/ts64getseconds.c:#include <sys/types.h>
> score/src/ts64getnanoseconds.c:#include <sys/types.h>
> score/src/timespecgreaterthan.c:#include <sys/types.h>
> score/src/timespecisvalid.c:#include <sys/types.h>
> score/src/ts64equalto.c:#include <sys/types.h>
> score/src/timespecsubtract.c:#include <sys/types.h>
> score/src/ts64addto.c:#include <sys/types.h>
> score/src/ts64set.c:#include <sys/types.h>
> score/src/timespeclessthan.c:#include <sys/types.h>
> score/src/timespecaddto.c:#include <sys/types.h>
> score/src/ts64toticks.c:#include <sys/types.h>
> score/src/ts64dividebyinteger.c:#include <sys/types.h>
> score/src/ts64subtract.c:#include <sys/types.h>
> score/src/ts64totimespec.c:#include <sys/types.h>
> score/src/ts64divide.c:#include <sys/types.h>
> score/src/ts64greaterthan.c:#include <sys/types.h>
> score/src/ts64settozero.c:#include <sys/types.h>
>
> BR.
> Zhongjie




More information about the users mailing list