Index: kernel/genarch/include/genarch/softint/division.h
===================================================================
--- kernel/genarch/include/genarch/softint/division.h	(revision db8626d33fa833ea7e61d8d157724b3b47ba0cfa)
+++ kernel/genarch/include/genarch/softint/division.h	(revision 9abe2e5367e0d71b259840713b8cf79d80d97fc6)
@@ -62,4 +62,6 @@
 extern unsigned long long __udivmoddi3(unsigned long long, unsigned long long,
     unsigned long long *);
+extern unsigned long long __udivmoddi4(unsigned long long, unsigned long long,
+    unsigned long long *);
 
 #endif
Index: kernel/genarch/src/softint/division.c
===================================================================
--- kernel/genarch/src/softint/division.c	(revision db8626d33fa833ea7e61d8d157724b3b47ba0cfa)
+++ kernel/genarch/src/softint/division.c	(revision 9abe2e5367e0d71b259840713b8cf79d80d97fc6)
@@ -226,4 +226,12 @@
 }
 
+unsigned long long __udivmoddi4(unsigned long long a, unsigned long long b,
+    unsigned long long *c)
+{
+	return divandmod64(a, b, c);
+}
+
+
+
 /** @}
  */
Index: uspace/lib/softint/generic/division.c
===================================================================
--- uspace/lib/softint/generic/division.c	(revision db8626d33fa833ea7e61d8d157724b3b47ba0cfa)
+++ uspace/lib/softint/generic/division.c	(revision 9abe2e5367e0d71b259840713b8cf79d80d97fc6)
@@ -222,4 +222,18 @@
 }
 
+long long __divmoddi4(long long a, long long b, long long *c)
+{
+	unsigned long long rem;
+	long long result = (int) divandmod64(ABSVAL(a), ABSVAL(b), &rem);
+	
+	if (SGN(a) == SGN(b)) {
+		*c = rem;
+		return result;
+	}
+	
+	*c = -rem;
+	return -result;
+}
+
 unsigned long long __udivmoddi3(unsigned long long a, unsigned long long b,
     unsigned long long *c)
@@ -228,4 +242,10 @@
 }
 
+unsigned long long __udivmoddi4(unsigned long long a, unsigned long long b,
+    unsigned long long *c)
+{
+	return divandmod64(a, b, c);
+}
+
 /** @}
  */
Index: uspace/lib/softint/include/division.h
===================================================================
--- uspace/lib/softint/include/division.h	(revision db8626d33fa833ea7e61d8d157724b3b47ba0cfa)
+++ uspace/lib/softint/include/division.h	(revision 9abe2e5367e0d71b259840713b8cf79d80d97fc6)
@@ -53,5 +53,8 @@
 
 extern long long __divmoddi3(long long, long long, long long *);
+extern long long __divmoddi4(long long, long long, long long *);
 extern unsigned long long __udivmoddi3(unsigned long long, unsigned long long,
+    unsigned long long *);
+extern unsigned long long __udivmoddi4(unsigned long long, unsigned long long,
     unsigned long long *);
 
