Go to the documentation of this file.
12#ifndef NASL_BYTEORDER_H
13#define NASL_BYTEORDER_H
87#undef CAREFUL_ALIGNMENT
92#define CAREFUL_ALIGNMENT 0
95#ifndef CAREFUL_ALIGNMENT
96#define CAREFUL_ALIGNMENT 1
99#define CVAL(buf, pos) ((unsigned) (((const unsigned char *) (buf))[pos]))
100#define CVAL_NC(buf, pos) \
101 (((unsigned char *) (buf))[pos])
102#define PVAL(buf, pos) (CVAL (buf, pos))
103#define SCVAL(buf, pos, val) (CVAL_NC (buf, pos) = (val))
107#define SVAL(buf, pos) (PVAL (buf, pos) | PVAL (buf, (pos) + 1) << 8)
108#define IVAL(buf, pos) (SVAL (buf, pos) | SVAL (buf, (pos) + 2) << 16)
109#define SSVALX(buf, pos, val) \
110 (CVAL_NC (buf, pos) = (unsigned char) ((val) & 0xFF), \
111 CVAL_NC (buf, pos + 1) = (unsigned char) ((val) >> 8))
112#define SIVALX(buf, pos, val) \
113 (SSVALX (buf, pos, val & 0xFFFF), SSVALX (buf, pos + 2, val >> 16))
114#define SVALS(buf, pos) ((int16) SVAL (buf, pos))
115#define IVALS(buf, pos) ((int32) IVAL (buf, pos))
116#define SSVAL(buf, pos, val) SSVALX ((buf), (pos), ((uint16) (val)))
117#define SIVAL(buf, pos, val) SIVALX ((buf), (pos), ((uint32) (val)))
118#define SSVALS(buf, pos, val) SSVALX ((buf), (pos), ((int16) (val)))
119#define SIVALS(buf, pos, val) SIVALX ((buf), (pos), ((int32) (val)))
131#define SVAL(buf, pos) (*(const uint16 *) ((const char *) (buf) + (pos)))
132#define SVAL_NC(buf, pos) \
133 (*(uint16 *) ((char *) (buf) + (pos)))
134#define IVAL(buf, pos) (*(const uint32 *) ((const char *) (buf) + (pos)))
135#define IVAL_NC(buf, pos) \
136 (*(uint32 *) ((char *) (buf) + (pos)))
137#define SVALS(buf, pos) (*(const int16 *) ((const char *) (buf) + (pos)))
138#define SVALS_NC(buf, pos) \
139 (*(int16 *) ((char *) (buf) + (pos)))
140#define IVALS(buf, pos) (*(const int32 *) ((const char *) (buf) + (pos)))
141#define IVALS_NC(buf, pos) \
142 (*(int32 *) ((char *) (buf) + (pos)))
145#define SSVAL(buf, pos, val) SVAL_NC (buf, pos) = ((uint16) (val))
146#define SIVAL(buf, pos, val) IVAL_NC (buf, pos) = ((uint32) (val))
147#define SSVALS(buf, pos, val) SVALS_NC (buf, pos) = ((int16) (val))
148#define SIVALS(buf, pos, val) IVALS_NC (buf, pos) = ((int32) (val))
153#define SREV(x) ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))
154#define IREV(x) ((SREV (x) << 16) | (SREV ((x) >> 16)))
156#define RSVAL(buf, pos) SREV (SVAL (buf, pos))
157#define RSVALS(buf, pos) SREV (SVALS (buf, pos))
158#define RIVAL(buf, pos) IREV (IVAL (buf, pos))
159#define RIVALS(buf, pos) IREV (IVALS (buf, pos))
160#define RSSVAL(buf, pos, val) SSVAL (buf, pos, SREV (val))
161#define RSSVALS(buf, pos, val) SSVALS (buf, pos, SREV (val))
162#define RSIVAL(buf, pos, val) SIVAL (buf, pos, IREV (val))
163#define RSIVALS(buf, pos, val) SIVALS (buf, pos, IREV (val))
166#define ALIGN4(p, base) ((p) + ((4 - (PTR_DIFF ((p), (base)) & 3)) & 3))
167#define ALIGN2(p, base) ((p) + ((2 - (PTR_DIFF ((p), (base)) & 1)) & 1))