Quoting Kostik Belousov <kostik...@gmail.com> (from Fri, 26 Mar 2010 13:49:25 +0200):
On Fri, Mar 26, 2010 at 11:43:15AM +0000, Alexander Leidinger wrote:
Author: netchild
Date: Fri Mar 26 11:43:15 2010
New Revision: 205683
URL: http://svn.freebsd.org/changeset/base/205683
Log:
  Fix some bogus values in linprocfs.

  Submitted by: Petr Salinger <petr.salin...@seznam.cz>
  Verified on:  GNU/kFreeBSD debian 8.0-1-686 (by submitter)
  PR:           144584

Modified:
  head/sys/compat/linprocfs/linprocfs.c

Modified: head/sys/compat/linprocfs/linprocfs.c
==============================================================================
--- head/sys/compat/linprocfs/linprocfs.c       Fri Mar 26 11:33:12 2010        
(r205682)
+++ head/sys/compat/linprocfs/linprocfs.c       Fri Mar 26 11:43:15 2010        
(r205683)
@@ -110,13 +110,36 @@ __FBSDID("$FreeBSD$");
 /*
  * Various conversion macros
  */
+
+/* The LINUX_USER_HZ is assumed 100 for now */
+
+#if defined(__i386__) && defined(__GNUCLIKE_ASM)
+/* we need intermediate result as 64 bit, otherwise it overflows too early */
+#define DO64_MULDIV(v,m,d)       \
+({                              \
+   unsigned long rv0;           \
+   unsigned long rv1;           \
+   __asm__ __volatile__(        \
+                "mull %1\n\t"   \
+                "divl %2\n\t"   \
+                :"=a" (rv0), "=d" (rv1) \
+                :"r" (d), "0" (v), "1" (m) \
+                :"cc" ); \
+  rv0; \
+})
Why it is impossible to express the calculation in C ?
You forgot to CC the submitter... CCed.

What do you have in mind, (unsinged long)((uint64_t)v * (uint64_t)m / (uint64_t)d)? Conditionally on the architecture or not?
Bye,
Alexander.

--
http://www.Leidinger.net  Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org     netchild @ FreeBSD.org  : PGP ID = 72077137
When reviewing your notes before an exam, the most
important ones will be illegible.

_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to