Add ROTL and ROTR macros for bit rotating.
authorasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 6 Feb 2007 15:22:12 +0000 (15:22 +0000)
committerasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 6 Feb 2007 15:22:12 +0000 (15:22 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@762 38d2e660-2303-0410-9eaa-f027e97ec537

cfg/macros.h

index ba7b561dd114f576de3252e8c530e95c508bb99c..45f0a1edfa91ba8b644d2ce34b7eb826ad6a4b33 100755 (executable)
@@ -14,6 +14,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.11  2007/02/06 15:22:12  asterix
+ *#* Add ROTL and ROTR macros for bit rotating.
+ *#*
  *#* Revision 1.10  2006/09/13 18:31:37  bernie
  *#* BV8(), BV16(), BV32(): New macros for CPUs with small word size; SWAP_T(): New macro to support old compilers.
  *#*
 
 #endif /* COMPILER_VARIADIC_MACROS */
 
+/**
+ * Macro for rotating bit left or right.
+ * \{
+ */
+#define ROTR(var, rot) (((var) >> (rot)) | ((var) << ((sizeof(var) * 8) - (rot))))
+#define ROTL(var, rot) (((var) << (rot)) | ((var) >> ((sizeof(var) * 8) - (rot))))
+/*\}*/
+
 #endif /* MACROS_H */