patch-2.4.22 linux-2.4.22/include/asm-mips64/param.h
Next file: linux-2.4.22/include/asm-mips64/pci.h
Previous file: linux-2.4.22/include/asm-mips64/page.h
Back to the patch index
Back to the overall index
- Lines: 61
- Date:
2003-08-25 04:44:44.000000000 -0700
- Orig file:
linux-2.4.21/include/asm-mips64/param.h
- Orig date:
2000-11-28 21:42:04.000000000 -0800
diff -urN linux-2.4.21/include/asm-mips64/param.h linux-2.4.22/include/asm-mips64/param.h
@@ -10,13 +10,56 @@
#define _ASM_PARAM_H
#ifndef HZ
-#define HZ 100
-# define HZ 100
+
#ifdef __KERNEL__
-# define hz_to_std(a) (a)
-#endif
+
+/* Safeguard against user stupidity */
+#ifdef _SYS_PARAM_H
+#error Do not include <asm/param.h> with __KERNEL__ defined!
#endif
+#include <linux/config.h>
+
+#ifdef CONFIG_DECSTATION
+ /*
+ * log2(HZ), change this here if you want another HZ value. This is also
+ * used in dec_time_init. Minimum is 1, Maximum is 15.
+ */
+# define LOG_2_HZ 7
+# define HZ (1 << LOG_2_HZ)
+ /*
+ * Ye olde division-by-multiplication trick.
+ * This works only if 100 / HZ <= 1
+ */
+# define QUOTIENT ((1UL << (64 - LOG_2_HZ)) * 100)
+# define hz_to_std(a) \
+ ({ unsigned long __res; \
+ unsigned long __lo; \
+ __asm__("dmultu\t%2,%3\n\t" \
+ :"=h" (__res), "=l" (__lo) \
+ :"r" (a), "r" (QUOTIENT)); \
+ (__typeof__(a)) __res;})
+
+#else /* Not a DECstation */
+
+/* This is the internal value of HZ, that is the rate at which the jiffies
+ counter is increasing. This value is independent from the external value
+ and can be changed in order to suit the hardware and application
+ requirements. */
+# define HZ 100
+# define hz_to_std(a) (a)
+
+#endif /* Not a DECstation */
+
+#else /* defined(__KERNEL__) */
+
+/* This is the external value of HZ as seen by user programs. Don't change
+ unless you know what you're doing - changing breaks binary compatibility. */
+#define HZ 100
+
+#endif /* defined(__KERNEL__) */
+#endif /* defined(HZ) */
+
#define EXEC_PAGESIZE 4096
#ifndef NGROUPS
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)