X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fhelper%2Ftypes.h;h=79eac13ae7df8796a436086ade7ffcccb0037a7a;hp=21a6a33763282a428c529d4d6daccd32b05bb76f;hb=f2cbaba3cc4af99db7b4f2682c2e0dd4467655e3;hpb=0ed5f5afd95746db72c071a5373981d79cd49c11 diff --git a/src/helper/types.h b/src/helper/types.h index 21a6a33763..79eac13ae7 100644 --- a/src/helper/types.h +++ b/src/helper/types.h @@ -33,8 +33,6 @@ #include #endif -typedef struct jtag_tap_s jtag_tap_t; - #ifdef HAVE_STDBOOL_H #include #else /* HAVE_STDBOOL_H */ @@ -56,6 +54,10 @@ typedef bool _Bool; #endif /* HAVE_STDBOOL_H */ +/// turns a macro argument into a string constant +#define stringify(s) __stringify(s) +#define __stringify(s) #s + /* DANGER!!!! here be dragons! * * Leave these fn's as byte accesses because it is safe @@ -123,13 +125,14 @@ static inline void h_u16_to_be(uint8_t* buf, int val) buf[1] = (uint8_t) (val >> 0); } -#ifdef __ECOS +#if defined(__ECOS) + /* eCos plain lacks these definition... A series of upstream patches * could probably repair it, but it seems like too much work to be * worth it. */ - +#if !defined(_STDINT_H) #define PRIx32 "x" #define PRId32 "d" #define SCNx32 "x" @@ -151,7 +154,16 @@ typedef uint64_t uintmax_t; #define INT64_MAX 0x7fffffffffffffffLL #define INT64_MIN (-INT64_MAX - 1LL) #define UINT64_MAX (__CONCAT(INT64_MAX, U) * 2ULL + 1ULL) +#endif + + #ifndef LLONG_MAX + #define ULLONG_MAX UINT64_C(0xFFFFFFFFFFFFFFFF) + #define LLONG_MAX INT64_C(0x7FFFFFFFFFFFFFFF) + #define LLONG_MIN ULLONG_MAX + #endif + +#define ULLONG_MAX 18446744073709551615 /* C99, eCos is C90 compliant (with bits of C99) */ #define isblank(c) ((c) == ' ' || (c) == '\t')