diff options
Diffstat (limited to 'common/parse.h')
| -rw-r--r-- | common/parse.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/common/parse.h b/common/parse.h index f92e76de..69a57ff8 100644 --- a/common/parse.h +++ b/common/parse.h @@ -56,6 +56,9 @@ struct stream #define s_check_rem(s, n) ((s)->p + (n) <= (s)->end) /******************************************************************************/ +#define s_check_rem_out(s, n) ((s)->p + (n) <= (s)->data + (s)->size) + +/******************************************************************************/ #define s_check_end(s) ((s)->p == (s)->end) /******************************************************************************/ @@ -279,6 +282,35 @@ struct stream #endif /******************************************************************************/ +#if defined(B_ENDIAN) || defined(NEED_ALIGN) +#define out_uint64_le(s, v) do \ +{ \ + *((s)->p) = (unsigned char)((v) >> 0); \ + (s)->p++; \ + *((s)->p) = (unsigned char)((v) >> 8); \ + (s)->p++; \ + *((s)->p) = (unsigned char)((v) >> 16); \ + (s)->p++; \ + *((s)->p) = (unsigned char)((v) >> 24); \ + (s)->p++; \ + *((s)->p) = (unsigned char)((v) >> 32); \ + (s)->p++; \ + *((s)->p) = (unsigned char)((v) >> 40); \ + (s)->p++; \ + *((s)->p) = (unsigned char)((v) >> 48); \ + (s)->p++; \ + *((s)->p) = (unsigned char)((v) >> 56); \ + (s)->p++; \ +} while (0) +#else +#define out_uint64_le(s, v) do \ +{ \ + *((tui64*)((s)->p)) = (v); \ + (s)->p += 8; \ +} while (0) +#endif + +/******************************************************************************/ #define out_uint32_be(s, v) do \ { \ *((s)->p) = (unsigned char)((v) >> 24); \ |
