Date: Tue, 14 Mar 2000 11:46:17 +0300 (MSK) From: Maxim Bolotin <max@rsu.ru> To: freebsd-current@FreeBSD.ORG Subject: cs89x0 driver update (fwd) Message-ID: <Pine.BSF.4.10.10003141143290.29420-300000@altos.rnd.runnet.ru>
next 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-1106502712-952877046=:96199 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: <Pine.BSF.4.10.10003141143292.29420@altos.rnd.runnet.ru> Hi, We found that our driver doesn't work with PNP in 4.0 and use old, shared memory softc scheme. We rewrite it for the new scheme, now We can install it in dev/cs and remove isa_compat.c lines. I belive we have to commit it before 4.0 release. Regards, Max. - Rostov State University Computer Center Rostov-on-Don, +7 (8632) 285794 or 357476 Russia, RUNNet, MAB1-RIPE max@rsu.ru --0-1106502712-952877046=:96199 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="if_cs.c" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.BSF.4.10.10003121904060.96199@altos.rnd.runnet.ru> Content-Description: sys/dev/cs/if_cs.c Content-Disposition: ATTACHMENT; FILENAME="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 IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRGcmVl QlNEOiBzcmMvc3lzL2kzODYvaXNhL2lmX2NzLmMsdiAxLjE0IDE5OTkvMDkv MjUgMTI6MDU6NTIgcGhrIEV4cCAkDQogKg0KICogRGV2aWNlIGRyaXZlciBm b3IgQ3J5c3RhbCBTZW1pY29uZHVjdG9yIENTODkyMCBiYXNlZCBldGhlcm5l dA0KICogICBhZGFwdGVycy4gQnkgTWF4aW0gQm9sb3RpbiBhbmQgT2xlZyBT aGFyb2lrbywgMjctQXByaWwtMTk5Nw0KICovDQoNCi8qDQojZGVmaW5lCSBD U19ERUJVRyANCiAqLw0KDQojaW5jbHVkZSA8c3lzL3BhcmFtLmg+DQojaW5j bHVkZSA8c3lzL3N5c3RtLmg+DQojaW5jbHVkZSA8c3lzL21hbGxvYy5oPg0K I2luY2x1ZGUgPHN5cy9tYnVmLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5o Pg0KI2luY2x1ZGUgPHN5cy9zb2NraW8uaD4NCiNpbmNsdWRlIDxzeXMva2Vy bmVsLmg+DQojaW5jbHVkZSA8c3lzL3N5c2N0bC5oPg0KI2luY2x1ZGUgPHN5 cy9zeXNsb2cuaD4NCg0KI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4NCiNpbmNs dWRlIDxzeXMvYnVzLmg+DQojaW5jbHVkZSA8bWFjaGluZS9idXMuaD4NCiNp bmNsdWRlIDxzeXMvcm1hbi5oPg0KI2luY2x1ZGUgPG1hY2hpbmUvcmVzb3Vy Y2UuaD4NCg0KI2luY2x1ZGUgPG5ldC9pZi5oPg0KI2luY2x1ZGUgPG5ldC9p Zl9hcnAuaD4NCiNpbmNsdWRlIDxuZXQvaWZfbWVkaWEuaD4NCiNpbmNsdWRl IDxuZXQvZXRoZXJuZXQuaD4NCg0KI2luY2x1ZGUgPG5ldC9icGYuaD4NCg0K I2luY2x1ZGUgPGlzYS9pc2F2YXIuaD4NCg0KI2lmZGVmIEJSSURHRQ0KI2lu Y2x1ZGUgPG5ldC9icmlkZ2UuaD4NCiNlbmRpZg0KDQojaW5jbHVkZSA8bWFj aGluZS9jbG9jay5oPg0KDQojaW5jbHVkZSA8ZGV2L2NzL2lmX2NzcmVnLmg+ DQoNCiNpZmRlZiAgQ1NfVVNFXzY0S19ETUENCiNkZWZpbmUgQ1NfRE1BX0JV RkZFUl9TSVpFIDY1NTM2DQojZWxzZQ0KI2RlZmluZSBDU19ETUFfQlVGRkVS X1NJWkUgMTYzODQNCiNlbmRpZg0KDQovKg0KICogY3Nfc29mdGM6IHBlciBs aW5lIGluZm8gYW5kIHN0YXR1cw0KICovDQpzdHJ1Y3QgY3Nfc29mdGMgew0K DQogICAgICAgIC8qIEV0aGVybmV0IGNvbW1vbiBjb2RlICovDQogICAgICAg IHN0cnVjdCBhcnBjb20gYXJwY29tOw0KDQogICAgICAgIC8qIENvbmZpZ3Vy YXRpb24gd29yZHMgZnJvbSBFRVBST00gKi8NCiAgICAgICAgaW50IGF1dG9f bmVnX2NuZjsgICAgICAgICAgICAgICAvKiBBdXRvTmVnb3RpdGF0aW9uIGNv bmZpZ3VyYXRpb24gKi8NCglpbnQgYWRhcHRlcl9jbmY7ICAgICAgICAgICAg ICAgIC8qIEFkYXB0ZXIgY29uZmlndXJhdGlvbiAqLw0KICAgICAgICBpbnQg aXNhX2NvbmZpZzsgICAgICAgICAgICAgICAgIC8qIElTQSBjb25maWd1cmF0 aW9uICovDQogICAgICAgIGludCBjaGlwX3R5cGU7CQkJLyogVHlwZSBvZiBj aGlwICovDQoNCiAgICAgICAgc3RydWN0IGlmbWVkaWEgbWVkaWE7CQkvKiBN ZWRpYSBpbmZvcm1hdGlvbiAqLw0KDQoJaW50ICAgICBwb3J0X3JpZDsJCS8q IHJlc291cmNlIGlkIGZvciBwb3J0IHJhbmdlICovDQoJaW50ICAgICBwb3J0 X3VzZWQ7CQkvKiBub256ZXJvIGlmIHBvcnRzIHVzZWQgKi8NCglzdHJ1Y3Qg cmVzb3VyY2UqIHBvcnRfcmVzOwkvKiByZXNvdXJjZSBmb3IgcG9ydCByYW5n ZSAqLw0KCWludCAgICAgbWVtX3JpZDsgIAkJLyogcmVzb3VyY2UgaWQgZm9y IG1lbW9yeSByYW5nZSAqLw0KICAgICAgICBpbnQgICAgIG1lbV91c2VkOyAg CQkvKiBub256ZXJvIGlmIG1lbW9yeSB1c2VkICovDQoJc3RydWN0IHJlc291 cmNlKiBtZW1fcmVzOwkvKiByZXNvdXJjZSBmb3IgbWVtb3J5IHJhbmdlICov DQogICAgICAgIGludCAgICAgaXJxX3JpZDsJCS8qIHJlc291cmNlIGlkIGZv ciBpcnEgKi8NCiAgICAgICAgc3RydWN0IHJlc291cmNlKiBpcnFfcmVzOwkv KiByZXNvdXJjZSBmb3IgaXJxICovDQogICAgICAgIHZvaWQqICAgaXJxX2hh bmRsZTsJCS8qIGhhbmRsZSBmb3IgaXJxIGhhbmRsZXIgKi8NCg0KICAgICAg ICBpbnQgCW5pY19hZGRyOyAJCS8qIEJhc2UgSU8gYWRkcmVzcyBvZiBjYXJk ICovDQoJaW50CXNlbmRfY21kOw0KICAgICAgICBpbnQJbGluZV9jdGw7CQkv KiAqLw0KICAgICAgICBpbnQJc2VuZF91bmRlcnJ1bjsNCiAgICAgICAgdm9p ZAkqcmVjdl9yaW5nOw0KDQogICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZmZl cjsNCiAgICAgICAgaW50IGJ1Zl9sZW47DQp9Ow0KDQpzdGF0aWMgaW50CWNz X3JlY3ZfZGVsYXkgPSA1NzA7DQpTWVNDVExfSU5UKF9tYWNoZGVwLCBPSURf QVVUTywgY3NfcmVjdl9kZWxheSwgQ1RMRkxBR19SVywgJmNzX3JlY3ZfZGVs YXksIDAsICIiKTsNCg0Kc3RhdGljIGludAljc19pc2FfcHJvYmUJCV9fUCgo ZGV2aWNlX3QgZGV2KSk7DQpzdGF0aWMgaW50CWNzX2lzYV9hdHRhY2gJCV9f UCgoZGV2aWNlX3QgZGV2KSk7DQoNCnN0YXRpYyBpbnQJY3NfY3M4OXgwX3By b2JlCQlfX1AoKGRldmljZV90IGRldikpOw0KDQpkcml2ZXJfaW50cl90CWNz aW50cjsNCg0Kc3RhdGljIGludAljc19hdHRhY2gJCV9fUCgoc3RydWN0IGNz X3NvZnRjICosIGludCwgaW50KSk7DQoNCnN0YXRpYyB2b2lkCWNzX2luaXQJ CQlfX1AoKHZvaWQgKikpOw0Kc3RhdGljIGludAljc19pb2N0bAkJX19QKChz dHJ1Y3QgaWZuZXQgKiwgdV9sb25nLCBjYWRkcl90KSk7DQpzdGF0aWMgdm9p ZAljc19zdGFydAkJX19QKChzdHJ1Y3QgaWZuZXQgKikpOw0Kc3RhdGljIHZv aWQJY3Nfc3RvcAkJCV9fUCgoc3RydWN0IGNzX3NvZnRjICopKTsNCnN0YXRp YyB2b2lkCWNzX3Jlc2V0CQlfX1AoKHN0cnVjdCBjc19zb2Z0YyAqKSk7DQpz dGF0aWMgdm9pZAljc193YXRjaGRvZwkJX19QKChzdHJ1Y3QgaWZuZXQgKikp Ow0KDQpzdGF0aWMgaW50CWNzX2FsbG9jX3BvcnQoZGV2aWNlX3QgZGV2LCBp bnQgcmlkLCBpbnQgc2l6ZSk7DQpzdGF0aWMgaW50CWNzX2FsbG9jX21lbW9y eShkZXZpY2VfdCBkZXYsIGludCByaWQsIGludCBzaXplKTsNCnN0YXRpYyBp bnQJY3NfYWxsb2NfaXJxKGRldmljZV90IGRldiwgaW50IHJpZCwgaW50IGZs YWdzKTsNCnN0YXRpYyB2b2lkCWNzX3JlbGVhc2VfcmVzb3VyY2VzKGRldmlj ZV90IGRldik7DQoNCnN0YXRpYyBpbnQJY3NfbWVkaWFjaGFuZ2UJX19QKChz dHJ1Y3QgaWZuZXQgKikpOw0Kc3RhdGljIHZvaWQJY3NfbWVkaWFzdGF0dXMJ X19QKChzdHJ1Y3QgaWZuZXQgKiwgc3RydWN0IGlmbWVkaWFyZXEgKikpOw0K c3RhdGljIGludCAgICAgIGNzX21lZGlhc2V0CV9fUCgoc3RydWN0IGNzX3Nv ZnRjICosIGludCkpOw0KDQpzdGF0aWMgdm9pZAljc193cml0ZV9tYnVmcyhz dHJ1Y3QgY3Nfc29mdGMqLCBzdHJ1Y3QgbWJ1ZiopOw0Kc3RhdGljIHZvaWQJ Y3NfeG1pdF9idWYoc3RydWN0IGNzX3NvZnRjKik7DQpzdGF0aWMgaW50CWNz X2dldF9wYWNrZXQoc3RydWN0IGNzX3NvZnRjKik7DQpzdGF0aWMgdm9pZAlj c19zZXRtb2RlKHN0cnVjdCBjc19zb2Z0YyopOw0KDQpzdGF0aWMgaW50CWdl dF9lZXByb21fZGF0YShzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQsIGludCwg aW50ICopOw0Kc3RhdGljIGludAlnZXRfZWVwcm9tX2Nrc3VtKGludCwgaW50 LCBpbnQgKik7DQpzdGF0aWMgaW50CXdhaXRfZWVwcm9tX3JlYWR5KCBzdHJ1 Y3QgY3Nfc29mdGMgKik7DQpzdGF0aWMgdm9pZAljb250cm9sX2RjX2RjKCBz dHJ1Y3QgY3Nfc29mdGMgKiwgaW50ICk7DQpzdGF0aWMgaW50CXNlbmRfdGVz dF9wa3QoIHN0cnVjdCBjc19zb2Z0YyAqICk7DQpzdGF0aWMgaW50CWVuYWJs ZV90cChzdHJ1Y3QgY3Nfc29mdGMgKik7DQpzdGF0aWMgaW50CWVuYWJsZV9h dWkoc3RydWN0IGNzX3NvZnRjICopOw0Kc3RhdGljIGludAllbmFibGVfYm5j KHN0cnVjdCBjc19zb2Z0YyAqKTsNCnN0YXRpYyBpbnQgICAgICBjc19kdXBs ZXhfYXV0byhzdHJ1Y3QgY3Nfc29mdGMgKik7DQoNCnN0YXRpYyBkZXZpY2Vf bWV0aG9kX3QgY3NfbWV0aG9kc1tdID0gew0KICAgICAgICAvKiBEZXZpY2Ug aW50ZXJmYWNlICovDQogICAgICAgIERFVk1FVEhPRChkZXZpY2VfcHJvYmUs ICAgICAgICAgY3NfaXNhX3Byb2JlKSwNCiAgICAgICAgREVWTUVUSE9EKGRl dmljZV9hdHRhY2gsICAgICAgICBjc19pc2FfYXR0YWNoKSwNCiAgICAgICAg eyAwLCAwIH0NCn07DQoNCnN0YXRpYyBkcml2ZXJfdCBjc19kcml2ZXIgPSB7 DQogICAgICAgICJjcyIsDQogICAgICAgIGNzX21ldGhvZHMsDQogICAgICAg IHNpemVvZihzdHJ1Y3QgY3Nfc29mdGMpDQp9Ow0KDQpzdGF0aWMgZGV2Y2xh c3NfdCBjc19kZXZjbGFzczsNCg0KRFJJVkVSX01PRFVMRShjcywgaXNhLCBj c19kcml2ZXIsIGNzX2RldmNsYXNzLCAwLCAwKTsNCg0Kc3RhdGljIGludA0K Z2V0X2VlcHJvbV9kYXRhKCBzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQgb2Zm LCBpbnQgbGVuLCBpbnQgKmJ1ZmZlcikNCnsNCglpbnQgaTsNCg0KI2lmZGVm IENTX0RFQlVHDQoJcHJpbnRmKENTX05BTUUiOkVFUFJPTSBkYXRhIGZyb20g JXggZm9yICV4OlxuIiwgb2ZmLGxlbik7DQojZW5kaWYNCg0KCWZvciAoaT0w O2k8bGVuO2krKykgew0KCQlpZiAod2FpdF9lZXByb21fcmVhZHkoc2MpIDwg MCkgcmV0dXJuIC0xOw0KCQkvKiBTZW5kIGNvbW1hbmQgdG8gRUVQUk9NIHRv IHJlYWQgKi8NCgkJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9FRUNN RCwgKG9mZitpKXxFRVBST01fUkVBRF9DTUQgKTsNCgkJaWYgKHdhaXRfZWVw cm9tX3JlYWR5KHNjKTwwKQ0KCQkJcmV0dXJuIC0xOw0KCQlidWZmZXJbaV0g PSBjc19yZWFkcmVnIChzYy0+bmljX2FkZHIsIFBQX0VFRGF0YSk7DQoNCiNp ZmRlZiBDU19ERUJVRw0KCQlwcmludGYoIiUwMnggJTAyeCAiLCh1bnNpZ25l ZCBjaGFyKWJ1ZmZlcltpXSwNCgkJCQkJKHVuc2lnbmVkIGNoYXIpYnVmZmVy W2krMV0pOw0KI2VuZGlmDQoJfQ0KDQojaWZkZWYgQ1NfREVCVUcNCglwcmlu dGYoIlxuIik7DQojZW5kaWYNCg0KCXJldHVybiAwOw0KfQ0KDQpzdGF0aWMg aW50DQpnZXRfZWVwcm9tX2Nrc3VtKGludCBvZmYsIGludCBsZW4sIGludCAq YnVmZmVyKQ0Kew0KCWludCBpLGNrc3VtPTA7DQoNCglmb3IgKGk9MDtpPGxl bjtpKyspDQoJCWNrc3VtKz1idWZmZXJbaV07DQoJY2tzdW0gJj0gMHhmZmZm Ow0KCWlmIChja3N1bT09MCkNCgkJcmV0dXJuIDA7DQoJcmV0dXJuIC0xOw0K fQ0KDQpzdGF0aWMgaW50DQp3YWl0X2VlcHJvbV9yZWFkeShzdHJ1Y3QgY3Nf c29mdGMgKnNjKQ0Kew0KCURFTEFZICggMzAwMDAgKTsJLyogWFhYIHNob3Vs ZCB3ZSBkbyBzb21lIGNoZWNrcyBoZXJlID8gKi8NCglyZXR1cm4gMDsNCn0N Cg0Kc3RhdGljIHZvaWQNCmNvbnRyb2xfZGNfZGMoc3RydWN0IGNzX3NvZnRj ICpzYywgaW50IG9uX25vdF9vZmYpDQp7DQoJdW5zaWduZWQgaW50IHNlbGZf Y29udHJvbCA9IEhDQjFfRU5CTDsNCg0KCWlmICgoKHNjLT5hZGFwdGVyX2Nu ZiAmIEFfQ05GX0RDX0RDX1BPTEFSSVRZKSE9MCkgXiBvbl9ub3Rfb2ZmKQ0K CQlzZWxmX2NvbnRyb2wgfD0gSENCMTsNCgllbHNlDQoJCXNlbGZfY29udHJv bCAmPSB+SENCMTsNCgljc193cml0ZXJlZyggc2MtPm5pY19hZGRyLCBQUF9T ZWxmQ1RMLCBzZWxmX2NvbnRyb2wgKTsNCg0KCURFTEFZKCA1MDAwMDAgKTsN Cn0NCg0KDQpzdGF0aWMgaW50DQpjc19kdXBsZXhfYXV0byhzdHJ1Y3QgY3Nf c29mdGMgKnNjKQ0Kew0KICAgICAgICBpbnQgaSwgZXJyb3I9MCwgdW5pdD1z Yy0+YXJwY29tLmFjX2lmLmlmX3VuaXQ7DQogICAgICAgIA0KICAgICAgICBj c193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0F1dG9OZWdDVEwsDQogICAg ICAgICAgICAgICAgICAgIFJFX05FR19OT1cgfCBBTExPV19GRFggfCBBVVRP X05FR19FTkFCTEUgKTsNCiAgICAgICAgZm9yIChpPTA7IGNzX3JlYWRyZWco c2MtPm5pY19hZGRyLFBQX0F1dG9OZWdTVCkmQVVUT19ORUdfQlVTWTsgaSsr KSB7DQogICAgICAgICAgICAgICAgaWYgKGkgPiA0MDAwMCkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgcHJpbnRmKENTX05BTUUiJTFkOiBmdWxsL2hh bGYgZHVwbGV4ICINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi YXV0byBuZWdvdGlhdGlvbiB0aW1lb3V0XG4iLCB1bml0KTsNCgkJCWVycm9y ID0gRVRJTUVET1VUOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIERFTEFZKDEw MDApOw0KICAgICAgICB9DQogICAgICAgIERFTEFZKCAxMDAwMDAwICk7DQoJ cmV0dXJuIGVycm9yOw0KfQ0KDQpzdGF0aWMgaW50DQplbmFibGVfdHAoc3Ry dWN0IGNzX3NvZnRjICpzYykNCnsNCglpbnQgdW5pdCA9IHNjLT5hcnBjb20u YWNfaWYuaWZfdW5pdDsNCg0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg UFBfTGluZUNUTCwgc2MtPmxpbmVfY3RsICYgfkFVSV9PTkxZKTsNCgljb250 cm9sX2RjX2RjKHNjLCAwKTsNCglERUxBWSggMTUwMDAwICk7DQoNCglpZiAo KGNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lU1QpICYgTElOS19P Syk9PTApIHsNCgkJcHJpbnRmKENTX05BTUUiJTFkOiBmYWlsZWQgdG8gZW5h YmxlIFRQXG4iLCB1bml0KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gRUlO VkFMOw0KCX0NCg0KCXJldHVybiAwOw0KfQ0KDQovKg0KICogWFhYIFRoaXMg d2FzIHJld3JpdHRlbiBmcm9tIExpbnV4IGRyaXZlciB3aXRob3V0IGFueSB0 ZXN0cy4NCiAqLyAgICAgICAgICAgICANCnN0YXRpYyBpbnQNCnNlbmRfdGVz dF9wa3Qoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCgljaGFyIHRlc3RfcGFj a2V0W10gPSB7IDAsMCwwLDAsMCwwLCAwLDAsMCwwLDAsMCwNCgkJCQkwLCA0 NiwgIC8qIEEgNDYgaW4gbmV0d29yayBvcmRlciAqLw0KCQkJCTAsIDAsICAg LyogRFNBUD0wICYgU1NBUD0wIGZpZWxkcyAqLw0KCQkJCTB4ZjMsIDAgLyog Q29udHJvbCAoVGVzdCBSZXEgKyBQIGJpdCBzZXQpICovIH07DQoJaW50IGk7 DQoJdV9jaGFyIGV0aGVyX2FkZHJlc3NfYmFja3VwW0VUSEVSX0FERFJfTEVO XTsNCg0KCWZvciAoaSA9IDA7IGkgPCBFVEhFUl9BRERSX0xFTjsgaSsrKSB7 DQoJCWV0aGVyX2FkZHJlc3NfYmFja3VwW2ldID0gc2MtPmFycGNvbS5hY19l bmFkZHJbaV07DQoJfQ0KDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQ UF9MaW5lQ1RMLA0KCQljc19yZWFkcmVnKHNjLT5uaWNfYWRkciwgUFBfTGlu ZUNUTCkgfCBTRVJJQUxfVFhfT04gKTsNCgliY29weSh0ZXN0X3BhY2tldCwN CgkJCXNjLT5hcnBjb20uYWNfZW5hZGRyLCBFVEhFUl9BRERSX0xFTik7DQoJ YmNvcHkodGVzdF9wYWNrZXQrRVRIRVJfQUREUl9MRU4sDQoJCQlzYy0+YXJw Y29tLmFjX2VuYWRkciwgRVRIRVJfQUREUl9MRU4pOw0KCW91dHcoc2MtPm5p Y19hZGRyICsgVFhfQ01EX1BPUlQsIHNjLT5zZW5kX2NtZCk7DQoJb3V0dyhz Yy0+bmljX2FkZHIgKyBUWF9MRU5fUE9SVCwgc2l6ZW9mKHRlc3RfcGFja2V0 KSk7DQoNCgkvKiBXYWl0IGZvciBjaGlwIHRvIGFsbG9jYXRlIG1lbW9yeSAq Lw0KCURFTEFZKDUwMDAwKTsNCglpZiAoIShjc19yZWFkcmVnKHNjLT5uaWNf YWRkciwgUFBfQnVzU1QpICYgUkVBRFlfRk9SX1RYX05PVykpIHsNCgkJZm9y IChpID0gMDsgaSA8IEVUSEVSX0FERFJfTEVOOyBpKyspIHsNCgkJCXNjLT5h cnBjb20uYWNfZW5hZGRyW2ldID0gZXRoZXJfYWRkcmVzc19iYWNrdXBbaV07 DQoJCX0NCgkJcmV0dXJuIDA7DQoJfQ0KDQoJb3V0c3coc2MtPm5pY19hZGRy ICsgVFhfRlJBTUVfUE9SVCwgdGVzdF9wYWNrZXQsIHNpemVvZih0ZXN0X3Bh Y2tldCkpOw0KDQoJREVMQVkoMzAwMDApOw0KDQoJaWYgKChjc19yZWFkcmVn KHNjLT5uaWNfYWRkcixQUF9UeEV2ZW50KSAmIFRYX1NFTkRfT0tfQklUUykg PT0gVFhfT0spIHsNCgkJZm9yIChpID0gMDsgaSA8IEVUSEVSX0FERFJfTEVO OyBpKyspIHsNCgkJCXNjLT5hcnBjb20uYWNfZW5hZGRyW2ldID0gZXRoZXJf YWRkcmVzc19iYWNrdXBbaV07DQoJCX0NCgkJcmV0dXJuIDE7DQoJfQ0KCWZv ciAoaSA9IDA7IGkgPCBFVEhFUl9BRERSX0xFTjsgaSsrKSB7DQoJCXNjLT5h cnBjb20uYWNfZW5hZGRyW2ldID0gZXRoZXJfYWRkcmVzc19iYWNrdXBbaV07 DQoJfQ0KCXJldHVybiAwOw0KfQ0KDQovKg0KICogWFhYIFRoaXMgd2FzIHJl d3JpdHRlbiBmcm9tIExpbnV4IGRyaXZlciB3aXRob3V0IGFueSB0ZXN0cy4N CiAqLw0Kc3RhdGljIGludA0KZW5hYmxlX2F1aShzdHJ1Y3QgY3Nfc29mdGMg KnNjKQ0Kew0KCWludCB1bml0ID0gc2MtPmFycGNvbS5hY19pZi5pZl91bml0 Ow0KDQoJY29udHJvbF9kY19kYyhzYywgMCk7DQoJY3Nfd3JpdGVyZWcoc2Mt Pm5pY19hZGRyLCBQUF9MaW5lQ1RMLA0KCQkoc2MtPmxpbmVfY3RsICYgfkFV VE9fQVVJXzEwQkFTRVQpIHwgQVVJX09OTFkpOw0KDQoJaWYgKCFzZW5kX3Rl c3RfcGt0KHNjKSkgew0KCQlwcmludGYoQ1NfTkFNRSIlMWQgZmFpbGVkIHRv IGVuYWJsZSBBVUlcbiIsIHVuaXQpOw0KCQlyZXR1cm4gRUlOVkFMOw0KICAg ICAgICB9DQogICAgICAgIHJldHVybiAwOw0KfQ0KDQovKg0KICogWFhYIFRo aXMgd2FzIHJld3JpdHRlbiBmcm9tIExpbnV4IGRyaXZlciB3aXRob3V0IGFu eSB0ZXN0cy4NCiAqLyAgICAgICAgICAgICANCnN0YXRpYyBpbnQNCmVuYWJs ZV9ibmMoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglpbnQgdW5pdCA9IHNj LT5hcnBjb20uYWNfaWYuaWZfdW5pdDsNCg0KCWNvbnRyb2xfZGNfZGMoc2Ms IDEpOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfTGluZUNUTCwN CgkJKHNjLT5saW5lX2N0bCAmIH5BVVRPX0FVSV8xMEJBU0VUKSB8IEFVSV9P TkxZKTsNCg0KCWlmICghc2VuZF90ZXN0X3BrdChzYykpIHsNCgkJcHJpbnRm KENTX05BTUUiJTFkIGZhaWxlZCB0byBlbmFibGUgQk5DXG4iLCB1bml0KTsN CgkJcmV0dXJuIEVJTlZBTDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4g MDsNCn0NCg0Kc3RhdGljIGludA0KY3NfY3M4OXgwX3Byb2JlKGRldmljZV90 IGRldikNCnsNCglpbnQgaTsNCglpbnQgaW9iYXNlOw0KCWludCBlcnJvcjsN Cg0KCXVfbG9uZyBpcnEsIGp1bms7DQoNCglzdHJ1Y3QgY3Nfc29mdGMgKnNj ID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOw0KDQoJdW5zaWduZWQgcmV2X3R5 cGUgPSAwOw0KCWNoYXIgY2hpcF9yZXZpc2lvbjsNCglpbnQgZWVwcm9tX2J1 ZmZbQ0hLU1VNX0xFTl07DQoJaW50IGNoaXBfdHlwZSwgcHBfaXNhaW50LCBw cF9pc2FkbWE7DQoNCgllcnJvciA9IGNzX2FsbG9jX3BvcnQoZGV2LCAwLCBD U184OXgwX0lPX1BPUlRTKTsNCglpZiAoZXJyb3IpDQoJCXJldHVybiAoZXJy b3IpOw0KDQoJaW9iYXNlPXJtYW5fZ2V0X3N0YXJ0KHNjLT5wb3J0X3Jlcyk7 DQoNCglpZiAoKGludyhpb2Jhc2UrQUREX1BPUlQpICYgQUREX01BU0spICE9 IEFERF9TSUcpIHsNCgkJLyogQ2hpcCBub3QgZGV0ZWN0ZWQuIExldCdzIHRy eSB0byByZXNldCBpdCAqLw0KCQlpZiAoYm9vdHZlcmJvc2UpDQoJCQlkZXZp Y2VfcHJpbnRmKGRldiwgInRyeWluZyB0byByZXNldCB0aGUgY2hpcC5cbiIp Ow0KCQlvdXR3KGlvYmFzZStBRERfUE9SVCwgUFBfU2VsZkNUTCk7DQoJCWkg PSBpbncoaW9iYXNlK0RBVEFfUE9SVCk7DQoJCW91dHcoaW9iYXNlK0FERF9Q T1JULCBQUF9TZWxmQ1RMKTsNCgkJb3V0dyhpb2Jhc2UrREFUQV9QT1JULCBp IHwgUE9XRVJfT05fUkVTRVQpOw0KCQlpZiAoKGludyhpb2Jhc2UrQUREX1BP UlQpICYgQUREX01BU0spICE9IEFERF9TSUcpDQoJCQlyZXR1cm4gKEVOWElP KTsNCgl9DQoNCglvdXR3KGlvYmFzZStBRERfUE9SVCwgUFBfQ2hpcElEKTsN CglpZiAoaW53KGlvYmFzZStEQVRBX1BPUlQpICE9IENISVBfRUlTQV9JRF9T SUcpDQoJCXJldHVybiAoRU5YSU8pOw0KDQoJcmV2X3R5cGUgPSBjc19yZWFk cmVnKGlvYmFzZSwgUFJPRFVDVF9JRF9BREQpOw0KCWNoaXBfdHlwZSA9IHJl dl90eXBlICYgflJFVklTT05fQklUUzsNCgljaGlwX3JldmlzaW9uID0gKChy ZXZfdHlwZSAmIFJFVklTT05fQklUUykgPj4gOCkgKyAnQSc7DQoNCglzYy0+ bmljX2FkZHIgPSBpb2Jhc2U7DQoJc2MtPmNoaXBfdHlwZSA9IGNoaXBfdHlw ZTsNCg0KCWlmKGNoaXBfdHlwZT09Q1M4OTAwKSB7DQoJCXBwX2lzYWludCA9 IFBQX0NTODkwMF9JU0FJTlQ7DQoJCXBwX2lzYWRtYSA9IFBQX0NTODkwMF9J U0FETUE7DQoJCXNjLT5zZW5kX2NtZCA9IFRYX0NTODkwMF9BRlRFUl9BTEw7 DQoJfSBlbHNlIHsNCgkJcHBfaXNhaW50ID0gUFBfQ1M4OTIwX0lTQUlOVDsN CgkJcHBfaXNhZG1hID0gUFBfQ1M4OTIwX0lTQURNQTsNCgkJc2MtPnNlbmRf Y21kID0gVFhfQ1M4OTIwX0FGVEVSX0FMTDsNCgl9DQoNCiAgICAgICAgLyoN CiAgICAgICAgICogQ2xlYXIgc29tZSBmaWVsZHMgc28gdGhhdCBmYWlsIG9m IEVFUFJPTSB3aWxsIGxlZnQgdGhlbSBjbGVhbg0KICAgICAgICAgKi8NCiAg ICAgICAgc2MtPmF1dG9fbmVnX2NuZiA9IDA7DQogICAgICAgIHNjLT5hZGFw dGVyX2NuZiAgPSAwOw0KICAgICAgICBzYy0+aXNhX2NvbmZpZyAgID0gMDsN CiAgICAgICAgDQoJLyoNCgkgKiBJZiBubyBpbnRlcnJ1cHQgc3BlY2lmaWVk IChvciAiPyIpLCB1c2Ugd2hhdCB0aGUgYm9hcmQgdGVsbHMgdXMuDQoJICov DQoJZXJyb3IgPSBidXNfZ2V0X3Jlc291cmNlKGRldiwgU1lTX1JFU19JUlEs IDAsICZpcnEsICZqdW5rKTsNCg0KCS8qDQoJICogR2V0IGRhdGEgZnJvbSBF RVBST00NCgkgKi8NCglpZigoY3NfcmVhZHJlZyhpb2Jhc2UsIFBQX1NlbGZT VCkgJiBFRVBST01fUFJFU0VOVCkgPT0gMCkgew0KCQlkZXZpY2VfcHJpbnRm KGRldiwgIk5vIEVFUFJPTSwgYXNzdW1pbmcgZGVmYXVsdHMuXG4iKTsNCgl9 IGVsc2Ugew0KCQlpZiAoZ2V0X2VlcHJvbV9kYXRhKHNjLFNUQVJUX0VFUFJP TV9EQVRBLENIS1NVTV9MRU4sIGVlcHJvbV9idWZmKTwwKSB7DQoJCQlkZXZp Y2VfcHJpbnRmKGRldiwgIkVFUFJPTSByZWFkIGZhaWxlZCwgIg0KCQkJCSJh c3N1bWluZyBkZWZhdWx0cy5cbiIpOw0KCQl9IGVsc2Ugew0KCQkJaWYgKGdl dF9lZXByb21fY2tzdW0oU1RBUlRfRUVQUk9NX0RBVEEsQ0hLU1VNX0xFTiwg ZWVwcm9tX2J1ZmYpPDApIHsNCgkJCQlkZXZpY2VfcHJpbnRmKGRldiwgIkVF UFJPTSBjaGVrc3VtIGJhZCwgIg0KCQkJCQkiYXNzdW1pbmcgZGVmYXVsdHMu XG4iKTsNCgkJCX0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjLT5hdXRvX25lZ19jbmYgPQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVlcHJvbV9idWZmW0FVVE9fTkVHX0NO Rl9PRkZTRVQvMl07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjLT5hZGFwdGVyX2NuZiA9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZWVwcm9tX2J1ZmZbQURBUFRFUl9DTkZfT0ZGU0VU LzJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYy0+aXNh X2NvbmZpZyA9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZWVwcm9tX2J1ZmZbSVNBX0NORl9PRkZTRVQvMl07DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8RVRIRVJf QUREUl9MRU4vMjsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2MtPmFycGNvbS5hY19lbmFkZHJbaSoyXT0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVlcHJvbV9idWZmW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjLT5hcnBjb20uYWNfZW5hZGRyW2kqMisxXT0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVlcHJvbV9idWZmW2ldID4+IDg7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJZiBu byBpbnRlcnJ1cHQgc3BlY2lmaWVkIChvciAiPyIpLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKiB1c2Ugd2hhdCB0aGUgYm9hcmQgdGVs bHMgdXMuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0K CQkJCWlmIChlcnJvcikgew0KCQkJCQlpcnEgPSBzYy0+aXNhX2NvbmZpZyAm IElOVF9OT19NQVNLOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChjaGlwX3R5cGU9PUNTODkwMCkgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNo KGlycSkgew0KCQkJCQkJIGNhc2UgMDoNCgkJCQkJCQlpcnE9MTA7DQoJCQkJ CQkJZXJyb3I9MDsNCgkJCQkJCQlicmVhazsNCgkJCQkJCSBjYXNlIDE6DQoJ CQkJCQkJaXJxPTExOw0KCQkJCQkJCWVycm9yPTA7DQoJCQkJCQkJYnJlYWs7 DQoJCQkJCQkgY2FzZSAyOg0KCQkJCQkJCWlycT0xMjsNCgkJCQkJCQllcnJv cj0wOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJIGNhc2UgMzoNCgkJCQkJCQlp cnE9NTsNCgkJCQkJCQllcnJvcj0wOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJ IGRlZmF1bHQ6DQoJCQkJCQkJZGV2aWNlX3ByaW50ZihkZXYsICJpbnZhbGlk IGlycSBpbiBFRVBST00uXG4iKTsNCgkJCQkJCQllcnJvcj1FSU5WQUw7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlpZiAoaXJxPkNTODkyMF9OT19J TlRTKSB7DQoJCQkJCQkJZGV2aWNlX3ByaW50ZihkZXYsICJpbnZhbGlkIGly cSBpbiBFRVBST00uXG4iKTsNCgkJCQkJCQllcnJvcj1FSU5WQUw7DQoJCQkJ CQl9IGVsc2Ugew0KCQkJCQkJCWVycm9yPTA7DQoJCQkJCQl9DQoJCQkJCX0N Cg0KCQkJCQlpZiAoIWVycm9yKQ0KCQkJCQkJYnVzX3NldF9yZXNvdXJjZShk ZXYsIFNZU19SRVNfSVJRLCAwLA0KCQkJCQkJCQlpcnEsIDEpOw0KCQkJCX0N CgkJCX0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCg0KCWlmICgh ZXJyb3IpIHsNCiAgICAgICAgICAgICAgICBpZiAoY2hpcF90eXBlID09IENT ODkwMCkgew0KCQkJc3dpdGNoKGlycSkgew0KCQkJCWNhc2UgIDU6DQoJCQkJ CWlycSA9IDM7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgMTA6DQoJCQkJCWly cSA9IDA7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgMTE6DQoJCQkJCWlycSA9 IDE7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgMTI6DQoJCQkJCWlycSA9IDI7 DQoJCQkJCWJyZWFrOw0KCQkJCWRlZmF1bHQ6DQoJCQkJCWVycm9yPUVJTlZB TDsNCgkJCX0NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKGlycSA+IENTODkyMF9OT19JTlRTKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gRUlOVkFM Ow0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IH0NCgl9DQoNCglpZiAoIWVycm9yKSB7DQogICAgICAgICAgICAgICAgY3Nf d3JpdGVyZWcoaW9iYXNlLCBwcF9pc2FpbnQsIGlycSk7DQoJfSBlbHNlIHsN CgkgICAgICAgCWRldmljZV9wcmludGYoZGV2LCAiVW5rbm93biBvciBpbnZh bGlkIGlycVxuIik7DQogICAgICAgICAgICAgICAgcmV0dXJuIChFTlhJTyk7 DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8qDQogICAgICAgICAq IFRlbXBvcmFyeSBkaXNhYmxlZA0KICAgICAgICAgKg0KICAgICAgICBpZiAo ZHJxPjApDQoJCWNzX3dyaXRlcmVnKGlvYmFzZSwgcHBfaXNhZG1hLCBkcnEp Ow0KCWVsc2Ugew0KCQlwcmludGYoIENTX05BTUUiJTFkOiBpbmNvcnJlY3Qg ZHJxXG4iLCB1bml0ICk7DQoJCXJldHVybiAwOw0KCX0NCiAgICAgICAgKi8N Cg0KCWlmIChib290dmVyYm9zZSkNCgkJIGRldmljZV9wcmludGYoZGV2LCAi Q1M4OSVjMCVzIHJldiAlYyBtZWRpYSVzJXMlc1xuIiwNCgkJCWNoaXBfdHlw ZT09Q1M4OTAwID8gJzAnIDogJzInLA0KCQkJY2hpcF90eXBlPT1DUzg5MjBN ID8gIk0iIDogIiIsDQoJCQljaGlwX3JldmlzaW9uLA0KCQkJKHNjLT5hZGFw dGVyX2NuZiAmIEFfQ05GXzEwQl9UKSA/ICIgVFAiICA6ICIiLA0KCQkJKHNj LT5hZGFwdGVyX2NuZiAmIEFfQ05GX0FVSSkgICA/ICIgQVVJIiA6ICIiLA0K CQkJKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GXzEwQl8yKSA/ICIgQk5DIiA6 ICIiKTsNCg0KICAgICAgICBpZiAoKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05G X0VYVE5EXzEwQl8yKSAmJg0KICAgICAgICAgICAgKHNjLT5hZGFwdGVyX2Nu ZiAmIEFfQ05GX0xPV19SWF9TUVVFTENIKSkNCiAgICAgICAgICAgICAgICBz Yy0+bGluZV9jdGwgPSBMT1dfUlhfU1FVRUxDSDsNCiAgICAgICAgZWxzZQ0K ICAgICAgICAgICAgICAgIHNjLT5saW5lX2N0bCA9IDA7DQoNCiAgICAgICAg DQoJcmV0dXJuIDA7DQp9DQoNCi8qDQogKiBBbGxvY2F0ZSBhIHBvcnQgcmVz b3VyY2Ugd2l0aCB0aGUgZ2l2ZW4gcmVzb3VyY2UgaWQuDQogKi8NCmludCBj c19hbGxvY19wb3J0KGRldmljZV90IGRldiwgaW50IHJpZCwgaW50IHNpemUp DQp7DQogICAgICAgIHN0cnVjdCBjc19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0 X3NvZnRjKGRldik7DQogICAgICAgIHN0cnVjdCByZXNvdXJjZSAqcmVzOw0K DQogICAgICAgIHJlcyA9IGJ1c19hbGxvY19yZXNvdXJjZShkZXYsIFNZU19S RVNfSU9QT1JULCAmcmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHVsLCB+MHVsLCBzaXplLCBSRl9BQ1RJVkUpOw0KICAgICAgICBp ZiAocmVzKSB7DQogICAgICAgICAgICAgICAgc2MtPnBvcnRfcmlkID0gcmlk Ow0KICAgICAgICAgICAgICAgIHNjLT5wb3J0X3JlcyA9IHJlczsNCiAgICAg ICAgICAgICAgICBzYy0+cG9ydF91c2VkID0gc2l6ZTsNCiAgICAgICAgICAg ICAgICByZXR1cm4gKDApOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAg ICAgICAgIHJldHVybiAoRU5PRU5UKTsNCiAgICAgICAgfQ0KfQ0KDQovKg0K ICogQWxsb2NhdGUgYSBtZW1vcnkgcmVzb3VyY2Ugd2l0aCB0aGUgZ2l2ZW4g cmVzb3VyY2UgaWQuDQogKi8NCmludCBjc19hbGxvY19tZW1vcnkoZGV2aWNl X3QgZGV2LCBpbnQgcmlkLCBpbnQgc2l6ZSkNCnsNCiAgICAgICAgc3RydWN0 IGNzX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsNCiAgICAg ICAgc3RydWN0IHJlc291cmNlICpyZXM7DQoNCiAgICAgICAgcmVzID0gYnVz X2FsbG9jX3Jlc291cmNlKGRldiwgU1lTX1JFU19NRU1PUlksICZyaWQsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwdWwsIH4wdWwsIHNp emUsIFJGX0FDVElWRSk7DQogICAgICAgIGlmIChyZXMpIHsNCiAgICAgICAg ICAgICAgICBzYy0+bWVtX3JpZCA9IHJpZDsNCiAgICAgICAgICAgICAgICBz Yy0+bWVtX3JlcyA9IHJlczsNCiAgICAgICAgICAgICAgICBzYy0+bWVtX3Vz ZWQgPSBzaXplOw0KICAgICAgICAgICAgICAgIHJldHVybiAoMCk7DQogICAg ICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIChFTk9FTlQp Ow0KICAgICAgICB9DQp9DQoNCi8qDQogKiBBbGxvY2F0ZSBhbiBpcnEgcmVz b3VyY2Ugd2l0aCB0aGUgZ2l2ZW4gcmVzb3VyY2UgaWQuDQogKi8NCmludCBj c19hbGxvY19pcnEoZGV2aWNlX3QgZGV2LCBpbnQgcmlkLCBpbnQgZmxhZ3Mp DQp7DQogICAgICAgIHN0cnVjdCBjc19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0 X3NvZnRjKGRldik7DQogICAgICAgIHN0cnVjdCByZXNvdXJjZSAqcmVzOw0K DQogICAgICAgIHJlcyA9IGJ1c19hbGxvY19yZXNvdXJjZShkZXYsIFNZU19S RVNfSVJRLCAmcmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHVsLCB+MHVsLCAxLCAoUkZfQUNUSVZFIHwgZmxhZ3MpKTsNCiAgICAg ICAgaWYgKHJlcykgew0KICAgICAgICAgICAgICAgIHNjLT5pcnFfcmlkID0g cmlkOw0KICAgICAgICAgICAgICAgIHNjLT5pcnFfcmVzID0gcmVzOw0KICAg ICAgICAgICAgICAgIHJldHVybiAoMCk7DQogICAgICAgIH0gZWxzZSB7DQog ICAgICAgICAgICAgICAgcmV0dXJuIChFTk9FTlQpOw0KICAgICAgICB9DQp9 DQoNCi8qDQogKiBSZWxlYXNlIGFsbCByZXNvdXJjZXMNCiAqLw0Kdm9pZCBj c19yZWxlYXNlX3Jlc291cmNlcyhkZXZpY2VfdCBkZXYpDQp7DQogICAgICAg IHN0cnVjdCBjc19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7 DQoNCiAgICAgICAgaWYgKHNjLT5wb3J0X3Jlcykgew0KICAgICAgICAgICAg ICAgIGJ1c19yZWxlYXNlX3Jlc291cmNlKGRldiwgU1lTX1JFU19JT1BPUlQs DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2MtPnBv cnRfcmlkLCBzYy0+cG9ydF9yZXMpOw0KICAgICAgICAgICAgICAgIHNjLT5w b3J0X3JlcyA9IDA7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNjLT5tZW1f cmVzKSB7DQogICAgICAgICAgICAgICAgYnVzX3JlbGVhc2VfcmVzb3VyY2Uo ZGV2LCBTWVNfUkVTX01FTU9SWSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzYy0+bWVtX3JpZCwgc2MtPm1lbV9yZXMpOw0KICAg ICAgICAgICAgICAgIHNjLT5tZW1fcmVzID0gMDsNCiAgICAgICAgfQ0KICAg ICAgICBpZiAoc2MtPmlycV9yZXMpIHsNCiAgICAgICAgICAgICAgICBidXNf cmVsZWFzZV9yZXNvdXJjZShkZXYsIFNZU19SRVNfSVJRLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjLT5pcnFfcmlkLCBzYy0+ aXJxX3Jlcyk7DQogICAgICAgICAgICAgICAgc2MtPmlycV9yZXMgPSAwOw0K ICAgICAgICB9DQp9DQoNCnN0YXRpYyBzdHJ1Y3QgaXNhX3BucF9pZCBjc19p ZHNbXSA9IHsNCgl7IDB4NDA2MDYzMGUsIE5VTEwgfSwJCS8qIENTQzYwNDAg Ki8NCgl7IDB4MTAxMDRkMjQsIE5VTEwgfSwJCS8qIElCTSBFdGhlckpldCAq Lw0KCXsgMCwgTlVMTCB9DQp9Ow0KDQovKg0KICogRGV0ZXJtaW5lIGlmIHRo ZSBkZXZpY2UgaXMgcHJlc2VudA0KICovDQpzdGF0aWMgaW50DQpjc19pc2Ff cHJvYmUoZGV2aWNlX3QgZGV2KQ0Kew0KCWludCBlcnJvciA9IDA7DQoNCglz dHJ1Y3QgY3Nfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOw0K DQoJYnplcm8oc2MsIHNpemVvZihzdHJ1Y3QgY3Nfc29mdGMpKTsNCg0KCS8q IENoZWNrIGlzYXBucCBpZHMgKi8NCgllcnJvciA9IElTQV9QTlBfUFJPQkUo ZGV2aWNlX2dldF9wYXJlbnQoZGV2KSwgZGV2LCBjc19pZHMpOw0KDQoJLyog SWYgdGhlIGNhcmQgaGFkIGEgUG5QIElEIHRoYXQgZGlkbid0IG1hdGNoIGFu eSB3ZSBrbm93IGFib3V0ICovDQoJaWYgKGVycm9yID09IEVOWElPKSB7DQog ICAgICAgICAgICAgICAgZ290byBlbmQ7DQogICAgICAgIH0NCg0KICAgICAg ICAvKiBJZiB3ZSBoYWQgc29tZSBvdGhlciBwcm9ibGVtLiAqLw0KICAgICAg ICBpZiAoIShlcnJvciA9PSAwIHx8IGVycm9yID09IEVOT0VOVCkpIHsNCiAg ICAgICAgICAgICAgICBnb3RvIGVuZDsNCiAgICAgICAgfSANCg0KCWVycm9y PWNzX2NzODl4MF9wcm9iZShkZXYpOw0KDQplbmQ6DQoJaWYgKGVycm9yID09 IDApDQogICAgICAgICAgICAgICAgZXJyb3IgPSBjc19hbGxvY19pcnEoZGV2 LCAwLCAwKTsNCg0KICAgICAgICBjc19yZWxlYXNlX3Jlc291cmNlcyhkZXYp Ow0KICAgICAgICByZXR1cm4gKGVycm9yKTsNCn0NCg0Kc3RhdGljIGludCBj c19pc2FfYXR0YWNoKGRldmljZV90IGRldikNCnsNCiAgICAgICAgc3RydWN0 IGNzX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsNCiAgICAg ICAgaW50IGZsYWdzID0gZGV2aWNlX2dldF9mbGFncyhkZXYpOw0KICAgICAg ICBpbnQgZXJyb3I7DQogICAgICAgIA0KICAgICAgICBpZiAoc2MtPnBvcnRf dXNlZCA+IDApDQogICAgICAgICAgICAgICAgY3NfYWxsb2NfcG9ydChkZXYs IHNjLT5wb3J0X3JpZCwgc2MtPnBvcnRfdXNlZCk7DQogICAgICAgIGlmIChz Yy0+bWVtX3VzZWQpDQogICAgICAgICAgICAgICAgY3NfYWxsb2NfbWVtb3J5 KGRldiwgc2MtPm1lbV9yaWQsIHNjLT5tZW1fdXNlZCk7DQogICAgICAgIGNz X2FsbG9jX2lycShkZXYsIHNjLT5pcnFfcmlkLCAwKTsNCiAgICAgICAgICAg ICAgICANCiAgICAgICAgZXJyb3IgPSBidXNfc2V0dXBfaW50cihkZXYsIHNj LT5pcnFfcmVzLCBJTlRSX1RZUEVfTkVULA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNzaW50ciwgc2MsICZzYy0+aXJxX2hhbmRsZSk7DQog ICAgICAgIGlmIChlcnJvcikgew0KICAgICAgICAgICAgICAgIGNzX3JlbGVh c2VfcmVzb3VyY2VzKGRldik7DQogICAgICAgICAgICAgICAgcmV0dXJuIChl cnJvcik7DQogICAgICAgIH0gICAgICAgICAgICAgIA0KDQogICAgICAgIHJl dHVybiBjc19hdHRhY2goc2MsIGRldmljZV9nZXRfdW5pdChkZXYpLCBmbGFn cyk7DQp9DQoNCi8qDQogKiBJbnN0YWxsIHRoZSBpbnRlcmZhY2UgaW50byBr ZXJuZWwgbmV0d29ya2luZyBkYXRhIHN0cnVjdHVyZXMNCiAqLw0Kc3RhdGlj IGludA0KY3NfYXR0YWNoKHN0cnVjdCBjc19zb2Z0YyAqc2MsIGludCB1bml0 LCBpbnQgZmxhZ3MpDQp7DQogICAgICAgIGludCBtZWRpYT0wOw0KCXN0cnVj dCBpZm5ldCAqaWZwID0gJihzYy0+YXJwY29tLmFjX2lmKTsNCg0KCWNzX3N0 b3AoIHNjICk7DQoNCglpZiAoIWlmcC0+aWZfbmFtZSkgew0KCQlpZnAtPmlm X3NvZnRjPXNjOw0KCQlpZnAtPmlmX3VuaXQ9dW5pdDsNCgkJaWZwLT5pZl9u YW1lPSJjcyI7DQoJCWlmcC0+aWZfb3V0cHV0PWV0aGVyX291dHB1dDsNCgkJ aWZwLT5pZl9zdGFydD1jc19zdGFydDsNCgkJaWZwLT5pZl9pb2N0bD1jc19p b2N0bDsNCgkJaWZwLT5pZl93YXRjaGRvZz1jc193YXRjaGRvZzsNCgkJaWZw LT5pZl9pbml0PWNzX2luaXQ7DQoJCWlmcC0+aWZfc25kLmlmcV9tYXhsZW49 IElGUV9NQVhMRU47DQoJCS8qDQogICAgICAgICAgICAgICAgICogIE1JQiBE QVRBDQogICAgICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgLyoN CgkJaWZwLT5pZl9saW5rbWliPSZzYy0+bWliZGF0YTsNCgkJaWZwLT5pZl9s aW5rbWlibGVuPXNpemVvZiBzYy0+bWliZGF0YTsNCiAgICAgICAgICAgICAg ICAqLw0KDQoJCWlmcC0+aWZfZmxhZ3M9KElGRl9CUk9BRENBU1QgfCBJRkZf U0lNUExFWCB8IElGRl9NVUxUSUNBU1QgKTsNCg0KCQkvKg0KCQkgKiB0aGlz IGNvZGUgc3RpbGwgaW4gcHJvZ3Jlc3MgKERNQSBzdXBwb3J0KQ0KCQkgKg0K DQoJCXNjLT5yZWN2X3Jpbmc9bWFsbG9jKENTX0RNQV9CVUZGRVJfU0laRTw8 MSwgTV9ERVZCVUYsIE1fTk9XQUlUKTsNCgkJaWYgKHNjLT5yZWN2X3Jpbmcg PT0gTlVMTCkgew0KCQkJbG9nKExPR19FUlIsQ1NfTkFNRQ0KCQkJIiVkOiBD b3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIE5JQ1xuIiwgdW5pdCk7DQoJ CQlyZXR1cm4oMCk7DQoJCX0NCgkJaWYgKChzYy0+cmVjdl9yaW5nLShzYy0+ cmVjdl9yaW5nICYgMHgxRkZGRikpDQoJCSAgICA8ICgxMjgqMTAyNC1DU19E TUFfQlVGRkVSX1NJWkUpKQ0KCQkgICAgc2MtPnJlY3ZfcmluZys9MTYqMTAy NDsNCg0KCQkqLw0KDQoJCXNjLT5idWZmZXI9bWFsbG9jKEVUSEVSX01BWF9M RU4tRVRIRVJfQ1JDX0xFTixNX0RFVkJVRixNX05PV0FJVCk7DQoJCWlmIChz Yy0+YnVmZmVyID09IE5VTEwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IHByaW50ZihDU19OQU1FIiVkOiBDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkg Zm9yIE5JQ1xuIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bml0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybigwKTsNCgkJ fQ0KDQoJCS8qDQoJCSAqIEluaXRpYWxpemUgdGhlIG1lZGlhIHN0cnVjdHVy ZXMuDQoJCSAqLw0KCQlpZm1lZGlhX2luaXQoJnNjLT5tZWRpYSwgMCwgY3Nf bWVkaWFjaGFuZ2UsIGNzX21lZGlhc3RhdHVzKTsNCg0KCQlpZiAoc2MtPmFk YXB0ZXJfY25mICYgQV9DTkZfMTBCX1QpIHsNCgkJCWlmbWVkaWFfYWRkKCZz Yy0+bWVkaWEsIElGTV9FVEhFUnxJRk1fMTBfVCwgMCwgTlVMTCk7DQoJCQlp ZiAoc2MtPmNoaXBfdHlwZSAhPSBDUzg5MDApIHsNCgkJCQlpZm1lZGlhX2Fk ZCgmc2MtPm1lZGlhLA0KCQkJCQlJRk1fRVRIRVJ8SUZNXzEwX1R8SUZNX0ZE WCwgMCwgTlVMTCk7DQoJCQkJaWZtZWRpYV9hZGQoJnNjLT5tZWRpYSwNCgkJ CQkJSUZNX0VUSEVSfElGTV8xMF9UfElGTV9IRFgsIDAsIE5VTEwpOw0KCQkJ fQ0KCQl9IA0KDQoJCWlmIChzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl8xMEJf MikNCgkJCWlmbWVkaWFfYWRkKCZzYy0+bWVkaWEsIElGTV9FVEhFUnxJRk1f MTBfMiwgMCwgTlVMTCk7DQoNCgkJaWYgKHNjLT5hZGFwdGVyX2NuZiAmIEFf Q05GX0FVSSkNCgkJCWlmbWVkaWFfYWRkKCZzYy0+bWVkaWEsIElGTV9FVEhF UnxJRk1fMTBfNSwgMCwgTlVMTCk7DQoNCiAgICAgICAgICAgICAgICBpZiAo c2MtPmFkYXB0ZXJfY25mICYgQV9DTkZfTUVESUEpDQogICAgICAgICAgICAg ICAgICAgICAgICBpZm1lZGlhX2FkZCgmc2MtPm1lZGlhLCBJRk1fRVRIRVJ8 SUZNX0FVVE8sIDAsIE5VTEwpOw0KDQogICAgICAgICAgICAgICAgLyogU2V0 IGRlZmF1bHQgbWVkaWEgZnJvbSBFRVBST00gKi8NCiAgICAgICAgICAgICAg ICBzd2l0Y2ggKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GX01FRElBX1RZUEUp IHsNCiAgICAgICAgICAgICAgICBjYXNlIEFfQ05GX01FRElBX0FVVE86ICBt ZWRpYSA9IElGTV9FVEhFUnxJRk1fQVVUTzsgYnJlYWs7DQogICAgICAgICAg ICAgICAgY2FzZSBBX0NORl9NRURJQV8xMEJfVDogbWVkaWEgPSBJRk1fRVRI RVJ8SUZNXzEwX1Q7IGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgQV9D TkZfTUVESUFfMTBCXzI6IG1lZGlhID0gSUZNX0VUSEVSfElGTV8xMF8yOyBi cmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIEFfQ05GX01FRElBX0FVSTog ICBtZWRpYSA9IElGTV9FVEhFUnxJRk1fMTBfNTsgYnJlYWs7DQogICAgICAg ICAgICAgICAgZGVmYXVsdDogcHJpbnRmKENTX05BTUUiJWQ6IGFkYXB0ZXIg aGFzIG5vIG1lZGlhXG4iLCB1bml0KTsNCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgaWZtZWRpYV9zZXQoJnNjLT5tZWRpYSwgbWVkaWEp Ow0KCQljc19tZWRpYXNldChzYywgbWVkaWEpOw0KDQoJCWlmX2F0dGFjaChp ZnApOw0KCQlldGhlcl9pZmF0dGFjaChpZnApOw0KCX0NCg0KCWlmIChib290 dmVyYm9zZSkNCgkJcHJpbnRmKENTX05BTUUiJWQ6IGV0aGVybmV0IGFkZHJl c3MgJTZEXG4iLA0KCQkgICAgICAgaWZwLT5pZl91bml0LCBzYy0+YXJwY29t LmFjX2VuYWRkciwgIjoiKTsNCg0KCWJwZmF0dGFjaChpZnAsIERMVF9FTjEw TUIsIHNpemVvZiAoc3RydWN0IGV0aGVyX2hlYWRlcikpOw0KCXJldHVybiAo MCk7DQp9DQoNCi8qDQogKiBJbml0aWFsaXplIHRoZSBib2FyZA0KICovDQpz dGF0aWMgdm9pZA0KY3NfaW5pdCh2b2lkICp4c2MpDQp7DQoJc3RydWN0IGNz X3NvZnRjICpzYz0oc3RydWN0IGNzX3NvZnRjICopeHNjOw0KCXN0cnVjdCBp Zm5ldCAqaWZwID0gJnNjLT5hcnBjb20uYWNfaWY7DQoJaW50IGksIHMsIHJ4 X2NmZzsNCg0KCS8qIGFkZHJlc3Mgbm90IGtub3duICovDQoJaWYgKFRBSUxR X0VNUFRZKCZpZnAtPmlmX2FkZHJoZWFkKSkgLyogdW5saWtlbHk/IFhYWCAq Lw0KCQlyZXR1cm47DQoNCgkvKg0KCSAqIHJlc2V0IHdoYXRjaGRvZyB0aW1l cg0KCSAqLw0KCWlmcC0+aWZfdGltZXI9MDsNCglzYy0+YnVmX2xlbiA9IDA7 DQoJDQoJcz1zcGxpbXAoKTsNCg0KCS8qDQoJICogSGFyZHdhcmUgaW5pdGlh bGl6YXRpb24gb2YgY3MNCgkgKi8NCg0KCS8qIEVuYWJsZSByZWNlaXZlciBh bmQgdHJhbnNtaXR0ZXIgKi8NCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIs IFBQX0xpbmVDVEwsDQoJCWNzX3JlYWRyZWcoIHNjLT5uaWNfYWRkciwgUFBf TGluZUNUTCApIHwNCgkJU0VSSUFMX1JYX09OIHwgU0VSSUFMX1RYX09OKTsN Cg0KCS8qIENvbmZpZ3VyZSB0aGUgcmVjZWl2ZXIgbW9kZSAqLw0KCWNzX3Nl dG1vZGUoc2MpOw0KDQoJLyoNCgkgKiBUaGlzIGRlZmluZXMgd2hhdCB0eXBl IG9mIGZyYW1lcyB3aWxsIGNhdXNlIGludGVycnVwdHMNCgkgKiBCYWQgZnJh bWVzIHNob3VsZCBnZW5lcmF0ZSBpbnRlcnJ1cHRzIHNvIHRoYXQgdGhlIGRy aXZlcg0KCSAqIGNvdWxkIHRyYWNrIHN0YXRpc3RpY3Mgb2YgZGlzY2FyZGVk IHBhY2tldHMNCgkgKi8NCiAgICAgICAgcnhfY2ZnID0gUlhfT0tfRU5CTCB8 IFJYX0NSQ19FUlJPUl9FTkJMIHwgUlhfUlVOVF9FTkJMIHwNCgkJIFJYX0VY VFJBX0RBVEFfRU5CTDsNCglpZiAoc2MtPmlzYV9jb25maWcgJiBTVFJFQU1f VFJBTlNGRVIpDQoJCXJ4X2NmZyB8PSBSWF9TVFJFQU1fRU5CTDsNCgljc193 cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX1J4Q0ZHLCByeF9jZmcpOw0KDQoJ Y3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9UeENGRywgVFhfTE9TVF9D UlNfRU5CTCB8DQoJCSAgICBUWF9TUUVfRVJST1JfRU5CTCB8IFRYX09LX0VO QkwgfCBUWF9MQVRFX0NPTF9FTkJMIHwNCgkJICAgIFRYX0pCUl9FTkJMIHwg VFhfQU5ZX0NPTF9FTkJMIHwgVFhfMTZfQ09MX0VOQkwpOw0KDQoJY3Nfd3Jp dGVyZWcoc2MtPm5pY19hZGRyLCBQUF9CdWZDRkcsIFJFQURZX0ZPUl9UWF9F TkJMIHwNCgkJICAgIFJYX01JU1NfQ09VTlRfT1ZSRkxPV19FTkJMIHwgVFhf Q09MX0NPVU5UX09WUkZMT1dfRU5CTCB8DQoJCSAgICBUWF9VTkRFUlJVTl9F TkJMIC8qfCBSWF9ETUFfRU5CTCovKTsNCg0KICAgICAgICAvKiBXcml0ZSBN QUMgYWRkcmVzcyBpbnRvIElBIGZpbHRlciAqLw0KICAgICAgICBmb3IgKGk9 MDsgaTxFVEhFUl9BRERSX0xFTi8yOyBpKyspDQogICAgICAgICAgICAgICAg Y3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9JQStpKjIsDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2MtPmFycGNvbS5hY19lbmFkZHJbaSoy XSB8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNjLT5hcnBjb20u YWNfZW5hZGRyW2kqMisxXSA8PCA4KSApOw0KDQoJLyoNCgkgKiBOb3cgZW5h YmxlIGV2ZXJ5dGhpbmcNCgkgKi8NCi8qDQojaWZkZWYJQ1NfVVNFXzY0S19E TUENCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0J1c0NUTCwgRU5B QkxFX0lSUSB8IFJYX0RNQV9TSVpFXzY0Syk7DQogICAgICAgICNlbHNlDQoN CiAgICAgICAgY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9CdXNDVEws IEVOQUJMRV9JUlEpOw0KI2VuZGlmDQoqLw0KCWNzX3dyaXRlcmVnKHNjLT5u aWNfYWRkciwgUFBfQnVzQ1RMLCBFTkFCTEVfSVJRKTsNCgkNCgkvKg0KCSAq IFNldCBydW5uaW5nIGFuZCBjbGVhciBvdXRwdXQgYWN0aXZlIGZsYWdzDQoJ ICovDQoJc2MtPmFycGNvbS5hY19pZi5pZl9mbGFncyB8PSBJRkZfUlVOTklO RzsNCglzYy0+YXJwY29tLmFjX2lmLmlmX2ZsYWdzICY9IH5JRkZfT0FDVElW RTsNCg0KCS8qDQoJICogU3RhcnQgc2VuZGluZyBwcm9jZXNzDQoJICovDQoJ Y3Nfc3RhcnQoaWZwKTsNCg0KCSh2b2lkKSBzcGx4KHMpOw0KfQ0KDQovKg0K ICogR2V0IHRoZSBwYWNrZXQgZnJvbSB0aGUgYm9hcmQgYW5kIHNlbmQgaXQg dG8gdGhlIHVwcGVyIGxheWVyDQogKiB2aWEgZXRoZXJfaW5wdXQoKS4NCiAq Lw0Kc3RhdGljIGludA0KY3NfZ2V0X3BhY2tldChzdHJ1Y3QgY3Nfc29mdGMg KnNjKQ0Kew0KCXN0cnVjdCBpZm5ldCAqaWZwID0gJihzYy0+YXJwY29tLmFj X2lmKTsNCglpbnQgaW9iYXNlID0gc2MtPm5pY19hZGRyLCBzdGF0dXMsIGxl bmd0aDsNCglzdHJ1Y3QgZXRoZXJfaGVhZGVyICplaDsNCglzdHJ1Y3QgbWJ1 ZiAqbTsNCg0KI2lmZGVmIENTX0RFQlVHDQoJaW50IGk7DQojZW5kaWYNCg0K CXN0YXR1cyA9IGludyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JUKTsNCglsZW5n dGggPSBpbncoaW9iYXNlICsgUlhfRlJBTUVfUE9SVCk7DQoNCiNpZmRlZiBD U19ERUJVRw0KCXByaW50ZihDU19OQU1FIiUxZDogcmN2ZDogc3RhdCAleCwg bGVuICVkXG4iLA0KCQlpZnAtPmlmX3VuaXQsIHN0YXR1cywgbGVuZ3RoKTsN CiNlbmRpZg0KDQoJaWYgKCEoc3RhdHVzICYgUlhfT0spKSB7DQojaWZkZWYg Q1NfREVCVUcNCgkJcHJpbnRmKENTX05BTUUiJTFkOiBiYWQgcGt0IHN0YXQg JXhcbiIsIGlmcC0+aWZfdW5pdCwgc3RhdHVzKTsNCiNlbmRpZg0KCQlpZnAt PmlmX2llcnJvcnMrKzsNCgkJcmV0dXJuIC0xOw0KCX0NCg0KCU1HRVRIRFIo bSwgTV9ET05UV0FJVCwgTVRfREFUQSk7DQoJaWYgKG09PU5VTEwpDQoJCXJl dHVybiAtMTsNCg0KCWlmIChsZW5ndGggPiBNSExFTikgew0KCQlNQ0xHRVQo bSwgTV9ET05UV0FJVCk7DQoJCWlmICghKG0tPm1fZmxhZ3MgJiBNX0VYVCkp IHsNCgkJCW1fZnJlZW0obSk7DQoJCQlyZXR1cm4gLTE7DQoJCX0NCgl9DQoN CgkvKiBJbml0aWFsaXplIHBhY2tldCdzIGhlYWRlciBpbmZvICovDQoJbS0+ bV9wa3RoZHIucmN2aWYgPSBpZnA7DQoJbS0+bV9wa3RoZHIubGVuID0gbGVu Z3RoOw0KCW0tPm1fbGVuID0gbGVuZ3RoOw0KDQoJLyogR2V0IHRoZSBkYXRh ICovDQoJaW5zdyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JULCBtLT5tX2RhdGEs IChsZW5ndGgrMSk+PjEpOw0KDQoJZWggPSBtdG9kKG0sIHN0cnVjdCBldGhl cl9oZWFkZXIgKik7DQoNCglpZiAoaWZwLT5pZl9icGYpDQoJCWJwZl9tdGFw KGlmcCwgbSk7DQoNCiNpZmRlZiBDU19ERUJVRw0KCWZvciAoaT0wO2k8bGVu Z3RoO2krKykNCgkgICAgIHByaW50ZigiICUwMngiLCh1bnNpZ25lZCBjaGFy KSooKGNoYXIgKikobS0+bV9kYXRhK2kpKSk7DQoJcHJpbnRmKCAiXG4iICk7 DQojZW5kaWYNCg0KCWlmIChzdGF0dXMgJiAoUlhfSUEgfCBSWF9CUk9BRENB U1QpIHx8IA0KCSAgICAoaWZwLT5pZl9mbGFncyAmIElGRl9NVUxUSUNBU1Qg JiYgc3RhdHVzICYgUlhfSEFTSEVEKSkgew0KCQltLT5tX3BrdGhkci5sZW4g LT0gc2l6ZW9mKHN0cnVjdCBldGhlcl9oZWFkZXIpOw0KCQltLT5tX2xlbiAt PSBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRlcik7DQoJCW0tPm1fZGF0YSAr PSBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRlcik7DQoNCgkJLyogRmVlZCB0 aGUgcGFja2V0IHRvIHRoZSB1cHBlciBsYXllciAqLw0KCQlldGhlcl9pbnB1 dChpZnAsIGVoLCBtKTsNCg0KCQlpZnAtPmlmX2lwYWNrZXRzKys7DQoNCgkJ aWYgKGxlbmd0aD09RVRIRVJfTUFYX0xFTi1FVEhFUl9DUkNfTEVOKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgREVMQVkoIGNzX3JlY3ZfZGVsYXkgKTsN Cgl9IGVsc2Ugew0KCQltX2ZyZWVtKG0pOw0KCX0NCg0KCXJldHVybiAwOw0K fQ0KDQovKg0KICogSGFuZGxlIGludGVycnVwdHMNCiAqLw0Kdm9pZA0KY3Np bnRyKHZvaWQgKmFyZykNCnsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0gKHN0 cnVjdCBjc19zb2Z0YyopIGFyZzsNCglzdHJ1Y3QgaWZuZXQgKmlmcCA9ICYo c2MtPmFycGNvbS5hY19pZik7DQoJaW50IHN0YXR1czsNCg0KI2lmZGVmIENT X0RFQlVHDQoJaW50IHVuaXQgPSBpZnAtPmlmX3VuaXQ7DQoJcHJpbnRmKENT X05BTUUiJTFkOiBJbnRlcnJ1cHQuXG4iLCB1bml0KTsNCiNlbmRpZg0KDQoJ d2hpbGUgKChzdGF0dXM9Y3NfcmVhZHdvcmQoc2MtPm5pY19hZGRyLCBJU1Ff UE9SVCkpKSB7DQoNCiNpZmRlZiBDU19ERUJVRw0KCQlwcmludGYoIENTX05B TUUiJTFkOmZyb20gSVNROiAlMDR4XG4iLCB1bml0LCBzdGF0dXMgKTsNCiNl bmRpZg0KDQoJCXN3aXRjaCAoc3RhdHVzICYgSVNRX0VWRU5UX01BU0spIHsN CiAgICAgICAgICAgICAgICBjYXNlIElTUV9SRUNFSVZFUl9FVkVOVDoNCiAg ICAgICAgICAgICAgICAgICAgICAgIGNzX2dldF9wYWNrZXQoc2MpOw0KICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAg ICBjYXNlIElTUV9UUkFOU01JVFRFUl9FVkVOVDoNCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChzdGF0dXMgJiBUWF9PSykNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWZwLT5pZl9vcGFja2V0cysrOw0KICAgICAg ICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZnAtPmlmX29lcnJvcnMrKzsNCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmcC0+aWZfZmxhZ3MgJj0gfklGRl9PQUNUSVZFOw0KICAg ICAgICAgICAgICAgICAgICAgICAgaWZwLT5pZl90aW1lciA9IDA7DQogICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgICAg IGNhc2UgSVNRX0JVRkZFUl9FVkVOVDoNCiAgICAgICAgICAgICAgICAgICAg ICAgIGlmIChzdGF0dXMgJiBSRUFEWV9GT1JfVFgpIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWZwLT5pZl9mbGFncyAmPSB+SUZGX09B Q1RJVkU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcC0+ aWZfdGltZXIgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICYgVFhfVU5ERVJS VU4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZwLT5p Zl9mbGFncyAmPSB+SUZGX09BQ1RJVkU7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmcC0+aWZfdGltZXIgPSAwOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZnAtPmlmX29lcnJvcnMrKzsNCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOw0KDQogICAgICAgICAgICAgICAgY2FzZSBJU1FfUlhfTUlTU19F VkVOVDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmcC0+aWZfaWVycm9y cys9KHN0YXR1cz4+Nik7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVh azsNCg0KICAgICAgICAgICAgICAgIGNhc2UgSVNRX1RYX0NPTF9FVkVOVDoN CiAgICAgICAgICAgICAgICAgICAgICAgIGlmcC0+aWZfY29sbGlzaW9ucys9 KHN0YXR1cz4+Nik7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsN CiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBpZiAo IShpZnAtPmlmX2ZsYWdzICYgSUZGX09BQ1RJVkUpKSB7DQogICAgICAgICAg ICAgICAgY3Nfc3RhcnQoaWZwKTsNCiAgICAgICAgfQ0KfQ0KDQovKg0KICog U2F2ZSB0aGUgZGF0YSBpbiBidWZmZXINCiAqLw0KDQpzdGF0aWMgdm9pZA0K Y3Nfd3JpdGVfbWJ1ZnMoIHN0cnVjdCBjc19zb2Z0YyAqc2MsIHN0cnVjdCBt YnVmICptICkNCnsNCglpbnQgbGVuOw0KCXN0cnVjdCBtYnVmICptcDsNCgl1 bnNpZ25lZCBjaGFyICpkYXRhLCAqYnVmOw0KDQoJZm9yIChtcD1tLCBidWY9 c2MtPmJ1ZmZlciwgc2MtPmJ1Zl9sZW49MDsgbXAgIT0gTlVMTDsgbXA9bXAt Pm1fbmV4dCkgew0KCQlsZW4gPSBtcC0+bV9sZW47DQoNCgkJLyoNCgkJICog SWdub3JlIGVtcHR5IHBhcnRzDQoJCSAqLw0KCQlpZiAoIWxlbikNCgkJY29u dGludWU7DQoNCgkJLyoNCgkJICogRmluZCBhY3R1YWwgZGF0YSBhZGRyZXNz DQoJCSAqLw0KCQlkYXRhID0gbXRvZChtcCwgY2FkZHJfdCk7DQoNCgkJYmNv cHkoKGNhZGRyX3QpIGRhdGEsIChjYWRkcl90KSBidWYsIGxlbik7DQoJCWJ1 ZiArPSBsZW47DQoJCXNjLT5idWZfbGVuICs9IGxlbjsNCgl9DQp9DQoNCg0K c3RhdGljIHZvaWQNCmNzX3htaXRfYnVmKCBzdHJ1Y3QgY3Nfc29mdGMgKnNj ICkNCnsNCglvdXRzdyhzYy0+bmljX2FkZHIrVFhfRlJBTUVfUE9SVCwgc2Mt PmJ1ZmZlciwgKHNjLT5idWZfbGVuKzEpPj4xKTsNCglzYy0+YnVmX2xlbiA9 IDA7DQp9DQoNCnN0YXRpYyB2b2lkDQpjc19zdGFydChzdHJ1Y3QgaWZuZXQg KmlmcCkNCnsNCglpbnQgcywgbGVuZ3RoOw0KCXN0cnVjdCBtYnVmICptLCAq bXA7DQoJc3RydWN0IGNzX3NvZnRjICpzYyA9IGlmcC0+aWZfc29mdGM7DQoN CglzID0gc3BsaW1wKCk7DQoNCglmb3IgKDs7KSB7DQoJCWlmIChzYy0+YnVm X2xlbikNCgkJCWxlbmd0aCA9IHNjLT5idWZfbGVuOw0KCQllbHNlIHsNCgkJ CUlGX0RFUVVFVUUoICZpZnAtPmlmX3NuZCwgbSApOw0KDQoJCQlpZiAobT09 TlVMTCkgew0KCQkJCSh2b2lkKSBzcGx4KHMpOw0KCQkJCXJldHVybjsNCgkJ CX0NCg0KCQkJZm9yIChsZW5ndGg9MCwgbXA9bTsgbXAgIT0gTlVMTDsgbXA9 bXAtPm1fbmV4dCkNCgkJCQlsZW5ndGggKz0gbXAtPm1fbGVuOw0KDQoJCQkv KiBTa2lwIHplcm8tbGVuZ3RoIHBhY2tldHMgKi8NCgkJCWlmIChsZW5ndGgg PT0gMCkgew0KCQkJCW1fZnJlZW0obSk7DQoJCQkJY29udGludWU7DQoJCQl9 DQoNCgkJCWNzX3dyaXRlX21idWZzKHNjLCBtKTsNCg0KCQkJaWYgKGlmcC0+ aWZfYnBmKSB7DQoJCQkJYnBmX210YXAoaWZwLCBtKTsNCgkJCX0NCg0KCQkJ bV9mcmVlbShtKTsNCgkJfQ0KDQoJCS8qDQoJCSAqIElzc3VlIGEgU0VORCBj b21tYW5kDQoJCSAqLw0KCQlvdXR3KHNjLT5uaWNfYWRkcitUWF9DTURfUE9S VCwgc2MtPnNlbmRfY21kKTsNCgkJb3V0dyhzYy0+bmljX2FkZHIrVFhfTEVO X1BPUlQsIGxlbmd0aCApOw0KDQoJCS8qDQoJCSAqIElmIHRoZXJlJ3Mgbm8g ZnJlZSBzcGFjZSBpbiB0aGUgYnVmZmVyIHRoZW4gbGVhdmUNCgkJICogdGhp cyBwYWNrZXQgZm9yIHRoZSBuZXh0IHRpbWU6IGluZGljYXRlIG91dHB1dCBh Y3RpdmUNCgkJICogYW5kIHJldHVybi4NCgkJICovDQoJCWlmICghKGNzX3Jl YWRyZWcoc2MtPm5pY19hZGRyLCBQUF9CdXNTVCkgJiBSRUFEWV9GT1JfVFhf Tk9XKSkgew0KCQkJaWZwLT5pZl90aW1lciA9IHNjLT5idWZfbGVuOw0KCQkJ KHZvaWQpIHNwbHgocyk7DQoJCQlpZnAtPmlmX2ZsYWdzIHw9IElGRl9PQUNU SVZFOw0KCQkJcmV0dXJuOw0KCQl9DQoNCiAgICAgICAgICAgICAgIAljc194 bWl0X2J1ZihzYyk7DQoNCgkJLyoNCgkJICogU2V0IHRoZSB3YXRjaGRvZyB0 aW1lciBpbiBjYXNlIHdlIG5ldmVyIGhlYXINCgkJICogZnJvbSBib2FyZCBh Z2Fpbi4gKEkgZG9uJ3Qga25vdyBhYm91dCBjb3JyZWN0DQoJCSAqIHZhbHVl IGZvciB0aGlzIHRpbWVvdXQpDQoJCSAqLw0KCQlpZnAtPmlmX3RpbWVyID0g bGVuZ3RoOw0KDQoJCSh2b2lkKSBzcGx4KHMpOw0KCQlpZnAtPmlmX2ZsYWdz IHw9IElGRl9PQUNUSVZFOw0KCQlyZXR1cm47DQoJfQ0KfQ0KDQovKg0KICog U3RvcCBldmVyeXRoaW5nIG9uIHRoZSBpbnRlcmZhY2UNCiAqLw0Kc3RhdGlj IHZvaWQNCmNzX3N0b3Aoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglpbnQg cyA9IHNwbGltcCgpOw0KDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQ UF9SeENGRywgMCk7DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9U eENGRywgMCk7DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9CdWZD RkcsIDApOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVzQ1RM LCAwKTsNCg0KCXNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJj0gfihJRkZf UlVOTklORyB8IElGRl9PQUNUSVZFKTsNCglzYy0+YXJwY29tLmFjX2lmLmlm X3RpbWVyID0gMDsNCg0KCSh2b2lkKSBzcGx4KHMpOw0KfQ0KDQovKg0KICog UmVzZXQgdGhlIGludGVyZmFjZQ0KICovDQpzdGF0aWMgdm9pZA0KY3NfcmVz ZXQoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCgljc19zdG9wKHNjKTsNCglj c19pbml0KHNjKTsNCn0NCg0Kc3RhdGljIHZvaWQNCmNzX3NldG1vZGUoc3Ry dWN0IGNzX3NvZnRjICpzYykNCnsNCglzdHJ1Y3QgaWZuZXQgKmlmcCA9ICYo c2MtPmFycGNvbS5hY19pZik7DQoJaW50IHJ4X2N0bDsNCg0KCS8qIFN0b3Ag dGhlIHJlY2VpdmVyIHdoaWxlIGNoYW5naW5nIGZpbHRlcnMgKi8NCgljc193 cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwsIA0KCQkJY3NfcmVh ZHJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwpICYgflNFUklBTF9SWF9P Tik7DQoNCglpZiAoaWZwLT5pZl9mbGFncyAmIElGRl9QUk9NSVNDKSB7DQoJ CS8qIFR1cm4gb24gcHJvbWlzY3VvdXMgbW9kZS4gKi8NCgkJcnhfY3RsID0g UlhfT0tfQUNDRVBUIHwgUlhfUFJPTV9BQ0NFUFQ7DQoJfSBlbHNlIHsNCgkJ aWYgKGlmcC0+aWZfZmxhZ3MgJiBJRkZfTVVMVElDQVNUKSB7DQoJCQkvKiBB bGxvdyByZWNlaXZpbmcgZnJhbWVzIHdpdGggbXVsdGljYXN0IGFkZHJlc3Nl cyAqLw0KCQkJcnhfY3RsID0gUlhfSUFfQUNDRVBUIHwgUlhfQlJPQURDQVNU X0FDQ0VQVCB8DQoJCQkJIFJYX09LX0FDQ0VQVCB8IFJYX01VTFRDQVNUX0FD Q0VQVDsNCgkJCS8qDQoJCQkgKiBIZXJlIHRoZSByZWNvbmZpZ3VyYXRpb24g b2YgY2hpcCdzIG11bHRpY2FzdA0KCQkJICogZmlsdGVycyBzaG91bGQgYmUg ZG9uZSBidXQgSSd2ZSBubyBpZGVhIGFib3V0DQoJCQkgKiBoYXNoIHRyYW5z Zm9ybWF0aW9uIGluIHRoaXMgY2hpcC4gSWYgeW91IGNhbg0KCQkJICogYWRk IHRoaXMgY29kZSBvciBkZXNjcmliZSBtZSB0aGUgdHJhbnNmb3JtYXRpb24N CgkJCSAqIEknZCBiZSB2ZXJ5IGdsYWQuDQoJCQkgKi8NCgkJfSBlbHNlIHsN CgkJCS8qDQoJCQkgKiBSZWNlaXZlIG9ubHkgZ29vZCBmcmFtZXMgYWRkcmVz c2VkIGZvciB1cyBhbmQNCgkJCSAqIGdvb2QgYnJvYWRjYXN0cy4NCgkJCSAq Lw0KCQkJcnhfY3RsID0gUlhfSUFfQUNDRVBUIHwgUlhfQlJPQURDQVNUX0FD Q0VQVCB8DQoJCQkJIFJYX09LX0FDQ0VQVDsNCgkJfQ0KCX0NCg0KCS8qIFNl dCB1cCB0aGUgZmlsdGVyICovDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRy LCBQUF9SeENUTCwgUlhfREVGX0FDQ0VQVCB8IHJ4X2N0bCk7DQoNCgkvKiBU dXJuIG9uIHJlY2VpdmVyICovDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRy LCBQUF9MaW5lQ1RMLA0KCQkJY3NfcmVhZHJlZyhzYy0+bmljX2FkZHIsIFBQ X0xpbmVDVEwpIHwgU0VSSUFMX1JYX09OKTsNCn0NCg0Kc3RhdGljIGludA0K Y3NfaW9jdGwocmVnaXN0ZXIgc3RydWN0IGlmbmV0ICppZnAsIHVfbG9uZyBj b21tYW5kLCBjYWRkcl90IGRhdGEpDQp7DQoJc3RydWN0IGNzX3NvZnRjICpz Yz1pZnAtPmlmX3NvZnRjOw0KCXN0cnVjdCBpZnJlcSAqaWZyID0gKHN0cnVj dCBpZnJlcSAqKWRhdGE7DQoJaW50IHMsZXJyb3I9MDsNCg0KI2lmZGVmIENT X0RFQlVHDQoJcHJpbnRmKENTX05BTUUiJWQ6IGlvY3RsKCVseClcbiIsc2Mt PmFycGNvbS5hY19pZi5pZl91bml0LGNvbW1hbmQpOw0KI2VuZGlmDQoNCglz PXNwbGltcCgpOw0KDQoJc3dpdGNoIChjb21tYW5kKSB7DQoJY2FzZSBTSU9D U0lGQUREUjoNCgljYXNlIFNJT0NHSUZBRERSOg0KCWNhc2UgU0lPQ1NJRk1U VToNCgkJZXRoZXJfaW9jdGwoaWZwLCBjb21tYW5kLCBkYXRhKTsNCgkJYnJl YWs7DQoNCgljYXNlIFNJT0NTSUZGTEFHUzoNCgkJLyoNCgkJICogU3dpdGNo IGludGVyZmFjZSBzdGF0ZSBiZXR3ZWVuICJydW5uaW5nIiBhbmQNCgkJICog InN0b3BwZWQiLCByZWZsZWN0aW5nIHRoZSBVUCBmbGFnLg0KICAgICAgICAg ICAgICAgICAqLw0KICAgICAgICAgICAgICAgIGlmIChzYy0+YXJwY29tLmFj X2lmLmlmX2ZsYWdzICYgSUZGX1VQKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICBpZiAoKHNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJiBJRkZfUlVO TklORyk9PTApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3NfaW5pdChzYyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IGlmICgoc2MtPmFycGNvbS5hY19pZi5pZl9mbGFncyAmIElGRl9SVU5OSU5H KSE9MCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc19z dG9wKHNjKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCgkJfQ0KCQkv Kg0KCQkgKiBQcm9taXNjdW91cyBhbmQvb3IgbXVsdGljYXN0IGZsYWdzIG1h eSBoYXZlIGNoYW5nZWQsDQoJCSAqIHNvIHJlcHJvZ3JhbSB0aGUgbXVsdGlj YXN0IGZpbHRlciBhbmQvb3IgcmVjZWl2ZSBtb2RlLg0KCQkgKg0KCQkgKiBT ZWUgbm90ZSBhYm91dCBtdWx0aWNhc3RzIGluIGNzX3NldG1vZGUNCgkJICov DQoJCWNzX3NldG1vZGUoc2MpOw0KCQlicmVhazsNCg0KCWNhc2UgU0lPQ0FE RE1VTFRJOg0KCWNhc2UgU0lPQ0RFTE1VTFRJOg0KCSAgICAvKg0KCSAgICAg KiBNdWx0aWNhc3QgbGlzdCBoYXMgY2hhbmdlZDsgc2V0IHRoZSBoYXJkd2Fy ZSBmaWx0ZXINCgkgICAgICogYWNjb3JkaW5nbHkuDQoJICAgICAqDQoJICAg ICAqIFNlZSBub3RlIGFib3V0IG11bHRpY2FzdHMgaW4gY3Nfc2V0bW9kZQ0K CSAgICAgKi8NCgkgICAgY3Nfc2V0bW9kZShzYyk7DQoJICAgIGVycm9yID0g MDsNCgkgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSBTSU9DU0lGTUVESUE6 DQogICAgICAgIGNhc2UgU0lPQ0dJRk1FRElBOg0KICAgICAgICAgICAgICAg IGVycm9yID0gaWZtZWRpYV9pb2N0bChpZnAsIGlmciwgJnNjLT5tZWRpYSwg Y29tbWFuZCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAg ZGVmYXVsdDoNCgkJZXJyb3IgPSBFSU5WQUw7DQogICAgICAgIH0NCg0KCSh2 b2lkKSBzcGx4KHMpOw0KCXJldHVybiBlcnJvcjsNCn0NCg0KLyoNCiAqIERl dmljZSB0aW1lb3V0L3dhdGNoZG9nIHJvdXRpbmUuIEVudGVyZWQgaWYgdGhl IGRldmljZSBuZWdsZWN0cyB0bw0KICogZ2VuZXJhdGUgYW4gaW50ZXJydXB0 IGFmdGVyIGEgdHJhbnNtaXQgaGFzIGJlZW4gc3RhcnRlZCBvbiBpdC4NCiAq Lw0Kc3RhdGljIHZvaWQNCmNzX3dhdGNoZG9nKHN0cnVjdCBpZm5ldCAqaWZw KQ0Kew0KCXN0cnVjdCBjc19zb2Z0YyAqc2MgPSBpZnAtPmlmX3NvZnRjOw0K DQoJaWZwLT5pZl9vZXJyb3JzKys7DQoJbG9nKExPR19FUlIsIENTX05BTUUi JWQ6IGRldmljZSB0aW1lb3V0XG4iLCBpZnAtPmlmX3VuaXQpOw0KDQoJLyog UmVzZXQgdGhlIGludGVyZmFjZSAqLw0KCWlmIChpZnAtPmlmX2ZsYWdzICYg SUZGX1VQKQ0KCQljc19yZXNldChzYyk7DQoJZWxzZQ0KCQljc19zdG9wKHNj KTsNCn0NCg0Kc3RhdGljIGludA0KY3NfbWVkaWFjaGFuZ2Uoc3RydWN0IGlm bmV0ICppZnApDQp7DQoJc3RydWN0IGNzX3NvZnRjICpzYyA9IGlmcC0+aWZf c29mdGM7DQoJc3RydWN0IGlmbWVkaWEgKmlmbSA9ICZzYy0+bWVkaWE7DQoN CglpZiAoSUZNX1RZUEUoaWZtLT5pZm1fbWVkaWEpICE9IElGTV9FVEhFUikN CgkJcmV0dXJuIEVJTlZBTDsNCg0KCXJldHVybiBjc19tZWRpYXNldChzYywg aWZtLT5pZm1fbWVkaWEpOw0KfQ0KDQpzdGF0aWMgdm9pZA0KY3NfbWVkaWFz dGF0dXMoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBpZm1lZGlhcmVxICpp Zm1yKQ0Kew0KCWludCBsaW5lX3N0YXR1czsNCglzdHJ1Y3QgY3Nfc29mdGMg KnNjID0gaWZwLT5pZl9zb2Z0YzsNCg0KCWlmbXItPmlmbV9hY3RpdmUgPSBJ Rk1fRVRIRVI7DQoJbGluZV9zdGF0dXMgPSBjc19yZWFkcmVnKHNjLT5uaWNf YWRkciwgUFBfTGluZVNUKTsNCglpZiAobGluZV9zdGF0dXMgJiBURU5CQVNF VF9PTikgew0KCQlpZm1yLT5pZm1fYWN0aXZlIHw9IElGTV8xMF9UOw0KCQlp ZiAoc2MtPmNoaXBfdHlwZSAhPSBDUzg5MDApIHsNCgkJCWlmIChjc19yZWFk cmVnKHNjLT5uaWNfYWRkciwgUFBfQXV0b05lZ1NUKSAmIEZEWF9BQ1RJVkUp DQoJCQkJaWZtci0+aWZtX2FjdGl2ZSB8PSBJRk1fRkRYOw0KCQkJaWYgKGNz X3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9BdXRvTmVnU1QpICYgSERYX0FD VElWRSkNCgkJCQlpZm1yLT5pZm1fYWN0aXZlIHw9IElGTV9IRFg7DQoJCX0N CgkJaWZtci0+aWZtX3N0YXR1cyA9IElGTV9BVkFMSUQ7DQoJCWlmIChsaW5l X3N0YXR1cyAmIExJTktfT0spDQoJCQlpZm1yLT5pZm1fc3RhdHVzIHw9IElG TV9BQ1RJVkU7DQoJfSBlbHNlIHsNCgkJaWYgKGxpbmVfc3RhdHVzICYgQVVJ X09OKSB7DQoJCQljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX1NlbGZD VEwsDQoJCQkJICAgIGNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9TZWxm Q1RMKSB8DQoJCQkJICAgIEhDQjFfRU5CTCk7DQoJCQlpZiAoKChzYy0+YWRh cHRlcl9jbmYgJiBBX0NORl9EQ19EQ19QT0xBUklUWSkhPTApXg0KCQkJICAg IChjc19yZWFkcmVnKHNjLT5uaWNfYWRkciwgUFBfU2VsZkNUTCkmSENCMSkp DQoJCQkJaWZtci0+aWZtX2FjdGl2ZSB8PSBJRk1fMTBfMjsNCgkJCWVsc2UN CgkJCQlpZm1yLT5pZm1fYWN0aXZlIHw9IElGTV8xMF81Ow0KCQl9DQoJfQ0K fQ0KDQpzdGF0aWMgaW50DQpjc19tZWRpYXNldChzdHJ1Y3QgY3Nfc29mdGMg KnNjLCBpbnQgbWVkaWEpDQp7DQogICAgICAgIGludCBlcnJvcjsNCg0KCS8q IFN0b3AgdGhlIHJlY2VpdmVyICYgdHJhbnNtaXR0ZXIgKi8NCgljc193cml0 ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwsDQogICAgICAgICAgICAg ICAgICAgIGNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMKSAm DQoJCSAgICB+KFNFUklBTF9SWF9PTiB8IFNFUklBTF9UWF9PTikpOw0KDQoj aWZkZWYgQ1NfREVCVUcNCglwcmludGYoQ1NfTkFNRSIlZDogY3Nfc2V0bWVk aWEoJXgpXG4iLHNjLT5hcnBjb20uYWNfaWYuaWZfdW5pdCxtZWRpYSk7DQoj ZW5kaWYNCg0KCXN3aXRjaCAoSUZNX1NVQlRZUEUobWVkaWEpKSB7DQoJZGVm YXVsdDoNCgljYXNlIElGTV9BVVRPOg0KCQlpZiAoKGVycm9yPWVuYWJsZV90 cChzYykpPT0wKQ0KCQkJZXJyb3IgPSBjc19kdXBsZXhfYXV0byhzYyk7DQoJ CWVsc2UgaWYgKChlcnJvcj1lbmFibGVfYm5jKHNjKSkgIT0gMCkNCgkJCWVy cm9yID0gZW5hYmxlX2F1aShzYyk7DQoJCWJyZWFrOw0KCWNhc2UgSUZNXzEw X1Q6DQoJCWlmICgoZXJyb3I9ZW5hYmxlX3RwKHNjKSkgIT0gMCkNCgkJCWJy ZWFrOw0KCQlpZiAobWVkaWEgJiBJRk1fRkRYKQ0KCQkJY3NfZHVwbGV4X2Z1 bGwoc2MpOw0KCQllbHNlIGlmIChtZWRpYSAmIElGTV9IRFgpDQoJCQljc19k dXBsZXhfaGFsZihzYyk7DQoJCWVsc2UNCgkJCWVycm9yID0gY3NfZHVwbGV4 X2F1dG8oc2MpOw0KCQlicmVhazsNCgljYXNlIElGTV8xMF8yOg0KCQllcnJv ciA9IGVuYWJsZV9ibmMoc2MpOw0KCQlicmVhazsNCgljYXNlIElGTV8xMF81 Og0KCQllcnJvciA9IGVuYWJsZV9hdWkoc2MpOw0KCQlicmVhazsNCgl9DQoN CgkvKg0KCSAqIFR1cm4gdGhlIHRyYW5zbWl0dGVyICYgcmVjZWl2ZXIgYmFj ayBvbg0KCSAqLw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfTGlu ZUNUTCwNCgkJICAgIGNzX3JlYWRyZWcoIHNjLT5uaWNfYWRkciwgUFBfTGlu ZUNUTCApIHwNCgkJICAgIFNFUklBTF9SWF9PTiB8IFNFUklBTF9UWF9PTik7 IA0KDQoJcmV0dXJuIGVycm9yOw0KfQ== --0-1106502712-952877046=:96199 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="if_csreg.h" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.BSF.4.10.10003121904061.96199@altos.rnd.runnet.ru> Content-Description: sys/dev/cs/if_csreg.h Content-Disposition: ATTACHMENT; FILENAME="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 IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRGcmVl QlNEOiBzcmMvc3lzL2kzODYvaXNhL2lmX2NzcmVnLmgsdiAxLjIgMTk5OS8w OC8yOCAwMDo0NDo0MyBwZXRlciBFeHAgJA0KICovDQoNCiNkZWZpbmUgQ1Nf ODl4MF9JT19QT1JUUwkweDAwMjANCg0KI2RlZmluZSBQUF9DaGlwSUQgMHgw MDAwCS8qIG9mZnNldCAgIDBoIC0+IENvcnAgLUlEICAgICAgICAgICAgICAq Lw0KCQkJCS8qIG9mZnNldCAgIDJoIC0+IE1vZGVsL1Byb2R1Y3QgTnVtYmVy ICAqLw0KCQkJCS8qIG9mZnNldCAgIDNoIC0+IENoaXAgUmV2aXNpb24gTnVt YmVyICAqLw0KDQojZGVmaW5lIFBQX0lTQUlPQgkJMHgwMDIwCS8qICBJTyBi YXNlIGFkZHJlc3MgKi8NCiNkZWZpbmUJUFBfQ1M4OTAwX0lTQUlOVAkweDAw MjIJLyogIElTQSBpbnRlcnJ1cHQgc2VsZWN0ICovDQojZGVmaW5lCVBQX0NT ODkwMF9JU0FETUEJMHgwMDI0CS8qICBJU0EgUmVjIERNQSBjaGFubmVsICov DQojZGVmaW5lIFBQX0NTODkyMF9JU0FJTlQJMHgwMzcwCS8qICBJU0EgaW50 ZXJydXB0IHNlbGVjdCAqLw0KI2RlZmluZSBQUF9DUzg5MjBfSVNBRE1BIAkw eDAzNzQJLyogIElTQSBSZWMgRE1BIGNoYW5uZWwgKi8NCiNkZWZpbmUgUFBf SVNBU09GCQkweDAwMjYJLyogIElTQSBETUEgb2Zmc2V0ICovDQojZGVmaW5l IFBQX0RtYUZyYW1lQ250CQkweDAwMjgJLyogIElTQSBETUEgRnJhbWUgY291 bnQgKi8NCiNkZWZpbmUgUFBfRG1hQnl0ZUNudAkJMHgwMDJBCS8qICBJU0Eg RE1BIEJ5dGUgY291bnQgKi8NCiNkZWZpbmUgUFBfQ1M4OTIwX0lTQU1lbUIJ MHgwMzQ4CS8qICBNZW1vcnkgYmFzZSAqLw0KDQovKiBFRVBST00gZGF0YSBh bmQgY29tbWFuZCByZWdpc3RlcnMgKi8NCiNkZWZpbmUgUFBfRUVDTUQJCTB4 MDA0MAkvKiAgTlZSIEludGVyZmFjZSBDb21tYW5kIHJlZ2lzdGVyICovDQoj ZGVmaW5lIFBQX0VFRGF0YQkJMHgwMDQyCS8qICBOVlIgSW50ZXJmYWNlIERh dGEgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfRGVidWdSZWcJCTB4MDA0NAkv KiAgRGVidWcgUmVnaXN0ZXIgKi8NCg0KI2RlZmluZSBQUF9SeENGRwkJMHgw MTAyCS8qICBSeCBCdXMgY29uZmlnICovDQojZGVmaW5lIFBQX1J4Q1RMCQkw eDAxMDQJLyogIFJlY2VpdmUgQ29udHJvbCBSZWdpc3RlciAqLw0KI2RlZmlu ZSBQUF9UeENGRwkJMHgwMTA2CS8qICBUcmFuc21pdCBDb25maWcgUmVnaXN0 ZXIgKi8NCiNkZWZpbmUgUFBfVHhDTUQJCTB4MDEwOAkvKiAgVHJhbnNtaXQg Q29tbWFuZCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9CdWZDRkcJCTB4MDEw QQkvKiAgQnVzIGNvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8NCiNkZWZpbmUg UFBfTGluZUNUTAkJMHgwMTEyCS8qICBMaW5lIENvbmZpZyBSZWdpc3RlciAq Lw0KI2RlZmluZSBQUF9TZWxmQ1RMCQkweDAxMTQJLyogIFNlbGYgQ29tbWFu ZCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9CdXNDVEwJCTB4MDExNgkvKiAg SVNBIGJ1cyBjb250cm9sIFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX1Rlc3RD VEwJCTB4MDExOAkvKiAgVGVzdCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9B dXRvTmVnQ1RMCQkweDAxMUMJLyogIEF1dG8gTmVnb3RpYXRpb24gQ3RybCAq Lw0KDQojZGVmaW5lIFBQX0lTUQkJCTB4MDEyMAkvKiAgSW50ZXJydXB0IFN0 YXR1cyAqLw0KI2RlZmluZSBQUF9SeEV2ZW50CQkweDAxMjQJLyogIFJ4IEV2 ZW50IFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX1R4RXZlbnQJCTB4MDEyOAkv KiAgVHggRXZlbnQgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQnVmRXZlbnQJ CTB4MDEyQwkvKiAgQnVzIEV2ZW50IFJlZ2lzdGVyICovDQojZGVmaW5lIFBQ X1J4TWlzcwkJMHgwMTMwCS8qICBSZWNlaXZlIE1pc3MgQ291bnQgKi8NCiNk ZWZpbmUgUFBfVHhDb2wJCTB4MDEzMgkvKiAgVHJhbnNtaXQgQ29sbGlzaW9u IENvdW50ICovDQojZGVmaW5lIFBQX0xpbmVTVAkJMHgwMTM0CS8qICBMaW5l IFN0YXRlIFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX1NlbGZTVAkJMHgwMTM2 CS8qICBTZWxmIFN0YXRlIHJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0J1c1NU CQkweDAxMzgJLyogIEJ1cyBTdGF0dXMgKi8NCiNkZWZpbmUgUFBfVERSCQkJ MHgwMTNDCS8qICBUaW1lIERvbWFpbiBSZWZsZWN0b21ldHJ5ICovDQojZGVm aW5lIFBQX0F1dG9OZWdTVAkJMHgwMTNFCS8qICBBdXRvIE5lZyBTdGF0dXMg Ki8NCiNkZWZpbmUgUFBfVHhDb21tYW5kCQkweDAxNDQJLyogIFR4IENvbW1h bmQgKi8NCiNkZWZpbmUgUFBfVHhMZW5ndGgJCTB4MDE0NgkvKiAgVHggTGVu Z3RoICovDQojZGVmaW5lIFBQX0xBRgkJCTB4MDE1MAkvKiAgSGFzaCBUYWJs ZSAqLw0KI2RlZmluZSBQUF9JQQkJCTB4MDE1OAkvKiAgUGh5c2ljYWwgQWRk cmVzcyBSZWdpc3RlciAqLw0KDQojZGVmaW5lIFBQX1J4U3RhdHVzCQkweDA0 MDAJLyogIFJlY2VpdmUgc3RhcnQgb2YgZnJhbWUgKi8NCiNkZWZpbmUgUFBf UnhMZW5ndGgJCTB4MDQwMgkvKiAgUmVjZWl2ZSBMZW5ndGggb2YgZnJhbWUg Ki8NCiNkZWZpbmUgUFBfUnhGcmFtZQkJMHgwNDA0CS8qICBSZWNlaXZlIGZy YW1lIHBvaW50ZXIgKi8NCiNkZWZpbmUgUFBfVHhGcmFtZQkJMHgwQTAwCS8q ICBUcmFuc21pdCBmcmFtZSBwb2ludGVyICovDQoNCi8qDQogKiAgUHJpbWFy eSBJL08gQmFzZSBBZGRyZXNzLiBJZiBubyBJL08gYmFzZSBpcyBzdXBwbGll ZCBieSB0aGUgdXNlciwgdGhlbiB0aGlzDQogKiAgY2FuIGJlIHVzZWQgYXMg dGhlIGRlZmF1bHQgSS9PIGJhc2UgdG8gYWNjZXNzIHRoZSBQYWNrZXRQYWdl IEFyZWEuDQogKi8NCiNkZWZpbmUgREVGQVVMVElPQkFTRQkJMHgwMzAwDQoj ZGVmaW5lIEZJUlNUX0lPCQkweDAyMEMJLyogIEZpcnN0IEkvTyBwb3J0IHRv IGNoZWNrICovDQojZGVmaW5lIExBU1RfSU8JCQkweDAzN0MJLyogIExhc3Qg SS9PIHBvcnQgdG8gY2hlY2sgKCsxMGgpICovDQojZGVmaW5lIEFERF9NQVNL CQkweDMwMDAJLyogIE1hc2sgaXQgdXNlIG9mIHRoZSBBRERfUE9SVCByZWdp c3RlciAqLw0KI2RlZmluZSBBRERfU0lHCQkJMHgzMDAwCS8qICBFeHBlY3Rl ZCBJRCBzaWduYXR1cmUgKi8NCg0KI2RlZmluZSBDSElQX0VJU0FfSURfU0lH CTB4NjMwRQkvKiAgUHJvZHVjdCBJRCBDb2RlIGZvciBDcnlzdGFsIENoaXAg KENTODkwMCBzcGVjIDQuMykgKi8NCg0KI2RlZmluZSBQUk9EVUNUX0lEX0FE RAkJMHgwMDAyCS8qICBBZGRyZXNzIG9mIHByb2R1Y3QgSUQgKi8NCg0KLyog IE1hc2sgdG8gZmluZCBvdXQgdGhlIHR5cGVzIG9mICByZWdpc3RlcnMgKi8N CiNkZWZpbmUgUkVHX1RZUEVfTUFTSwkJMHgwMDFGDQoNCi8qICBFZXByb20g Q29tbWFuZHMgKi8NCiNkZWZpbmUgRVJTRV9XUl9FTkJMCQkweDAwRjANCiNk ZWZpbmUgRVJTRV9XUl9ESVNBQkxFCQkweDAwMDANCg0KLyogIERlZmluZXMg Q29udHJvbC9Db25maWcgcmVnaXN0ZXIgcXVpbnR1cGxldCBudW1iZXJzICov DQojZGVmaW5lIFJYX0JVRl9DRkcJCTB4MDAwMw0KI2RlZmluZSBSWF9DT05U Uk9MCQkweDAwMDUNCiNkZWZpbmUgVFhfQ0ZHCQkJMHgwMDA3DQojZGVmaW5l IFRYX0NPTU1BTkQJCTB4MDAwOQ0KI2RlZmluZSBCVUZfQ0ZHCQkJMHgwMDBC DQojZGVmaW5lIExJTkVfQ09OVFJPTAkJMHgwMDEzDQojZGVmaW5lIFNFTEZf Q09OVFJPTAkJMHgwMDE1DQojZGVmaW5lIEJVU19DT05UUk9MCQkweDAwMTcN CiNkZWZpbmUgVEVTVF9DT05UUk9MCQkweDAwMTkNCg0KLyogIERlZmluZXMg U3RhdHVzL0NvdW50IHJlZ2lzdGVycyBxdWludHVwbGV0IG51bWJlcnMgKi8N CiNkZWZpbmUgUlhfRVZFTlQJCTB4MDAwNA0KI2RlZmluZSBUWF9FVkVOVAkJ MHgwMDA4DQojZGVmaW5lIEJVRl9FVkVOVAkJMHgwMDBDDQojZGVmaW5lIFJY X01JU1NfQ09VTlQJCTB4MDAxMA0KI2RlZmluZSBUWF9DT0xfQ09VTlQJCTB4 MDAxMg0KI2RlZmluZSBMSU5FX1NUQVRVUwkJMHgwMDE0DQojZGVmaW5lIFNF TEZfU1RBVFVTCQkweDAwMTYNCiNkZWZpbmUgQlVTX1NUQVRVUwkJMHgwMDE4 DQojZGVmaW5lIFREUgkJCTB4MDAxQw0KDQovKg0KICogUFBfUnhDRkcgLSBS ZWNlaXZlICBDb25maWd1cmF0aW9uIGFuZCBJbnRlcnJ1cHQgTWFzaw0KICoJ CQkgYml0IGRlZmluaXRpb24gLSAgUmVhZC93cml0ZQ0KICovDQojZGVmaW5l IFNLSVBfMQkJCTB4MDA0MA0KI2RlZmluZSBSWF9TVFJFQU1fRU5CTAkJMHgw MDgwDQojZGVmaW5lIFJYX09LX0VOQkwJCTB4MDEwMA0KI2RlZmluZSBSWF9E TUFfT05MWQkJMHgwMjAwDQojZGVmaW5lIEFVVE9fUlhfRE1BCQkweDA0MDAN CiNkZWZpbmUgQlVGRkVSX0NSQwkJMHgwODAwDQojZGVmaW5lIFJYX0NSQ19F UlJPUl9FTkJMCTB4MTAwMA0KI2RlZmluZSBSWF9SVU5UX0VOQkwJCTB4MjAw MA0KI2RlZmluZSBSWF9FWFRSQV9EQVRBX0VOQkwJMHg0MDAwDQoNCi8qIFBQ X1J4Q1RMIC0gUmVjZWl2ZSBDb250cm9sIGJpdCBkZWZpbml0aW9uIC0gUmVh ZC93cml0ZSAqLw0KI2RlZmluZSBSWF9JQV9IQVNIX0FDQ0VQVAkweDAwNDAN CiNkZWZpbmUgUlhfUFJPTV9BQ0NFUFQJCTB4MDA4MA0KI2RlZmluZSBSWF9P S19BQ0NFUFQJCTB4MDEwMA0KI2RlZmluZSBSWF9NVUxUQ0FTVF9BQ0NFUFQJ MHgwMjAwDQojZGVmaW5lIFJYX0lBX0FDQ0VQVAkJMHgwNDAwDQojZGVmaW5l IFJYX0JST0FEQ0FTVF9BQ0NFUFQJMHgwODAwDQojZGVmaW5lIFJYX0JBRF9D UkNfQUNDRVBUCTB4MTAwMA0KI2RlZmluZSBSWF9SVU5UX0FDQ0VQVAkJMHgy MDAwDQojZGVmaW5lIFJYX0VYVFJBX0RBVEFfQUNDRVBUCTB4NDAwMA0KI2Rl ZmluZSBSWF9BTExfQUNDRVBUCQkoUlhfUFJPTV9BQ0NFUFQgfCBSWF9CQURf Q1JDX0FDQ0VQVCB8CVwNCgkJCQkgUlhfUlVOVF9BQ0NFUFQgfCBSWF9FWFRS QV9EQVRBX0FDQ0VQVCkNCi8qDQogKiAgRGVmYXVsdCByZWNlaXZlIG1vZGUg LSBpbmRpdmlkdWFsbHkgYWRkcmVzc2VkLCBicm9hZGNhc3QsIGFuZCBlcnJv ciBmcmVlDQogKi8NCiNkZWZpbmUgUlhfREVGX0FDQ0VQVCAoUlhfSUFfQUND RVBUIHwgUlhfQlJPQURDQVNUX0FDQ0VQVCB8IFJYX09LX0FDQ0VQVCkNCg0K LyoNCiAqIFBQX1R4Q0ZHIC0gVHJhbnNtaXQgQ29uZmlndXJhdGlvbiBJbnRl cnJ1cHQgTWFzaw0KICoJCQkgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRl DQogKi8NCiNkZWZpbmUgVFhfTE9TVF9DUlNfRU5CTAkweDAwNDANCiNkZWZp bmUgVFhfU1FFX0VSUk9SX0VOQkwJMHgwMDgwDQojZGVmaW5lIFRYX09LX0VO QkwJCTB4MDEwMA0KI2RlZmluZSBUWF9MQVRFX0NPTF9FTkJMCTB4MDIwMA0K I2RlZmluZSBUWF9KQlJfRU5CTAkJMHgwNDAwDQojZGVmaW5lIFRYX0FOWV9D T0xfRU5CTAkJMHgwODAwDQojZGVmaW5lIFRYXzE2X0NPTF9FTkJMCQkweDgw MDANCg0KLyoNCiAqIFBQX1R4Q01EIC0gVHJhbnNtaXQgQ29tbWFuZCBiaXQg ZGVmaW5pdGlvbiAtIFJlYWQtb25seQ0KICovDQojZGVmaW5lIFRYX1NUQVJU XzRfQllURVMJMHgwMDAwDQojZGVmaW5lIFRYX1NUQVJUXzY0X0JZVEVTCTB4 MDA0MA0KI2RlZmluZSBUWF9TVEFSVF8xMjhfQllURVMJMHgwMDgwDQojZGVm aW5lIFRYX1NUQVJUX0FMTF9CWVRFUwkweDAwQzANCiNkZWZpbmUgVFhfRk9S Q0UJCTB4MDEwMA0KI2RlZmluZSBUWF9PTkVfQ09MCQkweDAyMDANCiNkZWZp bmUgVFhfVFdPX1BBUlRfREVGRl9ESVNBQkxFIDB4MDQwMA0KI2RlZmluZSBU WF9OT19DUkMJCTB4MTAwMA0KI2RlZmluZSBUWF9SVU5UCQkJMHgyMDAwDQoN Ci8qDQogKiBQUF9CdWZDRkcgLSBCdWZmZXIgQ29uZmlndXJhdGlvbiBJbnRl cnJ1cHQgTWFzaw0KICoJCQkgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRl DQogKi8NCiNkZWZpbmUgR0VORVJBVEVfU1dfSU5URVJSVVBUCTB4MDA0MA0K I2RlZmluZSBSWF9ETUFfRU5CTAkJMHgwMDgwDQojZGVmaW5lIFJFQURZX0ZP Ul9UWF9FTkJMCTB4MDEwMA0KI2RlZmluZSBUWF9VTkRFUlJVTl9FTkJMCTB4 MDIwMA0KI2RlZmluZSBSWF9NSVNTX0VOQkwJCTB4MDQwMA0KI2RlZmluZSBS WF8xMjhfQllURV9FTkJMCTB4MDgwMA0KI2RlZmluZSBUWF9DT0xfQ09VTlRf T1ZSRkxPV19FTkJMIDB4MTAwMA0KI2RlZmluZSBSWF9NSVNTX0NPVU5UX09W UkZMT1dfRU5CTCAweDIwMDANCiNkZWZpbmUgUlhfREVTVF9NQVRDSF9FTkJM CTB4ODAwMA0KDQovKg0KICogUFBfTGluZUNUTCAtIExpbmUgQ29udHJvbCBi aXQgZGVmaW5pdGlvbiAtIFJlYWQvd3JpdGUNCiAqLw0KI2RlZmluZSBTRVJJ QUxfUlhfT04JCTB4MDA0MA0KI2RlZmluZSBTRVJJQUxfVFhfT04JCTB4MDA4 MA0KI2RlZmluZSBBVUlfT05MWQkJMHgwMTAwDQojZGVmaW5lIEFVVE9fQVVJ XzEwQkFTRVQJMHgwMjAwDQojZGVmaW5lIE1PRElGSUVEX0JBQ0tPRkYJMHgw ODAwDQojZGVmaW5lIE5PX0FVVE9fUE9MQVJJVFkJMHgxMDAwDQojZGVmaW5l IFRXT19QQVJUX0RFRkRJUwkJMHgyMDAwDQojZGVmaW5lIExPV19SWF9TUVVF TENICQkweDQwMDANCg0KLyoNCiAqIFBQX1NlbGZDVEwgLSBTb2Z0d2FyZSBT ZWxmIENvbnRyb2wgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRlDQogKi8N CiNkZWZpbmUgUE9XRVJfT05fUkVTRVQJCTB4MDA0MA0KI2RlZmluZSBTV19T VE9QCQkJMHgwMTAwDQojZGVmaW5lIFNMRUVQX09OCQkweDAyMDANCiNkZWZp bmUgQVVUT19XQUtFVVAJCTB4MDQwMA0KI2RlZmluZSBIQ0IwX0VOQkwJCTB4 MTAwMA0KI2RlZmluZSBIQ0IxX0VOQkwJCTB4MjAwMA0KI2RlZmluZSBIQ0Iw CQkJMHg0MDAwDQojZGVmaW5lIEhDQjEJCQkweDgwMDANCg0KLyoNCiAqIFBQ X0J1c0NUTCAtIElTQSBCdXMgQ29udHJvbCBiaXQgZGVmaW5pdGlvbiAtIFJl YWQvd3JpdGUNCiAqLw0KI2RlZmluZSBSRVNFVF9SWF9ETUEJCTB4MDA0MA0K I2RlZmluZSBNRU1PUllfT04JCTB4MDQwMA0KI2RlZmluZSBETUFfQlVSU1Rf TU9ERQkJMHgwODAwDQojZGVmaW5lIElPX0NIQU5ORUxfUkVBRFlfT04JMHgx MDAwDQojZGVmaW5lIFJYX0RNQV9TSVpFXzY0S3MJMHgyMDAwDQojZGVmaW5l IEVOQUJMRV9JUlEJCTB4ODAwMA0KDQovKg0KICogUFBfVGVzdENUTCAtIFRl c3QgQ29udHJvbCBiaXQgZGVmaW5pdGlvbiAtIFJlYWQvd3JpdGUNCiAqLw0K I2RlZmluZSBMSU5LX09GRgkJMHgwMDgwDQojZGVmaW5lIEVOREVDX0xPT1BC QUNLCQkweDAyMDANCiNkZWZpbmUgQVVJX0xPT1BCQUNLCQkweDA0MDANCiNk ZWZpbmUgQkFDS09GRl9PRkYJCTB4MDgwMA0KI2RlZmluZSBGQVNUX1RFU1QJ CTB4ODAwMA0KDQovKg0KICogUFBfUnhFdmVudCAtIFJlY2VpdmUgRXZlbnQg Qml0IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBSWF9J QV9IQVNIRUQJCTB4MDA0MA0KI2RlZmluZSBSWF9EUklCQkxFCQkweDAwODAN CiNkZWZpbmUgUlhfT0sJCQkweDAxMDANCiNkZWZpbmUgUlhfSEFTSEVECQkw eDAyMDANCiNkZWZpbmUgUlhfSUEJCQkweDA0MDANCiNkZWZpbmUgUlhfQlJP QURDQVNUCQkweDA4MDANCiNkZWZpbmUgUlhfQ1JDX0VSUk9SCQkweDEwMDAN CiNkZWZpbmUgUlhfUlVOVAkJCTB4MjAwMA0KI2RlZmluZSBSWF9FWFRSQV9E QVRBCQkweDQwMDANCg0KI2RlZmluZSBIQVNIX0lOREVYX01BU0sJCTB4MEZD MDANCg0KLyoNCiAqIFBQX1R4RXZlbnQgLSBUcmFuc21pdCBFdmVudCBCaXQg ZGVmaW5pdGlvbiAtIFJlYWQtb25seQ0KICovDQojZGVmaW5lIFRYX0xPU1Rf Q1JTCQkweDAwNDANCiNkZWZpbmUgVFhfU1FFX0VSUk9SCQkweDAwODANCiNk ZWZpbmUgVFhfT0sJCQkweDAxMDANCiNkZWZpbmUgVFhfTEFURV9DT0wJCTB4 MDIwMA0KI2RlZmluZSBUWF9KQlIJCQkweDA0MDANCiNkZWZpbmUgVFhfMTZf Q09MCQkweDgwMDANCiNkZWZpbmUgVFhfU0VORF9PS19CSVRTCQkoVFhfT0sg fCBUWF9MT1NUX0NSUykNCiNkZWZpbmUgVFhfQ09MX0NPVU5UX01BU0sJMHg3 ODAwDQoNCi8qDQogKiBQUF9CdWZFdmVudCAtIEJ1ZmZlciBFdmVudCBCaXQg ZGVmaW5pdGlvbiAtIFJlYWQtb25seQ0KICovDQojZGVmaW5lIFNXX0lOVEVS UlVQVAkJMHgwMDQwDQojZGVmaW5lIFJYX0RNQQkJCTB4MDA4MA0KI2RlZmlu ZSBSRUFEWV9GT1JfVFgJCTB4MDEwMA0KI2RlZmluZSBUWF9VTkRFUlJVTgkJ MHgwMjAwDQojZGVmaW5lIFJYX01JU1MJCQkweDA0MDANCiNkZWZpbmUgUlhf MTI4X0JZVEUJCTB4MDgwMA0KI2RlZmluZSBUWF9DT0xfT1ZSRkxXCQkweDEw MDANCiNkZWZpbmUgUlhfTUlTU19PVlJGTFcJCTB4MjAwMA0KI2RlZmluZSBS WF9ERVNUX01BVENICQkweDgwMDANCg0KLyoNCiAqIFBQX0xpbmVTVCAtIEV0 aGVybmV0IExpbmUgU3RhdHVzIGJpdCBkZWZpbml0aW9uIC0gUmVhZC1vbmx5 DQogKi8NCiNkZWZpbmUgTElOS19PSwkJCTB4MDA4MA0KI2RlZmluZSBBVUlf T04JCQkweDAxMDANCiNkZWZpbmUgVEVOQkFTRVRfT04JCTB4MDIwMA0KI2Rl ZmluZSBQT0xBUklUWV9PSwkJMHgxMDAwDQojZGVmaW5lIENSU19PSwkJCTB4 NDAwMA0KDQovKg0KICogUFBfU2VsZlNUIC0gQ2hpcCBTb2Z0d2FyZSBTdGF0 dXMgYml0IGRlZmluaXRpb24NCiAqLw0KI2RlZmluZSBBQ1RJVkVfMzNWCQkw eDAwNDANCiNkZWZpbmUgSU5JVF9ET05FCQkweDAwODANCiNkZWZpbmUgU0lf QlVTWQkJCTB4MDEwMA0KI2RlZmluZSBFRVBST01fUFJFU0VOVAkJMHgwMjAw DQojZGVmaW5lIEVFUFJPTV9PSwkJMHgwNDAwDQojZGVmaW5lIEVMX1BSRVNF TlQJCTB4MDgwMA0KI2RlZmluZSBFRV9TSVpFXzY0CQkweDEwMDANCg0KLyoN CiAqIFBQX0J1c1NUIC0gSVNBIEJ1cyBTdGF0dXMgYml0IGRlZmluaXRpb24N CiAqLw0KI2RlZmluZSBUWF9CSURfRVJST1IJCTB4MDA4MA0KI2RlZmluZSBS RUFEWV9GT1JfVFhfTk9XCTB4MDEwMA0KDQovKg0KICogUFBfQXV0b05lZ0NU TCAtIEF1dG8gTmVnb3RpYXRpb24gQ29udHJvbCBiaXQgZGVmaW5pdGlvbg0K ICovDQojZGVmaW5lIFJFX05FR19OT1cJCTB4MDA0MA0KI2RlZmluZSBBTExP V19GRFgJCTB4MDA4MA0KI2RlZmluZSBBVVRPX05FR19FTkFCTEUJCTB4MDEw MA0KI2RlZmluZSBOTFBfRU5BQkxFCQkweDAyMDANCiNkZWZpbmUgRk9SQ0Vf RkRYCQkweDgwMDANCiNkZWZpbmUgQVVUT19ORUdfQklUUwkJKEZPUkNFX0ZE WCB8IE5MUF9FTkFCTEUgfCBBVVRPX05FR19FTkFCTEUpDQojZGVmaW5lIEFV VE9fTkVHX01BU0sJCShGT1JDRV9GRFggfCBOTFBfRU5BQkxFIHwgQVVUT19O RUdfRU5BQkxFIHwgXA0KCQkJCSBBTExPV19GRFggfCBSRV9ORUdfTk9XKQ0K DQovKg0KICogUFBfQXV0b05lZ1NUIC0gQXV0byBOZWdvdGlhdGlvbiBTdGF0 dXMgYml0IGRlZmluaXRpb24NCiAqLw0KI2RlZmluZSBBVVRPX05FR19CVVNZ CQkweDAwODANCiNkZWZpbmUgRkxQX0xJTksJCTB4MDEwMA0KI2RlZmluZSBG TFBfTElOS19HT09ECQkweDA4MDANCiNkZWZpbmUgTElOS19GQVVMVAkJMHgx MDAwDQojZGVmaW5lIEhEWF9BQ1RJVkUJCTB4NDAwMA0KI2RlZmluZSBGRFhf QUNUSVZFCQkweDgwMDANCg0KLyoNCiAqIFRoZSBmb2xsb3dpbmcgYmxvY2sg ZGVmaW5lcyB0aGUgSVNRIGV2ZW50IHR5cGVzDQogKi8NCiNkZWZpbmUgSVNR X1JFQ0VJVkVSX0VWRU5UCTB4MDQNCiNkZWZpbmUgSVNRX1RSQU5TTUlUVEVS X0VWRU5UCTB4MDgNCiNkZWZpbmUgSVNRX0JVRkZFUl9FVkVOVAkweDBjDQoj ZGVmaW5lIElTUV9SWF9NSVNTX0VWRU5UCTB4MTANCiNkZWZpbmUgSVNRX1RY X0NPTF9FVkVOVAkweDEyDQoNCiNkZWZpbmUgSVNRX0VWRU5UX01BU0sJCTB4 MDAzRgkvKiBJU1EgbWFzayB0byBmaW5kIG91dCB0eXBlIG9mIGV2ZW50ICov DQojZGVmaW5lIElTUV9ISVNUCQkxNgkvKiBzbWFsbCBoaXN0b3J5IGJ1ZmZl ciAqLw0KI2RlZmluZSBBVVRPSU5DUkVNRU5UCQkweDgwMDAJLyogQml0IG1h c2sgdG8gc2V0IGJpdC0xNSBmb3IgYXV0b2luY3JlbWVudCAqLw0KDQojZGVm aW5lIFRYUlhCVUZTSVpFCQkweDA2MDANCiNkZWZpbmUgUlhETUFCVUZTSVpF CQkweDgwMDANCiNkZWZpbmUgUlhETUFTSVpFCQkweDQwMDANCiNkZWZpbmUg VFhSWF9MRU5HVEhfTUFTSwkweDA3RkYNCg0KLyogIHJ4IG9wdGlvbnMgYml0 cyAqLw0KI2RlZmluZSBSQ1ZfV0lUSF9SWE9OCQkxICAgICAgIC8qICBTZXQg U2VyUnggT04gKi8NCiNkZWZpbmUgUkNWX0NPVU5UUwkJMiAgICAgICAvKiAg VXNlIEZyYW1lY250MSAqLw0KI2RlZmluZSBSQ1ZfUE9ORwkJNCAgICAgICAv KiAgUG9uZyByZXNwb25kZW50ICovDQojZGVmaW5lIFJDVl9ET05HCQk4ICAg ICAgIC8qICBEb25nIG9wZXJhdGlvbiAqLw0KI2RlZmluZSBSQ1ZfUE9MTElO RwkJMHgxMAkvKiAgUG9sbCBSeEV2ZW50ICovDQojZGVmaW5lIFJDVl9JU1EJ CQkweDIwCS8qICBVc2UgSVNRLCBpbnQgKi8NCiNkZWZpbmUgUkNWX0FVVE9f RE1BCQkweDEwMAkvKiAgU2V0IEF1dG9SeERNQUUgKi8NCiNkZWZpbmUgUkNW X0RNQQkJCTB4MjAwCS8qICBTZXQgUnhETUEgb25seSAqLw0KI2RlZmluZSBS Q1ZfRE1BX0FMTAkJMHg0MDAJLyogIENvcHkgYWxsIERNQSdlZCAqLw0KI2Rl ZmluZSBSQ1ZfRklYRURfREFUQQkJMHg4MDAJLyogIEV2ZXJ5IGZyYW1lIHNh bWUgKi8NCiNkZWZpbmUgUkNWX0lPCQkJMHgxMDAwCS8qICBVc2UgSVNBIElP IG9ubHkgKi8NCiNkZWZpbmUgUkNWX01FTU9SWQkJMHgyMDAwCS8qICBVc2Ug SVNBIE1lbW9yeSAqLw0KDQojZGVmaW5lIFJBTV9TSVpFCQkweDEwMDAgICAg ICAvKiAgVGhlIGNhcmQgaGFzIDRrIGJ5dGVzIG9yIFJBTSAqLw0KI2RlZmlu ZSBQS1RfU1RBUlQJCVBQX1R4RnJhbWUgIC8qICBTdGFydCBvZiBwYWNrZXQg UkFNICovDQoNCiNkZWZpbmUgUlhfRlJBTUVfUE9SVAkJMHgwMDAwDQojZGVm aW5lIFRYX0ZSQU1FX1BPUlQJCVJYX0ZSQU1FX1BPUlQNCiNkZWZpbmUgVFhf Q01EX1BPUlQJCTB4MDAwNA0KI2RlZmluZSBUWF9DUzg5MDBfTk9XCQkweDAw MDAgIC8qIFR4IHBhY2tldCBhZnRlciAgIDUgYnl0ZXMgY29waWVkICovDQoj ZGVmaW5lIFRYX0NTODkwMF9BRlRFUl8zODEJMHgwMDIwICAvKiBUeCBwYWNr ZXQgYWZ0ZXIgMzgxIGJ5dGVzIGNvcGllZCAqLw0KI2RlZmluZSBUWF9DUzg5 MDBfQUZURVJfQUxMCTB4MDA2MCAgLyogVHggcGFja2V0IGFmdGVyIGFsbCBi eXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQ1M4OTIwX05PVwkJMHgwMDAw ICAvKiBUeCBwYWNrZXQgYWZ0ZXIgICA1IGJ5dGVzIGNvcGllZCAqLw0KI2Rl ZmluZSBUWF9DUzg5MjBfQUZURVJfMzgxCTB4MDA0MCAgLyogVHggcGFja2V0 IGFmdGVyIDM4MSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQ1M4OTIw X0FGVEVSXzEwMjEJMHgwMDgwICAvKiBUeCBwYWNrZXQgYWZ0ZXIxMDIxIGJ5 dGVzIGNvcGllZCAqLw0KI2RlZmluZSBUWF9DUzg5MjBfQUZURVJfQUxMCTB4 MDBDMCAgLyogVHggcGFja2V0IGFmdGVyIGFsbCBieXRlcyBjb3BpZWQgKi8N CiNkZWZpbmUgVFhfTEVOX1BPUlQJCTB4MDAwNg0KI2RlZmluZSBJU1FfUE9S VAkJMHgwMDA4DQojZGVmaW5lIEFERF9QT1JUCQkweDAwMEENCiNkZWZpbmUg REFUQV9QT1JUCQkweDAwMEMNCg0KI2RlZmluZSBFRVBST01fV1JJVEVfRU4J CTB4MDBGMA0KI2RlZmluZSBFRVBST01fV1JJVEVfRElTCTB4MDAwMA0KI2Rl ZmluZSBFRVBST01fV1JJVEVfQ01ECTB4MDEwMA0KI2RlZmluZSBFRVBST01f UkVBRF9DTUQJCTB4MDIwMA0KDQovKiAgUmVjZWl2ZSBIZWFkZXINCiAqICBE ZXNjcmlwdGlvbiBvZiBoZWFkZXIgb2YgZWFjaCBwYWNrZXQgaW4gcmVjZWl2 ZSBhcmVhIG9mIG1lbW9yeQ0KICovDQojZGVmaW5lIFJCVUZfRVZFTlRfTE9X CTAgIC8qIExvdyBieXRlIG9mIFJ4RXZlbnQgLSBzdGF0dXMgb2YgcmVjZWl2 ZWQgZnJhbWUgKi8NCiNkZWZpbmUgUkJVRl9FVkVOVF9ISUdICTEgIC8qIEhp Z2ggYnl0ZSBvZiBSeEV2ZW50IC0gc3RhdHVzIG9mIHJlY2VpdmVkIGZyYW1l ICovDQojZGVmaW5lIFJCVUZfTEVOX0xPVwkyICAvKiBMZW5ndGggb2YgcmVj ZWl2ZWQgZGF0YSAtIGxvdyBieXRlICovDQojZGVmaW5lIFJCVUZfTEVOX0hJ CTMgIC8qIExlbmd0aCBvZiByZWNlaXZlZCBkYXRhIC0gaGlnaCBieXRlICov DQojZGVmaW5lIFJCVUZfSEVBRF9MRU4JNCAgLyogTGVuZ3RoIG9mIHRoaXMg aGVhZGVyICovDQoNCiNkZWZpbmUgQ0hJUF9SRUFEIDB4MSAgLyogVXNlZCB0 byBtYXJrIHN0YXRlIG9mIHRoZSByZXBpbnMgY29kZSAoY2hpcCBvciBkbWEp ICovDQojZGVmaW5lIERNQV9SRUFEICAweDIgIC8qIFVzZWQgdG8gbWFyayBz dGF0ZSBvZiB0aGUgcmVwaW5zIGNvZGUgKGNoaXAgb3IgZG1hKSAqLw0KDQov KiAgZm9yIGJpb3Mgc2NhbiAqLw0KLyogICovDQojaWZkZWYgQ1NERUJVRw0K LyogIHVzZSB0aGVzZSB2YWx1ZXMgZm9yIGRlYnVnZ2luZyBiaW9zIHNjYW4g Ki8NCiNkZWZpbmUgQklPU19TVEFSVF9TRUcJCTB4MDAwMDANCiNkZWZpbmUg QklPU19PRkZTRVRfSU5DCQkweDAwMTANCiNlbHNlDQojZGVmaW5lIEJJT1Nf U1RBUlRfU0VHCQkweDBjMDAwDQojZGVmaW5lIEJJT1NfT0ZGU0VUX0lOQwkJ MHgwMjAwDQojZW5kaWYNCg0KI2RlZmluZSBCSU9TX0xBU1RfT0ZGU0VUCTB4 MGZjMDANCg0KLyoNCiAqICBCeXRlIG9mZnNldHMgaW50byB0aGUgRUVQUk9N IGNvbmZpZ3VyYXRpb24gYnVmZmVyDQogKi8NCiNkZWZpbmUgSVNBX0NORl9P RkZTRVQJCTB4Ng0KI2RlZmluZSBUWF9DVExfT0ZGU0VUCQkoSVNBX0NORl9P RkZTRVQgKyA4KQkvKiAgODkwMCBlZXByb20gKi8NCiNkZWZpbmUgQVVUT19O RUdfQ05GX09GRlNFVAkoSVNBX0NORl9PRkZTRVQgKyA4KQkvKiAgODkyMCBl ZXByb20gKi8NCg0KLyoNCiAqICB0aGUgYXNzdW1wdGlvbiBoZXJlIGlzIHRo YXQgdGhlIGJpdHMgaW4gdGhlIGVlcHJvbSBhcmUgZ2VuZXJhbGx5IA0KICog IGluIHRoZSBzYW1lIHBvc2l0aW9uIGFzIHRob3NlIGluIHRoZSBhdXRvbmVn Y3RsIHJlZ2lzdGVyLiANCiAqICBPZiBjb3Vyc2UgdGhlIElNTSBiaXQgaXMg bm90IGluIHRoYXQgcmVnaXN0ZXIgc28gaXQgbXVzdCBiZSANCiAqICBtYXNr ZWQgb3V0DQogKi8NCiNkZWZpbmUgRUVfRk9SQ0VfRkRYCQkweDgwMDANCiNk ZWZpbmUgRUVfTkxQX0VOQUJMRQkJMHgwMjAwDQojZGVmaW5lIEVFX0FVVE9f TkVHX0VOQUJMRQkweDAxMDANCiNkZWZpbmUgRUVfQUxMT1dfRkRYCQkweDAw ODANCiNkZWZpbmUgRUVfQVVUT19ORUdfQ05GX01BU0sJKEVFX0ZPUkNFX0ZE WCB8IEVFX05MUF9FTkFCTEUgfCAJXA0KCQkJCSBFRV9BVVRPX05FR19FTkFC TEUgfCBFRV9BTExPV19GRFgpDQoNCiNkZWZpbmUgSU1NX0JJVAkJCTB4MDA0 MAkvKiAgaWdub3JlIG1pc3NpbmcgbWVkaWEJICovDQoNCiNkZWZpbmUgQURB UFRFUl9DTkZfT0ZGU0VUCShBVVRPX05FR19DTkZfT0ZGU0VUICsgMikNCiNk ZWZpbmUgQV9DTkZfTUVESUEgICAgICAgICAgICAgMHgwMDA3DQojZGVmaW5l IEFfQ05GXzEwQl9UCQkweDAwMDENCiNkZWZpbmUgQV9DTkZfQVVJCQkweDAw MDINCiNkZWZpbmUgQV9DTkZfMTBCXzIJCTB4MDAwNA0KI2RlZmluZSBBX0NO Rl9NRURJQV9UWVBFCTB4MDA2MA0KI2RlZmluZSBBX0NORl9NRURJQV9BVVRP CTB4MDAwMA0KI2RlZmluZSBBX0NORl9NRURJQV8xMEJfVAkweDAwMjANCiNk ZWZpbmUgQV9DTkZfTUVESUFfQVVJCQkweDAwNDANCiNkZWZpbmUgQV9DTkZf TUVESUFfMTBCXzIJMHgwMDYwDQojZGVmaW5lIEFfQ05GX0RDX0RDX1BPTEFS SVRZCTB4MDA4MA0KI2RlZmluZSBBX0NORl9OT19BVVRPX1BPTEFSSVRZCTB4 MjAwMA0KI2RlZmluZSBBX0NORl9MT1dfUlhfU1FVRUxDSAkweDQwMDANCiNk ZWZpbmUgQV9DTkZfRVhUTkRfMTBCXzIJMHg4MDAwDQoNCiNkZWZpbmUgUEFD S0VUX1BBR0VfT0ZGU0VUCTB4OA0KDQovKg0KICogIEJpdCBkZWZpbml0aW9u cyBmb3IgdGhlIElTQSBjb25maWd1cmF0aW9uIHdvcmQgZnJvbSB0aGUgRUVQ Uk9NDQogKi8NCiNkZWZpbmUgSU5UX05PX01BU0sJCTB4MDAwRg0KI2RlZmlu ZSBETUFfTk9fTUFTSwkJMHgwMDcwDQojZGVmaW5lIElTQV9ETUFfU0laRQkJ MHgwMjAwDQojZGVmaW5lIElTQV9BVVRPX1J4RE1BCQkweDA0MDANCiNkZWZp bmUgSVNBX1J4RE1BCQkweDA4MDANCiNkZWZpbmUgRE1BX0JVUlNUCQkweDEw MDANCiNkZWZpbmUgU1RSRUFNX1RSQU5TRkVSCQkweDIwMDANCiNkZWZpbmUg QU5ZX0lTQV9ETUEJCShJU0FfQVVUT19SeERNQSB8IElTQV9SeERNQSkNCg0K LyogIERNQSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLw0KI2RlZmluZSBETUFf QkFTRQkJMHgwMCAgIC8qIERNQSBjb250cm9sbGVyIGJhc2UgKi8NCiNkZWZp bmUgRE1BX0JBU0VfMgkJMHgwQzAgIC8qIERNQSBjb250cm9sbGVyIGJhc2Ug Ki8NCg0KI2RlZmluZSBETUFfU1RBVAkJMHgwRDAgIC8qIERNQSBjb250cm9s bGVyIHN0YXR1cyByZWdpc3RlciAqLw0KI2RlZmluZSBETUFfTUFTSwkJMHgw RDQgIC8qIERNQSBjb250cm9sbGVyIG1hc2sgcmVnaXN0ZXIgKi8NCiNkZWZp bmUgRE1BX01PREUJCTB4MEQ2ICAvKiBETUEgY29udHJvbGxlciBtb2RlIHJl Z2lzdGVyICovDQojZGVmaW5lIERNQV9SRVNFVEZGCQkweDBEOCAgLyogRE1B IGNvbnRyb2xsZXIgZmlyc3QvbGFzdCBmbGlwIGZsb3AgKi8NCg0KLyogIERN QSBkYXRhICovDQojZGVmaW5lIERNQV9ESVNBQkxFCQkweDA0ICAgLyogIERp c2FibGUgY2hhbm5lbCBuICovDQojZGVmaW5lIERNQV9FTkFCTEUJCTB4MDAg ICAvKiAgRW5hYmxlIGNoYW5uZWwgbiAqLw0KLyogIERlbWFuZCB0cmFuc2Zl cnMsIGluY3IuIGFkZHJlc3MsIGF1dG8gaW5pdCwgd3JpdGVzLCBjaC4gbiAq Lw0KI2RlZmluZSBETUFfUlhfTU9ERQkJMHgxNA0KLyogIERlbWFuZCB0cmFu c2ZlcnMsIGluY3IuIGFkZHJlc3MsIGF1dG8gaW5pdCwgcmVhZHMsIGNoLiBu ICovDQojZGVmaW5lIERNQV9UWF9NT0RFCQkweDE4DQoNCiNkZWZpbmUgRE1B X1NJWkUJCSgxNioxMDI0KQkvKiBTaXplIG9mIGRtYSBidWZmZXIgLSAxNmsg Ki8NCg0KI2RlZmluZSBDUzg5MDAJCQkweDAwMDANCiNkZWZpbmUgQ1M4OTIw CQkJMHg0MDAwICAgDQojZGVmaW5lIENTODkyME0JCQkweDYwMDAgICANCiNk ZWZpbmUgUkVWSVNPTl9CSVRTCQkweDFGMDANCiNkZWZpbmUgRUVWRVJfTlVN QkVSCQkweDEyDQojZGVmaW5lIENIS1NVTV9MRU4JCTB4MTQNCiNkZWZpbmUg Q0hLU1VNX1ZBTAkJMHgwMDAwDQojZGVmaW5lIFNUQVJUX0VFUFJPTV9EQVRB CTB4MDAxYyAvKiBPZmZzZXQgaW50byBlZXByb20gZm9yIHN0YXJ0IG9mIGRh dGEgKi8NCiNkZWZpbmUgSVJRX01BUF9FRVBST01fREFUQQkweDAwNDYgLyog T2Zmc2V0IGludG8gZWVwcm9tIGZvciB0aGUgSVJRIG1hcCAqLw0KI2RlZmlu ZSBJUlFfTUFQX0xFTgkJMHgwMDA0IC8qIE5vIG9mIGJ5dGVzIHRvIHJlYWQg Zm9yIHRoZSBJUlEgbWFwICovDQojZGVmaW5lIFBOUF9JUlFfRlJNVAkJMHgw MDIyIC8qIFBOUCBzbWFsbCBpdGVtIElSUSBmb3JtYXQgKi8NCiNkZWZpbmUg Q1M4OTAwX0lSUV9NQVAJCTB4MWMyMCAvKiBUaGlzIElSUSBtYXAgaXMgZml4 ZWQgKi8NCg0KI2RlZmluZSBDUzg5MjBfTk9fSU5UUwkJMHgwRiAgIC8qICBN YXggQ1M4OTIwIGludGVycnVwdCBzZWxlY3QgIyAqLw0KDQojZGVmaW5lIFBO UF9BRERfUE9SVAkJMHgwMjc5DQojZGVmaW5lIFBOUF9XUklURV9QT1JUCQkw eDBBNzkNCg0KI2RlZmluZSBHRVRfUE5QX0lTQV9TVFJVQ1QJMHg0MA0KI2Rl ZmluZSBQTlBfSVNBX1NUUlVDVF9MRU4JMHgwNg0KI2RlZmluZSBQTlBfQ1NO X0NOVF9PRkYJCTB4MDENCiNkZWZpbmUgUE5QX1JEX1BPUlRfT0ZGCQkweDAy DQojZGVmaW5lIFBOUF9GVU5DVElPTl9PSwkJMHgwMA0KI2RlZmluZSBQTlBf V0FLRQkJMHgwMw0KI2RlZmluZSBQTlBfUlNSQ19EQVRBCQkweDA0DQojZGVm aW5lIFBOUF9SU1JDX1JFQURZCQkweDAxDQojZGVmaW5lIFBOUF9TVEFUVVMJ CTB4MDUNCiNkZWZpbmUgUE5QX0FDVElWQVRFCQkweDMwDQojZGVmaW5lIFBO UF9DTkZfSU9fSAkJMHg2MA0KI2RlZmluZSBQTlBfQ05GX0lPX0wJCTB4NjEN CiNkZWZpbmUgUE5QX0NORl9JTlQJCTB4NzANCiNkZWZpbmUgUE5QX0NORl9E TUEJCTB4NzQNCiNkZWZpbmUgUE5QX0NORl9NRU0JCTB4NDgNCg0KI2RlZmlu ZSBCSVQwCQkJMQ0KI2RlZmluZSBCSVQxNQkJCTB4ODAwMA0KDQojZGVmaW5l CUNTX0RVUExFWF9BVVRPCQkwDQojZGVmaW5lIENTX0RVUExFWF9GVUxMCQkx DQojZGVmaW5lIENTX0RVUExFWF9IQUxGCQkyDQoNCi8qIERldmljZSBuYW1l ICovDQojZGVmaW5lIENTX05BTUUJCQkiY3MiDQoNCiNkZWZpbmUgY3NfcmVh ZHJlZyhpb2Jhc2UsIHBvcnRubykgXA0KCShvdXR3KChpb2Jhc2UpICsgQURE X1BPUlQsIChwb3J0bm8pKSwgXA0KCWludygoaW9iYXNlKSArIERBVEFfUE9S VCkpDQojZGVmaW5lIGNzX3dyaXRlcmVnKGlvYmFzZSwgcG9ydG5vLCB2YWx1 ZSkgXA0KCShvdXR3KChpb2Jhc2UpICsgQUREX1BPUlQsIChwb3J0bm8pKSwg XA0KCW91dHcoKGlvYmFzZSkgKyBEQVRBX1BPUlQsICh2YWx1ZSkpKQ0KI2Rl ZmluZSBjc19yZWFkd29yZChpb2Jhc2UsIHBvcnRubykgXA0KCShpbncoKGlv YmFzZSkgKyAocG9ydG5vKSkpDQojZGVmaW5lIGNzX3dyaXRld29yZChpb2Jh c2UsIHBvcnRubywgdmFsdWUpIFwNCgkob3V0dygoaW9iYXNlKSArIChwb3J0 bm8pLCAodmFsdWUpKSkNCg0KI2RlZmluZSByZXNldF9jaGlwKG5pY19hZGRy KSBcDQoJY3Nfd3JpdGVyZWcobmljX2FkZHIsIFBQX1NlbGZDVEwsIGNzX3Jl YWRyZWcoaW9hZGRyLCBQUF9TZWxmQ1RMKSB8IFBPV0VSX09OX1JFU0VUKSwg XA0KCURFTEFZKDMwMDAwKQ0KDQojZGVmaW5lIGNzX2R1cGxleF9mdWxsKHNj KSBcDQogICAgICAgIChjc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0F1 dG9OZWdDVEwsIEZPUkNFX0ZEWCkpDQoNCiNkZWZpbmUgY3NfZHVwbGV4X2hh bGYoc2MpIFwNCiAgICAgICAgKGNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg UFBfQXV0b05lZ0NUTCwgTkxQX0VOQUJMRSkpDQoNCg== --0-1106502712-952877046=:96199-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" 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.4.10.10003141143290.29420-300000>