From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathieu Desnoyers Subject: Re: Question about how to retrieve ip value of a syscall Date: Wed, 10 Sep 2014 15:12:11 +0000 (UTC) Message-ID: <702102133.20941.1410361931313.JavaMail.zimbra__23124.0951842212$1410361866$gmane$org@efficios.com> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_20935_1064367699.1410361931309" Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lttng-dev-bounces@lists.lttng.org To: tarek slaymia Cc: lttng-dev@lists.lttng.org, lttng-dev-request@lists.lttng.org List-Id: lttng-dev@lists.lttng.org ------=_Part_20935_1064367699.1410361931309 Content-Type: multipart/alternative; boundary="----=_Part_20936_289137583.1410361931309" ------=_Part_20936_289137583.1410361931309 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit ----- Original Message ----- > From: "tarek slaymia" > To: lttng-dev-request@lists.lttng.org, lttng-dev@lists.lttng.org > Sent: Wednesday, August 20, 2014 7:15:21 PM > Subject: [lttng-dev] Question about how to retrieve ip value of a syscall > Hi all , > i tried to implement an event in statedump in order to compare the runtime > syscall address and the syscall symbol address ( the same address displayed > in ip field when i use lttng kprobe ). > did you know how can i retrieve the syscall symbol value using my function in > lttng-statedump-impl.c file ? > i have an other issue when i tried to list all kernel event , the new event > that i add in lttng-module isn't displayed . did i miss something ? > you find in attachment the additional code . Does the printk within lttng_enumerate_syscall_address_list() print anything on the console when you start tracing ? Try adding printk in your code to see what is happening. It's not executed often, so it should be easy to understand what is going wrong by adding printk statements. Thanks, Mathieu > BR > _______________________________________________ > lttng-dev mailing list > lttng-dev@lists.lttng.org > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com ------=_Part_20936_289137583.1410361931309 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable

From: "tarek slaymia" <tar= ek.slaymia@gmail.com>
To: lttng-dev-request@lists.lttng.org, l= ttng-dev@lists.lttng.org
Sent: Wednesday, August 20, 2014 7:15:21= PM
Subject: [lttng-dev] Question about how to retrieve ip value = of a syscall

Hi all = ,
i tried to implement an event in statedump in order to compare t= he runtime syscall address and the syscall symbol address ( the same addres= s displayed in ip field when i use lttng kprobe ).

did you kno= w how can i retrieve the syscall symbol value using my function in lttng-st= atedump-impl.c file ?
i have an other issue when i tried to list a= ll kernel event , the new event that i add in lttng-module isn't displayed = . did i miss something ?

you find in attachment the additional= code .
Does the printk within lttng_enumerate_sysca= ll_address_list()
print anything on the console when you start tr= acing ?

Try adding printk in your code to see = what is happening. It's not executed often,
so it should be e= asy to understand what is going wrong by adding printk statements.

Thanks,

Mathieu
=



BR
<= /div>
_______________________________________________
lttng-dev maili= ng list
lttng-dev@lists.lttng.org
http://lists.lttng.org/cgi-bin/mail= man/listinfo/lttng-dev



