30 # error "this is an internal include file" 40 # define V static inline 41 # define S static int __acc_cdecl_qsort 43 #elif defined(BELE_RTP) 46 # define S virtual int 56 inline AbstractPolicy() { }
57 virtual inline ~AbstractPolicy() { }
61 V
unsigned get16(const
void *p) C = 0;
62 V
unsigned get24(const
void *p) C = 0;
63 V
unsigned get32(const
void *p) C = 0;
64 V upx_uint64_t get64(const
void *p) C = 0;
66 V
void set16(
void *p,
unsigned v) C = 0;
67 V
void set24(
void *p,
unsigned v) C = 0;
68 V
void set32(
void *p,
unsigned v) C = 0;
69 V
void set64(
void *p, upx_uint64_t v) C = 0;
71 V
unsigned get16_signed(const
void *p) C = 0;
72 V
unsigned get24_signed(const
void *p) C = 0;
73 V
unsigned get32_signed(const
void *p) C = 0;
74 V upx_uint64_t get64_signed(const
void *p) C = 0;
76 S u16_compare(const
void *a, const
void *b) C = 0;
77 S u24_compare(const
void *a, const
void *b) C = 0;
78 S u32_compare(const
void *a, const
void *b) C = 0;
79 S u64_compare(const
void *a, const
void *b) C = 0;
81 S u16_compare_signed(const
void *a, const
void *b) C = 0;
82 S u24_compare_signed(const
void *a, const
void *b) C = 0;
83 S u32_compare_signed(const
void *a, const
void *b) C = 0;
84 S u64_compare_signed(const
void *a, const
void *b) C = 0;
94 :
public AbstractPolicy
100 #elif defined(BELE_RTP) 103 V
bool isBE() C {
return true; }
104 V
bool isLE() C {
return false; }
110 V
unsigned get16(
const void *p) C
111 {
return get_be16(p); }
112 V
unsigned get24(
const void *p) C
113 {
return get_be24(p); }
114 V
unsigned get32(
const void *p) C
115 {
return get_be32(p); }
116 V upx_uint64_t get64(
const void *p) C
117 {
return get_be64(p); }
119 V
void set16(
void *p,
unsigned v) C
121 V
void set24(
void *p,
unsigned v) C
123 V
void set32(
void *p,
unsigned v) C
125 V
void set64(
void *p, upx_uint64_t v) C
128 V
unsigned get16_signed(
const void *p) C
129 {
return get_be16_signed(p); }
130 V
unsigned get24_signed(
const void *p) C
131 {
return get_be24_signed(p); }
132 V
unsigned get32_signed(
const void *p) C
133 {
return get_be32_signed(p); }
134 V upx_uint64_t get64_signed(
const void *p) C
135 {
return get_be64_signed(p); }
137 S u16_compare(
const void *a,
const void *b) C
138 {
return be16_compare(a, b); }
139 S u24_compare(
const void *a,
const void *b) C
140 {
return be24_compare(a, b); }
141 S u32_compare(
const void *a,
const void *b) C
142 {
return be32_compare(a, b); }
143 S u64_compare(
const void *a,
const void *b) C
144 {
return be64_compare(a, b); }
146 S u16_compare_signed(
const void *a,
const void *b) C
147 {
return be16_compare_signed(a, b); }
148 S u24_compare_signed(
const void *a,
const void *b) C
149 {
return be24_compare_signed(a, b); }
150 S u32_compare_signed(
const void *a,
const void *b) C
151 {
return be32_compare_signed(a, b); }
152 S u64_compare_signed(
const void *a,
const void *b) C
153 {
return be64_compare_signed(a, b); }
155 static void compileTimeAssertions() {
156 COMPILE_TIME_ASSERT(
sizeof(U16) == 2)
157 COMPILE_TIME_ASSERT(
sizeof(U32) == 4)
158 COMPILE_TIME_ASSERT(
sizeof(U64) == 8)
159 COMPILE_TIME_ASSERT_ALIGNED1(U16)
160 COMPILE_TIME_ASSERT_ALIGNED1(U32)
161 COMPILE_TIME_ASSERT_ALIGNED1(U64)
170 #if defined(BELE_RTP)
171 :
public AbstractPolicy
175 #if defined(BELE_CTP) 177 #elif defined(BELE_RTP) 180 V
bool isBE() C {
return false; }
181 V
bool isLE() C {
return true; }
187 V
unsigned get16(
const void *p) C
188 {
return get_le16(p); }
189 V
unsigned get24(
const void *p) C
190 {
return get_le24(p); }
191 V
unsigned get32(
const void *p) C
192 {
return get_le32(p); }
193 V upx_uint64_t get64(
const void *p) C
194 {
return get_le64(p); }
196 V
void set16(
void *p,
unsigned v) C
198 V
void set24(
void *p,
unsigned v) C
200 V
void set32(
void *p,
unsigned v) C
202 V
void set64(
void *p, upx_uint64_t v) C
205 V
unsigned get16_signed(
const void *p) C
206 {
return get_le16_signed(p); }
207 V
unsigned get24_signed(
const void *p) C
208 {
return get_le24_signed(p); }
209 V
unsigned get32_signed(
const void *p) C
210 {
return get_le32_signed(p); }
211 V upx_uint64_t get64_signed(
const void *p) C
212 {
return get_le64_signed(p); }
214 S u16_compare(
const void *a,
const void *b) C
215 {
return le16_compare(a, b); }
216 S u24_compare(
const void *a,
const void *b) C
217 {
return le24_compare(a, b); }
218 S u32_compare(
const void *a,
const void *b) C
219 {
return le32_compare(a, b); }
220 S u64_compare(
const void *a,
const void *b) C
221 {
return le64_compare(a, b); }
223 S u16_compare_signed(
const void *a,
const void *b) C
224 {
return le16_compare_signed(a, b); }
225 S u24_compare_signed(
const void *a,
const void *b) C
226 {
return le24_compare_signed(a, b); }
227 S u32_compare_signed(
const void *a,
const void *b) C
228 {
return le32_compare_signed(a, b); }
229 S u64_compare_signed(
const void *a,
const void *b) C
230 {
return le64_compare_signed(a, b); }
232 static void compileTimeAssertions() {
233 COMPILE_TIME_ASSERT(
sizeof(U16) == 2)
234 COMPILE_TIME_ASSERT(
sizeof(U32) == 4)
235 COMPILE_TIME_ASSERT(
sizeof(U64) == 8)
236 COMPILE_TIME_ASSERT_ALIGNED1(U16)
237 COMPILE_TIME_ASSERT_ALIGNED1(U32)
238 COMPILE_TIME_ASSERT_ALIGNED1(U64)
246 #if (ACC_ABI_BIG_ENDIAN) 248 #elif (ACC_ABI_LITTLE_ENDIAN) 251 # error "ACC_ABI_ENDIAN" 256 struct HostAlignedPolicy
258 #if defined(BELE_CTP) 259 enum { isBE = HostPolicy::isBE, isLE = HostPolicy::isLE };
262 typedef upx_uint16_t U16;
263 typedef upx_uint32_t U32;
264 typedef upx_uint64_t U64;
266 static void compileTimeAssertions() {
267 COMPILE_TIME_ASSERT(
sizeof(U16) == 2)
268 COMPILE_TIME_ASSERT(
sizeof(U32) == 4)
269 COMPILE_TIME_ASSERT(
sizeof(U64) == 8)
Definition: bele_policy.h:169
Definition: bele_policy.h:92