Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 18 Feb 2002 17:40:10 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 18 Feb 2002 17:40:02 -0500 Received: from mailout05.sul.t-online.com ([194.25.134.82]:59102 "EHLO mailout05.sul.t-online.com") by vger.kernel.org with ESMTP id ; Mon, 18 Feb 2002 17:39:52 -0500 From: "ChristianK."@t-online.de (Christian Koenig) To: Anuradha Ratnaweera Subject: Re: [ANNOUNCE] kernelconf-0.1.3 Date: Mon, 18 Feb 2002 23:42:14 +0100 X-Mailer: KMail [version 1.3.2] Cc: linux-kernel@vger.kernel.org In-Reply-To: <20020209141627.A12477@lklug.pdn.ac.lk> <20020209143101.A12821@lklug.pdn.ac.lk> In-Reply-To: <20020209143101.A12821@lklug.pdn.ac.lk> MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="------------Boundary-00=_E23R9KVVWVCAFQFMKHLO" Message-ID: <16cwRf-10rbDEC@fwd01.sul.t-online.com> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --------------Boundary-00=_E23R9KVVWVCAFQFMKHLO Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Hi, Sorry for the delay, but got lots do to last week. Ok here it comes. Work done: -Synced with your code. -Completly rewritten the the c-code <-> tcl-code interface (It now use pipes). -Dependencys are now partialy working. (Try symbol EXPERIMENTAL or MODULES). To do: -Loading / Saving of config files doesn't work for the moment. -The resolv_* funktions are simply q&d. -The whole thing should look more like the "original" xconfig. MfG Christian Koenig (and sorry for my poor English). --------------Boundary-00=_E23R9KVVWVCAFQFMKHLO Content-Type: text/x-diff; charset="iso-8859-1"; name="kernelconf-xconfig.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kernelconf-xconfig.diff" ZGlmZiAtdU5yIGtlcm5lbGNvbmYtMC4xLjMvY29uZi9oZWFkZXIudGsga2VybmVsY29uZi0wLjEu My5uZXcvY29uZi9oZWFkZXIudGsKLS0tIGtlcm5lbGNvbmYtMC4xLjMvY29uZi9oZWFkZXIudGsJ VGh1IEphbiAgMSAwMTowMDowMCAxOTcwCisrKyBrZXJuZWxjb25mLTAuMS4zLm5ldy9jb25mL2hl YWRlci50awlNb24gRmViIDE4IDIyOjA5OjMwIDIwMDIKQEAgLTAsMCArMSwyNDQgQEAKK3Byb2Mg c3ltX3NldHZhbHVlIHsgc3ltbmFtZSB2YWx1ZSB9IHsKKwlwdXRzIHN0ZG91dCAiU1lNX1NFVCAk c3ltbmFtZSAkdmFsdWUiCit9CisKK3Byb2MgbWVudV91cGRhdGVfZGVwZW5kcyB7IHcgc3ltdmFs eSBzeW12YWxtIH0geworCisJY2F0Y2ggeworCQlpZiB7ICRzeW12YWx5ID09ICJuIiB9IHsKKwkJ CSR3LnN5IGNvbmZpZ3VyZSAtc3RhdGUgZGlzYWJsZWQKKwkJfSBlbHNlIHsKKwkJCSR3LnN5IGNv bmZpZ3VyZSAtc3RhdGUgbm9ybWFsCisJCX0KKwkJcHV0cyBzdGRlcnIgIiR3ICRzeW12YWwiCisJ fQorCWNhdGNoIHsKKwkJaWYgeyAkc3ltdmFsbSA9PSAibiIgfSB7CisJCQkkdy5zbSBjb25maWd1 cmUgLXN0YXRlIGRpc2FibGVkCisJCX0gZWxzZSB7CisJCQkkdy5zbSBjb25maWd1cmUgLXN0YXRl IG5vcm1hbAorCQl9CisJCXB1dHMgc3RkZXJyICIkdyAkc3ltdmFsIgorCX0KKwljYXRjaCB7CisJ CWlmIHsgJHN5bXZhbG0gPT0gIm4iICYmICRzeW12YWx5ID09ICJuIiB9IHsKKwkJCSR3LnNuIGNv bmZpZ3VyZSAtc3RhdGUgZGlzYWJsZWQKKwkJfSBlbHNlIHsKKwkJCSR3LnNuIGNvbmZpZ3VyZSAt c3RhdGUgbm9ybWFsCisJCX0KKwkJcHV0cyBzdGRlcnIgIiR3ICRzeW12YWwiCisJfQorCWNhdGNo IHsKKwkJaWYgeyAkc3ltdmFsbSA9PSAibiIgJiYgJHN5bXZhbHkgPT0gIm4iIH0geworCQkJJHcu YyBjb25maWd1cmUgLXN0YXRlIGRpc2FibGVkCisJCX0gZWxzZSB7CisJCQkkdy5jIGNvbmZpZ3Vy ZSAtc3RhdGUgbm9ybWFsCisJCX0KKwkJcHV0cyBzdGRlcnIgIiR3ICRzeW12YWwiCisJfQorfQor Citwcm9jIGNvbmZpZ19vcHRpb24geyB3IGxpbmUgdGV4dCBzeW1uYW1lIHN5bXR5cGUgaGF2ZXN5 bSBoZWxwIGhhdmVoZWxwIGNoaWxkIGhhdmVjaGlsZCB9IHsKKworCWZyYW1lICR3LmYkbGluZQor CisJaWYgeyAkaGF2ZXN5bSAmIDQgfSB7CisJCXJhZGlvYnV0dG9uICR3LmYkbGluZS5zeSAtdGV4 dCAieSIgLXZhcmlhYmxlICRzeW1uYW1lIC12YWx1ZSB5IFwKKwkJCS1yZWxpZWYgZ3Jvb3ZlIC13 aWR0aCAyIC1jb21tYW5kICJzeW1fc2V0dmFsdWUgJHN5bW5hbWUgeSIKKwkJaWYgeyAkc3ltdHlw ZSAhPSAiU1lNX0JPT0wiICYmICRzeW10eXBlICE9ICJTWU1fVFJJIiAmJiAkc3ltdHlwZSAhPSAi U1lNX09QVElPTiIgfSB7CisJCQkkdy5mJGxpbmUuc3kgY29uZmlndXJlIC10ZXh0ICItIiAtc3Rh dGUgZGlzYWJsZWQKKwkJfSBlbHNlaWYgeyAkc3ltdHlwZSA9PSAiU1lNX09QVElPTiIgfSB7CisJ CQkkdy5mJGxpbmUuc3kgY29uZmlndXJlIC10ZXh0ICIiCisJCX0KKwkJcGFjayAkdy5mJGxpbmUu c3kgLXNpZGUgbGVmdCAtZmlsbCB5CisJfQorCisJaWYgeyAkaGF2ZXN5bSAmIDIgfSB7CisJCXJh ZGlvYnV0dG9uICR3LmYkbGluZS5zbSAtdGV4dCAibSIgLXZhcmlhYmxlICRzeW1uYW1lIC12YWx1 ZSBtIFwKKwkJCSAtcmVsaWVmIGdyb292ZSAtd2lkdGggMiAtY29tbWFuZCAic3ltX3NldHZhbHVl ICRzeW1uYW1lIG0iCisKKwkJaWYgeyAkc3ltdHlwZSAhPSAiU1lNX01PRFVMRSIgJiYgJHN5bXR5 cGUgIT0gIlNZTV9UUkkiIH0geworCQkJJHcuZiRsaW5lLnNtIGNvbmZpZ3VyZSAtdGV4dCAiLSIg LXN0YXRlIGRpc2FibGVkCisJCX0KKwkJcGFjayAkdy5mJGxpbmUuc20gLXNpZGUgbGVmdCAtZmls bCB5CisJfQorCisJaWYgeyAkaGF2ZXN5bSAmIDEgfSB7CisJCXJhZGlvYnV0dG9uICR3LmYkbGlu ZS5zbiAtdGV4dCAibiIgIC12YXJpYWJsZSAkc3ltbmFtZSAtdmFsdWUgbiBcCisJCQktcmVsaWVm IGdyb292ZSAtd2lkdGggMiAtY29tbWFuZCAic3ltX3NldHZhbHVlICRzeW1uYW1lIG4iCisJCWlm IHsgJHN5bXR5cGUgIT0gIlNZTV9CT09MIiAmJiAkc3ltdHlwZSAhPSAiU1lNX1RSSSIgfSB7CisJ CQkkdy5mJGxpbmUuc24gY29uZmlndXJlIC10ZXh0ICItIiAtc3RhdGUgZGlzYWJsZWQKKwkJfQor CQlwYWNrICR3LmYkbGluZS5zbiAtc2lkZSBsZWZ0IC1maWxsIHkKKwl9CisKKwltZXNzYWdlICR3 LmYkbGluZS5tIC10ZXh0ICIkdGV4dCIgLWFuY2hvciB3IC13aWR0aCAxMDAwMAorCXBhY2sgJHcu ZiRsaW5lLm0gLXNpZGUgbGVmdCAtZmlsbCBib3RoIC1leHBhbmQgb24KKworCWlmIHsgJGhhdmVo ZWxwIH0geworCQlpZiB7ICRoZWxwICE9ICIiIH0geworCQkJYnV0dG9uICR3LmYkbGluZS5oIC10 ZXh0ICI/IiAtY29tbWFuZCAkaGVscAorCQl9IGVsc2UgeworCQkJYnV0dG9uICR3LmYkbGluZS5o IC10ZXh0ICI/IiAtc3RhdGUgZGlzYWJsZWQgLXJlbGllZiBmbGF0CisJCX0KKwkJcGFjayAkdy5m JGxpbmUuaCAtc2lkZSBsZWZ0IC1maWxsIHkKKwl9CisKKwlpZiB7ICRoYXZlY2hpbGQgfSB7CisJ CWlmIHsgJGNoaWxkICE9ICIiIH0geworCQkJYnV0dG9uICR3LmYkbGluZS5jCisJCQljaGlsZF9i dXR0b25fb24gJHcgJGxpbmUgIiR0ZXh0IiAiJGNoaWxkIgorCQl9IGVsc2UgeworCQkJYnV0dG9u ICR3LmYkbGluZS5jIC10ZXh0ICItPiIgLXN0YXRlIGRpc2FibGVkIC1yZWxpZWYgZmxhdAorCQl9 CisJCXBhY2sgJHcuZiRsaW5lLmMgLXNpZGUgbGVmdCAtZmlsbCB5CisJfQorCisJcGFjayAkdy5m JGxpbmUgLWFuY2hvciB3IC1maWxsIGJvdGggLWV4cGFuZCB5IC1pbiAkdy5jYW52YXMuc2JmCisK KwlwdXRzIHN0ZG91dCAiTUVOVV9ERVBFTkRTICRzeW1uYW1lIgorfQorCitwcm9jIGNoaWxkX2J1 dHRvbl9vbiB7IHcgbGluZSB0ZXh0IGNoaWxkIH0geworCSR3LmYkbGluZS5jIGNvbmZpZ3VyZSAt dGV4dCAiLT4iCisJJHcuZiRsaW5lLmMgY29uZmlndXJlIC1jb21tYW5kICJjcmVhdGVfd2luZG93 ICR3ICRsaW5lIFwiJHRleHRcIiBcIiRjaGlsZFwiOyRjaGlsZDtjcmVhdGVfc2Nyb2xsYmFyICR3 LmMkbGluZSIKKwkkdy5mJGxpbmUuYyBjb25maWd1cmUgLXJlbGllZiByYWlzZWQKK30KKworcHJv YyBjaGlsZF9idXR0b25fb2ZmIHsgdyBsaW5lIH0geworCSR3LmYkbGluZS5jIGNvbmZpZ3VyZSAt dGV4dCAiPC0iCisJJHcuZiRsaW5lLmMgY29uZmlndXJlIC1jb21tYW5kICJkZXN0cm95ICR3LmMk bGluZSIKKwkkdy5mJGxpbmUuYyBjb25maWd1cmUgLXJlbGllZiBmbGF0Cit9CisKK3Byb2MgaW5p dF93aW5kb3cgeyB3IHRleHQgfSB7CisKKwlzY3JvbGxiYXIgJHcudnNjcm9sbCAtY29tbWFuZCAi JHcuY2FudmFzIHl2aWV3IgorCXBhY2sgJHcudnNjcm9sbCAtc2lkZSByaWdodCAtZmlsbCB5CisK KwljYW52YXMgJHcuY2FudmFzIC1yZWxpZWYgZmxhdCAtYm9yZGVyd2lkdGggMCAteXNjcm9sbGNv bW1hbmQgIiR3LnZzY3JvbGwgc2V0IgorCWZyYW1lICR3LmNhbnZhcy5zYmYKKwlwYWNrICR3LmNh bnZhcyAtc2lkZSByaWdodCAtZmlsbCB5IC1leHBhbmQgb24KK30KKworcHJvYyBjYWx3aSB7IGNt ZCB3IH0geworCWlmIHsgWyB3aW5mbyBwYXJlbnQgJHcgXSAhPSAiIiB9IHsKKwkJcmV0dXJuIFsg ZXhwciBbIGNhbHdpICRjbWQgWyB3aW5mbyBwYXJlbnQgJHcgXSBdICsgWyB3aW5mbyAkY21kICR3 IF0gXQorCX0gZWxzZSB7CisJCXJldHVybiBbIHdpbmZvICRjbWQgJHcgXQorCX0KK30KKworcHJv YyBtYXh3aSB7IGNtZCB3IH0geworCWlmIHsgWyB3aW5mbyBwYXJlbnQgJHcgXSAhPSAiIiB9IHsK KwkJcmV0dXJuIFsgbWF4IFsgbWF4d2kgJGNtZCBbIHdpbmZvIHBhcmVudCAkdyBdIF0gIFsgd2lu Zm8gJGNtZCAkdyBdIF0KKwl9IGVsc2UgeworCQlyZXR1cm4gWyB3aW5mbyAkY21kICR3IF0KKwl9 Cit9CisKK3Byb2MgY3JlYXRlX3dpbmRvdyB7IHcgbGluZSB0ZXh0IGNoaWxkIH0geworCisJdG9w bGV2ZWwgJHcuYyRsaW5lIC1jbGFzcyBEaWFsb2cKKwl3bSB0aXRsZSAkdy5jJGxpbmUgJHRleHQK KworCWluaXRfd2luZG93ICR3LmMkbGluZSAkdGV4dAorCisJZXZhbCAiYmluZCAkdy5jJGxpbmUg PERlc3Ryb3k+IHsgY2hpbGRfYnV0dG9uX29uICR3ICRsaW5lIFwiJHRleHRcIiBcIiRjaGlsZFwi IH0iCisJY2hpbGRfYnV0dG9uX29mZiAkdyAkbGluZQorCisjCWJ1dHRvbiAkdy5jJGxpbmUuY2xv c2UgLXRleHQgIjwtIiAtY29tbWFuZCAiZGVzdHJveSAkdy5jJGxpbmUiCisjCXBhY2sgJHcuYyRs aW5lLmNsb3NlIC1zaWRlIGxlZnQgLWFuY2hvciBuCisKKyMJc2V0IHBvc3ggWyBtYXh3aSByZXF3 ICR3IF0KKyMJc2V0IHBvc3kgWyBleHByIFsgY2Fsd2kgeSAkdy5mJGxpbmUuYyBdIC0gWyBjYWx3 aSB5ICR3LmMkbGluZS5jbG9zZSBdIF0KKyMJc2V0IHBvc3kgWyBjYWx3aSB5ICR3LmYkbGluZS5j IF0KKworIwl3bSBnZW9tZXRyeSAkdy5jJGxpbmUgKyRwb3N4KyRwb3N5Cit9CisKK3Byb2MgY3Jl YXRlX3Njcm9sbGJhciB7IHcgfSB7CisKKwlzZXQgc2l6b2sgMAorCSNbZXhwciBbd2luZm8gcmVx aGVpZ2h0ICR3LmYyLm9rXSArIDEyXQorCSNwYWNrICR3LmNhbnZhcy5zYmYKKwl1cGRhdGUgaWRs ZXRhc2tzCisJc2V0IG1heHkgW2V4cHIgW3dpbmZvIHNjcmVlbmhlaWdodCAuXSAqIDMgLyA0XQor CXNldCBjYW52dG90YWwgW3dpbmZvIHJlcWhlaWdodCAkdy5jYW52YXMuc2JmXQorCWlmIFtleHBy ICRzaXpvayArICRjYW52dG90YWwgPCAkbWF4eV0geworCQlzZXQgc2l6eSAkY2FudnRvdGFsCisJ fSBlbHNlIHsKKwkJc2V0IHNpenkgW2V4cHIgJG1heHkgLSAkc2l6b2tdCisJfQorCisJJHcuY2Fu dmFzIGNvbmZpZ3VyZSAtd2lkdGggW3dpbmZvIHJlcXcgJHcuY2FudmFzLnNiZl0gLWhlaWdodCAk c2l6eSBcCisJCS1zY3JvbGxyZWdpb24gIjAgMCBbd2luZm8gcmVxdyAkdy5jYW52YXMuc2JmXSBb d2luZm8gcmVxaCAkdy5jYW52YXMuc2JmXSIKKwkkdy5jYW52YXMgY29uZmlndXJlIC15c2Nyb2xs aW5jcmVtZW50IDEwCisJJHcuY2FudmFzIGNyZWF0ZSB3aW5kb3cgMCAwIC1hbmNob3IgbncgLXdp bmRvdyAkdy5jYW52YXMuc2JmCisJcGFjayAkdy5jYW52YXMgLXNpZGUgcmlnaHQgLWZpbGwgeSAt ZXhwYW5kIG9uCisJIyB1cGRhdGUgaWRsZXRhc2tzCisKK30KKworcHJvYyBkb2hlbHAgeyB3IHBh cmVudCBmaWxlbmFtZSBzdGFydCBsZW5ndGggfSB7CisJY2F0Y2gge2Rlc3Ryb3kgJHcgfQorCXRv cGxldmVsICR3IC1jbGFzcyBEaWFsb2cKKwlzZXQgZmlsZWZvdW5kIDAKKwlpZiB7IFtmaWxlIHJl YWRhYmxlICRmaWxlbmFtZV0gPT0gMX0gdGhlbiB7CisJCXNldCBmaWxlZm91bmQgMQorCQlzZXQg aWQgW29wZW4gJGZpbGVuYW1lXQorCQlzZWVrICRpZCAkc3RhcnQKKwkJc2V0IG1lc3NhZ2UgW3Jl YWQgJGlkICRsZW5ndGhdCisJCWNsb3NlICRpZAorCX0KKwlmcmFtZSAkdy5mMQorCXBhY2sgJHcu ZjEgLWZpbGwgYm90aCAtZXhwYW5kIG9uCisJc2V0IG9sZEZvY3VzIFtmb2N1c10KKwlmcmFtZSAk dy5mMgorCWJ1dHRvbiAkdy5mMi5vayAtdGV4dCAiT0siIC13aWR0aCAxMCAtY29tbWFuZCAiZGVz dHJveSAkdzsgY2F0Y2gge2ZvY3VzICRvbGRGb2N1c30iCisJcGFjayAkdy5mMi5vayAtc2lkZSBi b3R0b20gLXBhZHkgNiAtYW5jaG9yIG4KKwlwYWNrICR3LmYyIC1zaWRlIGJvdHRvbSAtcGFkeCAx MCAtYW5jaG9yIHMKKwlzY3JvbGxiYXIgJHcuZjEudnNjcm9sbCAtY29tbWFuZCAiJHcuZjEuY2Fu dmFzIHl2aWV3IgorCXBhY2sgJHcuZjEudnNjcm9sbCAtc2lkZSByaWdodCAtZmlsbCB5CisKKwlj YW52YXMgJHcuZjEuY2FudmFzIC1yZWxpZWYgZmxhdCAtYm9yZGVyd2lkdGggMCAteXNjcm9sbGNv bW1hbmQgIiR3LmYxLnZzY3JvbGwgc2V0IgorCWZyYW1lICR3LmYxLmYKKwlwYWNrICR3LmYxLmNh bnZhcyAtc2lkZSByaWdodCAtZmlsbCB5IC1leHBhbmQgb24KKwlpZiB7ICRmaWxlZm91bmQgPT0g MCB9IHRoZW4geworCQltZXNzYWdlICR3LmYxLmYubSAtd2lkdGggNzUwIC1hc3BlY3QgMzAwIC1y ZWxpZWYgZmxhdCAtdGV4dCBcCisJCQkiTm8gaGVscCBhdmFpbGFibGUgLSB1bmFibGUgdG8gb3Bl biBmaWxlICRmaWxlbmFtZS4gIFRoaXMgZmlsZSBzaG91bGQgaGF2ZSBjb21lIHdpdGggeW91ciBr ZXJuZWwuIgorCQlsYWJlbCAkdy5mMS5ibSAtYml0bWFwIGVycm9yCisJCXdtIHRpdGxlICR3ICJS VEZNIgorCX0gZWxzZSB7CisJCXRleHQgJHcuZjEuZi5tIC13aWR0aCA3MyAtcmVsaWVmIGZsYXQg LXdyYXAgd29yZAorCQkkdy5mMS5mLm0gaW5zZXJ0IDAuMCAkbWVzc2FnZQorCQkkdy5mMS5mLm0g Y29uZiAtc3RhdGUgZGlzYWJsZWQgLWhlaWdodCBbJHcuZjEuZi5tIGluZGV4IGVuZF0KKwkJbGFi ZWwgJHcuZjEuYm0gLWJpdG1hcCBpbmZvCisJCXdtIHRpdGxlICR3ICJDb25maWd1cmF0aW9uIGhl bHAiCisJfQorCXBhY2sgJHcuZjEuZi5tIC1zaWRlIGxlZnQKKwlwYWNrICR3LmYxLmJtICR3LmYx LmYgLXNpZGUgbGVmdCAtcGFkeCAxMAorCWZvY3VzICR3CisJc2V0IHdpbnggW2V4cHIgW3dpbmZv IHggJHBhcmVudF0rMjBdCisJc2V0IHdpbnkgW2V4cHIgW3dpbmZvIHkgJHBhcmVudF0rMjBdCisJ d20gZ2VvbWV0cnkgJHcgKyR3aW54KyR3aW55CisJc2V0IHNpem9rIFtleHByIFt3aW5mbyByZXFo ZWlnaHQgJHcuZjIub2tdICsgMTJdCisJc2V0IG1heHkgW2V4cHIgW3dpbmZvIHNjcmVlbmhlaWdo dCAuXSAqIDMgLyA0XQorCXNldCBjYW52dG90YWwgW3dpbmZvIHJlcWhlaWdodCAkdy5mMS5mLm1d CisJaWYgW2V4cHIgJHNpem9rICsgJGNhbnZ0b3RhbCA8ICRtYXh5XSB7CisJCXNldCBzaXp5ICRj YW52dG90YWwKKwl9IGVsc2UgeworCQlzZXQgc2l6eSBbZXhwciAkbWF4eSAtICRzaXpva10KKwl9 CisJJHcuZjEuY2FudmFzIGNvbmZpZ3VyZSAtaGVpZ2h0ICRzaXp5IC13aWR0aCBbd2luZm8gcmVx d2lkdGggJHcuZjEuZi5tXSBcCisJCS1zY3JvbGxyZWdpb24gIjAgMCBbd2luZm8gcmVxd2lkdGgg JHcuZjEuZi5tXSBbd2luZm8gcmVxaGVpZ2h0ICR3LmYxLmYubV0iCisJJHcuZjEuY2FudmFzIGNy ZWF0ZSB3aW5kb3cgMCAwIC1hbmNob3IgbncgLXdpbmRvdyAkdy5mMS5mCisJdXBkYXRlIGlkbGV0 YXNrcworCXNldCBtYXh5IFt3aW5mbyBzY3JlZW5oZWlnaHQgLl0KKwlpZiBbZXhwciAkc2l6b2sg KyAkY2FudnRvdGFsIDwgJG1heHldIHsKKwkJc2V0IHNpenkgW2V4cHIgJHNpem9rICsgJGNhbnZ0 b3RhbF0KKwl9IGVsc2UgeworCQlzZXQgc2l6eSAkbWF4eQorCX0KKwl3bSBtYXhzaXplICR3IFt3 aW5mbyB3aWR0aCAkd10gJHNpenkKK30KZGlmZiAtdU5yIGtlcm5lbGNvbmYtMC4xLjMvY29uZi94 Y29uZmlnLmMga2VybmVsY29uZi0wLjEuMy5uZXcvY29uZi94Y29uZmlnLmMKLS0tIGtlcm5lbGNv bmYtMC4xLjMvY29uZi94Y29uZmlnLmMJU2F0IEZlYiAgOSAwODo1MzozNyAyMDAyCisrKyBrZXJu ZWxjb25mLTAuMS4zLm5ldy9jb25mL3hjb25maWcuYwlNb24gRmViIDE4IDIzOjE0OjA4IDIwMDIK QEAgLTYsOSArNiw0NTQgQEAKICAqIENvcHlyaWdodCAoQykgMjAwMiBieSBBbnVyYWRoYSBSYXRu YXdlZXJhCiAgKi8KCisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2lu Y2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5o PgorCisjaW5jbHVkZSAiZXhwcmVzc2lvbnMuaCIKKworI2luY2x1ZGUgImRlcHMuaCIKKyNpbmNs dWRlICJoZWxwLmgiCisjaW5jbHVkZSAiaWQuaCIKKyNpbmNsdWRlICJyZWFkY29uZmlnLmgiCisj aW5jbHVkZSAicmVhZHN5bWJvbHMuaCIKKyNpbmNsdWRlICJ0b2tlbnMuaCIKKyNpbmNsdWRlICJ3 cml0ZWNvbmZpZy5oIgorI2luY2x1ZGUgInN5bWJvbHMuaCIKKworI2luY2x1ZGUgInN5cy93YWl0 LmgiCisKKyNkZWZpbmUgTUFYX01FTlVfTkFNRQkJMjU2CisjZGVmaW5lIE1BWF9WQUxVRV9TSVpF CTI1NgorCitleHRlcm4gSWRQdHIgcm9vdF9tZW51OworCitGSUxFICp0Y2xmX2luLCAqdGNsZl9v dXQ7CisKK2ludCB0eXBlMnhzaXplKFR5cGUgdHlwZSkKK3sKKwlzd2l0Y2ggKHR5cGUpIHsKKwlj YXNlIFRZUEVfT1BUSU9OOgorCQlyZXR1cm4gNDsgYnJlYWs7CisJY2FzZSBUWVBFX0JPT0w6CisJ CXJldHVybiA1OyBicmVhazsKKwljYXNlIFRZUEVfVFJJOgorCWNhc2UgVFlQRV9JTlQ6CisJY2Fz ZSBUWVBFX0hFWDoKKwljYXNlIFRZUEVfQ0hBUjoKKwljYXNlIFRZUEVfU1RSOgorCQlyZXR1cm4g NzsgYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CisJfQorfQorCit2b2lkIGZwcmludGZf dHlwZTJuYW1lKEZJTEUgKmYsVHlwZSB0eXBlKQoreworCXN3aXRjaCAodHlwZSkgeworCWNhc2Ug VFlQRV9OVUxMOgorCQlmcHJpbnRmKGYsIlNZTV9OVUxMIik7IGJyZWFrOworCQljYXNlIFRZUEVf Qk9PTDoKKwkJCWZwcmludGYoZiwiU1lNX0JPT0wiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9UUkk6 CisJCQlmcHJpbnRmKGYsIlNZTV9UUkkiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9JTlQ6CisJCQlm cHJpbnRmKGYsIlNZTV9JTlQiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9IRVg6CisJCQlmcHJpbnRm KGYsIlNZTV9IRVgiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9DSEFSOgorCQkJZnByaW50ZihmLCJT WU1fQ0hBUiIpOyBicmVhazsKKwkJY2FzZSBUWVBFX1NUUjoKKwkJCWZwcmludGYoZiwiU1lNX1NU UiIpOyBicmVhazsKKwkJY2FzZSBUWVBFX09QVElPTjoKKwkJCWZwcmludGYoZiwiU1lNX09QVElP TiIpOyBicmVhazsKKwkJY2FzZSBUWVBFX1VOS05PV046CisJCQlmcHJpbnRmKGYsIlNZTV9VTktO T1dOIik7IGJyZWFrOworCQljYXNlIFRZUEVfREVQRU5EUzoKKwkJCWZwcmludGYoZiwiU1lNX0RF UEVORFMiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9ERVJJVkVEOgorCQkJZnByaW50ZihmLCJTWU1f REVSSVZFRCIpOyBicmVhazsKKwkJY2FzZSBUWVBFX09SOgorCQkJZnByaW50ZihmLCJTWU1fT1Ii KTsgYnJlYWs7CisJCWNhc2UgVFlQRV9BTkQ6CisJCQlmcHJpbnRmKGYsIlNZTV9BTkQiKTsgYnJl YWs7CisJCWNhc2UgVFlQRV9FUVVBTDoKKwkJCWZwcmludGYoZiwiU1lNX0VRVUFMIik7IGJyZWFr OworCQljYXNlIFRZUEVfTk9UX0VRVUFMOgorCQkJZnByaW50ZihmLCJTWU1fTk9UX0VRVUFMIik7 IGJyZWFrOworCQljYXNlIFRZUEVfTFQ6CisJCQlmcHJpbnRmKGYsIlNZTV9MVCIpOyBicmVhazsK KwkJY2FzZSBUWVBFX0dUOgorCQkJZnByaW50ZihmLCJTWU1fR1QiKTsgYnJlYWs7CisJCWNhc2Ug VFlQRV9MVEU6CisJCQlmcHJpbnRmKGYsIlNZTV9MVEUiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9H VEU6CisJCQlmcHJpbnRmKGYsIlNZTV9HVEUiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9OT1Q6CisJ CQlmcHJpbnRmKGYsIlNZTV9OT1QiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9MRUZUX1BBUkE6CisJ CQlmcHJpbnRmKGYsIlNZTV9MRUZUX1BBUkEiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9SSUdIVF9Q QVJBOgorCQkJZnByaW50ZihmLCJTWU1fUklHSFRfUEFSQSIpOyBicmVhazsKKwkJY2FzZSBUWVBF X1NZTUJPTDoKKwkJCWZwcmludGYoZiwiU1lNX1NZTUJPTEUiKTsgYnJlYWs7CisJCWNhc2UgVFlQ RV9WQUxVRToKKwkJCWZwcmludGYoZiwiU1lNX1ZBTFVFIik7IGJyZWFrOworCX0KK30KKwordm9p ZCBmcHJpbnRmX3ByZWMydGsoUHJlY2VkZW5jZSBwcmVjKQoreworCXN3aXRjaCAocHJlYykgewor CQljYXNlIFBSRV9OVUxMOgorCQkJZnByaW50Zih0Y2xmX291dCwiUFJFX05VTEwiKTsgYnJlYWs7 CisJCWNhc2UgUFJFX0FTU0lHTjoKKwkJCWZwcmludGYodGNsZl9vdXQsIlBSRV9BU1NJR04iKTsg YnJlYWs7CisJCWNhc2UgUFJFX09SOgorCQkJZnByaW50Zih0Y2xmX291dCwiUFJFX09SIik7IGJy ZWFrOworCQljYXNlIFBSRV9BTkQ6CisJCQlmcHJpbnRmKHRjbGZfb3V0LCJQUkVfQU5EIik7IGJy ZWFrOworCQljYXNlIFBSRV9FUVVBTDoKKwkJCWZwcmludGYodGNsZl9vdXQsIlBSRV9FUVVBTCIp OyBicmVhazsKKwkJY2FzZSBQUkVfUkVMOgorCQkJZnByaW50Zih0Y2xmX291dCwiUFJFX1JFTCIp OyBicmVhazsKKwkJY2FzZSBQUkVfTk9UOgorCQkJZnByaW50Zih0Y2xmX291dCwiUFJFX05PVCIp OyBicmVhazsKKwl9Cit9CisKK3ZvaWQgZnByaW50Zl9tZW51X25hbWUoRklMRSAqZiwgSWRQdHIg bWVudSwgaW50IHJvb3QpCit7CisJaW50IHRjbGlkeCA9IDA7CisJaW50IGNoaWxkaWR4ID0gMDsK KwlJZFB0ciBjdXJfbWVudTsKKworCWlmKG1lbnUtPm1lbnUtPnBhcmVudCkgeworCQlmcHJpbnRm X21lbnVfbmFtZShmLG1lbnUtPm1lbnUtPnBhcmVudCwgMCk7CisJCWN1cl9tZW51ID0gbWVudS0+ bWVudS0+cGFyZW50LT5tZW51LT5maXJzdF9jaGlsZDsKKwkJZm9yKDtjdXJfbWVudSAmJiAoc3Ry Y21wKGN1cl9tZW51LT5uYW1lLG1lbnUtPm5hbWUpICE9IDApO2N1cl9tZW51ID0gY3VyX21lbnUt Pm1lbnUtPm5leHQpCisJCQlpZihjdXJfbWVudS0+bWVudSkgeworCQkJdGNsaWR4Kys7CisJCQlp ZihjdXJfbWVudS0+bWVudS0+Zmlyc3RfY2hpbGQpCisJCQkJY2hpbGRpZHgrKzsKKwkJCX0KKwkJ aWYocm9vdCkKKwkJCWZwcmludGYoZiwiLmYlZCIsdGNsaWR4KTsKKwkJZWxzZQorCQkJZnByaW50 ZihmLCIuYyVkIixjaGlsZGlkeCk7CisJfSBlbHNlCisJCWZwcmludGYoZiwiLmYwIik7Cit9CisK K3ZvaWQgZG9feG1lbnUoSWRQdHIgbWVudSwgY2hhciAqbmFtZSkKK3sKKwljaGFyIHN1Yl9uYW1l W01BWF9NRU5VX05BTUVdOworCWludCBzdWJfaW5kZXgsdGNsaWR4OworCWludCBoYXZlX3N5bQkJ PSAwOworCWludCBoYXZlX2Rlc2MJCT0gMDsKKwlpbnQgaGF2ZV9jaGlsZAk9IDA7CisJSWRQdHIg Y3VyX21lbnU7CisKKwlzdWJfaW5kZXggPSAwOworCWZvcihjdXJfbWVudSA9IG1lbnU7Y3VyX21l bnU7Y3VyX21lbnUgPSBjdXJfbWVudS0+bWVudS0+bmV4dCkgeworCQlpZihjdXJfbWVudS0+c3lt Ym9sKQorCQkJaGF2ZV9zeW0gfD0gdHlwZTJ4c2l6ZShjdXJfbWVudS0+c3ltYm9sLT50eXBlKTsK KworCQlpZihjdXJfbWVudS0+bWVudS0+Zmlyc3RfY2hpbGQpIHsKKwkJCXNwcmludGYoc3ViX25h bWUsIiVzXyVkIixuYW1lLHN1Yl9pbmRleCsrKTsKKwkJCWRvX3htZW51KGN1cl9tZW51LT5tZW51 LT5maXJzdF9jaGlsZCwmc3ViX25hbWVbMF0pOworCQkJaGF2ZV9jaGlsZCA9IDE7CisJCX0KKwor CQlpZihjdXJfbWVudS0+ZGVzY19sZW5ndGgpCisJCQloYXZlX2Rlc2MgPSAxOworCX0KKworCWZw cmludGYodGNsZl9vdXQsIlxuIik7CisJZnByaW50Zih0Y2xmX291dCwgInByb2MgJXMgeyB3IH0g e1xuIixuYW1lKTsKKwlzdWJfaW5kZXggPSAwOworCXRjbGlkeCA9IDA7CisJZm9yKGN1cl9tZW51 ID0gbWVudTtjdXJfbWVudTtjdXJfbWVudSA9IGN1cl9tZW51LT5tZW51LT5uZXh0KSB7CisJCS8q aWYgKGN1cl9tZW51LT5mbGFncyAmIE1FTlVfRkxBR19WSVNJQkxFKSAqL3sKKwkJCWZwcmludGYo dGNsZl9vdXQsICJcdGNvbmZpZ19vcHRpb24gJHcgJWQgXCIlc1wiICVzICIsCisJCQkJdGNsaWR4 LGN1cl9tZW51LT5tZW51LT5jYXB0aW9uLGN1cl9tZW51LT5uYW1lKTsKKworCQkJaWYoY3VyX21l bnUtPnN5bWJvbCkgeworCQkJCWZwcmludGZfdHlwZTJuYW1lKHRjbGZfb3V0LGN1cl9tZW51LT5z eW1ib2wtPnR5cGUpOworCQkJCWZwcmludGYodGNsZl9vdXQsICIgJWQgIixoYXZlX3N5bSk7CisJ CQl9IGVsc2UgeworCQkJCWZwcmludGYodGNsZl9vdXQsICJTWU1fTk9ORSAlZCAiLGhhdmVfc3lt KTsKKwkJCX0KKworCQkJaWYoY3VyX21lbnUtPmRlc2NfbGVuZ3RoKSB7CisJCQkJZnByaW50Zih0 Y2xmX291dCwgIlwiZG9oZWxwIC5kb2hlbHAgLiBcXFwiJXNcXFwiICVsZCAlbGRcIiB0cnVlICIs CisJCQkJCWN1cl9tZW51LT5jb25maWdfZmlsZSwKKwkJCQkJY3VyX21lbnUtPmRlc2Nfc3RhcnQs Y3VyX21lbnUtPmRlc2NfbGVuZ3RoKTsKKwkJCX0gZWxzZSB7CisJCQkJZnByaW50Zih0Y2xmX291 dCwgIlwiXCIgJXMgIiwgaGF2ZV9kZXNjID8gInRydWUiIDogImZhbHNlIik7CisJCQl9CisKKwkJ CWlmKGN1cl9tZW51LT5tZW51LT5maXJzdF9jaGlsZCkgeworCQkJCXNwcmludGYoc3ViX25hbWUs IiVzXyVkIixuYW1lLHN1Yl9pbmRleCk7CisJCQkJZnByaW50Zih0Y2xmX291dCwgIlwiJXMgJHcu YyVkXCIgdHJ1ZVxuIiwmc3ViX25hbWVbMF0sdGNsaWR4KTsKKwkJCQlzdWJfaW5kZXgrKzsKKwkJ CX0gZWxzZSB7CisJCQkJZnByaW50Zih0Y2xmX291dCwgIlwiXCIgJXNcbiIsIGhhdmVfY2hpbGQg PyAidHJ1ZSIgOiAiZmFsc2UiKTsKKwkJCX0KKworCQkJZnByaW50Zih0Y2xmX291dCwiXG4iKTsK KwkJCXRjbGlkeCsrOworCQl9CisJfQorCWZwcmludGYodGNsZl9vdXQsICJ9XG5cbiIpOworCit9 CisKK3ZvaWQgZnByaW50Zl92YWx1ZTJ0Y2woRklMRSAqZiwgU3ltYm9sUHRyIHN5bSkKK3sKKwlz d2l0Y2ggKHN5bS0+dHlwZSkgeworCWNhc2UgVFlQRV9UUkk6CisJY2FzZSBUWVBFX0JPT0w6CisJ Y2FzZSBUWVBFX09QVElPTjoKKwkJZnByaW50ZihmLCIlYyIsc3ltLT52YWx1ZS5jaGFyX3ZhbCk7 IGJyZWFrOworCWNhc2UgVFlQRV9JTlQ6CisJY2FzZSBUWVBFX0hFWDoKKwljYXNlIFRZUEVfQ0hB UjoKKwkJZnByaW50ZihmLCIlZCIsc3ltLT52YWx1ZS5pbnRfdmFsKTsJYnJlYWs7CisJY2FzZSBU WVBFX1NZTUJPTDoKKwkJZnByaW50ZihmLCJDT05GSUdfJXMiLHN5bS0+dmFsdWUuaWRfdmFsLT5u YW1lKTsJYnJlYWs7CisJY2FzZSBUWVBFX1NUUjoKKwljYXNlIFRZUEVfVkFMVUU6CisJCWZwcmlu dGYoZiwiJXMiLHN5bS0+dmFsdWUuc3RyX3ZhbCk7IGJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFr OworCX0KK30KKworc3RhdGljIFRva2VuUHRyIHRjbDJ2YWx1ZShJZFB0ciBzeW0sIGNoYXIgKnZh bHVlKQoreworCVRva2VuUHRyIHRva2VuOworCisJaWYgKChzeW0gPT0gTlVMTCkgfHwgKHN5bS0+ c3ltYm9sID09IE5VTEwpKQorCQlyZXR1cm4gTlVMTDsKKworCXRva2VuID0gbmV3X3Rva2VuKCk7 CisJdG9rZW4tPnR5cGUgPSBzeW0tPnN5bWJvbC0+dHlwZTsKKworCXN3aXRjaCAodG9rZW4tPnR5 cGUpIHsKKwljYXNlIFRZUEVfVFJJOgorCWNhc2UgVFlQRV9CT09MOgorCWNhc2UgVFlQRV9PUFRJ T046CisJCXRva2VuLT52YWx1ZS5jaGFyX3ZhbCA9IHZhbHVlWzBdOyBicmVhazsKKwljYXNlIFRZ UEVfSU5UOgorCWNhc2UgVFlQRV9IRVg6CisJY2FzZSBUWVBFX0NIQVI6CisJCXNzY2FuZigmdmFs dWVbMF0sIiVkIiwmdG9rZW4tPnZhbHVlLmludF92YWwpOyBicmVhazsKKwljYXNlIFRZUEVfU1RS OgorCWNhc2UgVFlQRV9WQUxVRToKKwkJdG9rZW4tPnZhbHVlLnN0cl92YWwgPSBzdHJkdXAodmFs dWUpOyBicmVhazsKKwlkZWZhdWx0OgorCQlmcmVlKHRva2VuKTsKKwkJcmV0dXJuIE5VTEw7CisJ CWJyZWFrOworCX0KKwlyZXR1cm4gdG9rZW47Cit9CisKK2ludCBkb194c3ltKElkUHRyIGN1cl9z eW0pCit7CisJZnByaW50Zih0Y2xmX291dCwic2V0ICVzICIsY3VyX3N5bS0+bmFtZSk7CisJZnBy aW50Zl92YWx1ZTJ0Y2wodGNsZl9vdXQsY3VyX3N5bS0+c3ltYm9sKTsKKwlmcHJpbnRmKHRjbGZf b3V0LCJcbiIpOworCXJldHVybiAwOworfQorCit2b2lkIGZwcmludGZfbWVudV91cGRhdGVfZGVw ZW5kcyhJZFB0ciBpZCkKK3sKKwljaGFyIHJlc3VsdHkgPSAneSc7CisJY2hhciByZXN1bHRtID0g J3knOworCWNoYXIgb3JndmFsdWU7CisKKwlmcHJpbnRmKHRjbGZfb3V0LCJtZW51X3VwZGF0ZV9k ZXBlbmRzICIpOworCWZwcmludGZfbWVudV9uYW1lKHRjbGZfb3V0LGlkLDEpOworCisJaWYoaWQt PnN5bWJvbCkKKwkJaWYoaWQtPnN5bWJvbC0+dHlwZSA9PSBUWVBFX0JPT0wgfHwgaWQtPnN5bWJv bC0+dHlwZSA9PSBUWVBFX1RSSSkgeworCisJCQlvcmd2YWx1ZSA9IGlkLT5zeW1ib2wtPnZhbHVl LmNoYXJfdmFsOworCisJCQlpZC0+c3ltYm9sLT52YWx1ZS5jaGFyX3ZhbCA9ICd5JzsKKwkJCWlm IChldmFsdWF0ZV9hbGxfZXhwcmVzc2lvbnMoaWQtPnN5bWJvbC0+ZGVwZW5kcykpCisJCQkJcmVz dWx0eSA9ICduJzsKKworCQkJaWYoaWQtPnN5bWJvbC0+dHlwZSA9PSBUWVBFX1RSSSkgeworCQkJ CWlkLT5zeW1ib2wtPnZhbHVlLmNoYXJfdmFsID0gJ20nOworCQkJCWlmIChldmFsdWF0ZV9hbGxf ZXhwcmVzc2lvbnMoaWQtPnN5bWJvbC0+ZGVwZW5kcykpCisJCQkJCXJlc3VsdG0gPSAnbic7CisJ CQl9IGVsc2UKKwkJCQkJcmVzdWx0bSA9ICduJzsKKworCQkJaWQtPnN5bWJvbC0+dmFsdWUuY2hh cl92YWwgPSBvcmd2YWx1ZTsKKworCQl9CisKKwlpZihpZC0+bWVudSAmJiBpZC0+bWVudS0+ZGVw ZW5kcyAmJiBldmFsdWF0ZV9hbGxfZXhwcmVzc2lvbnMoaWQtPm1lbnUtPmRlcGVuZHMpKSB7CisJ CXJlc3VsdHkgPSAnbic7CisJCXJlc3VsdG0gPSAnbic7CisJfQorCisvLwlmcHJpbnRmKHN0ZGVy ciwiVGVzdGluZyAlc1x0JWMgJWNcbiIsaWQtPm5hbWUscmVzdWx0eSxyZXN1bHRtKTsKKwlmcHJp bnRmKHRjbGZfb3V0LCIgJWMgJWNcbiIscmVzdWx0eSxyZXN1bHRtKTsKK30KKwordm9pZCBkb194 aW8oKQoreworCWNoYXIgKnBhcmFtWzNdOworCWludCBwY291bnQsaTsKKwljaGFyIGJ1ZmZlclsy NTZdOworCisJd2hpbGUgKGZnZXRzKCZidWZmZXJbMF0sc2l6ZW9mIGJ1ZmZlcix0Y2xmX2luKSkg eworCisJCXBjb3VudCA9IHNzY2FuZigmYnVmZmVyWzBdLCIlYXMgJWFzICVhc1xuIiwmcGFyYW1b MF0sJnBhcmFtWzFdLCZwYXJhbVsyXSk7CisKKwkJaWYgKHN0cmNtcChwYXJhbVswXSwiU1lNX1NF VCIpID09IDApIHsKKworCQkJSWRQdHIgc3ltID0gc2VhcmNoX2lkKHBhcmFtWzFdLElEX1NFQVJD SCk7CisJCQlJZExpc3RQdHIgYWZmOworCisJCQlpZihzeW0gJiYgc3ltLT5zeW1ib2wpIHsKKwkJ CQlzZXRfc3ltYm9sX3ZhbHVlKHN5bSx0Y2wydmFsdWUoc3ltLCBwYXJhbVsyXSkpOworCQkJCWZv cihhZmYgPSBzeW0tPnN5bWJvbC0+YWZmZWN0czsgYWZmOyBhZmYgPSBhZmYtPm5leHQpIHsKKwkJ CQkJaWYgKGFmZi0+aWQtPm1lbnUpCisJCQkJCQlmcHJpbnRmX21lbnVfdXBkYXRlX2RlcGVuZHMo YWZmLT5pZCk7CisJCQkJfQorCQkJfQorCisJCX0gZWxzZSBpZiAoc3RyY21wKHBhcmFtWzBdLCJN RU5VX0RFUEVORFMiKSA9PSAwKSB7CisKKwkJCUlkUHRyIG1lbnUgPSBzZWFyY2hfaWQocGFyYW1b MV0sSURfU0VBUkNIKTsKKwkJCWZwcmludGZfbWVudV91cGRhdGVfZGVwZW5kcyhtZW51KTsKKwor CQl9CisKKwkJZmZsdXNoKHRjbGZfb3V0KTsKKwkJZm9yKGk9MDtpPHBjb3VudDtpKyspIHsKKy8v CQkJZnByaW50ZihzdGRlcnIsIiVzICIscGFyYW1baV0pOworCQkJZnJlZShwYXJhbVtpXSk7CisJ CX0KKy8vCQlmcHJpbnRmKHN0ZGVyciwiXG4iKTsKKwl9Cit9CisKK3BpZF90IGRvX3dpc2goKQor eworCWludCB4MmNmaWxlZGVzWzJdOworCWludCBjMnhmaWxlZGVzWzJdOworCXBpZF90IHBpZCA9 IDA7CisKKwlpZihwaXBlKCZ4MmNmaWxlZGVzWzBdKTwwKQorCQlleGl0KDEpOworCisJaWYocGlw ZSgmYzJ4ZmlsZWRlc1swXSk8MCkKKwkJZXhpdCgxKTsKKworCXBpZCA9IGZvcmsoKTsKKworCWlm KHBpZCA8IDApCisJCWV4aXQoMSk7CisKKwlpZihwaWQ9PTApIHsKKworCQlpZihkdXAyKGMyeGZp bGVkZXNbMF0sMCkgPCAwKQorCQkJZXhpdCgxKTsKKworCQlpZihkdXAyKHgyY2ZpbGVkZXNbMV0s MSkgPCAwKQorCQkJZXhpdCgxKTsKKworCQljbG9zZShjMnhmaWxlZGVzWzBdKTsKKwkJY2xvc2Uo YzJ4ZmlsZWRlc1sxXSk7CisJCWNsb3NlKHgyY2ZpbGVkZXNbMF0pOworCQljbG9zZSh4MmNmaWxl ZGVzWzFdKTsKKworCQlleGVjbCgiL3Vzci9iaW4vd2lzaCIsMCk7CisJCWV4aXQoMSk7CisJfSBl bHNlIHsKKwkJY2xvc2UoYzJ4ZmlsZWRlc1swXSk7CisJCWNsb3NlKHgyY2ZpbGVkZXNbMV0pOwor CisJCXRjbGZfaW4gPSBmZG9wZW4oeDJjZmlsZWRlc1swXSwiciIpOworCQlpZighdGNsZl9pbikK KwkJCWV4aXQoMSk7CisJCXRjbGZfb3V0ID0gZmRvcGVuKGMyeGZpbGVkZXNbMV0sInciKTsKKwkJ aWYoIXRjbGZfb3V0KQorCQkJZXhpdCgxKTsKKwl9CisKKwlyZXR1cm4gcGlkOworfQogCiBpbnQg ZG9feGNvbmZpZygpCiB7Ci0gICAgcmV0dXJuIDE7CisJcGlkX3QgcGlkOworCisJcGlkID0gZG9f d2lzaCgpOworCisJZnByaW50Zih0Y2xmX291dCwic291cmNlIFwiY29uZi9oZWFkZXIudGtcIlxu Iik7CisKKwl0cmF2ZXJzZV9zeW1ib2xzKGRvX3hzeW0pOworCWRvX3htZW51KHJvb3RfbWVudS0+ bWVudS0+Zmlyc3RfY2hpbGQsImRvbWVudSIpOworCisJZnByaW50Zih0Y2xmX291dCwiZnJhbWUg LmYwXG4iKTsKKwlmcHJpbnRmKHRjbGZfb3V0LCJpbml0X3dpbmRvdyAuZjAgXCIlc1wiXG4iLHJv b3RfbWVudS0+bWVudS0+Y2FwdGlvbik7CisJZnByaW50Zih0Y2xmX291dCwiZG9tZW51IC5mMFxu Iik7CisJZnByaW50Zih0Y2xmX291dCwiY3JlYXRlX3Njcm9sbGJhciAuZjBcbiIpOworCWZwcmlu dGYodGNsZl9vdXQsInBhY2sgLmYwXG4iKTsKKwlmcHJpbnRmKHRjbGZfb3V0LCJidXR0b24gLnNh dmUgLXRleHQgXCJTYXZlXCIgLWNvbW1hbmQgXCJ3cml0ZV9jb25maWdcIlxuIik7CisJZnByaW50 Zih0Y2xmX291dCwicGFjayAuc2F2ZVxuIik7CisJZnByaW50Zih0Y2xmX291dCwiYnV0dG9uIC5s b2FkIC10ZXh0IFwiTG9hZFwiIC1jb21tYW5kIFwicmVhZF9jb25maWdcIlxuIik7CisJZnByaW50 Zih0Y2xmX291dCwicGFjayAubG9hZFxuIik7CisKKwlmZmx1c2godGNsZl9vdXQpOworCWRvX3hp bygpOworCXdhaXRwaWQocGlkLE5VTEwsMCk7CisJZmNsb3NlKHRjbGZfb3V0KTsKKwlmY2xvc2Uo dGNsZl9pbik7CisJcmV0dXJuIDA7CiB9CiAKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCit7CisJaW50IHJldHZhbCA9IDA7CisKKwlzZXRfcHJlY2VkZW5jZXMoKTsKKwlpZiAoKHJl dHZhbCA9IHJlYWRfc3ltYm9scyhhcmd2WzFdKSkpCisJCXJldHVybiByZXR2YWw7CisJcG9zdF9w cm9jZXNzX3N5bWJvbHMoKTsKKworCXJlYWRfY29uZmlnKCJhcmNoL2kzODYvZGVmY29uZmlnIik7 CisJcmVhZF9jb25maWcoIi5jb25maWciKTsKKworCXJldHZhbCA9IGRvX3hjb25maWcoKTsKKwor CXJldHVybiByZXR2YWw7Cit9CisKK2ludCByZXNvbHZfZGVyaXZlZChJZFB0ciBpZCwgRXhwcmVz c2lvblB0ciBkZXJpdmVkKQoreworCXJldHVybiAwOworfQorCitpbnQgcmVzb2x2X2RlcGVuZHMo SWRQdHIgaWQsIEV4cHJlc3Npb25QdHIgZGVwZW5kcykKK3sKKy8qT3VjaCBUaGlzIHNjcmVhbXM6 IFBsZWFzZSBQbGVhc2UgRklYIE1FISEhICovCisJc2V0X3N5bWJvbF92YWx1ZShpZCx0Y2wydmFs dWUoaWQsICJuIikpOworCWRvX3hzeW0oaWQpOworCXJldHVybiAwOworfQorCitpbnQgcmVzb2x2 X2RlcGVuZHNfd2l0aF9kZXJpdmVkKElkUHRyIGlkLCBFeHByZXNzaW9uUHRyIGRlcGVuZHMsIEV4 cHJlc3Npb25QdHIgZGVyaXZlZCkKK3sKKwlyZXR1cm4gMDsKK30K --------------Boundary-00=_E23R9KVVWVCAFQFMKHLO-- - 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/