tesseract-doxygen/include/arrayaccess.h File Reference
Go to the source code of this file.
Defines |
#define | GET_DATA_BIT(pdata, n) ((*((l_uint32 *)(pdata) + ((n) >> 5)) >> (31 - ((n) & 31))) & 1) |
#define | SET_DATA_BIT(pdata, n) (*((l_uint32 *)(pdata) + ((n) >> 5)) |= (0x80000000 >> ((n) & 31))) |
#define | CLEAR_DATA_BIT(pdata, n) (*((l_uint32 *)(pdata) + ((n) >> 5)) &= ~(0x80000000 >> ((n) & 31))) |
#define | SET_DATA_BIT_VAL(pdata, n, val) |
#define | GET_DATA_DIBIT(pdata, n) ((*((l_uint32 *)(pdata) + ((n) >> 4)) >> (2 * (15 - ((n) & 15)))) & 3) |
#define | SET_DATA_DIBIT(pdata, n, val) |
#define | CLEAR_DATA_DIBIT(pdata, n) (*((l_uint32 *)(pdata) + ((n) >> 4)) &= ~(0xc0000000 >> (2 * ((n) & 15)))) |
#define | GET_DATA_QBIT(pdata, n) ((*((l_uint32 *)(pdata) + ((n) >> 3)) >> (4 * (7 - ((n) & 7)))) & 0xf) |
#define | SET_DATA_QBIT(pdata, n, val) |
#define | CLEAR_DATA_QBIT(pdata, n) (*((l_uint32 *)(pdata) + ((n) >> 3)) &= ~(0xf0000000 >> (4 * ((n) & 7)))) |
#define | GET_DATA_BYTE(pdata, n) (*(l_uint8 *)((l_uintptr_t)((l_uint8 *)(pdata) + (n)) ^ 3)) |
#define | SET_DATA_BYTE(pdata, n, val) (*(l_uint8 *)((l_uintptr_t)((l_uint8 *)(pdata) + (n)) ^ 3) = (val)) |
#define | GET_DATA_TWO_BYTES(pdata, n) (*(l_uint16 *)((l_uintptr_t)((l_uint16 *)(pdata) + (n)) ^ 2)) |
#define | SET_DATA_TWO_BYTES(pdata, n, val) (*(l_uint16 *)((l_uintptr_t)((l_uint16 *)(pdata) + (n)) ^ 2) = (val)) |
#define | GET_DATA_FOUR_BYTES(pdata, n) (*((l_uint32 *)(pdata) + (n))) |
#define | SET_DATA_FOUR_BYTES(pdata, n, val) (*((l_uint32 *)(pdata) + (n)) = (val)) |
Define Documentation
#define CLEAR_DATA_BIT |
( |
pdata, |
|
|
n |
|
) |
(*((l_uint32 *)(pdata) + ((n) >> 5)) &= ~(0x80000000 >> ((n) & 31))) |
#define CLEAR_DATA_DIBIT |
( |
pdata, |
|
|
n |
|
) |
(*((l_uint32 *)(pdata) + ((n) >> 4)) &= ~(0xc0000000 >> (2 * ((n) & 15)))) |
#define CLEAR_DATA_QBIT |
( |
pdata, |
|
|
n |
|
) |
(*((l_uint32 *)(pdata) + ((n) >> 3)) &= ~(0xf0000000 >> (4 * ((n) & 7)))) |
#define GET_DATA_BIT |
( |
pdata, |
|
|
n |
|
) |
((*((l_uint32 *)(pdata) + ((n) >> 5)) >> (31 - ((n) & 31))) & 1) |
#define GET_DATA_DIBIT |
( |
pdata, |
|
|
n |
|
) |
((*((l_uint32 *)(pdata) + ((n) >> 4)) >> (2 * (15 - ((n) & 15)))) & 3) |
#define GET_DATA_FOUR_BYTES |
( |
pdata, |
|
|
n |
|
) |
(*((l_uint32 *)(pdata) + (n))) |
#define GET_DATA_QBIT |
( |
pdata, |
|
|
n |
|
) |
((*((l_uint32 *)(pdata) + ((n) >> 3)) >> (4 * (7 - ((n) & 7)))) & 0xf) |
#define SET_DATA_BIT |
( |
pdata, |
|
|
n |
|
) |
(*((l_uint32 *)(pdata) + ((n) >> 5)) |= (0x80000000 >> ((n) & 31))) |
#define SET_DATA_BIT_VAL |
( |
pdata, |
|
|
n, |
|
|
val |
|
) |
|
Value:({l_uint32 *_TEMP_WORD_PTR_; \
_TEMP_WORD_PTR_ = (l_uint32 *)(pdata) + ((n) >> 5); \
*_TEMP_WORD_PTR_ &= ~(0x80000000 >> ((n) & 31)); \
*_TEMP_WORD_PTR_ |= ((val) << (31 - ((n) & 31))); \
})
#define SET_DATA_DIBIT |
( |
pdata, |
|
|
n, |
|
|
val |
|
) |
|
Value:({l_uint32 *_TEMP_WORD_PTR_; \
_TEMP_WORD_PTR_ = (l_uint32 *)(pdata) + ((n) >> 4); \
*_TEMP_WORD_PTR_ &= ~(0xc0000000 >> (2 * ((n) & 15))); \
*_TEMP_WORD_PTR_ |= ((val) << (30 - 2 * ((n) & 15))); \
})
#define SET_DATA_FOUR_BYTES |
( |
pdata, |
|
|
n, |
|
|
val |
|
) |
(*((l_uint32 *)(pdata) + (n)) = (val)) |
#define SET_DATA_QBIT |
( |
pdata, |
|
|
n, |
|
|
val |
|
) |
|
Value:({l_uint32 *_TEMP_WORD_PTR_; \
_TEMP_WORD_PTR_ = (l_uint32 *)(pdata) + ((n) >> 3); \
*_TEMP_WORD_PTR_ &= ~(0xf0000000 >> (4 * ((n) & 7))); \
*_TEMP_WORD_PTR_ |= ((val) << (28 - 4 * ((n) & 7))); \
})