Go to the documentation of this file.
100#undef CAREFUL_ALIGNMENT
105#define CAREFUL_ALIGNMENT 0
108#ifndef CAREFUL_ALIGNMENT
109#define CAREFUL_ALIGNMENT 1
112#define CVAL(buf, pos) ((unsigned) (((const unsigned char *) (buf))[pos]))
113#define CVAL_NC(buf, pos) \
114 (((unsigned char *) (buf))[pos])
115#define PVAL(buf, pos) (CVAL (buf, pos))
116#define SCVAL(buf, pos, val) (CVAL_NC (buf, pos) = (val))
120#define SVAL(buf, pos) (PVAL (buf, pos) | PVAL (buf, (pos) + 1) << 8)
121#define IVAL(buf, pos) (SVAL (buf, pos) | SVAL (buf, (pos) + 2) << 16)
122#define SSVALX(buf, pos, val) \
123 (CVAL_NC (buf, pos) = (unsigned char) ((val) &0xFF), \
124 CVAL_NC (buf, pos + 1) = (unsigned char) ((val) >> 8))
125#define SIVALX(buf, pos, val) \
126 (SSVALX (buf, pos, val & 0xFFFF), SSVALX (buf, pos + 2, val >> 16))
127#define SVALS(buf, pos) ((int16) SVAL (buf, pos))
128#define IVALS(buf, pos) ((int32) IVAL (buf, pos))
129#define SSVAL(buf, pos, val) SSVALX ((buf), (pos), ((uint16) (val)))
130#define SIVAL(buf, pos, val) SIVALX ((buf), (pos), ((uint32) (val)))
131#define SSVALS(buf, pos, val) SSVALX ((buf), (pos), ((int16) (val)))
132#define SIVALS(buf, pos, val) SIVALX ((buf), (pos), ((int32) (val)))
144#define SVAL(buf, pos) (*(const uint16 *) ((const char *) (buf) + (pos)))
145#define SVAL_NC(buf, pos) \
146 (*(uint16 *) ((char *) (buf) + (pos)))
147#define IVAL(buf, pos) (*(const uint32 *) ((const char *) (buf) + (pos)))
148#define IVAL_NC(buf, pos) \
149 (*(uint32 *) ((char *) (buf) + (pos)))
150#define SVALS(buf, pos) (*(const int16 *) ((const char *) (buf) + (pos)))
151#define SVALS_NC(buf, pos) \
152 (*(int16 *) ((char *) (buf) + (pos)))
153#define IVALS(buf, pos) (*(const int32 *) ((const char *) (buf) + (pos)))
154#define IVALS_NC(buf, pos) \
155 (*(int32 *) ((char *) (buf) + (pos)))
158#define SSVAL(buf, pos, val) SVAL_NC (buf, pos) = ((uint16) (val))
159#define SIVAL(buf, pos, val) IVAL_NC (buf, pos) = ((uint32) (val))
160#define SSVALS(buf, pos, val) SVALS_NC (buf, pos) = ((int16) (val))
161#define SIVALS(buf, pos, val) IVALS_NC (buf, pos) = ((int32) (val))
166#define SREV(x) ((((x) &0xFF) << 8) | (((x) >> 8) & 0xFF))
167#define IREV(x) ((SREV (x) << 16) | (SREV ((x) >> 16)))
169#define RSVAL(buf, pos) SREV (SVAL (buf, pos))
170#define RSVALS(buf, pos) SREV (SVALS (buf, pos))
171#define RIVAL(buf, pos) IREV (IVAL (buf, pos))
172#define RIVALS(buf, pos) IREV (IVALS (buf, pos))
173#define RSSVAL(buf, pos, val) SSVAL (buf, pos, SREV (val))
174#define RSSVALS(buf, pos, val) SSVALS (buf, pos, SREV (val))
175#define RSIVAL(buf, pos, val) SIVAL (buf, pos, IREV (val))
176#define RSIVALS(buf, pos, val) SIVALS (buf, pos, IREV (val))
179#define ALIGN4(p, base) ((p) + ((4 - (PTR_DIFF ((p), (base)) & 3)) & 3))
180#define ALIGN2(p, base) ((p) + ((2 - (PTR_DIFF ((p), (base)) & 1)) & 1))