Date: Tue, 5 May 1998 21:29:51 +0400 (MSD) From: Maxim Bolotin <max@rnd.runnet.ru> To: Mike Smith <mike@smith.net.au> Cc: hackers@FreeBSD.ORG Subject: IBM EtherJet (cs8920) driver. Message-ID: <Pine.BSF.3.96.980505212502.8507B-300000@altos.rnd.runnet.ru> In-Reply-To: <Pine.BSF.3.96.980423183109.29546A-300000@altos.rnd.runnet.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-899763362-894389391=:8507 Content-Type: TEXT/PLAIN; charset=US-ASCII On Thu, 23 Apr 1998, Maxim Bolotin wrote: > On Wed, 22 Apr 1998, Mike Smith wrote: > > > Hi! > > > > G'day Max! > > > > > As I write year ago, We have driver for IBM EtherJet ethernet card. > > > It's cs8920M chip based card. TP only. We have 70 computers with > > > FreeBSD 2.2.5, work 1 year. I make some style changes of code, and > > > I want commite it. What have I to do it. > > > > I looked at your driver last year, and made some suggestions then, but > > never heard back from you. If your driver is available somewhere for > > FTP, I'll do the same again. I think I should be able to obtain one of > > these cards for testing as well, and once we're both happy, I'll arrange > > for it to be committed. > Hi! Here's rev. 1.5 with BPF, multicast, combo-media. Max. - Rostov State University Computer Center Rostov-on-Don, +7 (8632) 285794 or 357476 Russia, RUNNet, MAB1-RIPE max@rsu.ru --0-899763362-894389391=:8507 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="if_cs.c" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.BSF.3.96.980505212951.8507C@altos.rnd.runnet.ru> Content-Description: /sys/i386/isa/if_cs.c LyoNCiAqIENvcHlyaWdodCAoYykgMTk5NywxOTk4IE1heGltIEJvbG90aW4g YW5kIE9sZWcgU2hhcm9pa28uDQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K ICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9u LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj b25kaXRpb25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25z IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln aHQNCiAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcNCiAqICAgIGRpc2NsYWltZXIu DQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj bGFpbWVyIGluIHRoZQ0KICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4N CiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRI T1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EDQogKiBBTlkgRVhQ UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P VCBMSU1JVEVEIFRPLCBUSEUNCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFDQogKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM IFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQ0KICogRk9S IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCiAqIERBTUFHRVMgKElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT VElUVVRFIEdPT0RTDQogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCiAq IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQogKiBMSUFCSUxJVFks IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg QVJJU0lORyBJTiBBTlkgV0FZDQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRJZDog aWZfY3MuYyx2IDEuNSAxOTk4LzA1LzA1IDE3OjEzOjQzIHJvb3QgRXhwICQN CiAqDQogKiBEZXZpY2UgZHJpdmVyIGZvciBDcnlzdGFsIFNlbWljb25kdWN0 b3IgQ1M4OTIwIGJhc2VkIGV0aGVybmV0DQogKiAgIGFkYXB0ZXJzLiBCeSBN YXhpbSBCb2xvdGluIGFuZCBPbGVnIFNoYXJvaWtvLCAyNy1BcHJpbC0xOTk3 DQogKi8NCg0KI2luY2x1ZGUgImNzLmgiDQojaW5jbHVkZSAiYnBmaWx0ZXIu aCINCg0KI2luY2x1ZGUgPHN5cy9wYXJhbS5oPg0KI2luY2x1ZGUgPHN5cy9z eXN0bS5oPg0KI2luY2x1ZGUgPHN5cy9jb25mLmg+DQojaW5jbHVkZSA8c3lz L2Vycm5vLmg+DQojaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQojaW5jbHVkZSA8 c3lzL21idWYuaD4NCiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQojaW5jbHVk ZSA8c3lzL3N5c2xvZy5oPg0KDQojaW5jbHVkZSA8bmV0L2lmLmg+DQojaW5j bHVkZSA8bmV0L2lmX2RsLmg+DQojaW5jbHVkZSA8bmV0L2lmX21pYi5oPg0K I2luY2x1ZGUgPG5ldC9pZl90eXBlcy5oPg0KDQojaWZkZWYgSU5FVA0KI2lu Y2x1ZGUgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxuZXRpbmV0L2luX3N5 c3RtLmg+DQojaW5jbHVkZSA8bmV0aW5ldC9pbl92YXIuaD4NCiNpbmNsdWRl IDxuZXRpbmV0L2lwLmg+DQojaW5jbHVkZSA8bmV0aW5ldC9pZl9ldGhlci5o Pg0KI2VuZGlmDQoNCiNpZmRlZiBJUFgNCiNpbmNsdWRlIDxuZXRpcHgvaXB4 Lmg+DQojaW5jbHVkZSA8bmV0aXB4L2lweF9pZi5oPg0KI2VuZGlmDQoNCiNp ZmRlZiBOUw0KI2luY2x1ZGUgPG5ldG5zL25zLmg+DQojaW5jbHVkZSA8bmV0 bnMvbnNfaWYuaD4NCiNlbmRpZg0KDQojaWYgTkJQRklMVEVSID4gMA0KI2lu Y2x1ZGUgPG5ldC9icGYuaD4NCiNpbmNsdWRlIDxuZXQvYnBmZGVzYy5oPg0K I2VuZGlmDQoNCiNpbmNsdWRlIDxtYWNoaW5lL2Nsb2NrLmg+DQojaW5jbHVk ZSA8bWFjaGluZS9tZF92YXIuaD4NCg0KI2luY2x1ZGUgPGkzODYvaXNhL2lz YV9kZXZpY2UuaD4NCiNpbmNsdWRlIDxpMzg2L2lzYS9pY3UuaD4NCiNpbmNs dWRlIDxpMzg2L2lzYS9pZl9jc3JlZy5oPg0KDQojaWZkZWYgIENTX1VTRV82 NEtfRE1BDQojZGVmaW5lIENTX0RNQV9CVUZGRVJfU0laRSA2NTUzNg0KI2Vs c2UNCiNkZWZpbmUgQ1NfRE1BX0JVRkZFUl9TSVpFIDE2Mzg0DQojZW5kaWYN Cg0KI2RlZmluZQlUWF9ERUxBWSAxMDAwDQoNCi8qDQogKiBjc19zb2Z0Yzog cGVyIGxpbmUgaW5mbyBhbmQgc3RhdHVzDQogKi8NCnN0YXRpYyBzdHJ1Y3Qg Y3Nfc29mdGMgew0KDQoJLyogRXRoZXJuZXQgY29tbW9uIGNvZGUgKi8NCglz dHJ1Y3QgYXJwY29tIGFycGNvbTsNCg0KCS8qIENvbmZpZ3VyYXRpb24gd29y ZHMgZnJvbSBFRVBST00gKi8NCglpbnQgYXV0b19uZWdfY25mOyAgICAgICAg ICAgICAgIC8qIEF1dG9OZWdvdGl0YXRpb24gY29uZmlndXJhdGlvbiAqLw0K CWludCBhZGFwdGVyX2NuZjsgICAgICAgICAgICAgICAgLyogQWRhcHRlciBj b25maWd1cmF0aW9uICovDQoJaW50IGlzYV9jb25maWc7ICAgICAgICAgICAg ICAgICAvKiBJU0EgY29uZmlndXJhdGlvbiAqLw0KCWludCBjaGlwX3R5cGU7 CQkJLyogVHlwZSBvZiBjaGlwICovDQoNCglpbnQgbmljX2FkZHI7IAkJCS8q IEJhc2UgSU8gYWRkcmVzcyBvZiBjYXJkICovDQoJaW50IHNlbmRfY21kOw0K CWludCBsaW5lX2N0bDsgICAgICAgICAgICAgICAgICAgLyogKi8NCglpbnQg c2VuZF91bmRlcnJ1bjsNCgl2b2lkICpyZWN2X3Jpbmc7DQoNCgl1bnNpZ25l ZCBjaGFyICpidWZmZXI7DQoJaW50IGJ1Zl9sZW47DQoNCn0JY3Nfc29mdGNb TkNTXTsNCg0Kc3RhdGljIGludAljc19hdHRhY2gJCV9fUCgoc3RydWN0IGlz YV9kZXZpY2UgKikpOw0Kc3RhdGljIHZvaWQJY3NfaW5pdAkJCV9fUCgodm9p ZCAqKSk7DQpzdGF0aWMgaW50CWNzX2lvY3RsCQlfX1AoKHN0cnVjdCBpZm5l dCAqLCBpbnQsIGNhZGRyX3QpKTsNCnN0YXRpYyBpbnQJY3NfcHJvYmUJCV9f UCgoc3RydWN0IGlzYV9kZXZpY2UgKikpOw0Kc3RhdGljIGludAljc19jczg5 eDBfcHJvYmUJCV9fUCgoc3RydWN0IGlzYV9kZXZpY2UgKikpOw0Kc3RhdGlj IHZvaWQJY3Nfc3RhcnQJCV9fUCgoc3RydWN0IGlmbmV0ICopKTsNCnN0YXRp YyB2b2lkCWNzX3N0b3AJCQlfX1AoKHN0cnVjdCBjc19zb2Z0YyAqKSk7DQpz dGF0aWMgdm9pZAljc19yZXNldAkJX19QKChzdHJ1Y3QgY3Nfc29mdGMgKikp Ow0Kc3RhdGljIHZvaWQJY3Nfd2F0Y2hkb2cJCV9fUCgoc3RydWN0IGlmbmV0 ICopKTsNCg0Kc3RhdGljIHZvaWQJY3Nfd3JpdGVfbWJ1ZnMoc3RydWN0IGNz X3NvZnRjKiwgc3RydWN0IG1idWYqKTsNCnN0YXRpYyB2b2lkCWNzX3htaXRf YnVmKHN0cnVjdCBjc19zb2Z0YyopOw0Kc3RhdGljIGludAljc19nZXRfcGFj a2V0KHN0cnVjdCBjc19zb2Z0YyopOw0Kc3RhdGljIHZvaWQJY3Nfc2V0bW9k ZShzdHJ1Y3QgY3Nfc29mdGMqKTsNCg0Kc3RhdGljIGludAlnZXRfZWVwcm9t X2RhdGEoc3RydWN0IGNzX3NvZnRjICpzYywgaW50LCBpbnQsIGludCAqKTsN CnN0YXRpYyBpbnQJZ2V0X2VlcHJvbV9ja3N1bShpbnQsIGludCwgaW50ICop Ow0Kc3RhdGljIGludAl3YWl0X2VlcHJvbV9yZWFkeSggc3RydWN0IGNzX3Nv ZnRjICopOw0Kc3RhdGljIHZvaWQJY29udHJvbF9kY19kYyggc3RydWN0IGNz X3NvZnRjICosIGludCApOw0Kc3RhdGljIGludAlzZW5kX3Rlc3RfcGt0KCBz dHJ1Y3QgY3Nfc29mdGMgKiApOw0Kc3RhdGljIGludAlkZXRlY3RfdHAoIHN0 cnVjdCBjc19zb2Z0YyAqICk7DQpzdGF0aWMgaW50CWRldGVjdF9hdWkoIHN0 cnVjdCBjc19zb2Z0YyAqICk7DQpzdGF0aWMgaW50CWRldGVjdF9ibmMoIHN0 cnVjdCBjc19zb2Z0YyAqICk7DQoNCnN0cnVjdCBpc2FfZHJpdmVyIGNzZHJp dmVyID0gew0KCWNzX3Byb2JlLA0KCWNzX2F0dGFjaCwNCglDU19OQU1FLA0K CTANCn07DQoNCnN0YXRpYyBpbnQNCmdldF9lZXByb21fZGF0YSggc3RydWN0 IGNzX3NvZnRjICpzYywgaW50IG9mZiwgaW50IGxlbiwgaW50ICpidWZmZXIp DQp7DQoJaW50IGk7DQoNCiNpZmRlZiBDU19ERUJVRw0KCXByaW50ZihDU19O QU1FIjpFRVBST00gZGF0YSBmcm9tICV4IGZvciAleDpcbiIsIG9mZixsZW4p Ow0KI2VuZGlmDQoNCglmb3IgKGk9MDtpPGxlbjtpKyspIHsNCgkJaWYgKHdh aXRfZWVwcm9tX3JlYWR5KHNjKSA8IDApIHJldHVybiAtMTsNCgkJLyogU2Vu ZCBjb21tYW5kIHRvIEVFUFJPTSB0byByZWFkICovDQoJCWNzX3dyaXRlcmVn KHNjLT5uaWNfYWRkciwgUFBfRUVDTUQsIChvZmYraSl8RUVQUk9NX1JFQURf Q01EICk7DQoJCWlmICh3YWl0X2VlcHJvbV9yZWFkeShzYyk8MCkNCgkJCXJl dHVybiAtMTsNCgkJYnVmZmVyW2ldID0gY3NfcmVhZHJlZyAoc2MtPm5pY19h ZGRyLCBQUF9FRURhdGEpOw0KDQojaWZkZWYgQ1NfREVCVUcNCgkJcHJpbnRm KCIlMDR4ICIsYnVmZmVyW2ldKTsNCiNlbmRpZg0KCX0NCg0KI2lmZGVmIENT X0RFQlVHDQoJcHJpbnRmKCJcbiIpOw0KI2VuZGlmDQoNCglyZXR1cm4gMDsN Cn0NCg0Kc3RhdGljIGludA0KZ2V0X2VlcHJvbV9ja3N1bShpbnQgb2ZmLCBp bnQgbGVuLCBpbnQgKmJ1ZmZlcikNCnsNCglpbnQgaSxja3N1bT0wOw0KDQoJ Zm9yIChpPTA7aTxsZW47aSsrKQ0KCQlja3N1bSs9YnVmZmVyW2ldOw0KCWNr c3VtICY9IDB4ZmZmZjsNCglpZiAoY2tzdW09PTApDQoJCXJldHVybiAwOw0K CXJldHVybiAtMTsNCn0NCg0Kc3RhdGljIGludA0Kd2FpdF9lZXByb21fcmVh ZHkoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglpbnQgdGltZW91dD0xMDAw Ow0KCURFTEFZICggMzAwMDAgKTsJLyogWFhYIHNob3VsZG4ndCB3ZSBkbyBz b21lIGNoZWNrcyBoZXJlID8gKi8NCglyZXR1cm4gMDsNCn0NCg0Kc3RhdGlj IHZvaWQNCmNvbnRyb2xfZGNfZGMoc3RydWN0IGNzX3NvZnRjICpzYywgaW50 IG9uX25vdF9vZmYpDQp7DQoJdW5zaWduZWQgaW50IHNlbGZfY29udHJvbCA9 IEhDQjFfRU5CTDsNCg0KCWlmICgoKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05G X0RDX0RDX1BPTEFSSVRZKSE9MCkgXiBvbl9ub3Rfb2ZmKQ0KCQlzZWxmX2Nv bnRyb2wgfD0gSENCMTsNCgllbHNlDQoJCXNlbGZfY29udHJvbCAmPSB+SENC MTsNCgljc193cml0ZXJlZyggc2MtPm5pY19hZGRyLCBQUF9TZWxmQ1RMLCBz ZWxmX2NvbnRyb2wgKTsNCg0KCURFTEFZKCA1MDAwMDAgKTsNCn0NCg0Kc3Rh dGljIGludA0KZGV0ZWN0X3RwKHN0cnVjdCBjc19zb2Z0YyAqc2MpDQp7DQoJ aW50IGk7DQoJaW50IHVuaXQgPSBzYy0+YXJwY29tLmFjX2lmLmlmX3VuaXQ7 DQoJY2hhciAqbmFtZSA9IGNzZHJpdmVyLm5hbWU7DQoNCglpZiAoYm9vdHZl cmJvc2UpDQoJCXByaW50ZihDU19OQU1FIiUxZDogYXR0ZW1wdGluZyBUUFxu IiwgdW5pdCk7DQoNCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xp bmVDVEwsIHNjLT5saW5lX2N0bCAmIH5BVUlfT05MWSk7DQoJY29udHJvbF9k Y19kYyhzYywgMCk7DQoJREVMQVkoIDE1MDAwMCApOw0KDQoJaWYgKChjc19y ZWFkcmVnKHNjLT5uaWNfYWRkciwgUFBfTGluZVNUKSZMSU5LX09LKT09MCkN CgkJcmV0dXJuIDA7DQoNCglpZiAoc2MtPmNoaXBfdHlwZSAhPSBDUzg5MDAp IHsNCgkJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9BdXRvTmVnQ1RM LHNjLT5hdXRvX25lZ19jbmYgJiBBVVRPX05FR19NQVNLKTsNCgkJaWYoKHNj LT5hdXRvX25lZ19jbmYgJiBBVVRPX05FR19CSVRTKSA9PSBBVVRPX05FR19F TkFCTEUpIHsNCgkJCWlmIChib290dmVyYm9zZSkNCgkJCQlwcmludGYoQ1Nf TkFNRSIlMWQ6IG5lZ290aWF0aW5nIGR1cGxleC4uLlxuIiwgdW5pdCk7DQoJ CQlmb3IoaT0wO2NzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9BdXRvTmVn U1QpJkFVVE9fTkVHX0JVU1k7aSsrKSB7DQoJCQkJaWYoaSA+IDQwMDAwKSB7 DQoJCQkJCXByaW50ZihDU19OQU1FIiUxZDogZnVsbC9oYWxmIGR1cGxleCBh dXRvIG5lZ290aWF0aW9uIHRpbWVvdXRcbiIsIHVuaXQpOw0KCQkJCQlicmVh azsNCgkJCQl9DQoJCQkJREVMQVkoMTAwMCk7DQoJCQl9DQoJCX0NCg0KCQlp ZiAoYm9vdHZlcmJvc2UpDQoJCQlpZihjc19yZWFkcmVnKHNjLT5uaWNfYWRk ciwgUFBfQXV0b05lZ1NUKSAmIEZEWF9BQ1RJVkUpDQoJCQkJcHJpbnRmKENT X05BTUUiJTFkOiB1c2luZyBmdWxsIGR1cGxleFxuIiwgdW5pdCk7DQoJCQll bHNlDQoJCQkJcHJpbnRmKENTX05BTUUiJTFkOiB1c2luZyBoYWxmIGR1cGxl eFxuIiwgdW5pdCk7DQoJfQ0KDQoJcmV0dXJuIEFfQ05GX01FRElBXzEwQl9U Ow0KfQ0KDQovKg0KICogWFhYIFRoaXMgd2FzIHJld3JpdHRlbiBmcm9tIExp bnV4IGRyaXZlciB3aXRob3V0IGFueSB0ZXN0cy4NCiAqLyAgICAgICAgICAg ICANCnN0YXRpYyBpbnQNCnNlbmRfdGVzdF9wa3Qoc3RydWN0IGNzX3NvZnRj ICpzYykNCnsNCglpbnQgdW5pdCA9IHNjLT5hcnBjb20uYWNfaWYuaWZfdW5p dDsNCgljaGFyIHRlc3RfcGFja2V0W10gPSB7IDAsMCwwLDAsMCwwLCAwLDAs MCwwLDAsMCwNCgkJCQkwLCA0NiwgLyogQSA0NiBpbiBuZXR3b3JrIG9yZGVy ICovDQoJCQkJMCwgMCwgLyogRFNBUD0wICYgU1NBUD0wIGZpZWxkcyAqLw0K CQkJCTB4ZjMsIDAgLyogQ29udHJvbCAoVGVzdCBSZXEgKyBQIGJpdCBzZXQp ICovIH07DQoNCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVD VEwsDQoJCWNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMKSB8 IFNFUklBTF9UWF9PTiApOw0KCWJjb3B5KHRlc3RfcGFja2V0LA0KCQkJc2Mt PmFycGNvbS5hY19lbmFkZHIsIEVUSEVSX0FERFJfTEVOKTsNCgliY29weSh0 ZXN0X3BhY2tldCtFVEhFUl9BRERSX0xFTiwNCgkJCXNjLT5hcnBjb20uYWNf ZW5hZGRyLCBFVEhFUl9BRERSX0xFTik7DQoJb3V0dyhzYy0+bmljX2FkZHIg KyBUWF9DTURfUE9SVCwgVFhfQUZURVJfQUxMKTsNCglvdXR3KHNjLT5uaWNf YWRkciArIFRYX0xFTl9QT1JULCBzaXplb2YodGVzdF9wYWNrZXQpKTsNCg0K CS8qIFdhaXQgZm9yIGNoaXAgdG8gYWxsb2NhdGUgbWVtb3J5ICovDQoJREVM QVkoNTAwMDApOw0KCWlmICghKGNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQ UF9CdXNTVCkgJiBSRUFEWV9GT1JfVFhfTk9XKSkNCgkJcmV0dXJuIDA7DQoN CglvdXRzdyhzYy0+bmljX2FkZHIgKyBUWF9GUkFNRV9QT1JULCB0ZXN0X3Bh Y2tldCwgc2l6ZW9mKHRlc3RfcGFja2V0KSk7DQoNCglpZiAoYm9vdHZlcmJv c2UpDQoJCXByaW50ZihDU19OQU1FIiUxZDogc2VuZGluZyB0ZXN0IHBhY2tl dC4uLiIsIHVuaXQpOw0KDQoJREVMQVkoMzAwMDApOw0KDQoJaWYgKChjc19y ZWFkcmVnKHNjLT5uaWNfYWRkcixQUF9UeEV2ZW50KSAmIFRYX1NFTkRfT0tf QklUUykgPT0gVFhfT0spIHsNCgkJaWYgKGJvb3R2ZXJib3NlKQ0KCQkJcHJp bnRmKCJvayFcbiIpOw0KCQlyZXR1cm4gMTsNCgl9DQoNCglpZiAoYm9vdHZl cmJvc2UpDQoJCXByaW50ZigiZmFpbGVkIVxuIik7DQoJcmV0dXJuIDA7DQp9 DQoNCi8qDQogKiBYWFggVGhpcyB3YXMgcmV3cml0dGVuIGZyb20gTGludXgg ZHJpdmVyIHdpdGhvdXQgYW55IHRlc3RzLg0KICovDQpzdGF0aWMgaW50DQpk ZXRlY3RfYXVpKHN0cnVjdCBjc19zb2Z0YyAqc2MpDQp7DQoJaW50IHVuaXQg PSBzYy0+YXJwY29tLmFjX2lmLmlmX3VuaXQ7DQoNCglpZiAoYm9vdHZlcmJv c2UpDQoJCXByaW50ZihDU19OQU1FIiUxZDogYXR0ZW1wdGluZyBBVUlcbiIs IHVuaXQpOw0KDQoJY29udHJvbF9kY19kYyhzYywgMCk7DQoJY3Nfd3JpdGVy ZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMLA0KCQkoc2MtPmxpbmVfY3Rs ICYgfkFVVE9fQVVJXzEwQkFTRVQpIHwgQVVJX09OTFkpOw0KDQoJaWYgKHNl bmRfdGVzdF9wa3Qoc2MpKQ0KCQlyZXR1cm4gQV9DTkZfTUVESUFfQVVJOw0K CWVsc2UNCgkJcmV0dXJuIDA7DQp9DQoNCi8qDQogKiBYWFggVGhpcyB3YXMg cmV3cml0dGVuIGZyb20gTGludXggZHJpdmVyIHdpdGhvdXQgYW55IHRlc3Rz Lg0KICovICAgICAgICAgICAgIA0Kc3RhdGljIGludA0KZGV0ZWN0X2JuYyhz dHJ1Y3QgY3Nfc29mdGMgKnNjKQ0Kew0KCWludCB1bml0ID0gc2MtPmFycGNv bS5hY19pZi5pZl91bml0Ow0KDQoJaWYgKGJvb3R2ZXJib3NlKQ0KCQlwcmlu dGYoQ1NfTkFNRSIlMWQ6IGF0dGVtcHRpbmcgQk5DXG4iLCB1bml0KTsNCg0K CWNvbnRyb2xfZGNfZGMoc2MsIDEpOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNf YWRkciwgUFBfTGluZUNUTCwNCgkJKHNjLT5saW5lX2N0bCAmIH5BVVRPX0FV SV8xMEJBU0VUKSB8IEFVSV9PTkxZKTsNCg0KCWlmIChzZW5kX3Rlc3RfcGt0 KHNjKSkNCgkJcmV0dXJuIEFfQ05GX01FRElBXzEwQl8yOw0KCWVsc2UNCgkJ cmV0dXJuIDA7DQp9DQoNCnN0YXRpYyBpbnQNCmNzX2NzODl4MF9wcm9iZShz dHJ1Y3QgaXNhX2RldmljZSAqZGV2KQ0Kew0KCXVuc2lnbmVkIHJldl90eXBl ID0gMDsNCglpbnQgaSwgaXJxLCByZXN1bHQ7DQoJaW50IGlvYmFzZSA9IGRl di0+aWRfaW9iYXNlOw0KCWludCB1bml0ID0gZGV2LT5pZF91bml0Ow0KCWlu dCBlZXByb21fYnVmZltDSEtTVU1fTEVOXTsNCglpbnQgY2hpcF90eXBlOw0K CWNoYXIgY2hpcF9yZXZpc2lvbjsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0g JmNzX3NvZnRjW3VuaXRdOw0KDQoJaWYgKChpbncoaW9iYXNlK0FERF9QT1JU KSAmIEFERF9NQVNLKSAhPSBBRERfU0lHKSB7DQoJCS8qIENoaXAgbm90IGRl dGVjdGVkLiBMZXQncyB0cnkgdG8gcmVzZXQgaXQgKi8NCgkJaWYgKGJvb3R2 ZXJib3NlKQ0KCQkJcHJpbnRmKENTX05BTUUiJTFkOiB0cnlpbmcgdG8gcmVz ZXQgdGhlIGNoaXAuXG4iLCB1bml0KTsNCgkJb3V0dyhpb2Jhc2UrQUREX1BP UlQsIFBQX1NlbGZDVEwpOw0KCQlpID0gaW53KGlvYmFzZStEQVRBX1BPUlQp Ow0KCQlvdXR3KGlvYmFzZStBRERfUE9SVCwgUFBfU2VsZkNUTCk7DQoJCW91 dHcoaW9iYXNlK0RBVEFfUE9SVCwgaSB8IFBPV0VSX09OX1JFU0VUKTsNCgkJ aWYgKChpbncoaW9iYXNlK0FERF9QT1JUKSAmIEFERF9NQVNLKSAhPSBBRERf U0lHKQ0KCQkJcmV0dXJuIDA7DQoJfQ0KDQoJb3V0dyhpb2Jhc2UrQUREX1BP UlQsIFBQX0NoaXBJRCk7DQoJaWYgKGludyhpb2Jhc2UrREFUQV9QT1JUKSAh PSBDSElQX0VJU0FfSURfU0lHKQ0KCQlyZXR1cm4gMDsNCg0KCXJldl90eXBl ID0gY3NfcmVhZHJlZyhpb2Jhc2UsIFBST0RVQ1RfSURfQUREKTsNCgljaGlw X3R5cGUgPSByZXZfdHlwZSAmIH5SRVZJU09OX0JJVFM7DQoJY2hpcF9yZXZp c2lvbiA9ICgocmV2X3R5cGUgJiBSRVZJU09OX0JJVFMpID4+IDgpICsgJ0En Ow0KDQoJc2MtPm5pY19hZGRyID0gaW9iYXNlOw0KCXNjLT5jaGlwX3R5cGUg PSBjaGlwX3R5cGU7DQoJc2MtPnNlbmRfY21kID0gVFhfQ1M4OTIwX0FGVEVS X0FMTDsNCg0KCS8qDQoJICogRUVQUk9NDQoJICovDQoJaWYoKGNzX3JlYWRy ZWcoaW9iYXNlLCBQUF9TZWxmU1QpICYgRUVQUk9NX1BSRVNFTlQpID09IDAp DQoJCXByaW50ZihDU19OQU1FIiUxZDogTm8gRUVQUk9NLCByZWx5aW5nIG9u IGNvbW1hbmQgbGluZS4uLlxuIiwNCgkJCXVuaXQpOw0KCWVsc2UNCgkJaWYg KGdldF9lZXByb21fZGF0YShzYyxTVEFSVF9FRVBST01fREFUQSxDSEtTVU1f TEVOLA0KCQkJCSAgICBlZXByb21fYnVmZik8MCkNCgkJCXByaW50ZihDU19O QU1FIiUxZDogRUVQUk9NIHJlYWQgZmFpbGVkLCAiDQoJCQkJInJlbHlpbmcg b24gY29tbWFuZCBsaW5lLlxuIiwgdW5pdCk7DQoJCWVsc2UNCgkJCWlmIChn ZXRfZWVwcm9tX2Nrc3VtKFNUQVJUX0VFUFJPTV9EQVRBLENIS1NVTV9MRU4s DQoJCQkJCSAgICAgZWVwcm9tX2J1ZmYpPDApDQoJCQkJcHJpbnRmKCBDU19O QU1FIiUxZDogRUVQUk9NIGNoZWtzdW0gYmFkLCAiDQoJCQkJCSJyZWx5aW5n IG9uIGNvbW1hbmQgbGluZS5cbiIsIHVuaXQgKTsNCgkJCWVsc2Ugew0KCQkJ CWlmICghc2MtPmF1dG9fbmVnX2NuZikNCgkJCQkJc2MtPmF1dG9fbmVnX2Nu ZiA9DQoJCQkJCSAgICBlZXByb21fYnVmZltBVVRPX05FR19DTkZfT0ZGU0VU LzJdOw0KCQkJCWlmICghc2MtPmFkYXB0ZXJfY25mKQ0KCQkJCQlzYy0+YWRh cHRlcl9jbmYgPSANCgkJCQkJICAgIGVlcHJvbV9idWZmW0FEQVBURVJfQ05G X09GRlNFVC8yXTsNCgkJCQlzYy0+aXNhX2NvbmZpZyA9IGVlcHJvbV9idWZm W0lTQV9DTkZfT0ZGU0VULzJdOw0KDQoJCQkJZm9yIChpPTA7IGk8RVRIRVJf QUREUl9MRU4vMjsgaSsrKSB7DQoJCQkJCXNjLT5hcnBjb20uYWNfZW5hZGRy W2kqMl09DQoJCQkJCQkJZWVwcm9tX2J1ZmZbaV07DQoJCQkJCXNjLT5hcnBj b20uYWNfZW5hZGRyW2kqMisxXT0NCgkJCQkJCQllZXByb21fYnVmZltpXSA+ PiA4Ow0KCQkJCX0NCg0KCQkJCWlmIChkZXYtPmlkX2lycSA8PSAwKSB7DQoJ CQkJCWlycSA9IGNzX3JlYWRyZWcoIGlvYmFzZSwgDQoJCQkJCQlQUF9DUzg5 MjBfSVNBSU5UKSAmIDB4ZmY7DQoJCQkJCWlmIChpcnEgIT0gMCAmJiBpcnEg PCBDUzg5MjBfTk9fSU5UUykNCgkJCQkJCWRldi0+aWRfaXJxID0gKDEgPDwg aXJxKTsNCgkJCQl9DQoJCQkJaWYgKGRldi0+aWRfZHJxIDwgMCkNCgkJCQkJ ZGV2LT5pZF9kcnE9Y3NfcmVhZHJlZyhpb2Jhc2UsIA0KCQkJCQkJUFBfQ1M4 OTIwX0lTQURNQSkgJiAweDBmOw0KCQkJfQ0KDQoJaWYgKGRldi0+aWRfaXJx PjApIHsNCgkJZm9yIChpcnE9MCwgaT1kZXYtPmlkX2lycTsgaTsgaSA9IGkg Pj4gMSkNCgkJCWlycSsrOw0KCQljc193cml0ZXJlZyhpb2Jhc2UsIFBQX0NT ODkyMF9JU0FJTlQsIC0taXJxKTsNCgl9IGVsc2Ugew0KCQlwcmludGYoQ1Nf TkFNRSIlMWQ6IGluY29ycmVjdCBpcnFcbiIsIHVuaXQpOw0KCQlyZXR1cm4g MDsNCgl9DQovKg0KICogVGVtcG9yYXJ5IGRpc2FibGVkDQogKg0KCWlmIChk ZXYtPmlkX2RycT4wKQ0KCQljc193cml0ZXJlZyhpb2Jhc2UsIFBQX0NTODky MF9JU0FETUEsIGRldi0+aWRfZHJxKTsNCgllbHNlIHsNCgkJcHJpbnRmKCBD U19OQU1FIiUxZDogaW5jb3JyZWN0IGRycVxuIiwgdW5pdCApOw0KCQlyZXR1 cm4gMDsNCgl9DQoqLw0KDQoJaWYgKGJvb3R2ZXJib3NlKQ0KCQkgcHJpbnRm KENTX05BTUUiJTFkOiBtb2RlbCBDUzg5JWMwJXMgcmV2ICVjXG4iDQoJCQlD U19OQU1FIiUxZDogbWVkaWElcyVzJXNcbiINCgkJCUNTX05BTUUiJTFkOiBp cnEgJWQgZHJxICVkXG4iLA0KCQkJdW5pdCwNCgkJCWNoaXBfdHlwZT09Q1M4 OTAwID8gJzAnIDogJzInLA0KCQkJY2hpcF90eXBlPT1DUzg5MjBNID8gIk0i IDogIiIsDQoJCQljaGlwX3JldmlzaW9uLA0KCQkJdW5pdCwNCgkJCShzYy0+ YWRhcHRlcl9jbmYgJiBBX0NORl8xMEJfVCkgPyAiIFRQIiAgOiAiIiwNCgkJ CShzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl9BVUkpICAgPyAiIEFVSSIgOiAi IiwNCgkJCShzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl8xMEJfMikgPyAiIEJO QyIgOiAiIiwNCgkJCXVuaXQsIGlycSwgZGV2LT5pZF9kcnEpOw0KDQoJaWYg KChzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl9FWFRORF8xMEJfMikgJiYNCgkg ICAgKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GX0xPV19SWF9TUVVFTENIKSkN CgkJc2MtPmxpbmVfY3RsID0gTE9XX1JYX1NRVUVMQ0g7DQoJZWxzZQ0KCQlz Yy0+bGluZV9jdGwgPSAwOw0KDQoJc3dpdGNoIChzYy0+YWRhcHRlcl9jbmYg JiBBX0NORl9NRURJQV9UWVBFKSB7DQoJICBjYXNlIEFfQ05GX01FRElBXzEw Ql9UOg0KCSAgICByZXN1bHQgPSBzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl8x MEJfVDsNCgkgICAgYnJlYWs7DQoJICBjYXNlIEFfQ05GX01FRElBX0FVSToN CgkgICAgcmVzdWx0ID0gc2MtPmFkYXB0ZXJfY25mICYgQV9DTkZfQVVJOw0K CSAgICBicmVhazsNCgkgIGNhc2UgQV9DTkZfTUVESUFfMTBCXzI6DQoJICAg IHJlc3VsdCA9IHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GXzEwQl8yOw0KCSAg ICBicmVhazsNCgkgIGRlZmF1bHQ6DQoJICAgIHJlc3VsdCA9IHNjLT5hZGFw dGVyX2NuZiAmIChBX0NORl8xMEJfVCB8IEFfQ05GX0FVSSB8IEFfQ05GXzEw Ql8yKTsNCgl9DQoNCglpZiAoIXJlc3VsdCkgew0KCQlwcmludGYoQ1NfTkFN RSIlMWQ6IHVuYXZhaWxhYmxlIG1lZGlhIVxuIiwgdW5pdCk7DQoJCXJldHVy biAwOw0KCX0NCg0KCXN3aXRjaCAoc2MtPmFkYXB0ZXJfY25mICYgQV9DTkZf TUVESUFfVFlQRSl7DQoNCgkgIGNhc2UgQV9DTkZfTUVESUFfMTBCX1Q6DQoJ ICAgIHJlc3VsdCA9IGRldGVjdF90cChzYyk7DQoJICAgIGlmICghcmVzdWx0 KQ0KCQkgICAgcHJpbnRmKENTX05BTUUiJTFkOiAxMEJhc2UtVCAoUkotNDUp IGhhcyBubyBjYWJsZVxuIiwNCgkJCSAgIHVuaXQpOw0KCSAgICBpZiAoc2Mt PmF1dG9fbmVnX2NuZiAmIElNTV9CSVQpDQoJCSAgICByZXN1bHQgPSBBX0NO Rl9NRURJQV8xMEJfVDsNCgkgICAgYnJlYWs7DQoNCgkgIGNhc2UgQV9DTkZf TUVESUFfQVVJOg0KCSAgICByZXN1bHQgPSBkZXRlY3RfYXVpKHNjKTsNCgkg ICAgaWYgKCFyZXN1bHQpDQoJCSAgICBwcmludGYoQ1NfTkFNRSIlMWQ6IDEw QmFzZS01IChBVUkpIGhhcyBubyBjYWJsZVxuIiwgdW5pdCk7DQoJICAgIGlm IChzYy0+YXV0b19uZWdfY25mICYgSU1NX0JJVCkNCgkJICAgIHJlc3VsdCA9 IEFfQ05GX01FRElBX0FVSTsNCgkgICAgYnJlYWs7DQoNCgkgIGNhc2UgQV9D TkZfTUVESUFfMTBCXzI6DQoJICAgIHJlc3VsdCA9IGRldGVjdF9ibmMoc2Mp Ow0KCSAgICBpZiAoIXJlc3VsdCkNCgkJICAgIHByaW50ZihDU19OQU1FIiUx ZDogMTBCYXNlLTIgKEJOQykgaGFzIG5vIGNhYmxlXG4iLCB1bml0KTsNCgkg ICAgaWYgKHNjLT5hdXRvX25lZ19jbmYgJiBJTU1fQklUKQ0KCQkgICAgcmVz dWx0ID0gQV9DTkZfTUVESUFfMTBCXzI7DQoJICAgIGJyZWFrOw0KDQoJICBj YXNlIEFfQ05GX01FRElBX0FVVE86DQoJICAgIGNzX3dyaXRlcmVnKHNjLT5u aWNfYWRkciwgUFBfTGluZUNUTCwNCgkJCXNjLT5saW5lX2N0bCB8IEFVVE9f QVVJXzEwQkFTRVQpOw0KCSAgICBpZiAoKHNjLT5hZGFwdGVyX2NuZiAmIEFf Q05GXzEwQl9UKSAmJg0KCQkoKHJlc3VsdD1kZXRlY3RfdHAoc2MpKSE9MCkp DQoJCSAgICBicmVhazsNCgkgICAgaWYgKChzYy0+YWRhcHRlcl9jbmYgJiBB X0NORl9BVUkgKSAmJg0KCQkoKHJlc3VsdD1kZXRlY3RfYXVpKHNjKSkhPTAp KQ0KCQkgICAgYnJlYWs7DQoJICAgIGlmICgoc2MtPmFkYXB0ZXJfY25mICYg QV9DTkZfMTBCXzIpICYmDQoJCSgocmVzdWx0PWRldGVjdF9ibmMoc2MpKSE9 MCkpDQoJCSAgICBicmVhazsNCgkgICAgcHJpbnRmKENTX05BTUUiJTFkOiBu byBtZWRpYSBkZXRlY3RlZFxuIiwgdW5pdCk7DQoJICAgIHJldHVybiAwOw0K CX0NCg0KCXN3aXRjaCAocmVzdWx0KXsNCgkgIGNhc2UgMDoNCgkgICAgcHJp bnRmKENTX05BTUUiJTFkOiBubyBjYWJsZSBhdHRhY2hlZCB0byBjb25maWd1 cmVkIG1lZGlhXG4iLCB1bml0KTsNCgkgICAgYnJlYWs7DQoJICBjYXNlIEFf Q05GX01FRElBXzEwQl9UOg0KCSAgICBpZiAoYm9vdHZlcmJvc2UpDQoJCSAg ICBwcmludGYoQ1NfTkFNRSIlMWQ6IHVzaW5nIDEwQmFzZS1UIChSSi00NSlc biIsIHVuaXQpOw0KCSAgICBicmVhazsNCgkgIGNhc2UgQV9DTkZfTUVESUFf QVVJOg0KCSAgICBpZiAoYm9vdHZlcmJvc2UpDQoJCSAgICBwcmludGYoQ1Nf TkFNRSIlMWQ6IHVzaW5nIDEwQmFzZS01IChBVUkpXG4iLCB1bml0KTsNCgkg ICAgYnJlYWs7DQoJICBjYXNlIEFfQ05GX01FRElBXzEwQl8yOg0KCSAgICBp ZiAoYm9vdHZlcmJvc2UpDQoJCSAgICBwcmludGYoQ1NfTkFNRSIlMWQ6IHVz aW5nIDEwQmFzZS0yIChCTkMpXG4iLCB1bml0KTsNCgkgICAgYnJlYWs7DQoJ ICBkZWZhdWx0Og0KCSAgICBwcmludGYoQ1NfTkFNRSIlMWQ6IHVuZXhwZWN0 ZWQgcmVzdWx0IGluIG1lZGlhIGRldGVjdC5cbiIsIHVuaXQpOw0KCSAgICBy ZXR1cm4gMDsNCgl9DQoNCglyZXR1cm4gUFBfSVNBSU9COw0KfQ0KDQovKg0K ICogRGV0ZXJtaW5lIGlmIHRoZSBkZXZpY2UgaXMgcHJlc2VudA0KICoNCiAq ICAgb24gZW50cnk6DQogKiAJYSBwb2ludGVyIHRvIGFuIGlzYV9kZXZpY2Ug c3RydWN0DQogKiAgIG9uIGV4aXQ6DQogKglOVUxMIGlmIGRldmljZSBub3Qg Zm91bmQNCiAqCW9yICMgb2YgaS9vIGFkZHJlc3NlcyB1c2VkIChpZiBmb3Vu ZCkNCiAqLw0Kc3RhdGljIGludA0KY3NfcHJvYmUoc3RydWN0IGlzYV9kZXZp Y2UgKmRldikNCnsNCglpbnQgbnBvcnRzOw0KDQoJbnBvcnRzID0gY3NfY3M4 OXgwX3Byb2JlKGRldik7DQoJaWYgKG5wb3J0cykNCgkJcmV0dXJuIChucG9y dHMpOw0KDQoJcmV0dXJuICgwKTsNCn0NCg0KLyoNCiAqIEluc3RhbGwgdGhl IGludGVyZmFjZSBpbnRvIGtlcm5lbCBuZXR3b3JraW5nIGRhdGEgc3RydWN0 dXJlcw0KICovDQpzdGF0aWMgaW50DQpjc19hdHRhY2goc3RydWN0IGlzYV9k ZXZpY2UgKmRldikNCnsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0gJmNzX3Nv ZnRjW2Rldi0+aWRfdW5pdF07DQoJc3RydWN0IGlmbmV0ICppZnAgPSAmKHNj LT5hcnBjb20uYWNfaWYpOw0KDQoJaWYgKCFpZnAtPmlmX25hbWUpIHsNCgkJ aWZwLT5pZl9zb2Z0Yz1zYzsNCgkJaWZwLT5pZl91bml0PWRldi0+aWRfdW5p dDsNCgkJaWZwLT5pZl9uYW1lPWNzZHJpdmVyLm5hbWU7DQoJCWlmcC0+aWZf b3V0cHV0PWV0aGVyX291dHB1dDsNCgkJaWZwLT5pZl9zdGFydD1jc19zdGFy dDsNCgkJaWZwLT5pZl9pb2N0bD1jc19pb2N0bDsNCgkJaWZwLT5pZl93YXRj aGRvZz1jc193YXRjaGRvZzsNCgkJaWZwLT5pZl9pbml0PWNzX2luaXQ7DQoJ CWlmcC0+aWZfc25kLmlmcV9tYXhsZW49IElGUV9NQVhMRU47DQoJCS8qDQoJ CSAqICBNSUIgREFUQQ0KCQkgaWZwLT5pZl9saW5rbWliPSZzYy0+bWliZGF0 YTsNCgkJIGlmcC0+aWZfbGlua21pYmxlbj1zaXplb2Ygc2MtPm1pYmRhdGE7 DQoJCSAqLw0KDQoJCWlmcC0+aWZfZmxhZ3M9KElGRl9CUk9BRENBU1QgfCBJ RkZfU0lNUExFWCB8IElGRl9NVUxUSUNBU1QgKTsNCg0KCQkvKg0KCQkgKiB0 aGlzIGNvZGUgc3RpbGwgaW4gcHJvZ3Jlc3MgKERNQSBzdXBwb3J0KQ0KCQkg Kg0KDQoJCXNjLT5yZWN2X3Jpbmc9bWFsbG9jKENTX0RNQV9CVUZGRVJfU0la RTw8MSwgTV9ERVZCVUYsIE1fTk9XQUlUKTsNCgkJaWYgKHNjLT5yZWN2X3Jp bmcgPT0gTlVMTCkgew0KCQkJbG9nKExPR19FUlIsQ1NfTkFNRQ0KCQkJIiVk OiBDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIE5JQ1xuIiwgZGV2LT5p ZF91bml0KTsNCgkJCXJldHVybigwKTsNCgkJfQ0KCQlpZiAoKHNjLT5yZWN2 X3JpbmctKHNjLT5yZWN2X3JpbmcgJiAweDFGRkZGKSkNCgkJICAgIDwgKDEy OCoxMDI0LUNTX0RNQV9CVUZGRVJfU0laRSkpDQoJCSAgICBzYy0+cmVjdl9y aW5nKz0xNioxMDI0Ow0KDQoJCSovDQoNCgkJc2MtPmJ1ZmZlcj1tYWxsb2Mo RVRIRVJfTUFYX0xFTi1FVEhFUl9DUkNfTEVOLE1fREVWQlVGLE1fTk9XQUlU KTsNCgkJaWYgKHNjLT5idWZmZXIgPT0gTlVMTCkgew0KCQkJbG9nKExPR19F UlIsQ1NfTkFNRQ0KCQkJICAgICIlZDogQ291bGRuJ3QgYWxsb2NhdGUgbWVt b3J5IGZvciBOSUNcbiIsDQoJCQkgICAgZGV2LT5pZF91bml0KTsNCgkJCXJl dHVybigwKTsNCgkJfQ0KDQoJCWlmX2F0dGFjaChpZnApOw0KCQljc19zdG9w KCBzYyApOw0KCQlldGhlcl9pZmF0dGFjaChpZnApOw0KCX0NCg0KCWlmIChi b290dmVyYm9zZSkNCgkJcHJpbnRmKENTX05BTUUiJWQ6IGV0aGVybmV0IGFk ZHJlc3MgJTZEXG4iLA0KCQkgICAgICAgaWZwLT5pZl91bml0LCBzYy0+YXJw Y29tLmFjX2VuYWRkciwgIjoiKTsNCg0KI2lmIE5CUEZJTFRFUiA+IDANCgli cGZhdHRhY2goaWZwLCBETFRfRU4xME1CLCBzaXplb2YgKHN0cnVjdCBldGhl cl9oZWFkZXIpKTsNCiNlbmRpZg0KCXJldHVybiAxOw0KfQ0KDQovKg0KICog SW5pdGlhbGl6ZSB0aGUgYm9hcmQNCiAqLw0Kc3RhdGljIHZvaWQNCmNzX2lu aXQodm9pZCAqeHNjKQ0Kew0KCXN0cnVjdCBjc19zb2Z0YyAqc2M9KHN0cnVj dCBjc19zb2Z0YyAqKXhzYzsNCglzdHJ1Y3QgaWZuZXQgKmlmcCA9ICZzYy0+ YXJwY29tLmFjX2lmOw0KCWludCBpLCBzLCByZXN1bHQsIHJ4X2NmZzsNCg0K CWlmIChpZnAtPmlmX2FkZHJsaXN0ID09IChzdHJ1Y3QgaWZhZGRyICopIDAp DQoJCXJldHVybjsNCg0KCS8qDQoJICogcmVzZXQgd2hhdGNoZG9nIHRpbWVy DQoJICovDQoJaWZwLT5pZl90aW1lcj0wOw0KCXNjLT5idWZfbGVuID0gMDsN CgkNCglzPXNwbGltcCgpOw0KDQoJLyoNCgkgKiBIYXJkd2FyZSBpbml0aWFs aXphdGlvbiBvZiBjcw0KCSAqLw0KDQoJLyogRW5hYmxlIHJlY2VpdmVyIGFu ZCB0cmFuc21pdHRlciAqLw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg UFBfTGluZUNUTCwNCgkJICAgIGNzX3JlYWRyZWcoIHNjLT5uaWNfYWRkciwg UFBfTGluZUNUTCApIHwNCgkJICAgIFNFUklBTF9SWF9PTiB8IFNFUklBTF9U WF9PTik7DQoNCgkvKiBDb25maWd1cmUgdGhlIHJlY2VpdmVyIG1vZGUgKi8N Cgljc19zZXRtb2RlKHNjKTsNCg0KCS8qDQoJICogVGhpcyBkZWZpbmVzIHdo YXQgdHlwZSBvZiBmcmFtZXMgd2lsbCBjYXVzZSBpbnRlcnJ1cHRzDQoJICog QmFkIGZyYW1lcyBzaG91bGQgZ2VuZXJhdGUgaW50ZXJydXB0cyBzbyB0aGF0 IHRoZSBkcml2ZXINCgkgKiBjb3VsZCB0cmFjayBzdGF0aXN0aWNzIG9mIGRp c2NhcmRlZCBwYWNrZXRzDQoJICovDQogICAgICAgIHJ4X2NmZyA9IFJYX09L X0VOQkwgfCBSWF9DUkNfRVJST1JfRU5CTCB8IFJYX1JVTlRfRU5CTCB8DQoJ CSBSWF9FWFRSQV9EQVRBX0VOQkw7DQoJaWYgKHNjLT5pc2FfY29uZmlnICYg U1RSRUFNX1RSQU5TRkVSKQ0KCQlyeF9jZmcgfD0gUlhfU1RSRUFNX0VOQkw7 DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9SeENGRywgcnhfY2Zn KTsNCg0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfVHhDRkcsIFRY X0xPU1RfQ1JTX0VOQkwgfA0KCQkgICAgVFhfU1FFX0VSUk9SX0VOQkwgfCBU WF9PS19FTkJMIHwgVFhfTEFURV9DT0xfRU5CTCB8DQoJCSAgICBUWF9KQlJf RU5CTCB8IFRYX0FOWV9DT0xfRU5CTCB8IFRYXzE2X0NPTF9FTkJMKTsNCg0K CWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVmQ0ZHLCBSRUFEWV9G T1JfVFhfRU5CTCB8DQoJCSAgICBSWF9NSVNTX0NPVU5UX09WUkZMT1dfRU5C TCB8IFRYX0NPTF9DT1VOVF9PVlJGTE9XX0VOQkwgfA0KCQkgICAgVFhfVU5E RVJSVU5fRU5CTCAvKnwgUlhfRE1BX0VOQkwqLyk7DQoNCgkvKg0KCSAqIE5v dyBlbmFibGUgZXZlcnl0aGluZw0KCSAqLw0KLyoNCiNpZmRlZglDU19VU0Vf NjRLX0RNQQ0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVzQ1RM LCBFTkFCTEVfSVJRIHwgUlhfRE1BX1NJWkVfNjRLKTsNCiAgICAgICAgI2Vs c2UNCg0KICAgICAgICBjc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0J1 c0NUTCwgRU5BQkxFX0lSUSk7DQojZW5kaWYNCiovDQoJY3Nfd3JpdGVyZWco c2MtPm5pY19hZGRyLCBQUF9CdXNDVEwsIEVOQUJMRV9JUlEpOw0KCQ0KCS8q DQoJICogU2V0IHJ1bm5pbmcgYW5kIGNsZWFyIG91dHB1dCBhY3RpdmUgZmxh Z3MNCgkgKi8NCglzYy0+YXJwY29tLmFjX2lmLmlmX2ZsYWdzIHw9IElGRl9S VU5OSU5HOw0KCXNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJj0gfklGRl9P QUNUSVZFOw0KDQoJLyoNCgkgKiBTdGFydCBzZW5kaW5nIHByb2Nlc3MNCgkg Ki8NCgljc19zdGFydChpZnApOw0KDQoJKHZvaWQpIHNwbHgocyk7DQp9DQoN Ci8qDQogKiBHZXQgdGhlIHBhY2tldCBmcm9tIHRoZSBib2FyZCBhbmQgc2Vu ZCBpdCB0byB0aGUgdXBwZXIgbGF5ZXINCiAqIHZpYSBldGhlcl9pbnB1dCgp Lg0KICovDQpzdGF0aWMgaW50DQpjc19nZXRfcGFja2V0KHN0cnVjdCBjc19z b2Z0YyAqc2MpDQp7DQoJc3RydWN0IGlmbmV0ICppZnAgPSAmKHNjLT5hcnBj b20uYWNfaWYpOw0KCWludCBpb2Jhc2UgPSBzYy0+bmljX2FkZHIsIHN0YXR1 cywgbGVuZ3RoOw0KCXN0cnVjdCBldGhlcl9oZWFkZXIgKmVoOw0KCXN0cnVj dCBtYnVmICptOw0KDQoJc3RhdHVzID0gaW53KGlvYmFzZSArIFJYX0ZSQU1F X1BPUlQpOw0KCWxlbmd0aCA9IGludyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JU KTsNCg0KI2lmZGVmIENTX0RFQlVHDQoJcHJpbnRmKENTX05BTUUiJTFkOiBy Y3ZkOiBzdGF0ICV4LCBsZW4gJWRcbiIsDQoJCWlmcC0+aWZfdW5pdCwgc3Rh dHVzLCBsZW5ndGgpOw0KI2VuZGlmDQoNCglpZiAoIShzdGF0dXMgJiBSWF9P SykpIHsNCiNpZmRlZiBDU19ERUJVRw0KCQlwcmludGYoQ1NfTkFNRSIlMWQ6 IGJhZCBwa3Qgc3RhdCAleFxuIiwgaWZwLT5pZl91bml0LCBzdGF0dXMpOw0K I2VuZGlmDQoJCWlmcC0+aWZfaWVycm9ycysrOw0KCQlyZXR1cm4gLTE7DQoJ fQ0KDQoJTUdFVEhEUihtLCBNX0RPTlRXQUlULCBNVF9EQVRBKTsNCglpZiAo bT09TlVMTCkNCgkJcmV0dXJuIC0xOw0KDQoJaWYgKGxlbmd0aCA+IE1ITEVO KSB7DQoJCU1DTEdFVChtLCBNX0RPTlRXQUlUKTsNCgkJaWYgKCEobS0+bV9m bGFncyAmIE1fRVhUKSkgew0KCQkJbV9mcmVlbShtKTsNCgkJCXJldHVybiAt MTsNCgkJfQ0KCX0NCg0KCS8qIEluaXRpYWxpemUgcGFja2V0J3MgaGVhZGVy IGluZm8gKi8NCgltLT5tX3BrdGhkci5yY3ZpZiA9IGlmcDsNCgltLT5tX3Br dGhkci5sZW4gPSBsZW5ndGg7DQoJbS0+bV9sZW4gPSBsZW5ndGg7DQoNCgkv KiBHZXQgdGhlIGRhdGEgKi8NCglpbnN3KGlvYmFzZSArIFJYX0ZSQU1FX1BP UlQsIG0tPm1fZGF0YSwgKGxlbmd0aCsxKT4+MSk7DQoNCgllaCA9IG10b2Qo bSwgc3RydWN0IGV0aGVyX2hlYWRlciAqKTsNCg0KI2lmIE5CUEZJTFRFUiA+ IDANCglpZiAoaWZwLT5pZl9icGYpDQoJCWJwZl9tdGFwKGlmcCwgbSk7DQoj ZW5kaWYNCg0KI2lmZGVmIENTX0RFQlVHDQoJZm9yIChsZW5ndGgvPTI7IGxl bmd0aDsgbGVuZ3RoLS0pDQoJCXByaW50ZigiICUwNHgiLCBtLT5tX2RhdGEr bGVuZ3RoKTsNCglwcmludGYoICJcbiIgKTsNCiNlbmRpZg0KDQoJaWYgKHN0 YXR1cyAmIChSWF9JQSB8IFJYX0JST0FEQ0FTVCkgfHwgDQoJICAgIChpZnAt PmlmX2ZsYWdzICYgSUZGX01VTFRJQ0FTVCAmJiBzdGF0dXMgJiBSWF9IQVNI RUQpKSB7DQoJCW0tPm1fcGt0aGRyLmxlbiAtPSBzaXplb2Yoc3RydWN0IGV0 aGVyX2hlYWRlcik7DQoJCW0tPm1fbGVuIC09IHNpemVvZihzdHJ1Y3QgZXRo ZXJfaGVhZGVyKTsNCgkJbS0+bV9kYXRhICs9IHNpemVvZihzdHJ1Y3QgZXRo ZXJfaGVhZGVyKTsNCg0KCQkvKiBGZWVkIHRoZSBwYWNrZXQgdG8gdGhlIHVw cGVyIGxheWVyICovDQoJCWV0aGVyX2lucHV0KGlmcCwgZWgsIG0pOw0KDQoJ CWlmcC0+aWZfaXBhY2tldHMrKzsNCg0KCQlpZiAobGVuZ3RoPT1FVEhFUl9N QVhfTEVOLUVUSEVSX0NSQ19MRU4pDQoJCQlERUxBWSggNTcwICk7DQoJfSBl bHNlIHsNCgkJbV9mcmVlbShtKTsNCgl9DQoNCglyZXR1cm4gMDsNCn0NCg0K LyoNCiAqIEhhbmRsZSBpbnRlcnJ1cHRzDQogKi8NCnZvaWQNCmNzaW50cihp bnQgdW5pdCkNCnsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0gJmNzX3NvZnRj W3VuaXRdOw0KCXN0cnVjdCBpZm5ldCAqaWZwID0gJihzYy0+YXJwY29tLmFj X2lmKTsNCglpbnQgc3RhdHVzLCBzOw0KDQojaWZkZWYgQ1NfREVCVUcNCglw cmludGYoQ1NfTkFNRSIlMWQ6IEludGVycnVwdC5cbiIsIHVuaXQpOw0KI2Vu ZGlmDQoNCgl3aGlsZSAoKHN0YXR1cz1jc19yZWFkd29yZChzYy0+bmljX2Fk ZHIsIElTUV9QT1JUKSkpIHsNCg0KI2lmZGVmIENTX0RFQlVHDQoJCXByaW50 ZiggQ1NfTkFNRSIlMWQ6ZnJvbSBJU1E6ICUwNHhcbiIsIHVuaXQsIHN0YXR1 cyApOw0KI2VuZGlmDQoNCgkJc3dpdGNoIChzdGF0dXMgJiBJU1FfRVZFTlRf TUFTSykgew0KCQkgIGNhc2UgSVNRX1JFQ0VJVkVSX0VWRU5UOg0KCQkgICAg Y3NfZ2V0X3BhY2tldChzYyk7DQoJCSAgICBicmVhazsNCg0KCQkgIGNhc2Ug SVNRX1RSQU5TTUlUVEVSX0VWRU5UOg0KCQkgICAgaWYgKHN0YXR1cyAmIFRY X09LKQ0KCQkJICAgIGlmcC0+aWZfb3BhY2tldHMrKzsNCgkJICAgIGVsc2UN CgkJCSAgICBpZnAtPmlmX29lcnJvcnMrKzsNCgkJICAgIGlmcC0+aWZfZmxh Z3MgJj0gfklGRl9PQUNUSVZFOw0KCQkgICAgaWZwLT5pZl90aW1lciA9IDA7 DQoJCSAgICBicmVhazsNCg0KCQkgIGNhc2UgSVNRX0JVRkZFUl9FVkVOVDoN CgkJICAgIGlmIChzdGF0dXMgJiBSRUFEWV9GT1JfVFgpIHsNCgkJCSAgICBp ZnAtPmlmX2ZsYWdzICY9IH5JRkZfT0FDVElWRTsNCgkJCSAgICBpZnAtPmlm X3RpbWVyID0gMDsNCgkJICAgIH0NCg0KCQkgICAgaWYgKHN0YXR1cyAmIFRY X1VOREVSUlVOKSB7DQoJCQkgICAgaWZwLT5pZl9mbGFncyAmPSB+SUZGX09B Q1RJVkU7DQoJCQkgICAgaWZwLT5pZl90aW1lciA9IDA7DQoJCQkgICAgaWZw LT5pZl9vZXJyb3JzKys7DQoJCSAgICB9DQoJCSAgICBicmVhazsNCg0KCQkg IGNhc2UgSVNRX1JYX01JU1NfRVZFTlQ6DQoJCSAgICBpZnAtPmlmX2llcnJv cnMrPShzdGF0dXM+PjYpOw0KCQkgICAgYnJlYWs7DQoNCgkJICBjYXNlIElT UV9UWF9DT0xfRVZFTlQ6DQoJCSAgICBpZnAtPmlmX2NvbGxpc2lvbnMrPShz dGF0dXM+PjYpOw0KCQkgICAgYnJlYWs7DQoJCX0NCgl9DQoNCglpZiAoIShp ZnAtPmlmX2ZsYWdzICYgSUZGX09BQ1RJVkUpKSB7DQoJCWNzX3N0YXJ0KGlm cCk7DQoJfQ0KfQ0KDQovKg0KICogU2F2ZSB0aGUgZGF0YSBpbiBidWZmZXIN CiAqLw0KDQpzdGF0aWMgdm9pZA0KY3Nfd3JpdGVfbWJ1ZnMoIHN0cnVjdCBj c19zb2Z0YyAqc2MsIHN0cnVjdCBtYnVmICptICkNCnsNCglpbnQgbGVuOw0K CXN0cnVjdCBtYnVmICptcDsNCgl1bnNpZ25lZCBjaGFyICpkYXRhLCAqYnVm Ow0KDQoJZm9yIChtcD1tLCBidWY9c2MtPmJ1ZmZlciwgc2MtPmJ1Zl9sZW49 MDsgbXAgIT0gTlVMTDsgbXA9bXAtPm1fbmV4dCkgew0KCQlsZW4gPSBtcC0+ bV9sZW47DQoNCgkJLyoNCgkJICogSWdub3JlIGVtcHR5IHBhcnRzDQoJCSAq Lw0KCQlpZiAoIWxlbikNCgkJY29udGludWU7DQoNCgkJLyoNCgkJICogRmlu ZCBhY3R1YWwgZGF0YSBhZGRyZXNzDQoJCSAqLw0KCQlkYXRhID0gbXRvZCht cCwgY2FkZHJfdCk7DQoNCgkJYmNvcHkoKGNhZGRyX3QpIGRhdGEsIChjYWRk cl90KSBidWYsIGxlbik7DQoJCWJ1ZiArPSBsZW47DQoJCXNjLT5idWZfbGVu ICs9IGxlbjsNCgl9DQp9DQoNCg0Kc3RhdGljIHZvaWQNCmNzX3htaXRfYnVm KCBzdHJ1Y3QgY3Nfc29mdGMgKnNjICkNCnsNCglvdXRzdyhzYy0+bmljX2Fk ZHIrVFhfRlJBTUVfUE9SVCwgc2MtPmJ1ZmZlciwgKHNjLT5idWZfbGVuKzEp Pj4xKTsNCglzYy0+YnVmX2xlbiA9IDA7DQp9DQoNCnN0YXRpYyB2b2lkDQpj c19zdGFydChzdHJ1Y3QgaWZuZXQgKmlmcCkNCnsNCglpbnQgcywgbGVuZ3Ro Ow0KCXN0cnVjdCBtYnVmICptLCAqbXA7DQoJc3RydWN0IGNzX3NvZnRjICpz YyA9IGlmcC0+aWZfc29mdGM7DQoNCglzID0gc3BsaW1wKCk7DQoNCglmb3Ig KDs7KSB7DQoJCWlmIChzYy0+YnVmX2xlbikNCgkJCWxlbmd0aCA9IHNjLT5i dWZfbGVuOw0KCQllbHNlIHsNCgkJCUlGX0RFUVVFVUUoICZpZnAtPmlmX3Nu ZCwgbSApOw0KDQoJCQlpZiAobT09TlVMTCkgew0KCQkJCSh2b2lkKSBzcGx4 KHMpOw0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJZm9yIChsZW5ndGg9MCwg bXA9bTsgbXAgIT0gTlVMTDsgbXA9bXAtPm1fbmV4dCkNCgkJCQlsZW5ndGgg Kz0gbXAtPm1fbGVuOw0KDQoJCQkvKiBTa2lwIHplcm8tbGVuZ3RoIHBhY2tl dHMgKi8NCgkJCWlmIChsZW5ndGggPT0gMCkgew0KCQkJCW1fZnJlZW0obSk7 DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCWNzX3dyaXRlX21idWZzKHNj LCBtKTsNCg0KI2lmIE5CUEZJTFRFUiA+IDANCgkJCWlmIChpZnAtPmlmX2Jw Zikgew0KCQkJCWJwZl9tdGFwKGlmcCwgbSk7DQoJCQl9DQojZW5kaWYNCg0K CQkJbV9mcmVlbShtKTsNCgkJfQ0KDQoJCS8qDQoJCSAqIElzc3VlIGEgU0VO RCBjb21tYW5kDQoJCSAqLw0KCQlvdXR3KHNjLT5uaWNfYWRkcitUWF9DTURf UE9SVCwgc2MtPnNlbmRfY21kKTsNCgkJb3V0dyhzYy0+bmljX2FkZHIrVFhf TEVOX1BPUlQsIGxlbmd0aCApOw0KDQoJCS8qDQoJCSAqIElmIHRoZXJlJ3Mg bm8gZnJlZSBzcGFjZSBpbiB0aGUgYnVmZmVyIHRoZW4gbGVhdmUNCgkJICog dGhpcyBwYWNrZXQgZm9yIHRoZSBuZXh0IHRpbWU6IGluZGljYXRlIG91dHB1 dCBhY3RpdmUNCgkJICogYW5kIHJldHVybi4NCgkJICovDQoJCWlmICghKGNz X3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9CdXNTVCkgJiBSRUFEWV9GT1Jf VFhfTk9XKSkgew0KCQkJaWZwLT5pZl90aW1lciA9IHNjLT5idWZfbGVuOw0K CQkJKHZvaWQpIHNwbHgocyk7DQoJCQlpZnAtPmlmX2ZsYWdzIHw9IElGRl9P QUNUSVZFOw0KCQkJcmV0dXJuOw0KCQl9DQoNCiAgICAgICAgICAgICAgIAlj c194bWl0X2J1ZihzYyk7DQoNCgkJLyoNCgkJICogU2V0IHRoZSB3YXRjaGRv ZyB0aW1lciBpbiBjYXNlIHdlIG5ldmVyIGhlYXINCgkJICogZnJvbSBib2Fy ZCBhZ2Fpbi4gKEkgZG9uJ3Qga25vdyBhYm91dCBjb3JyZWN0DQoJCSAqIHZh bHVlIGZvciB0aGlzIHRpbWVvdXQpDQoJCSAqLw0KCQlpZnAtPmlmX3RpbWVy ID0gbGVuZ3RoOw0KDQoJCSh2b2lkKSBzcGx4KHMpOw0KCQlpZnAtPmlmX2Zs YWdzIHw9IElGRl9PQUNUSVZFOw0KCQlyZXR1cm47DQoJfQ0KfQ0KDQovKg0K ICogU3RvcCBldmVyeXRoaW5nIG9uIHRoZSBpbnRlcmZhY2UNCiAqLw0Kc3Rh dGljIHZvaWQNCmNzX3N0b3Aoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglp bnQgcyA9IHNwbGltcCgpOw0KDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRy LCBQUF9SeENGRywgMCk7DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQ UF9UeENGRywgMCk7DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9C dWZDRkcsIDApOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVz Q1RMLCAwKTsNCg0KCXNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJj0gfihJ RkZfUlVOTklORyB8IElGRl9PQUNUSVZFKTsNCglzYy0+YXJwY29tLmFjX2lm LmlmX3RpbWVyID0gMDsNCg0KCSh2b2lkKSBzcGx4KHMpOw0KfQ0KDQovKg0K ICogUmVzZXQgdGhlIGludGVyZmFjZQ0KICovDQpzdGF0aWMgdm9pZA0KY3Nf cmVzZXQoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCgljc19zdG9wKHNjKTsN Cgljc19pbml0KHNjKTsNCn0NCg0Kc3RhdGljIHZvaWQNCmNzX3NldG1vZGUo c3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglzdHJ1Y3QgaWZuZXQgKmlmcCA9 ICYoc2MtPmFycGNvbS5hY19pZik7DQoJaW50IHJ4X2N0bDsNCg0KCS8qIFN0 b3AgdGhlIHJlY2VpdmVyIHdoaWxlIGNoYW5naW5nIGZpbHRlcnMgKi8NCglj c193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwsIA0KCQkJY3Nf cmVhZHJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwpICYgflNFUklBTF9S WF9PTik7DQoNCglpZiAoaWZwLT5pZl9mbGFncyAmIElGRl9QUk9NSVNDKSB7 DQoJCS8qIFR1cm4gb24gcHJvbWlzY3VvdXMgbW9kZS4gKi8NCgkJcnhfY3Rs ID0gUlhfT0tfQUNDRVBUIHwgUlhfUFJPTV9BQ0NFUFQ7DQoJfSBlbHNlIHsN CgkJaWYgKGlmcC0+aWZfZmxhZ3MgJiBJRkZfTVVMVElDQVNUKSB7DQoJCQkv KiBBbGxvdyByZWNlaXZpbmcgZnJhbWVzIHdpdGggbXVsdGljYXN0IGFkZHJl c3NlcyAqLw0KCQkJcnhfY3RsID0gUlhfSUFfQUNDRVBUIHwgUlhfQlJPQURD QVNUX0FDQ0VQVCB8DQoJCQkJIFJYX09LX0FDQ0VQVCB8IFJYX01VTFRDQVNU X0FDQ0VQVDsNCgkJCS8qDQoJCQkgKiBIZXJlIHRoZSByZWNvbmZpZ3VyYXRp b24gb2YgY2hpcCdzIG11bHRpY2FzdA0KCQkJICogZmlsdGVycyBzaG91bGQg YmUgZG9uZSBidXQgSSd2ZSBubyBpZGVhIGFib3V0DQoJCQkgKiBoYXNoIHRy YW5zZm9ybWF0aW9uIGluIHRoaXMgY2hpcC4gSWYgeW91IGNhbg0KCQkJICog YWRkIHRoaXMgY29kZSBvciBkZXNjcmliZSBtZSB0aGUgdHJhbnNmb3JtYXRp b24NCgkJCSAqIEknZCBiZSB2ZXJ5IGdsYWQuDQoJCQkgKi8NCgkJfSBlbHNl IHsNCgkJCS8qDQoJCQkgKiBSZWNlaXZlIG9ubHkgZ29vZCBmcmFtZXMgYWRk cmVzc2VkIGZvciB1cyBhbmQNCgkJCSAqIGdvb2QgYnJvYWRjYXN0cy4NCgkJ CSAqLw0KCQkJcnhfY3RsID0gUlhfSUFfQUNDRVBUIHwgUlhfQlJPQURDQVNU X0FDQ0VQVCB8DQoJCQkJIFJYX09LX0FDQ0VQVDsNCgkJfQ0KCX0NCg0KCS8q IFNldCB1cCB0aGUgZmlsdGVyICovDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19h ZGRyLCBQUF9SeENUTCwgUlhfREVGX0FDQ0VQVCB8IFJYX01VTFRDQVNUX0FD Q0VQVCk7DQoNCgkvKiBUdXJuIG9uIHJlY2VpdmVyICovDQoJY3Nfd3JpdGVy ZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMLA0KCQkJY3NfcmVhZHJlZyhz Yy0+bmljX2FkZHIsIFBQX0xpbmVDVEwpIHwgU0VSSUFMX1JYX09OKTsNCn0N Cg0Kc3RhdGljIGludA0KY3NfaW9jdGwocmVnaXN0ZXIgc3RydWN0IGlmbmV0 ICppZnAsIGludCBjb21tYW5kLCBjYWRkcl90IGRhdGEpDQp7DQoJc3RydWN0 IGNzX3NvZnRjICpzYz1pZnAtPmlmX3NvZnRjOw0KCWludCBzLGVycm9yPTA7 DQoNCiNpZmRlZiBDU19ERUJVRw0KCXByaW50ZihDU19OQU1FIiVkOiBpb2N0 bCgleClcbiIsc2MtPmFycGNvbS5hY19pZi5pZl91bml0LGNvbW1hbmQpOw0K I2VuZGlmDQoNCglzPXNwbGltcCgpOw0KDQoJc3dpdGNoIChjb21tYW5kKSB7 DQoNCgkgIGNhc2UgU0lPQ1NJRkFERFI6DQoJICAgIHsNCgkJICAgIHN0cnVj dCBpZmFkZHIgKmlmYSA9IChzdHJ1Y3QgaWZhZGRyICopZGF0YTsNCgkJICAg IHNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgfD0gSUZGX1VQOw0KDQoJCSAg ICBzd2l0Y2ggKGlmYS0+aWZhX2FkZHItPnNhX2ZhbWlseSkgew0KI2lmZGVm IElORVQNCgkJICAgICAgY2FzZSBBRl9JTkVUOg0KCQkJY3NfaW5pdChzYyk7 DQoJCQlhcnBfaWZpbml0KCZzYy0+YXJwY29tLCBpZmEpOw0KCQkJYnJlYWs7 DQojZW5kaWYNCiNpZmRlZiBJUFgNCgkJCS8qIFhYWA0KCQkJICogVGhpcyBj b2RlIGlzIHRha2VuIHdpdGhvdXQgYW55IHRlc3QNCgkJCSAqLw0KCQkgICAg ICBjYXNlIEFGX0lQWDoNCgkJCXsNCgkJCQlyZWdpc3RlciBzdHJ1Y3QgaXB4 X2FkZHIgKmluYSA9DQoJCQkJCQkmKElBX1NJUFgoaWZhKS0+c2lweF9hZGRy KTsNCg0KCQkJCWlmIChpcHhfbnVsbGhvc3QoKmluYSkpDQoJCQkJCWluYS0+ eF9ob3N0ID0gKih1bmlvbiBpcHhfaG9zdCopDQoJCQkJCQkgICAgICAoc2Mt PmFycGNvbS5hY19lbmFkZHIpOw0KCQkJCWVsc2Ugew0KCQkJCQliY29weSgo Y2FkZHJfdCkgaW5hLT54X2hvc3QuY19ob3N0LA0KCQkJCQkgICAgICAoY2Fk ZHJfdCkgc2MtPmFycGNvbS5hY19lbmFkZHIsDQoJCQkJCSAgICAgIHNpemVv ZihzYy0+YXJwY29tLmFjX2VuYWRkcikpOw0KCQkJCX0NCgkJCQkvKiBTZXQg bmV3IGFkZHJlc3MgKi8NCgkJCQljc19pbml0KHNjLT5hcnBjb20uYWNfaWYu aWZfdW5pdCk7DQoJCQkJYnJlYWs7DQoJCQl9DQojZW5kaWYNCgkJICAgICAg ZGVmYXVsdDoNCgkJCWNzX2luaXQoc2MpOw0KCQkgICAgfQ0KCQkgICAgYnJl YWs7DQogICAgICAgICAgICB9DQovKg0KI2lmZGVmIFNJT0NHSUZBRERSDQoJ ICBjYXNlIFNJT0NHSUZBRERSOg0KICAgICAgICAgICAgew0KCQlzdHJ1Y3Qg aWZyZXEgKiBpZnIgPSAoc3RydWN0IGlmcmVxICopZGF0YTsNCgkJc3RydWN0 IHNvY2thZGRyICogc2EgPSAoc3RydWN0IHNvY2thZGRyICopJmlmci0+aWZy X2RhdGE7DQoNCgkJYmNvcHkoKGNhZGRyX3Qpc2MtPnNjX2VuYWRkciwNCgkJ ICAgICAgKGNhZGRyX3Qpc2EtPnNhX2RhdGEsIEVUSEVSX0FERFJfTEVOKTsN CgkJYnJlYWs7DQoJICAgIH0NCiNlbmRpZg0KKi8NCiNpZmRlZiBTSU9DR0lG UEhZU0FERFINCgkgIGNhc2UgU0lPQ0dJRlBIWVNBRERSOg0KCSAgICB7DQoJ CXN0cnVjdCBpZnJlcSAqIGlmciA9IChzdHJ1Y3QgaWZyZXEgKilkYXRhOw0K DQoJCWJjb3B5KChjYWRkcl90KXNjLT5zY19lbmFkZHIsDQoJCSAgICAgIChj YWRkcl90KSZpZnItPmlmcl9kYXRhLCBFVEhFUl9BRERSX0xFTik7DQoJCWJy ZWFrOw0KCSAgICB9DQojZW5kaWYNCiAgICAgICAgICAgIA0KI2lmZGVmIFNJ T0NTSUZGTEFHUw0KCSAgY2FzZSBTSU9DU0lGRkxBR1M6DQoJICAgIHsNCgkJ ICAgIC8qDQoJCSAgICAgKiBTd2l0Y2ggaW50ZXJmYWNlIHN0YXRlIGJldHdl ZW4gInJ1bm5pbmciIGFuZA0KCQkgICAgICogInN0b3BwZWQiLCByZWZsZWN0 aW5nIHRoZSBVUCBmbGFnLg0KCQkgICAgICovDQoJCSAgICBpZiAoc2MtPmFy cGNvbS5hY19pZi5pZl9mbGFncyAmIElGRl9VUCkgew0KCQkJICAgIGlmICgo c2MtPmFycGNvbS5hY19pZi5pZl9mbGFncyAmIElGRl9SVU5OSU5HKT09MCkg ew0KCQkJCSAgICBjc19pbml0KHNjKTsNCgkJCSAgICB9DQoJCSAgICB9IGVs c2Ugew0KCQkJICAgIGlmICgoc2MtPmFycGNvbS5hY19pZi5pZl9mbGFncyAm IElGRl9SVU5OSU5HKSE9MCkgew0KCQkJCSAgICBjc19zdG9wKHNjKTsNCgkJ CSAgICB9DQoJCSAgICB9DQoJCSAgICAvKg0KCQkgICAgICogUHJvbWlzY3Vv dXMgYW5kL29yIG11bHRpY2FzdCBmbGFncyBtYXkgaGF2ZSBjaGFuZ2VkLA0K CQkgICAgICogc28gcmVwcm9ncmFtIHRoZSBtdWx0aWNhc3QgZmlsdGVyIGFu ZC9vciByZWNlaXZlIG1vZGUuDQoJCSAgICAgKg0KCQkgICAgICogU2VlIG5v dGUgYWJvdXQgbXVsdGljYXN0cyBpbiBjc19zZXRtb2RlDQoJCSAgICAgKi8N CgkJICAgIGNzX3NldG1vZGUoc2MpOw0KCQkgICAgYnJlYWs7DQoJICAgIH0N CiNlbmRpZg0KDQojaWZkZWYgU0lPQ0FERE1VTFRJDQoJICBjYXNlIFNJT0NB RERNVUxUSToNCgkgIGNhc2UgU0lPQ0RFTE1VTFRJOg0KCSAgICB7DQoJCS8q DQoJCSAqIFVwZGF0ZSBvdXQgbXVsdGljYXN0IGxpc3QuDQoJCSAqLw0KCQlz dHJ1Y3QgaWZyZXEgKiBpZnIgPSAoc3RydWN0IGlmcmVxICopZGF0YTsNCg0K CQllcnJvciA9IChjb21tYW5kID09IFNJT0NBRERNVUxUSSkNCgkJICAgICAg PyBldGhlcl9hZGRtdWx0aShpZnIsICZzYy0+YXJwY29tKQ0KCQkgICAgICA6 IGV0aGVyX2RlbG11bHRpKGlmciwgJnNjLT5hcnBjb20pOw0KDQoJCWlmIChl cnJvciA9PSBFTkVUUkVTRVQpIHsNCgkJCS8qDQoJCQkgKiBNdWx0aWNhc3Qg bGlzdCBoYXMgY2hhbmdlZDsgc2V0IHRoZSBoYXJkd2FyZSBmaWx0ZXINCgkJ CSAqIGFjY29yZGluZ2x5Lg0KCQkJICogDQoJCQkgKiBTZWUgbm90ZSBhYm91 dCBtdWx0aWNhc3RzIGluIGNzX3NldG1vZGUNCgkJCSAqLw0KCQkJY3Nfc2V0 bW9kZShzYyk7DQoJCQllcnJvciA9IDA7DQoJCX0NCg0KCQlicmVhazsNCgkg ICAgfQ0KI2VuZGlmDQoNCiNpZmRlZiBTSU9DU0lGTVRVDQoJICBjYXNlIFNJ T0NTSUZNVFU6DQoJICAgIHsNCgkJICAgIC8qDQoJCSAgICAgKiBTZXQgdGhl IGludGVyZmFjZSBNVFUuDQoJCSAgICAgKi8NCgkJICAgIHN0cnVjdCBpZnJl cSAqaWZyID0gKHN0cnVjdCBpZnJlcSAqKWRhdGE7DQoNCgkJICAgIGlmIChp ZnItPmlmcl9tdHUgPiBFVEhFUk1UVSkgew0KCQkJICAgIGVycm9yID0gRUlO VkFMOw0KCQkgICAgfSBlbHNlIHsNCgkJCSAgICBzYy0+YXJwY29tLmFjX2lm LmlmX210dSA9IGlmci0+aWZyX210dTsNCgkJICAgIH0NCgkJICAgIGJyZWFr Ow0KCSAgICB9DQojZW5kaWYNCg0KCSAgZGVmYXVsdDoNCgkgICAgZXJyb3Ig PSBFSU5WQUw7DQoJfQ0KDQoJKHZvaWQpIHNwbHgocyk7DQoJcmV0dXJuIGVy cm9yOw0KfQ0KDQovKg0KICogRGV2aWNlIHRpbWVvdXQvd2F0Y2hkb2cgcm91 dGluZS4gRW50ZXJlZCBpZiB0aGUgZGV2aWNlIG5lZ2xlY3RzIHRvDQogKiBn ZW5lcmF0ZSBhbiBpbnRlcnJ1cHQgYWZ0ZXIgYSB0cmFuc21pdCBoYXMgYmVl biBzdGFydGVkIG9uIGl0Lg0KICovDQpzdGF0aWMgdm9pZA0KY3Nfd2F0Y2hk b2coc3RydWN0IGlmbmV0ICppZnApDQp7DQoJc3RydWN0IGNzX3NvZnRjICpz YyA9ICZjc19zb2Z0Y1tpZnAtPmlmX3VuaXRdOw0KDQoJaWZwLT5pZl9vZXJy b3JzKys7DQoJbG9nKExPR19FUlIsIENTX05BTUUiJWQ6IGRldmljZSB0aW1l b3V0XG4iLCBpZnAtPmlmX3VuaXQpOw0KDQoJLyogUmVzZXQgdGhlIGludGVy ZmFjZSAqLw0KCWlmIChpZnAtPmlmX2ZsYWdzICYgSUZGX1VQKQ0KCQljc19y ZXNldChzYyk7DQoJZWxzZQ0KCQljc19zdG9wKHNjKTsNCn0NCg0K --0-899763362-894389391=:8507 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="if_csreg.h" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.BSF.3.96.980505212951.8507D@altos.rnd.runnet.ru> Content-Description: /sys/i386/isa/if_csreg.h LyoNCiAqIENvcHlyaWdodCAoYykgMTk5NywxOTk4IE1heGltIEJvbG90aW4g YW5kIE9sZWcgU2hhcm9pa28uDQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K ICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9u LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj b25kaXRpb25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25z IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln aHQNCiAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcNCiAqICAgIGRpc2NsYWltZXIu DQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj bGFpbWVyIGluIHRoZQ0KICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4N CiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRI T1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EDQogKiBBTlkgRVhQ UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P VCBMSU1JVEVEIFRPLCBUSEUNCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFDQogKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM IFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQ0KICogRk9S IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCiAqIERBTUFHRVMgKElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT VElUVVRFIEdPT0RTDQogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCiAq IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQogKiBMSUFCSUxJVFks IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg QVJJU0lORyBJTiBBTlkgV0FZDQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRJZDog aWZfY3NyZWcuaCx2IDEuMiAxOTk4LzA0LzIwIDA5OjU4OjA5IHJvb3QgRXhw ICQNCiAqLw0KDQojZGVmaW5lIFBQX0NoaXBJRCAweDAwMDAJLyogb2Zmc2V0 ICAgMGggLT4gQ29ycCAtSUQgICAgICAgICAgICAgICovDQoJCQkJLyogb2Zm c2V0ICAgMmggLT4gTW9kZWwvUHJvZHVjdCBOdW1iZXIgICovDQoJCQkJLyog b2Zmc2V0ICAgM2ggLT4gQ2hpcCBSZXZpc2lvbiBOdW1iZXIgICovDQoNCiNk ZWZpbmUgUFBfSVNBSU9CCQkweDAwMjAJLyogIElPIGJhc2UgYWRkcmVzcyAq Lw0KI2RlZmluZSBQUF9DUzg5MjBfSVNBSU5UCTB4MDM3MAkvKiAgSVNBIGlu dGVycnVwdCBzZWxlY3QgKi8NCiNkZWZpbmUgUFBfQ1M4OTIwX0lTQURNQSAJ MHgwMzc0CS8qICBJU0EgUmVjIERNQSBjaGFubmVsICovDQojZGVmaW5lIFBQ X0lTQVNPRgkJMHgwMDI2CS8qICBJU0EgRE1BIG9mZnNldCAqLw0KI2RlZmlu ZSBQUF9EbWFGcmFtZUNudAkJMHgwMDI4CS8qICBJU0EgRE1BIEZyYW1lIGNv dW50ICovDQojZGVmaW5lIFBQX0RtYUJ5dGVDbnQJCTB4MDAyQQkvKiAgSVNB IERNQSBCeXRlIGNvdW50ICovDQojZGVmaW5lIFBQX0NTODkyMF9JU0FNZW1C CTB4MDM0OAkvKiAgTWVtb3J5IGJhc2UgKi8NCg0KLyogRUVQUk9NIGRhdGEg YW5kIGNvbW1hbmQgcmVnaXN0ZXJzICovDQojZGVmaW5lIFBQX0VFQ01ECQkw eDAwNDAJLyogIE5WUiBJbnRlcmZhY2UgQ29tbWFuZCByZWdpc3RlciAqLw0K I2RlZmluZSBQUF9FRURhdGEJCTB4MDA0MgkvKiAgTlZSIEludGVyZmFjZSBE YXRhIFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0RlYnVnUmVnCQkweDAwNDQJ LyogIERlYnVnIFJlZ2lzdGVyICovDQoNCiNkZWZpbmUgUFBfUnhDRkcJCTB4 MDEwMgkvKiAgUnggQnVzIGNvbmZpZyAqLw0KI2RlZmluZSBQUF9SeENUTAkJ MHgwMTA0CS8qICBSZWNlaXZlIENvbnRyb2wgUmVnaXN0ZXIgKi8NCiNkZWZp bmUgUFBfVHhDRkcJCTB4MDEwNgkvKiAgVHJhbnNtaXQgQ29uZmlnIFJlZ2lz dGVyICovDQojZGVmaW5lIFBQX1R4Q01ECQkweDAxMDgJLyogIFRyYW5zbWl0 IENvbW1hbmQgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQnVmQ0ZHCQkweDAx MEEJLyogIEJ1cyBjb25maWd1cmF0aW9uIFJlZ2lzdGVyICovDQojZGVmaW5l IFBQX0xpbmVDVEwJCTB4MDExMgkvKiAgTGluZSBDb25maWcgUmVnaXN0ZXIg Ki8NCiNkZWZpbmUgUFBfU2VsZkNUTAkJMHgwMTE0CS8qICBTZWxmIENvbW1h bmQgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQnVzQ1RMCQkweDAxMTYJLyog IElTQSBidXMgY29udHJvbCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9UZXN0 Q1RMCQkweDAxMTgJLyogIFRlc3QgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBf QXV0b05lZ0NUTAkJMHgwMTFDCS8qICBBdXRvIE5lZ290aWF0aW9uIEN0cmwg Ki8NCg0KI2RlZmluZSBQUF9JU1EJCQkweDAxMjAJLyogIEludGVycnVwdCBT dGF0dXMgKi8NCiNkZWZpbmUgUFBfUnhFdmVudAkJMHgwMTI0CS8qICBSeCBF dmVudCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9UeEV2ZW50CQkweDAxMjgJ LyogIFR4IEV2ZW50IFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0J1ZkV2ZW50 CQkweDAxMkMJLyogIEJ1cyBFdmVudCBSZWdpc3RlciAqLw0KI2RlZmluZSBQ UF9SeE1pc3MJCTB4MDEzMAkvKiAgUmVjZWl2ZSBNaXNzIENvdW50ICovDQoj ZGVmaW5lIFBQX1R4Q29sCQkweDAxMzIJLyogIFRyYW5zbWl0IENvbGxpc2lv biBDb3VudCAqLw0KI2RlZmluZSBQUF9MaW5lU1QJCTB4MDEzNAkvKiAgTGlu ZSBTdGF0ZSBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9TZWxmU1QJCTB4MDEz NgkvKiAgU2VsZiBTdGF0ZSByZWdpc3RlciAqLw0KI2RlZmluZSBQUF9CdXNT VAkJMHgwMTM4CS8qICBCdXMgU3RhdHVzICovDQojZGVmaW5lIFBQX1REUgkJ CTB4MDEzQwkvKiAgVGltZSBEb21haW4gUmVmbGVjdG9tZXRyeSAqLw0KI2Rl ZmluZSBQUF9BdXRvTmVnU1QJCTB4MDEzRQkvKiAgQXV0byBOZWcgU3RhdHVz ICovDQojZGVmaW5lIFBQX1R4Q29tbWFuZAkJMHgwMTQ0CS8qICBUeCBDb21t YW5kICovDQojZGVmaW5lIFBQX1R4TGVuZ3RoCQkweDAxNDYJLyogIFR4IExl bmd0aCAqLw0KI2RlZmluZSBQUF9MQUYJCQkweDAxNTAJLyogIEhhc2ggVGFi bGUgKi8NCiNkZWZpbmUgUFBfSUEJCQkweDAxNTgJLyogIFBoeXNpY2FsIEFk ZHJlc3MgUmVnaXN0ZXIgKi8NCg0KI2RlZmluZSBQUF9SeFN0YXR1cwkJMHgw NDAwCS8qICBSZWNlaXZlIHN0YXJ0IG9mIGZyYW1lICovDQojZGVmaW5lIFBQ X1J4TGVuZ3RoCQkweDA0MDIJLyogIFJlY2VpdmUgTGVuZ3RoIG9mIGZyYW1l ICovDQojZGVmaW5lIFBQX1J4RnJhbWUJCTB4MDQwNAkvKiAgUmVjZWl2ZSBm cmFtZSBwb2ludGVyICovDQojZGVmaW5lIFBQX1R4RnJhbWUJCTB4MEEwMAkv KiAgVHJhbnNtaXQgZnJhbWUgcG9pbnRlciAqLw0KDQovKg0KICogIFByaW1h cnkgSS9PIEJhc2UgQWRkcmVzcy4gSWYgbm8gSS9PIGJhc2UgaXMgc3VwcGxp ZWQgYnkgdGhlIHVzZXIsIHRoZW4gdGhpcw0KICogIGNhbiBiZSB1c2VkIGFz IHRoZSBkZWZhdWx0IEkvTyBiYXNlIHRvIGFjY2VzcyB0aGUgUGFja2V0UGFn ZSBBcmVhLg0KICovDQojZGVmaW5lIERFRkFVTFRJT0JBU0UJCTB4MDMwMA0K I2RlZmluZSBGSVJTVF9JTwkJMHgwMjBDCS8qICBGaXJzdCBJL08gcG9ydCB0 byBjaGVjayAqLw0KI2RlZmluZSBMQVNUX0lPCQkJMHgwMzdDCS8qICBMYXN0 IEkvTyBwb3J0IHRvIGNoZWNrICgrMTBoKSAqLw0KI2RlZmluZSBBRERfTUFT SwkJMHgzMDAwCS8qICBNYXNrIGl0IHVzZSBvZiB0aGUgQUREX1BPUlQgcmVn aXN0ZXIgKi8NCiNkZWZpbmUgQUREX1NJRwkJCTB4MzAwMAkvKiAgRXhwZWN0 ZWQgSUQgc2lnbmF0dXJlICovDQoNCiNkZWZpbmUgQ0hJUF9FSVNBX0lEX1NJ RwkweDYzMEUJLyogIFByb2R1Y3QgSUQgQ29kZSBmb3IgQ3J5c3RhbCBDaGlw IChDUzg5MDAgc3BlYyA0LjMpICovDQoNCiNkZWZpbmUgUFJPRFVDVF9JRF9B REQJCTB4MDAwMgkvKiAgQWRkcmVzcyBvZiBwcm9kdWN0IElEICovDQoNCi8q ICBNYXNrIHRvIGZpbmQgb3V0IHRoZSB0eXBlcyBvZiAgcmVnaXN0ZXJzICov DQojZGVmaW5lIFJFR19UWVBFX01BU0sJCTB4MDAxRg0KDQovKiAgRWVwcm9t IENvbW1hbmRzICovDQojZGVmaW5lIEVSU0VfV1JfRU5CTAkJMHgwMEYwDQoj ZGVmaW5lIEVSU0VfV1JfRElTQUJMRQkJMHgwMDAwDQoNCi8qICBEZWZpbmVz IENvbnRyb2wvQ29uZmlnIHJlZ2lzdGVyIHF1aW50dXBsZXQgbnVtYmVycyAq Lw0KI2RlZmluZSBSWF9CVUZfQ0ZHCQkweDAwMDMNCiNkZWZpbmUgUlhfQ09O VFJPTAkJMHgwMDA1DQojZGVmaW5lIFRYX0NGRwkJCTB4MDAwNw0KI2RlZmlu ZSBUWF9DT01NQU5ECQkweDAwMDkNCiNkZWZpbmUgQlVGX0NGRwkJCTB4MDAw Qg0KI2RlZmluZSBMSU5FX0NPTlRST0wJCTB4MDAxMw0KI2RlZmluZSBTRUxG X0NPTlRST0wJCTB4MDAxNQ0KI2RlZmluZSBCVVNfQ09OVFJPTAkJMHgwMDE3 DQojZGVmaW5lIFRFU1RfQ09OVFJPTAkJMHgwMDE5DQoNCi8qICBEZWZpbmVz IFN0YXR1cy9Db3VudCByZWdpc3RlcnMgcXVpbnR1cGxldCBudW1iZXJzICov DQojZGVmaW5lIFJYX0VWRU5UCQkweDAwMDQNCiNkZWZpbmUgVFhfRVZFTlQJ CTB4MDAwOA0KI2RlZmluZSBCVUZfRVZFTlQJCTB4MDAwQw0KI2RlZmluZSBS WF9NSVNTX0NPVU5UCQkweDAwMTANCiNkZWZpbmUgVFhfQ09MX0NPVU5UCQkw eDAwMTINCiNkZWZpbmUgTElORV9TVEFUVVMJCTB4MDAxNA0KI2RlZmluZSBT RUxGX1NUQVRVUwkJMHgwMDE2DQojZGVmaW5lIEJVU19TVEFUVVMJCTB4MDAx OA0KI2RlZmluZSBURFIJCQkweDAwMUMNCg0KLyoNCiAqIFBQX1J4Q0ZHIC0g UmVjZWl2ZSAgQ29uZmlndXJhdGlvbiBhbmQgSW50ZXJydXB0IE1hc2sNCiAq CQkJIGJpdCBkZWZpbml0aW9uIC0gIFJlYWQvd3JpdGUNCiAqLw0KI2RlZmlu ZSBTS0lQXzEJCQkweDAwNDANCiNkZWZpbmUgUlhfU1RSRUFNX0VOQkwJCTB4 MDA4MA0KI2RlZmluZSBSWF9PS19FTkJMCQkweDAxMDANCiNkZWZpbmUgUlhf RE1BX09OTFkJCTB4MDIwMA0KI2RlZmluZSBBVVRPX1JYX0RNQQkJMHgwNDAw DQojZGVmaW5lIEJVRkZFUl9DUkMJCTB4MDgwMA0KI2RlZmluZSBSWF9DUkNf RVJST1JfRU5CTAkweDEwMDANCiNkZWZpbmUgUlhfUlVOVF9FTkJMCQkweDIw MDANCiNkZWZpbmUgUlhfRVhUUkFfREFUQV9FTkJMCTB4NDAwMA0KDQovKiBQ UF9SeENUTCAtIFJlY2VpdmUgQ29udHJvbCBiaXQgZGVmaW5pdGlvbiAtIFJl YWQvd3JpdGUgKi8NCiNkZWZpbmUgUlhfSUFfSEFTSF9BQ0NFUFQJMHgwMDQw DQojZGVmaW5lIFJYX1BST01fQUNDRVBUCQkweDAwODANCiNkZWZpbmUgUlhf T0tfQUNDRVBUCQkweDAxMDANCiNkZWZpbmUgUlhfTVVMVENBU1RfQUNDRVBU CTB4MDIwMA0KI2RlZmluZSBSWF9JQV9BQ0NFUFQJCTB4MDQwMA0KI2RlZmlu ZSBSWF9CUk9BRENBU1RfQUNDRVBUCTB4MDgwMA0KI2RlZmluZSBSWF9CQURf Q1JDX0FDQ0VQVAkweDEwMDANCiNkZWZpbmUgUlhfUlVOVF9BQ0NFUFQJCTB4 MjAwMA0KI2RlZmluZSBSWF9FWFRSQV9EQVRBX0FDQ0VQVAkweDQwMDANCiNk ZWZpbmUgUlhfQUxMX0FDQ0VQVAkJKFJYX1BST01fQUNDRVBUIHwgUlhfQkFE X0NSQ19BQ0NFUFQgfAlcDQoJCQkJIFJYX1JVTlRfQUNDRVBUIHwgUlhfRVhU UkFfREFUQV9BQ0NFUFQpDQovKg0KICogIERlZmF1bHQgcmVjZWl2ZSBtb2Rl IC0gaW5kaXZpZHVhbGx5IGFkZHJlc3NlZCwgYnJvYWRjYXN0LCBhbmQgZXJy b3IgZnJlZQ0KICovDQojZGVmaW5lIFJYX0RFRl9BQ0NFUFQgKFJYX0lBX0FD Q0VQVCB8IFJYX0JST0FEQ0FTVF9BQ0NFUFQgfCBSWF9PS19BQ0NFUFQpDQoN Ci8qDQogKiBQUF9UeENGRyAtIFRyYW5zbWl0IENvbmZpZ3VyYXRpb24gSW50 ZXJydXB0IE1hc2sNCiAqCQkJIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0 ZQ0KICovDQojZGVmaW5lIFRYX0xPU1RfQ1JTX0VOQkwJMHgwMDQwDQojZGVm aW5lIFRYX1NRRV9FUlJPUl9FTkJMCTB4MDA4MA0KI2RlZmluZSBUWF9PS19F TkJMCQkweDAxMDANCiNkZWZpbmUgVFhfTEFURV9DT0xfRU5CTAkweDAyMDAN CiNkZWZpbmUgVFhfSkJSX0VOQkwJCTB4MDQwMA0KI2RlZmluZSBUWF9BTllf Q09MX0VOQkwJCTB4MDgwMA0KI2RlZmluZSBUWF8xNl9DT0xfRU5CTAkJMHg4 MDAwDQoNCi8qDQogKiBQUF9UeENNRCAtIFRyYW5zbWl0IENvbW1hbmQgYml0 IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBUWF9TVEFS VF80X0JZVEVTCTB4MDAwMA0KI2RlZmluZSBUWF9TVEFSVF82NF9CWVRFUwkw eDAwNDANCiNkZWZpbmUgVFhfU1RBUlRfMTI4X0JZVEVTCTB4MDA4MA0KI2Rl ZmluZSBUWF9TVEFSVF9BTExfQllURVMJMHgwMEMwDQojZGVmaW5lIFRYX0ZP UkNFCQkweDAxMDANCiNkZWZpbmUgVFhfT05FX0NPTAkJMHgwMjAwDQojZGVm aW5lIFRYX1RXT19QQVJUX0RFRkZfRElTQUJMRSAweDA0MDANCiNkZWZpbmUg VFhfTk9fQ1JDCQkweDEwMDANCiNkZWZpbmUgVFhfUlVOVAkJCTB4MjAwMA0K DQovKg0KICogUFBfQnVmQ0ZHIC0gQnVmZmVyIENvbmZpZ3VyYXRpb24gSW50 ZXJydXB0IE1hc2sNCiAqCQkJIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0 ZQ0KICovDQojZGVmaW5lIEdFTkVSQVRFX1NXX0lOVEVSUlVQVAkweDAwNDAN CiNkZWZpbmUgUlhfRE1BX0VOQkwJCTB4MDA4MA0KI2RlZmluZSBSRUFEWV9G T1JfVFhfRU5CTAkweDAxMDANCiNkZWZpbmUgVFhfVU5ERVJSVU5fRU5CTAkw eDAyMDANCiNkZWZpbmUgUlhfTUlTU19FTkJMCQkweDA0MDANCiNkZWZpbmUg UlhfMTI4X0JZVEVfRU5CTAkweDA4MDANCiNkZWZpbmUgVFhfQ09MX0NPVU5U X09WUkZMT1dfRU5CTCAweDEwMDANCiNkZWZpbmUgUlhfTUlTU19DT1VOVF9P VlJGTE9XX0VOQkwgMHgyMDAwDQojZGVmaW5lIFJYX0RFU1RfTUFUQ0hfRU5C TAkweDgwMDANCg0KLyoNCiAqIFBQX0xpbmVDVEwgLSBMaW5lIENvbnRyb2wg Yml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRlDQogKi8NCiNkZWZpbmUgU0VS SUFMX1JYX09OCQkweDAwNDANCiNkZWZpbmUgU0VSSUFMX1RYX09OCQkweDAw ODANCiNkZWZpbmUgQVVJX09OTFkJCTB4MDEwMA0KI2RlZmluZSBBVVRPX0FV SV8xMEJBU0VUCTB4MDIwMA0KI2RlZmluZSBNT0RJRklFRF9CQUNLT0ZGCTB4 MDgwMA0KI2RlZmluZSBOT19BVVRPX1BPTEFSSVRZCTB4MTAwMA0KI2RlZmlu ZSBUV09fUEFSVF9ERUZESVMJCTB4MjAwMA0KI2RlZmluZSBMT1dfUlhfU1FV RUxDSAkJMHg0MDAwDQoNCi8qDQogKiBQUF9TZWxmQ1RMIC0gU29mdHdhcmUg U2VsZiBDb250cm9sIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0ZQ0KICov DQojZGVmaW5lIFBPV0VSX09OX1JFU0VUCQkweDAwNDANCiNkZWZpbmUgU1df U1RPUAkJCTB4MDEwMA0KI2RlZmluZSBTTEVFUF9PTgkJMHgwMjAwDQojZGVm aW5lIEFVVE9fV0FLRVVQCQkweDA0MDANCiNkZWZpbmUgSENCMF9FTkJMCQkw eDEwMDANCiNkZWZpbmUgSENCMV9FTkJMCQkweDIwMDANCiNkZWZpbmUgSENC MAkJCTB4NDAwMA0KI2RlZmluZSBIQ0IxCQkJMHg4MDAwDQoNCi8qDQogKiBQ UF9CdXNDVEwgLSBJU0EgQnVzIENvbnRyb2wgYml0IGRlZmluaXRpb24gLSBS ZWFkL3dyaXRlDQogKi8NCiNkZWZpbmUgUkVTRVRfUlhfRE1BCQkweDAwNDAN CiNkZWZpbmUgTUVNT1JZX09OCQkweDA0MDANCiNkZWZpbmUgRE1BX0JVUlNU X01PREUJCTB4MDgwMA0KI2RlZmluZSBJT19DSEFOTkVMX1JFQURZX09OCTB4 MTAwMA0KI2RlZmluZSBSWF9ETUFfU0laRV82NEtzCTB4MjAwMA0KI2RlZmlu ZSBFTkFCTEVfSVJRCQkweDgwMDANCg0KLyoNCiAqIFBQX1Rlc3RDVEwgLSBU ZXN0IENvbnRyb2wgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRlDQogKi8N CiNkZWZpbmUgTElOS19PRkYJCTB4MDA4MA0KI2RlZmluZSBFTkRFQ19MT09Q QkFDSwkJMHgwMjAwDQojZGVmaW5lIEFVSV9MT09QQkFDSwkJMHgwNDAwDQoj ZGVmaW5lIEJBQ0tPRkZfT0ZGCQkweDA4MDANCiNkZWZpbmUgRkFTVF9URVNU CQkweDgwMDANCg0KLyoNCiAqIFBQX1J4RXZlbnQgLSBSZWNlaXZlIEV2ZW50 IEJpdCBkZWZpbml0aW9uIC0gUmVhZC1vbmx5DQogKi8NCiNkZWZpbmUgUlhf SUFfSEFTSEVECQkweDAwNDANCiNkZWZpbmUgUlhfRFJJQkJMRQkJMHgwMDgw DQojZGVmaW5lIFJYX09LCQkJMHgwMTAwDQojZGVmaW5lIFJYX0hBU0hFRAkJ MHgwMjAwDQojZGVmaW5lIFJYX0lBCQkJMHgwNDAwDQojZGVmaW5lIFJYX0JS T0FEQ0FTVAkJMHgwODAwDQojZGVmaW5lIFJYX0NSQ19FUlJPUgkJMHgxMDAw DQojZGVmaW5lIFJYX1JVTlQJCQkweDIwMDANCiNkZWZpbmUgUlhfRVhUUkFf REFUQQkJMHg0MDAwDQoNCiNkZWZpbmUgSEFTSF9JTkRFWF9NQVNLCQkweDBG QzAwDQoNCi8qDQogKiBQUF9UeEV2ZW50IC0gVHJhbnNtaXQgRXZlbnQgQml0 IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBUWF9MT1NU X0NSUwkJMHgwMDQwDQojZGVmaW5lIFRYX1NRRV9FUlJPUgkJMHgwMDgwDQoj ZGVmaW5lIFRYX09LCQkJMHgwMTAwDQojZGVmaW5lIFRYX0xBVEVfQ09MCQkw eDAyMDANCiNkZWZpbmUgVFhfSkJSCQkJMHgwNDAwDQojZGVmaW5lIFRYXzE2 X0NPTAkJMHg4MDAwDQojZGVmaW5lIFRYX1NFTkRfT0tfQklUUwkJKFRYX09L IHwgVFhfTE9TVF9DUlMpDQojZGVmaW5lIFRYX0NPTF9DT1VOVF9NQVNLCTB4 NzgwMA0KDQovKg0KICogUFBfQnVmRXZlbnQgLSBCdWZmZXIgRXZlbnQgQml0 IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBTV19JTlRF UlJVUFQJCTB4MDA0MA0KI2RlZmluZSBSWF9ETUEJCQkweDAwODANCiNkZWZp bmUgUkVBRFlfRk9SX1RYCQkweDAxMDANCiNkZWZpbmUgVFhfVU5ERVJSVU4J CTB4MDIwMA0KI2RlZmluZSBSWF9NSVNTCQkJMHgwNDAwDQojZGVmaW5lIFJY XzEyOF9CWVRFCQkweDA4MDANCiNkZWZpbmUgVFhfQ09MX09WUkZMVwkJMHgx MDAwDQojZGVmaW5lIFJYX01JU1NfT1ZSRkxXCQkweDIwMDANCiNkZWZpbmUg UlhfREVTVF9NQVRDSAkJMHg4MDAwDQoNCi8qDQogKiBQUF9MaW5lU1QgLSBF dGhlcm5ldCBMaW5lIFN0YXR1cyBiaXQgZGVmaW5pdGlvbiAtIFJlYWQtb25s eQ0KICovDQojZGVmaW5lIExJTktfT0sJCQkweDAwODANCiNkZWZpbmUgQVVJ X09OCQkJMHgwMTAwDQojZGVmaW5lIFRFTkJBU0VUX09OCQkweDAyMDANCiNk ZWZpbmUgUE9MQVJJVFlfT0sJCTB4MTAwMA0KI2RlZmluZSBDUlNfT0sJCQkw eDQwMDANCg0KLyoNCiAqIFBQX1NlbGZTVCAtIENoaXAgU29mdHdhcmUgU3Rh dHVzIGJpdCBkZWZpbml0aW9uDQogKi8NCiNkZWZpbmUgQUNUSVZFXzMzVgkJ MHgwMDQwDQojZGVmaW5lIElOSVRfRE9ORQkJMHgwMDgwDQojZGVmaW5lIFNJ X0JVU1kJCQkweDAxMDANCiNkZWZpbmUgRUVQUk9NX1BSRVNFTlQJCTB4MDIw MA0KI2RlZmluZSBFRVBST01fT0sJCTB4MDQwMA0KI2RlZmluZSBFTF9QUkVT RU5UCQkweDA4MDANCiNkZWZpbmUgRUVfU0laRV82NAkJMHgxMDAwDQoNCi8q DQogKiBQUF9CdXNTVCAtIElTQSBCdXMgU3RhdHVzIGJpdCBkZWZpbml0aW9u DQogKi8NCiNkZWZpbmUgVFhfQklEX0VSUk9SCQkweDAwODANCiNkZWZpbmUg UkVBRFlfRk9SX1RYX05PVwkweDAxMDANCg0KLyoNCiAqIFBQX0F1dG9OZWdD VEwgLSBBdXRvIE5lZ290aWF0aW9uIENvbnRyb2wgYml0IGRlZmluaXRpb24N CiAqLw0KI2RlZmluZSBSRV9ORUdfTk9XCQkweDAwNDANCiNkZWZpbmUgQUxM T1dfRkRYCQkweDAwODANCiNkZWZpbmUgQVVUT19ORUdfRU5BQkxFCQkweDAx MDANCiNkZWZpbmUgTkxQX0VOQUJMRQkJMHgwMjAwDQojZGVmaW5lIEZPUkNF X0ZEWAkJMHg4MDAwDQojZGVmaW5lIEFVVE9fTkVHX0JJVFMJCShGT1JDRV9G RFggfCBOTFBfRU5BQkxFIHwgQVVUT19ORUdfRU5BQkxFKQ0KI2RlZmluZSBB VVRPX05FR19NQVNLCQkoRk9SQ0VfRkRYIHwgTkxQX0VOQUJMRSB8IEFVVE9f TkVHX0VOQUJMRSB8IFwNCgkJCQkgQUxMT1dfRkRYIHwgUkVfTkVHX05PVykN Cg0KLyoNCiAqIFBQX0F1dG9OZWdTVCAtIEF1dG8gTmVnb3RpYXRpb24gU3Rh dHVzIGJpdCBkZWZpbml0aW9uDQogKi8NCiNkZWZpbmUgQVVUT19ORUdfQlVT WQkJMHgwMDgwDQojZGVmaW5lIEZMUF9MSU5LCQkweDAxMDANCiNkZWZpbmUg RkxQX0xJTktfR09PRAkJMHgwODAwDQojZGVmaW5lIExJTktfRkFVTFQJCTB4 MTAwMA0KI2RlZmluZSBIRFhfQUNUSVZFCQkweDQwMDANCiNkZWZpbmUgRkRY X0FDVElWRQkJMHg4MDAwDQoNCi8qDQogKiBUaGUgZm9sbG93aW5nIGJsb2Nr IGRlZmluZXMgdGhlIElTUSBldmVudCB0eXBlcw0KICovDQojZGVmaW5lIElT UV9SRUNFSVZFUl9FVkVOVAkweDA0DQojZGVmaW5lIElTUV9UUkFOU01JVFRF Ul9FVkVOVAkweDA4DQojZGVmaW5lIElTUV9CVUZGRVJfRVZFTlQJMHgwYw0K I2RlZmluZSBJU1FfUlhfTUlTU19FVkVOVAkweDEwDQojZGVmaW5lIElTUV9U WF9DT0xfRVZFTlQJMHgxMg0KDQojZGVmaW5lIElTUV9FVkVOVF9NQVNLCQkw eDAwM0YJLyogSVNRIG1hc2sgdG8gZmluZCBvdXQgdHlwZSBvZiBldmVudCAq Lw0KI2RlZmluZSBJU1FfSElTVAkJMTYJLyogc21hbGwgaGlzdG9yeSBidWZm ZXIgKi8NCiNkZWZpbmUgQVVUT0lOQ1JFTUVOVAkJMHg4MDAwCS8qIEJpdCBt YXNrIHRvIHNldCBiaXQtMTUgZm9yIGF1dG9pbmNyZW1lbnQgKi8NCg0KI2Rl ZmluZSBUWFJYQlVGU0laRQkJMHgwNjAwDQojZGVmaW5lIFJYRE1BQlVGU0la RQkJMHg4MDAwDQojZGVmaW5lIFJYRE1BU0laRQkJMHg0MDAwDQojZGVmaW5l IFRYUlhfTEVOR1RIX01BU0sJMHgwN0ZGDQoNCi8qICByeCBvcHRpb25zIGJp dHMgKi8NCiNkZWZpbmUgUkNWX1dJVEhfUlhPTgkJMSAgICAgICAvKiAgU2V0 IFNlclJ4IE9OICovDQojZGVmaW5lIFJDVl9DT1VOVFMJCTIgICAgICAgLyog IFVzZSBGcmFtZWNudDEgKi8NCiNkZWZpbmUgUkNWX1BPTkcJCTQgICAgICAg LyogIFBvbmcgcmVzcG9uZGVudCAqLw0KI2RlZmluZSBSQ1ZfRE9ORwkJOCAg ICAgICAvKiAgRG9uZyBvcGVyYXRpb24gKi8NCiNkZWZpbmUgUkNWX1BPTExJ TkcJCTB4MTAJLyogIFBvbGwgUnhFdmVudCAqLw0KI2RlZmluZSBSQ1ZfSVNR CQkJMHgyMAkvKiAgVXNlIElTUSwgaW50ICovDQojZGVmaW5lIFJDVl9BVVRP X0RNQQkJMHgxMDAJLyogIFNldCBBdXRvUnhETUFFICovDQojZGVmaW5lIFJD Vl9ETUEJCQkweDIwMAkvKiAgU2V0IFJ4RE1BIG9ubHkgKi8NCiNkZWZpbmUg UkNWX0RNQV9BTEwJCTB4NDAwCS8qICBDb3B5IGFsbCBETUEnZWQgKi8NCiNk ZWZpbmUgUkNWX0ZJWEVEX0RBVEEJCTB4ODAwCS8qICBFdmVyeSBmcmFtZSBz YW1lICovDQojZGVmaW5lIFJDVl9JTwkJCTB4MTAwMAkvKiAgVXNlIElTQSBJ TyBvbmx5ICovDQojZGVmaW5lIFJDVl9NRU1PUlkJCTB4MjAwMAkvKiAgVXNl IElTQSBNZW1vcnkgKi8NCg0KI2RlZmluZSBSQU1fU0laRQkJMHgxMDAwICAg ICAgLyogIFRoZSBjYXJkIGhhcyA0ayBieXRlcyBvciBSQU0gKi8NCiNkZWZp bmUgUEtUX1NUQVJUCQlQUF9UeEZyYW1lICAvKiAgU3RhcnQgb2YgcGFja2V0 IFJBTSAqLw0KDQojZGVmaW5lIFJYX0ZSQU1FX1BPUlQJCTB4MDAwMA0KI2Rl ZmluZSBUWF9GUkFNRV9QT1JUCQlSWF9GUkFNRV9QT1JUDQojZGVmaW5lIFRY X0NNRF9QT1JUCQkweDAwMDQNCiNkZWZpbmUgVFhfTk9XCQkJMHgwMDAwICAv KiBUeCBwYWNrZXQgYWZ0ZXIgICA1IGJ5dGVzIGNvcGllZCAqLw0KI2RlZmlu ZSBUWF9BRlRFUl8zODEJCTB4MDAyMCAgLyogVHggcGFja2V0IGFmdGVyIDM4 MSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQUZURVJfQUxMCQkweDAw NjAgIC8qIFR4IHBhY2tldCBhZnRlciBhbGwgYnl0ZXMgY29waWVkICovDQoj ZGVmaW5lIFRYX0NTODkyMF9OT1cJCTB4MDAwMCAgLyogVHggcGFja2V0IGFm dGVyICAgNSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQ1M4OTIwX0FG VEVSXzM4MQkweDAwNDAgIC8qIFR4IHBhY2tldCBhZnRlciAzODEgYnl0ZXMg Y29waWVkICovDQojZGVmaW5lIFRYX0NTODkyMF9BRlRFUl8xMDIxCTB4MDA4 MCAgLyogVHggcGFja2V0IGFmdGVyMTAyMSBieXRlcyBjb3BpZWQgKi8NCiNk ZWZpbmUgVFhfQ1M4OTIwX0FGVEVSX0FMTAkweDAwQzAgIC8qIFR4IHBhY2tl dCBhZnRlciBhbGwgYnl0ZXMgY29waWVkICovDQojZGVmaW5lIFRYX0xFTl9Q T1JUCQkweDAwMDYNCiNkZWZpbmUgSVNRX1BPUlQJCTB4MDAwOA0KI2RlZmlu ZSBBRERfUE9SVAkJMHgwMDBBDQojZGVmaW5lIERBVEFfUE9SVAkJMHgwMDBD DQoNCiNkZWZpbmUgRUVQUk9NX1dSSVRFX0VOCQkweDAwRjANCiNkZWZpbmUg RUVQUk9NX1dSSVRFX0RJUwkweDAwMDANCiNkZWZpbmUgRUVQUk9NX1dSSVRF X0NNRAkweDAxMDANCiNkZWZpbmUgRUVQUk9NX1JFQURfQ01ECQkweDAyMDAN Cg0KLyogIFJlY2VpdmUgSGVhZGVyDQogKiAgRGVzY3JpcHRpb24gb2YgaGVh ZGVyIG9mIGVhY2ggcGFja2V0IGluIHJlY2VpdmUgYXJlYSBvZiBtZW1vcnkN CiAqLw0KI2RlZmluZSBSQlVGX0VWRU5UX0xPVwkwICAvKiBMb3cgYnl0ZSBv ZiBSeEV2ZW50IC0gc3RhdHVzIG9mIHJlY2VpdmVkIGZyYW1lICovDQojZGVm aW5lIFJCVUZfRVZFTlRfSElHSAkxICAvKiBIaWdoIGJ5dGUgb2YgUnhFdmVu dCAtIHN0YXR1cyBvZiByZWNlaXZlZCBmcmFtZSAqLw0KI2RlZmluZSBSQlVG X0xFTl9MT1cJMiAgLyogTGVuZ3RoIG9mIHJlY2VpdmVkIGRhdGEgLSBsb3cg Ynl0ZSAqLw0KI2RlZmluZSBSQlVGX0xFTl9ISQkzICAvKiBMZW5ndGggb2Yg cmVjZWl2ZWQgZGF0YSAtIGhpZ2ggYnl0ZSAqLw0KI2RlZmluZSBSQlVGX0hF QURfTEVOCTQgIC8qIExlbmd0aCBvZiB0aGlzIGhlYWRlciAqLw0KDQojZGVm aW5lIENISVBfUkVBRCAweDEgIC8qIFVzZWQgdG8gbWFyayBzdGF0ZSBvZiB0 aGUgcmVwaW5zIGNvZGUgKGNoaXAgb3IgZG1hKSAqLw0KI2RlZmluZSBETUFf UkVBRCAgMHgyICAvKiBVc2VkIHRvIG1hcmsgc3RhdGUgb2YgdGhlIHJlcGlu cyBjb2RlIChjaGlwIG9yIGRtYSkgKi8NCg0KLyogIGZvciBiaW9zIHNjYW4g Ki8NCi8qICAqLw0KI2lmZGVmIENTREVCVUcNCi8qICB1c2UgdGhlc2UgdmFs dWVzIGZvciBkZWJ1Z2dpbmcgYmlvcyBzY2FuICovDQojZGVmaW5lIEJJT1Nf U1RBUlRfU0VHCQkweDAwMDAwDQojZGVmaW5lIEJJT1NfT0ZGU0VUX0lOQwkJ MHgwMDEwDQojZWxzZQ0KI2RlZmluZSBCSU9TX1NUQVJUX1NFRwkJMHgwYzAw MA0KI2RlZmluZSBCSU9TX09GRlNFVF9JTkMJCTB4MDIwMA0KI2VuZGlmDQoN CiNkZWZpbmUgQklPU19MQVNUX09GRlNFVAkweDBmYzAwDQoNCi8qDQogKiAg Qnl0ZSBvZmZzZXRzIGludG8gdGhlIEVFUFJPTSBjb25maWd1cmF0aW9uIGJ1 ZmZlcg0KICovDQojZGVmaW5lIElTQV9DTkZfT0ZGU0VUCQkweDYNCiNkZWZp bmUgVFhfQ1RMX09GRlNFVAkJKElTQV9DTkZfT0ZGU0VUICsgOCkJLyogIDg5 MDAgZWVwcm9tICovDQojZGVmaW5lIEFVVE9fTkVHX0NORl9PRkZTRVQJKElT QV9DTkZfT0ZGU0VUICsgOCkJLyogIDg5MjAgZWVwcm9tICovDQoNCi8qDQog KiAgdGhlIGFzc3VtcHRpb24gaGVyZSBpcyB0aGF0IHRoZSBiaXRzIGluIHRo ZSBlZXByb20gYXJlIGdlbmVyYWxseSANCiAqICBpbiB0aGUgc2FtZSBwb3Np dGlvbiBhcyB0aG9zZSBpbiB0aGUgYXV0b25lZ2N0bCByZWdpc3Rlci4gDQog KiAgT2YgY291cnNlIHRoZSBJTU0gYml0IGlzIG5vdCBpbiB0aGF0IHJlZ2lz dGVyIHNvIGl0IG11c3QgYmUgDQogKiAgbWFza2VkIG91dA0KICovDQojZGVm aW5lIEVFX0ZPUkNFX0ZEWAkJMHg4MDAwDQojZGVmaW5lIEVFX05MUF9FTkFC TEUJCTB4MDIwMA0KI2RlZmluZSBFRV9BVVRPX05FR19FTkFCTEUJMHgwMTAw DQojZGVmaW5lIEVFX0FMTE9XX0ZEWAkJMHgwMDgwDQojZGVmaW5lIEVFX0FV VE9fTkVHX0NORl9NQVNLCShFRV9GT1JDRV9GRFggfCBFRV9OTFBfRU5BQkxF IHwgCVwNCgkJCQkgRUVfQVVUT19ORUdfRU5BQkxFIHwgRUVfQUxMT1dfRkRY KQ0KDQojZGVmaW5lIElNTV9CSVQJCQkweDAwNDAJLyogIGlnbm9yZSBtaXNz aW5nIG1lZGlhCSAqLw0KDQojZGVmaW5lIEFEQVBURVJfQ05GX09GRlNFVAko QVVUT19ORUdfQ05GX09GRlNFVCArIDIpDQojZGVmaW5lIEFfQ05GXzEwQl9U CQkweDAwMDENCiNkZWZpbmUgQV9DTkZfQVVJCQkweDAwMDINCiNkZWZpbmUg QV9DTkZfMTBCXzIJCTB4MDAwNA0KI2RlZmluZSBBX0NORl9NRURJQV9UWVBF CTB4MDA2MA0KI2RlZmluZSBBX0NORl9NRURJQV9BVVRPCTB4MDAwMA0KI2Rl ZmluZSBBX0NORl9NRURJQV8xMEJfVAkweDAwMjANCiNkZWZpbmUgQV9DTkZf TUVESUFfQVVJCQkweDAwNDANCiNkZWZpbmUgQV9DTkZfTUVESUFfMTBCXzIJ MHgwMDYwDQojZGVmaW5lIEFfQ05GX0RDX0RDX1BPTEFSSVRZCTB4MDA4MA0K I2RlZmluZSBBX0NORl9OT19BVVRPX1BPTEFSSVRZCTB4MjAwMA0KI2RlZmlu ZSBBX0NORl9MT1dfUlhfU1FVRUxDSAkweDQwMDANCiNkZWZpbmUgQV9DTkZf RVhUTkRfMTBCXzIJMHg4MDAwDQoNCiNkZWZpbmUgUEFDS0VUX1BBR0VfT0ZG U0VUCTB4OA0KDQovKg0KICogIEJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIElT QSBjb25maWd1cmF0aW9uIHdvcmQgZnJvbSB0aGUgRUVQUk9NDQogKi8NCiNk ZWZpbmUgSU5UX05PX01BU0sJCTB4MDAwRg0KI2RlZmluZSBETUFfTk9fTUFT SwkJMHgwMDcwDQojZGVmaW5lIElTQV9ETUFfU0laRQkJMHgwMjAwDQojZGVm aW5lIElTQV9BVVRPX1J4RE1BCQkweDA0MDANCiNkZWZpbmUgSVNBX1J4RE1B CQkweDA4MDANCiNkZWZpbmUgRE1BX0JVUlNUCQkweDEwMDANCiNkZWZpbmUg U1RSRUFNX1RSQU5TRkVSCQkweDIwMDANCiNkZWZpbmUgQU5ZX0lTQV9ETUEJ CShJU0FfQVVUT19SeERNQSB8IElTQV9SeERNQSkNCg0KLyogIERNQSBjb250 cm9sbGVyIHJlZ2lzdGVycyAqLw0KI2RlZmluZSBETUFfQkFTRQkJMHgwMCAg IC8qIERNQSBjb250cm9sbGVyIGJhc2UgKi8NCiNkZWZpbmUgRE1BX0JBU0Vf MgkJMHgwQzAgIC8qIERNQSBjb250cm9sbGVyIGJhc2UgKi8NCg0KI2RlZmlu ZSBETUFfU1RBVAkJMHgwRDAgIC8qIERNQSBjb250cm9sbGVyIHN0YXR1cyBy ZWdpc3RlciAqLw0KI2RlZmluZSBETUFfTUFTSwkJMHgwRDQgIC8qIERNQSBj b250cm9sbGVyIG1hc2sgcmVnaXN0ZXIgKi8NCiNkZWZpbmUgRE1BX01PREUJ CTB4MEQ2ICAvKiBETUEgY29udHJvbGxlciBtb2RlIHJlZ2lzdGVyICovDQoj ZGVmaW5lIERNQV9SRVNFVEZGCQkweDBEOCAgLyogRE1BIGNvbnRyb2xsZXIg Zmlyc3QvbGFzdCBmbGlwIGZsb3AgKi8NCg0KLyogIERNQSBkYXRhICovDQoj ZGVmaW5lIERNQV9ESVNBQkxFCQkweDA0ICAgLyogIERpc2FibGUgY2hhbm5l bCBuICovDQojZGVmaW5lIERNQV9FTkFCTEUJCTB4MDAgICAvKiAgRW5hYmxl IGNoYW5uZWwgbiAqLw0KLyogIERlbWFuZCB0cmFuc2ZlcnMsIGluY3IuIGFk ZHJlc3MsIGF1dG8gaW5pdCwgd3JpdGVzLCBjaC4gbiAqLw0KI2RlZmluZSBE TUFfUlhfTU9ERQkJMHgxNA0KLyogIERlbWFuZCB0cmFuc2ZlcnMsIGluY3Iu IGFkZHJlc3MsIGF1dG8gaW5pdCwgcmVhZHMsIGNoLiBuICovDQojZGVmaW5l IERNQV9UWF9NT0RFCQkweDE4DQoNCiNkZWZpbmUgRE1BX1NJWkUJCSgxNiox MDI0KQkvKiBTaXplIG9mIGRtYSBidWZmZXIgLSAxNmsgKi8NCg0KI2RlZmlu ZSBDUzg5MDAJCQkweDAwMDANCiNkZWZpbmUgQ1M4OTIwCQkJMHg0MDAwICAg DQojZGVmaW5lIENTODkyME0JCQkweDYwMDAgICANCiNkZWZpbmUgUkVWSVNP Tl9CSVRTCQkweDFGMDANCiNkZWZpbmUgRUVWRVJfTlVNQkVSCQkweDEyDQoj ZGVmaW5lIENIS1NVTV9MRU4JCTB4MTQNCiNkZWZpbmUgQ0hLU1VNX1ZBTAkJ MHgwMDAwDQojZGVmaW5lIFNUQVJUX0VFUFJPTV9EQVRBCTB4MDAxYyAvKiBP ZmZzZXQgaW50byBlZXByb20gZm9yIHN0YXJ0IG9mIGRhdGEgKi8NCiNkZWZp bmUgSVJRX01BUF9FRVBST01fREFUQQkweDAwNDYgLyogT2Zmc2V0IGludG8g ZWVwcm9tIGZvciB0aGUgSVJRIG1hcCAqLw0KI2RlZmluZSBJUlFfTUFQX0xF TgkJMHgwMDA0IC8qIE5vIG9mIGJ5dGVzIHRvIHJlYWQgZm9yIHRoZSBJUlEg bWFwICovDQojZGVmaW5lIFBOUF9JUlFfRlJNVAkJMHgwMDIyIC8qIFBOUCBz bWFsbCBpdGVtIElSUSBmb3JtYXQgKi8NCiNkZWZpbmUgQ1M4OTAwX0lSUV9N QVAJCTB4MWMyMCAvKiBUaGlzIElSUSBtYXAgaXMgZml4ZWQgKi8NCg0KI2Rl ZmluZSBDUzg5MjBfTk9fSU5UUwkJMHgwRiAgIC8qICBNYXggQ1M4OTIwIGlu dGVycnVwdCBzZWxlY3QgIyAqLw0KDQojZGVmaW5lIFBOUF9BRERfUE9SVAkJ MHgwMjc5DQojZGVmaW5lIFBOUF9XUklURV9QT1JUCQkweDBBNzkNCg0KI2Rl ZmluZSBHRVRfUE5QX0lTQV9TVFJVQ1QJMHg0MA0KI2RlZmluZSBQTlBfSVNB X1NUUlVDVF9MRU4JMHgwNg0KI2RlZmluZSBQTlBfQ1NOX0NOVF9PRkYJCTB4 MDENCiNkZWZpbmUgUE5QX1JEX1BPUlRfT0ZGCQkweDAyDQojZGVmaW5lIFBO UF9GVU5DVElPTl9PSwkJMHgwMA0KI2RlZmluZSBQTlBfV0FLRQkJMHgwMw0K I2RlZmluZSBQTlBfUlNSQ19EQVRBCQkweDA0DQojZGVmaW5lIFBOUF9SU1JD X1JFQURZCQkweDAxDQojZGVmaW5lIFBOUF9TVEFUVVMJCTB4MDUNCiNkZWZp bmUgUE5QX0FDVElWQVRFCQkweDMwDQojZGVmaW5lIFBOUF9DTkZfSU9fSAkJ MHg2MA0KI2RlZmluZSBQTlBfQ05GX0lPX0wJCTB4NjENCiNkZWZpbmUgUE5Q X0NORl9JTlQJCTB4NzANCiNkZWZpbmUgUE5QX0NORl9ETUEJCTB4NzQNCiNk ZWZpbmUgUE5QX0NORl9NRU0JCTB4NDgNCg0KI2RlZmluZSBCSVQwCQkJMQ0K I2RlZmluZSBCSVQxNQkJCTB4ODAwMA0KDQovKiBEZXZpY2UgbmFtZSAqLw0K I2RlZmluZSBDU19OQU1FCQkJImNzIg0KDQojZGVmaW5lIGNzX3JlYWRyZWco aW9iYXNlLCBwb3J0bm8pIFwNCgkob3V0dygoaW9iYXNlKSArIEFERF9QT1JU LCAocG9ydG5vKSksIFwNCglpbncoKGlvYmFzZSkgKyBEQVRBX1BPUlQpKQ0K I2RlZmluZSBjc193cml0ZXJlZyhpb2Jhc2UsIHBvcnRubywgdmFsdWUpIFwN Cgkob3V0dygoaW9iYXNlKSArIEFERF9QT1JULCAocG9ydG5vKSksIFwNCglv dXR3KChpb2Jhc2UpICsgREFUQV9QT1JULCAodmFsdWUpKSkNCiNkZWZpbmUg Y3NfcmVhZHdvcmQoaW9iYXNlLCBwb3J0bm8pIFwNCgkoaW53KChpb2Jhc2Up ICsgKHBvcnRubykpKQ0KI2RlZmluZSBjc193cml0ZXdvcmQoaW9iYXNlLCBw b3J0bm8sIHZhbHVlKSBcDQoJKG91dHcoKGlvYmFzZSkgKyAocG9ydG5vKSwg KHZhbHVlKSkpDQoNCiNkZWZpbmUgcmVzZXRfY2hpcChuaWNfYWRkcikgXA0K CWNzX3dyaXRlcmVnKG5pY19hZGRyLCBQUF9TZWxmQ1RMLCBjc19yZWFkcmVn KGlvYWRkciwgUFBfU2VsZkNUTCkgfCBQT1dFUl9PTl9SRVNFVCksIFwNCglE RUxBWSgzMDAwMCkNCg== --0-899763362-894389391=:8507-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980505212502.8507B-300000>