Changes for new ACC version.

committer: mfx <mfx> 1126029282 +0000
This commit is contained in:
Markus F.X.J. Oberhumer
2005-09-06 17:54:42 +00:00
parent 06ceb2f2a1
commit 5c28ff15ba
2 changed files with 72 additions and 89 deletions
+66 -84
View File
@@ -36,130 +36,109 @@
inline unsigned get_be16(const void *bb) inline unsigned get_be16(const void *bb)
{ {
const unsigned char* b = (const unsigned char*) bb; #if defined(ACC_UA_GET_BE16)
unsigned v; return ACC_UA_GET_BE16(bb);
v = (unsigned) b[1] << 0; #else
v |= (unsigned) b[0] << 8; return acc_ua_get_be16(bb);
return v; #endif
} }
inline void set_be16(void *bb, unsigned v) inline void set_be16(void *bb, unsigned v)
{ {
unsigned char* b = (unsigned char*) bb; #if defined(ACC_UA_SET_BE16)
b[1] = (unsigned char) (v >> 0); ACC_UA_SET_BE16(bb, v);
b[0] = (unsigned char) (v >> 8); #else
acc_ua_set_be16(bb, v);
#endif
} }
inline unsigned get_be24(const void *bb) inline unsigned get_be24(const void *bb)
{ {
const unsigned char* b = (const unsigned char*) bb; #if defined(ACC_UA_GET_BE24)
unsigned v; return ACC_UA_GET_BE24(bb);
v = (unsigned) b[2] << 0; #else
v |= (unsigned) b[1] << 8; return acc_ua_get_be24(bb);
v |= (unsigned) b[0] << 16; #endif
return v;
} }
inline void set_be24(void *bb, unsigned v) inline void set_be24(void *bb, unsigned v)
{ {
unsigned char* b = (unsigned char*) bb; #if defined(ACC_UA_SET_BE24)
b[2] = (unsigned char) (v >> 0); ACC_UA_SET_BE24(bb, v);
b[1] = (unsigned char) (v >> 8); #else
b[0] = (unsigned char) (v >> 16); acc_ua_set_be24(bb, v);
#endif
} }
inline unsigned get_be32(const void *bb) inline unsigned get_be32(const void *bb)
{ {
const unsigned char* b = (const unsigned char*) bb; #if defined(ACC_UA_GET_BE32)
unsigned v; return ACC_UA_GET_BE32(bb);
v = (unsigned) b[3] << 0; #else
v |= (unsigned) b[2] << 8; return acc_ua_get_be32(bb);
v |= (unsigned) b[1] << 16; #endif
v |= (unsigned) b[0] << 24;
return v;
} }
inline void set_be32(void *bb, unsigned v) inline void set_be32(void *bb, unsigned v)
{ {
unsigned char* b = (unsigned char*) bb; #if defined(ACC_UA_SET_BE32)
b[3] = (unsigned char) (v >> 0); ACC_UA_SET_BE32(bb, v);
b[2] = (unsigned char) (v >> 8); #else
b[1] = (unsigned char) (v >> 16); acc_ua_set_be32(bb, v);
b[0] = (unsigned char) (v >> 24); #endif
} }
inline unsigned get_le16(const void *bb) inline unsigned get_le16(const void *bb)
{ {
#if defined(ACC_GET_LE16) #if defined(ACC_UA_GET_LE16)
return ACC_GET_LE16(bb); return ACC_UA_GET_LE16(bb);
#else #else
const unsigned char* b = (const unsigned char*) bb; return acc_ua_get_le16(bb);
unsigned v;
v = (unsigned) b[0] << 0;
v |= (unsigned) b[1] << 8;
return v;
#endif #endif
} }
inline void set_le16(void *bb, unsigned v) inline void set_le16(void *bb, unsigned v)
{ {
#if defined(ACC_SET_LE16) #if defined(ACC_UA_SET_LE16)
ACC_SET_LE16(bb, v); ACC_UA_SET_LE16(bb, v);
#else #else
unsigned char* b = (unsigned char*) bb; acc_ua_set_le16(bb, v);
b[0] = (unsigned char) (v >> 0);
b[1] = (unsigned char) (v >> 8);
#endif #endif
} }
inline unsigned get_le24(const void *bb) inline unsigned get_le24(const void *bb)
{ {
const unsigned char* b = (const unsigned char*) bb; #if defined(ACC_UA_GET_LE24)
unsigned v; return ACC_UA_GET_LE24(bb);
v = (unsigned) b[0] << 0; #else
v |= (unsigned) b[1] << 8; return acc_ua_get_le24(bb);
v |= (unsigned) b[2] << 16; #endif
return v;
} }
inline void set_le24(void *bb, unsigned v) inline void set_le24(void *bb, unsigned v)
{ {
unsigned char* b = (unsigned char*) bb; #if defined(ACC_UA_SET_LE24)
b[0] = (unsigned char) (v >> 0); ACC_UA_SET_LE24(bb, v);
b[1] = (unsigned char) (v >> 8); #else
b[2] = (unsigned char) (v >> 16); acc_ua_set_le24(bb, v);
#endif
} }
inline unsigned get_le32(const void *bb) inline unsigned get_le32(const void *bb)
{ {
#if defined(ACC_GET_LE32) #if defined(ACC_UA_GET_LE32)
return ACC_GET_LE32(bb); return ACC_UA_GET_LE32(bb);
#else #else
const unsigned char* b = (const unsigned char*) bb; return acc_ua_get_le32(bb);
unsigned v;
v = (unsigned) b[0] << 0;
v |= (unsigned) b[1] << 8;
v |= (unsigned) b[2] << 16;
v |= (unsigned) b[3] << 24;
return v;
#endif #endif
} }
inline void set_le32(void *bb, unsigned v) inline void set_le32(void *bb, unsigned v)
{ {
#if defined(ACC_SET_LE32) #if defined(ACC_UA_SET_LE32)
ACC_SET_LE32(bb, v); ACC_UA_SET_LE32(bb, v);
#else #else
unsigned char* b = (unsigned char*) bb; acc_ua_set_le32(bb, v);
b[0] = (unsigned char) (v >> 0);
b[1] = (unsigned char) (v >> 8);
b[2] = (unsigned char) (v >> 16);
b[3] = (unsigned char) (v >> 24);
#endif #endif
} }
@@ -227,8 +206,10 @@ struct BE16
BE16& operator = (unsigned v) { set_be16(d, v); return *this; } BE16& operator = (unsigned v) { set_be16(d, v); return *this; }
BE16& operator += (unsigned v) { set_be16(d, get_be16(d) + v); return *this; } BE16& operator += (unsigned v) { set_be16(d, get_be16(d) + v); return *this; }
BE16& operator -= (unsigned v) { set_be16(d, get_be16(d) - v); return *this; } BE16& operator -= (unsigned v) { set_be16(d, get_be16(d) - v); return *this; }
BE16& operator *= (unsigned v) { set_be16(d, get_be16(d) * v); return *this; }
BE16& operator &= (unsigned v) { set_be16(d, get_be16(d) & v); return *this; } BE16& operator &= (unsigned v) { set_be16(d, get_be16(d) & v); return *this; }
BE16& operator |= (unsigned v) { set_be16(d, get_be16(d) | v); return *this; } BE16& operator |= (unsigned v) { set_be16(d, get_be16(d) | v); return *this; }
BE16& operator ^= (unsigned v) { set_be16(d, get_be16(d) ^ v); return *this; }
operator unsigned () const { return get_be16(d); } operator unsigned () const { return get_be16(d); }
} }
@@ -242,8 +223,10 @@ struct BE32
BE32& operator = (unsigned v) { set_be32(d, v); return *this; } BE32& operator = (unsigned v) { set_be32(d, v); return *this; }
BE32& operator += (unsigned v) { set_be32(d, get_be32(d) + v); return *this; } BE32& operator += (unsigned v) { set_be32(d, get_be32(d) + v); return *this; }
BE32& operator -= (unsigned v) { set_be32(d, get_be32(d) - v); return *this; } BE32& operator -= (unsigned v) { set_be32(d, get_be32(d) - v); return *this; }
BE32& operator *= (unsigned v) { set_be32(d, get_be32(d) * v); return *this; }
BE32& operator &= (unsigned v) { set_be32(d, get_be32(d) & v); return *this; } BE32& operator &= (unsigned v) { set_be32(d, get_be32(d) & v); return *this; }
BE32& operator |= (unsigned v) { set_be32(d, get_be32(d) | v); return *this; } BE32& operator |= (unsigned v) { set_be32(d, get_be32(d) | v); return *this; }
BE32& operator ^= (unsigned v) { set_be32(d, get_be32(d) ^ v); return *this; }
operator unsigned () const { return get_be32(d); } operator unsigned () const { return get_be32(d); }
} }
@@ -257,8 +240,10 @@ struct LE16
LE16& operator = (unsigned v) { set_le16(d, v); return *this; } LE16& operator = (unsigned v) { set_le16(d, v); return *this; }
LE16& operator += (unsigned v) { set_le16(d, get_le16(d) + v); return *this; } LE16& operator += (unsigned v) { set_le16(d, get_le16(d) + v); return *this; }
LE16& operator -= (unsigned v) { set_le16(d, get_le16(d) - v); return *this; } LE16& operator -= (unsigned v) { set_le16(d, get_le16(d) - v); return *this; }
LE16& operator *= (unsigned v) { set_le16(d, get_le16(d) * v); return *this; }
LE16& operator &= (unsigned v) { set_le16(d, get_le16(d) & v); return *this; } LE16& operator &= (unsigned v) { set_le16(d, get_le16(d) & v); return *this; }
LE16& operator |= (unsigned v) { set_le16(d, get_le16(d) | v); return *this; } LE16& operator |= (unsigned v) { set_le16(d, get_le16(d) | v); return *this; }
LE16& operator ^= (unsigned v) { set_le16(d, get_le16(d) ^ v); return *this; }
operator unsigned () const { return get_le16(d); } operator unsigned () const { return get_le16(d); }
} }
@@ -272,8 +257,10 @@ struct LE32
LE32& operator = (unsigned v) { set_le32(d, v); return *this; } LE32& operator = (unsigned v) { set_le32(d, v); return *this; }
LE32& operator += (unsigned v) { set_le32(d, get_le32(d) + v); return *this; } LE32& operator += (unsigned v) { set_le32(d, get_le32(d) + v); return *this; }
LE32& operator -= (unsigned v) { set_le32(d, get_le32(d) - v); return *this; } LE32& operator -= (unsigned v) { set_le32(d, get_le32(d) - v); return *this; }
LE32& operator *= (unsigned v) { set_le32(d, get_le32(d) * v); return *this; }
LE32& operator &= (unsigned v) { set_le32(d, get_le32(d) & v); return *this; } LE32& operator &= (unsigned v) { set_le32(d, get_le32(d) & v); return *this; }
LE32& operator |= (unsigned v) { set_le32(d, get_le32(d) | v); return *this; } LE32& operator |= (unsigned v) { set_le32(d, get_le32(d) | v); return *this; }
LE32& operator ^= (unsigned v) { set_le32(d, get_le32(d) ^ v); return *this; }
operator unsigned () const { return get_le32(d); } operator unsigned () const { return get_le32(d); }
} }
@@ -284,23 +271,16 @@ __attribute_packed;
// global operators // global operators
**************************************************************************/ **************************************************************************/
inline bool operator < (const BE16& v1, const BE16& v2) inline bool operator < (const BE16& v1, const BE16& v2) {
{
return (unsigned) v1 < (unsigned) v2; return (unsigned) v1 < (unsigned) v2;
} }
inline bool operator < (const BE32& v1, const BE32& v2) {
inline bool operator < (const BE32& v1, const BE32& v2)
{
return (unsigned) v1 < (unsigned) v2; return (unsigned) v1 < (unsigned) v2;
} }
inline bool operator < (const LE16& v1, const LE16& v2) {
inline bool operator < (const LE16& v1, const LE16& v2)
{
return (unsigned) v1 < (unsigned) v2; return (unsigned) v1 < (unsigned) v2;
} }
inline bool operator < (const LE32& v1, const LE32& v2) {
inline bool operator < (const LE32& v1, const LE32& v2)
{
return (unsigned) v1 < (unsigned) v2; return (unsigned) v1 < (unsigned) v2;
} }
@@ -354,6 +334,7 @@ int __acc_cdecl_qsort le32_compare_signed(const void *e1, const void *e2);
// just for testing... // just for testing...
#if !defined(ACC_CFG_NO_UNALIGNED)
#if 0 && (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x030200) #if 0 && (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x030200)
typedef acc_uint16e_t LE16_unaligned __attribute__((__aligned__(1))); typedef acc_uint16e_t LE16_unaligned __attribute__((__aligned__(1)));
typedef acc_uint32e_t LE32_unaligned __attribute__((__aligned__(1))); typedef acc_uint32e_t LE32_unaligned __attribute__((__aligned__(1)));
@@ -373,6 +354,7 @@ int __acc_cdecl_qsort le32_compare_signed(const void *e1, const void *e2);
# define LE32 LE32_unaligned # define LE32 LE32_unaligned
# pragma warning(disable: 4244) // Wx: conversion, possible loss of data # pragma warning(disable: 4244) // Wx: conversion, possible loss of data
#endif #endif
#endif
#endif /* already included */ #endif /* already included */
+2 -1
View File
@@ -36,8 +36,9 @@
# pragma warning(disable: 4201 4214 4514) # pragma warning(disable: 4201 4214 4514)
#endif #endif
#define ACC_WANT_ACC_INCI_H 1 #define ACC_WANT_ACC_INCI_H 1
#define ACC_WANT_ACCLIB_MISC 1
#define ACC_WANT_ACCLIB_HSREAD 1 #define ACC_WANT_ACCLIB_HSREAD 1
#define ACC_WANT_ACCLIB_MISC 1
#define ACC_WANT_ACCLIB_UA 1
#define ACC_WANT_ACCLIB_WILDARGV 1 #define ACC_WANT_ACCLIB_WILDARGV 1
#include "miniacc.h" #include "miniacc.h"