Mercurial > hg > aboriginal
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 |
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) |