# HG changeset patch # User Rob Landley # Date 1206835589 18000 # Node ID a791ca629d9cf95281a6433e460b61537aa9d37a # Parent 3a1ae92d6f6aaa57f9acc8bb370ba6e3359040e4 Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel build. Use new toybox cp. Yank busybox diff (which breaks building i686 on 2.6.25). diff -r 3a1ae92d6f6a -r a791ca629d9c download.sh --- a/download.sh Thu Mar 27 21:54:27 2008 -0500 +++ b/download.sh Sat Mar 29 19:06:29 2008 -0500 @@ -22,8 +22,8 @@ # then cut and paste the sha1 from the output and run it again to confirm. # Required for cross compile toolchain -URL=http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.4.tar.bz2 \ -SHA1=bb63192d1ab7d7edbac78b716d7b8acb06ae5e72 \ +URL=http://kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.25-rc7.tar.bz2 \ +SHA1=419579c4f1f0383c0b663edb7fc7ebfbb93422b6 \ download && URL=http://www.uclibc.org/downloads/uClibc-0.9.29.tar.bz2 \ @@ -45,8 +45,8 @@ SHA1=e29c6e151050f8b5ac5d680b99483df522606143 \ download && -URL=http://landley.net/code/toybox/downloads/toybox-0.0.4.tar.bz2 \ -SHA1=fe7c094097c57778f2ee357a95f8099d4d6cbf59 \ +URL=http://landley.net/code/toybox/downloads/toybox-0.0.5.tar.bz2 \ +SHA1=af5a8b49a84b40d0979a63d7220f000d54d19f41 \ download && # Ye olde emulator diff -r 3a1ae92d6f6a -r a791ca629d9c host-tools.sh --- a/host-tools.sh Thu Mar 27 21:54:27 2008 -0500 +++ b/host-tools.sh Sat Mar 29 19:06:29 2008 -0500 @@ -19,15 +19,27 @@ # The first seven are from packages already in mini-native. # The last six need to be added to toybox. (The build breaks if we use -# the busybox versions.) +# the busybox-1.2.2 versions.) -for i in ar as nm cc gcc make ld bzip2 cp find install od sort +for i in ar as nm cc gcc make ld bzip2 find install od sort diff do [ ! -f "${HOSTTOOLS}/$i" ] && (ln -s `which $i` "${HOSTTOOLS}/$i" || dienow) done -# Yes this is an old version of busybox. We're gradually replacing busybox -# with toybox, one command at a time. +# Build toybox +if [ -z "$(which toybox)" ] +then + setupfor toybox && + make defconfig && + make install_flat PREFIX="${HOSTTOOLS}" && + cd .. + + cleanup toybox +fi + +# Yes this is an old version of busybox. (It's the last version I released +# as busybox maintainer.) We're gradually replacing busybox with toybox, one +# command at a time. # Build busybox if [ -z "$(which busybox)" ] @@ -49,22 +61,10 @@ cleanup busybox fi -# Build toybox -if [ -z "$(which toybox)" ] -then - setupfor toybox && - make defconfig && - make && - make instlist && - make install_flat PREFIX="${HOSTTOOLS}" && - cd .. - - cleanup toybox -fi - # This is optionally used by mini-native to accelerate native builds when # running under qemu. It's not used to build mini-native, or to build -# the cross compiler. +# the cross compiler, but it needs to be on the host system in order to +# use the distcc acceleration trick. # Build distcc if [ -z "$(which distcc)" ] @@ -113,9 +113,11 @@ # #cleanup squashfs -# we can't reliably build qemu because who knows what gcc version the host -# has? so until qemu is fixed to build with an arbitrary c compiler, -# just test for its' existence and warn. +# we can't reliably build qemu because it needs a specific gcc version (3.x, +# won't work with 4.x), and who knows what gcc version the host +# has? So until qemu is fixed to build with an arbitrary c compiler, +# just test for its' existence and warn. (All the build uses it for is +# a quick sanity test on the cross compiler anyway.) temp="qemu-${qemu_test}" [ -z "$qemu_test" ] && temp=qemu diff -r 3a1ae92d6f6a -r a791ca629d9c mini-native.sh --- a/mini-native.sh Thu Mar 27 21:54:27 2008 -0500 +++ b/mini-native.sh Sat Mar 29 19:06:29 2008 -0500 @@ -44,6 +44,16 @@ cleanup uClibc +# Build and install toybox + +setupfor toybox +make defconfig && +make install_flat PREFIX="${TOOLS}"/bin CROSS="${ARCH}-" && +rm "${TOOLS}"/bin/sh && # Bash won't install if this exists. +cd .. + +cleanup toybox + # Build and install busybox setupfor busybox diff -r 3a1ae92d6f6a -r a791ca629d9c sources/config-busybox --- a/sources/config-busybox Thu Mar 27 21:54:27 2008 -0500 +++ b/sources/config-busybox Sat Mar 29 19:06:29 2008 -0500 @@ -128,10 +128,10 @@ CONFIG_FEATURE_DD_SIGNAL_HANDLING=y CONFIG_FEATURE_DD_IBS_OBS=y # CONFIG_DF is not set -CONFIG_DIFF=y -CONFIG_FEATURE_DIFF_BINARY=y -CONFIG_FEATURE_DIFF_DIR=y -CONFIG_FEATURE_DIFF_MINIMAL=y +# CONFIG_DIFF is not set +# CONFIG_FEATURE_DIFF_BINARY is not set +# CONFIG_FEATURE_DIFF_DIR is not set +# CONFIG_FEATURE_DIFF_MINIMAL is not set # CONFIG_DIRNAME is not set # CONFIG_DOS2UNIX is not set # CONFIG_UNIX2DOS is not set diff -r 3a1ae92d6f6a -r a791ca629d9c sources/configs/armv5l --- a/sources/configs/armv5l Thu Mar 27 21:54:27 2008 -0500 +++ b/sources/configs/armv5l Sat Mar 29 19:06:29 2008 -0500 @@ -119,6 +119,4 @@ CONFIG_EXT2_FS=y CONFIG_TMPFS=y CONFIG_MAGIC_SYSRQ=y -#CONFIG_N_HDLC=y -#CONFIG_FIRMWARE_EDID=y EOF diff -r 3a1ae92d6f6a -r a791ca629d9c sources/patches/linux-2.6.25-rc1-noperl.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/patches/linux-2.6.25-rc1-noperl.patch Sat Mar 29 19:06:29 2008 -0500 @@ -0,0 +1,875 @@ +diff -ru linux-2.6.25-rc1/kernel/timeconst.pl linux-2.6.25-new/kernel/timeconst.pl +--- linux-2.6.25-rc1/kernel/timeconst.pl 2008-02-10 16:18:14.000000000 -0600 ++++ linux-2.6.25-new/kernel/timeconst.pl 2008-02-15 17:52:02.000000000 -0600 +@@ -11,210 +11,10 @@ + # + + # +-# Usage: timeconst.pl HZ > timeconst.h ++# Usage: timeconst.pl HZ... > timeconst.h + # + +-# Precomputed values for systems without Math::BigInt +-# Generated by: + # timeconst.pl --can 24 32 48 64 100 122 128 200 250 256 300 512 1000 1024 1200 +-%canned_values = ( +- 24 => [ +- '0xa6aaaaab','0x2aaaaaa',26, +- '0xa6aaaaaaaaaaaaab','0x2aaaaaaaaaaaaaa',58, +- 125,3, +- '0xc49ba5e4','0x1fbe76c8b4',37, +- '0xc49ba5e353f7ceda','0x1fbe76c8b439581062',69, +- 3,125, +- '0xa2c2aaab','0xaaaa',16, +- '0xa2c2aaaaaaaaaaab','0xaaaaaaaaaaaa',48, +- 125000,3, +- '0xc9539b89','0x7fffbce4217d',47, +- '0xc9539b8887229e91','0x7fffbce4217d2849cb25',79, +- 3,125000, +- ], 32 => [ +- '0xfa000000','0x6000000',27, +- '0xfa00000000000000','0x600000000000000',59, +- 125,4, +- '0x83126e98','0xfdf3b645a',36, +- '0x83126e978d4fdf3c','0xfdf3b645a1cac0831',68, +- 4,125, +- '0xf4240000','0x0',17, +- '0xf424000000000000','0x0',49, +- 31250,1, +- '0x8637bd06','0x3fff79c842fa',46, +- '0x8637bd05af6c69b6','0x3fff79c842fa5093964a',78, +- 1,31250, +- ], 48 => [ +- '0xa6aaaaab','0x6aaaaaa',27, +- '0xa6aaaaaaaaaaaaab','0x6aaaaaaaaaaaaaa',59, +- 125,6, +- '0xc49ba5e4','0xfdf3b645a',36, +- '0xc49ba5e353f7ceda','0xfdf3b645a1cac0831',68, +- 6,125, +- '0xa2c2aaab','0x15555',17, +- '0xa2c2aaaaaaaaaaab','0x1555555555555',49, +- 62500,3, +- '0xc9539b89','0x3fffbce4217d',46, +- '0xc9539b8887229e91','0x3fffbce4217d2849cb25',78, +- 3,62500, +- ], 64 => [ +- '0xfa000000','0xe000000',28, +- '0xfa00000000000000','0xe00000000000000',60, +- 125,8, +- '0x83126e98','0x7ef9db22d',35, +- '0x83126e978d4fdf3c','0x7ef9db22d0e560418',67, +- 8,125, +- '0xf4240000','0x0',18, +- '0xf424000000000000','0x0',50, +- 15625,1, +- '0x8637bd06','0x1fff79c842fa',45, +- '0x8637bd05af6c69b6','0x1fff79c842fa5093964a',77, +- 1,15625, +- ], 100 => [ +- '0xa0000000','0x0',28, +- '0xa000000000000000','0x0',60, +- 10,1, +- '0xcccccccd','0x733333333',35, +- '0xcccccccccccccccd','0x73333333333333333',67, +- 1,10, +- '0x9c400000','0x0',18, +- '0x9c40000000000000','0x0',50, +- 10000,1, +- '0xd1b71759','0x1fff2e48e8a7',45, +- '0xd1b71758e219652c','0x1fff2e48e8a71de69ad4',77, +- 1,10000, +- ], 122 => [ +- '0x8325c53f','0xfbcda3a',28, +- '0x8325c53ef368eb05','0xfbcda3ac10c9714',60, +- 500,61, +- '0xf9db22d1','0x7fbe76c8b',35, +- '0xf9db22d0e560418a','0x7fbe76c8b43958106',67, +- 61,500, +- '0x8012e2a0','0x3ef36',18, +- '0x8012e29f79b47583','0x3ef368eb04325',50, +- 500000,61, +- '0xffda4053','0x1ffffbce4217',45, +- '0xffda4052d666a983','0x1ffffbce4217d2849cb2',77, +- 61,500000, +- ], 128 => [ +- '0xfa000000','0x1e000000',29, +- '0xfa00000000000000','0x1e00000000000000',61, +- 125,16, +- '0x83126e98','0x3f7ced916',34, +- '0x83126e978d4fdf3c','0x3f7ced916872b020c',66, +- 16,125, +- '0xf4240000','0x40000',19, +- '0xf424000000000000','0x4000000000000',51, +- 15625,2, +- '0x8637bd06','0xfffbce4217d',44, +- '0x8637bd05af6c69b6','0xfffbce4217d2849cb25',76, +- 2,15625, +- ], 200 => [ +- '0xa0000000','0x0',29, +- '0xa000000000000000','0x0',61, +- 5,1, +- '0xcccccccd','0x333333333',34, +- '0xcccccccccccccccd','0x33333333333333333',66, +- 1,5, +- '0x9c400000','0x0',19, +- '0x9c40000000000000','0x0',51, +- 5000,1, +- '0xd1b71759','0xfff2e48e8a7',44, +- '0xd1b71758e219652c','0xfff2e48e8a71de69ad4',76, +- 1,5000, +- ], 250 => [ +- '0x80000000','0x0',29, +- '0x8000000000000000','0x0',61, +- 4,1, +- '0x80000000','0x180000000',33, +- '0x8000000000000000','0x18000000000000000',65, +- 1,4, +- '0xfa000000','0x0',20, +- '0xfa00000000000000','0x0',52, +- 4000,1, +- '0x83126e98','0x7ff7ced9168',43, +- '0x83126e978d4fdf3c','0x7ff7ced916872b020c4',75, +- 1,4000, +- ], 256 => [ +- '0xfa000000','0x3e000000',30, +- '0xfa00000000000000','0x3e00000000000000',62, +- 125,32, +- '0x83126e98','0x1fbe76c8b',33, +- '0x83126e978d4fdf3c','0x1fbe76c8b43958106',65, +- 32,125, +- '0xf4240000','0xc0000',20, +- '0xf424000000000000','0xc000000000000',52, +- 15625,4, +- '0x8637bd06','0x7ffde7210be',43, +- '0x8637bd05af6c69b6','0x7ffde7210be9424e592',75, +- 4,15625, +- ], 300 => [ +- '0xd5555556','0x2aaaaaaa',30, +- '0xd555555555555556','0x2aaaaaaaaaaaaaaa',62, +- 10,3, +- '0x9999999a','0x1cccccccc',33, +- '0x999999999999999a','0x1cccccccccccccccc',65, +- 3,10, +- '0xd0555556','0xaaaaa',20, +- '0xd055555555555556','0xaaaaaaaaaaaaa',52, +- 10000,3, +- '0x9d495183','0x7ffcb923a29',43, +- '0x9d495182a9930be1','0x7ffcb923a29c779a6b5',75, +- 3,10000, +- ], 512 => [ +- '0xfa000000','0x7e000000',31, +- '0xfa00000000000000','0x7e00000000000000',63, +- 125,64, +- '0x83126e98','0xfdf3b645',32, +- '0x83126e978d4fdf3c','0xfdf3b645a1cac083',64, +- 64,125, +- '0xf4240000','0x1c0000',21, +- '0xf424000000000000','0x1c000000000000',53, +- 15625,8, +- '0x8637bd06','0x3ffef39085f',42, +- '0x8637bd05af6c69b6','0x3ffef39085f4a1272c9',74, +- 8,15625, +- ], 1000 => [ +- '0x80000000','0x0',31, +- '0x8000000000000000','0x0',63, +- 1,1, +- '0x80000000','0x0',31, +- '0x8000000000000000','0x0',63, +- 1,1, +- '0xfa000000','0x0',22, +- '0xfa00000000000000','0x0',54, +- 1000,1, +- '0x83126e98','0x1ff7ced9168',41, +- '0x83126e978d4fdf3c','0x1ff7ced916872b020c4',73, +- 1,1000, +- ], 1024 => [ +- '0xfa000000','0xfe000000',32, +- '0xfa00000000000000','0xfe00000000000000',64, +- 125,128, +- '0x83126e98','0x7ef9db22',31, +- '0x83126e978d4fdf3c','0x7ef9db22d0e56041',63, +- 128,125, +- '0xf4240000','0x3c0000',22, +- '0xf424000000000000','0x3c000000000000',54, +- 15625,16, +- '0x8637bd06','0x1fff79c842f',41, +- '0x8637bd05af6c69b6','0x1fff79c842fa5093964',73, +- 16,15625, +- ], 1200 => [ +- '0xd5555556','0xd5555555',32, +- '0xd555555555555556','0xd555555555555555',64, +- 5,6, +- '0x9999999a','0x66666666',31, +- '0x999999999999999a','0x6666666666666666',63, +- 6,5, +- '0xd0555556','0x2aaaaa',22, +- '0xd055555555555556','0x2aaaaaaaaaaaaa',54, +- 2500,3, +- '0x9d495183','0x1ffcb923a29',41, +- '0x9d495182a9930be1','0x1ffcb923a29c779a6b5',73, +- 3,2500, +- ] +-); + + $has_bigint = eval 'use Math::BigInt qw(bgcd); 1;'; + +@@ -305,8 +105,7 @@ + my $s, $m, $a, $g; + + if (!$has_bigint) { +- die "$0: HZ == $hz not canned and ". +- "Math::BigInt not available\n"; ++ die "$0: Math::BigInt not available\n"; + } + + # MSEC conversions +@@ -323,19 +122,7 @@ + my($hz, @val) = @_; + my $pfx, $bit, $suf, $s, $m, $a; + +- print "/* Automatically generated by kernel/timeconst.pl */\n"; +- print "/* Conversion constants for HZ == $hz */\n"; +- print "\n"; +- print "#ifndef KERNEL_TIMECONST_H\n"; +- print "#define KERNEL_TIMECONST_H\n"; +- print "\n"; +- +- print "#include \n"; +- +- print "\n"; +- print "#if HZ != $hz\n"; +- print "#error \"kernel/timeconst.h has the wrong HZ value!\"\n"; +- print "#endif\n"; ++ print "HZ == $hz\n"; + print "\n"; + + foreach $pfx ('HZ_TO_MSEC','MSEC_TO_HZ', +@@ -352,51 +139,37 @@ + } + } + +- print "\n"; +- print "#endif /* KERNEL_TIMECONST_H */\n"; ++ print "\n#elif " + } + +-($hz) = @ARGV; ++#($hz) = @ARGV; + +-# Use this to generate the %canned_values structure +-if ($hz eq '--can') { +- shift(@ARGV); +- @hzlist = sort {$a <=> $b} (@ARGV); +- +- print "# Precomputed values for systems without Math::BigInt\n"; +- print "# Generated by:\n"; +- print "# timeconst.pl --can ", join(' ', @hzlist), "\n"; +- print "\%canned_values = (\n"; +- my $pf = "\t"; +- foreach $hz (@hzlist) { +- my @values = compute_values($hz); +- print "$pf$hz => [\n"; +- while (scalar(@values)) { +- my $bit; +- foreach $bit (32, 64) { +- my $m = shift(@values); +- my $a = shift(@values); +- my $s = shift(@values); +- print "\t\t\'",$m,"\',\'",$a,"\',",$s,",\n"; +- } +- my $n = shift(@values); +- my $d = shift(@values); +- print "\t\t",$n,',',$d,",\n"; +- } +- print "\t]"; +- $pf = ', '; +- } +- print "\n);\n"; +-} else { +- $hz += 0; # Force to number ++print "/* Automatically generated by kernel/timeconst.pl */\n"; ++print "/* Conversion constants for HZ */\n"; ++print "\n"; ++print "#ifndef KERNEL_TIMECONST_H\n"; ++print "#define KERNEL_TIMECONST_H\n"; ++print "\n"; ++ ++print "#include \n"; ++ ++print "#if "; ++ ++foreach $hz (@ARGV) ++{ ++ #$hz += 0; # Force to number + if ($hz < 1) { + die "Usage: $0 HZ\n"; + } + +- @val = @{$canned_values{$hz}}; +- if (!defined(@val)) { +- @val = compute_values($hz); +- } ++ @val = compute_values($hz); + output($hz, @val); + } ++ ++print "1\n"; ++print "#error \"kernel/timeconst.h has unknown HZ value!\"\n"; ++print "#endif\n"; ++print "\n"; ++print "#endif /* KERNEL_TIMECONST_H */\n"; ++ + exit 0; +--- /dev/null 2007-10-16 17:06:33.000000000 -0500 ++++ linux-new/kernel/timeconst.h 2008-02-15 18:39:01.000000000 -0600 +@@ -0,0 +1,537 @@ ++/* Automatically generated by kernel/timeconst.pl */ ++/* Conversion constants for HZ */ ++ ++#ifndef KERNEL_TIMECONST_H ++#define KERNEL_TIMECONST_H ++ ++#include ++#if HZ == 24 ++ ++#define HZ_TO_MSEC_MUL32 0xa6aaaaab ++#define HZ_TO_MSEC_ADJ32 0x2aaaaaa ++#define HZ_TO_MSEC_SHR32 26 ++#define HZ_TO_MSEC_MUL64 0xa6aaaaaaaaaaaaab ++#define HZ_TO_MSEC_ADJ64 0x2aaaaaaaaaaaaaa ++#define HZ_TO_MSEC_SHR64 58 ++#define HZ_TO_MSEC_NUM 125 ++#define HZ_TO_MSEC_DEN 3 ++#define MSEC_TO_HZ_MUL32 0xc49ba5e4 ++#define MSEC_TO_HZ_ADJ32 0x1fbe76c8b4 ++#define MSEC_TO_HZ_SHR32 37 ++#define MSEC_TO_HZ_MUL64 0xc49ba5e353f7ceda ++#define MSEC_TO_HZ_ADJ64 0x1fbe76c8b439581062 ++#define MSEC_TO_HZ_SHR64 69 ++#define MSEC_TO_HZ_NUM 3 ++#define MSEC_TO_HZ_DEN 125 ++#define HZ_TO_USEC_MUL32 0xa2c2aaab ++#define HZ_TO_USEC_ADJ32 0xaaaa ++#define HZ_TO_USEC_SHR32 16 ++#define HZ_TO_USEC_MUL64 0xa2c2aaaaaaaaaaab ++#define HZ_TO_USEC_ADJ64 0xaaaaaaaaaaaa ++#define HZ_TO_USEC_SHR64 48 ++#define HZ_TO_USEC_NUM 125000 ++#define HZ_TO_USEC_DEN 3 ++#define USEC_TO_HZ_MUL32 0xc9539b89 ++#define USEC_TO_HZ_ADJ32 0x7fffbce4217d ++#define USEC_TO_HZ_SHR32 47 ++#define USEC_TO_HZ_MUL64 0xc9539b8887229e91 ++#define USEC_TO_HZ_ADJ64 0x7fffbce4217d2849cb25 ++#define USEC_TO_HZ_SHR64 79 ++#define USEC_TO_HZ_NUM 3 ++#define USEC_TO_HZ_DEN 125000 ++ ++#elif HZ == 32 ++ ++#define HZ_TO_MSEC_MUL32 0xfa000000 ++#define HZ_TO_MSEC_ADJ32 0x6000000 ++#define HZ_TO_MSEC_SHR32 27 ++#define HZ_TO_MSEC_MUL64 0xfa00000000000000 ++#define HZ_TO_MSEC_ADJ64 0x600000000000000 ++#define HZ_TO_MSEC_SHR64 59 ++#define HZ_TO_MSEC_NUM 125 ++#define HZ_TO_MSEC_DEN 4 ++#define MSEC_TO_HZ_MUL32 0x83126e98 ++#define MSEC_TO_HZ_ADJ32 0xfdf3b645a ++#define MSEC_TO_HZ_SHR32 36 ++#define MSEC_TO_HZ_MUL64 0x83126e978d4fdf3c ++#define MSEC_TO_HZ_ADJ64 0xfdf3b645a1cac0831 ++#define MSEC_TO_HZ_SHR64 68 ++#define MSEC_TO_HZ_NUM 4 ++#define MSEC_TO_HZ_DEN 125 ++#define HZ_TO_USEC_MUL32 0xf4240000 ++#define HZ_TO_USEC_ADJ32 0x0 ++#define HZ_TO_USEC_SHR32 17 ++#define HZ_TO_USEC_MUL64 0xf424000000000000 ++#define HZ_TO_USEC_ADJ64 0x0 ++#define HZ_TO_USEC_SHR64 49 ++#define HZ_TO_USEC_NUM 31250 ++#define HZ_TO_USEC_DEN 1 ++#define USEC_TO_HZ_MUL32 0x8637bd06 ++#define USEC_TO_HZ_ADJ32 0x3fff79c842fa ++#define USEC_TO_HZ_SHR32 46 ++#define USEC_TO_HZ_MUL64 0x8637bd05af6c69b6 ++#define USEC_TO_HZ_ADJ64 0x3fff79c842fa5093964a ++#define USEC_TO_HZ_SHR64 78 ++#define USEC_TO_HZ_NUM 1 ++#define USEC_TO_HZ_DEN 31250 ++ ++#elif HZ == 48 ++ ++#define HZ_TO_MSEC_MUL32 0xa6aaaaab ++#define HZ_TO_MSEC_ADJ32 0x6aaaaaa ++#define HZ_TO_MSEC_SHR32 27 ++#define HZ_TO_MSEC_MUL64 0xa6aaaaaaaaaaaaab ++#define HZ_TO_MSEC_ADJ64 0x6aaaaaaaaaaaaaa ++#define HZ_TO_MSEC_SHR64 59 ++#define HZ_TO_MSEC_NUM 125 ++#define HZ_TO_MSEC_DEN 6 ++#define MSEC_TO_HZ_MUL32 0xc49ba5e4 ++#define MSEC_TO_HZ_ADJ32 0xfdf3b645a ++#define MSEC_TO_HZ_SHR32 36 ++#define MSEC_TO_HZ_MUL64 0xc49ba5e353f7ceda ++#define MSEC_TO_HZ_ADJ64 0xfdf3b645a1cac0831 ++#define MSEC_TO_HZ_SHR64 68 ++#define MSEC_TO_HZ_NUM 6 ++#define MSEC_TO_HZ_DEN 125 ++#define HZ_TO_USEC_MUL32 0xa2c2aaab ++#define HZ_TO_USEC_ADJ32 0x15555 ++#define HZ_TO_USEC_SHR32 17 ++#define HZ_TO_USEC_MUL64 0xa2c2aaaaaaaaaaab ++#define HZ_TO_USEC_ADJ64 0x1555555555555 ++#define HZ_TO_USEC_SHR64 49 ++#define HZ_TO_USEC_NUM 62500 ++#define HZ_TO_USEC_DEN 3 ++#define USEC_TO_HZ_MUL32 0xc9539b89 ++#define USEC_TO_HZ_ADJ32 0x3fffbce4217d ++#define USEC_TO_HZ_SHR32 46 ++#define USEC_TO_HZ_MUL64 0xc9539b8887229e91 ++#define USEC_TO_HZ_ADJ64 0x3fffbce4217d2849cb25 ++#define USEC_TO_HZ_SHR64 78 ++#define USEC_TO_HZ_NUM 3 ++#define USEC_TO_HZ_DEN 62500 ++ ++#elif HZ == 64 ++ ++#define HZ_TO_MSEC_MUL32 0xfa000000 ++#define HZ_TO_MSEC_ADJ32 0xe000000 ++#define HZ_TO_MSEC_SHR32 28 ++#define HZ_TO_MSEC_MUL64 0xfa00000000000000 ++#define HZ_TO_MSEC_ADJ64 0xe00000000000000 ++#define HZ_TO_MSEC_SHR64 60 ++#define HZ_TO_MSEC_NUM 125 ++#define HZ_TO_MSEC_DEN 8 ++#define MSEC_TO_HZ_MUL32 0x83126e98 ++#define MSEC_TO_HZ_ADJ32 0x7ef9db22d ++#define MSEC_TO_HZ_SHR32 35 ++#define MSEC_TO_HZ_MUL64 0x83126e978d4fdf3c ++#define MSEC_TO_HZ_ADJ64 0x7ef9db22d0e560418 ++#define MSEC_TO_HZ_SHR64 67 ++#define MSEC_TO_HZ_NUM 8 ++#define MSEC_TO_HZ_DEN 125 ++#define HZ_TO_USEC_MUL32 0xf4240000 ++#define HZ_TO_USEC_ADJ32 0x0 ++#define HZ_TO_USEC_SHR32 18 ++#define HZ_TO_USEC_MUL64 0xf424000000000000 ++#define HZ_TO_USEC_ADJ64 0x0 ++#define HZ_TO_USEC_SHR64 50 ++#define HZ_TO_USEC_NUM 15625 ++#define HZ_TO_USEC_DEN 1 ++#define USEC_TO_HZ_MUL32 0x8637bd06 ++#define USEC_TO_HZ_ADJ32 0x1fff79c842fa ++#define USEC_TO_HZ_SHR32 45 ++#define USEC_TO_HZ_MUL64 0x8637bd05af6c69b6 ++#define USEC_TO_HZ_ADJ64 0x1fff79c842fa5093964a ++#define USEC_TO_HZ_SHR64 77 ++#define USEC_TO_HZ_NUM 1 ++#define USEC_TO_HZ_DEN 15625 ++ ++#elif HZ == 100 ++ ++#define HZ_TO_MSEC_MUL32 0xa0000000 ++#define HZ_TO_MSEC_ADJ32 0x0 ++#define HZ_TO_MSEC_SHR32 28 ++#define HZ_TO_MSEC_MUL64 0xa000000000000000 ++#define HZ_TO_MSEC_ADJ64 0x0 ++#define HZ_TO_MSEC_SHR64 60 ++#define HZ_TO_MSEC_NUM 10 ++#define HZ_TO_MSEC_DEN 1 ++#define MSEC_TO_HZ_MUL32 0xcccccccd ++#define MSEC_TO_HZ_ADJ32 0x733333333 ++#define MSEC_TO_HZ_SHR32 35 ++#define MSEC_TO_HZ_MUL64 0xcccccccccccccccd ++#define MSEC_TO_HZ_ADJ64 0x73333333333333333 ++#define MSEC_TO_HZ_SHR64 67 ++#define MSEC_TO_HZ_NUM 1 ++#define MSEC_TO_HZ_DEN 10 ++#define HZ_TO_USEC_MUL32 0x9c400000 ++#define HZ_TO_USEC_ADJ32 0x0 ++#define HZ_TO_USEC_SHR32 18 ++#define HZ_TO_USEC_MUL64 0x9c40000000000000 ++#define HZ_TO_USEC_ADJ64 0x0 ++#define HZ_TO_USEC_SHR64 50 ++#define HZ_TO_USEC_NUM 10000 ++#define HZ_TO_USEC_DEN 1 ++#define USEC_TO_HZ_MUL32 0xd1b71759 ++#define USEC_TO_HZ_ADJ32 0x1fff2e48e8a7 ++#define USEC_TO_HZ_SHR32 45 ++#define USEC_TO_HZ_MUL64 0xd1b71758e219652c ++#define USEC_TO_HZ_ADJ64 0x1fff2e48e8a71de69ad4 ++#define USEC_TO_HZ_SHR64 77 ++#define USEC_TO_HZ_NUM 1 ++#define USEC_TO_HZ_DEN 10000 ++ ++#elif HZ == 122 ++ ++#define HZ_TO_MSEC_MUL32 0x8325c53f ++#define HZ_TO_MSEC_ADJ32 0xfbcda3a ++#define HZ_TO_MSEC_SHR32 28 ++#define HZ_TO_MSEC_MUL64 0x8325c53ef368eb05 ++#define HZ_TO_MSEC_ADJ64 0xfbcda3ac10c9714 ++#define HZ_TO_MSEC_SHR64 60 ++#define HZ_TO_MSEC_NUM 500 ++#define HZ_TO_MSEC_DEN 61 ++#define MSEC_TO_HZ_MUL32 0xf9db22d1 ++#define MSEC_TO_HZ_ADJ32 0x7fbe76c8b ++#define MSEC_TO_HZ_SHR32 35 ++#define MSEC_TO_HZ_MUL64 0xf9db22d0e560418a ++#define MSEC_TO_HZ_ADJ64 0x7fbe76c8b43958106 ++#define MSEC_TO_HZ_SHR64 67 ++#define MSEC_TO_HZ_NUM 61 ++#define MSEC_TO_HZ_DEN 500 ++#define HZ_TO_USEC_MUL32 0x8012e2a0 ++#define HZ_TO_USEC_ADJ32 0x3ef36 ++#define HZ_TO_USEC_SHR32 18 ++#define HZ_TO_USEC_MUL64 0x8012e29f79b47583 ++#define HZ_TO_USEC_ADJ64 0x3ef368eb04325 ++#define HZ_TO_USEC_SHR64 50 ++#define HZ_TO_USEC_NUM 500000 ++#define HZ_TO_USEC_DEN 61 ++#define USEC_TO_HZ_MUL32 0xffda4053 ++#define USEC_TO_HZ_ADJ32 0x1ffffbce4217 ++#define USEC_TO_HZ_SHR32 45 ++#define USEC_TO_HZ_MUL64 0xffda4052d666a983 ++#define USEC_TO_HZ_ADJ64 0x1ffffbce4217d2849cb2 ++#define USEC_TO_HZ_SHR64 77 ++#define USEC_TO_HZ_NUM 61 ++#define USEC_TO_HZ_DEN 500000 ++ ++#elif HZ == 128 ++ ++#define HZ_TO_MSEC_MUL32 0xfa000000 ++#define HZ_TO_MSEC_ADJ32 0x1e000000 ++#define HZ_TO_MSEC_SHR32 29 ++#define HZ_TO_MSEC_MUL64 0xfa00000000000000 ++#define HZ_TO_MSEC_ADJ64 0x1e00000000000000 ++#define HZ_TO_MSEC_SHR64 61 ++#define HZ_TO_MSEC_NUM 125 ++#define HZ_TO_MSEC_DEN 16 ++#define MSEC_TO_HZ_MUL32 0x83126e98 ++#define MSEC_TO_HZ_ADJ32 0x3f7ced916 ++#define MSEC_TO_HZ_SHR32 34 ++#define MSEC_TO_HZ_MUL64 0x83126e978d4fdf3c ++#define MSEC_TO_HZ_ADJ64 0x3f7ced916872b020c ++#define MSEC_TO_HZ_SHR64 66 ++#define MSEC_TO_HZ_NUM 16 ++#define MSEC_TO_HZ_DEN 125 ++#define HZ_TO_USEC_MUL32 0xf4240000 ++#define HZ_TO_USEC_ADJ32 0x40000 ++#define HZ_TO_USEC_SHR32 19 ++#define HZ_TO_USEC_MUL64 0xf424000000000000 ++#define HZ_TO_USEC_ADJ64 0x4000000000000 ++#define HZ_TO_USEC_SHR64 51 ++#define HZ_TO_USEC_NUM 15625 ++#define HZ_TO_USEC_DEN 2 ++#define USEC_TO_HZ_MUL32 0x8637bd06 ++#define USEC_TO_HZ_ADJ32 0xfffbce4217d ++#define USEC_TO_HZ_SHR32 44 ++#define USEC_TO_HZ_MUL64 0x8637bd05af6c69b6 ++#define USEC_TO_HZ_ADJ64 0xfffbce4217d2849cb25 ++#define USEC_TO_HZ_SHR64 76 ++#define USEC_TO_HZ_NUM 2 ++#define USEC_TO_HZ_DEN 15625 ++ ++#elif HZ == 200 ++ ++#define HZ_TO_MSEC_MUL32 0xa0000000 ++#define HZ_TO_MSEC_ADJ32 0x0 ++#define HZ_TO_MSEC_SHR32 29 ++#define HZ_TO_MSEC_MUL64 0xa000000000000000 ++#define HZ_TO_MSEC_ADJ64 0x0 ++#define HZ_TO_MSEC_SHR64 61 ++#define HZ_TO_MSEC_NUM 5 ++#define HZ_TO_MSEC_DEN 1 ++#define MSEC_TO_HZ_MUL32 0xcccccccd ++#define MSEC_TO_HZ_ADJ32 0x333333333 ++#define MSEC_TO_HZ_SHR32 34 ++#define MSEC_TO_HZ_MUL64 0xcccccccccccccccd ++#define MSEC_TO_HZ_ADJ64 0x33333333333333333 ++#define MSEC_TO_HZ_SHR64 66 ++#define MSEC_TO_HZ_NUM 1 ++#define MSEC_TO_HZ_DEN 5 ++#define HZ_TO_USEC_MUL32 0x9c400000 ++#define HZ_TO_USEC_ADJ32 0x0 ++#define HZ_TO_USEC_SHR32 19 ++#define HZ_TO_USEC_MUL64 0x9c40000000000000 ++#define HZ_TO_USEC_ADJ64 0x0 ++#define HZ_TO_USEC_SHR64 51 ++#define HZ_TO_USEC_NUM 5000 ++#define HZ_TO_USEC_DEN 1 ++#define USEC_TO_HZ_MUL32 0xd1b71759 ++#define USEC_TO_HZ_ADJ32 0xfff2e48e8a7 ++#define USEC_TO_HZ_SHR32 44 ++#define USEC_TO_HZ_MUL64 0xd1b71758e219652c ++#define USEC_TO_HZ_ADJ64 0xfff2e48e8a71de69ad4 ++#define USEC_TO_HZ_SHR64 76 ++#define USEC_TO_HZ_NUM 1 ++#define USEC_TO_HZ_DEN 5000 ++ ++#elif HZ == 250 ++ ++#define HZ_TO_MSEC_MUL32 0x80000000 ++#define HZ_TO_MSEC_ADJ32 0x0 ++#define HZ_TO_MSEC_SHR32 29 ++#define HZ_TO_MSEC_MUL64 0x8000000000000000 ++#define HZ_TO_MSEC_ADJ64 0x0 ++#define HZ_TO_MSEC_SHR64 61 ++#define HZ_TO_MSEC_NUM 4 ++#define HZ_TO_MSEC_DEN 1 ++#define MSEC_TO_HZ_MUL32 0x80000000 ++#define MSEC_TO_HZ_ADJ32 0x180000000 ++#define MSEC_TO_HZ_SHR32 33 ++#define MSEC_TO_HZ_MUL64 0x8000000000000000 ++#define MSEC_TO_HZ_ADJ64 0x18000000000000000 ++#define MSEC_TO_HZ_SHR64 65 ++#define MSEC_TO_HZ_NUM 1 ++#define MSEC_TO_HZ_DEN 4 ++#define HZ_TO_USEC_MUL32 0xfa000000 ++#define HZ_TO_USEC_ADJ32 0x0 ++#define HZ_TO_USEC_SHR32 20 ++#define HZ_TO_USEC_MUL64 0xfa00000000000000 ++#define HZ_TO_USEC_ADJ64 0x0 ++#define HZ_TO_USEC_SHR64 52 ++#define HZ_TO_USEC_NUM 4000 ++#define HZ_TO_USEC_DEN 1 ++#define USEC_TO_HZ_MUL32 0x83126e98 ++#define USEC_TO_HZ_ADJ32 0x7ff7ced9168 ++#define USEC_TO_HZ_SHR32 43 ++#define USEC_TO_HZ_MUL64 0x83126e978d4fdf3c ++#define USEC_TO_HZ_ADJ64 0x7ff7ced916872b020c4 ++#define USEC_TO_HZ_SHR64 75 ++#define USEC_TO_HZ_NUM 1 ++#define USEC_TO_HZ_DEN 4000 ++ ++#elif HZ == 256 ++ ++#define HZ_TO_MSEC_MUL32 0xfa000000 ++#define HZ_TO_MSEC_ADJ32 0x3e000000 ++#define HZ_TO_MSEC_SHR32 30 ++#define HZ_TO_MSEC_MUL64 0xfa00000000000000 ++#define HZ_TO_MSEC_ADJ64 0x3e00000000000000 ++#define HZ_TO_MSEC_SHR64 62 ++#define HZ_TO_MSEC_NUM 125 ++#define HZ_TO_MSEC_DEN 32 ++#define MSEC_TO_HZ_MUL32 0x83126e98 ++#define MSEC_TO_HZ_ADJ32 0x1fbe76c8b ++#define MSEC_TO_HZ_SHR32 33 ++#define MSEC_TO_HZ_MUL64 0x83126e978d4fdf3c ++#define MSEC_TO_HZ_ADJ64 0x1fbe76c8b43958106 ++#define MSEC_TO_HZ_SHR64 65 ++#define MSEC_TO_HZ_NUM 32 ++#define MSEC_TO_HZ_DEN 125 ++#define HZ_TO_USEC_MUL32 0xf4240000 ++#define HZ_TO_USEC_ADJ32 0xc0000 ++#define HZ_TO_USEC_SHR32 20 ++#define HZ_TO_USEC_MUL64 0xf424000000000000 ++#define HZ_TO_USEC_ADJ64 0xc000000000000 ++#define HZ_TO_USEC_SHR64 52 ++#define HZ_TO_USEC_NUM 15625 ++#define HZ_TO_USEC_DEN 4 ++#define USEC_TO_HZ_MUL32 0x8637bd06 ++#define USEC_TO_HZ_ADJ32 0x7ffde7210be ++#define USEC_TO_HZ_SHR32 43 ++#define USEC_TO_HZ_MUL64 0x8637bd05af6c69b6 ++#define USEC_TO_HZ_ADJ64 0x7ffde7210be9424e592 ++#define USEC_TO_HZ_SHR64 75 ++#define USEC_TO_HZ_NUM 4 ++#define USEC_TO_HZ_DEN 15625 ++ ++#elif HZ == 300 ++ ++#define HZ_TO_MSEC_MUL32 0xd5555556 ++#define HZ_TO_MSEC_ADJ32 0x2aaaaaaa ++#define HZ_TO_MSEC_SHR32 30 ++#define HZ_TO_MSEC_MUL64 0xd555555555555556 ++#define HZ_TO_MSEC_ADJ64 0x2aaaaaaaaaaaaaaa ++#define HZ_TO_MSEC_SHR64 62 ++#define HZ_TO_MSEC_NUM 10 ++#define HZ_TO_MSEC_DEN 3 ++#define MSEC_TO_HZ_MUL32 0x9999999a ++#define MSEC_TO_HZ_ADJ32 0x1cccccccc ++#define MSEC_TO_HZ_SHR32 33 ++#define MSEC_TO_HZ_MUL64 0x999999999999999a ++#define MSEC_TO_HZ_ADJ64 0x1cccccccccccccccc ++#define MSEC_TO_HZ_SHR64 65 ++#define MSEC_TO_HZ_NUM 3 ++#define MSEC_TO_HZ_DEN 10 ++#define HZ_TO_USEC_MUL32 0xd0555556 ++#define HZ_TO_USEC_ADJ32 0xaaaaa ++#define HZ_TO_USEC_SHR32 20 ++#define HZ_TO_USEC_MUL64 0xd055555555555556 ++#define HZ_TO_USEC_ADJ64 0xaaaaaaaaaaaaa ++#define HZ_TO_USEC_SHR64 52 ++#define HZ_TO_USEC_NUM 10000 ++#define HZ_TO_USEC_DEN 3 ++#define USEC_TO_HZ_MUL32 0x9d495183 ++#define USEC_TO_HZ_ADJ32 0x7ffcb923a29 ++#define USEC_TO_HZ_SHR32 43 ++#define USEC_TO_HZ_MUL64 0x9d495182a9930be1 ++#define USEC_TO_HZ_ADJ64 0x7ffcb923a29c779a6b5 ++#define USEC_TO_HZ_SHR64 75 ++#define USEC_TO_HZ_NUM 3 ++#define USEC_TO_HZ_DEN 10000 ++ ++#elif HZ == 512 ++ ++#define HZ_TO_MSEC_MUL32 0xfa000000 ++#define HZ_TO_MSEC_ADJ32 0x7e000000 ++#define HZ_TO_MSEC_SHR32 31 ++#define HZ_TO_MSEC_MUL64 0xfa00000000000000 ++#define HZ_TO_MSEC_ADJ64 0x7e00000000000000 ++#define HZ_TO_MSEC_SHR64 63 ++#define HZ_TO_MSEC_NUM 125 ++#define HZ_TO_MSEC_DEN 64 ++#define MSEC_TO_HZ_MUL32 0x83126e98 ++#define MSEC_TO_HZ_ADJ32 0xfdf3b645 ++#define MSEC_TO_HZ_SHR32 32 ++#define MSEC_TO_HZ_MUL64 0x83126e978d4fdf3c ++#define MSEC_TO_HZ_ADJ64 0xfdf3b645a1cac083 ++#define MSEC_TO_HZ_SHR64 64 ++#define MSEC_TO_HZ_NUM 64 ++#define MSEC_TO_HZ_DEN 125 ++#define HZ_TO_USEC_MUL32 0xf4240000 ++#define HZ_TO_USEC_ADJ32 0x1c0000 ++#define HZ_TO_USEC_SHR32 21 ++#define HZ_TO_USEC_MUL64 0xf424000000000000 ++#define HZ_TO_USEC_ADJ64 0x1c000000000000 ++#define HZ_TO_USEC_SHR64 53 ++#define HZ_TO_USEC_NUM 15625 ++#define HZ_TO_USEC_DEN 8 ++#define USEC_TO_HZ_MUL32 0x8637bd06 ++#define USEC_TO_HZ_ADJ32 0x3ffef39085f ++#define USEC_TO_HZ_SHR32 42 ++#define USEC_TO_HZ_MUL64 0x8637bd05af6c69b6 ++#define USEC_TO_HZ_ADJ64 0x3ffef39085f4a1272c9 ++#define USEC_TO_HZ_SHR64 74 ++#define USEC_TO_HZ_NUM 8 ++#define USEC_TO_HZ_DEN 15625 ++ ++#elif HZ == 1000 ++ ++#define HZ_TO_MSEC_MUL32 0x80000000 ++#define HZ_TO_MSEC_ADJ32 0x0 ++#define HZ_TO_MSEC_SHR32 31 ++#define HZ_TO_MSEC_MUL64 0x8000000000000000 ++#define HZ_TO_MSEC_ADJ64 0x0 ++#define HZ_TO_MSEC_SHR64 63 ++#define HZ_TO_MSEC_NUM 1 ++#define HZ_TO_MSEC_DEN 1 ++#define MSEC_TO_HZ_MUL32 0x80000000 ++#define MSEC_TO_HZ_ADJ32 0x0 ++#define MSEC_TO_HZ_SHR32 31 ++#define MSEC_TO_HZ_MUL64 0x8000000000000000 ++#define MSEC_TO_HZ_ADJ64 0x0 ++#define MSEC_TO_HZ_SHR64 63 ++#define MSEC_TO_HZ_NUM 1 ++#define MSEC_TO_HZ_DEN 1 ++#define HZ_TO_USEC_MUL32 0xfa000000 ++#define HZ_TO_USEC_ADJ32 0x0 ++#define HZ_TO_USEC_SHR32 22 ++#define HZ_TO_USEC_MUL64 0xfa00000000000000 ++#define HZ_TO_USEC_ADJ64 0x0 ++#define HZ_TO_USEC_SHR64 54 ++#define HZ_TO_USEC_NUM 1000 ++#define HZ_TO_USEC_DEN 1 ++#define USEC_TO_HZ_MUL32 0x83126e98 ++#define USEC_TO_HZ_ADJ32 0x1ff7ced9168 ++#define USEC_TO_HZ_SHR32 41 ++#define USEC_TO_HZ_MUL64 0x83126e978d4fdf3c ++#define USEC_TO_HZ_ADJ64 0x1ff7ced916872b020c4 ++#define USEC_TO_HZ_SHR64 73 ++#define USEC_TO_HZ_NUM 1 ++#define USEC_TO_HZ_DEN 1000 ++ ++#elif HZ == 1024 ++ ++#define HZ_TO_MSEC_MUL32 0xfa000000 ++#define HZ_TO_MSEC_ADJ32 0xfe000000 ++#define HZ_TO_MSEC_SHR32 32 ++#define HZ_TO_MSEC_MUL64 0xfa00000000000000 ++#define HZ_TO_MSEC_ADJ64 0xfe00000000000000 ++#define HZ_TO_MSEC_SHR64 64 ++#define HZ_TO_MSEC_NUM 125 ++#define HZ_TO_MSEC_DEN 128 ++#define MSEC_TO_HZ_MUL32 0x83126e98 ++#define MSEC_TO_HZ_ADJ32 0x7ef9db22 ++#define MSEC_TO_HZ_SHR32 31 ++#define MSEC_TO_HZ_MUL64 0x83126e978d4fdf3c ++#define MSEC_TO_HZ_ADJ64 0x7ef9db22d0e56041 ++#define MSEC_TO_HZ_SHR64 63 ++#define MSEC_TO_HZ_NUM 128 ++#define MSEC_TO_HZ_DEN 125 ++#define HZ_TO_USEC_MUL32 0xf4240000 ++#define HZ_TO_USEC_ADJ32 0x3c0000 ++#define HZ_TO_USEC_SHR32 22 ++#define HZ_TO_USEC_MUL64 0xf424000000000000 ++#define HZ_TO_USEC_ADJ64 0x3c000000000000 ++#define HZ_TO_USEC_SHR64 54 ++#define HZ_TO_USEC_NUM 15625 ++#define HZ_TO_USEC_DEN 16 ++#define USEC_TO_HZ_MUL32 0x8637bd06 ++#define USEC_TO_HZ_ADJ32 0x1fff79c842f ++#define USEC_TO_HZ_SHR32 41 ++#define USEC_TO_HZ_MUL64 0x8637bd05af6c69b6 ++#define USEC_TO_HZ_ADJ64 0x1fff79c842fa5093964 ++#define USEC_TO_HZ_SHR64 73 ++#define USEC_TO_HZ_NUM 16 ++#define USEC_TO_HZ_DEN 15625 ++ ++#elif HZ == 1200 ++ ++#define HZ_TO_MSEC_MUL32 0xd5555556 ++#define HZ_TO_MSEC_ADJ32 0xd5555555 ++#define HZ_TO_MSEC_SHR32 32 ++#define HZ_TO_MSEC_MUL64 0xd555555555555556 ++#define HZ_TO_MSEC_ADJ64 0xd555555555555555 ++#define HZ_TO_MSEC_SHR64 64 ++#define HZ_TO_MSEC_NUM 5 ++#define HZ_TO_MSEC_DEN 6 ++#define MSEC_TO_HZ_MUL32 0x9999999a ++#define MSEC_TO_HZ_ADJ32 0x66666666 ++#define MSEC_TO_HZ_SHR32 31 ++#define MSEC_TO_HZ_MUL64 0x999999999999999a ++#define MSEC_TO_HZ_ADJ64 0x6666666666666666 ++#define MSEC_TO_HZ_SHR64 63 ++#define MSEC_TO_HZ_NUM 6 ++#define MSEC_TO_HZ_DEN 5 ++#define HZ_TO_USEC_MUL32 0xd0555556 ++#define HZ_TO_USEC_ADJ32 0x2aaaaa ++#define HZ_TO_USEC_SHR32 22 ++#define HZ_TO_USEC_MUL64 0xd055555555555556 ++#define HZ_TO_USEC_ADJ64 0x2aaaaaaaaaaaaa ++#define HZ_TO_USEC_SHR64 54 ++#define HZ_TO_USEC_NUM 2500 ++#define HZ_TO_USEC_DEN 3 ++#define USEC_TO_HZ_MUL32 0x9d495183 ++#define USEC_TO_HZ_ADJ32 0x1ffcb923a29 ++#define USEC_TO_HZ_SHR32 41 ++#define USEC_TO_HZ_MUL64 0x9d495182a9930be1 ++#define USEC_TO_HZ_ADJ64 0x1ffcb923a29c779a6b5 ++#define USEC_TO_HZ_SHR64 73 ++#define USEC_TO_HZ_NUM 3 ++#define USEC_TO_HZ_DEN 2500 ++ ++#elif 1 ++#error "kernel/timeconst.h has unknown HZ value!" ++#endif ++ ++#endif /* KERNEL_TIMECONST_H */ +--- linux/hg/kernel/Makefile 2008-02-08 19:06:59.000000000 -0600 ++++ linux-new/kernel/Makefile 2008-02-15 19:32:08.000000000 -0600 +@@ -95,7 +95,7 @@ + $(obj)/time.o: $(obj)/timeconst.h + + quiet_cmd_timeconst = TIMEC $@ +- cmd_timeconst = $(PERL) $< $(CONFIG_HZ) > $@ +-targets += timeconst.h +-$(obj)/timeconst.h: $(src)/timeconst.pl FORCE ++ cmd_timeconst = $(PERL) $< \ ++ 24 32 48 64 100 122 128 200 250 256 300 512 1000 1024 1200 > $@ ++$(obj)/timeconst.h: + $(call if_changed,timeconst)