From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HC5bf-0006xI-0v for qemu-devel@nongnu.org; Tue, 30 Jan 2007 21:53:55 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HC5be-0006x6-5N for qemu-devel@nongnu.org; Tue, 30 Jan 2007 21:53:54 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HC5be-0006x3-1Y for qemu-devel@nongnu.org; Tue, 30 Jan 2007 21:53:54 -0500 Received: from out4.smtp.messagingengine.com ([66.111.4.28]) by monty-python.gnu.org with esmtp (Exim 4.52) id 1HC5bd-0006Mq-Db for qemu-devel@nongnu.org; Tue, 30 Jan 2007 21:53:53 -0500 Message-Id: <1170212032.18041.1172096513@webmail.messagingengine.com> From: jbrown105@speedymail.org Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1170212032180410"; charset="iso-8859-1" MIME-Version: 1.0 Subject: [Qemu-devel] updated block-partition driver Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Wed, 31 Jan 2007 02:53:55 -0000 To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --_----------=_1170212032180410 Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 X-Mailer: MessagingEngine.com Webmail Interface Date: Wed, 31 Jan 2007 02:53:52 UT This edition is finally able to construct a real partition table. Still buggy (linux fdisk complains about it) but partitions are mountable inside the VM. The full syntax is: qemu -hda partition:boot=1,bootloader=bootmbr.bin,/dev/hda1,sysid=0xC,partition.raw,sysid=ox82,/dev/sda2,sysid=0x83 You can simplify it though (assuming /dev/hda1 holds a FAT32 filesystem): qemu -hda partition:/dev/hda1 Good luck. -- jbrown105@speedymail.org -- http://www.fastmail.fm - Send your email first class --_----------=_1170212032180410 Content-Disposition: attachment; filename="block_composite.h" Content-Transfer-Encoding: base64 Content-Type: text/plain; name="block_composite.h" MIME-Version: 1.0 X-Mailer: MessagingEngine.com Webmail Interface Date: Wed, 31 Jan 2007 02:53:52 UT LyoKICogQmxvY2sgZHJpdmVyIHRvIHVzZSBjb21wb3NpdGUgaW1hZ2VzCiAq IAogKiBDb3B5cmlnaHQgKGMpIDIwMDcgSmltIEJyb3duCiAqIAogKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiAqIG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLCB0byBkZWFsCiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRo ZSByaWdodHMKICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAogKiBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKICogZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKICoKICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KICogYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCiAqCiAq IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAogKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFM TAogKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgogKiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAogKiBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS IERFQUxJTkdTIElOCiAqIFRIRSBTT0ZUV0FSRS4KICovCiNpZm5kZWYgQkxP Q0tfQ09NUE9TSVRFX0gKI2RlZmluZSBCTE9DS19DT01QT1NJVEVfSAoKI2lu Y2x1ZGUgInZsLmgiCiNpbmNsdWRlICJibG9ja19pbnQuaCIKCnR5cGVkZWYg c3RydWN0IFNsYXZlRHJpdmVyU3RhdGUgewogICAgQmxvY2tEcml2ZXJTdGF0 ZSAqIGJzOwogICAgaW50IHN0YXJ0X3NlY3RvcjsKICAgIGludCBlbmRfc2Vj dG9yOwp9IFNsYXZlRHJpdmVyU3RhdGU7Cgp0eXBlZGVmIHN0cnVjdCBCRFJW UGFydFN0YXRlIHsKICAgIFNsYXZlRHJpdmVyU3RhdGUgKiBzbGF2ZV9iczsK ICAgIGludCBzbGF2ZV9jb3VudDsKfSBCRFJWUGFydFN0YXRlOwoKI2VuZGlm IC8qQkxPQ0tfQ09NUE9TSVRFX0gqLwo= --_----------=_1170212032180410 Content-Disposition: attachment; filename="block-composite.c" Content-Transfer-Encoding: base64 Content-Type: text/plain; name="block-composite.c" MIME-Version: 1.0 X-Mailer: MessagingEngine.com Webmail Interface Date: Wed, 31 Jan 2007 02:53:52 UT LyoKICogQmxvY2sgZHJpdmVyIHRvIHVzZSBjb21wb3NpdGUgaW1hZ2VzCiAq IAogKiBDb3B5cmlnaHQgKGMpIDIwMDcgSmltIEJyb3duCiAqIAogKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiAqIG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLCB0byBkZWFsCiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRo ZSByaWdodHMKICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAogKiBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKICogZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKICoKICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KICogYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCiAqCiAq IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAogKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFM TAogKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgogKiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAogKiBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS IERFQUxJTkdTIElOCiAqIFRIRSBTT0ZUV0FSRS4KICovCgojaW5jbHVkZSAi YmxvY2tfY29tcG9zaXRlLmgiCgpzdGF0aWMgaW50IGNvbXBvc2l0ZV9wcm9i ZShjb25zdCB1aW50OF90ICpidWYsIGludCBidWZfc2l6ZSwgY29uc3QgY2hh ciAqZmlsZW5hbWUpCnsKICAgIGlmIChzdHJzdGFydChmaWxlbmFtZSwgImNv bXBvc2l0ZToiLCBOVUxMKSkKICAgICAgICByZXR1cm4gMTAwOwogICAgcmV0 dXJuIDA7Cn0KCnN0YXRpYyBpbnQgY29tcG9zaXRlX29wZW4oQmxvY2tEcml2 ZXJTdGF0ZSAqYnMsIGNvbnN0IGNoYXIgKm5maWxlbmFtZSwgaW50IGZsYWdz KQp7CiAgICBCRFJWUGFydFN0YXRlICpzID0gYnMtPm9wYXF1ZTsKICAgIEJs b2NrRHJpdmVyU3RhdGUgKiBzbGF2ZV9iczsKICAgIGludCBwcmV2aW91c19z dGFydCwgZmlsZV9jb3VudCA9IDEsIGk7CiAgICBjb25zdCBjaGFyICogemZp bGVuYW1lID0gJihuZmlsZW5hbWVbMTBdKSwgKiBucHRyID0gemZpbGVuYW1l OwogICAgY2hhciAqIGZpbGVuYW1lOwoKICAgIGJzLT5yZWFkX29ubHkgPSAw OwogICAgcy0+c2xhdmVfY291bnQgPSAwOwogICAgcHJldmlvdXNfc3RhcnQg PSAwOwoKICAgIHdoaWxlIChucHRyICE9IE5VTEwpCiAgICB7CiAgICAJbnB0 ciA9IHN0cmNocihucHRyLCAnLCcpKzE7CiAgICAJaWYgKChucHRyLTEpICE9 IE5VTEwpCiAgICAJewoJCWZpbGVfY291bnQrKzsKCX0KCWVsc2UKCXsKCQlu cHRyID0gTlVMTDsKCX0KICAgIH0KICAgIHMtPnNsYXZlX2JzID0gcWVtdV9t YWxsb2N6KHNpemVvZihTbGF2ZURyaXZlclN0YXRlKSpmaWxlX2NvdW50KTsK ICAgIGlmIChzLT5zbGF2ZV9icyA9PSBOVUxMKSByZXR1cm4gLTE7CiAgICBu cHRyID0gemZpbGVuYW1lOwoKICAgIHdoaWxlIChucHRyICE9IE5VTEwpCiAg ICB7CiAgICAJbnB0ciA9IHN0cmNocih6ZmlsZW5hbWUsICcsJykrMTsKICAg IAlpZiAoKG5wdHItMSkgIT0gTlVMTCkKICAgIAl7CiAgICAJCWZpbGVuYW1l ID0gc3RybmR1cCh6ZmlsZW5hbWUsIChzaXplX3QpKChucHRyLTEpLXpmaWxl bmFtZSkpOwogICAgCQl6ZmlsZW5hbWUgPSBucHRyOwogICAgCX0KICAgIAll bHNlCiAgICAJewogICAgCQlmaWxlbmFtZSA9IHN0cmR1cCh6ZmlsZW5hbWUp OwoJCW5wdHIgPSBOVUxMOwogICAgCX0KCiAgICAJc2xhdmVfYnMgPSBxZW11 X21hbGxvY3ooc2l6ZW9mKEJsb2NrRHJpdmVyU3RhdGUpKTsKICAgIAlpZiAo KHNsYXZlX2JzID09IE5VTEwpIHx8IChiZHJ2X29wZW4yKHNsYXZlX2JzLCBm aWxlbmFtZSwgMCwgTlVMTCkgIT0gMCkpCiAgICAJewoJCWZvciAoaSA9IDA7 IGkgPCBzLT5zbGF2ZV9jb3VudDsgaSsrKQoJCXsKCQkJYmRydl9jbG9zZShz LT5zbGF2ZV9ic1tpXS5icyk7CgkJCXFlbXVfZnJlZShzLT5zbGF2ZV9ic1tp XS5icyk7CgkJfQoJCXFlbXVfZnJlZShzLT5zbGF2ZV9icyk7CiAgICAJCXJl dHVybiAtMTsKICAgIAl9CglmcmVlKGZpbGVuYW1lKTsKCiAgICAJcy0+c2xh dmVfYnNbcy0+c2xhdmVfY291bnRdLmJzID0gc2xhdmVfYnM7CiAgICAJcy0+ c2xhdmVfYnNbcy0+c2xhdmVfY291bnRdLnN0YXJ0X3NlY3RvciA9IHByZXZp b3VzX3N0YXJ0OwoJcHJldmlvdXNfc3RhcnQgPSBwcmV2aW91c19zdGFydCAr IHMtPnNsYXZlX2JzW3MtPnNsYXZlX2NvdW50XS5icy0+dG90YWxfc2VjdG9y czsKICAgIAlzLT5zbGF2ZV9jb3VudCsrOwogICAgCWlmIChzbGF2ZV9icy0+ cmVhZF9vbmx5KQoJewogICAgCQlicy0+cmVhZF9vbmx5ID0gMTsKICAgIAl9 CiAgICB9CgogICAgYnMtPnRvdGFsX3NlY3RvcnMgPSBwcmV2aW91c19zdGFy dDsKCiAgICByZXR1cm4gMDsKfQoKc3RhdGljIGludCBjb21wb3NpdGVfcmVh ZChCbG9ja0RyaXZlclN0YXRlICpicywgaW50NjRfdCBzZWN0b3JfbnVtLCAK ICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpidWYsIGludCBuYl9zZWN0 b3JzKQp7CiAgICBCRFJWUGFydFN0YXRlICpzID0gYnMtPm9wYXF1ZTsKICAg IGludCByZXQsc3N0YXJ0LHNlbmQsaTsKCiAgICBzc3RhcnQgPSAtMTsKICAg IGZvciAoaSA9IDA7IGkgPCBzLT5zbGF2ZV9jb3VudDsgaSsrKQogICAgewoJ ICAgIGlmICgocy0+c2xhdmVfYnNbaV0uc3RhcnRfc2VjdG9yICsKCQkJICAg IHMtPnNsYXZlX2JzW2ldLmJzLT50b3RhbF9zZWN0b3JzID4gc2VjdG9yX251 bSkKCQkJICAgICYmIChzLT5zbGF2ZV9ic1tpXS5zdGFydF9zZWN0b3IgPD0g c2VjdG9yX251bSkpCgkgICAgewoJCSAgICBzc3RhcnQgPSBpOwoJCSAgICBi cmVhazsKCSAgICB9CiAgICB9CiAgICBpZiAoc3N0YXJ0ID09IC0xKSByZXR1 cm4gLTE7CgogICAgc2VuZCA9IC0xOwogICAgZm9yIChpID0gMDsgaSA8IHMt PnNsYXZlX2NvdW50OyBpKyspCiAgICB7CgkgICAgaWYoKHMtPnNsYXZlX2Jz W2ldLnN0YXJ0X3NlY3RvciArIHMtPnNsYXZlX2JzW2ldLmJzLT50b3RhbF9z ZWN0b3JzCgkJCSAgICA+IHNlY3Rvcl9udW0rbmJfc2VjdG9ycykKCQkJICAg ICYmIChzLT5zbGF2ZV9ic1tpXS5zdGFydF9zZWN0b3IKCQkJICAgIDw9IHNl Y3Rvcl9udW0rbmJfc2VjdG9ycykpCgkgICAgewoJCSAgICBzZW5kID0gaTsK CQkgICAgYnJlYWs7CgkgICAgfQogICAgfQogICAgaWYgKHNlbmQgPT0gLTEp IHJldHVybiAtMTsKCiAgICBpZiAoc3N0YXJ0ID4gc2VuZCkgcmV0dXJuIC0y OyAvL3d0Zj8/PwoKICAgIGludCBhID0gMCwgYiA9IDAsIGJ1ZnBvcyA9IDA7 CiAgICBpID0gc3N0YXJ0OwogICAgd2hpbGUgKGkgPCBzZW5kKQogICAgewoJ ICAgIGEgPSBzLT5zbGF2ZV9ic1tpXS5icy0+dG90YWxfc2VjdG9yczsKCSAg ICByZXQgPSBiZHJ2X3JlYWQocy0+c2xhdmVfYnNbaV0uYnMsIHNlY3Rvcl9u dW0rYiwgJihidWZbYnVmcG9zXSksIGEpOwoJICAgIGlmIChyZXQgIT0gMCkg cmV0dXJuIHJldDsKCSAgICBiID0gYithOwoJICAgIGJ1ZnBvcyA9IGJ1ZnBv cyArIChhICogNTEyKTsKCSAgICBpKys7CiAgICB9CiAgICByZXR1cm4gYmRy dl9yZWFkKHMtPnNsYXZlX2JzW3NlbmRdLmJzLCBzZWN0b3JfbnVtK2IsICYo YnVmW2J1ZnBvc10pLCBuYl9zZWN0b3JzLWIpOwp9CgpzdGF0aWMgaW50IGNv bXBvc2l0ZV93cml0ZShCbG9ja0RyaXZlclN0YXRlICpicywgaW50NjRfdCBz ZWN0b3JfbnVtLCAKICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhf dCAqYnVmLCBpbnQgbmJfc2VjdG9ycykKewogICAgQkRSVlBhcnRTdGF0ZSAq cyA9IGJzLT5vcGFxdWU7CiAgICBpbnQgcmV0LHNzdGFydCxzZW5kLGk7Cgog ICAgc3N0YXJ0ID0gLTE7CiAgICBmb3IgKGkgPSAwOyBpIDwgcy0+c2xhdmVf Y291bnQ7IGkrKykKICAgIHsKCSAgICBpZiAoKHMtPnNsYXZlX2JzW2ldLnN0 YXJ0X3NlY3RvciArCgkJCSAgICBzLT5zbGF2ZV9ic1tpXS5icy0+dG90YWxf c2VjdG9ycyA+IHNlY3Rvcl9udW0pCgkJCSAgICAmJiAocy0+c2xhdmVfYnNb aV0uc3RhcnRfc2VjdG9yIDw9IHNlY3Rvcl9udW0pKQoJICAgIHsKCQkgICAg c3N0YXJ0ID0gaTsKCQkgICAgYnJlYWs7CgkgICAgfQogICAgfQogICAgaWYg KHNzdGFydCA9PSAtMSkgcmV0dXJuIC0xOwoKICAgIHNlbmQgPSAtMTsKICAg IGZvciAoaSA9IDA7IGkgPCBzLT5zbGF2ZV9jb3VudDsgaSsrKQogICAgewoJ ICAgIGlmKChzLT5zbGF2ZV9ic1tpXS5zdGFydF9zZWN0b3IgKyBzLT5zbGF2 ZV9ic1tpXS5icy0+dG90YWxfc2VjdG9ycwoJCQkgICAgPiBzZWN0b3JfbnVt K25iX3NlY3RvcnMpCgkJCSAgICAmJiAocy0+c2xhdmVfYnNbaV0uc3RhcnRf c2VjdG9yCgkJCSAgICA8PSBzZWN0b3JfbnVtK25iX3NlY3RvcnMpKQoJICAg IHsKCQkgICAgc2VuZCA9IGk7CgkJICAgIGJyZWFrOwoJICAgIH0KICAgIH0K ICAgIGlmIChzZW5kID09IC0xKSByZXR1cm4gLTE7CgogICAgaWYgKHNzdGFy dCA+IHNlbmQpIHJldHVybiAtMjsgLy93dGY/Pz8KCiAgICBpbnQgYSA9IDAs IGIgPSAwLCBidWZwb3MgPSAwOwogICAgaSA9IHNzdGFydDsKICAgIHdoaWxl IChpIDwgc2VuZCkKICAgIHsKCSAgICBhID0gcy0+c2xhdmVfYnNbaV0uYnMt PnRvdGFsX3NlY3RvcnM7CgkgICAgcmV0ID0gYmRydl93cml0ZShzLT5zbGF2 ZV9ic1tpXS5icywgc2VjdG9yX251bStiLCAmKGJ1ZltidWZwb3NdKSwgYSk7 CgkgICAgaWYgKHJldCAhPSAwKSByZXR1cm4gcmV0OwoJICAgIGIgPSBiK2E7 CgkgICAgYnVmcG9zID0gYnVmcG9zICsgKGEgKiA1MTIpOwoJICAgIGkrKzsK ICAgIH0KICAgIGk9IGJkcnZfd3JpdGUocy0+c2xhdmVfYnNbc2VuZF0uYnMs IHNlY3Rvcl9udW0rYiwgJihidWZbYnVmcG9zXSksIG5iX3NlY3RvcnMtYik7 CiAgICByZXR1cm4gaTsKfQoKc3RhdGljIHZvaWQgY29tcG9zaXRlX2Nsb3Nl KEJsb2NrRHJpdmVyU3RhdGUgKmJzKQp7CiAgICBCRFJWUGFydFN0YXRlICpz ID0gYnMtPm9wYXF1ZTsKICAgIGludCBpOwogICAgZm9yIChpID0gMDsgaSA8 IHMtPnNsYXZlX2NvdW50OyBpKyspCiAgICB7CiAgICAgICAgYmRydl9jbG9z ZShzLT5zbGF2ZV9ic1tpXS5icyk7CiAgICAgICAgcWVtdV9mcmVlKHMtPnNs YXZlX2JzW2ldLmJzKTsKICAgIH0KICAgIHFlbXVfZnJlZShzLT5zbGF2ZV9i cyk7CiAgICBzLT5zbGF2ZV9icyA9IE5VTEw7Cn0KCnN0YXRpYyBpbnQgY29t cG9zaXRlX2NyZWF0ZShjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50NjRfdCB0 b3RhbF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq YmFja2luZ19maWxlLCBpbnQgZmxhZ3MpCnsKICAgIC8qIHdoYXQgd291bGQg YmUgdGhlIHBvaW50Li4uIGp1c3QgbWFrZSBhIHJhdyBvciBxY293ICovCiAg ICByZXR1cm4gLUVOT1RTVVA7Cn0KCkJsb2NrRHJpdmVyIGJkcnZfY29tcG9z aXRlID0gewogICAgImNvbXBvc2l0ZSIsCiAgICBzaXplb2YoQkRSVlBhcnRT dGF0ZSksCiAgICBjb21wb3NpdGVfcHJvYmUsCiAgICBjb21wb3NpdGVfb3Bl biwKICAgIGNvbXBvc2l0ZV9yZWFkLAogICAgY29tcG9zaXRlX3dyaXRlLAog ICAgY29tcG9zaXRlX2Nsb3NlLAogICAgY29tcG9zaXRlX2NyZWF0ZSwKICAg IC5wcm90b2NvbF9uYW1lID0gImNvbXBvc2l0ZSIsCn07Cgo= --_----------=_1170212032180410 Content-Disposition: attachment; filename="block-ram.c" Content-Transfer-Encoding: base64 Content-Type: text/plain; name="block-ram.c" MIME-Version: 1.0 X-Mailer: MessagingEngine.com Webmail Interface Date: Wed, 31 Jan 2007 02:53:52 UT LyoKICogQmxvY2sgZHJpdmVyIGluIFJBTQogKiAKICogQ29weXJpZ2h0IChj KSAyMDA3IEppbSBCb293bgogKiAKICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEgY29weQogKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVh bAogKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCiAqIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwgYW5kL29yIHNlbGwKICogY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3 YXJlIGlzCiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6CiAqCiAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl IGluY2x1ZGVkIGluCiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y dGlvbnMgb2YgdGhlIFNvZnR3YXJlLgogKgogKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwgRVhQUkVTUyBPUgogKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwK ICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKICogVEhFIEFVVEhPUlMg T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s IERBTUFHRVMgT1IgT1RIRVIKICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ TkcgRlJPTSwKICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUg U09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgogKiBU SEUgU09GVFdBUkUuCiAqLwojaW5jbHVkZSAidmwuaCIKI2luY2x1ZGUgImJs b2NrX2ludC5oIgojaW5jbHVkZSA8YXNzZXJ0Lmg+CgojaWZuZGVmIFFFTVVf VE9PTAojaW5jbHVkZSAiZXhlYy1hbGwuaCIKI2VuZGlmCgp0eXBlZGVmIHN0 cnVjdCBCRFJWUmFtU3RhdGUgewogICAgY2hhciAqIHJhbV9kYXRhOwp9IEJE UlZSYW1TdGF0ZTsKCnN0YXRpYyBpbnQgcmFtX3Byb2JlKGNvbnN0IHVpbnQ4 X3QgKmJ1ZiwgaW50IGJ1Zl9zaXplLCBjb25zdCBjaGFyICpmaWxlbmFtZSkK ewogICAgaWYgKHN0cnN0YXJ0KGZpbGVuYW1lLCAicmFtOiIsIE5VTEwpKQoJ ICAgIHJldHVybiAxMDA7CiAgICByZXR1cm4gMDsKfQpzdGF0aWMgaW50IHJh bV9vcGVuKEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBjb25zdCBjaGFyICpmaWxl bmFtZSwgaW50IGZsYWdzKQp7CiAgICBCRFJWUmFtU3RhdGUgKnMgPSBicy0+ b3BhcXVlOwoKICAgIGlmICghc3Ryc3RhcnQoZmlsZW5hbWUsICJyYW06Iiwg TlVMTCkpCgkgICAgcmV0dXJuIC0xOwoKICAgIGludCBzZWN0bnVtID0gYXRv aShmaWxlbmFtZSs0KTsKICAgIGlmIChzZWN0bnVtID09IDApIHJldHVybiAt MjsKCiAgICBzLT5yYW1fZGF0YSA9IHFlbXVfbWFsbG9jeihzZWN0bnVtKjUx Mik7CiAgICBpZiAocy0+cmFtX2RhdGEgPT0gTlVMTCkgcmV0dXJuIC0yOwog ICAgbWVtc2V0KHMtPnJhbV9kYXRhLCAnICcsIHNlY3RudW0qNTEyKTsKCiAg ICBicy0+dG90YWxfc2VjdG9ycyA9IHNlY3RudW07CiAgICByZXR1cm4gMDsK fQoKc3RhdGljIGludCByYW1fcmVhZChCbG9ja0RyaXZlclN0YXRlICpicywg aW50NjRfdCBzZWN0b3JfbnVtLCAKICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCAqYnVmLCBpbnQgbmJfc2VjdG9ycykKewogICAgQkRSVlJhbVN0YXRl ICpzID0gYnMtPm9wYXF1ZTsKICAgIGlmIChzZWN0b3JfbnVtK25iX3NlY3Rv cnMgPiBicy0+dG90YWxfc2VjdG9ycykKCSAgICAJcmV0dXJuIC0xOwogICAg bWVtY3B5KGJ1ZiwgJihzLT5yYW1fZGF0YVtzZWN0b3JfbnVtKjUxMl0pLCBu Yl9zZWN0b3JzKjUxMik7CiAgICByZXR1cm4gMDsKfQoKc3RhdGljIGludCBy YW1fd3JpdGUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIGludDY0X3Qgc2VjdG9y X251bSwgCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpi dWYsIGludCBuYl9zZWN0b3JzKQp7CiAgICBCRFJWUmFtU3RhdGUgKnMgPSBi cy0+b3BhcXVlOwogICAgaWYgKHNlY3Rvcl9udW0rbmJfc2VjdG9ycyA+IGJz LT50b3RhbF9zZWN0b3JzKQoJICAgIAlyZXR1cm4gLTE7CiAgICBtZW1jcHko JihzLT5yYW1fZGF0YVtzZWN0b3JfbnVtKjUxMl0pLCBidWYsIG5iX3NlY3Rv cnMqNTEyKTsKICAgIHJldHVybiAwOwp9CgpzdGF0aWMgdm9pZCByYW1fY2xv c2UoQmxvY2tEcml2ZXJTdGF0ZSAqYnMpCnsKICAgIEJEUlZSYW1TdGF0ZSAq cyA9IGJzLT5vcGFxdWU7CiAgICBxZW11X2ZyZWUocy0+cmFtX2RhdGEpOwp9 CgpzdGF0aWMgaW50IHJhbV9pc19hbGxvY2F0ZWQoQmxvY2tEcml2ZXJTdGF0 ZSAqYnMsCiAgICAgICAgaW50NjRfdCBzZWN0b3JfbnVtLCBpbnQgbmJfc2Vj dG9ycywgaW50KiBuKQp7CiAgICAqbiA9IGJzLT50b3RhbF9zZWN0b3JzIC0g c2VjdG9yX251bTsKICAgIGlmICgqbiA+IG5iX3NlY3RvcnMpCiAgICAgICAg Km4gPSBuYl9zZWN0b3JzOwogICAgZWxzZSBpZiAoKm4gPCAwKQogICAgICAg IHJldHVybiAwOwogICAgcmV0dXJuIDE7Cn0KCkJsb2NrRHJpdmVyIGJkcnZf cmFtID0gewogICAgInJhbSIsCiAgICBzaXplb2YoQkRSVlJhbVN0YXRlKSwK ICAgIHJhbV9wcm9iZSwKICAgIHJhbV9vcGVuLAogICAgcmFtX3JlYWQsCiAg ICByYW1fd3JpdGUsCiAgICByYW1fY2xvc2UsCiAgICBOVUxMLAogICAgTlVM TCwKICAgIHJhbV9pc19hbGxvY2F0ZWQsCiAgIC5wcm90b2NvbF9uYW1lID0g InJhbSIsCn07Cg== --_----------=_1170212032180410 Content-Disposition: attachment; filename="block-partition.c" Content-Transfer-Encoding: base64 Content-Type: text/plain; name="block-partition.c" MIME-Version: 1.0 X-Mailer: MessagingEngine.com Webmail Interface Date: Wed, 31 Jan 2007 02:53:52 UT LyoKICogQmxvY2sgZHJpdmVyIHRvIHVzZSBwYXJ0aXRpb25zIGFzIGhhcmQg ZGlza3MKICogCiAqIENvcHlyaWdodCAoYykgMjAwNyBKaW0gQnJvd24KICog CiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJl IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0 YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz ZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQg dG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z OgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2Fy ZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVW RU5UIFNIQUxMCiAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIgREVBTElOR1MgSU4KICogVEhFIFNPRlRXQVJFLgogKi8KCi8q IHdlIG5lZWQgdGhpcyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGZpZ3VyZSBv dXQgdGhlIHNpemVzIG9mIHRoZSBpbmRpdmlkdWFsIHBhcnRpdGlvbnMgKi8K I2luY2x1ZGUgImJsb2NrX2NvbXBvc2l0ZS5oIgoKLyogaW4gc2VjdG9ycyAq LwojZGVmaW5lIE1CUl9TSVpFIDYzCgovKiBpZGVhbGx5IHRoaXMgd291bGQg YmUgZHluYW1pY2FsbHkgYWxsb2NhdGVkICovCiNkZWZpbmUgTUFYX1BBUlRf U1RSSU5HIDQwOTYKCnR5cGVkZWYgc3RydWN0IENvbXBvc2l0ZURyaXZlclN0 YXRlIHsKICAgIEJsb2NrRHJpdmVyU3RhdGUgKiBiczsKfSBDb21wb3NpdGVE cml2ZXJTdGF0ZTsKCnN0YXRpYyBpbnQgcGFydGl0aW9uX3Byb2JlKGNvbnN0 IHVpbnQ4X3QgKmJ1ZiwgaW50IGJ1Zl9zaXplLCBjb25zdCBjaGFyICpmaWxl bmFtZSkKewogICAgaWYgKHN0cnN0YXJ0KGZpbGVuYW1lLCAicGFydGl0aW9u OiIsIE5VTEwpKQogICAgICAgIHJldHVybiAxMDA7CiAgICByZXR1cm4gMDsK fQoKc3RhdGljIGludCBwYXJ0aXRpb25fb3BlbihCbG9ja0RyaXZlclN0YXRl ICpicywgY29uc3QgY2hhciAqbmZpbGVuYW1lLCBpbnQgZmxhZ3MpCnsKICAg IENvbXBvc2l0ZURyaXZlclN0YXRlICpzID0gYnMtPm9wYXF1ZTsKICAgIEJs b2NrRHJpdmVyU3RhdGUgKiBiYnM7CiAgICBpbnQ2NF90IHNpemUsIHRvdGFs c2VjdG9yczsKICAgIGludCBib290X2ZkLCBpLCBib290aWQgPSAxLCBwYXJ0 aXRpb25fY291bnQgPSAwOwogICAgaW50IGhlYWQsIGN5bGluZGVyLCBzZWN0 b3IsIG9sZHN0YXJ0OwogICAgaW50IG9sZGhlYWQsIG9sZGN5bGluZGVyLCBv bGRzZWN0b3I7CiAgICBpbnQgc3lzaWRbMTBdOyAvKiBwcm9iYWJseSBvbmx5 IG5lZWQgNCAqLwogICAgY29uc3QgY2hhciAqIHpmaWxlbmFtZSA9ICYobmZp bGVuYW1lWzEwXSksICogbnB0ciA9IHpmaWxlbmFtZTsKICAgIGNoYXIgKiBm aWxlbmFtZSwgKiBzdHJlcnIgPSBOVUxMLCAqIGJvb3Rsb2FkZXI7CiAgICBj aGFyIG1icl9kYXRhW01CUl9TSVpFKjUxMl0sIHBhcnRpdGlvbl9zdHJpbmdb TUFYX1BBUlRfU1RSSU5HXTsKICAgIHBhcnRpdGlvbl9zdHJpbmdbMF0gPSAn XDAnOwoKICAgIHN0cmNhdChwYXJ0aXRpb25fc3RyaW5nLCAiY29tcG9zaXRl OnJhbTo2MywiKTsgLyo2MyA9PSBNQlJfU0laRSAqLwogICAgYm9vdGxvYWRl ciA9IHN0cmR1cCgiYm9vdG1ici5iaW4iKTsKICAgIGJzLT5yZWFkX29ubHkg PSAwOwoKICAgIGludCBuID0gMDsKICAgIHdoaWxlIChucHRyICE9IE5VTEwp CiAgICB7CiAgICAJbnB0ciA9IHN0cmNocih6ZmlsZW5hbWUsICcsJykrMTsK ICAgIAlpZiAoKG5wdHItMSkgIT0gTlVMTCkKICAgIAl7CiAgICAJCWZpbGVu YW1lID0gc3RybmR1cCh6ZmlsZW5hbWUsIChzaXplX3QpKChucHRyLTEpLXpm aWxlbmFtZSkpOwogICAgCQl6ZmlsZW5hbWUgPSBucHRyOwogICAgCX0KICAg IAllbHNlCiAgICAJewogICAgCQlmaWxlbmFtZSA9IHN0cmR1cCh6ZmlsZW5h bWUpOwoJCW5wdHIgPSBOVUxMOwogICAgCX0KCglpZiAoc3RybmNtcChmaWxl bmFtZSwgInN5c2lkPSIsIDYpID09IDApCgl7CgkJLyoganVzdCBwYXNzIGlu IGFueSBzeXNpZCwgZS5nLiAweDgyIG9yIDB4MEMgKi8KCQljaGFyIGZmZFtz dHJsZW4oZmlsZW5hbWUpXTsKCQlmZmRbMF0gPSAnICc7CgkJZmZkWzFdID0g J1wwJzsKCQlzdHJjYXQoZmZkLCBmaWxlbmFtZSs2KTsKCQlzeXNpZFtwYXJ0 aXRpb25fY291bnRdID0gKGludClzdHJ0b2woZmZkLCAmc3RyZXJyLCAwKTsK CgkJaWYgKCpzdHJlcnIgIT0gJ1wwJykgLyogZGV0ZWN0IGVycm9yIGluIGNv bnZlcnNpb24gKi8KCQkJc3lzaWRbcGFydGl0aW9uX2NvdW50LTFdID0gMHgw QzsgLyogZGVmYXVsdCB0byB3aW45OCBGQVQzMiAqLwoJfQoJZWxzZSBpZiAo c3RybmNtcChmaWxlbmFtZSwgImJvb3Q9IiwgNSkgPT0gMCkKCXsKCQkvKiBi ZXR3ZWVuIDEgYW5kIDQsIDEgc2VsZWN0cyB0aGUgZmlyc3QgcGFydGl0aW9u LCA0IHNlbGVjdHMgdGhlIGxhc3QgcGFydGl0aW9uIChpZiB5b3UgYXJlIG1h a2luZyBhIGhhcmQgZGlzayB3aXRoIDQgcGFydGl0aW9ucyBpbiBpdCkgKi8K CQljaGFyIGZmZFtzdHJsZW4oZmlsZW5hbWUpXTsKCQlpbnQgYm9vdGlkZjsK CQlmZmRbMF0gPSAnICc7CgkJZmZkWzFdID0gJ1wwJzsKCQlzdHJjYXQoZmZk LCBmaWxlbmFtZSs1KTsKCQlib290aWRmID0gKGludClzdHJ0b2woZmZkLCAm c3RyZXJyLCAwKTsKCgkJaWYgKCpzdHJlcnIgPT0gJ1wwJykgLyogbm8gZGV0 ZWN0IGVycm9yIGluIGNvbnZlcnNpb24gKi8KCQkJYm9vdGlkID0gYm9vdGlk ZjsKCX0KCWVsc2UgaWYgKHN0cm5jbXAoZmlsZW5hbWUsICJib290bG9hZGVy PSIsIDExKSA9PSAwKQoJewoJCWZyZWUoYm9vdGxvYWRlcik7CgkJYm9vdGxv YWRlciA9IHN0cmR1cChmaWxlbmFtZSsxMSk7Cgl9CgllbHNlCgl7CgkJLyog dGhlIHN0cmluZyBzaG91bGRuJ3Qgc3RhcnQgd2l0aCBhICcsJyAqLwoJCWlm IChuKQoJCQlzdHJjYXQocGFydGl0aW9uX3N0cmluZywgIiwiKTsKCQllbHNl CgkJCW4gPSAxOwoKCQlzdHJjYXQocGFydGl0aW9uX3N0cmluZywgZmlsZW5h bWUpOwoJCXBhcnRpdGlvbl9jb3VudCArKzsKCQlzeXNpZFtwYXJ0aXRpb25f Y291bnQtMV0gPSAweDBDOyAvKiBkZWZhdWx0IHRvIHdpbjk4IEZBVDMyICov Cgl9CglmcmVlKGZpbGVuYW1lKTsKICAgIH0KCiAgICBzLT5icyA9IHFlbXVf bWFsbG9jeihzaXplb2YoQmxvY2tEcml2ZXJTdGF0ZSkpOwogICAgaWYgKChz LT5icyA9PSBOVUxMKSB8fCAoYmRydl9vcGVuMihzLT5icywgcGFydGl0aW9u X3N0cmluZywgMCwgTlVMTCkgIT0gMCkpCiAgICB7CgkgICAgZnJlZShib290 bG9hZGVyKTsKCSAgICByZXR1cm4gLTE7CiAgICB9CgogICAgYnMtPnRvdGFs X3NlY3RvcnMgPSBzLT5icy0+dG90YWxfc2VjdG9yczsKICAgIGJzLT5yZWFk X29ubHkgPSBzLT5icy0+cmVhZF9vbmx5OwoKICAgIC8qIGdldCB0aGUgZmFr ZSBNQlIgKi8KICAgIG1lbXNldChtYnJfZGF0YSwgMCwgTUJSX1NJWkUqNTEy KTsKICAgIGJvb3RfZmQgPSBvcGVuKGJvb3Rsb2FkZXIsIE9fUkRPTkxZKTsK ICAgIGlmIChib290X2ZkID09IC0xKQogICAgewoJICAgIHByaW50ZigiV2Fy bmluZzogZmFpbGVkIHRvIG9wZW4gYm9vdG1ici5iaW4gLSBNQlIgd2lsbCBu b3QgYmUgYm9vdGFibGVcbiIpOwogICAgfQogICAgZWxzZQogICAgewoJICAg IGlmIChyZWFkKGJvb3RfZmQsIG1icl9kYXRhLCBNQlJfU0laRSo1MTIpID09 IC0xKQoJICAgIHsKCSAgICAJcHJpbnRmKCJXYXJuaW5nOiBmYWlsZWQgdG8g cmVhZCBib290bWJyLmJpbiAtIE1CUiB3aWxsIG5vdCBiZSBib290YWJsZVxu Iik7CgkgICAgfQoJICAgIGNsb3NlKGJvb3RfZmQpOwogICAgfQoKICAgIG9s ZHN0YXJ0ID0gMHgzRjsgLy8zRiA9PSA2MwogICAgb2xkaGVhZCA9IDB4MDE7 CiAgICBvbGRzZWN0b3IgPSAweDAxOwogICAgb2xkY3lsaW5kZXIgPSAweDAw OwogICAgLyogcmVtZW1iZXIgdGhhdCB0aGUgdmVyeSBmaXJzdCBzbGF2ZSBp biB0aGUgY29tcG9zaXRlIGlzIHRoZSByYW0gaW1hZ2UgKioKICAgICAqIHRo YXQgd2UncmUgdXNpbmcgdG8gc3RvcmUgdGhlIE1CUiwgc28gdGhlIHNlY29u ZCBzbGF2ZSBpbiB0aGUgY29tcG9zaXRlCiAgICAgKiBpcyB0aGUgZmlyc3Qg cGFydGl0aW9uICovCiAgICBmb3IgKGkgPSAxOyBpIDw9IHBhcnRpdGlvbl9j b3VudDsgaSsrKQogICAgewoKICAgIC8qIHNldCB1cCBjL2gvcyAqLwogICAg aWYgKGkgPT0gcGFydGl0aW9uX2NvdW50KQogICAgewogICAgdG90YWxzZWN0 b3JzID0gYnMtPnRvdGFsX3NlY3RvcnM7CiAgICB9CiAgICBlbHNlCiAgICB7 CiAgICBiYnMgPSAoKEJEUlZQYXJ0U3RhdGUqKXMtPmJzLT5vcGFxdWUpLT5z bGF2ZV9ic1tpKzFdLmJzOwogICAgdG90YWxzZWN0b3JzID0gYmJzLT50b3Rh bF9zZWN0b3JzOwogICAgfQoKICAgIHNpemUgPSB0b3RhbHNlY3RvcnMgKiA1 MTI7CiAgICBjeWxpbmRlciA9IHNpemUvKDYzKjE2KTsKICAgIGhlYWQgPSAx NjsKICAgIHNlY3RvciA9IDYzOwogICAgLyogc29tZSBiaXQgdHdpZGRsaW5n IGhlcmUgKi8KICAgIHNlY3RvciA9ICgoKGN5bGluZGVyID4+IDgpICYgMykg PDwgNikgKyBzZWN0b3I7CgogICAgLyogc2V0IHVwIGZha2UgTUJSIC0gZWFj aCBwYXJ0aXRpb24gZW50cnkgaXMgMTYgYnl0ZXMgbG9uZyAqLwogICAgLyog c3RhcnQgNDQ2ICovCiAgICAvKiBzZXQgd2hpY2ggcGFydGl0aW9uIGlzIG1l YW50IHRvIGJlIGJvb3RhYmxlICh0aGF0IHdlJ2xsIGJvb3QgZnJvbSkgKi8K ICAgIGlmIChpID09IGJvb3RpZCkKICAgIG1icl9kYXRhWzQ0NisoKGktMSkq MTYpXSA9IDB4ODA7CiAgICBlbHNlCiAgICBtYnJfZGF0YVs0NDYrKChpLTEp KjE2KV0gPSAweDAwOwogICAgLyogc3RhcnQgaGVhZCAqLwogICAgbWJyX2Rh dGFbNDQ3KygoaS0xKSoxNildID0gb2xkaGVhZDsKICAgIC8qIHN0YXJ0IHNl Y3RvciAtIG9ubHkgZmlyc3QgNiBiaXRzICovCiAgICBtYnJfZGF0YVs0NDgr KChpLTEpKjE2KV0gPSBvbGRzZWN0b3I7CiAgICAvKiBzdGFydCBjeWxpbmRl ciAtIHRoaXMgYnl0ZSBwbHVzIDIgYml0cyBmcm9tIG1icl9kYXRhWzQ0N10g Ki8KICAgIG1icl9kYXRhWzQ0OSsoKGktMSkqMTYpXSA9IG9sZGN5bGluZGVy OwogICAgLyogc3lzdGVtIElEICovCiAgICBtYnJfZGF0YVs0NTArKChpLTEp KjE2KV0gPSBzeXNpZFtpLTFdOwogICAgLyogZW5kaW5nIGhlYWQgKi8KICAg IG1icl9kYXRhWzQ1MSsoKGktMSkqMTYpXSA9IGhlYWQ7CiAgICAvKiBlbmRp bmcgc2VjdG9yICovCiAgICBtYnJfZGF0YVs0NTIrKChpLTEpKjE2KV0gPSBz ZWN0b3I7CiAgICAvKiBlbmRpbmcgY3lsaW5kZXIgKi8KICAgIG1icl9kYXRh WzQ1MysoKGktMSkqMTYpXSA9IGN5bGluZGVyOwogICAgLyogYWJzb2x1dGUg c3RhcnQgc2VjdG9yIC0gNCBieXRlcy9EV09SRCAqLwogICAgLy9tYnJfZGF0 YVs0NTQrKGkqMTYpXSA9IDB4M0Y7IC8vIDNGID0gNjMKICAgICooKHVpbnQz Ml90KikobWJyX2RhdGErNDU0KygoaS0xKSoxNikpKSA9IGNwdV90b19sZTMy KG9sZHN0YXJ0KTsKICAgIC8qIGFic29sdXRlIHRvdGFsIG51bWJlciBvZiBz ZWN0b3JzIC0gNCBieXRlcy9EV09SRCAqLwogICAgKigodWludDMyX3QqKSht YnJfZGF0YSs0NTgrKChpLTEpKjE2KSkpID0gY3B1X3RvX2xlMzIodG90YWxz ZWN0b3JzKTsKICAgIC8qIGVuZCA0NjIgKi8KCiAgICBvbGRzdGFydCA9IG9s ZHN0YXJ0ICsgdG90YWxzZWN0b3JzOwogICAgb2xkaGVhZCA9IGhlYWQ7CiAg ICBvbGRjeWxpbmRlciA9IGN5bGluZGVyOwogICAgb2xkc2VjdG9yID0gc2Vj dG9yOwoKICAgIG9sZHNlY3RvcisrOwogICAgaWYgKG9sZHNlY3RvciA+IDYz KQogICAgewoJICAgIG9sZGhlYWQrKzsKCSAgICBvbGRzZWN0b3IgPSAweDAx OwoJICAgIGlmIChvbGRoZWFkID4gMTYpCgkgICAgewoJCSAgICBvbGRjeWxp bmRlcisrOwoJCSAgICBvbGRoZWFkID0gMHgwMTsKCSAgICB9CiAgICB9Cgog ICAgfQoKICAgIC8qIHNldCB0aGUgTUJSIHNlY3RvciBzaWduYXR1cmUgKi8K ICAgIG1icl9kYXRhWzUxMF0gPSAweDU1OwogICAgbWJyX2RhdGFbNTExXSA9 IDB4QUE7CgogICAgLyogbm93IHdyaXRlIGl0IHRvIHRoZSByYW0gaW1hZ2Ug Ki8KICAgIC8qCiAgICBicy0+Ym9vdF9zZWN0b3JfZW5hYmxlZCA9IDA7CiAg ICBzLT5icy0+Ym9vdF9zZWN0b3JfZW5hYmxlZCA9IDA7CiAgICBiYnMgPSAo KEJEUlZQYXJ0U3RhdGUqKXMtPmJzLT5vcGFxdWUpLT5zbGF2ZV9ic1swXS5i czsgdGhlIHJhbSBpbWFnZQogICAgYmJzLT5ib290X3NlY3Rvcl9lbmFibGVk ID0gMDsKICAgICovCiAgICBpZiAoYmRydl93cml0ZShzLT5icywgMCwgbWJy X2RhdGEsIE1CUl9TSVpFKSAhPSAwKQoJICAgIHByaW50ZigiV2FybmluZzog ZmFpbGVkIHRvIGNvbW1pdCBNQlIgYW5kIHBhcnRpdGlvbiB0YWJsZSB0byBm YWtlIGhhcmQgZGlza1xuIik7CgogICAgcmV0dXJuIDA7Cn0KCnN0YXRpYyBp bnQgcGFydGl0aW9uX3JlYWQoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIGludDY0 X3Qgc2VjdG9yX251bSwgCiAgICAgICAgICAgICAgICAgICAgdWludDhfdCAq YnVmLCBpbnQgbmJfc2VjdG9ycykKewogICAgQ29tcG9zaXRlRHJpdmVyU3Rh dGUgKnMgPSBicy0+b3BhcXVlOwogICAgcmV0dXJuIGJkcnZfcmVhZChzLT5i cywgc2VjdG9yX251bSwgYnVmLCBuYl9zZWN0b3JzKTsKfQoKc3RhdGljIGlu dCBwYXJ0aXRpb25fd3JpdGUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIGludDY0 X3Qgc2VjdG9yX251bSwgCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVp bnQ4X3QgKmJ1ZiwgaW50IG5iX3NlY3RvcnMpCnsKICAgIENvbXBvc2l0ZURy aXZlclN0YXRlICpzID0gYnMtPm9wYXF1ZTsKICAgIHJldHVybiBiZHJ2X3dy aXRlKHMtPmJzLCBzZWN0b3JfbnVtLCBidWYsIG5iX3NlY3RvcnMpOwp9Cgpz dGF0aWMgdm9pZCBwYXJ0aXRpb25fY2xvc2UoQmxvY2tEcml2ZXJTdGF0ZSAq YnMpCnsKICAgIENvbXBvc2l0ZURyaXZlclN0YXRlICpzID0gYnMtPm9wYXF1 ZTsKICAgIGJkcnZfY2xvc2Uocy0+YnMpOwogICAgcWVtdV9mcmVlKHMtPmJz KTsKICAgIHMtPmJzID0gTlVMTDsKfQoKc3RhdGljIGludCBwYXJ0aXRpb25f Y3JlYXRlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQ2NF90IHRvdGFsX3Np emUsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpiYWNraW5n X2ZpbGUsIGludCBmbGFncykKewogICAgLyogd2hhdCB3b3VsZCBiZSB0aGUg cG9pbnQuLi4ganVzdCBtYWtlIGEgcmF3IG9yIHFjb3cgKi8KICAgIHJldHVy biAtRU5PVFNVUDsKfQoKQmxvY2tEcml2ZXIgYmRydl9wYXJ0aXRpb24gPSB7 CiAgICAicGFydGl0aW9uIiwKICAgIHNpemVvZihDb21wb3NpdGVEcml2ZXJT dGF0ZSksCiAgICBwYXJ0aXRpb25fcHJvYmUsCiAgICBwYXJ0aXRpb25fb3Bl biwKICAgIHBhcnRpdGlvbl9yZWFkLAogICAgcGFydGl0aW9uX3dyaXRlLAog ICAgcGFydGl0aW9uX2Nsb3NlLAogICAgcGFydGl0aW9uX2NyZWF0ZSwKICAg IC5wcm90b2NvbF9uYW1lID0gInBhcnRpdGlvbiIsCn07Cgo= --_----------=_1170212032180410--