From 2563fa0472da506ef1efc3232b64f308483106fd Mon Sep 17 00:00:00 2001
From: iceman1001 <iceman@iuse.se>
Date: Wed, 13 Mar 2019 09:10:52 +0100
Subject: [PATCH] moved some macro

---
 armsrc/lfops.c |  7 -------
 armsrc/util.h  | 39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/armsrc/lfops.c b/armsrc/lfops.c
index daa2e5134..bf43cf891 100644
--- a/armsrc/lfops.c
+++ b/armsrc/lfops.c
@@ -21,13 +21,6 @@
 #include "common.h"
 #include "flashmem.h" // persistence on mem
 
-#ifndef SHORT_COIL
-# define SHORT_COIL() LOW(GPIO_SSC_DOUT)
-#endif
-#ifndef OPEN_COIL
-# define OPEN_COIL()  HIGH(GPIO_SSC_DOUT)
-#endif
-
 //#define START_GAP 31*8 // was 250 // SPEC:  1*8 to 50*8 - typ 15*8 (15fc)
 //#define WRITE_GAP 8*8 // 17*8 // was 160 // SPEC:  1*8 to 20*8 - typ 10*8 (10fc)
 //#define WRITE_0   15*8 // 18*8 // was 144 // SPEC: 16*8 to 32*8 - typ 24*8 (24fc)
diff --git a/armsrc/util.h b/armsrc/util.h
index 19b104f51..15f93d1f9 100644
--- a/armsrc/util.h
+++ b/armsrc/util.h
@@ -17,7 +17,18 @@
 #include "BigBuf.h"
 #include "ticks.h"
 
+// Basic macros
+#ifndef SHORT_COIL
+#define SHORT_COIL()     LOW(GPIO_SSC_DOUT)
+#endif
+
+#ifndef OPEN_COIL
+#define OPEN_COIL()      HIGH(GPIO_SSC_DOUT)
+#endif
+
+#ifndef BYTEx
 #define BYTEx(x, n) (((x) >> (n * 8)) & 0xff )
+#endif
 
 #define LED_RED 1
 #define LED_ORANGE 2
@@ -43,6 +54,34 @@
 # define NTIME(n) for (int _index = 0; _index < n; _index++)
 #endif
 
+#ifndef REV8
+#define REV8(x) ((((x)>>7)&1)+((((x)>>6)&1)<<1)+((((x)>>5)&1)<<2)+((((x)>>4)&1)<<3)+((((x)>>3)&1)<<4)+((((x)>>2)&1)<<5)+((((x)>>1)&1)<<6)+(((x)&1)<<7))
+#endif
+
+#ifndef REV16
+#define REV16(x)        (REV8(x) + (REV8 (x >> 8) << 8))
+#endif
+
+#ifndef REV32
+#define REV32(x)        (REV16(x) + (REV16(x >> 16) << 16))
+#endif
+
+#ifndef REV64
+#define REV64(x)        (REV32(x) + (REV32(x >> 32) << 32))
+#endif
+
+#ifndef BIT32
+#define BIT32(x,n)      ((((x)[(n)>>5])>>((n)))&1)
+#endif
+
+#ifndef INV32
+#define INV32(x,i,n)    ((x)[(i)>>5]^=((uint32_t)(n))<<((i)&31))
+#endif
+
+#ifndef ROTL64
+#define ROTL64(x, n)    ((((uint64_t)(x))<<((n)&63))+(((uint64_t)(x))>>((0-(n))&63)))
+#endif
+
 size_t nbytes(size_t nbits);
 
 extern uint32_t reflect(uint32_t v, int b); // used in crc.c ...