Sorting source tree a bit
[tpg/acess2.git] / KernelLand / Kernel / arch / helpers.h
diff --git a/KernelLand/Kernel/arch/helpers.h b/KernelLand/Kernel/arch/helpers.h
new file mode 100644 (file)
index 0000000..4d85fcb
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Acess2 Kernel
+ * - By John Hodge (thePowersGang)
+ *
+ * arch/helpers.h
+ * - Misc helper functions for the arch code
+ */
+#ifndef _ARCH_HELPERS_H_
+#define _ARCH_HELPERS_H_
+
+// Divide
+// - Find what power of two times Den is > Num
+// - Iterate down in bit significance
+//  > If the `N` value is greater than `D`, we can set this bit
+#define DEF_DIVMOD(s) Uint##s __divmod##s(Uint##s N, Uint##s D, Uint##s*Rem){\
+       Uint##s ret=0,add=1;\
+       while(N>=D&&add) {D<<=1;add<<=1;}\
+       while(add>1){\
+               add>>=1;D>>=1;\
+               if(N>=D){ret+=add;N-=D;}\
+       }\
+       if(Rem)*Rem = N;\
+       return ret;\
+}
+
+#endif
+

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