From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Desfossez Subject: [PATCH lttng-tools v3 4/6] Allow regenerating the statedump of a running session Date: Tue, 5 Jul 2016 10:54:36 -0400 Message-ID: <1467730478-9524-4-git-send-email-jdesfossez__10164.7049807527$1467730516$gmane$org@efficios.com> References: <1467730478-9524-1-git-send-email-jdesfossez@efficios.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.ini-tech.com (unknown [192.99.35.19]) by evm-lttng-1.efficios.com (Postfix) with ESMTPS id 253A1A2C52 for ; Tue, 5 Jul 2016 14:54:49 +0000 (UTC) In-Reply-To: <1467730478-9524-1-git-send-email-jdesfossez@efficios.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lttng-dev-bounces@lists.lttng.org Sender: "lttng-dev" To: jgalar@efficios.com, mathieu.desnoyers@efficios.com, philippe.proulx@efficios.com Cc: lttng-dev@lists.lttng.org, Julien Desfossez List-Id: lttng-dev@lists.lttng.org VGhlICJsdHRuZyByZWdlbmVyYXRlIHN0YXRlZHVtcCIgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBy ZWdlbmVyYXRlIHRoZQpzdGF0ZWR1bXAgb2YgYSBydW5uaW5nIHNlc3Npb24gd2hlbmV2ZXIgbmVl ZGVkLiBUaGlzIGlzIHBhcnRpY3VsYXJseQp1c2VmdWwgaW4gc25hcHNob3QgYW5kIHRyYWNlLWZp bGUgcm90YXRpb24gbW9kZXMgd2hlcmUgdGhlIG9yaWdpbmFsCnN0YXRlZHVtcCBtYXkgYmUgbG9z dC4KClNpZ25lZC1vZmYtYnk6IEp1bGllbiBEZXNmb3NzZXogPGpkZXNmb3NzZXpAZWZmaWNpb3Mu Y29tPgotLS0KIGluY2x1ZGUvbHR0bmcvbHR0bmctZXJyb3IuaCAgICAgICAgICAgICAgfCAgMiAr CiBpbmNsdWRlL2x0dG5nL2x0dG5nLmggICAgICAgICAgICAgICAgICAgIHwgIDkgKysrKysKIHNy Yy9iaW4vbHR0bmctc2Vzc2lvbmQvY21kLmMgICAgICAgICAgICAgfCA1NSArKysrKysrKysrKysr KysrKysrKysrKysrKwogc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC9jbWQuaCAgICAgICAgICAgICB8 ICAxICsKIHNyYy9iaW4vbHR0bmctc2Vzc2lvbmQvbWFpbi5jICAgICAgICAgICAgfCAgNiArKysK IHNyYy9iaW4vbHR0bmctc2Vzc2lvbmQvdXN0LWFwcC5jICAgICAgICAgfCA2NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC91c3QtYXBwLmgg ICAgICAgICB8ICA2ICsrKwogc3JjL2Jpbi9sdHRuZy9jb21tYW5kcy9yZWdlbmVyYXRlLmMgICAg ICB8IDE5ICsrKysrKysrKwogc3JjL2NvbW1vbi9lcnJvci5jICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICsKIHNyYy9jb21tb24va2VybmVsLWN0bC9rZXJuZWwtY3RsLmMgICAgICAgfCAgNSAr KysKIHNyYy9jb21tb24va2VybmVsLWN0bC9rZXJuZWwtY3RsLmggICAgICAgfCAgMSArCiBzcmMv Y29tbW9uL3Nlc3Npb25kLWNvbW0vc2Vzc2lvbmQtY29tbS5oIHwgIDEgKwogc3JjL2xpYi9sdHRu Zy1jdGwvbHR0bmctY3RsLmMgICAgICAgICAgICB8IDMwICsrKysrKysrKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMjAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2x0dG5n L2x0dG5nLWVycm9yLmggYi9pbmNsdWRlL2x0dG5nL2x0dG5nLWVycm9yLmgKaW5kZXggNzIxOTRl Zi4uZGY1OWY4ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9sdHRuZy9sdHRuZy1lcnJvci5oCisrKyBi L2luY2x1ZGUvbHR0bmcvbHR0bmctZXJyb3IuaApAQCAtMTQyLDYgKzE0Miw4IEBAIGVudW0gbHR0 bmdfZXJyb3JfY29kZSB7CiAJTFRUTkdfRVJSX0xJVkVfU0VTU0lPTiAgICAgICAgICAgPSAxMTks IC8qIExpdmUgc2Vzc2lvbiB1bnN1cHBvcnRlZCAqLwogCUxUVE5HX0VSUl9QRVJfUElEX1NFU1NJ T04gICAgICAgID0gMTIwLCAvKiBQZXItUElEIHNlc3Npb25zIHVuc3VwcG9ydGVkICovCiAJTFRU TkdfRVJSX0tFUk5fQ09OVEVYVF9VTkFWQUlMQUJMRSA9IDEyMSwgLyogQ29udGV4dCB1bmF2YWls YWJsZSBvbiB0aGlzIGtlcm5lbCAqLworCUxUVE5HX0VSUl9SRUdFTl9TVEFURURVTVBfRkFJTCAg ID0gMTIyLCAvKiBGYWlsZWQgdG8gcmVnZW5lcmF0ZSB0aGUgc3RhdGUgZHVtcCAqLworCUxUVE5H X0VSUl9SRUdFTl9TVEFURURVTVBfTk9NRU0gICA9IDEyMywgLyogRmFpbGVkIHRvIHJlZ2VuZXJh dGUgdGhlIHN0YXRlIGR1bXAsIG5vdCBlbm91Z2ggbWVtb3J5ICovCiAKIAkvKiBNVVNUIGJlIGxh c3QgZWxlbWVudCAqLwogCUxUVE5HX0VSUl9OUiwgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBMYXN0IGVsZW1lbnQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbHR0bmcvbHR0bmcuaCBiL2lu Y2x1ZGUvbHR0bmcvbHR0bmcuaAppbmRleCAwOWFhOTY5Li5kMzdkNmMwIDEwMDY0NAotLS0gYS9p bmNsdWRlL2x0dG5nL2x0dG5nLmgKKysrIGIvaW5jbHVkZS9sdHRuZy9sdHRuZy5oCkBAIC0xNzMs NiArMTczLDE1IEBAIGV4dGVybiBpbnQgbHR0bmdfbWV0YWRhdGFfcmVnZW5lcmF0ZShjb25zdCBj aGFyICpzZXNzaW9uX25hbWUpOwogICovCiBleHRlcm4gaW50IGx0dG5nX3JlZ2VuZXJhdGVfbWV0 YWRhdGEoY29uc3QgY2hhciAqc2Vzc2lvbl9uYW1lKTsKIAorLyoKKyAqIFRyaWdnZXIgdGhlIHJl Z2VuZXJhdGlvbiBvZiB0aGUgc3RhdGVkdW1wIGZvciBhIHNlc3Npb24uIFRoZSBuZXcgc3RhdGVk dW1wCisgKiBpbmZvcm1hdGlvbiBpcyBhcHBlbmRlZCB0byB0aGUgY3VycmVudGx5IGFjdGl2ZSB0 cmFjZSwgdGhlIHNlc3Npb24gbmVlZHMgdG8KKyAqIGJlIGFjdGl2ZS4KKyAqCisgKiBSZXR1cm4g MCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZlIExUVG5nIGVycm9yIGNvZGUgb24gZXJyb3IuCisgKi8K K2V4dGVybiBpbnQgbHR0bmdfcmVnZW5lcmF0ZV9zdGF0ZWR1bXAoY29uc3QgY2hhciAqc2Vzc2lv bl9uYW1lKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vbHR0bmctc2Vzc2lvbmQvY21kLmMgYi9zcmMvYmluL2x0dG5nLXNlc3Npb25kL2NtZC5j CmluZGV4IGJkNjMzODkuLmE1N2FmZTIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vbHR0bmctc2Vzc2lv bmQvY21kLmMKKysrIGIvc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC9jbWQuYwpAQCAtMzU0MCw2ICsz NTQwLDYxIEBAIGVuZDoKIH0KIAogLyoKKyAqIENvbW1hbmQgTFRUTkdfUkVHRU5FUkFURV9TVEFU RURVTVAgZnJvbSB0aGUgbHR0bmctY3RsIGxpYnJhcnkuCisgKgorICogQXNrIHRoZSB0cmFjZXIg dG8gcmVnZW5lcmF0ZSBhIG5ldyBzdGF0ZWR1bXAuCisgKgorICogUmV0dXJuIDAgb24gc3VjY2Vz cyBvciBlbHNlIGEgTFRUTkdfRVJSIGNvZGUuCisgKi8KK2ludCBjbWRfcmVnZW5lcmF0ZV9zdGF0 ZWR1bXAoc3RydWN0IGx0dF9zZXNzaW9uICpzZXNzaW9uKQoreworCWludCByZXQ7CisKKwlhc3Nl cnQoc2Vzc2lvbik7CisKKwlpZiAoIXNlc3Npb24tPmFjdGl2ZSkgeworCQlyZXQgPSBMVFROR19F UlJfU0VTU0lPTl9OT1RfU1RBUlRFRDsKKwkJZ290byBlbmQ7CisJfQorCXJldCA9IDA7CisKKwlp ZiAoc2Vzc2lvbi0+a2VybmVsX3Nlc3Npb24pIHsKKwkJcmV0ID0ga2VybmN0bF9zZXNzaW9uX3Jl Z2VuZXJhdGVfc3RhdGVkdW1wKAorCQkJCXNlc3Npb24tPmtlcm5lbF9zZXNzaW9uLT5mZCk7CisJ CS8qCisJCSAqIEN1cnJlbnRseSwgdGhlIHN0YXRlZHVtcCBpbiBrZXJuZWwgY2FuIG9ubHkgZmFp bCBpZiBvdXQKKwkJICogb2YgbWVtb3J5LgorCQkgKi8KKwkJaWYgKHJldCA8IDApIHsKKwkJCWlm IChyZXQgPT0gLUVOT01FTSkgeworCQkJCXJldCA9IExUVE5HX0VSUl9SRUdFTl9TVEFURURVTVBf Tk9NRU07CisJCQl9IGVsc2UgeworCQkJCXJldCA9IExUVE5HX0VSUl9SRUdFTl9TVEFURURVTVBf RkFJTDsKKwkJCX0KKwkJCUVSUigiRmFpbGVkIHRvIHJlZ2VuZXJhdGUgdGhlIGtlcm5lbCBzdGF0 ZWR1bXAiKTsKKwkJCWdvdG8gZW5kOworCQl9CisJfQorCisJaWYgKHNlc3Npb24tPnVzdF9zZXNz aW9uKSB7CisJCXJldCA9IHVzdF9hcHBfcmVnZW5lcmF0ZV9zdGF0ZWR1bXBfYWxsKHNlc3Npb24t PnVzdF9zZXNzaW9uKTsKKwkJLyoKKwkJICogQ3VycmVudGx5LCB0aGUgc3RhdGVkdW1wIGluIFVT VCBhbHdheXMgcmV0dXJucyAwLgorCQkgKi8KKwkJaWYgKHJldCA8IDApIHsKKwkJCXJldCA9IExU VE5HX0VSUl9SRUdFTl9TVEFURURVTVBfRkFJTDsKKwkJCUVSUigiRmFpbGVkIHRvIHJlZ2VuZXJh dGUgdGhlIFVTVCBzdGF0ZWR1bXAiKTsKKwkJCWdvdG8gZW5kOworCQl9CisJfQorCURCRygiQ21k IHJlZ2VuZXJhdGUgc3RhdGVkdW1wIGZvciBzZXNzaW9uICVzIiwgc2Vzc2lvbi0+bmFtZSk7CisJ cmV0ID0gTFRUTkdfT0s7CisKK2VuZDoKKwlyZXR1cm4gcmV0OworfQorCisvKgogICogU2VuZCBy ZWxheWQgc29ja2V0cyBmcm9tIHNuYXBzaG90IG91dHB1dCB0byBjb25zdW1lci4gSWdub3JlIHJl cXVlc3QgaWYgdGhlCiAgKiBzbmFwc2hvdCBvdXRwdXQgaXMgKm5vdCogc2V0IHdpdGggYSByZW1v dGUgZGVzdGluYXRpb24uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC9j bWQuaCBiL3NyYy9iaW4vbHR0bmctc2Vzc2lvbmQvY21kLmgKaW5kZXggMzIwZDcxNy4uOTc1YTdm MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC9jbWQuaAorKysgYi9zcmMvYmlu L2x0dG5nLXNlc3Npb25kL2NtZC5oCkBAIC0xMTEsNSArMTExLDYgQEAgaW50IGNtZF9zbmFwc2hv dF9yZWNvcmQoc3RydWN0IGx0dF9zZXNzaW9uICpzZXNzaW9uLAogaW50IGNtZF9zZXRfc2Vzc2lv bl9zaG1fcGF0aChzdHJ1Y3QgbHR0X3Nlc3Npb24gKnNlc3Npb24sCiAJCWNvbnN0IGNoYXIgKnNo bV9wYXRoKTsKIGludCBjbWRfcmVnZW5lcmF0ZV9tZXRhZGF0YShzdHJ1Y3QgbHR0X3Nlc3Npb24g KnNlc3Npb24pOworaW50IGNtZF9yZWdlbmVyYXRlX3N0YXRlZHVtcChzdHJ1Y3QgbHR0X3Nlc3Np b24gKnNlc3Npb24pOwogCiAjZW5kaWYgLyogQ01EX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4v bHR0bmctc2Vzc2lvbmQvbWFpbi5jIGIvc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC9tYWluLmMKaW5k ZXggMzYyM2U1ZC4uODMwOWMzZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC9t YWluLmMKKysrIGIvc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC9tYWluLmMKQEAgLTMwMDQsNiArMzAw NCw3IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19jbGllbnRfbXNnKHN0cnVjdCBjb21tYW5kX2N0eCAq Y21kX2N0eCwgaW50IHNvY2ssCiAJY2FzZSBMVFROR19TQVZFX1NFU1NJT046CiAJY2FzZSBMVFRO R19TRVRfU0VTU0lPTl9TSE1fUEFUSDoKIAljYXNlIExUVE5HX1JFR0VORVJBVEVfTUVUQURBVEE6 CisJY2FzZSBMVFROR19SRUdFTkVSQVRFX1NUQVRFRFVNUDoKIAkJbmVlZF9kb21haW4gPSAwOwog CQlicmVhazsKIAlkZWZhdWx0OgpAQCAtNDExOSw2ICs0MTIwLDExIEBAIGVycm9yX2FkZF9jb250 ZXh0OgogCQlyZXQgPSBjbWRfcmVnZW5lcmF0ZV9tZXRhZGF0YShjbWRfY3R4LT5zZXNzaW9uKTsK IAkJYnJlYWs7CiAJfQorCWNhc2UgTFRUTkdfUkVHRU5FUkFURV9TVEFURURVTVA6CisJeworCQly ZXQgPSBjbWRfcmVnZW5lcmF0ZV9zdGF0ZWR1bXAoY21kX2N0eC0+c2Vzc2lvbik7CisJCWJyZWFr OworCX0KIAlkZWZhdWx0OgogCQlyZXQgPSBMVFROR19FUlJfVU5EOwogCQlicmVhazsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vbHR0bmctc2Vzc2lvbmQvdXN0LWFwcC5jIGIvc3JjL2Jpbi9sdHRuZy1z ZXNzaW9uZC91c3QtYXBwLmMKaW5kZXggZjMwZGYyMC4uNDdiZDA0YyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9sdHRuZy1zZXNzaW9uZC91c3QtYXBwLmMKKysrIGIvc3JjL2Jpbi9sdHRuZy1zZXNzaW9u ZC91c3QtYXBwLmMKQEAgLTYxNDgsMyArNjE0OCw2OSBAQCBlbmQ6CiAJcmN1X3JlYWRfdW5sb2Nr KCk7CiAJcmV0dXJuIHJldDsKIH0KKworc3RhdGljCitpbnQgdXN0X2FwcF9yZWdlbmVyYXRlX3N0 YXRlZHVtcChzdHJ1Y3QgbHR0X3VzdF9zZXNzaW9uICp1c2VzcywKKwkJc3RydWN0IHVzdF9hcHAg KmFwcCkKK3sKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgdXN0X2FwcF9zZXNzaW9uICp1YV9zZXNz OworCisJREJHKCJSZWdlbmVyYXRpbmcgdGhlIG1ldGFkYXRhIGZvciB1c3QgYXBwIHBpZCAlZCIs IGFwcC0+cGlkKTsKKworCXJjdV9yZWFkX2xvY2soKTsKKworCXVhX3Nlc3MgPSBsb29rdXBfc2Vz c2lvbl9ieV9hcHAodXNlc3MsIGFwcCk7CisJaWYgKHVhX3Nlc3MgPT0gTlVMTCkgeworCQkvKiBU aGUgc2Vzc2lvbiBpcyBpbiB0ZWFyZG93biBwcm9jZXNzLiBJZ25vcmUgYW5kIGNvbnRpbnVlLiAq LworCQlnb3RvIGVuZDsKKwl9CisKKwlwdGhyZWFkX211dGV4X2xvY2soJnVhX3Nlc3MtPmxvY2sp OworCisJaWYgKHVhX3Nlc3MtPmRlbGV0ZWQpIHsKKwkJZ290byBlbmRfdW5sb2NrOworCX0KKwor CXB0aHJlYWRfbXV0ZXhfbG9jaygmYXBwLT5zb2NrX2xvY2spOworCXJldCA9IHVzdGN0bF9yZWdl bmVyYXRlX3N0YXRlZHVtcChhcHAtPnNvY2ssIHVhX3Nlc3MtPmhhbmRsZSk7CisJcHRocmVhZF9t dXRleF91bmxvY2soJmFwcC0+c29ja19sb2NrKTsKKworZW5kX3VubG9jazoKKwlwdGhyZWFkX211 dGV4X3VubG9jaygmdWFfc2Vzcy0+bG9jayk7CisKK2VuZDoKKwlyY3VfcmVhZF91bmxvY2soKTsK KwloZWFsdGhfY29kZV91cGRhdGUoKTsKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogUmVnZW5l cmF0ZSB0aGUgc3RhdGVkdW1wIGZvciBlYWNoIGFwcCBpbiB0aGUgc2Vzc2lvbi4KKyAqLworaW50 IHVzdF9hcHBfcmVnZW5lcmF0ZV9zdGF0ZWR1bXBfYWxsKHN0cnVjdCBsdHRfdXN0X3Nlc3Npb24g KnVzZXNzKQoreworCWludCByZXQgPSAwOworCXN0cnVjdCBsdHRuZ19odF9pdGVyIGl0ZXI7CisJ c3RydWN0IHVzdF9hcHAgKmFwcDsKKworCURCRygiUmVnZW5lcmF0aW5nIHRoZSBtZXRhZGF0YSBm b3IgYWxsIFVTVCBhcHBzIik7CisKKwlyY3VfcmVhZF9sb2NrKCk7CisKKwljZHNfbGZodF9mb3Jf ZWFjaF9lbnRyeSh1c3RfYXBwX2h0LT5odCwgJml0ZXIuaXRlciwgYXBwLCBwaWRfbi5ub2RlKSB7 CisJCWlmICghYXBwLT5jb21wYXRpYmxlKSB7CisJCQljb250aW51ZTsKKwkJfQorCisJCXJldCA9 IHVzdF9hcHBfcmVnZW5lcmF0ZV9zdGF0ZWR1bXAodXNlc3MsIGFwcCk7CisJCWlmIChyZXQgPCAw KSB7CisJCQkvKiBDb250aW51ZSB0byB0aGUgbmV4dCBhcHAgZXZlbiBvbiBlcnJvciAqLworCQkJ Y29udGludWU7CisJCX0KKwl9CisKKwlyY3VfcmVhZF91bmxvY2soKTsKKworCXJldHVybiAwOwor fQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC91c3QtYXBwLmggYi9zcmMvYmlu L2x0dG5nLXNlc3Npb25kL3VzdC1hcHAuaAppbmRleCBkMDJmMzUzLi44MzY5ZDE0IDEwMDY0NAot LS0gYS9zcmMvYmluL2x0dG5nLXNlc3Npb25kL3VzdC1hcHAuaAorKysgYi9zcmMvYmluL2x0dG5n LXNlc3Npb25kL3VzdC1hcHAuaApAQCAtMzUyLDYgKzM1Miw3IEBAIGludCB1c3RfYXBwX3BpZF9n ZXRfY2hhbm5lbF9ydW50aW1lX3N0YXRzKHN0cnVjdCBsdHRfdXN0X3Nlc3Npb24gKnVzZXNzLAog CQlzdHJ1Y3QgbHR0X3VzdF9jaGFubmVsICp1Y2hhbiwKIAkJc3RydWN0IGNvbnN1bWVyX291dHB1 dCAqY29uc3VtZXIsCiAJCWludCBvdmVyd3JpdGUsIHVpbnQ2NF90ICpkaXNjYXJkZWQsIHVpbnQ2 NF90ICpsb3N0KTsKK2ludCB1c3RfYXBwX3JlZ2VuZXJhdGVfc3RhdGVkdW1wX2FsbChzdHJ1Y3Qg bHR0X3VzdF9zZXNzaW9uICp1c2Vzcyk7CiAKIHN0YXRpYyBpbmxpbmUKIGludCB1c3RfYXBwX3N1 cHBvcnRlZCh2b2lkKQpAQCAtNTgzLDYgKzU4NCwxMSBAQCBpbnQgdXN0X2FwcF9waWRfZ2V0X2No YW5uZWxfcnVudGltZV9zdGF0cyhzdHJ1Y3QgbHR0X3VzdF9zZXNzaW9uICp1c2VzcywKIHsKIAly ZXR1cm4gMDsKIH0KK3N0YXRpYyBpbmxpbmUKK2ludCB1c3RfYXBwX3JlZ2VuZXJhdGVfbWV0YWRh dGFfYWxsKHN0cnVjdCBsdHRfdXN0X3Nlc3Npb24gKnVzZXNzKQoreworCXJldHVybiAwOworfQog CiAjZW5kaWYgLyogSEFWRV9MSUJMVFROR19VU1RfQ1RMICovCiAKZGlmZiAtLWdpdCBhL3NyYy9i aW4vbHR0bmcvY29tbWFuZHMvcmVnZW5lcmF0ZS5jIGIvc3JjL2Jpbi9sdHRuZy9jb21tYW5kcy9y ZWdlbmVyYXRlLmMKaW5kZXggYzY0ZDhmZS4uNWM5ODJjOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9s dHRuZy9jb21tYW5kcy9yZWdlbmVyYXRlLmMKKysrIGIvc3JjL2Jpbi9sdHRuZy9jb21tYW5kcy9y ZWdlbmVyYXRlLmMKQEAgLTMyLDYgKzMyLDcgQEAgc3RhdGljIGNoYXIgKm9wdF9zZXNzaW9uX25h bWU7CiBzdGF0aWMgY2hhciAqc2Vzc2lvbl9uYW1lID0gTlVMTDsKIAogc3RhdGljIGludCByZWdl bmVyYXRlX21ldGFkYXRhKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7CitzdGF0aWMgaW50 IHJlZ2VuZXJhdGVfc3RhdGVkdW1wKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7CiAKIGVu dW0gewogCU9QVF9IRUxQID0gMSwKQEAgLTUyLDYgKzUzLDcgQEAgc3RhdGljIHN0cnVjdCBwb3B0 T3B0aW9uIGxvbmdfb3B0aW9uc1tdID0gewogCiBzdGF0aWMgc3RydWN0IGNtZF9zdHJ1Y3QgYWN0 aW9uc1tdID0gewogCXsgIm1ldGFkYXRhIiwgcmVnZW5lcmF0ZV9tZXRhZGF0YSB9LAorCXsgInN0 YXRlZHVtcCIsIHJlZ2VuZXJhdGVfc3RhdGVkdW1wIH0sCiAJeyBOVUxMLCBOVUxMIH0JLyogQXJy YXkgY2xvc3VyZSAqLwogfTsKIApAQCAtODgsNiArOTAsMjMgQEAgZW5kOgogCXJldHVybiByZXQ7 CiB9CiAKK3N0YXRpYyBpbnQgcmVnZW5lcmF0ZV9zdGF0ZWR1bXAoaW50IGFyZ2MsIGNvbnN0IGNo YXIgKiphcmd2KQoreworCWludCByZXQ7CisKKwlpZiAoYXJnYyA+IDEpIHsKKwkJcmV0ID0gLUxU VE5HX0VSUl9JTlZBTElEOworCQlnb3RvIGVuZDsKKwl9CisJcmV0ID0gbHR0bmdfcmVnZW5lcmF0 ZV9zdGF0ZWR1bXAoc2Vzc2lvbl9uYW1lKTsKKwlpZiAocmV0ID09IDApIHsKKwkJTVNHKCJTdGF0 ZSBkdW1wIHN1Y2Nlc3NmdWxseSByZWdlbmVyYXRlZCBmb3Igc2Vzc2lvbiAlcyIsIHNlc3Npb25f bmFtZSk7CisJfQorCitlbmQ6CisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGludCBoYW5kbGVf Y29tbWFuZChjb25zdCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3QgY21kX3N0cnVjdCAqY21kOwpk aWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9lcnJvci5jIGIvc3JjL2NvbW1vbi9lcnJvci5jCmluZGV4 IGJjNDI1NzcuLmQzZDk1MmEgMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24vZXJyb3IuYworKysgYi9z cmMvY29tbW9uL2Vycm9yLmMKQEAgLTE4Myw2ICsxODMsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAq ZXJyb3Jfc3RyaW5nX2FycmF5W10gPSB7CiAJWyBFUlJPUl9JTkRFWChMVFROR19FUlJfTElWRV9T RVNTSU9OKSBdID0gIkxpdmUgc2Vzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiLAogCVsgRVJST1Jf SU5ERVgoTFRUTkdfRVJSX1BFUl9QSURfU0VTU0lPTikgXSA9ICJQZXItUElEIHRyYWNpbmcgc2Vz c2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiLAogCVsgRVJST1JfSU5ERVgoTFRUTkdfRVJSX0tFUk5f Q09OVEVYVF9VTkFWQUlMQUJMRSkgXSA9ICJDb250ZXh0IHVuYXZhaWxhYmxlIG9uIHRoaXMga2Vy bmVsIiwKKwlbIEVSUk9SX0lOREVYKExUVE5HX0VSUl9SRUdFTl9TVEFURURVTVBfRkFJTCkgXSA9 ICJGYWlsZWQgdG8gcmVnZW5lcmF0ZSB0aGUgc3RhdGUgZHVtcCIsCisJWyBFUlJPUl9JTkRFWChM VFROR19FUlJfUkVHRU5fU1RBVEVEVU1QX05PTUVNKSBdID0gIkZhaWxlZCB0byByZWdlbmVyYXRl IHRoZSBzdGF0ZSBkdW1wLCBub3QgZW5vdWdoIG1lbW9yeSIsCiAKIAkvKiBMYXN0IGVsZW1lbnQg Ki8KIAlbIEVSUk9SX0lOREVYKExUVE5HX0VSUl9OUikgXSA9ICJVbmtub3duIGVycm9yIGNvZGUi CmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2tlcm5lbC1jdGwva2VybmVsLWN0bC5jIGIvc3JjL2Nv bW1vbi9rZXJuZWwtY3RsL2tlcm5lbC1jdGwuYwppbmRleCBlMWRlMGU3Li4xYzJhYjYxIDEwMDY0 NAotLS0gYS9zcmMvY29tbW9uL2tlcm5lbC1jdGwva2VybmVsLWN0bC5jCisrKyBiL3NyYy9jb21t b24va2VybmVsLWN0bC9rZXJuZWwtY3RsLmMKQEAgLTIzMCw2ICsyMzAsMTEgQEAgaW50IGtlcm5j dGxfc2Vzc2lvbl9yZWdlbmVyYXRlX21ldGFkYXRhKGludCBmZCkKIAlyZXR1cm4gTFRUTkdfSU9D VExfQ0hFQ0soZmQsIExUVE5HX0tFUk5FTF9TRVNTSU9OX01FVEFEQVRBX1JFR0VOKTsKIH0KIAor aW50IGtlcm5jdGxfc2Vzc2lvbl9yZWdlbmVyYXRlX3N0YXRlZHVtcChpbnQgZmQpCit7CisJcmV0 dXJuIExUVE5HX0lPQ1RMX0NIRUNLKGZkLCBMVFROR19LRVJORUxfU0VTU0lPTl9TVEFURURVTVAp OworfQorCiBpbnQga2VybmN0bF9jcmVhdGVfc3RyZWFtKGludCBmZCkKIHsKIAlyZXR1cm4gY29t cGF0X2lvY3RsX25vX2FyZyhmZCwgTFRUTkdfS0VSTkVMX09MRF9TVFJFQU0sCmRpZmYgLS1naXQg YS9zcmMvY29tbW9uL2tlcm5lbC1jdGwva2VybmVsLWN0bC5oIGIvc3JjL2NvbW1vbi9rZXJuZWwt Y3RsL2tlcm5lbC1jdGwuaAppbmRleCBmMzBlNmYzLi43YzI1YTE3IDEwMDY0NAotLS0gYS9zcmMv Y29tbW9uL2tlcm5lbC1jdGwva2VybmVsLWN0bC5oCisrKyBiL3NyYy9jb21tb24va2VybmVsLWN0 bC9rZXJuZWwtY3RsLmgKQEAgLTY2LDYgKzY2LDcgQEAgaW50IGtlcm5jdGxfdW50cmFja19waWQo aW50IGZkLCBpbnQgcGlkKTsKIGludCBrZXJuY3RsX2xpc3RfdHJhY2tlcl9waWRzKGludCBmZCk7 CiAKIGludCBrZXJuY3RsX3Nlc3Npb25fcmVnZW5lcmF0ZV9tZXRhZGF0YShpbnQgZmQpOworaW50 IGtlcm5jdGxfc2Vzc2lvbl9yZWdlbmVyYXRlX3N0YXRlZHVtcChpbnQgZmQpOwogCiAvKiBCdWZm ZXIgb3BlcmF0aW9ucyAqLwogCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL3Nlc3Npb25kLWNvbW0v c2Vzc2lvbmQtY29tbS5oIGIvc3JjL2NvbW1vbi9zZXNzaW9uZC1jb21tL3Nlc3Npb25kLWNvbW0u aAppbmRleCAyOTc0MGMxLi42MjhiMWVhIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL3Nlc3Npb25k LWNvbW0vc2Vzc2lvbmQtY29tbS5oCisrKyBiL3NyYy9jb21tb24vc2Vzc2lvbmQtY29tbS9zZXNz aW9uZC1jb21tLmgKQEAgLTk1LDYgKzk1LDcgQEAgZW51bSBsdHRjb21tX3Nlc3Npb25kX2NvbW1h bmQgewogCUxUVE5HX0xJU1RfVFJBQ0tFUl9QSURTICAgICAgICAgICAgID0gMzQsCiAJTFRUTkdf U0VUX1NFU1NJT05fU0hNX1BBVEggICAgICAgICAgPSA0MCwKIAlMVFROR19SRUdFTkVSQVRFX01F VEFEQVRBICAgICAgICAgICA9IDQxLAorCUxUVE5HX1JFR0VORVJBVEVfU1RBVEVEVU1QICAgICAg ICAgID0gNDIsCiB9OwogCiBlbnVtIGx0dGNvbW1fcmVsYXlkX2NvbW1hbmQgewpkaWZmIC0tZ2l0 IGEvc3JjL2xpYi9sdHRuZy1jdGwvbHR0bmctY3RsLmMgYi9zcmMvbGliL2x0dG5nLWN0bC9sdHRu Zy1jdGwuYwppbmRleCA4Yzc4ZTFjLi5iY2Q1OWYwIDEwMDY0NAotLS0gYS9zcmMvbGliL2x0dG5n LWN0bC9sdHRuZy1jdGwuYworKysgYi9zcmMvbGliL2x0dG5nLWN0bC9sdHRuZy1jdGwuYwpAQCAt MjQxOSw2ICsyNDE5LDM2IEBAIGludCBsdHRuZ19tZXRhZGF0YV9yZWdlbmVyYXRlKGNvbnN0IGNo YXIgKnNlc3Npb25fbmFtZSkKIH0KIAogLyoKKyAqIFJlZ2VuZXJhdGUgdGhlIHN0YXRlZHVtcCBv ZiBhIHNlc3Npb24uCisgKiBSZXR1cm4gMCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZlIGVycm9yIGNv ZGUgb24gZXJyb3IuCisgKi8KK2ludCBsdHRuZ19yZWdlbmVyYXRlX3N0YXRlZHVtcChjb25zdCBj aGFyICpzZXNzaW9uX25hbWUpCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgbHR0Y29tbV9zZXNzaW9u X21zZyBsc207CisKKwlpZiAoIXNlc3Npb25fbmFtZSkgeworCQlyZXQgPSAtTFRUTkdfRVJSX0lO VkFMSUQ7CisJCWdvdG8gZW5kOworCX0KKworCW1lbXNldCgmbHNtLCAwLCBzaXplb2YobHNtKSk7 CisJbHNtLmNtZF90eXBlID0gTFRUTkdfUkVHRU5FUkFURV9TVEFURURVTVA7CisKKwlsdHRuZ19j dGxfY29weV9zdHJpbmcobHNtLnNlc3Npb24ubmFtZSwgc2Vzc2lvbl9uYW1lLAorCQkJc2l6ZW9m KGxzbS5zZXNzaW9uLm5hbWUpKTsKKworCXJldCA9IGx0dG5nX2N0bF9hc2tfc2Vzc2lvbmQoJmxz bSwgTlVMTCk7CisJaWYgKHJldCA8IDApIHsKKwkJZ290byBlbmQ7CisJfQorCisJcmV0ID0gMDsK K2VuZDoKKwlyZXR1cm4gcmV0OworfQorCisvKgogICogbGliIGNvbnN0cnVjdG9yLgogICovCiBz dGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIGluaXQodm9pZCkKLS0gCjEu OS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsdHRu Zy1kZXYgbWFpbGluZyBsaXN0Cmx0dG5nLWRldkBsaXN0cy5sdHRuZy5vcmcKaHR0cHM6Ly9saXN0 cy5sdHRuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2x0dG5nLWRldgo=