Code-base clean-up and refactoring (#47)
[lunaix-os.git] / lunaix-os / arch / generic / includes / asm-generic / muldiv64.h
diff --git a/lunaix-os/arch/generic/includes/asm-generic/muldiv64.h b/lunaix-os/arch/generic/includes/asm-generic/muldiv64.h
new file mode 100644 (file)
index 0000000..fefc202
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef __LUNAIX_ARCH_MULDIV64_H
+#define __LUNAIX_ARCH_MULDIV64_H
+
+#include <lunaix/types.h>
+
+#ifdef CONFIG_ARCH_BITS_64
+static inline u64_t
+udiv64(u64_t n, unsigned int base)
+{
+    return n / base;
+}
+
+static inline unsigned int
+umod64(u64_t n, unsigned int base)
+{
+    return n % base;
+}
+#else
+#error "no generic muldiv64 for 32 bits arch"
+#endif
+
+
+#endif /* __LUNAIX_ARCH_MULDIV64_H */