| 1 | #define bittab __fsmu8 |
| 2 | |
| 3 | #include <stdint.h> |
| 4 | #include <features.h> |
| 5 | |
| 6 | extern hidden const uint32_t bittab[]; |
| 7 | |
| 8 | /* Upper 6 state bits are a negative integer offset to bound-check next byte */ |
| 9 | /* equivalent to: ( (b-0x80) | (b+offset) ) & ~0x3f */ |
| 10 | #define OOB(c,b) (((((b)>>3)-0x10)|(((b)>>3)+((int32_t)(c)>>26))) & ~7) |
| 11 | |
| 12 | /* Interval [a,b). Either a must be 80 or b must be c0, lower 3 bits clear. */ |
| 13 | #define R(a,b) ((uint32_t)((a==0x80 ? 0x40u-b : 0u-a) << 23)) |
| 14 | #define FAILSTATE R(0x80,0x80) |
| 15 | |
| 16 | #define SA 0xc2u |
| 17 | #define SB 0xf4u |
| 18 | |
| 19 | /* Arbitrary encoding for representing code units instead of characters. */ |
| 20 | #define CODEUNIT(c) (0xdfff & (signed char)(c)) |
| 21 | #define IS_CODEUNIT(c) ((unsigned)(c)-0xdf80 < 0x80) |
| 22 | |
| 23 | /* Get inline definition of MB_CUR_MAX. */ |
| 24 | #include "locale_impl.h" |