Extend _intsup.h to support 16-bit and 20-bit pointers.
* libc/include/sys/_intsup.h: Add support for 16-bit and 20-bit pointers.
This commit is contained in:
parent
f86afe5a3a
commit
c3b6da1781
|
@ -1,3 +1,8 @@
|
||||||
|
2015-10-19 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
* libc/include/sys/_intsup.h: Add support for 16-bit and 20-bit
|
||||||
|
pointers.
|
||||||
|
|
||||||
2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||||
|
|
||||||
* libc/stdlib/Makefile.am (GENERAL_SOURCES): Add alloc_aligned.c.c.
|
* libc/stdlib/Makefile.am (GENERAL_SOURCES): Add alloc_aligned.c.c.
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
#pragma push_macro("unsigned")
|
#pragma push_macro("unsigned")
|
||||||
#pragma push_macro("char")
|
#pragma push_macro("char")
|
||||||
#pragma push_macro("short")
|
#pragma push_macro("short")
|
||||||
|
#pragma push_macro("__int20")
|
||||||
#pragma push_macro("int")
|
#pragma push_macro("int")
|
||||||
#pragma push_macro("long")
|
#pragma push_macro("long")
|
||||||
#undef signed
|
#undef signed
|
||||||
|
@ -57,19 +58,26 @@
|
||||||
#undef char
|
#undef char
|
||||||
#undef short
|
#undef short
|
||||||
#undef int
|
#undef int
|
||||||
|
#undef __int20
|
||||||
#undef long
|
#undef long
|
||||||
#define signed +0
|
#define signed +0
|
||||||
#define unsigned +0
|
#define unsigned +0
|
||||||
#define char +0
|
#define char +0
|
||||||
#define short +1
|
#define short +1
|
||||||
|
#define __int20 +2
|
||||||
#define int +2
|
#define int +2
|
||||||
#define long +4
|
#define long +4
|
||||||
#if (__INTPTR_TYPE__ == 8 || __INTPTR_TYPE__ == 10)
|
#if (__INTPTR_TYPE__ == 8 || __INTPTR_TYPE__ == 10)
|
||||||
#define _INTPTR_EQ_LONGLONG
|
#define _INTPTR_EQ_LONGLONG
|
||||||
#elif (__INTPTR_TYPE__ == 4 || __INTPTR_TYPE__ == 6)
|
#elif (__INTPTR_TYPE__ == 4 || __INTPTR_TYPE__ == 6)
|
||||||
#define _INTPTR_EQ_LONG
|
#define _INTPTR_EQ_LONG
|
||||||
|
/* Note - the tests for _INTPTR_EQ_INT and _INTPTR_EQ_SHORT are currently
|
||||||
|
redundant as the values are not used. But one day they may be needed
|
||||||
|
and so the tests remain. */
|
||||||
#elif __INTPTR_TYPE__ == 2
|
#elif __INTPTR_TYPE__ == 2
|
||||||
/* Nothing to define because intptr_t is safe to print as an int. */
|
#define _INTPTR_EQ_INT
|
||||||
|
#elif (__INTPTR_TYPE__ == 1 || __INTPTR_TYPE__ == 3)
|
||||||
|
#define _INTPTR_EQ_SHORT
|
||||||
#else
|
#else
|
||||||
#error "Unable to determine type definition of intptr_t"
|
#error "Unable to determine type definition of intptr_t"
|
||||||
#endif
|
#endif
|
||||||
|
@ -194,6 +202,7 @@
|
||||||
#pragma pop_macro("unsigned")
|
#pragma pop_macro("unsigned")
|
||||||
#pragma pop_macro("char")
|
#pragma pop_macro("char")
|
||||||
#pragma pop_macro("short")
|
#pragma pop_macro("short")
|
||||||
|
#pragma pop_macro("__int20")
|
||||||
#pragma pop_macro("int")
|
#pragma pop_macro("int")
|
||||||
#pragma pop_macro("long")
|
#pragma pop_macro("long")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue