Kernel - Added SwapEndian64 for SCSI code (coming)
authorJohn Hodge <[email protected]>
Sat, 19 May 2012 13:49:53 +0000 (21:49 +0800)
committerJohn Hodge <[email protected]>
Sat, 19 May 2012 13:49:53 +0000 (21:49 +0800)
KernelLand/Kernel/include/acess.h
KernelLand/Kernel/lib.c

index c8cff88..767230f 100644 (file)
@@ -386,16 +386,21 @@ extern int        CheckMem(const void *Mem, int Num);
 #ifdef __BIG_ENDIAN__
 #define        LittleEndian16(_val)    SwapEndian16(_val)
 #define        LittleEndian32(_val)    SwapEndian32(_val)
+#define        LittleEndian64(_val)    SwapEndian32(_val)
 #define        BigEndian16(_val)       (_val)
 #define        BigEndian32(_val)       (_val)
+#define        BigEndian64(_val)       (_val)
 #else
 #define        LittleEndian16(_val)    (_val)
 #define        LittleEndian32(_val)    (_val)
+#define        LittleEndian64(_val)    (_val)
 #define        BigEndian16(_val)       SwapEndian16(_val)
 #define        BigEndian32(_val)       SwapEndian32(_val)
+#define        BigEndian64(_val)       SwapEndian64(_val)
 #endif
 extern Uint16  SwapEndian16(Uint16 Val);
 extern Uint32  SwapEndian32(Uint32 Val);
+extern Uint64  SwapEndian64(Uint64 Val);
 /**
  * \}
  */
index 7356d6f..f07e9f3 100644 (file)
@@ -87,6 +87,7 @@ EXPORT(ModUtil_SetIdent);
 EXPORT(UnHex);
 EXPORT(SwapEndian16);
 EXPORT(SwapEndian32);
+EXPORT(SwapEndian64);
 EXPORT(memmove);
 
 // === CODE ===
@@ -1060,6 +1061,10 @@ Uint32 SwapEndian32(Uint32 Val)
 {
        return ((Val&0xFF)<<24) | ((Val&0xFF00)<<8) | ((Val>>8)&0xFF00) | ((Val>>24)&0xFF);
 }
+Uint64 SwapEndian64(Uint64 Val)
+{
+       return SwapEndian32(Val >> 32) | ((Uint64)SwapEndian32(Val) << 32);
+}
 
 void *memmove(void *__dest, const void *__src, size_t len)
 {

UCC git Repository :: git.ucc.asn.au