#ifndef __CROSSNT_MISC__H__
#define __CROSSNT_MISC__H__
-extern "C"
-void
-__fastcall
-_MOV_DD_SWP(
- void* a, // ECX
- void* b // EDX
- );
-
-#define MOV_DD_SWP(a,b) _MOV_DD_SWP(&(a),&(b))
-
-/********************/
-
-extern "C"
-void
-__fastcall
-_MOV_DW_SWP(
- void* a, // ECX
- void* b // EDX
- );
-
-#define MOV_DW_SWP(a,b) _MOV_DW_SWP(&(a),&(b))
-
-/********************/
-
-typedef void
-(__fastcall *ptrREVERSE_DD)(
- void* a // ECX
- );
-extern "C" ptrREVERSE_DD _REVERSE_DD;
-
-void
-__fastcall
-_REVERSE_DD_i486(
- void* a // ECX
- );
-
-void
-__fastcall
-_REVERSE_DD_i386(
- void* a // ECX
- );
-#define REVERSE_DD(a,b) _REVERSE_DD(&(a),&(b))
-
-/********************/
-
-extern "C"
-void
-__fastcall
-_REVERSE_DW(
- void* a // ECX
- );
-
-#define REVERSE_DW(a) _REVERSE_DW(&(a))
-
-/********************/
-
-extern "C"
-void
-__fastcall
-_MOV_DW2DD_SWP(
- void* a, // ECX
- void* b // EDX
- );
-
-#define MOV_DW2DD_SWP(a,b) _MOV_DW2DD_SWP(&(a),&(b))
-
-/********************/
-
-extern "C"
-void
-__fastcall
-_MOV_SWP_DW2DD(
- void* a, // ECX
- void* b // EDX
- );
-
-#define MOV_SWP_DW2DD(a,b) _MOV_SWP_DW2DD(&(a),&(b))
-
-/********************/
-
-extern "C"
-void
-__fastcall
-_MOV_MSF(
- void* a, // ECX
- void* b // EDX
- );
-#define MOV_MSF(a,b) _MOV_MSF(&(a),&(b))
-
-/********************/
-
-typedef void
-(__fastcall *ptrMOV_MSF_SWP)(
- void* a, // ECX
- void* b // EDX
- );
-extern "C" ptrMOV_MSF_SWP _MOV_MSF_SWP;
-
-extern "C"
-void
-__fastcall
-_MOV_MSF_SWP_i486(
- void* a, // ECX
- void* b // EDX
- );
-
-extern "C"
-void
-__fastcall
-_MOV_MSF_SWP_i386(
- void* a, // ECX
- void* b // EDX
- );
-#define MOV_MSF_SWP(a,b) _MOV_MSF_SWP(&(a),&(b))
-
-/********************/
-
-extern "C"
-void
-__fastcall
-_XCHG_DD(
- void* a, // ECX
- void* b // EDX
- );
-#define XCHG_DD(a,b) _XCHG_DD(&(a),&(b))
+/* The definitions look so crappy, because the code doesn't care
+ whether the source is an array or an integer */
+#define MOV_DD_SWP(a,b) ((a) = RtlUlongByteSwap(*(PULONG)&(b)))
+#define MOV_DW_SWP(a,b) ((a) = RtlUshortByteSwap(*(PUSHORT)&(b)))
+#define MOV_SWP_DW2DD(a,b) ((a) = RtlUshortByteSwap(*(PUSHORT)&(b)))
#endif // __CROSSNT_MISC__H__