annotate sources/patches/linux-2.6.25-rc1-noperl.patch @ 680:924527b0b454

Fix ppc bios, this is the one from qemu svn 6657.
author Rob Landley <rob@landley.net>
date Mon, 30 Mar 2009 04:50:02 -0500
parents 9b36b9dbfc4c
children 79baef2e88cc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
1 From: Rob Landley <rob@landley.net>
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
2
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
3 Replace kernel/timeconst.pl with kernel/timeconst.sh. The new shell script
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
4 is much simpler, about 1/4 the size, and runs on Red Hat 9 from 2003.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
5
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
6 It requires a shell which can do 64 bit math, such as bash, busybox ash,
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
7 or dash running on a 64 bit host.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
8
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
9 Changes from previous version:
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
10
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
11 Redo ADJ32 math to avoid integer overflow for small HZ sizes (such as 24 or
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
12 122). In the pathological case (HZ=1) both versions now produce
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
13 USEC_TO_HZ_ADJ32 of 0x7ffff79c842fa. (See source comments for details.)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
14
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
15 Also expand usage message, add error message when no 64 bit math available in
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
16 shell (and suggest some shells that support it), add whitespace around
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
17 operators in equations, added underscores before __KERNEL_TIMECONST_H, change
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
18 makefile so script is responsible for creating output file, make script delete
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
19 output file on error, change shebang to #!/bin/sh and test with dash and bash.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
20
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
21 Signed-off-by: Rob Landley <rob@landley.net>
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
22 ---
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
23
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
24 kernel/Makefile | 4
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
25 kernel/timeconst.pl | 378 ------------------------------------------
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
26 kernel/timeconst.sh | 149 ++++++++++++++++
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
27 3 files changed, 151 insertions(+), 380 deletions(-)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
28
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
29 --- linux-2.6.28/kernel/timeconst.pl 2008-12-24 17:26:37.000000000 -0600
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
30 +++ /dev/null 2008-11-21 04:46:41.000000000 -0600
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
31 @@ -1,378 +0,0 @@
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
32 -#!/usr/bin/perl
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
33 -# -----------------------------------------------------------------------
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
34 -#
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
35 -# Copyright 2007-2008 rPath, Inc. - All Rights Reserved
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
36 -#
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
37 -# This file is part of the Linux kernel, and is made available under
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
38 -# the terms of the GNU General Public License version 2 or (at your
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
39 -# option) any later version; incorporated herein by reference.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
40 -#
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
41 -# -----------------------------------------------------------------------
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
42 -#
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
43 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
44 -#
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
45 -# Usage: timeconst.pl HZ > timeconst.h
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
46 -#
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
47 -
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
48 -# Precomputed values for systems without Math::BigInt
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
49 -# Generated by:
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
50 -# timeconst.pl --can 24 32 48 64 100 122 128 200 250 256 300 512 1000 1024 1200
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
51 -%canned_values = (
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
52 - 24 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
53 - '0xa6aaaaab','0x2aaaaaa',26,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
54 - 125,3,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
55 - '0xc49ba5e4','0x1fbe76c8b4',37,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
56 - 3,125,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
57 - '0xa2c2aaab','0xaaaa',16,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
58 - 125000,3,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
59 - '0xc9539b89','0x7fffbce4217d',47,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
60 - 3,125000,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
61 - ], 32 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
62 - '0xfa000000','0x6000000',27,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
63 - 125,4,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
64 - '0x83126e98','0xfdf3b645a',36,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
65 - 4,125,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
66 - '0xf4240000','0x0',17,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
67 - 31250,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
68 - '0x8637bd06','0x3fff79c842fa',46,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
69 - 1,31250,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
70 - ], 48 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
71 - '0xa6aaaaab','0x6aaaaaa',27,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
72 - 125,6,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
73 - '0xc49ba5e4','0xfdf3b645a',36,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
74 - 6,125,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
75 - '0xa2c2aaab','0x15555',17,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
76 - 62500,3,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
77 - '0xc9539b89','0x3fffbce4217d',46,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
78 - 3,62500,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
79 - ], 64 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
80 - '0xfa000000','0xe000000',28,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
81 - 125,8,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
82 - '0x83126e98','0x7ef9db22d',35,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
83 - 8,125,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
84 - '0xf4240000','0x0',18,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
85 - 15625,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
86 - '0x8637bd06','0x1fff79c842fa',45,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
87 - 1,15625,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
88 - ], 100 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
89 - '0xa0000000','0x0',28,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
90 - 10,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
91 - '0xcccccccd','0x733333333',35,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
92 - 1,10,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
93 - '0x9c400000','0x0',18,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
94 - 10000,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
95 - '0xd1b71759','0x1fff2e48e8a7',45,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
96 - 1,10000,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
97 - ], 122 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
98 - '0x8325c53f','0xfbcda3a',28,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
99 - 500,61,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
100 - '0xf9db22d1','0x7fbe76c8b',35,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
101 - 61,500,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
102 - '0x8012e2a0','0x3ef36',18,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
103 - 500000,61,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
104 - '0xffda4053','0x1ffffbce4217',45,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
105 - 61,500000,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
106 - ], 128 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
107 - '0xfa000000','0x1e000000',29,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
108 - 125,16,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
109 - '0x83126e98','0x3f7ced916',34,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
110 - 16,125,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
111 - '0xf4240000','0x40000',19,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
112 - 15625,2,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
113 - '0x8637bd06','0xfffbce4217d',44,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
114 - 2,15625,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
115 - ], 200 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
116 - '0xa0000000','0x0',29,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
117 - 5,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
118 - '0xcccccccd','0x333333333',34,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
119 - 1,5,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
120 - '0x9c400000','0x0',19,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
121 - 5000,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
122 - '0xd1b71759','0xfff2e48e8a7',44,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
123 - 1,5000,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
124 - ], 250 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
125 - '0x80000000','0x0',29,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
126 - 4,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
127 - '0x80000000','0x180000000',33,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
128 - 1,4,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
129 - '0xfa000000','0x0',20,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
130 - 4000,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
131 - '0x83126e98','0x7ff7ced9168',43,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
132 - 1,4000,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
133 - ], 256 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
134 - '0xfa000000','0x3e000000',30,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
135 - 125,32,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
136 - '0x83126e98','0x1fbe76c8b',33,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
137 - 32,125,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
138 - '0xf4240000','0xc0000',20,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
139 - 15625,4,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
140 - '0x8637bd06','0x7ffde7210be',43,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
141 - 4,15625,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
142 - ], 300 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
143 - '0xd5555556','0x2aaaaaaa',30,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
144 - 10,3,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
145 - '0x9999999a','0x1cccccccc',33,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
146 - 3,10,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
147 - '0xd0555556','0xaaaaa',20,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
148 - 10000,3,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
149 - '0x9d495183','0x7ffcb923a29',43,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
150 - 3,10000,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
151 - ], 512 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
152 - '0xfa000000','0x7e000000',31,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
153 - 125,64,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
154 - '0x83126e98','0xfdf3b645',32,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
155 - 64,125,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
156 - '0xf4240000','0x1c0000',21,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
157 - 15625,8,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
158 - '0x8637bd06','0x3ffef39085f',42,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
159 - 8,15625,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
160 - ], 1000 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
161 - '0x80000000','0x0',31,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
162 - 1,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
163 - '0x80000000','0x0',31,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
164 - 1,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
165 - '0xfa000000','0x0',22,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
166 - 1000,1,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
167 - '0x83126e98','0x1ff7ced9168',41,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
168 - 1,1000,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
169 - ], 1024 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
170 - '0xfa000000','0xfe000000',32,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
171 - 125,128,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
172 - '0x83126e98','0x7ef9db22',31,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
173 - 128,125,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
174 - '0xf4240000','0x3c0000',22,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
175 - 15625,16,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
176 - '0x8637bd06','0x1fff79c842f',41,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
177 - 16,15625,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
178 - ], 1200 => [
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
179 - '0xd5555556','0xd5555555',32,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
180 - 5,6,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
181 - '0x9999999a','0x66666666',31,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
182 - 6,5,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
183 - '0xd0555556','0x2aaaaa',22,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
184 - 2500,3,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
185 - '0x9d495183','0x1ffcb923a29',41,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
186 - 3,2500,
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
187 - ]
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
188 -);
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
189 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
190 -$has_bigint = eval 'use Math::BigInt qw(bgcd); 1;';
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
191 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
192 -sub bint($)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
193 -{
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
194 - my($x) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
195 - return Math::BigInt->new($x);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
196 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
197 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
198 -#
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
199 -# Constants for division by reciprocal multiplication.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
200 -# (bits, numerator, denominator)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
201 -#
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
202 -sub fmul($$$)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
203 -{
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
204 - my ($b,$n,$d) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
205 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
206 - $n = bint($n);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
207 - $d = bint($d);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
208 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
209 - return scalar (($n << $b)+$d-bint(1))/$d;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
210 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
211 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
212 -sub fadj($$$)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
213 -{
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
214 - my($b,$n,$d) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
215 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
216 - $n = bint($n);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
217 - $d = bint($d);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
218 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
219 - $d = $d/bgcd($n, $d);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
220 - return scalar (($d-bint(1)) << $b)/$d;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
221 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
222 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
223 -sub fmuls($$$) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
224 - my($b,$n,$d) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
225 - my($s,$m);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
226 - my($thres) = bint(1) << ($b-1);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
227 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
228 - $n = bint($n);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
229 - $d = bint($d);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
230 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
231 - for ($s = 0; 1; $s++) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
232 - $m = fmul($s,$n,$d);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
233 - return $s if ($m >= $thres);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
234 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
235 - return 0;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
236 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
237 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
238 -# Generate a hex value if the result fits in 64 bits;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
239 -# otherwise skip.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
240 -sub bignum_hex($) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
241 - my($x) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
242 - my $s = $x->as_hex();
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
243 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
244 - return (length($s) > 18) ? undef : $s;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
245 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
246 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
247 -# Provides mul, adj, and shr factors for a specific
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
248 -# (bit, time, hz) combination
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
249 -sub muladj($$$) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
250 - my($b, $t, $hz) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
251 - my $s = fmuls($b, $t, $hz);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
252 - my $m = fmul($s, $t, $hz);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
253 - my $a = fadj($s, $t, $hz);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
254 - return (bignum_hex($m), bignum_hex($a), $s);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
255 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
256 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
257 -# Provides numerator, denominator values
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
258 -sub numden($$) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
259 - my($n, $d) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
260 - my $g = bgcd($n, $d);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
261 - return ($n/$g, $d/$g);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
262 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
263 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
264 -# All values for a specific (time, hz) combo
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
265 -sub conversions($$) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
266 - my ($t, $hz) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
267 - my @val = ();
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
268 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
269 - # HZ_TO_xx
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
270 - push(@val, muladj(32, $t, $hz));
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
271 - push(@val, numden($t, $hz));
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
272 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
273 - # xx_TO_HZ
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
274 - push(@val, muladj(32, $hz, $t));
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
275 - push(@val, numden($hz, $t));
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
276 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
277 - return @val;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
278 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
279 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
280 -sub compute_values($) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
281 - my($hz) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
282 - my @val = ();
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
283 - my $s, $m, $a, $g;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
284 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
285 - if (!$has_bigint) {
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
286 - die "$0: HZ == $hz not canned and ".
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
287 - "Math::BigInt not available\n";
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
288 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
289 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
290 - # MSEC conversions
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
291 - push(@val, conversions(1000, $hz));
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
292 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
293 - # USEC conversions
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
294 - push(@val, conversions(1000000, $hz));
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
295 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
296 - return @val;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
297 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
298 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
299 -sub outputval($$)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
300 -{
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
301 - my($name, $val) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
302 - my $csuf;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
303 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
304 - if (defined($val)) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
305 - if ($name !~ /SHR/) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
306 - $val = "U64_C($val)";
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
307 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
308 - printf "#define %-23s %s\n", $name.$csuf, $val.$csuf;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
309 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
310 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
311 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
312 -sub output($@)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
313 -{
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
314 - my($hz, @val) = @_;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
315 - my $pfx, $bit, $suf, $s, $m, $a;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
316 -
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
317 - print "/* Automatically generated by kernel/timeconst.pl */\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
318 - print "/* Conversion constants for HZ == $hz */\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
319 - print "\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
320 - print "#ifndef KERNEL_TIMECONST_H\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
321 - print "#define KERNEL_TIMECONST_H\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
322 - print "\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
323 -
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
324 - print "#include <linux/param.h>\n";
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
325 - print "#include <linux/types.h>\n";
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
326 -
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
327 - print "\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
328 - print "#if HZ != $hz\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
329 - print "#error \"kernel/timeconst.h has the wrong HZ value!\"\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
330 - print "#endif\n";
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
331 - print "\n";
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
332 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
333 - foreach $pfx ('HZ_TO_MSEC','MSEC_TO_HZ',
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
334 - 'HZ_TO_USEC','USEC_TO_HZ') {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
335 - foreach $bit (32) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
336 - foreach $suf ('MUL', 'ADJ', 'SHR') {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
337 - outputval("${pfx}_$suf$bit", shift(@val));
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
338 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
339 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
340 - foreach $suf ('NUM', 'DEN') {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
341 - outputval("${pfx}_$suf", shift(@val));
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
342 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
343 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
344 -
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
345 - print "\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
346 - print "#endif /* KERNEL_TIMECONST_H */\n";
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
347 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
348 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
349 -# Pretty-print Perl values
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
350 -sub perlvals(@) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
351 - my $v;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
352 - my @l = ();
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
353 -
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
354 - foreach $v (@_) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
355 - if (!defined($v)) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
356 - push(@l, 'undef');
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
357 - } elsif ($v =~ /^0x/) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
358 - push(@l, "\'".$v."\'");
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
359 - } else {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
360 - push(@l, $v.'');
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
361 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
362 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
363 - return join(',', @l);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
364 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
365 -
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
366 -($hz) = @ARGV;
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
367 -
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
368 -# Use this to generate the %canned_values structure
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
369 -if ($hz eq '--can') {
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
370 - shift(@ARGV);
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
371 - @hzlist = sort {$a <=> $b} (@ARGV);
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
372 -
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
373 - print "# Precomputed values for systems without Math::BigInt\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
374 - print "# Generated by:\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
375 - print "# timeconst.pl --can ", join(' ', @hzlist), "\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
376 - print "\%canned_values = (\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
377 - my $pf = "\t";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
378 - foreach $hz (@hzlist) {
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
379 - my @values = compute_values($hz);
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
380 - print "$pf$hz => [\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
381 - while (scalar(@values)) {
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
382 - my $bit;
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
383 - foreach $bit (32) {
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
384 - my $m = shift(@values);
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
385 - my $a = shift(@values);
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
386 - my $s = shift(@values);
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
387 - print "\t\t", perlvals($m,$a,$s), ",\n";
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
388 - }
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
389 - my $n = shift(@values);
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
390 - my $d = shift(@values);
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
391 - print "\t\t", perlvals($n,$d), ",\n";
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
392 - }
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
393 - print "\t]";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
394 - $pf = ', ';
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
395 - }
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
396 - print "\n);\n";
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
397 -} else {
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
398 - $hz += 0; # Force to number
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
399 - if ($hz < 1) {
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
400 - die "Usage: $0 HZ\n";
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
401 - }
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
402 -
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
403 - @val = @{$canned_values{$hz}};
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
404 - if (!defined(@val)) {
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
405 - @val = compute_values($hz);
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
406 - }
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
407 - output($hz, @val);
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
408 -}
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
409 -exit 0;
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
410 --- /dev/null 2008-11-21 04:46:41.000000000 -0600
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
411 +++ linux-2.6.28-new/kernel/timeconst.sh 2009-01-03 15:24:01.000000000 -0600
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
412 @@ -0,0 +1,147 @@
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
413 +#!/bin/sh
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
414 +
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
415 +if [ $# -ne 2 ]
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
416 +then
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
417 + echo "Usage: timeconst.sh HZ FILENAME"
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
418 + echo
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
419 + echo "Generate a header file with constants for coverting between"
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
420 + echo "decimal HZ timer ticks and milisecond or microsecond delays."
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
421 + echo
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
422 + exit 1
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
423 +fi
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
424 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
425 +HZ=$1
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
426 +shift
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
427 +FILENAME=$1
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
428 +
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
429 +# Sanity test: even the shell in Red Hat 9 (circa 2003) supported 64 bit math.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
430 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
431 +if [ $((1 << 32)) -lt 0 ]
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
432 +then
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
433 + echo "timeconst.sh needs a shell with 64 bit math, such as bash,"
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
434 + echo "busybox ash, or dash running on a 64 bit host."
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
435 + exit 1
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
436 +fi
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
437 +
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
438 +# If this script exits for any reason before this trap is removed,
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
439 +# delete the output file so a partial file won't confuse the build.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
440 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
441 +trap "rm $FILENAME" EXIT
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
442 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
443 +# Output start of header file
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
444 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
445 +cat > $FILENAME << EOF || exit 1
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
446 +/* Automatically generated by kernel/timeconst.sh */
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
447 +/* Conversion constants for HZ == $HZ */
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
448 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
449 +#ifndef __KERNEL_TIMECONST_H
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
450 +#define __KERNEL_TIMECONST_H
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
451 +
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
452 +#include <linux/param.h>
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
453 +#include <linux/types.h>
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
454 +
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
455 +#if HZ != $HZ
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
456 +#error "kernel/timeconst.h has the wrong HZ value!"
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
457 +#endif
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
458 +
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
459 +EOF
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
460 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
461 +# For both Milliseconds and Microseconds
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
462 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
463 +for i in "MSEC 1000" "USEC 1000000"
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
464 +do
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
465 + NAME=$(echo $i | cut -d ' ' -f 1)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
466 + PERIOD=$(echo $i | cut -d ' ' -f 2)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
467 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
468 + # Find greatest common denominator (using Euclid's algorithm)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
469 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
470 + A=$HZ
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
471 + B=$PERIOD
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
472 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
473 + while [ $B -ne 0 ]
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
474 + do
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
475 + C=$(( $A % $B ))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
476 + A=$B
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
477 + B=$C
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
478 + done
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
479 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
480 + GCD=$A
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
481 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
482 + # Do this for each direction (HZ_TO_PERIOD and PERIOD_TO_HZ)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
483 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
484 + for DIRECTION in 0 1
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
485 + do
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
486 + if [ $DIRECTION -eq 0 ]
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
487 + then
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
488 + CONVERT="HZ_TO_${NAME}"
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
489 + FROM=$HZ
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
490 + TO=$PERIOD
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
491 + else
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
492 + CONVERT="${NAME}_TO_HZ"
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
493 + FROM=$PERIOD
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
494 + TO=$HZ
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
495 + fi
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
496 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
497 + # Calculate 32 significant bits of MUL32 data.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
498 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
499 + SHIFT=0
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
500 + while true
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
501 + do
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
502 + # This can't overflow 64 bit math. Pathological case
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
503 + # (TO=1, FROM=1000000) uses around 32+20=52 bits.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
504 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
505 + MUL32=$(( ( ( $TO << $SHIFT ) + $FROM - 1 ) / $FROM ))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
506 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
507 + # Keep increasing $SHIFT until we've got 32 bits.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
508 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
509 + [ $MUL32 -gt $(( 1 << 31 )) ] && break
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
510 + SHIFT=$(( $SHIFT + 1 ))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
511 + done
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
512 + MUL32=$( printf %x $MUL32 )
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
513 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
514 + # ADJ32 is just (((FROM/GCD)-1)<<SHIFT)/(FROM/GCD) but this
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
515 + # can overflow 64 bit math (examples, HZ=24 or HZ=122).
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
516 + # Pathological case could use 32+20+20=72 bits. (And this is
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
517 + # the pathological case because a larger $HZ results in a
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
518 + # smaller $SHIFT, so even insane HZ>USEC cases should be ok.)
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
519 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
520 + # To get around this, we chop the bottom 32 bits off the
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
521 + # calculation and then reassemble it to avoid overflow:
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
522 + # 32+64=96, which is > 72.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
523 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
524 + ADJ32=$(( $FROM / $GCD ))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
525 + if [ $SHIFT -gt 32 ]
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
526 + then
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
527 + UPPER=$(( ( $ADJ32 - 1 ) << ( $SHIFT - 32 ) ))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
528 + LOWER=$(( ( $UPPER % $ADJ32 ) << 32 ))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
529 + ADJ32=$(( ( ( $UPPER / $ADJ32 ) << 32 ) + ( $LOWER / $ADJ32 )))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
530 + else
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
531 + ADJ32=$(( ( ( $ADJ32 - 1 ) << $SHIFT) / $ADJ32 ))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
532 + fi
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
533 + ADJ32=$( printf %x $ADJ32 )
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
534 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
535 + NUM=$(( $TO / $GCD ))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
536 + DEN=$(( $FROM / $GCD ))
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
537 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
538 + # Output next chunk of header data to file
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
539 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
540 + (
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
541 + echo "#define ${CONVERT}_MUL32 U64_C(0x$MUL32)" &&
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
542 + echo "#define ${CONVERT}_ADJ32 U64_C(0x$ADJ32)" &&
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
543 + echo "#define ${CONVERT}_SHR32 $SHIFT" &&
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
544 + echo "#define ${CONVERT}_NUM U64_C($NUM)" &&
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
545 + echo "#define ${CONVERT}_DEN U64_C($DEN)"
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
546 + ) >> $FILENAME || exit 1
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
547 + done
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
548 +done
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
549 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
550 +(
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
551 + echo
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
552 + echo "#endif /* __KERNEL_TIMECHONST_H */"
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
553 +) >> $FILENAME || exit 1
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
554 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
555 +# Don't rm $FILENAME on exit anymore.
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
556 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
557 +trap "" EXIT
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
558 +
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
559 +exit 0
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
560 --- linux-2.6.28/kernel/Makefile 2008-12-24 17:26:37.000000000 -0600
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
561 +++ linux-2.6.28-new/kernel/Makefile 2009-01-03 00:40:21.000000000 -0600
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
562 @@ -116,7 +116,7 @@
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
563 $(obj)/time.o: $(obj)/timeconst.h
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
564
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
565 quiet_cmd_timeconst = TIMEC $@
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
566 - cmd_timeconst = $(PERL) $< $(CONFIG_HZ) > $@
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
567 + cmd_timeconst = $(CONFIG_SHELL) $< $(CONFIG_HZ) $@
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
568 targets += timeconst.h
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
569 -$(obj)/timeconst.h: $(src)/timeconst.pl FORCE
605
9b36b9dbfc4c Upgrade stable to 2.6.28 linux kernel.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
570 +$(obj)/timeconst.h: $(src)/timeconst.sh FORCE
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
diff changeset
571 $(call if_changed,timeconst)