--
Mathieu Desnoyers
EfficiOS = Inc.
http://www.efficios.com
------=_Part_20936_289137583.1410361931309-- ------=_Part_20935_1064367699.1410361931309 Content-Type: text/x-chdr; name=lttng-statedump.h Content-Disposition: attachment; filename=lttng-statedump.h Content-Transfer-Encoding: base64 I3VuZGVmIFRSQUNFX1NZU1RFTQojZGVmaW5lIFRSQUNFX1NZU1RFTSBsdHRuZ19zdGF0ZWR1bXAK CiNpZiAhZGVmaW5lZChfVFJBQ0VfTFRUTkdfU1RBVEVEVU1QX0gpIHx8IGRlZmluZWQoVFJBQ0Vf SEVBREVSX01VTFRJX1JFQUQpCiNkZWZpbmUgX1RSQUNFX0xUVE5HX1NUQVRFRFVNUF9ICgojaW5j bHVkZSA8bGludXgvdHJhY2Vwb2ludC5oPgojaW5jbHVkZSA8bGludXgvbnNwcm94eS5oPgojaW5j bHVkZSA8bGludXgvcGlkX25hbWVzcGFjZS5oPgojaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KClRS QUNFX0VWRU5UKGx0dG5nX3N0YXRlZHVtcF9zdGFydCwKCVRQX1BST1RPKHN0cnVjdCBsdHRuZ19z ZXNzaW9uICpzZXNzaW9uKSwKCVRQX0FSR1Moc2Vzc2lvbiksCglUUF9TVFJVQ1RfX2VudHJ5KAoJ KSwKCVRQX2Zhc3RfYXNzaWduKAoJKSwKCVRQX3ByaW50aygiIikKKQoKVFJBQ0VfRVZFTlQobHR0 bmdfc3RhdGVkdW1wX2VuZCwKCVRQX1BST1RPKHN0cnVjdCBsdHRuZ19zZXNzaW9uICpzZXNzaW9u KSwKCVRQX0FSR1Moc2Vzc2lvbiksCglUUF9TVFJVQ1RfX2VudHJ5KAoJKSwKCVRQX2Zhc3RfYXNz aWduKAoJKSwKCVRQX3ByaW50aygiIikKKQoKVFJBQ0VfRVZFTlQobHR0bmdfc3RhdGVkdW1wX3By b2Nlc3Nfc3RhdGUsCglUUF9QUk9UTyhzdHJ1Y3QgbHR0bmdfc2Vzc2lvbiAqc2Vzc2lvbiwKCQlz dHJ1Y3QgdGFza19zdHJ1Y3QgKnAsCgkJaW50IHR5cGUsIGludCBtb2RlLCBpbnQgc3VibW9kZSwg aW50IHN0YXR1cywKCQlzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqcGlkX25zKSwKCVRQX0FSR1Moc2Vz c2lvbiwgcCwgdHlwZSwgbW9kZSwgc3VibW9kZSwgc3RhdHVzLCBwaWRfbnMpLAoJVFBfU1RSVUNU X19lbnRyeSgKCQlfX2ZpZWxkKHBpZF90LCB0aWQpCgkJX19maWVsZChwaWRfdCwgdnRpZCkKCQlf X2ZpZWxkKHBpZF90LCBwaWQpCgkJX19maWVsZChwaWRfdCwgdnBpZCkKCQlfX2ZpZWxkKHBpZF90 LCBwcGlkKQoJCV9fZmllbGQocGlkX3QsIHZwcGlkKQoJCV9fYXJyYXlfdGV4dChjaGFyLCBuYW1l LCBUQVNLX0NPTU1fTEVOKQoJCV9fZmllbGQoaW50LCB0eXBlKQoJCV9fZmllbGQoaW50LCBtb2Rl KQoJCV9fZmllbGQoaW50LCBzdWJtb2RlKQoJCV9fZmllbGQoaW50LCBzdGF0dXMpCgkJX19maWVs ZChpbnQsIG5zX2xldmVsKQoJKSwKCVRQX2Zhc3RfYXNzaWduKAoJCXRwX2Fzc2lnbih0aWQsIHAt PnBpZCkKCQl0cF9hc3NpZ24odnRpZCwgcGlkX25zID8gdGFza19waWRfbnJfbnMocCwgcGlkX25z KSA6IDApCgkJdHBfYXNzaWduKHBpZCwgcC0+dGdpZCkKCQl0cF9hc3NpZ24odnBpZCwgcGlkX25z ID8gdGFza190Z2lkX25yX25zKHAsIHBpZF9ucykgOiAwKQoJCXRwX2Fzc2lnbihwcGlkLAoJCQko ewoJCQkJcGlkX3QgcmV0OwoKCQkJCXJjdV9yZWFkX2xvY2soKTsKCQkJCXJldCA9IHRhc2tfdGdp ZF9ucihwLT5yZWFsX3BhcmVudCk7CgkJCQlyY3VfcmVhZF91bmxvY2soKTsKCQkJCXJldDsKCQkJ fSkpCgkJdHBfYXNzaWduKHZwcGlkLAoJCQkoewoJCQkJc3RydWN0IHRhc2tfc3RydWN0ICpwYXJl bnQ7CgkJCQlwaWRfdCByZXQgPSAwOwoKCQkJCWlmIChwaWRfbnMpIHsKCQkJCQlyY3VfcmVhZF9s b2NrKCk7CgkJCQkJcGFyZW50ID0gcmN1X2RlcmVmZXJlbmNlKHAtPnJlYWxfcGFyZW50KTsKCQkJ CQlyZXQgPSB0YXNrX3RnaWRfbnJfbnMocGFyZW50LCBwaWRfbnMpOwoJCQkJCXJjdV9yZWFkX3Vu bG9jaygpOwoJCQkJfQoJCQkJcmV0OwoJCQl9KSkKCQl0cF9tZW1jcHkobmFtZSwgcC0+Y29tbSwg VEFTS19DT01NX0xFTikKCQl0cF9hc3NpZ24odHlwZSwgdHlwZSkKCQl0cF9hc3NpZ24obW9kZSwg bW9kZSkKCQl0cF9hc3NpZ24oc3VibW9kZSwgc3VibW9kZSkKCQl0cF9hc3NpZ24oc3RhdHVzLCBz dGF0dXMpCgkJdHBfYXNzaWduKG5zX2xldmVsLCBwaWRfbnMgPyBwaWRfbnMtPmxldmVsIDogMCkK CSksCglUUF9wcmludGsoIiIpCikKCgovLy0tLSBBZGRlZCBieSBUYXJlay0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS8vClRSQUNFX0VWRU5UKGx0dG5nX3N0YXRlZHVtcF9zeXNjYWxsX2FkZHJlc3NfbGlz dCwKCVRQX1BST1RPKHN0cnVjdCBsdHRuZ19zZXNzaW9uICpzZXNzaW9uLGNvbnN0IGNoYXIgKnN5 c2NhbGxfbmFtZSwKCQl1bnNpZ25lZCBpbnQgcnVudGltZV9zeXNjYWxsX2FkZHJlc3MsCgkJdW5z aWduZWQgaW50IHN5bWJvbF9zeXNjYWxsX2FkZHJlc3MpLAoJVFBfQVJHUyhzZXNzaW9uLCBzeXNj YWxsX25hbWUsIHJ1bnRpbWVfc3lzY2FsbF9hZGRyZXNzLCBzeW1ib2xfc3lzY2FsbF9hZGRyZXNz KSwKCVRQX1NUUlVDVF9fZW50cnkoCgkJX19zdHJpbmcoc3lzY2FsbF9uYW1lLCBzeXNjYWxsX25h bWUpCgkJX19maWVsZCh1bnNpZ25lZCBpbnQsIHJ1bnRpbWVfc3lzY2FsbF9hZGRyZXNzKQoJCV9f ZmllbGQodW5zaWduZWQgaW50LCBzeW1ib2xfc3lzY2FsbF9hZGRyZXNzKQoJKSwKCVRQX2Zhc3Rf YXNzaWduKAoJCXRwX2Fzc2lnbihydW50aW1lX3N5c2NhbGxfYWRkcmVzcywgcnVudGltZV9zeXNj YWxsX2FkZHJlc3MpCgkJdHBfYXNzaWduKHN5bWJvbF9zeXNjYWxsX2FkZHJlc3MsIHN5bWJvbF9z eXNjYWxsX2FkZHJlc3MpCgkJdHBfc3RyY3B5KHN5c2NhbGxfbmFtZSwgc3lzY2FsbF9uYW1lKQoJ KSwKCVRQX3ByaW50aygiIikKKQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ly8KVFJBQ0VfRVZFTlQobHR0bmdfc3RhdGVkdW1wX2ZpbGVfZGVzY3JpcHRvciwKCVRQX1BST1RP KHN0cnVjdCBsdHRuZ19zZXNzaW9uICpzZXNzaW9uLAoJCXN0cnVjdCB0YXNrX3N0cnVjdCAqcCwg aW50IGZkLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKCQl1bnNpZ25lZCBpbnQgZmxhZ3MsIGZtb2Rl X3QgZm1vZGUpLAoJVFBfQVJHUyhzZXNzaW9uLCBwLCBmZCwgZmlsZW5hbWUsIGZsYWdzLCBmbW9k ZSksCglUUF9TVFJVQ1RfX2VudHJ5KAoJCV9fZmllbGQocGlkX3QsIHBpZCkKCQlfX2ZpZWxkKGlu dCwgZmQpCgkJX19maWVsZF9vY3QodW5zaWduZWQgaW50LCBmbGFncykKCQlfX2ZpZWxkX2hleChm bW9kZV90LCBmbW9kZSkKCQlfX3N0cmluZyhmaWxlbmFtZSwgZmlsZW5hbWUpCgkpLAoJVFBfZmFz dF9hc3NpZ24oCgkJdHBfYXNzaWduKHBpZCwgcC0+dGdpZCkKCQl0cF9hc3NpZ24oZmQsIGZkKQoJ CXRwX2Fzc2lnbihmbGFncywgZmxhZ3MpCgkJdHBfYXNzaWduKGZtb2RlLCBmbW9kZSkKCQl0cF9z dHJjcHkoZmlsZW5hbWUsIGZpbGVuYW1lKQoJKSwKCVRQX3ByaW50aygiIikKKQoKVFJBQ0VfRVZF TlQobHR0bmdfc3RhdGVkdW1wX3ZtX21hcCwKCVRQX1BST1RPKHN0cnVjdCBsdHRuZ19zZXNzaW9u ICpzZXNzaW9uLAoJCXN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHZtX2FyZWFfc3RydWN0 ICptYXAsCgkJdW5zaWduZWQgbG9uZyBpbm9kZSksCglUUF9BUkdTKHNlc3Npb24sIHAsIG1hcCwg aW5vZGUpLAoJVFBfU1RSVUNUX19lbnRyeSgKCQlfX2ZpZWxkKHBpZF90LCBwaWQpCgkJX19maWVs ZF9oZXgodW5zaWduZWQgbG9uZywgc3RhcnQpCgkJX19maWVsZF9oZXgodW5zaWduZWQgbG9uZywg ZW5kKQoJCV9fZmllbGRfaGV4KHVuc2lnbmVkIGxvbmcsIGZsYWdzKQoJCV9fZmllbGQodW5zaWdu ZWQgbG9uZywgaW5vZGUpCgkJX19maWVsZCh1bnNpZ25lZCBsb25nLCBwZ29mZikKCSksCglUUF9m YXN0X2Fzc2lnbigKCQl0cF9hc3NpZ24ocGlkLCBwLT50Z2lkKQoJCXRwX2Fzc2lnbihzdGFydCwg bWFwLT52bV9zdGFydCkKCQl0cF9hc3NpZ24oZW5kLCBtYXAtPnZtX2VuZCkKCQl0cF9hc3NpZ24o ZmxhZ3MsIG1hcC0+dm1fZmxhZ3MpCgkJdHBfYXNzaWduKGlub2RlLCBpbm9kZSkKCQl0cF9hc3Np Z24ocGdvZmYsIG1hcC0+dm1fcGdvZmYgPDwgUEFHRV9TSElGVCkKCSksCglUUF9wcmludGsoIiIp CikKClRSQUNFX0VWRU5UKGx0dG5nX3N0YXRlZHVtcF9uZXR3b3JrX2ludGVyZmFjZSwKCVRQX1BS T1RPKHN0cnVjdCBsdHRuZ19zZXNzaW9uICpzZXNzaW9uLAoJCXN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsIHN0cnVjdCBpbl9pZmFkZHIgKmlmYSksCglUUF9BUkdTKHNlc3Npb24sIGRldiwgaWZhKSwK CVRQX1NUUlVDVF9fZW50cnkoCgkJX19zdHJpbmcobmFtZSwgZGV2LT5uYW1lKQoJCV9fZmllbGRf bmV0d29ya19oZXgodWludDMyX3QsIGFkZHJlc3NfaXB2NCkKCSksCglUUF9mYXN0X2Fzc2lnbigK CQl0cF9zdHJjcHkobmFtZSwgZGV2LT5uYW1lKQoJCXRwX2Fzc2lnbihhZGRyZXNzX2lwdjQsIGlm YSA/IGlmYS0+aWZhX2FkZHJlc3MgOiAwVSkKCSksCglUUF9wcmludGsoIiIpCikKClRSQUNFX0VW RU5UKGx0dG5nX3N0YXRlZHVtcF9ibG9ja19kZXZpY2UsCglUUF9QUk9UTyhzdHJ1Y3QgbHR0bmdf c2Vzc2lvbiAqc2Vzc2lvbiwKCQlkZXZfdCBkZXYsIGNvbnN0IGNoYXIgKmRpc2tuYW1lKSwKCVRQ X0FSR1Moc2Vzc2lvbiwgZGV2LCBkaXNrbmFtZSksCglUUF9TVFJVQ1RfX2VudHJ5KAoJCV9fZmll bGQoZGV2X3QsIGRldikKCQlfX3N0cmluZyhkaXNrbmFtZSwgZGlza25hbWUpCgkpLAoJVFBfZmFz dF9hc3NpZ24oCgkJdHBfYXNzaWduKGRldiwgZGV2KQoJCXRwX3N0cmNweShkaXNrbmFtZSwgZGlz a25hbWUpCgkpLAoJVFBfcHJpbnRrKCIiKQopCgovKiBDYWxsZWQgd2l0aCBkZXNjLT5sb2NrIGhl bGQgKi8KVFJBQ0VfRVZFTlQobHR0bmdfc3RhdGVkdW1wX2ludGVycnVwdCwKCVRQX1BST1RPKHN0 cnVjdCBsdHRuZ19zZXNzaW9uICpzZXNzaW9uLAoJCXVuc2lnbmVkIGludCBpcnEsIGNvbnN0IGNo YXIgKmNoaXBfbmFtZSwKCQlzdHJ1Y3QgaXJxYWN0aW9uICphY3Rpb24pLAoJVFBfQVJHUyhzZXNz aW9uLCBpcnEsIGNoaXBfbmFtZSwgYWN0aW9uKSwKCVRQX1NUUlVDVF9fZW50cnkoCgkJX19maWVs ZCh1bnNpZ25lZCBpbnQsIGlycSkKCQlfX3N0cmluZyhuYW1lLCBjaGlwX25hbWUpCgkJX19zdHJp bmcoYWN0aW9uLCBhY3Rpb24tPm5hbWUgPyA6ICIiKQoJKSwKCVRQX2Zhc3RfYXNzaWduKAoJCXRw X2Fzc2lnbihpcnEsIGlycSkKCQl0cF9zdHJjcHkobmFtZSwgY2hpcF9uYW1lKQoJCXRwX3N0cmNw eShhY3Rpb24sIGFjdGlvbi0+bmFtZSA/IDogIiIpCgkpLAoJVFBfcHJpbnRrKCIiKQopCgojZW5k aWYgLyogIF9UUkFDRV9MVFROR19TVEFURURVTVBfSCAqLwoKLyogVGhpcyBwYXJ0IG11c3QgYmUg b3V0c2lkZSBwcm90ZWN0aW9uICovCiNpbmNsdWRlICIuLi8uLi8uLi9wcm9iZXMvZGVmaW5lX3Ry YWNlLmgiCg== ------=_Part_20935_1064367699.1410361931309 Content-Type: text/x-c++src; name=lttng-statedump-impl.c Content-Disposition: attachment; filename=lttng-statedump-impl.c Content-Transfer-Encoding: base64 LyoKICogbHR0bmctc3RhdGVkdW1wLmMKICoKICogTGludXggVHJhY2UgVG9vbGtpdCBOZXh0IEdl bmVyYXRpb24gS2VybmVsIFN0YXRlIER1bXAKICoKICogQ29weXJpZ2h0IDIwMDUgSmVhbi1IdWd1 ZXMgRGVzY2hlbmVzIDxqZWFuLWh1Z3Vlcy5kZXNjaGVuZXNAcG9seW10bC5jYT4KICogQ29weXJp Z2h0IDIwMDYtMjAxMiBNYXRoaWV1IERlc25veWVycyA8bWF0aGlldS5kZXNub3llcnNAZWZmaWNp b3MuY29tPgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgb25seQogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZS4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFs b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl CiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKICoKICogQ2hhbmdlczoKICoJRXJpYyBDbGVtZW50OiAg ICAgICAgICAgICAgICAgICBBZGQgbGlzdGluZyBvZiBuZXR3b3JrIElQIGludGVyZmFjZQogKgky MDA2LCAyMDA3IE1hdGhpZXUgRGVzbm95ZXJzCUZpeCBrZXJuZWwgdGhyZWFkcwogKgkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlvdXMgdXBkYXRlcwogKi8KCiNpbmNsdWRlIDxs aW51eC9pbml0Lmg+CiNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KI2luY2x1ZGUgPGxpbnV4L25l dGxpbmsuaD4KI2luY2x1ZGUgPGxpbnV4L2luZXQuaD4KI2luY2x1ZGUgPGxpbnV4L2lwLmg+CiNp bmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiNpbmNs dWRlIDxsaW51eC9maWxlLmg+CiNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KI2luY2x1ZGUg PGxpbnV4L2lycW5yLmg+CiNpbmNsdWRlIDxsaW51eC9jcHUuaD4KI2luY2x1ZGUgPGxpbnV4L25l dGRldmljZS5oPgojaW5jbHVkZSA8bGludXgvaW5ldGRldmljZS5oPgojaW5jbHVkZSA8bGludXgv c2NoZWQuaD4KI2luY2x1ZGUgPGxpbnV4L21tLmg+CiNpbmNsdWRlIDxsaW51eC9mZHRhYmxlLmg+ CiNpbmNsdWRlIDxsaW51eC9zd2FwLmg+CiNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiNpbmNsdWRl IDxsaW51eC9tdXRleC5oPgojaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Ci8vYWRkIHRhcmVrIHN5 c2NhbGwKI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CiNpbmNsdWRlIDx0cmFjZS9zeXNjYWxs Lmg+CiNpbmNsdWRlIDxhc20vc3lzY2FsbC5oPgovL2VuZAojaW5jbHVkZSAibHR0bmctZXZlbnRz LmgiCiNpbmNsdWRlICJsdHRuZy10cmFjZXIuaCIKI2luY2x1ZGUgIndyYXBwZXIvaXJxZGVzYy5o IgojaW5jbHVkZSAid3JhcHBlci9zcGlubG9jay5oIgojaW5jbHVkZSAid3JhcHBlci9mZHRhYmxl LmgiCiNpbmNsdWRlICJ3cmFwcGVyL25zcHJveHkuaCIKI2luY2x1ZGUgIndyYXBwZXIvaXJxLmgi CiNpbmNsdWRlICJ3cmFwcGVyL3RyYWNlcG9pbnQuaCIKI2luY2x1ZGUgIndyYXBwZXIvZ2VuaGQu aCIKCiNpZmRlZiBDT05GSUdfTFRUTkdfSEFTX0xJU1RfSVJRCiNpbmNsdWRlIDxsaW51eC9pcnEu aD4KI2VuZGlmCgovL2FkZCB0YXJlayBzeXNjYWxsCiNpZm5kZWYgQ09ORklHX0ZUUkFDRV9TWVND QUxMUwojZXJyb3IgIllvdSBuZWVkIHRvIHNldCBDT05GSUdfRlRSQUNFX1NZU0NBTExTPXkiCiNl bmRpZgoKI2lmbmRlZiBDT05GSUdfS0FMTFNZTVNfQUxMCiNlcnJvciAiWW91IG5lZWQgdG8gc2V0 IENPTkZJR19LQUxMU1lNU19BTEw9eSIKI2VuZGlmCgpzdGF0aWMgc3RydWN0IHN5c2NhbGxfbWV0 YWRhdGEgKipfX3N0YXJ0X3N5c2NhbGxzX21ldGFkYXRhOwpzdGF0aWMgc3RydWN0IHN5c2NhbGxf bWV0YWRhdGEgKipfX3N0b3Bfc3lzY2FsbHNfbWV0YWRhdGE7Ci8vZW5kCgovKiBEZWZpbmUgdGhl IHRyYWNlcG9pbnRzLCBidXQgZG8gbm90IGJ1aWxkIHRoZSBwcm9iZXMgKi8KI2RlZmluZSBDUkVB VEVfVFJBQ0VfUE9JTlRTCiNkZWZpbmUgVFJBQ0VfSU5DTFVERV9QQVRIIC4uL2luc3RydW1lbnRh dGlvbi9ldmVudHMvbHR0bmctbW9kdWxlCiNkZWZpbmUgVFJBQ0VfSU5DTFVERV9GSUxFIGx0dG5n LXN0YXRlZHVtcAojaW5jbHVkZSAiaW5zdHJ1bWVudGF0aW9uL2V2ZW50cy9sdHRuZy1tb2R1bGUv bHR0bmctc3RhdGVkdW1wLmgiCgpERUZJTkVfVFJBQ0UobHR0bmdfc3RhdGVkdW1wX2Jsb2NrX2Rl dmljZSk7CkRFRklORV9UUkFDRShsdHRuZ19zdGF0ZWR1bXBfZW5kKTsKREVGSU5FX1RSQUNFKGx0 dG5nX3N0YXRlZHVtcF9pbnRlcnJ1cHQpOwpERUZJTkVfVFJBQ0UobHR0bmdfc3RhdGVkdW1wX2Zp bGVfZGVzY3JpcHRvcik7CkRFRklORV9UUkFDRShsdHRuZ19zdGF0ZWR1bXBfc3RhcnQpOwpERUZJ TkVfVFJBQ0UobHR0bmdfc3RhdGVkdW1wX3Byb2Nlc3Nfc3RhdGUpOwovL0FkZCBUYXJlawpERUZJ TkVfVFJBQ0UobHR0bmdfc3RhdGVkdW1wX3N5c2NhbGxfYWRkcmVzc19saXN0KTsKLy9lbmQKREVG SU5FX1RSQUNFKGx0dG5nX3N0YXRlZHVtcF9uZXR3b3JrX2ludGVyZmFjZSk7CgpzdHJ1Y3QgbHR0 bmdfZmRfY3R4IHsKCWNoYXIgKnBhZ2U7CglzdHJ1Y3QgbHR0bmdfc2Vzc2lvbiAqc2Vzc2lvbjsK CXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsKCXN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZpbGVzOwp9OwoK LyoKICogUHJvdGVjdGVkIGJ5IHRoZSB0cmFjZSBsb2NrLgogKi8Kc3RhdGljIHN0cnVjdCBkZWxh eWVkX3dvcmsgY3B1X3dvcmtbTlJfQ1BVU107CnN0YXRpYyBERUNMQVJFX1dBSVRfUVVFVUVfSEVB RChzdGF0ZWR1bXBfd3EpOwpzdGF0aWMgYXRvbWljX3Qga2VybmVsX3RocmVhZHNfdG9fcnVuOwoK ZW51bSBsdHRuZ190aHJlYWRfdHlwZSB7CglMVFROR19VU0VSX1RIUkVBRCA9IDAsCglMVFROR19L RVJORUxfVEhSRUFEID0gMSwKfTsKCmVudW0gbHR0bmdfZXhlY3V0aW9uX21vZGUgewoJTFRUTkdf VVNFUl9NT0RFID0gMCwKCUxUVE5HX1NZU0NBTEwgPSAxLAoJTFRUTkdfVFJBUCA9IDIsCglMVFRO R19JUlEgPSAzLAoJTFRUTkdfU09GVElSUSA9IDQsCglMVFROR19NT0RFX1VOS05PV04gPSA1LAp9 OwoKZW51bSBsdHRuZ19leGVjdXRpb25fc3VibW9kZSB7CglMVFROR19OT05FID0gMCwKCUxUVE5H X1VOS05PV04gPSAxLAp9OwoKZW51bSBsdHRuZ19wcm9jZXNzX3N0YXR1cyB7CglMVFROR19VTk5B TUVEID0gMCwKCUxUVE5HX1dBSVRfRk9SSyA9IDEsCglMVFROR19XQUlUX0NQVSA9IDIsCglMVFRO R19FWElUID0gMywKCUxUVE5HX1pPTUJJRSA9IDQsCglMVFROR19XQUlUID0gNSwKCUxUVE5HX1JV TiA9IDYsCglMVFROR19ERUFEID0gNywKfTsKCnN0YXRpYwppbnQgbHR0bmdfZW51bWVyYXRlX2Js b2NrX2RldmljZXMoc3RydWN0IGx0dG5nX3Nlc3Npb24gKnNlc3Npb24pCnsKCXN0cnVjdCBjbGFz cyAqcHRyX2Jsb2NrX2NsYXNzOwoJc3RydWN0IGRldmljZV90eXBlICpwdHJfZGlza190eXBlOwoJ c3RydWN0IGNsYXNzX2Rldl9pdGVyIGl0ZXI7CglzdHJ1Y3QgZGV2aWNlICpkZXY7CgoJcHRyX2Js b2NrX2NsYXNzID0gd3JhcHBlcl9nZXRfYmxvY2tfY2xhc3MoKTsKCWlmICghcHRyX2Jsb2NrX2Ns YXNzKQoJCXJldHVybiAtRU5PU1lTOwoJcHRyX2Rpc2tfdHlwZSA9IHdyYXBwZXJfZ2V0X2Rpc2tf dHlwZSgpOwoJaWYgKCFwdHJfZGlza190eXBlKSB7CgkJcmV0dXJuIC1FTk9TWVM7Cgl9CgljbGFz c19kZXZfaXRlcl9pbml0KCZpdGVyLCBwdHJfYmxvY2tfY2xhc3MsIE5VTEwsIHB0cl9kaXNrX3R5 cGUpOwoJd2hpbGUgKChkZXYgPSBjbGFzc19kZXZfaXRlcl9uZXh0KCZpdGVyKSkpIHsKCQlzdHJ1 Y3QgZGlza19wYXJ0X2l0ZXIgcGl0ZXI7CgkJc3RydWN0IGdlbmRpc2sgKmRpc2sgPSBkZXZfdG9f ZGlzayhkZXYpOwoJCXN0cnVjdCBoZF9zdHJ1Y3QgKnBhcnQ7CgoJCS8qCgkJICogRG9uJ3Qgc2hv dyBlbXB0eSBkZXZpY2VzIG9yIHRoaW5ncyB0aGF0IGhhdmUgYmVlbgoJCSAqIHN1cHByZXNzZWQK CQkgKi8KCQlpZiAoZ2V0X2NhcGFjaXR5KGRpc2spID09IDAgfHwKCQkgICAgKGRpc2stPmZsYWdz ICYgR0VOSERfRkxfU1VQUFJFU1NfUEFSVElUSU9OX0lORk8pKQoJCQljb250aW51ZTsKCgkJZGlz a19wYXJ0X2l0ZXJfaW5pdCgmcGl0ZXIsIGRpc2ssIERJU0tfUElURVJfSU5DTF9QQVJUMCk7CgkJ d2hpbGUgKChwYXJ0ID0gZGlza19wYXJ0X2l0ZXJfbmV4dCgmcGl0ZXIpKSkgewoJCQljaGFyIG5h bWVfYnVmW0JERVZOQU1FX1NJWkVdOwoJCQljaGFyICpwOwoKCQkJcCA9IHdyYXBwZXJfZGlza19u YW1lKGRpc2ssIHBhcnQtPnBhcnRubywgbmFtZV9idWYpOwoJCQlpZiAoIXApIHsKCQkJCWRpc2tf cGFydF9pdGVyX2V4aXQoJnBpdGVyKTsKCQkJCWNsYXNzX2Rldl9pdGVyX2V4aXQoJml0ZXIpOwoJ CQkJcmV0dXJuIC1FTk9TWVM7CgkJCX0KCQkJdHJhY2VfbHR0bmdfc3RhdGVkdW1wX2Jsb2NrX2Rl dmljZShzZXNzaW9uLAoJCQkJCXBhcnRfZGV2dChwYXJ0KSwgbmFtZV9idWYpOwoJCX0KCQlkaXNr X3BhcnRfaXRlcl9leGl0KCZwaXRlcik7Cgl9CgljbGFzc19kZXZfaXRlcl9leGl0KCZpdGVyKTsK CXJldHVybiAwOwp9CgojaWZkZWYgQ09ORklHX0lORVQKCnN0YXRpYwp2b2lkIGx0dG5nX2VudW1l cmF0ZV9kZXZpY2Uoc3RydWN0IGx0dG5nX3Nlc3Npb24gKnNlc3Npb24sCgkJc3RydWN0IG5ldF9k ZXZpY2UgKmRldikKewoJc3RydWN0IGluX2RldmljZSAqaW5fZGV2OwoJc3RydWN0IGluX2lmYWRk ciAqaWZhOwoKCWlmIChkZXYtPmZsYWdzICYgSUZGX1VQKSB7CgkJaW5fZGV2ID0gaW5fZGV2X2dl dChkZXYpOwoJCWlmIChpbl9kZXYpIHsKCQkJZm9yIChpZmEgPSBpbl9kZXYtPmlmYV9saXN0OyBp ZmEgIT0gTlVMTDsKCQkJICAgICBpZmEgPSBpZmEtPmlmYV9uZXh0KSB7CgkJCQl0cmFjZV9sdHRu Z19zdGF0ZWR1bXBfbmV0d29ya19pbnRlcmZhY2UoCgkJCQkJc2Vzc2lvbiwgZGV2LCBpZmEpOwoJ CQl9CgkJCWluX2Rldl9wdXQoaW5fZGV2KTsKCQl9Cgl9IGVsc2UgewoJCXRyYWNlX2x0dG5nX3N0 YXRlZHVtcF9uZXR3b3JrX2ludGVyZmFjZSgKCQkJc2Vzc2lvbiwgZGV2LCBOVUxMKTsKCX0KfQoK c3RhdGljCmludCBsdHRuZ19lbnVtZXJhdGVfbmV0d29ya19pcF9pbnRlcmZhY2Uoc3RydWN0IGx0 dG5nX3Nlc3Npb24gKnNlc3Npb24pCnsKCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CgoJcmVhZF9s b2NrKCZkZXZfYmFzZV9sb2NrKTsKCWZvcl9lYWNoX25ldGRldigmaW5pdF9uZXQsIGRldikKCQls dHRuZ19lbnVtZXJhdGVfZGV2aWNlKHNlc3Npb24sIGRldik7CglyZWFkX3VubG9jaygmZGV2X2Jh c2VfbG9jayk7CgoJcmV0dXJuIDA7Cn0KI2Vsc2UgLyogQ09ORklHX0lORVQgKi8Kc3RhdGljIGlu bGluZQppbnQgbHR0bmdfZW51bWVyYXRlX25ldHdvcmtfaXBfaW50ZXJmYWNlKHN0cnVjdCBsdHRu Z19zZXNzaW9uICpzZXNzaW9uKQp7CglyZXR1cm4gMDsKfQojZW5kaWYgLyogQ09ORklHX0lORVQg Ki8KCnN0YXRpYwppbnQgbHR0bmdfZHVtcF9vbmVfZmQoY29uc3Qgdm9pZCAqcCwgc3RydWN0IGZp bGUgKmZpbGUsIHVuc2lnbmVkIGludCBmZCkKewoJY29uc3Qgc3RydWN0IGx0dG5nX2ZkX2N0eCAq Y3R4ID0gcDsKCWNvbnN0IGNoYXIgKnMgPSBkX3BhdGgoJmZpbGUtPmZfcGF0aCwgY3R4LT5wYWdl LCBQQUdFX1NJWkUpOwoJdW5zaWduZWQgaW50IGZsYWdzID0gZmlsZS0+Zl9mbGFnczsKCXN0cnVj dCBmZHRhYmxlICpmZHQ7CgoJLyoKCSAqIFdlIGRvbid0IGV4cG9zZSBrZXJuZWwgaW50ZXJuYWwg ZmxhZ3MsIG9ubHkgdXNlcnNwYWNlLXZpc2libGUKCSAqIGZsYWdzLgoJICovCglmbGFncyAmPSB+ Rk1PREVfTk9OT1RJRlk7CglmZHQgPSBmaWxlc19mZHRhYmxlKGN0eC0+ZmlsZXMpOwoJLyoKCSAq IFdlIG5lZWQgdG8gY2hlY2sgaGVyZSBhZ2FpbiB3aGV0aGVyIGZkIGlzIHdpdGhpbiB0aGUgZmR0 CgkgKiBtYXhfZmRzIHJhbmdlLCBiZWNhdXNlIHdlIG1pZ2h0IGJlIHNlZWluZyBhIGRpZmZlcmVu dAoJICogZmlsZXNfZmR0YWJsZSgpIHRoYW4gaXRlcmF0ZV9mZCgpLCBhc3N1bWluZyBvbmx5IFJD VSBpcwoJICogcHJvdGVjdGluZyB0aGUgcmVhZC4gSW4gcmVhbGl0eSwgaXRlcmF0ZV9mZCgpIGhv bGRzCgkgKiBmaWxlX2xvY2ssIHdoaWNoIHNob3VsZCBlbnN1cmUgdGhlIGZkdCBkb2VzIG5vdCBj aGFuZ2Ugd2hpbGUKCSAqIHRoZSBsb2NrIGlzIHRha2VuLCBidXQgd2UgYXJlIG5vdCBhd2FyZSB3 aGV0aGVyIHRoaXMgaXMKCSAqIGd1YXJhbnRlZWQgb3Igbm90LCBzbyBwbGF5IHNhZmUuCgkgKi8K CWlmIChmZCA8IGZkdC0+bWF4X2ZkcyAmJiB0ZXN0X2JpdChmZCwgZmR0LT5jbG9zZV9vbl9leGVj KSkKCQlmbGFncyB8PSBPX0NMT0VYRUM7CglpZiAoSVNfRVJSKHMpKSB7CgkJc3RydWN0IGRlbnRy eSAqZGVudHJ5ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeTsKCgkJLyogTWFrZSBzdXJlIHdlIGdpdmUg YXQgbGVhc3Qgc29tZSBpbmZvICovCgkJc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7CgkJdHJh Y2VfbHR0bmdfc3RhdGVkdW1wX2ZpbGVfZGVzY3JpcHRvcihjdHgtPnNlc3Npb24sIGN0eC0+cCwg ZmQsCgkJCWRlbnRyeS0+ZF9uYW1lLm5hbWUsIGZsYWdzLCBmaWxlLT5mX21vZGUpOwoJCXNwaW5f dW5sb2NrKCZkZW50cnktPmRfbG9jayk7CgkJZ290byBlbmQ7Cgl9Cgl0cmFjZV9sdHRuZ19zdGF0 ZWR1bXBfZmlsZV9kZXNjcmlwdG9yKGN0eC0+c2Vzc2lvbiwgY3R4LT5wLCBmZCwgcywKCQlmbGFn cywgZmlsZS0+Zl9tb2RlKTsKZW5kOgoJcmV0dXJuIDA7Cn0KCnN0YXRpYwp2b2lkIGx0dG5nX2Vu dW1lcmF0ZV90YXNrX2ZkKHN0cnVjdCBsdHRuZ19zZXNzaW9uICpzZXNzaW9uLAoJCXN0cnVjdCB0 YXNrX3N0cnVjdCAqcCwgY2hhciAqdG1wKQp7CglzdHJ1Y3QgbHR0bmdfZmRfY3R4IGN0eCA9IHsg LnBhZ2UgPSB0bXAsIC5zZXNzaW9uID0gc2Vzc2lvbiwgLnAgPSBwIH07CglzdHJ1Y3QgZmlsZXNf c3RydWN0ICpmaWxlczsKCgl0YXNrX2xvY2socCk7CglmaWxlcyA9IHAtPmZpbGVzOwoJaWYgKCFm aWxlcykKCQlnb3RvIGVuZDsKCWN0eC5maWxlcyA9IGZpbGVzOwoJbHR0bmdfaXRlcmF0ZV9mZChm aWxlcywgMCwgbHR0bmdfZHVtcF9vbmVfZmQsICZjdHgpOwplbmQ6Cgl0YXNrX3VubG9jayhwKTsK fQoKc3RhdGljCmludCBsdHRuZ19lbnVtZXJhdGVfZmlsZV9kZXNjcmlwdG9ycyhzdHJ1Y3QgbHR0 bmdfc2Vzc2lvbiAqc2Vzc2lvbikKewoJc3RydWN0IHRhc2tfc3RydWN0ICpwOwoJY2hhciAqdG1w OwoKCXRtcCA9IChjaGFyICopIF9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKCWlmICghdG1w KQoJCXJldHVybiAtRU5PTUVNOwoKCS8qIEVudW1lcmF0ZSBhY3RpdmUgZmlsZSBkZXNjcmlwdG9y cyAqLwoJcmN1X3JlYWRfbG9jaygpOwoJZm9yX2VhY2hfcHJvY2VzcyhwKQoJCWx0dG5nX2VudW1l cmF0ZV90YXNrX2ZkKHNlc3Npb24sIHAsIHRtcCk7CglyY3VfcmVhZF91bmxvY2soKTsKCWZyZWVf cGFnZSgodW5zaWduZWQgbG9uZykgdG1wKTsKCXJldHVybiAwOwp9CgojaWYgMAovKgogKiBGSVhN RTogd2UgY2Fubm90IHRha2UgYSBtbWFwX3NlbSB3aGlsZSBpbiBhIFJDVSByZWFkLXNpZGUgY3Jp dGljYWwgc2VjdGlvbgogKiAoc2NoZWR1bGluZyBpbiBhdG9taWMpLiBOb3JtYWxseSwgdGhlIHRh c2tsaXN0IGxvY2sgcHJvdGVjdHMgdGhpcyBraW5kIG9mCiAqIGl0ZXJhdGlvbiwgYnV0IGl0IGlz IG5vdCBleHBvcnRlZCB0byBtb2R1bGVzLgogKi8Kc3RhdGljCnZvaWQgbHR0bmdfZW51bWVyYXRl X3Rhc2tfdm1fbWFwcyhzdHJ1Y3QgbHR0bmdfc2Vzc2lvbiAqc2Vzc2lvbiwKCQlzdHJ1Y3QgdGFz a19zdHJ1Y3QgKnApCnsKCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwoJc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICptYXA7Cgl1bnNpZ25lZCBsb25nIGlubzsKCgkvKiBnZXRfdGFza19tbSBkb2VzIGEgdGFz a19sb2NrLi4uICovCgltbSA9IGdldF90YXNrX21tKHApOwoJaWYgKCFtbSkKCQlyZXR1cm47CgoJ bWFwID0gbW0tPm1tYXA7CglpZiAobWFwKSB7CgkJZG93bl9yZWFkKCZtbS0+bW1hcF9zZW0pOwoJ CXdoaWxlIChtYXApIHsKCQkJaWYgKG1hcC0+dm1fZmlsZSkKCQkJCWlubyA9IG1hcC0+dm1fZmls ZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfaW5vOwoJCQllbHNlCgkJCQlpbm8gPSAwOwoJCQl0cmFj ZV9sdHRuZ19zdGF0ZWR1bXBfdm1fbWFwKHNlc3Npb24sIHAsIG1hcCwgaW5vKTsKCQkJbWFwID0g bWFwLT52bV9uZXh0OwoJCX0KCQl1cF9yZWFkKCZtbS0+bW1hcF9zZW0pOwoJfQoJbW1wdXQobW0p Owp9CgpzdGF0aWMKaW50IGx0dG5nX2VudW1lcmF0ZV92bV9tYXBzKHN0cnVjdCBsdHRuZ19zZXNz aW9uICpzZXNzaW9uKQp7CglzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CgoJcmN1X3JlYWRfbG9jaygp OwoJZm9yX2VhY2hfcHJvY2VzcyhwKQoJCWx0dG5nX2VudW1lcmF0ZV90YXNrX3ZtX21hcHMoc2Vz c2lvbiwgcCk7CglyY3VfcmVhZF91bmxvY2soKTsKCXJldHVybiAwOwp9CiNlbmRpZgoKI2lmZGVm IENPTkZJR19MVFROR19IQVNfTElTVF9JUlEKCiNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMiw2LDM5KSkKI2RlZmluZSBpcnFfZGVzY19nZXRfY2hpcChkZXNjKSBnZXRf aXJxX2Rlc2NfY2hpcChkZXNjKQojZW5kaWYKCnN0YXRpYwppbnQgbHR0bmdfbGlzdF9pbnRlcnJ1 cHRzKHN0cnVjdCBsdHRuZ19zZXNzaW9uICpzZXNzaW9uKQp7Cgl1bnNpZ25lZCBpbnQgaXJxOwoJ dW5zaWduZWQgbG9uZyBmbGFncyA9IDA7CglzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7CgojZGVmaW5l IGlycV90b19kZXNjCXdyYXBwZXJfaXJxX3RvX2Rlc2MKCS8qIG5lZWRzIGlycV9kZXNjICovCglm b3JfZWFjaF9pcnFfZGVzYyhpcnEsIGRlc2MpIHsKCQlzdHJ1Y3QgaXJxYWN0aW9uICphY3Rpb247 CgkJY29uc3QgY2hhciAqaXJxX2NoaXBfbmFtZSA9CgkJCWlycV9kZXNjX2dldF9jaGlwKGRlc2Mp LT5uYW1lID8gOiAidW5uYW1lZF9pcnFfY2hpcCI7CgoJCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsK CQl3cmFwcGVyX2Rlc2Nfc3Bpbl9sb2NrKCZkZXNjLT5sb2NrKTsKCQlmb3IgKGFjdGlvbiA9IGRl c2MtPmFjdGlvbjsgYWN0aW9uOyBhY3Rpb24gPSBhY3Rpb24tPm5leHQpIHsKCQkJdHJhY2VfbHR0 bmdfc3RhdGVkdW1wX2ludGVycnVwdChzZXNzaW9uLAoJCQkJaXJxLCBpcnFfY2hpcF9uYW1lLCBh Y3Rpb24pOwoJCX0KCQl3cmFwcGVyX2Rlc2Nfc3Bpbl91bmxvY2soJmRlc2MtPmxvY2spOwoJCWxv Y2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKCX0KCXJldHVybiAwOwojdW5kZWYgaXJxX3RvX2Rlc2MK fQojZWxzZQpzdGF0aWMgaW5saW5lCmludCBsdHRuZ19saXN0X2ludGVycnVwdHMoc3RydWN0IGx0 dG5nX3Nlc3Npb24gKnNlc3Npb24pCnsKCXJldHVybiAwOwp9CiNlbmRpZgoKc3RhdGljCnZvaWQg bHR0bmdfc3RhdGVkdW1wX3Byb2Nlc3NfbnMoc3RydWN0IGx0dG5nX3Nlc3Npb24gKnNlc3Npb24s CgkJc3RydWN0IHRhc2tfc3RydWN0ICpwLAoJCWVudW0gbHR0bmdfdGhyZWFkX3R5cGUgdHlwZSwK CQllbnVtIGx0dG5nX2V4ZWN1dGlvbl9tb2RlIG1vZGUsCgkJZW51bSBsdHRuZ19leGVjdXRpb25f c3VibW9kZSBzdWJtb2RlLAoJCWVudW0gbHR0bmdfcHJvY2Vzc19zdGF0dXMgc3RhdHVzKQp7Cglz dHJ1Y3QgbnNwcm94eSAqcHJveHk7CglzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqcGlkX25zOwoKCXJj dV9yZWFkX2xvY2soKTsKCXByb3h5ID0gdGFza19uc3Byb3h5KHApOwoJaWYgKHByb3h5KSB7CgkJ cGlkX25zID0gbHR0bmdfZ2V0X3Byb3h5X3BpZF9ucyhwcm94eSk7CgkJZG8gewoJCQl0cmFjZV9s dHRuZ19zdGF0ZWR1bXBfcHJvY2Vzc19zdGF0ZShzZXNzaW9uLAoJCQkJcCwgdHlwZSwgbW9kZSwg c3VibW9kZSwgc3RhdHVzLCBwaWRfbnMpOwoJCQlwaWRfbnMgPSBwaWRfbnMtPnBhcmVudDsKCQl9 IHdoaWxlIChwaWRfbnMpOwoJfSBlbHNlIHsKCQl0cmFjZV9sdHRuZ19zdGF0ZWR1bXBfcHJvY2Vz c19zdGF0ZShzZXNzaW9uLAoJCQlwLCB0eXBlLCBtb2RlLCBzdWJtb2RlLCBzdGF0dXMsIE5VTEwp OwoJfQoJcmN1X3JlYWRfdW5sb2NrKCk7Cn0KCnN0YXRpYwppbnQgbHR0bmdfZW51bWVyYXRlX3By b2Nlc3Nfc3RhdGVzKHN0cnVjdCBsdHRuZ19zZXNzaW9uICpzZXNzaW9uKQp7CglzdHJ1Y3QgdGFz a19zdHJ1Y3QgKmcsICpwOwoKCXJjdV9yZWFkX2xvY2soKTsKCWZvcl9lYWNoX3Byb2Nlc3MoZykg ewoJCXAgPSBnOwoJCWRvIHsKCQkJZW51bSBsdHRuZ19leGVjdXRpb25fbW9kZSBtb2RlID0KCQkJ CUxUVE5HX01PREVfVU5LTk9XTjsKCQkJZW51bSBsdHRuZ19leGVjdXRpb25fc3VibW9kZSBzdWJt b2RlID0KCQkJCUxUVE5HX1VOS05PV047CgkJCWVudW0gbHR0bmdfcHJvY2Vzc19zdGF0dXMgc3Rh dHVzOwoJCQllbnVtIGx0dG5nX3RocmVhZF90eXBlIHR5cGU7CgoJCQl0YXNrX2xvY2socCk7CgkJ CWlmIChwLT5leGl0X3N0YXRlID09IEVYSVRfWk9NQklFKQoJCQkJc3RhdHVzID0gTFRUTkdfWk9N QklFOwoJCQllbHNlIGlmIChwLT5leGl0X3N0YXRlID09IEVYSVRfREVBRCkKCQkJCXN0YXR1cyA9 IExUVE5HX0RFQUQ7CgkJCWVsc2UgaWYgKHAtPnN0YXRlID09IFRBU0tfUlVOTklORykgewoJCQkJ LyogSXMgdGhpcyBhIGZvcmtlZCBjaGlsZCB0aGF0IGhhcyBub3QgcnVuIHlldD8gKi8KCQkJCWlm IChsaXN0X2VtcHR5KCZwLT5ydC5ydW5fbGlzdCkpCgkJCQkJc3RhdHVzID0gTFRUTkdfV0FJVF9G T1JLOwoJCQkJZWxzZQoJCQkJCS8qCgkJCQkJICogQWxsIHRhc2tzIGFyZSBjb25zaWRlcmVkIGFz IHdhaXRfY3B1OwoJCQkJCSAqIHRoZSB2aWV3ZXIgd2lsbCBzb3J0IG91dCBpZiB0aGUgdGFzawoJ CQkJCSAqIHdhcyByZWFsbHkgcnVubmluZyBhdCB0aGlzIHRpbWUuCgkJCQkJICovCgkJCQkJc3Rh dHVzID0gTFRUTkdfV0FJVF9DUFU7CgkJCX0gZWxzZSBpZiAocC0+c3RhdGUgJgoJCQkJKFRBU0tf SU5URVJSVVBUSUJMRSB8IFRBU0tfVU5JTlRFUlJVUFRJQkxFKSkgewoJCQkJLyogVGFzayBpcyB3 YWl0aW5nIGZvciBzb21ldGhpbmcgdG8gY29tcGxldGUgKi8KCQkJCXN0YXR1cyA9IExUVE5HX1dB SVQ7CgkJCX0gZWxzZQoJCQkJc3RhdHVzID0gTFRUTkdfVU5OQU1FRDsKCQkJc3VibW9kZSA9IExU VE5HX05PTkU7CgoJCQkvKgoJCQkgKiBWZXJpZmljYXRpb24gb2YgdC0+bW0gaXMgdG8gZmlsdGVy IG91dCBrZXJuZWwKCQkJICogdGhyZWFkczsgVmlld2VyIHdpbGwgZnVydGhlciBmaWx0ZXIgb3V0 IGlmIGEKCQkJICogdXNlci1zcGFjZSB0aHJlYWQgd2FzIGluIHN5c2NhbGwgbW9kZSBvciBub3Qu CgkJCSAqLwoJCQlpZiAocC0+bW0pCgkJCQl0eXBlID0gTFRUTkdfVVNFUl9USFJFQUQ7CgkJCWVs c2UKCQkJCXR5cGUgPSBMVFROR19LRVJORUxfVEhSRUFEOwoJCQlsdHRuZ19zdGF0ZWR1bXBfcHJv Y2Vzc19ucyhzZXNzaW9uLAoJCQkJcCwgdHlwZSwgbW9kZSwgc3VibW9kZSwgc3RhdHVzKTsKCQkJ dGFza191bmxvY2socCk7CgkJfSB3aGlsZV9lYWNoX3RocmVhZChnLCBwKTsKCX0KCXJjdV9yZWFk X3VubG9jaygpOwoKCXJldHVybiAwOwp9Ci8vQkVHSU4gOiBBZGRlZCBieSBUYXJlayAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8Kc3RhdGljCmlu dCBsdHRuZ19kdW1wX29uZV9zeWNhbGxfYWRkcmVzcyhzdHJ1Y3QgbHR0bmdfc2Vzc2lvbiAqc2Vz c2lvbiwgY29uc3QgY2hhciAqc3lzY2FsbF9uYW1lLCB1bnNpZ25lZCBpbnQgcnVudGltZV9zeXNj YWxsX2FkZHJlc3MsIHVuc2lnbmVkIGludCBzeW1ib2xfc3lzY2FsbF9hZGRyZXNzKQp7CglpZiAo IXN5c2NhbGxfbmFtZSAgfHwKCQkhcnVudGltZV9zeXNjYWxsX2FkZHJlc3MgfHwKCQkhc3ltYm9s X3N5c2NhbGxfYWRkcmVzcyApIHsKCQkJcmV0dXJuIC0xOwoJfQoJdHJhY2VfbHR0bmdfc3RhdGVk dW1wX3N5c2NhbGxfYWRkcmVzc19saXN0IChzZXNzaW9uLAoJCQkJCQkJCQkJCQlzeXNjYWxsX25h bWUsCgkJCQkJCQkJCQkJCXJ1bnRpbWVfc3lzY2FsbF9hZGRyZXNzLAoJCQkJCQkJCQkJCQlzeW1i b2xfc3lzY2FsbF9hZGRyZXNzKTsKCXJldHVybiAwOwp9CgpzdGF0aWMgX19pbml0CnN0cnVjdCBz eXNjYWxsX21ldGFkYXRhICpmaW5kX3N5c2NhbGxfbWV0YSh1bnNpZ25lZCBsb25nIHN5c2NhbGwp CnsKCXN0cnVjdCBzeXNjYWxsX21ldGFkYXRhICoqaXRlcjsKCglmb3IgKGl0ZXIgPSBfX3N0YXJ0 X3N5c2NhbGxzX21ldGFkYXRhOwoJCQlpdGVyIDwgX19zdG9wX3N5c2NhbGxzX21ldGFkYXRhOyBp dGVyKyspIHsKCQlpZiAoKCppdGVyKS0+c3lzY2FsbF9uciA9PSBzeXNjYWxsKQoJCQlyZXR1cm4g KCppdGVyKTsKCX0KCXJldHVybiBOVUxMOwp9CgpzdGF0aWMKaW50IGx0dG5nX2VudW1lcmF0ZV9z eXNjYWxsX2FkZHJlc3NfbGlzdChzdHJ1Y3QgbHR0bmdfc2Vzc2lvbiAqc2Vzc2lvbikKewoJLy8g Z2V0IHN5c2NhbGwgdGFibGUgYWRkcmVzcwoJLy8gaGFzaCB0YWJsZSB0aGF0IGNvbnRhaW5zIGFs bCBzeXN0ZW1fY2FsbCBuYW1lcyBhbmQgbnVtYmVycwoJLy8gaXRlcmF0ZSBmb3IgZXZlcnkgc3lz dGVtIGNhbGwgYW5kIGdldCBpdHMgYWRkcmVzcyBpbiB0aGUgc3lzdGVtIGNhbGwgdGFibGUKCXN0 cnVjdCBzeXNjYWxsX21ldGFkYXRhICptZXRhOwoJaW50IGk7Cgl1bnNpZ25lZCBsb25nICpzeXNf Y2FsbF90YWJsZSA9IE5VTEw7CgoJX19zdGFydF9zeXNjYWxsc19tZXRhZGF0YSA9ICh2b2lkICop IGthbGxzeW1zX2xvb2t1cF9uYW1lKCJfX3N0YXJ0X3N5c2NhbGxzX21ldGFkYXRhIik7CglfX3N0 b3Bfc3lzY2FsbHNfbWV0YWRhdGEgPSAodm9pZCAqKSBrYWxsc3ltc19sb29rdXBfbmFtZSgiX19z dG9wX3N5c2NhbGxzX21ldGFkYXRhIik7CglzeXNfY2FsbF90YWJsZSA9ICh1bnNpZ25lZCBsb25n ICopIGthbGxzeW1zX2xvb2t1cF9uYW1lKCJzeXNfY2FsbF90YWJsZSIpOwoKCWZvciAoaSA9IDA7 IGkgPCBOUl9zeXNjYWxsczsgaSsrKSB7CgkJaW50IGo7CgoJCW1ldGEgPSBmaW5kX3N5c2NhbGxf bWV0YShpKTsKCQlpZiAoIW1ldGEgfHwgIXN5c19jYWxsX3RhYmxlKQoJCQljb250aW51ZTsKCQlw cmludGsoInN5c2NhbGwgJXMgOyBuciAlZCA7IG5iYXJncyAlZCA7IGFkZHJlc3MgaW4gc3lzIGNh bGwgdGFibGUgOiAlcCAiLAoJCQltZXRhLT5uYW1lLCBtZXRhLT5zeXNjYWxsX25yLCBtZXRhLT5u Yl9hcmdzLCAodm9pZCAqKSBzeXNfY2FsbF90YWJsZVttZXRhLT5zeXNjYWxsX25yXSk7CgkJLy8g VE9ETyA6IHJldGllcnZlIHRoZSBzeW1ib2wgYWRkcmVzcyBvZiBhIHN5c2NhbGwgaW4gb3JkZXIg dG8gaW5qZWN0IGl0IGluIHRoZSB0aGlyZCBhcmd1bWVudCBvZiBsdHRuZ19kdW1wX29uZV9zeWNh bGxfYWRkcmVzcyBmdW5jdGlvbgoJCWx0dG5nX2R1bXBfb25lX3N5Y2FsbF9hZGRyZXNzKHNlc3Np b24sbWV0YS0+bmFtZSxzeXNfY2FsbF90YWJsZVttZXRhLT5zeXNjYWxsX25yXSwgKHVuc2lnbmVk IGludCkgTlVMTCAvKiBhZGRyZXNzIG9mIHN5c2NhbGwgc3ltYm9sKi8pOwoKCX0KCXByaW50aygi U1VDQ0VTU1xuIik7CgoJcmV0dXJuIC0xOwoKfQoKLy9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KCgpzdGF0aWMKdm9pZCBsdHRuZ19zdGF0 ZWR1bXBfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKewoJaWYgKGF0b21pY19k ZWNfYW5kX3Rlc3QoJmtlcm5lbF90aHJlYWRzX3RvX3J1bikpCgkJLyogSWYgd2UgYXJlIHRoZSBs YXN0IHRocmVhZCwgd2FrZSB1cCBkb19sdHRuZ19zdGF0ZWR1bXAgKi8KCQl3YWtlX3VwKCZzdGF0 ZWR1bXBfd3EpOwp9CgpzdGF0aWMKaW50IGRvX2x0dG5nX3N0YXRlZHVtcChzdHJ1Y3QgbHR0bmdf c2Vzc2lvbiAqc2Vzc2lvbikKewoJaW50IGNwdSwgcmV0OwoKCXRyYWNlX2x0dG5nX3N0YXRlZHVt cF9zdGFydChzZXNzaW9uKTsKCXJldCA9IGx0dG5nX2VudW1lcmF0ZV9wcm9jZXNzX3N0YXRlcyhz ZXNzaW9uKTsKCWlmIChyZXQpCgkJcmV0dXJuIHJldDsKCS8vQWRkZWQgYnkgVGFyZWsKCXJldCA9 IGx0dG5nX2VudW1lcmF0ZV9zeXNjYWxsX2FkZHJlc3NfbGlzdChzZXNzaW9uKTsKCWlmIChyZXQp CgkJCXJldHVybiByZXQ7CgkvLwoJcmV0ID0gbHR0bmdfZW51bWVyYXRlX2ZpbGVfZGVzY3JpcHRv cnMoc2Vzc2lvbik7CglpZiAocmV0KQoJCXJldHVybiByZXQ7CgkvKgoJICogRklYTUUKCSAqIHJl dCA9IGx0dG5nX2VudW1lcmF0ZV92bV9tYXBzKHNlc3Npb24pOwoJICogaWYgKHJldCkKCSAqIAly ZXR1cm4gcmV0OwoJICovCglyZXQgPSBsdHRuZ19saXN0X2ludGVycnVwdHMoc2Vzc2lvbik7Cglp ZiAocmV0KQoJCXJldHVybiByZXQ7CglyZXQgPSBsdHRuZ19lbnVtZXJhdGVfbmV0d29ya19pcF9p bnRlcmZhY2Uoc2Vzc2lvbik7CglpZiAocmV0KQoJCXJldHVybiByZXQ7CglyZXQgPSBsdHRuZ19l bnVtZXJhdGVfYmxvY2tfZGV2aWNlcyhzZXNzaW9uKTsKCXN3aXRjaCAocmV0KSB7CgljYXNlIC1F Tk9TWVM6CgkJcHJpbnRrKEtFUk5fV0FSTklORyAiTFRUbmc6IGJsb2NrIGRldmljZSBlbnVtZXJh dGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IGtlcm5lbFxuIik7CgkJYnJlYWs7CglkZWZhdWx0OgoJ CXJldHVybiByZXQ7Cgl9CgoJLyogVE9ETyBsdHRuZ19kdW1wX2lkdF90YWJsZShzZXNzaW9uKTsg Ki8KCS8qIFRPRE8gbHR0bmdfZHVtcF9zb2Z0aXJxX3ZlYyhzZXNzaW9uKTsgKi8KCS8qIFRPRE8g bHR0bmdfbGlzdF9tb2R1bGVzKHNlc3Npb24pOyAqLwoJLyogVE9ETyBsdHRuZ19kdW1wX3N3YXBf ZmlsZXMoc2Vzc2lvbik7ICovCgoJLyoKCSAqIEZpcmUgb2ZmIGEgd29yayBxdWV1ZSBvbiBlYWNo IENQVS4gVGhlaXIgc29sZSBwdXJwb3NlIGluIGxpZmUKCSAqIGlzIHRvIGd1YXJhbnRlZSB0aGF0 IGVhY2ggQ1BVIGhhcyBiZWVuIGluIGEgc3RhdGUgd2hlcmUgaXMgd2FzIGluCgkgKiBzeXNjYWxs IG1vZGUgKGkuZS4gbm90IGluIGEgdHJhcCwgYW4gSVJRIG9yIGEgc29mdCBJUlEpLgoJICovCgln ZXRfb25saW5lX2NwdXMoKTsKCWF0b21pY19zZXQoJmtlcm5lbF90aHJlYWRzX3RvX3J1biwgbnVt X29ubGluZV9jcHVzKCkpOwoJZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKCQlJTklUX0RFTEFZ RURfV09SSygmY3B1X3dvcmtbY3B1XSwgbHR0bmdfc3RhdGVkdW1wX3dvcmtfZnVuYyk7CgkJc2No ZWR1bGVfZGVsYXllZF93b3JrX29uKGNwdSwgJmNwdV93b3JrW2NwdV0sIDApOwoJfQoJLyogV2Fp dCBmb3IgYWxsIHRocmVhZHMgdG8gcnVuICovCglfX3dhaXRfZXZlbnQoc3RhdGVkdW1wX3dxLCAo YXRvbWljX3JlYWQoJmtlcm5lbF90aHJlYWRzX3RvX3J1bikgPT0gMCkpOwoJcHV0X29ubGluZV9j cHVzKCk7CgkvKiBPdXIgd29yayBpcyBkb25lICovCgl0cmFjZV9sdHRuZ19zdGF0ZWR1bXBfZW5k KHNlc3Npb24pOwoJcmV0dXJuIDA7Cn0KCi8qCiAqIENhbGxlZCB3aXRoIHNlc3Npb24gbXV0ZXgg aGVsZC4KICovCmludCBsdHRuZ19zdGF0ZWR1bXBfc3RhcnQoc3RydWN0IGx0dG5nX3Nlc3Npb24g KnNlc3Npb24pCnsKCXJldHVybiBkb19sdHRuZ19zdGF0ZWR1bXAoc2Vzc2lvbik7Cn0KRVhQT1JU X1NZTUJPTF9HUEwobHR0bmdfc3RhdGVkdW1wX3N0YXJ0KTsKCnN0YXRpYwppbnQgX19pbml0IGx0 dG5nX3N0YXRlZHVtcF9pbml0KHZvaWQpCnsKCS8qCgkgKiBBbGxvdyBtb2R1bGUgdG8gbG9hZCBl dmVuIGlmIHRoZSBmaXh1cCBjYW5ub3QgYmUgZG9uZS4gVGhpcwoJICogd2lsbCBhbGxvdyBzZWVt bGVzcyB0cmFuc2l0aW9uIHdoZW4gdGhlIHVuZGVybHlpbmcgaXNzdWUgZml4CgkgKiBpcyBtZXJn ZWQgaW50byB0aGUgTGludXgga2VybmVsLCBhbmQgd2hlbiB0cmFjZXBvaW50LmMKCSAqICJ0cmFj ZXBvaW50X21vZHVsZV9ub3RpZnkiIGlzIHR1cm5lZCBpbnRvIGEgc3RhdGljIGZ1bmN0aW9uLgoJ ICovCgkodm9pZCkgd3JhcHBlcl9sdHRuZ19maXh1cF9zaWcoVEhJU19NT0RVTEUpOwoJcmV0dXJu IDA7Cn0KCm1vZHVsZV9pbml0KGx0dG5nX3N0YXRlZHVtcF9pbml0KTsKCnN0YXRpYwp2b2lkIF9f ZXhpdCBsdHRuZ19zdGF0ZWR1bXBfZXhpdCh2b2lkKQp7Cn0KCm1vZHVsZV9leGl0KGx0dG5nX3N0 YXRlZHVtcF9leGl0KTsKCk1PRFVMRV9MSUNFTlNFKCJHUEwgYW5kIGFkZGl0aW9uYWwgcmlnaHRz Iik7Ck1PRFVMRV9BVVRIT1IoIkplYW4tSHVndWVzIERlc2NoZW5lcyIpOwpNT0RVTEVfREVTQ1JJ UFRJT04oIkxpbnV4IFRyYWNlIFRvb2xraXQgTmV4dCBHZW5lcmF0aW9uIFN0YXRlZHVtcCIpOwpN T0RVTEVfVkVSU0lPTihfX3N0cmluZ2lmeShMVFROR19NT0RVTEVTX01BSk9SX1ZFUlNJT04pICIu IgoJX19zdHJpbmdpZnkoTFRUTkdfTU9EVUxFU19NSU5PUl9WRVJTSU9OKSAiLiIKCV9fc3RyaW5n aWZ5KExUVE5HX01PRFVMRVNfUEFUQ0hMRVZFTF9WRVJTSU9OKQoJTFRUTkdfTU9EVUxFU19FWFRS QVZFUlNJT04pOwo= ------=_Part_20935_1064367699.1410361931309 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev ------=_Part_20935_1064367699.1410361931309--