59 lines
1.1 KiB
C
59 lines
1.1 KiB
C
#include <fx/int.h>
|
|
#include <fx/value-type.h>
|
|
|
|
#define SWAP32(v) \
|
|
(((v << 24) & 0xFF000000) | ((v << 8) & 0x00FF0000) \
|
|
| ((v >> 8) & 0x0000FF00) | ((v >> 24) & 0x000000FF))
|
|
|
|
i32 fx_i32_htob(i32 v)
|
|
{
|
|
#if FX_ENDIAN == 1
|
|
return v;
|
|
#else
|
|
return SWAP32(v);
|
|
#endif
|
|
}
|
|
|
|
i32 fx_i32_htos(i32 v)
|
|
{
|
|
#if FX_ENDIAN == 0
|
|
return v;
|
|
#else
|
|
return SWAP32(v);
|
|
#endif
|
|
}
|
|
|
|
i32 fx_i32_btoh(i32 v)
|
|
{
|
|
#if FX_ENDIAN == 1
|
|
return v;
|
|
#else
|
|
return SWAP32(v);
|
|
#endif
|
|
}
|
|
|
|
i32 fx_i32_stoh(i32 v)
|
|
{
|
|
#if FX_ENDIAN == 0
|
|
return v;
|
|
#else
|
|
return SWAP32(v);
|
|
#endif
|
|
}
|
|
|
|
/*** CLASS DEFINITION *********************************************************/
|
|
|
|
FX_TYPE_CLASS_BEGIN(fx_i32)
|
|
FX_TYPE_VTABLE_INTERFACE_BEGIN(fx_object, FX_TYPE_OBJECT)
|
|
FX_INTERFACE_ENTRY(to_string) = NULL;
|
|
FX_TYPE_VTABLE_INTERFACE_END(fx_object, FX_TYPE_OBJECT)
|
|
FX_TYPE_CLASS_END(fx_i32)
|
|
|
|
FX_TYPE_DEFINITION_BEGIN(fx_i32)
|
|
__FX_VALUE_TYPE_ID(I32);
|
|
FX_TYPE_EXTENDS(FX_TYPE_VALUE_TYPE);
|
|
FX_TYPE_NAME("fx.i32");
|
|
FX_TYPE_CLASS(fx_i32_class);
|
|
FX_TYPE_INSTANCE_PRIVATE(i32);
|
|
FX_TYPE_DEFINITION_END(fx_i32)
|