From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750806AbVKIOI6 (ORCPT ); Wed, 9 Nov 2005 09:08:58 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750797AbVKIOI6 (ORCPT ); Wed, 9 Nov 2005 09:08:58 -0500 Received: from public.id2-vpn.continvity.gns.novell.com ([195.33.99.129]:16176 "EHLO emea1-mh.id2.novell.com") by vger.kernel.org with ESMTP id S1750806AbVKIOI5 (ORCPT ); Wed, 9 Nov 2005 09:08:57 -0500 Message-Id: <43721142.76F0.0078.0@novell.com> X-Mailer: Novell GroupWise Internet Agent 7.0 Date: Wed, 09 Nov 2005 15:09:54 +0100 From: "Jan Beulich" To: Subject: [PATCH 15/39] NLKD - early pseudo-fs References: <43720DAE.76F0.0078.0@novell.com> <43720E2E.76F0.0078.0@novell.com> <43720E72.76F0.0078.0@novell.com> <43720EAF.76F0.0078.0@novell.com> <43720F5E.76F0.0078.0@novell.com> <43720F95.76F0.0078.0@novell.com> <43720FBA.76F0.0078.0@novell.com> <43720FF6.76F0.0078.0@novell.com> <43721024.76F0.0078.0@novell.com> <4372105B.76F0.0078.0@novell.com> <43721119.76F0.0078.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part785A4422.0__=" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part785A4422.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline While for limited amounts of configuration information the kernel command line may be suitable, it isn't when it comes to significant amounts of configurable entities that need to be set before the full kernel infrastructure is available. This patch adds functionality to pass one or more configuration files through the initrd, but without requiring knowledge of the actual structure (including compression) of it; the file(s) is/are attached to the end of the already built initrd (which obviously depends on external scripts not provided here). Signed-Off-By: Jan Beulich (actual patch attached) --=__Part785A4422.0__= Content-Type: application/octet-stream; name="linux-2.6.14-nlkd-early-pseudo-fs.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="linux-2.6.14-nlkd-early-pseudo-fs.patch" V2hpbGUgZm9yIGxpbWl0ZWQgYW1vdW50cyBvZiBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRo ZSBrZXJuZWwKY29tbWFuZCBsaW5lIG1heSBiZSBzdWl0YWJsZSwgaXQgaXNuJ3Qgd2hlbiBpdCBj b21lcyB0byBzaWduaWZpY2FudAphbW91bnRzIG9mIGNvbmZpZ3VyYWJsZSBlbnRpdGllcyB0aGF0 IG5lZWQgdG8gYmUgc2V0IGJlZm9yZSB0aGUgZnVsbAprZXJuZWwgaW5mcmFzdHJ1Y3R1cmUgaXMg YXZhaWxhYmxlLiBUaGlzIHBhdGNoIGFkZHMgZnVuY3Rpb25hbGl0eSB0bwpwYXNzIG9uZSBvciBt b3JlIGNvbmZpZ3VyYXRpb24gZmlsZXMgdGhyb3VnaCB0aGUgaW5pdHJkLCBidXQgd2l0aG91dApy ZXF1aXJpbmcga25vd2xlZGdlIG9mIHRoZSBhY3R1YWwgc3RydWN0dXJlIChpbmNsdWRpbmcgY29t cHJlc3Npb24pIG9mCml0OyB0aGUgZmlsZShzKSBpcy9hcmUgYXR0YWNoZWQgdG8gdGhlIGVuZCBv ZiB0aGUgYWxyZWFkeSBidWlsdAppbml0cmQgKHdoaWNoIG9idmlvdXNseSBkZXBlbmRzIG9uIGV4 dGVybmFsIHNjcmlwdHMgbm90IHByb3ZpZGVkCmhlcmUpLgoKU2lnbmVkLU9mZi1CeTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQG5vdmVsbC5jb20+CgpJbmRleDogMi42LjE0LW5sa2QvaW5jbHVkZS9s aW51eC9lcGZzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCisrKyAyLjYuMTQtbmxrZC9pbmNsdWRlL2xpbnV4L2VwZnMuaAkyMDA1 LTA2LTI3IDEyOjQ4OjMyLjAwMDAwMDAwMCArMDIwMApAQCAtMCwwICsxLDU2IEBACisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKyAqCisgKiAgIEZpbGUgTmFtZTogICAgICBlcGZzLmgKKyAqICAgQ3Jl YXRlZCBieTogICAgIEphbiBCZXVsaWNoCisgKiAgIERhdGUgY3JlYXRlZDogICAyOEFwcjIwMDUK KyAqCisgKiAgICV2ZXJzaW9uOiAgICAgICAyICUKKyAqICAgJWRlcml2ZWRfYnk6ICAgIGpiZXVs aWNoICUKKyAqICAgJWRhdGVfbW9kaWZpZWQ6IE1vbiBKdW4gMjcgMDQ6NDg6MjIgMjAwNSAlCisg KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICoKKyAqIENvcHlyaWdodCAoYykgMjAwNSBOb3ZlbGwsIEluYy4gQWxsIFJp Z2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yICAgICAgICAgICAgICoKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdmVyc2lvbiAyIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgKgorICogYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgICAgICAg ICAgKgorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YgICAgICAgICAgICAqCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgICAgICAgICAgICAgICoKKyAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgICAg ICAgICoKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIGNvbnRhY3QgTm92ZWxs LCBJbmMuICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBU byBjb250YWN0IE5vdmVsbCBhYm91dCB0aGlzIGZpbGUgYnkgcGh5c2ljYWwgb3IgZWxlY3Ryb25p YyBtYWlsLCAgICAgICAgICoKKyAqIHlvdSBtYXkgZmluZCBjdXJyZW50IGNvbnRhY3QgaW5mb3Jt YXRpb24gYXQgd3d3Lm5vdmVsbC5jb20uICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAq CisgKglGaWxlIERlc2NyaXB0aW9uOgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5k ZWYgX0xJTlVYX0VQRlNfSAorCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8 bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjaWYgZGVmaW5lZChD T05GSUdfRUFSTFlfUFNFVURPX0ZTKSAmJiAhZGVmaW5lZChNT0RVTEUpCisjIGRlZmluZSBFUEZT X0RFQ0xBUkUocHJvdG8sIHJldHZhbCkgcHJvdG87CisjZWxzZQorIyBkZWZpbmUgRVBGU19ERUNM QVJFKHByb3RvLCByZXR2YWwpIHN0YXRpYyBpbmxpbmUgcHJvdG8geyByZXR1cm4gcmV0dmFsOyB9 CisjZW5kaWYKKworRVBGU19ERUNMQVJFKGludCBlcGZzX29wZW4oY29uc3QgY2hhciAqbmFtZSks IC1FTk9TWVMpCitFUEZTX0RFQ0xBUkUoc2l6ZV90IGVwZnNfZ2V0X3NpemUoaW50IGZkKSwgfihz aXplX3QpMCkKK0VQRlNfREVDTEFSRShzaXplX3QgZXBmc19yZWFkKGludCBmZCwgc2l6ZV90IHBv cywgdm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSksIH4oc2l6ZV90KTApCitFUEZTX0RFQ0xBUkUoaW50 IGVwZnNfY2xvc2UoaW50IGZkKSwgLUVOT1NZUykKKworI3VuZGVmIEVQRlNfREVDTEFSRQorCisj ZW5kaWYgLyogX0xJTlVYX0VQRlNfSCAqLwpJbmRleDogMi42LjE0LW5sa2QvaW5pdC9LY29uZmln Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIDIuNi4xNC1ubGtkLm9yaWcvaW5pdC9LY29uZmlnCTIwMDUtMTEtMDkg MTA6MTk6MzUuMDAwMDAwMDAwICswMTAwCisrKyAyLjYuMTQtbmxrZC9pbml0L0tjb25maWcJMjAw NS0xMS0wNyAxMDo1MToxOS4wMDAwMDAwMDAgKzAxMDAKQEAgLTM0MCw2ICszNDAsMTYgQEAgY29u ZmlnIEJBU0VfRlVMTAogCSAga2VybmVsIGRhdGEgc3RydWN0dXJlcy4gVGhpcyBzYXZlcyBtZW1v cnkgb24gc21hbGwgbWFjaGluZXMsCiAJICBidXQgbWF5IHJlZHVjZSBwZXJmb3JtYW5jZS4KIAor Y29uZmlnIEVBUkxZX1BTRVVET19GUworCWJvb2wgIkVhcmx5IHBzZXVkbyBmaWxlIHN5c3RlbSBz dXBwb3J0IgorCWRlcGVuZHMgb24gQkxLX0RFVl9JTklUUkQKKwktLS1oZWxwLS0tCisJICBUaGlz IHBzZXVkbyBmaWxlIHN5c3RlbSBhbGxvd3MgYWNjZXNzIHRvIGNlcnRhaW4gKGNvbmZpZ3VyYXRp b24pCisJICBmaWxlcyBiZWZvcmUgYW55IHJlYWwgZmlsZSBzeXN0ZW0gaXMgYXZhaWxhYmxlLiBB IG1hdGNoaW5nIG1raW5pdHJkCisJICBvciBzaW1pbGFyIHNjcmlwdCBpcyByZXF1aXJlZCB0byBh Y3R1YWxseSBtYWtlIHVzZSBvZiB0aGlzLgorCisJICBJZiB1bnN1cmUsIHNheSBOLgorCiBjb25m aWcgRlVURVgKIAlib29sICJFbmFibGUgZnV0ZXggc3VwcG9ydCIgaWYgRU1CRURERUQKIAlkZWZh dWx0IHkKSW5kZXg6IDIuNi4xNC1ubGtkL2luaXQvTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gMi42 LjE0LW5sa2Qub3JpZy9pbml0L01ha2VmaWxlCTIwMDUtMTEtMDkgMTA6NDA6MTcuMDAwMDAwMDAw ICswMTAwCisrKyAyLjYuMTQtbmxrZC9pbml0L01ha2VmaWxlCTIwMDUtMTEtMDQgMTY6MTk6MzQu MDAwMDAwMDAwICswMTAwCkBAIC00LDYgKzQsNyBAQAogCiBvYmoteQkJCQk6PSBtYWluLm8gdmVy c2lvbi5vIG1vdW50cy5vIGluaXRyYW1mcy5vCiBvYmotJChDT05GSUdfR0VORVJJQ19DQUxJQlJB VEVfREVMQVkpICs9IGNhbGlicmF0ZS5vCitvYmotJChDT05GSUdfRUFSTFlfUFNFVURPX0ZTKQkr PSBlcGZzLm8KIAogbW91bnRzLXkJCQk6PSBkb19tb3VudHMubwogbW91bnRzLSQoQ09ORklHX0RF VkZTX0ZTKQkrPSBkb19tb3VudHNfZGV2ZnMubwpJbmRleDogMi42LjE0LW5sa2QvaW5pdC9lcGZz LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCisrKyAyLjYuMTQtbmxrZC9pbml0L2VwZnMuYwkyMDA1LTA2LTI3IDE2OjAyOjI4LjAw MDAwMDAwMCArMDIwMApAQCAtMCwwICsxLDE1MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg KgorICogICBGaWxlIE5hbWU6ICAgICAgZXBmcy5jCisgKiAgIENyZWF0ZWQgYnk6ICAgICBKYW4g QmV1bGljaAorICogICBEYXRlIGNyZWF0ZWQ6ICAgMjhBcHIyMDA1CisgKgorICogICAldmVyc2lv bjogICAgICAgMiAlCisgKiAgICVkZXJpdmVkX2J5OiAgICBqYmV1bGljaCAlCisgKiAgICVkYXRl X21vZGlmaWVkOiBNb24gSnVuIDI3IDA4OjAyOjE3IDIwMDUgJQorICoKKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisg KiBDb3B5cmlnaHQgKGMpIDIwMDUgTm92ZWxsLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAg ICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAg ICAgICAgICAqCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHZlcnNpb24gMiBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgICoKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgor ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgICAgICAgICAgICoKKyAqIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAg ICAgICAgICAgKgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiBTZWUgdGhlICAgICAgICAgICAgICAqCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgICAgICAgICAqCisgKiBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBjb250YWN0IE5vdmVsbCwgSW5jLiAgICAgICAgICAg ICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogVG8gY29udGFjdCBOb3ZlbGwg YWJvdXQgdGhpcyBmaWxlIGJ5IHBoeXNpY2FsIG9yIGVsZWN0cm9uaWMgbWFpbCwgICAgICAgICAq CisgKiB5b3UgbWF5IGZpbmQgY3VycmVudCBjb250YWN0IGluZm9ybWF0aW9uIGF0IHd3dy5ub3Zl bGwuY29tLiAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJRmlsZSBEZXNjcmlw dGlvbjoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSA8bGludXgvZXBmcy5o PgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0cmQuaD4KKyNp bmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKworc3Rh dGljIGlubGluZSBpbnQgX19pbml0IGNoZWNrX3N5cyh2b2lkKQoreworCXJldHVybiBpbml0cmRf c3RhcnQgJiYgaW5pdHJkX2VuZCA+IGluaXRyZF9zdGFydDsKK30KKworc3RhdGljIGNvbnN0IGNo YXIgKl9faW5pdCBmaW5kKGNvbnN0IGNoYXIgKnRhcmdldCwgaW50ICpmZCkKK3sKKwljb25zdCBj aGFyICpjb25zdCBzdGFydCA9IChjaGFyICopaW5pdHJkX3N0YXJ0OworCWNvbnN0IGNoYXIgKnB0 ciA9IChjaGFyICopaW5pdHJkX2VuZCAtIDE7CisJY29uc3QgY2hhciAqZm91bmQgPSBOVUxMOwor CXNpemVfdCBwcmV2OworCisJLyogY2hlY2sgaW5pdGlhbCBsaW5rICovCisJaWYgKCpwdHIpIHsK KwkJKmZkID0gLUVOT1NZUzsKKwkJcmV0dXJuIE5VTEw7CisJfQorCXdoaWxlICgtLXB0ciA+IHN0 YXJ0KQorCQlpZiAoKCpwdHIgPCAnMCcgfHwgKnB0ciA+ICc5JykgJiYgKCpwdHIgPCAnQScgfHwg KnB0ciA+ICdGJykpCisJCQlicmVhazsKKwlpZiAocHRyIDw9IHN0YXJ0IHx8ICpwdHIpIHsKKwkJ KmZkID0gLUVOT1NZUzsKKwkJcmV0dXJuIE5VTEw7CisJfQorCWlmICh0YXJnZXQpCisJCSpmZCA9 IDA7CisJLyogc2NhbiBsaXN0ICovCisJZm9yIChwcmV2ID0gcHRyIC0gc3RhcnQ7IDsgKSB7CisJ CWNoYXIgKnRhaWw7CisJCWNvbnN0IHNpemVfdCBjdXIgPSBzaW1wbGVfc3RydG91bChwdHIgKyAx LCAmdGFpbCwgMTYpOworCQljb25zdCBjaGFyICpjb25zdCBuYW1lID0gc3RhcnQgKyBjdXI7CisJ CXNpemVfdCBzaXplOworCisJCWlmICghKnRhaWwgJiYgIWN1cikKKwkJCWJyZWFrOworCQlpZiAo KnRhaWwKKwkJICAgIHx8IGN1ciA8PSAwCisJCSAgICB8fCBjdXIgPj0gcHJldgorCQkgICAgfHwg Km5hbWUgIT0gJy8nCisJCSAgICB8fCAodGFpbCA9IG1lbWNocihuYW1lLCAwLCBwcmV2IC0gY3Vy KSkgPT0gTlVMTAorCQkgICAgfHwgKHB0ciA9IG1lbWNocih0YWlsICsgMSwgMCwgKHByZXYgLSBj dXIpIC0gKHRhaWwgKyAxIC0gbmFtZSkpKSA9PSBOVUxMCisJCSAgICB8fCAoc2l6ZSA9IHNpbXBs ZV9zdHJ0b3VsKHRhaWwgKyAxLCAmdGFpbCwgMTYpLCB0YWlsICE9IHB0cikKKwkJICAgIHx8ICh0 YWlsID0gbWVtY2hyKHB0ciArIDEsIDAsIChwcmV2IC0gY3VyKSAtIChwdHIgKyAxIC0gbmFtZSkp KSA9PSBOVUxMCisJCSAgICB8fCBzaXplICsgKHRhaWwgKyAxIC0gbmFtZSkgIT0gcHJldiAtIGN1 cikgeworCQkJKmZkID0gLUVOT1NZUzsKKwkJCWJyZWFrOworCQl9CisJCWlmICghZm91bmQpIHsK KwkJCWlmICh0YXJnZXQpIHsKKwkJCQkrKypmZDsKKwkJCQlpZighc3RyY21wKHRhcmdldCwgbmFt ZSkpCisJCQkJCWZvdW5kID0gbmFtZTsKKwkJCX0KKwkJCWVsc2UgaWYgKCEtLSpmZCkKKwkJCQlm b3VuZCA9IG5hbWU7CisJCX0KKwkJcHJldiA9IGN1cjsKKwl9CisJcmV0dXJuIGZvdW5kOworfQor CitpbnQgX19pbml0IGVwZnNfb3Blbihjb25zdCBjaGFyICpuYW1lKQoreworCWludCBmZDsKKwor CWlmICghY2hlY2tfc3lzKCkpCisJCXJldHVybiAtRU5PU1lTOworCWlmICghbmFtZSkKKwkJcmV0 dXJuIC1FSU5WQUw7CisJaWYgKCFmaW5kKG5hbWUsICZmZCkpCisJCXJldHVybiAtRU5PRU5UOwor CXJldHVybiBmZDsKK30KKworc2l6ZV90IF9faW5pdCBlcGZzX2dldF9zaXplKGludCBmZCkKK3sK Kwljb25zdCBjaGFyICpzdGFydDsKKworCWlmICghY2hlY2tfc3lzKCkgfHwgIShzdGFydCA9IGZp bmQoTlVMTCwgJmZkKSkpCisJCXJldHVybiB+KHNpemVfdCkwOworCXJldHVybiBzaW1wbGVfc3Ry dG91bChzdGFydCArIHN0cmxlbihzdGFydCkgKyAxLCBOVUxMLCAxNik7Cit9CisKK3NpemVfdCBf X2luaXQgZXBmc19yZWFkKGludCBmZCwgc2l6ZV90IHBvcywgdm9pZCAqYnVmLCBzaXplX3QgbGVu KQoreworCWNvbnN0IGNoYXIgKnN0YXJ0OworCXNpemVfdCBzaXplOworCisJaWYgKCFjaGVja19z eXMoKSB8fCAhKHN0YXJ0ID0gZmluZChOVUxMLCAmZmQpKSkKKwkJcmV0dXJuIH4oc2l6ZV90KTA7 CisJc2l6ZSA9IHNpbXBsZV9zdHJ0b3VsKHN0YXJ0ICs9IHN0cmxlbihzdGFydCkgKyAxLCBOVUxM LCAxNik7CisJaWYgKHBvcyA+PSBzaXplKQorCQlyZXR1cm4gMDsKKwlpZiAobGVuID4gc2l6ZSAt IHBvcykKKwkJbGVuID0gc2l6ZSAtIHBvczsKKwlzdGFydCArPSBzdHJsZW4oc3RhcnQpICsgMTsg Lyogc2tpcCBzaXplICovCisJc3RhcnQgKz0gc3RybGVuKHN0YXJ0KSArIDE7IC8qIHNraXAgbGlu ayAqLworCW1lbWNweShidWYsIHN0YXJ0ICsgcG9zLCBsZW4pOworCXJldHVybiBzaXplOworfQor CitpbnQgX19pbml0IGVwZnNfY2xvc2UoaW50IGZkKQoreworCWlmICghY2hlY2tfc3lzKCkpCisJ CXJldHVybiAtRU5PU1lTOworCWlmICghZmluZChOVUxMLCAmZmQpKQorCQlyZXR1cm4gLUVJTlZB TDsKKwlyZXR1cm4gMDsKK30K --=__Part785A4422.0__=--