#ifndef _ASM_PARAM_H
#define _ASM_PARAM_H

#ifndef HZ

#ifdef __KERNEL__

/* Safeguard against user stupidity  */
#ifdef _SYS_PARAM_H
#error Do not include <asm/param.h> with __KERNEL__ defined!
#endif

#include <linux/config.h>

#include <asm/compiler.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 << (32 - LOG_2_HZ)) * 100)
#  define hz_to_std(a)				\
   ({ unsigned long __res;			\
      unsigned long __lo;			\
	__asm__("multu\t%2,%3\n\t"		\
		: "=h" (__res), "=l" (__lo)	\
		: "r" (a), "r" (QUOTIENT)	\
		: GCC_REG_ACCUM);		\
	(__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	65536

#ifndef NGROUPS
#define NGROUPS		32
#endif

#ifndef NOGROUP
#define NOGROUP		(-1)
#endif

#define MAXHOSTNAMELEN	64	/* max length of hostname */

#ifdef __KERNEL__
# define CLOCKS_PER_SEC	100	/* frequency at which times() counts */
#endif

#endif /* _ASM_PARAM_H */
