Missing datatypes in lib/include/machine/types.h ?
Ralf Corsepius
corsepiu at faw.uni-ulm.de
Sat Dec 1 01:05:02 UTC 2001
Am Sam, 2001-12-01 um 00.02 schrieb Charlie &:
>
> Hi,
> I am porting some UNIX C code to work under RTEMS. The software is
> expecting the following typedefs in lib/include/machine/types.h:
>
> typedef unsigned char uint8_t;
> typedef unsigned short uint16_t;
> typedef unsigned int uint32_t;
> typedef unsigned long long uint64_t;
>
> I see that the OpenBSD version of this file does define these values
> but the RTEMS version only has the u_intXX_t versions. Should
> the RTEMS version be updated into include the above typedefs or
> are these not standard datatypes?
AFAIK, these are ISOC99 types and are supposed to be defined in stdint.h
and to be included into sources via stdint.h or inttypes.h (normally
implictly includes stdint.h).
Apparently, newlib is not ISOC99-ready. As a work-around, we could
either provide a stdint.h with RTEMS or try to get it properly
introduced into newlib.
Anyway, if the code your are trying to compile is expecting these typesm
in machine/types.h, it is bugged (machine/*.h should not be accessed
directly and is not standardized at all) or probably relies on a
BSD-proprietary feature.
Ralf
More information about the users
mailing list