Re: How to check the kernel compile options ?

Randy.Dunlap (rddunlap@osdl.org)
Fri, 1 Mar 2002 13:01:39 -0800 (PST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--346823425-89287989-1015016499=:7850
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Tue, 26 Feb 2002, Andreas Ferber wrote:

| On Sat, Feb 23, 2002 at 08:02:24AM +0100, Andreas Ferber wrote:
|
| > At the moment I'm just writing a tool which does all parts in one turn
| > (using zlib), to make it faster and more robust (the script above may
| > fail for example if the kernel image has more than one block of gzip
| > compressed data embedded). (It's actually working already, but the
| > code needs some heavy cleanup before it can be released to the public
| > ;-) Come back in a few days for news...
|
| Here we go again. Attached to this mail you find the announced kernel
| config extractor. It is also available via HTTP:
|
| http://www.myipv6.de/patches/kconfig/dumpkconfig.c

Good!

and here's an alternative, which doesn't put .config in
/proc/ at all, although that's probably better for some
environments or people.

This patch (along with the attached 'binoffset.c' program, which
I didn't stick into linux/scripts/) gives one the option to
have the kernel .config file saved in the kernel image file
(as __initdata) and then use 'extract-ikconfig' to read it from
the kernel image file and re-use it.

Notes:

1. I didn't zip any of the text since kernel Makefiles (can) do that
on the entire image.

2. I haven't stripped the leading "CONFIG_" from .config lines.

3. I strip out (omit) all lines *except* those that begin with
"CONFIG_" or "# CONFIG_". Keeping the commented CONFIG_ lines
keeps make oldconfig happy. Otherwise one has to answer for all
unspecified CONFIGs, or use "yes n | make oldconfig" [which is
just as good IMHO, but some users might want to know about new
kernel config options].

4. The output file from 'extract-ikconfig' contains the CONFIG_
data in reversed order, but oldconfig doesn't care about this.

My test case (.config is around 25000 bytes) increased the
kernel bzImage file size by about 8 KB.

-- 
~Randy

--346823425-89287989-1015016499=:7850 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ikconfigv4.patch" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.33L2.0203011301390.7850@dragon.pdx.osdl.net> Content-Description: Content-Disposition: attachment; filename="ikconfigv4.patch"

LS0tIGxpbnV4L2tlcm5lbC9NYWtlZmlsZS5pa2MJU3VuIFNlcCAxNiAyMToy Mjo0MCAyMDAxDQorKysgbGludXgva2VybmVsL01ha2VmaWxlCVRodSBGZWIg MjggMTU6MDg6MjAgMjAwMg0KQEAgLTE5LDYgKzE5LDcgQEANCiBvYmotJChD T05GSUdfVUlEMTYpICs9IHVpZDE2Lm8NCiBvYmotJChDT05GSUdfTU9EVUxF UykgKz0ga3N5bXMubw0KIG9iai0kKENPTkZJR19QTSkgKz0gcG0ubw0KK29i ai0kKENPTkZJR19JS0NPTkZJRykgKz0gY29uZmlncy5vDQogDQogaWZuZXEg KCQoQ09ORklHX0lBNjQpLHkpDQogIyBBY2NvcmRpbmcgdG8gQWxhbiBNb2Ry YSA8YWxhbkBsaW51eGNhcmUuY29tLmF1PiwgdGhlIC1mbm8tb21pdC1mcmFt ZS1wb2ludGVyIGlzDQpAQCAtMzAsMyArMzEsMTQgQEANCiBlbmRpZg0KIA0K IGluY2x1ZGUgJChUT1BESVIpL1J1bGVzLm1ha2UNCisNCitjb25maWdzLm86 ICQoVE9QRElSKS9zY3JpcHRzL21rY29uZmlncyBjb25maWdzLmMNCisJZWNo byBvYmoteSA9PSAkKG9iai15KQ0KKwkkKENDKSAkKENGTEFHUykgJChDRkxB R1NfS0VSTkVMKSAtREVYUE9SVF9TWU1UQUIgLWMgLW8gY29uZmlncy5vIGNv bmZpZ3MuYw0KKw0KKyQoVE9QRElSKS9zY3JpcHRzL21rY29uZmlnczogJChU T1BESVIpL3NjcmlwdHMvbWtjb25maWdzLmMNCisJJChIT1NUQ0MpICQoSE9T VENGTEFHUykgLW8gJChUT1BESVIpL3NjcmlwdHMvbWtjb25maWdzICQoVE9Q RElSKS9zY3JpcHRzL21rY29uZmlncy5jDQorDQorY29uZmlncy5jOiAkKFRP UERJUikvLmNvbmZpZyAkKFRPUERJUikvc2NyaXB0cy9ta2NvbmZpZ3MNCisJ JChUT1BESVIpL3NjcmlwdHMvbWtjb25maWdzICQoVE9QRElSKS8uY29uZmln IGNvbmZpZ3MuYw0KKw0KLS0tIGxpbnV4L2FyY2gvaTM4Ni9kZWZjb25maWcu aWtjCU1vbiBGZWIgMjUgMTE6Mzc6NTIgMjAwMg0KKysrIGxpbnV4L2FyY2gv aTM4Ni9kZWZjb25maWcJVGh1IEZlYiAyOCAxMzozMDozOSAyMDAyDQpAQCAt MTAzLDYgKzEwMyw3IEBADQogQ09ORklHX0JJTkZNVF9BT1VUPXkNCiBDT05G SUdfQklORk1UX0VMRj15DQogQ09ORklHX0JJTkZNVF9NSVNDPXkNCitDT05G SUdfSUtDT05GSUc9bg0KIENPTkZJR19QTT15DQogIyBDT05GSUdfQVBNIGlz IG5vdCBzZXQNCiANCi0tLSBsaW51eC9hcmNoL2kzODYvY29uZmlnLmluLmlr YwlNb24gRmViIDI1IDExOjM3OjUyIDIwMDINCisrKyBsaW51eC9hcmNoL2kz ODYvY29uZmlnLmluCVdlZCBGZWIgMjcgMTM6MjU6NTAgMjAwMg0KQEAgLTI2 Nyw2ICsyNjcsOCBAQA0KIHRyaXN0YXRlICdLZXJuZWwgc3VwcG9ydCBmb3Ig RUxGIGJpbmFyaWVzJyBDT05GSUdfQklORk1UX0VMRg0KIHRyaXN0YXRlICdL ZXJuZWwgc3VwcG9ydCBmb3IgTUlTQyBiaW5hcmllcycgQ09ORklHX0JJTkZN VF9NSVNDDQogDQorYm9vbCAnS2VybmVsIC5jb25maWcgc3VwcG9ydCcgQ09O RklHX0lLQ09ORklHDQorDQogYm9vbCAnUG93ZXIgTWFuYWdlbWVudCBzdXBw b3J0JyBDT05GSUdfUE0NCiANCiBpZiBbICIkQ09ORklHX0VYUEVSSU1FTlRB TCIgPSAieSIgXTsgdGhlbg0KLS0tIGxpbnV4L3NjcmlwdHMvbWtjb25maWdz LmMuaWtjCVdlZCBGZWIgMjcgMTM6MTM6MzAgMjAwMg0KKysrIGxpbnV4L3Nj cmlwdHMvbWtjb25maWdzLmMJRnJpIE1hciAgMSAwOToyNzo1NCAyMDAyDQpA QCAtMCwwICsxLDE4MSBAQA0KKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioNCisgKiBta2NvbmZpZ3MuYw0KKyAqIChDKSAyMDAyIFJhbmR5IER1 bmxhcCA8cmRkdW5sYXBAb3NkbC5vcmc+DQorDQorIyAgIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5DQorIyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQor IyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQorIyAgIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uDQorIw0KKyMgICBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwNCisjICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCisjICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQ0KKyMgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLg0KKyMNCisjICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UN CisjICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUg dG8gdGhlIEZyZWUgU29mdHdhcmUNCisjICAgRm91bmRhdGlvbiwgSW5jLiwg Njc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuDQorDQor IyBSdWxlcyBmb3Igc2NyaXB0cy9ta2NvbmZpZ3MuYyBpbnB1dC5jb25maWcg b3V0cHV0LmMNCisjIHRvIGdlbmVyYXRlIGNvbmZpZ3MuYyBmcm9tIGxpbnV4 Ly5jb25maWc6DQorIyAtIGRyb3AgbGluZXMgdGhhdCBiZWdpbiB3aXRoICcj Jw0KKyMgLSBkcm9wIGJsYW5rIGxpbmVzDQorIyAtIGxpbmVzIHRoYXQgdXNl IGRvdWJsZS1xdW90ZXMgbXVzdCBcXC1lc2NhcGUtcXVvdGUgdGhlbQ0KKw0K KyMjIyMjIyMjIyMjIyMjIyMjIyBza2VsZXRvbiBjb25maWdzLmMgZmlsZTog IyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCisjaW5jbHVkZSA8bGludXgvaW5p dC5oPg0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCisNCitzdGF0aWMg Y2hhciAqY29uZmlnc1tdIF9faW5pdGRhdGEgPQ0KKw0KKyAgPGluc2VydCBs aW5lcyBzZWxlY3RlZCBsaW5lcyBvZiAuY29uZmlnLCBxdW90ZWQsIHdpdGgg YWRkZWQgJ1xuJz4sDQorDQorOw0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMg ZW5kIGNvbmZpZ3MuYyBmaWxlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisN CisgKiBDaGFuZ2Vsb2cgZm9yIHZlci4gMC4yLCAyMDAyLTAyLTE1LCByZGR1 bmxhcEBvc2RsLm9yZzoNCisgLSBzdHJpcCBsZWFkaW5nICJDT05GSUdfIiBm cm9tIGNvbmZpZyBvcHRpb24gc3RyaW5nczsNCisgLSB1c2UgInN0YXRpYyIg YW5kICJfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSI7DQorIC0gZG9uJ3QgdXNl IEVYUE9SVF9TWU1CT0woKTsNCisgLSBzZXBhcmF0ZSBlYWNoIGNvbmZpZyBs aW5lIHdpdGggXG5ld2xpbmUgaW5zdGVhZCBvZiBzcGFjZTsNCisNCisgKiBD aGFuZ2Vsb2cgZm9yIHZlci4gMC4zLCAyMDAyLTAyLTE4LCByZGR1bmxhcEBv c2RsLm9yZzoNCisgLSBrZWVwIGFsbCAibm90IHNldCIgY29tbWVudCBsaW5l cyBmcm9tIC5jb25maWcgc28gdGhhdCAnbWFrZSAqY29uZmlnJw0KKyAgIHdp bGwgYmUgaGFwcHksIGJ1dCBkb24ndCBrZWVwIG90aGVyIGNvbW1lbnRzOw0K KyAtIGtlZXAgbGVhZGluZyAiQ09ORklHXyIgb24gZWFjaCBsaW5lOw0KKw0K KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovDQorDQorI2luY2x1ZGUgPHN0ZGlvLmg+ DQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxzdHJpbmcuaD4N CisjaW5jbHVkZSA8ZXJybm8uaD4NCisNCisjZGVmaW5lIFZFUlNJT04JCSIw LjIiDQorI2RlZmluZSBMSU5FX1NJWkUJMTAwMA0KKw0KK2ludCBpbmNsdWRl X2FsbF9saW5lcyA9IDE7CS8vIHdoZXRoZXIgdG8gaW5jbHVkZSAiPW4iIGxp bmVzIGluIHRoZSBvdXRwdXQNCisNCit2b2lkIHVzYWdlIChjb25zdCBjaGFy ICpwcm9nbmFtZSkNCit7DQorCWZwcmludGYgKHN0ZGVyciwgIiVzIHZlci4g JXNcbiIsIHByb2duYW1lLCBWRVJTSU9OKTsNCisJZnByaW50ZiAoc3RkZXJy LCAidXNhZ2U6ICAlcyBpbnB1dC5jb25maWcubmFtZSBwYXRoL2NvbmZpZ3Mu Y1xuIiwNCisJCQlwcm9nbmFtZSk7DQorCWV4aXQgKDEpOw0KK30NCisNCit2 b2lkIG1ha2VfaW50cm8gKEZJTEUgKnNvdXJjZWZpbGUpDQorew0KKwlmcHJp bnRmIChzb3VyY2VmaWxlLCAiI2luY2x1ZGUgPGxpbnV4L2luaXQuaD5cbiIp Ow0KKwlmcHJpbnRmIChzb3VyY2VmaWxlLCAiI2luY2x1ZGUgPGxpbnV4L21v ZHVsZS5oPlxuIik7DQorCWZwcmludGYgKHNvdXJjZWZpbGUsICJcbiIpOw0K Ky8vLy8vCWZwcmludGYgKHNvdXJjZWZpbGUsICJjaGFyICpjb25maWdzW10g X19pbml0ZGF0YSA9IHtcbiIpOw0KKwlmcHJpbnRmIChzb3VyY2VmaWxlLCAi c3RhdGljIGNoYXIgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpICpjb25maWdz W10gX19pbml0ZGF0YSA9IHtcbiIpOw0KKwlmcHJpbnRmIChzb3VyY2VmaWxl LCAiICBcIkNPTkZJR19CRUdJTj1uXFxuXCIgLFxuIik7DQorfQ0KKw0KK3Zv aWQgbWFrZV9lbmRpbmcgKEZJTEUgKnNvdXJjZWZpbGUpDQorew0KKwlmcHJp bnRmIChzb3VyY2VmaWxlLCAiICBcIkNPTkZJR19FTkQ9blxcblwiXG4iKTsN CisJZnByaW50ZiAoc291cmNlZmlsZSwgIn07XG4iKTsNCisvLy8vLwlmcHJp bnRmIChzb3VyY2VmaWxlLCAiRVhQT1JUX1NZTUJPTCAoY29uZmlncyk7XG4i KTsNCit9DQorDQordm9pZCBtYWtlX2xpbmVzIChGSUxFICpjb25maWdmaWxl LCBGSUxFICpzb3VyY2VmaWxlKQ0KK3sNCisJY2hhciBjZmdsaW5lW0xJTkVf U0laRV07DQorCWNoYXIgKmNoOw0KKw0KKwl3aGlsZSAoZmdldHMgKGNmZ2xp bmUsIExJTkVfU0laRSwgY29uZmlnZmlsZSkpIHsNCisJCS8qIGtpbGwgdGhl IHRyYWlsaW5nIG5ld2xpbmUgaW4gY2ZnbGluZSAqLw0KKwkJY2ZnbGluZVtz dHJsZW4gKGNmZ2xpbmUpIC0gMV0gPSAnXDAnOw0KKw0KKwkJLyogZG9uJ3Qg a2VlcCAjLW9ubHkgbGluZSBvciBhbiBlbXB0eS9ibGFuayBsaW5lICovDQor CQlpZiAoKGNmZ2xpbmVbMF0gPT0gJyMnICYmIGNmZ2xpbmVbMV0gPT0gJ1ww JykgfHwNCisJCSAgICBjZmdsaW5lWzBdID09ICdcMCcpDQorCQkJY29udGlu dWU7DQorDQorCQlpZiAoIWluY2x1ZGVfYWxsX2xpbmVzICYmDQorCQkgICAg Y2ZnbGluZVswXSA9PSAnIycpIC8vIHN0cmlwIG91dCBhbGwgY29tbWVudCBs aW5lcw0KKwkJCWNvbnRpbnVlOw0KKw0KKwkJLyogcmVhbGx5IG9ubHkgd2Fu dCB0byBrZWVwIGxpbmVzIHRoYXQgYmVnaW4gd2l0aA0KKwkJICogIkNPTkZJ R18iIG9yICIjIENPTkZJR18iICovDQorCQlpZiAoc3RybmNtcCAoY2ZnbGlu ZSwgIkNPTkZJR18iLCA3KSAmJg0KKwkJICAgIHN0cm5jbXAgKGNmZ2xpbmUs ICIjIENPTkZJR18iLCA5KSkNCisJCSAgICAJY29udGludWU7DQorDQorCQkv Kg0KKwkJICogdXNlIHN0cmNocigpIHRvIGNoZWNrIGZvciAiLXF1b3RlIGlu IGNmZ2xpbmU7DQorCQkgKiBpZiBub3QgZm91bmQsIG91dHB1dCB0aGUgbGlu ZSwgcXVvdGVkOw0KKwkJICogaWYgZm91bmQsIG91dHB1dCBhIGNoYXIgYXQg YSB0aW1lLCB3aXRoIFxcLXF1b3RlDQorCQkgKiBwcmVjZWRpbmcgZG91Ymxl LXF1b3RlIGNoYXJzDQorCQkgKi8NCisJCWlmICghc3RyY2hyIChjZmdsaW5l LCAnIicpKSB7DQorCQkJZnByaW50ZiAoc291cmNlZmlsZSwgIiAgXCIlc1xc blwiICxcbiIsIGNmZ2xpbmUpOw0KKwkJCWNvbnRpbnVlOw0KKwkJfQ0KKw0K KwkJLyogZ28gdG8gY2hhci1hdC1hLXRpbWUgbW9kZSBmb3IgdGhpcyBjb25m aWcgYW5kDQorCQkgKiBwcmVjZWRlIGFueSBkb3VibGUtcXVvdGUgd2l0aCBh IGJhY2tzbGFzaCAqLw0KKwkJZnByaW50ZiAoc291cmNlZmlsZSwgIiAgXCIi KTsJLyogbGVhZC1pbiAqLw0KKwkJZm9yIChjaCA9IGNmZ2xpbmU7ICpjaDsg Y2grKykgew0KKwkJCWlmICgqY2ggPT0gJyInKQ0KKwkJCQlmcHV0YyAoJ1xc Jywgc291cmNlZmlsZSk7DQorCQkJZnB1dGMgKCpjaCwgc291cmNlZmlsZSk7 DQorCQl9DQorCQlmcHJpbnRmIChzb3VyY2VmaWxlLCAiXFxuXCIgLFxuIik7 DQorCX0NCit9DQorDQoraW50IG1ha2VfY29uZmlncyAoRklMRSAqY29uZmln ZmlsZSwgRklMRSAqc291cmNlZmlsZSkNCit7DQorCW1ha2VfaW50cm8gKHNv dXJjZWZpbGUpOw0KKwltYWtlX2xpbmVzIChjb25maWdmaWxlLCBzb3VyY2Vm aWxlKTsNCisJbWFrZV9lbmRpbmcgKHNvdXJjZWZpbGUpOw0KK30NCisNCitp bnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCit7DQorCWNoYXIg KnByb2duYW1lID0gYXJndlswXTsNCisJY2hhciAqY29uZmlnbmFtZSwgKnNv dXJjZW5hbWU7DQorCUZJTEUgKmNvbmZpZ2ZpbGUsICpzb3VyY2VmaWxlOw0K Kw0KKwlpZiAoYXJnYyAhPSAzKQ0KKwkJdXNhZ2UgKHByb2duYW1lKTsNCisN CisJY29uZmlnbmFtZSA9IGFyZ3ZbMV07DQorCXNvdXJjZW5hbWUgPSBhcmd2 WzJdOw0KKw0KKwljb25maWdmaWxlID0gZm9wZW4gKGNvbmZpZ25hbWUsICJy Iik7DQorCWlmICghY29uZmlnZmlsZSkgew0KKwkJZnByaW50ZiAoc3RkZXJy LCAiJXM6IGNhbm5vdCBvcGVuICclcydcbiIsDQorCQkJCXByb2duYW1lLCBj b25maWduYW1lKTsNCisJCWV4aXQgKDIpOw0KKwl9DQorCXNvdXJjZWZpbGUg PSBmb3BlbiAoc291cmNlbmFtZSwgInciKTsNCisJaWYgKCFzb3VyY2VmaWxl KSB7DQorCQlmcHJpbnRmIChzdGRlcnIsICIlczogY2Fubm90IG9wZW4gJyVz J1xuIiwNCisJCQkJcHJvZ25hbWUsIHNvdXJjZW5hbWUpOw0KKwkJZXhpdCAo Mik7DQorCX0NCisNCisJbWFrZV9jb25maWdzIChjb25maWdmaWxlLCBzb3Vy Y2VmaWxlKTsNCisNCisJaWYgKGZjbG9zZSAoc291cmNlZmlsZSkpIHsNCisJ CWZwcmludGYgKHN0ZGVyciwgIiVzOiBlcnJvciAlZCBjbG9zaW5nICclcydc biIsDQorCQkJCXByb2duYW1lLCBlcnJubywgc291cmNlbmFtZSk7DQorCQll eGl0ICgzKTsNCisJfQ0KKwlpZiAoZmNsb3NlIChjb25maWdmaWxlKSkgew0K KwkJZnByaW50ZiAoc3RkZXJyLCAiJXM6IGVycm9yICVkIGNsb3NpbmcgJyVz J1xuIiwNCisJCQkJcHJvZ25hbWUsIGVycm5vLCBjb25maWduYW1lKTsNCisJ CWV4aXQgKDMpOw0KKwl9DQorDQorCWV4aXQgKDApOw0KK30NCisNCisvKiBl bmQgbWtjb25maWdzLmMgKi8NCi0tLSBsaW51eC9zY3JpcHRzL2V4dHJhY3Qt aWtjb25maWcuaWtjCVdlZCBGZWIgMjcgMTM6MTQ6MDIgMjAwMg0KKysrIGxp bnV4L3NjcmlwdHMvZXh0cmFjdC1pa2NvbmZpZwlUdWUgRmViIDE5IDAwOjE3 OjEwIDIwMDINCkBAIC0wLDAgKzEsMTcgQEANCisjISAvYmluL2Jhc2ggLXgN CisjIGV4dHJhY3RzIC5jb25maWcgaW5mbyBmcm9tIGEgW2JdekltYWdlIGZp bGUNCisjIHVzZXM6IGJpbm9mZnNldCAobmV3KSwgZGQsIHpjYXQsIHN0cmlu Z3MsIGdyZXANCisjICRhcmcxIGlzIFtiXXpJbWFnZSBmaWxlbmFtZQ0KKw0K K0hEUj1gYmlub2Zmc2V0ICQxIDB4MWYgMHg4YiAweDA4IDB4MGANCitQSUQ9 JCQNCitUTVBGSUxFPSIkMS52bWxpbi4kUElEIg0KKw0KKyMgZGQgaWY9JDEg YnM9MSBza2lwPSRIRFIgfCB6Y2F0IC0gfCBzdHJpbmdzIC9kZXYvc3RkaW4g XA0KKyMgfCBncmVwICJbQS1aYS16XzAtOV09W3lubV0kIiB8IHNlZCAicy9e L0NPTkZJR18vIiA+ICQxLm9sZGNvbmZpZy4kUElEDQorIyBleGl0DQorDQor ZGQgaWY9JDEgYnM9MSBza2lwPSRIRFIgfCB6Y2F0IC0gPiAkVE1QRklMRQ0K K3N0cmluZ3MgJFRNUEZJTEUgfCBncmVwICJeW1wjWzpibGFuazpdXSpDT05G SUdfW0EtWmEtel8wLTldKiIgPiAkMS5vbGRjb25maWcuJFBJRA0KK3djICQx Lm9sZGNvbmZpZy4kUElEDQorcm0gJFRNUEZJTEUNCi0tLSBsaW51eC9Eb2N1 bWVudGF0aW9uL0NvbmZpZ3VyZS5oZWxwLmlrYwlXZWQgRmViIDI3IDA5OjU0 OjQyIDIwMDINCisrKyBsaW51eC9Eb2N1bWVudGF0aW9uL0NvbmZpZ3VyZS5o ZWxwCUZyaSBNYXIgIDEgMDk6MTM6MDAgMjAwMg0KQEAgLTQ5NTgsNiArNDk1 OCwxOSBAQA0KICAgcmVwbGFjZW1lbnQgZm9yIGtlcm5lbGQuKSBTYXkgWSBo ZXJlIGFuZCByZWFkIGFib3V0IGNvbmZpZ3VyaW5nIGl0DQogICBpbiA8Zmls ZTpEb2N1bWVudGF0aW9uL2ttb2QudHh0Pi4NCiANCitLZXJuZWwgLmNvbmZp ZyBmaWxlIHNhdmVkIGluIGtlcm5lbCBpbWFnZQ0KK0NPTkZJR19JS0NPTkZJ Rw0KKyAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgY29tcGxldGUgTGludXgg a2VybmVsICIuY29uZmlnIiBmaWxlIGNvbnRlbnRzDQorICB0byBiZSBzYXZl ZCBpbiB0aGUga2VybmVsICh6aXBwZWQpIGltYWdlIGZpbGUuICBJdCBwcm92 aWRlcw0KKyAgZG9jdW1lbnRhdGlvbiBvZiB3aGljaCBrZXJuZWwgb3B0aW9u cyBhcmUgdXNlZCBpbiBhIHJ1bm5pbmcga2VybmVsIG9yDQorICBpbiBhbiBv bi1kaXNrIGtlcm5lbC4gIEl0IGNhbiBiZSBleHRyYWN0ZWQgZnJvbSB0aGUg a2VybmVsIGltYWdlIGZpbGUNCisgIHdpdGggYSBzY3JpcHQgYW5kIHVzZWQg YXMgaW5wdXQgdG8gcmVidWlsZCB0aGUgY3VycmVudCBrZXJuZWwgb3IgdG8N CisgIGJ1aWxkIGFub3RoZXIga2VybmVsLiAgU2luY2UgdGhlIGtlcm5lbCBp bWFnZSBpcyB6aXBwZWQsIHVzaW5nIHRoaXMNCisgIG9wdGlvbiBhZGRzIGFw cHJveGltYXRlbHkgOCBLQiB0byBhIGtlcm5lbCBpbWFnZSBmaWxlLg0KKyAg VGhpcyBvcHRpb24gaXMgbm90IGF2YWlsYWJsZSBhcyBhIG1vZHVsZS4gIElm IHlvdSB3YW50IGEgc2VwYXJhdGUNCisgIGZpbGUgdG8gc2F2ZSB0aGUga2Vy bmVsJ3MgLmNvbmZpZyBjb250ZW50cywgdXNlICdpbnN0YWxsa2VybmVsJyBv ciAnY3AnDQorICBvciBhIHNpbWlsYXIgdG9vbCwgb3IganVzdCBzYXZlIGl0 IGluICcvbGliL21vZHVsZXMvPGtlcm5lbC12ZXJzaW9uPicuDQorDQogQVJQ IGRhZW1vbiBzdXBwb3J0DQogQ09ORklHX0FSUEQNCiAgIE5vcm1hbGx5LCB0 aGUga2VybmVsIG1haW50YWlucyBhbiBpbnRlcm5hbCBjYWNoZSB3aGljaCBt YXBzIElQDQotLS0gbGludXgvTWFrZWZpbGUuaWtjCVdlZCBGZWIgMjcgMDk6 NTQ6NDIgMjAwMg0KKysrIGxpbnV4L01ha2VmaWxlCVRodSBGZWIgMjggMTQ6 MjY6MDkgMjAwMg0KQEAgLTE5NCw2ICsxOTQsNyBAQA0KIAlrZXJuZWwva3N5 bXMubHN0IGluY2x1ZGUvbGludXgvY29tcGlsZS5oIFwNCiAJdm1saW51eCBT eXN0ZW0ubWFwIFwNCiAJLnRtcCogXA0KKwlzY3JpcHRzL21rY29uZmlncyBr ZXJuZWwvY29uZmlncy5jIGtlcm5lbC9jb25maWdzLm8gXA0KIAlkcml2ZXJz L2NoYXIvY29uc29sZW1hcF9kZWZ0YmwuYyBkcml2ZXJzL3ZpZGVvL3Byb21j b25fdGJsLmMgXA0KIAlkcml2ZXJzL2NoYXIvY29ubWFrZWhhc2ggXA0KIAlk cml2ZXJzL2NoYXIvZHJtLyotbW9kLmMgXA0KQEAgLTIzMyw2ICsyMzQsNyBA QA0KIAlpbmNsdWRlL2FzbSBcDQogCS5oZGVwZW5kIHNjcmlwdHMvbWtkZXAg c2NyaXB0cy9zcGxpdC1pbmNsdWRlIHNjcmlwdHMvZG9jcHJvYyBcDQogCSQo VE9QRElSKS9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmggXA0KKwlzY3Jp cHRzL21rY29uZmlncyBrZXJuZWwvY29uZmlncy5jIGtlcm5lbC9jb25maWdz Lm8gXA0KIAlrZXJuZWwuc3BlYw0KIA0KICMgZGlyZWN0b3JpZXMgcmVtb3Zl ZCB3aXRoICdtYWtlIG1ycHJvcGVyJw0K --346823425-89287989-1015016499=:7850 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="binoffset.c" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.33L2.0203011301391.7850@dragon.pdx.osdl.net> Content-Description: Content-Disposition: attachment; filename="binoffset.c"

LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogYmlub2Zmc2V0 LmMNCiAqIChDKSAyMDAyIFJhbmR5IER1bmxhcCA8cmRkdW5sYXBAb3NkbC5v cmc+DQoNCiMgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyAgIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5DQojICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IN CiMgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0K IyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m DQojICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojDQojICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UNCiMgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyAgIEZvdW5kYXRp b24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwg VVNBLg0KDQojIGJpbm9mZnNldC5jOg0KIyAtIHNlYXJjaGVzIGEgKGJpbmFy eSkgZmlsZSBmb3IgYSBzcGVjaWZpZWQgKGJpbmFyeSkgcGF0dGVybg0KIyAt IHJldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgbG9jYXRlZCBwYXR0ZXJuIG9y IH4wIGlmIG5vdCBmb3VuZA0KIyAtIGV4aXRzIHdpdGggZXhpdCBzdGF0dXMg MCBub3JtYWxseSBvciBub24tMCBpZiBwYXR0ZXJuIGlzIG5vdCBmb3VuZA0K IyAgIG9yIGFueSBvdGhlciBlcnJvciBvY2N1cnMuDQoNCioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovDQoNCiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0 ZGxpYi5oPg0KI2luY2x1ZGUgPHN0cmluZy5oPg0KI2luY2x1ZGUgPGVycm5v Lmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8ZmNudGwuaD4N CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNsdWRlIDxzeXMvc3RhdC5o Pg0KI2luY2x1ZGUgPHN5cy9tbWFuLmg+DQoNCiNkZWZpbmUgVkVSU0lPTgkJ IjAuMSINCiNkZWZpbmUgQlVGX1NJWkUJKDE2ICogMTAyNCkNCiNkZWZpbmUg UEFUX1NJWkUJMTAwDQoNCmNoYXIJCSpwcm9nbmFtZTsNCmNoYXIJCSppbnB1 dG5hbWU7DQppbnQJCWlucHV0ZmQ7DQppbnQJCWJpeDsJCQkvKiBidWYgaW5k ZXggKi8NCnVuc2lnbmVkIGNoYXIJcGF0dGVybnMgW1BBVF9TSVpFXSA9IHsw fTsgLyogYnl0ZS1zaXplZCBwYXR0ZXJuIGFycmF5ICovDQppbnQJCXBhdF9s ZW47CQkvKiBhY3R1YWwgbnVtYmVyIG9mIHBhdHRlcm4gYnl0ZXMgKi8NCnVu c2lnbmVkIGNoYXIJKm1hZHI7CQkJLyogbW1hcCBhZGRyZXNzICovDQpzaXpl X3QJCWZpbGVzaXplOw0KaW50CQludW1fbWF0Y2hlcyA9IDA7DQpvZmZfdAkJ Zmlyc3Rsb2MgPSAwOw0KDQp2b2lkIHVzYWdlICh2b2lkKQ0Kew0KCWZwcmlu dGYgKHN0ZGVyciwgIiVzIHZlci4gJXNcbiIsIHByb2duYW1lLCBWRVJTSU9O KTsNCglmcHJpbnRmIChzdGRlcnIsICJ1c2FnZTogICVzIGZpbGVuYW1lIHBh dHRlcm5fYnl0ZXNcbiIsDQoJCQlwcm9nbmFtZSk7DQoJZnByaW50ZiAoc3Rk ZXJyLCAiICAgICAgICBbcHJpbnRzIGxvY2F0aW9uIG9mIHBhdHRlcm5fYnl0 ZXMgaW4gZmlsZV1cbiIpOw0KCWV4aXQgKDEpOw0KfQ0KDQppbnQgZ2V0X3Bh dHRlcm4gKGludCBwYXRfY291bnQsIGNoYXIgKnBhdHMgW10pDQp7DQoJaW50 IGl4LCBlcnIsIHRtcDsNCg0KI2lmZGVmIERFQlVHDQoJZnByaW50ZiAoc3Rk ZXJyLCJnZXRfcGF0dGVybjogY291bnQgPSAlZFxuIiwgcGF0X2NvdW50KTsN Cglmb3IgKGl4ID0gMDsgaXggPCBwYXRfY291bnQ7IGl4KyspDQoJCWZwcmlu dGYgKHN0ZGVyciwgIiAgcGF0ICMgJWQ6ICBbJXNdXG4iLCBpeCwgcGF0c1tp eF0pOw0KI2VuZGlmDQoNCglmb3IgKGl4ID0gMDsgaXggPCBwYXRfY291bnQ7 IGl4KyspIHsNCgkJdG1wID0gMDsNCgkJZXJyID0gc3NjYW5mIChwYXRzW2l4 XSwgIiU1aSIsICZ0bXApOw0KCQlpZiAoZXJyICE9IDEgfHwgdG1wID4gMHhm Zikgew0KCQkJZnByaW50ZiAoc3RkZXJyLCAicGF0dGVybiBvciB2YWx1ZSBl cnJvciBpbiBwYXR0ZXJuICMgJWQgWyVzXVxuIiwNCgkJCQkJaXgsIHBhdHNb aXhdKTsNCgkJCXVzYWdlICgpOw0KCQl9DQoJCXBhdHRlcm5zIFtpeF0gPSB0 bXA7DQoJfQ0KCXBhdF9sZW4gPSBwYXRfY291bnQ7DQp9DQoNCmludCBzZWFy Y2hfcGF0dGVybiAodm9pZCkNCnsNCglmb3IgKGJpeCA9IDA7IGJpeCA8IGZp bGVzaXplOyBiaXgrKykgew0KCQlpZiAobWFkcltiaXhdID09IHBhdHRlcm5z WzBdKSB7DQoJCQlpZiAobWVtY21wICgmbWFkcltiaXhdLCBwYXR0ZXJucywg cGF0X2xlbikgPT0gMCkgew0KCQkJCWlmIChudW1fbWF0Y2hlcyA9PSAwKQ0K CQkJCQlmaXJzdGxvYyA9IGJpeDsNCgkJCQludW1fbWF0Y2hlcysrOw0KCQkJ fQ0KCQl9DQoJfQ0KfQ0KDQojaWZkZWYgTk9UREVGDQpzaXplX3QgZ2V0X2Zp bGVzaXplIChpbnQgZmQpDQp7DQoJb2ZmX3QgZW5kX29mZiA9IGxzZWVrIChm ZCwgMCwgU0VFS19FTkQpOw0KCWxzZWVrIChmZCwgMCwgU0VFS19TRVQpOw0K CXJldHVybiAoc2l6ZV90KSBlbmRfb2ZmOw0KfQ0KI2VuZGlmDQoNCnNpemVf dCBnZXRfZmlsZXNpemUgKGludCBmZCkNCnsNCglpbnQgZXJyOw0KCXN0cnVj dCBzdGF0IHN0YXQ7DQoNCgllcnIgPSBmc3RhdCAoZmQsICZzdGF0KTsNCglm cHJpbnRmIChzdGRlcnIsICJmaWxlc2l6ZTogJWRcbiIsIGVyciA8IDAgPyBl cnIgOiBzdGF0LnN0X3NpemUpOw0KCWlmIChlcnIgPCAwKQ0KCQlyZXR1cm4g ZXJyOw0KCXJldHVybiAoc2l6ZV90KSBzdGF0LnN0X3NpemU7DQp9DQoNCmlu dCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndiBbXSkNCnsNCglwcm9nbmFt ZSA9IGFyZ3ZbMF07DQoNCglpZiAoYXJnYyA8IDMpDQoJCXVzYWdlICgpOw0K DQoJZ2V0X3BhdHRlcm4gKGFyZ2MgLSAyLCBhcmd2ICsgMik7DQoNCglpbnB1 dG5hbWUgPSBhcmd2WzFdOw0KDQoJaW5wdXRmZCA9IG9wZW4gKGlucHV0bmFt ZSwgT19SRE9OTFkpOw0KCWlmIChpbnB1dGZkID09IC0xKSB7DQoJCWZwcmlu dGYgKHN0ZGVyciwgIiVzOiBjYW5ub3Qgb3BlbiAnJXMnXG4iLA0KCQkJCXBy b2duYW1lLCBpbnB1dG5hbWUpOw0KCQlleGl0ICgzKTsNCgl9DQoNCglmaWxl c2l6ZSA9IGdldF9maWxlc2l6ZSAoaW5wdXRmZCk7DQoNCgltYWRyID0gbW1h cCAoMCwgZmlsZXNpemUsIFBST1RfUkVBRCwgTUFQX1BSSVZBVEUsIGlucHV0 ZmQsIDApOw0KCWlmIChtYWRyID09IE1BUF9GQUlMRUQpIHsNCgkJZnByaW50 ZiAoc3RkZXJyLCAibW1hcCBlcnJvciA9ICVkXG4iLCBlcnJubyk7DQoJCWNs b3NlIChpbnB1dGZkKTsNCgkJZXhpdCAoNCk7DQoJfQ0KDQoJc2VhcmNoX3Bh dHRlcm4gKCk7DQoNCglpZiAobXVubWFwIChtYWRyLCBmaWxlc2l6ZSkpDQoJ CWZwcmludGYgKHN0ZGVyciwgIm11bm1hcCBlcnJvciA9ICVkXG4iLCBlcnJu byk7DQoNCglpZiAoY2xvc2UgKGlucHV0ZmQpKQ0KCQlmcHJpbnRmIChzdGRl cnIsICIlczogZXJyb3IgJWQgY2xvc2luZyAnJXMnXG4iLA0KCQkJCXByb2du YW1lLCBlcnJubywgaW5wdXRuYW1lKTsNCg0KCWZwcmludGYgKHN0ZGVyciwg Im51bWJlciBvZiBwYXR0ZXJuIG1hdGNoZXMgPSAlZFxuIiwgbnVtX21hdGNo ZXMpOw0KCWlmIChudW1fbWF0Y2hlcyA9PSAwKQ0KCQlmaXJzdGxvYyA9IH4w Ow0KCXByaW50ZiAoIiVkXG4iLCBmaXJzdGxvYyk7DQoJZnByaW50ZiAoc3Rk ZXJyLCAiJWRcbiIsIGZpcnN0bG9jKTsNCg0KCWV4aXQgKG51bV9tYXRjaGVz ID8gMCA6IDIpOw0KfQ0KDQovKiBlbmQgYmlub2Zmc2V0LmMgKi8NCg== --346823425-89287989-1015016499=:7850-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/