Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Oct 2015 02:22:33 +0000
From:      "Pokala, Ravi" <rpokala@panasas.com>
To:        "freebsd-geom@freebsd.org" <freebsd-geom@freebsd.org>, "freebsd-scsi@freebsd.org" <freebsd-scsi@freebsd.org>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Cc:        "scottl@freebsd.org" <scottl@freebsd.org>, "ken@freebsd.org" <ken@freebsd.org>, "imp@freebsd.org" <imp@freebsd.org>
Subject:   Low-level trace-buffers in CAM
Message-ID:  <A760883F-317D-46C9-AD7C-B8F5D96A49DA@panasas.com>

next in thread | raw e-mail | index | archive | help
SGkgZm9sa3MsDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NClRoaXMgaXMgYW4gdXBkYXRlZCByZS1zZW5kIG9mIGEgbWVz
c2FnZSBJIG9yaWdpbmFsbHkgc2VudCBhYm91dCBhIHllYXIgYWdvLCBkdXJpbmcgTWVldEJTRCAy
MDE0LiBBIGZldyBwZW9wbGUgZXhwcmVzc2VkIGludGVyZXN0IGluIHBlcnNvbiwgYnV0IG5vIG9u
ZSBldmVyIGZvbGxvd2VkIHVwIG9uIHRoZSBsaXN0cy4gSSdtIGJyaW5naW5nIHRoaXMgdXAgYWdh
aW4sIGluIHRoZSBob3BlcyB0aGF0IEkgY2FuIGdldCBzb21lIGZlZWRiYWNrIGJlZm9yZSAvIGR1
cmluZyBuZXh0IHdlZWsncyBEZXYvVmVuZG9yIFN1bW1pdC4gSSdtIENDaW5nIHNvbWUgZm9sa3Mg
d2hvIGV4cHJlc3NlZCBpbnRlcmVzdCBhdCB0aGF0IHRpbWUsIGFuZCBzb21lIGZvbGtzIHRoYXQg
SSB3YXMgdG9sZCB3b3VsZCBiZSBpbnRlcmVzdGVkLg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpBdCBQYW5hc2FzLCB3
ZSBmb3VuZCBpdCB1c2VmdWwgdG8gaGF2ZSBhIHRyYWNlIGJ1ZmZlciBmb3IgZWFjaCBBVEEgZHJp
dmUgaW4gdGhlIHN5c3RlbSwgZm9yIGdhdGhlcmluZyBpbmZvcm1hdGlvbiBhYm91dCBjb21tYW5k
IHNlcXVlbmNlcyBhbmQgbGF0ZW5jeS4gSSBpbXBsZW1lbnRlZCB0aGF0IGZ1bmN0aW9uYWxpdHkg
Zm9yIG91ciBvbGQgNy1pc2ggQVRBIGRyaXZlciwgYW5kIGl0IHdvcmtzIHF1aXRlIHdlbGwsIHdp
dGggZmFpcmx5IGxvdyBvdmVyaGVhZC4gKEkgcmFuIG91ciB1c3VhbCBzdWl0ZSBvZiBwZXJmb3Jt
YW5jZSB0ZXN0cywgYW5kIGFueSBkaWZmZXJlbmNlcyB3ZXJlIGxvc3QgaW4gdGhlIG5vaXNlLikg
VGhlc2UgdHJhY2VzIGFsbG93ZWQgdXMgdG8gY2FwdHVyZSBhbmQgcmVwbGF5IGFjY2VzcyBwYXR0
ZXJucyAodGhvdWdoIG9idmlvdXNseSBub3Qgd2l0aCB0aGUgc2FtZSBkYXRhKSwgYW5hbHl6ZSBh
bmQgY29tcGFyZSBsYXRlbmN5LCBldGMuDQoNCkFzIFBhbmFzYXMgbW92ZXMgdG93YXJkIGEgbW9y
ZSBtb2Rlcm4gYmFzZSwgd2Ugd2FudCB0byByZS1pbXBsZW1lbnQgdGhpcyBmdW5jdGlvbmFsaXR5
IGZvciBBVEEsIFNDU0ksIE5WTWUsIGV0Yy4gQW5kIHB1c2ggaXQgdXBzdHJlYW0sIG9mIGNvdXJz
ZSEgOi0pDQoNCkZpcnN0LCBzb21lIGV4YW1wbGUgb3V0cHV0OyBJIHdyb3RlIGNvZGUgZm9yIHRo
cmVlIGRpZmZlcmVudCBmb3JtYXRzOg0KICAtIFRoZSBiaW5hcnkgdHJhY2UgYnVmZmVyIGR1bXAN
CiAgICBVc2VmdWwgZm9yIG1hbmlwdWxhdGluZyBpbiBDOyB0aGUgb3RoZXIgdHdvIGZvcm1hdHMg
YXJlIHBvc3QtcHJvY2Vzc2VkIG91dCBvZiB0aGlzLCBhbmQgSSBhbHNvIHdyb3RlIGEgcmVwbGF5
IHV0aWxpdHkgYW5kIGEgYmFzaWMgc3RhdHMgYW5hbHl6ZXIgd2hpY2ggb3BlcmF0ZWQgb24gdGhl
IGJpbmFyeSBkdW1wLg0KICAtIFRhYnVsYXIgaGV4DQogICAgVXNlZnVsIGZvciBwYXJzaW5nIHdp
dGggc2NyaXB0czsgSSBuZXZlciBhY3R1YWxseSB1c2VkIHRoaXMgZm9ybWF0LCBidXQgaXQgd2Fz
IHRyaXZpYWwgc28gSSBqdXN0IHdlbnQgYWhlYWQgYW5kIHdyb3RlIGl0Lg0KICAtIEh1bWFuLXJl
YWRhYmxlDQogICAgVXNlZnVsIGZvciBleWViYWxsaW5nOyBvbiBtb3JlIHRoYW4gb25lIG9jY2Fz
aW9uLCBJIHdhcyBhYmxlIHRvIHNlZSB0aGF0IEkgaGFkIG1pcy1hc3NlbWJsZWQgYSBjb21tYW5k
IGluIHVzZXJzcGFjZSwgZXRjLg0KDQpUaGVzZSBleGFtcGxlcyBhcmUgYWN0dWFsbHkgcmVhbGx5
IGxvbmcgbGluZXM7IEkndmUgYnJva2VuIHRoZW0gdXAgYW5kIGluZGVudGVkIGZvciB0aGUgc2Fr
ZSBvZiBlbWFpbDoNCg0KICAgICMgVGFidWxhciBoZXggZm9ybWF0LCBmb3IgdXNlIHcvIHNjcmlw
dHMNCiAgICAjIFJlcXVlc3QgdGltZSAgICAgICBBVEEgcmVxdWVzdCBpbmZvcm1hdGlvbiAgIFJl
c3BvbnNlIHRpbWUgICAgICAgIA0KICAgICAgICBBVEEgcmVzcG9uc2UgaW5mb3JtYXRpb24gIHN0
cy9lcnIgIGZsYWdzDQogICAgMTQ0NTgzOTc5MzAwMzczNyAgICAgYzggMDAwMCAwMDA0IDAwMDAw
MDAwMmZhOCAxNDQ1ODM5NzkzMDAzODA2ICAgICANCiAgICAgICAgYzggMDAwMCAwMDA0IDAwMDAw
MDAwMmZhOCA1MCAwMCAwMDAwMDA3ZA0KICAgIDE0NDU4Mzk3OTMwMDM4NzQgICAgIGM4IDAwMDAg
MDAyMCAwMDAwMDAxMTNhYzggMTQ0NTgzOTc5MzAxMTU0MSAgICAgDQogICAgICAgIGM4IDAwMDAg
MDAyMCAwMDAwMDAxMTNhYzggNTAgMDAgMDAwMDAwN2QNCiAgICAxNDQ1ODM5NzkzMDExNzk1ICAg
ICBjOCAwMDAwIDAwMDggMDAwMDAwMTE4Y2E4IDE0NDU4Mzk3OTMwMTc3MDIgICAgIA0KICAgICAg
ICBjOCAwMDAwIDAwMDggMDAwMDAwMTE4Y2E4IDUwIDAwIDAwMDAwMDdkDQogICAgMTQ0NTgzOTc5
MzAxNzgwOCAgICAgYzggMDAwMCAwMDgwIDAwMDAwMDExNzYyOCAxNDQ1ODM5NzkzMDE4OTc1ICAg
ICANCiAgICAgICAgYzggMDAwMCAwMDgwIDAwMDAwMDExNzYyOCA1MCAwMCAwMDAwMDA3ZA0KICAg
IDE0NDU4Mzk3OTMwMTkwNzkgICAgIGM4IDAwMDAgMDAyMCAwMDAwMDAxMTc3YTggMTQ0NTgzOTc5
MzAxOTY4NiAgICAgDQogICAgICAgIGM4IDAwMDAgMDAyMCAwMDAwMDAxMTc3YTggNTAgMDAgMDAw
MDAwN2QNCg0KICAgICMgSHVtYW4tcmVhZGFibGUNCiAgICBGTEFHUyAgICAgICBSRVFVRVNUIFRJ
TUUgICAgICAgICBSRVNQT05TRSBUSU1FICAgICAgICBFTEFQU0VEIFRJTUUgICAgICAgICANCiAg
ICAgICAgUkVRVUVTVCBDT01NQU5EICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVMgICBF
UlJPUiAgICANCiAgICAgICAgUkVTUE9OU0UgQ09NTUFORCAgICAgICAgICAgICAgICAgICAgICAg
IA0KICAgIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0t
LS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tIA0KICAgICAgICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgX19fX0MuLi4uX1YgMTQ0NTgzOTc5
MzAwMzczNyAgICAgMTQ0NTgzOTc5MzAwMzgwNiAgICAgNjkgICAgICAgICAgICAgICAgICAgDQog
ICAgICAgIFJFQUQgRE1BIChMQkEgMTIyMDAgKyA0IHNlY3RvcnMpICAgICAgICAgX1JfU19fX18g
X19fX19fX18gDQogICAgICAgIC0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICANCiAgICBfX19fQy4uLi5fViAxNDQ1ODM5NzkzMDAzODc0ICAgICAxNDQ1ODM5NzkzMDExNTQx
ICAgICA3NjY3ICAgICAgICAgICAgICAgICANCiAgICAgICAgUkVBRCBETUEgKExCQSAxMTI5MTYw
ICsgMzIgc2VjdG9ycykgICAgICBfUl9TX19fXyBfX19fX19fXyANCiAgICAgICAgLS0tLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgIF9fX19DLi4uLl9WIDE0NDU4Mzk3
OTMwMTE3OTUgICAgIDE0NDU4Mzk3OTMwMTc3MDIgICAgIDU5MDcgICAgICAgICAgICAgICAgIA0K
ICAgICAgICBSRUFEIERNQSAoTEJBIDExNTAxMjAgKyA4IHNlY3RvcnMpICAgICAgIF9SX1NfX19f
IF9fX19fX19fIA0KICAgICAgICAtLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgDQogICAgX19fX0MuLi4uX1YgMTQ0NTgzOTc5MzAxNzgwOCAgICAgMTQ0NTgzOTc5MzAxODk3
NSAgICAgMTE2NyAgICAgICAgICAgICAgICAgDQogICAgICAgIFJFQUQgRE1BIChMQkEgMTE0NDM2
MCArIDEyOCBzZWN0b3JzKSAgICAgX1JfU19fX18gX19fX19fX18gDQogICAgICAgIC0tLS0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICBfX19fQy4uLi5fViAxNDQ1ODM5
NzkzMDE5MDc5ICAgICAxNDQ1ODM5NzkzMDE5Njg2ICAgICA2MDcgICAgICAgICAgICAgICAgICAN
CiAgICAgICAgUkVBRCBETUEgKExCQSAxMTQ0NzQ0ICsgMzIgc2VjdG9ycykgICAgICBfUl9TX19f
XyBfX19fX19fXyANCiAgICAgICAgLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIA0KDQpUaGUgb2J2aW91cyBwbGFjZSB0byBwdXQgdGhpcyBzb3J0IG9mIHRyYWNpbmcgd291
bGQgYmUgaW4gR0VPTSwgYnV0IHRoYXQgYWN0dWFsbHkgaXNuJ3Qgd2hhdCBJIHdhbnQsIGZvciBh
IGZldyByZWFzb25zLiBGaXJzdCBvZiBhbGwsIEknbSBwcmltYXJpbHkgaW50ZXJlc3RlZCBpbiB0
aGUgZXhhY3QgcmVnaXN0ZXIgLyB0YXNrZmlsZSAvIENEQiB2YWx1ZXMgc2VudCB0byB0aGUgZHJp
dmUgLSBvcGNvZGUsIGZlYXR1cmUgY29kZXMsIExCQXMsIGV0Yy4gU2Vjb25kLCBJJ20gaW50ZXJl
c3RlZCBpbiBoYXJkd2FyZS1sZXZlbCBsYXRlbmN5IC0gaG93IGxvbmcgZG9lcyBhIHJlcXVlc3Qg
c3RheSBpbiB0aGUgY29udHJvbGxlciBhbmQgZGV2aWNlLiBCb3RoIG9mIHRob3NlIHByZXR0eSBt
dWNoIHJlcXVpcmUgd29ya2luZyBiZWxvdyBHRU9NLg0KDQpUaGVyZWZvcmUsIEkgdGhpbmsgSSB3
YW50IHRvIGRvIGl0IGluIHRoZSBDQU0gc3RhY2s7IGlkZWFsbHksIEknZCBwdXQgdGhlIGhvb2tz
IGluIHRoZSBTSU0gZHJpdmVycywgdG8gZ2V0IGFzIGNsb3NlIHRvIHRoZSBtZXRhbCBhcyBwb3Nz
aWJsZSwgdG8gZ2V0IHRoZSBtb3N0IGFjY3VyYXRlIGxhdGVuY3kuIEhvd2V2ZXIsIGV2ZW4gYSBs
aWdodCB0b3VjaCB0byBldmVyeSBTSU0gZHJpdmVyIGlzIGdvaW5nIHRvIGJlIHBhaW5mdWwsIGFu
ZCBzaW5jZSBJIGRvbid0IGhhdmUgYWNjZXNzIHRvIGV2ZXJ5IGNvbnRyb2xsZXIgaW4gdGhlIHdv
cmxkLCB0ZXN0aW5nIHdvdWxkIGJlIGRpZmZpY3VsdC4gQWRkaW5nIHRoZSBob29rcyB0byBkYSg0
KSBhbmQgYWRhKDQpIHdvdWxkIHN0aWxsIGJlIHByZXR0eSBjbG9zZSB0byB0aGUgbWV0YWwsIGFu
ZCB3b3VsZCByZXF1aXJlIG11Y2ggc21hbGxlciBjaGFuZ2VzLiBPciBtYXliZSB0aGV5IGJlbG9u
ZyBpbiB0aGUgWFBUIGxheWVyPyAoSSBkb24ndCBrbm93IG5lYXJseSBhcyBtdWNoIGFib3V0IENB
TSBhcyBJIHNob3VsZC4gOi0vKQ0KDQotLS0tLS0tLQ0KTk9URTogV2hlbiBJIG1lbnRpb25lZCB0
aGlzIGlkZWEgYXQgYSAoU2FuIEZyYW5jaXNjbykgQmF5IEFyZWEgRnJlZUJTRCBVc2VyIEdyb3Vw
IChCQUZVRykgbWVldGluZywgdGhlcmUgd2VyZSBzdWdnZXN0aW9ucyBhYm91dCBpbnRlZ3JhdGlu
ZyB0aGlzIHdpdGggRFRyYWNlIG9yIEtUcmFjZSBpbnN0ZWFkLiBJJ20gaGFwcHkgdG8gY29uc2lk
ZXIgZWl0aGVyIG9mIHRob3NlLCBidXQgSSBrbm93IGV2ZW4gbGVzcyBhYm91dCB0aG9zZSB0aGFu
IEkgZG8gYWJvdXQgQ0FNLiBJZiB0aGF0J3MgcmVhbGx5IHRoZSBiZXN0IHdheSB0byBkbyB0aGlz
IHNvcnQgb2YgdGhpbmcsIEknbSBoYXBweSB0byBsZWFybiwgaWYgc29tZW9uZSBpcyB3aWxsaW5n
IHRvIHRlYWNoLg0KLS0tLS0tLS0NCg0KSSB0b29rIHRoZSBQYW5hc2FzIC8gNy54IGltcGxlbWVu
dGF0aW9uLCBhbmQgcHNldWRvLWNvZGVkIHdoYXQgaXQgbWlnaHQgbG9vayBsaWtlIGluIENBTS4g
KEkgY291bGQgcHJvYmFibHkgbWFrZSBkaWZmcyBhZ2FpbnN0IHRoZSBvbGQgQVRBIHN0YWNrIGF2
YWlsYWJsZSBmb3IgY29tcGFyaXNvbiwgYnV0IEkgZmlndXJlZCBubyBvbmUgd291bGQgY2FyZSBh
bnltb3JlLikgQSBodWdlIGNhdmVhdCBpcyB0aGF0IEkndmUgbmV2ZXIgcmVhbGx5IHBva2VkIGlu
IENBTSBiZWZvcmUsIHNvIEkgZnVsbHkgZXhwZWN0IEknbSBkb2luZyBzZXZlcmFsIHRoaW5ncyB3
cm9uZy4gUGxlYXNlIGVkdWNhdGUgbWUuIDotKQ0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KDQpDcmVhdGUgYSBjaXJjdWxhciBidWZmZXIgb2YgdHJhY2UgcmVjb3JkcyBmb3Ig
ZWFjaCBDQU0gUEVSSVBILiBFYWNoIHJlY29yZCB3aWxsIGNvbnRhaW4gdGhlIGZ1bGwgQ0RCIGZv
ciB0aGUgcmVxdWVzdCBhcyBzZW50IHRvIHRoZSBkZXZpY2UsIHRoZSB0aW1lc3RhbXAgKGluIHVz
ZWMpIG9mIHRoZSByZXF1ZXN0LCB0aGUgQ0RCIGFzIHJldHVybmVkIGJ5IHRoZSBkZXZpY2UsIHRo
ZSB0aW1lc3RhbXAgb2YgdGhlIHJlc3BvbnNlLCBhbmQgdGhlIHN0YXR1cyBhbmQgZXJyb3IgY29k
ZS4gQWRkaXRpb25hbGx5LCBmbGFncyBhcmUgcHJvdmlkZWQgdG8gdHJhY2sgdGhlIHN0YXRlIG9m
IHRoZSB0cmFjZSByZWNvcmQsIGFuZCB0byBpbmRpY2F0ZSB3aGljaCB0eXBlIG9mIHBlcmlwaCB0
aGUgcmVjb3JkIGlzIGFzc29jaWF0ZWQgd2l0aC4NCg0KLS0tLS0tLS0NCg0KdHlwZWRlZiBzdHJ1
Y3Qgew0KCXVfaW50MzJfdAlmbGFnczsNCiNkZWZpbmUgQ0FNX1RSQUNFX0ZfVkFMSUQJMHgwMDAw
MDAwMQkvKiB2YWxpZCByZWNvcmQgKi8NCiNkZWZpbmUgQ0FNX1RSQUNFX0ZfSU5QUk9HUkVTUwkw
eDAwMDAwMDAyCS8qIHJlcXVlc3QgaW4gcHJvZ3Jlc3MgKi8NCiNkZWZpbmUgQ0FNX1RSQUNFX0Zf
UkVRX1ZBTElECTB4MDAwMDAwMDQJLyogcmVxdWVzdCBkYXRhIHZhbGlkICovDQojZGVmaW5lIENB
TV9UUkFDRV9GX1JFU1BfVkFMSUQJMHgwMDAwMDAwOAkvKiByZXNwb25zZSBkYXRhIHZhbGlkICov
DQojZGVmaW5lIENBTV9UUkFDRV9GX0NPTVBMRVRFCTB4MDAwMDAwMTAJLyogcmVzcG9uc2UgZ2F0
aGVyZWQgKi8NCiNkZWZpbmUgQ0FNX1RSQUNFX0ZfVElNRURPVVQJMHgwMDAwMDAyMAkvKiByZXF1
ZXN0IHRpbWVkIG91dCAqLw0KI2RlZmluZSBDQU1fVFJBQ0VfRl9BQkFORE9ORUQJMHgwMDAwMDA0
MAkvKiBjYW5jZWxsZWQsIGV0Yy4gKi8NCiNkZWZpbmUgQ0FNX1RSQUNFX0ZfUkVUUklFRAkweDAw
MDAwMDgwCS8qIHJldHJ5IGluIGxhdGVyIHJlY29yZCAqLw0KI2RlZmluZSBDQU1fVFJBQ0VfRl9J
U19SRVRSWQkweDAwMDAwMTAwCS8qIHJldHJ5IG9mIGVhcmxpZXIgcmVxLiAqLw0KI2RlZmluZSBD
QU1fVFJBQ0VfRl9QRVJJUEhfTUFTSwkweGYwMDAwMDAwCS8qIHVwIHRvIDE2IFBFUklQSCB0eXBl
cyAqLw0KI2RlZmluZSBDQU1fVFJBQ0VfRl9QRVJJUEhfREEJMHgwDQojZGVmaW5lIENBTV9UUkFD
RV9GX1BFUklQSF9BREEJMHgxDQojZGVmaW5lIENBTV9UUkFDRV9GX1BFUklQSF9OVkQJMHgyDQoJ
dV9pbnQ2NF90CXJlcV91c2VjOw0KCWNkYl90CQlyZXFfY2RiOw0KCXVfaW50NjRfdAlyZXNwX3Vz
ZWM7DQoJY2RiX3QJCXJlc3BfY2RiOw0KCXVfaW50OF90CXJlc3Bfc3RhdHVzOw0KCXVfaW50OF90
CXJlc3BfZXJyb3I7DQoJdV9pbnQ4X3QJcmVzcF9hc2M7CS8qIE5lZWRlZCBmb3IgU0NTST8gKi8N
Cgl1X2ludDhfdAlyZXNwX2FzcTsJLyogTmVlZGVkIGZvciBTQ1NJPyAqLw0KCXVfaW50OF90CXBh
ZGRpbmdbOF07CS8qIFBhZCB0byA2NCBieXRlcyAqLw0KLyogVGhlcmUncyBnb2luZyB0byBiZSBh
IGxhcmdlLWlzaCBhcnJheSBvZiB0aGVzZSBpbiB0aGUga2VybmVsOyBtYWtlIHN1cmUNCiAqIHRo
ZXkncmUgcGFja2VkIHRvIG1pbmltaXplIHNwYWNlIHVzYWdlLCBhbmQga2VlcCB0aGluZ3MgYWxp
Z25lZC4gSXQgbWF5DQogKiBtYWtlIHNlbnNlIHRvIHJlLW9yZGVyIHRoZSBmaWVsZHMgZm9yIGFs
aWdubWVudCBhcyB3ZWxsLg0KICovDQp9IGNhbV90cmFjZV9yZWNvcmRfdCBfX2F0dHJpYnV0ZV9f
KChwYWNrZWQsIGFsaWduZWQoOCkpKTsNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KCXVfaW50MzJfdAkJ
dHJhY2VfYnVmX3JlY29yZF9jb3VudDsNCgljYW1fdHJhY2VfcmVjb3JkX3QJKnRyYWNlX2J1ZjsN
Cn0gY2FtX3RyYWNlX2J1ZmZlcl90Ow0KDQovKiBUaGlzIGlzIHNldHRhYmxlIHZpYSBhIHR1bmFi
bGU7IGZvciBQYW5hc2FzJyBwdXJwb3NlcywgMTAwSyBlbnRyaWVzIHdhcw0KICogZW5vdWdoIHRv
IHByb3ZpZGUgYSBnb29kIGFtb3VudCBvZiBoaXN0b3J5IGV2ZW4gb24gYSBidXN5IHN5c3RlbSwg
d2hpbGUNCiAqIG5vdCB0YWtpbmcgdXAgbXVjaCBzcGFjZSAoPCA1TUIvZHJpdmUpLg0KICovDQoj
ZGVmaW5lIENBTV9UUkFDRV9CVUZGRVJfREVGQVVMVF9DT1VOVCAxMDAwMDANCg0KLS0tLS0tLS0t
LS0tLS0tLQ0KDQppb2N0bCBpbnRlcmZhY2VzIGFyZSB1c2VkIHRvIGdldCB0aGUgdHJhY2UgYnVm
ZmVyIHNpemUsIHRvIHJldHJpZXZlIHRoZSBidWZmZXIgY29udGVudHMsIG9yIHRvIGNsZWFyIHRo
ZSBidWZmZXIuIFRoZSBidWZmZXIgY2FuIHRoZW4gYmUgYW5hbHl6ZWQgZnJvbSB1c2Vyc3BhY2Us
IG9yIHdyaXR0ZW4gdG8gYSBmaWxlIGZvciBwb3N0LXByb2Nlc3NpbmcuDQoNCi0tLS0tLS0tDQoN
CiNkZWZpbmUgQ0FNX0dFVF9UUkFDRV9SRUNPUkRfQ09VTlQJX0lPUig/Pz8sID8/PywgdV9pbnQz
Ml90KQ0KI2RlZmluZSBDQU1fR0VUX1RSQUNFX0JVRkZFUgkJX0lPV1IoPz8/LCA/Pz8sIGNhbV90
cmFjZV9idWZmZXJfdCkNCiNkZWZpbmUgQ0FNX0NMRUFSX1RSQUNFX0JVRkZFUgkJX0lPVyg/Pz8s
ID8/PywgdV9pbnQzMl90KQ0KDQotLS0tLS0tLS0tLS0tLS0tDQoNClRvIGdldCB0aGUgYnVmZmVy
Og0KDQotLS0tLS0tLQ0KDQoJY2FtX3RyYWNlX2J1ZmZlcl90IHRyYWNlID0gTlVMTDsNCglmZCA9
IG9wZW4ocGVyaXBoX25hbWUsIE9fUkRPTkxZKTsNCgllcnJvciA9IGlvY3RsKGZkLCBDQU1fR0VU
X1RSQUNFX1JFQ09SRF9DT1VOVCwNCgkgICAgJnRyYWNlLnRyYWNlX2J1Zl9yZWNvcmRfY291bnQp
Ow0KCXRyYWNlLnRyYWNlX2J1ZiA9IG1hbGxvYyh0cmFjZS50cmFjZV9idWZfcmVjb3JkX2NvdW50
ICoNCgkgICAgc2l6ZW9mKGNhbV90cmFjZV9yZWNvcmRfdCkpOw0KCWVycm9yID0gaW9jdGwoZmQs
IENBTV9HRVRfVFJBQ0VfQlVGRkVSLCAmdHJhY2UpOw0KDQotLS0tLS0tLS0tLS0tLS0tDQoNCkJ5
IGluY2x1ZGluZyB0aGUgZnVsbCBDREIsIHRoZSBlbnRpcmUgY29tbWFuZCBjYW4gYmUgZGVjb2Rl
ZCBieSBhbmFseXNpcyB0b29scy4gVG9vbHMgY2FuIGJlIHdyaXR0ZW4gdG8gcGFyc2UgdGhlIGJ1
ZmZlciBhbmQgdHJhbnNsYXRlIGNvbW1hbmQgZGF0YSBpbnRvIGh1bWFuLXJlYWRhYmxlIGRlc2Ny
aXB0aW9ucywgY2FsY3VsYXRlIGVsYXBzZWQgdGltZXMgZm9yIHJlcXVlc3RzLCBwZXJmb3JtIHN0
YXRpc3RpY2FsIGFuYWx5c2lzIGJhc2VkIG9uIG9wY29kZSwgY29tbWFuZCB0eXBlLCB0cmFuc2Zl
ciBzaXplLCBldGMuIENvbW1hbmQgZGVjb2RlcnMgd291bGQgbmVlZCB0byBiZSB3cml0dGVuIGZv
ciBlYWNoIFBFUklQSCB0eXBlIChpLmUuIG9uZSBmb3IgQVRBLCBvbmUgZm9yIFNDU0ksIG9uZSBm
b3IgTlZNZSwgZXRjLikuDQoNCi0tLS0tLS0tLS0tLS0tLS0NCg0KRWFjaCBQRVJJUEgncyBzb2Z0
YyBuZWVkcyB0byBpbmNsdWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBlci1kZXZpY2UN
CmJ1ZmZlci4NCg0KLS0tLS0tLS0NCg0KCXVfaW50MzJfdAkJdHJhY2VfYnVmX3JlY29yZF9jb3Vu
dDsNCgl1X2ludDY0X3QJCXRyYWNlX2J1Zl9yZXF1ZXN0X2NvdW50Ow0KCWNhbV90cmFjZV9yZWNv
cmRfdAkqdHJhY2VfYnVmOw0KDQotLS0tLS0tLS0tLS0tLS0tDQoNCkluIGVhY2ggU0lNLCB0aGVy
ZSBzaG91bGQgYWxyZWFkeSBiZSBzb21lIHNvcnQgb2YgcmVxdWVzdCBzdHJ1Y3R1cmUsIHdoaWNo
IGFzc29jaWF0ZXMgdGhlIHNvZnRjIGFuZCB0aGUgQ0RCIG9mIHRoZSByZXF1ZXN0LiBUbyB0aGF0
IHN0cnVjdHVyZSwgYWRkIGEgcG9pbnRlciB0byB0aGUgdHJhY2UgcmVjb3JkIGFzc29jaWF0ZWQg
d2l0aCB0aGUgcmVxdWVzdC4NCg0KLS0tLS0tLS0NCg0KcmVxdWVzdCBzdHJ1Y3R1cmU6DQoJY2Ft
X3RyYWNlX3JlY29yZF90CSp0cmFjZV9yZWM7DQoNCi0tLS0tLS0tLS0tLS0tLS0NCg0KV2hlbiBp
bml0aWFsaXppbmcgdGhlIHBlci1kZXZpY2Ugc29mdGMsIGFsbG9jYXRlIGEgdHJhY2UgYnVmZmVy
LiBUaGUgbnVtYmVyIG9mIHJlY29yZHMgY2FuIGJlIGhhcmQtY29kZWQsIG9yIHNldHRhYmxlIHZp
YSBhIHR1bmFibGUuDQoNClRoZSBleGFtcGxlIGJlbG93IGhhcyBhIGdsb2JhbCBzaXplIGZvciBl
dmVyeXRoaW5nLCBidXQgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGRvIGl0IG9uIGEgcGVyLWRl
dmljZSBvciBwZXItUEVSSVBIIGJhc2lzLg0KDQotLS0tLS0tLQ0KDQoJLyoqIEluaXRpYWxpemUg
cGVyLWRyaXZlIGNvbW1hbmQgdHJhY2luZyBidWZmZXIuICoqLw0KCS8qIEdldCB0aGUgYnVmZmVy
IHNpemUgZnJvbSB0aGUgdHVuYWJsZS4gU2FuaXR5IGNoZWNrIGl0LiAqLw0KCXNjLT50cmFjZV9i
dWZfcmVjb3JkX2NvdW50ID0gQ0FNX1RSQUNFX0JVRkZFUl9ERUZBVUxUX0NPVU5UOw0KCVRVTkFC
TEVfVUxPTkdfRkVUQ0goImNhbS50cmFjZV9idWZfcmVjb3JkX2NvdW50IiwNCgkgICAgJnRyYWNl
X2J1Zl9yZWNvcmRfY291bnRfdHVuYWJsZSk7DQoJaWYgKHRyYWNlX2J1Zl9yZWNvcmRfY291bnRf
dHVuYWJsZSkgew0KCQkvKiBMZXNzIHRoYW4gMUsgcmVjb3JkcyBpcyB1bnVzYWJseSBmZXc7IG1v
cmUgdGhhbiAxTQ0KCQkgKiByZWNvcmRzIGlzIHVudXNhYmx5IG1hbnkuDQoJCSAqLw0KCQlpZiAo
KHRyYWNlX2J1Zl9yZWNvcmRfY291bnRfdHVuYWJsZSA8ICgxIDw8IDEwKSkgfHwNCgkJICAgICh0
cmFjZV9idWZfcmVjb3JkX2NvdW50X3R1bmFibGUgPiAoMSA8PCAyMCkpKSB7DQoJCQlkZXZpY2Vf
cHJpbnRmKGRldiwgImNhbS50cmFjZV9idWZfcmVjb3JkX2NvdW50PSVsdSINCgkJCSAgICAiIG91
dCBvZiByYW5nZTsgc2hvdWxkIGJlIGJldHdlZW4gJXUgYW5kICV1XG4iLA0KCQkJICAgIHRyYWNl
X2J1Zl9yZWNvcmRfY291bnRfdHVuYWJsZSwgKDEgPDwgMTApLA0KCQkJICAgICgxIDw8IDIwKSk7
DQoJCX0gZWxzZSB7DQoJCQlzYy0+dHJhY2VfYnVmX3JlY29yZF9jb3VudCA9ICh1X2ludDMyX3Qp
DQoJCQkgICAgdHJhY2VfYnVmX3JlY29yZF9jb3VudF90dW5hYmxlOw0KCQl9DQoJfQ0KCS8qIEFs
bG9jYXRlIHRoZSBidWZmZXIuICovDQoJdHJhY2VfYnVmX2J5dGVzID0gc2MtPnRyYWNlX2J1Zl9y
ZWNvcmRfY291bnQgKg0KCSAgICBzaXplb2YoY2FtX3RyYWNlX3JlY29yZF90KTsNCglzYy0+dHJh
Y2VfYnVmID0gbWFsbG9jKHRyYWNlX2J1Zl9ieXRlcywgTV9BRCwgTV9OT1dBSVQgfCBNX1pFUk8p
Ow0KCWlmIChzYy0+dHJhY2VfYnVmID09IE5VTEwpIHsNCgkJZGV2aWNlX3ByaW50ZihkZXYsICJ1
bmFibGUgdG8gYWxsb2NhdGUgJXpkIGZvciB0cmFjZV9idWZcbiIsDQoJCSAgICB0cmFjZV9idWZf
Ynl0ZXMpOw0KCQlzYy0+dHJhY2VfYnVmX3JlY29yZF9jb3VudCA9IDA7DQoJfSBlbHNlIHsNCgkJ
ZGV2aWNlX3ByaW50ZihkZXYsICJhbGxvY2F0ZWQgJXpkIEAgJXAgZm9yIHRyYWNlX2J1ZlxuIiwN
CgkJICAgIHRyYWNlX2J1Zl9ieXRlcywgc2MtPnRyYWNlX2J1Zik7DQoJfQ0KCS8qIFJlcXVlc3Qg
Y291bnRlciwgdXNlZCBmb3IgaW5kZXhpbmcgKi8NCglzYy0+dHJhY2VfYnVmX3JlcXVlc3RfY291
bnQgPSAwOw0KDQoNCi0tLS0tLS0tLS0tLS0tLS0NCg0KLyogSW5pdGlhbCBzZXR1cCBvZiB0aGUg
dHJhY2UgcmVjb3JkIGZvciBhIG5ldyByZXF1ZXN0Lg0KICoNCiAqICBMb2NhdGUgdGhlIGNpcmN1
bGFyIHBlci1kZXZpY2UgdHJhY2UgYnVmZmVyIGluIHRoZSBkcml2ZSdzIHNvZnRjLg0KICogIFBv
cHVsYXRlIHRoZSBwb2ludGVyIHRvIHRoZSBuZXh0IHJlY29yZCBpbiB0aGUgdHJhY2UgYnVmZmVy
OyB0aGlzIGlzDQogKiAgZG9uZSBhdG9taWNhbGx5IHRvIHByZXZlbnQgY29uY3VycmVudCByZXF1
ZXN0cyBmcm9tIGdldHRpbmcgdGhlIHNhbWUNCiAqICBpbmRleC4gVGhhdCBjb3VsZCBnZXQgYSBi
aXQgd2VpcmQgaWYvd2hlbiAndHJhY2VfYnVmX3JlcXVlc3RfY291bnQnDQogKiAgcm9sbHMgb3Zl
ciwgaWYgdGhlIG1heGltdW0gY291bnRlciB2YWx1ZSBpcyBub3QgYSBtdWx0aXBsZSBvZg0KICog
ICd0cmFjZV9idWZfcmVjb3JkX2NvdW50JyAoaS5lLiB0aGUgcmVxdWVzdCBjb3VudGVyIHJlY3lj
bGVzIGluIHRoZQ0KICogIG1pZGRsZSBvZiB0aGUgYnVmZmVyKS4gQnkgdXNpbmcgYSA2NC1iaXQg
cmVxdWVzdCBjb3VudGVyLCB3ZSdyZSBwcmV0dHkNCiAqICBzYWZlIC0gZXZlbiBhdCBvbmUgdHJh
bnNhY3Rpb24gcGVyIG5hbm9zZWNvbmQsIHRoYXQgd2lsbCBzdGlsbCBsYXN0DQogKiAgYWJvdXQg
NTg1IHllYXJzLg0KICoNCiAqICBJbml0aWFsaXplIHRoZSByZWNvcmQgYnkgemVyb2luZyBpdCBh
bmQgdGhlbiBzZXR0aW5nIHRoZSBWQUxJRCBmbGFnLg0KICoNCiAqICBUaGlzIGNvdWxkIGJlIGRv
bmUgYXQgYW55IHBvaW50IGJlZm9yZSBzZW5kaW5nIHRoZSByZXF1ZXN0IHRvIHRoZQ0KICogIGhh
cmR3YXJlOyBuZWl0aGVyIHRoZSBDREIgZGF0YSBub3IgdGhlIHRpbWVzdGFtcHMgYXJlIGludm9s
dmVkIHlldC4NCiAqLw0Kdm9pZA0KdHJhY2VfcmVjX2luaXQoY2FtX3JlcXVlc3RfdCByZXEpIHsN
CglhZGFfc29mdGMgKnNjID0gKHJlcXVlc3QtPi4uLi0+c29mdGMpDQoJdV9pbnQ2NF90IHRtcCA9
IDA7DQoJaWYgKHNjICYmIHNjLT50cmFjZV9idWYpIHsNCgkJdG1wID0gYXRvbWljX2ZldGNoYWRk
X2xvZygmc2MtPnRyYWNlX2J1Zl9yZXF1ZXN0X2NvdW50LCAxKTsNCgkJcmVxLT50cmFjZV9yZWMg
PSAmc2MtPnRyYWNlX2J1Zlt0bXAgJQ0KCQkgICAgc2MtPnRyYWNlX2J1Zl9yZWNvcmRfY291bnRd
Ow0KCQliemVybyhyZXEtPnRyYWNlX3JlYywgc2l6ZW9mKCpyZXEtPnRyYWNlX3JlYykpOw0KCQly
ZXEtPnRyYWNlX3JlYy0+ZmxhZ3MgPSAoQ0FNX1RSQUNFX0ZfUEVSSVBIX1hYWCA8PCAyOCk7DQoJ
CXJlcS0+dHJhY2VfcmVjLT5mbGFncyB8PSBDQU1fVFJBQ0VfRl9WQUxJRDsNCgl9IGVsc2Ugew0K
CQlyZXEtPnRyYWNlX3JlYyA9IE5VTEw7DQoJfQ0KfQ0KDQotLS0tLS0tLS0tLS0tLS0tDQoNCi8q
IFN0dWZmIHRoZSByZXF1ZXN0IGRhdGEgaW50byB0aGUgdHJhY2UgcmVjb3JkLg0KICoNCiAqICBJ
ZiB0aGUgdHJhY2UgcmVjb3JkIGlzIHByZXNlbnQgYW5kIHZhbGlkLCBjb3B5IHRoZSBDREIgaW50
byB0aGUNCiAqICByZWNvcmQuIFNldCBDQU1fVFJBQ0VfRl9SRVFfVkFMSUQgdG8gaW5kaWNhdGUg
dGhhdCB0aGUgcmVxdWVzdCBkYXRhIGlzDQogKiAgdmFsaWQsIGFuZCBJTlBST0dSRVNTIHRvIHNo
b3cgdGhhdCB0aGUgcmVxdWVzdCBpcyBpbi1wcm9ncmVzcy4NCiAqDQogKiAgVGhpcyBzaG91bGQg
YmUgZG9uZSBqdXN0IGJlZm9yZSBzZW5kaW5nIHRoZSByZXF1ZXN0IHRvIHRoZSBoYXJkd2FyZS4N
CiAqICBUaGlzIHNob3VsZCAqbm90KiBiZSBmdXNlZCBpbnRvIHRyYWNlX3JlY19pbml0KCksIGJl
Y2F1c2UNCiAqICB0cmFjZV9yZWNfaW5pdCgpIGlzIGFsc28gdXNlZCBpbiB0aGUgcmV0cnkgY2Fz
ZSwgd2hlcmUgaXQgaXMgbm90DQogKiBjb3JyZWN0IHRvIGltbWVkaWF0ZWx5IHN0YXJ0IHRoZSB0
aW1lci4NCiAqLw0Kdm9pZA0KdHJhY2VfcmVjX3JlcShjYW1fcmVxdWVzdF90IHJlcSkgew0KCXN0
cnVjdCB0aW1ldmFsIHR2Ow0KCWlmIChyZXEtPnRyYWNlX3JlYyAmJiAocmVxLT50cmFjZV9yZWMt
PmZsYWdzICYgQ0FNX1RSQUNFX0ZfVkFMSUQpKSB7DQoJCWJjb3B5KHJlcS0+Y2RiLCByZXEtPnRy
YWNlX3JlYy0+cmVxX2NkYiwgc2l6ZW9mKHJlcS0+Y2RiKSk7DQoJCW1pY3JvdXB0aW1lKCZ0dik7
DQoJCXJlcS0+dHJhY2VfcmVjLT5yZXFfdXNlYyA9ICgodWludDY0X3QpIHR2LT50dl9zZWMgKiAx
MDAwMDAwKQ0KCQkgICAgKyB0di0+dHZfdXNlYzsNCgkJcmVxLT50cmFjZV9yZWMtPmZsYWdzIHw9
DQoJCSAgICAoQ0FNX1RSQUNFX0ZfUkVRX1ZBTElEIHwgQ0FNX1RSQUNFX0ZfSU5QUk9HUkVTUyk7
DQoJfQ0KfQ0KDQotLS0tLS0tLS0tLS0tLS0tDQoNCi8qIFN0dWZmIHRoZSByZXNwb25zZSBkYXRh
IGludG8gdGhlIHRyYWNlIHJlY29yZC4NCiAqDQogKiAgSWYgdGhlIHRyYWNlIHJlY29yZCBpcyBw
cmVzZW50IGFuZCB2YWxpZCwgY29weSB0aGUgQ0RCICoqYXMgcmV0dXJuZWQgYnkNCiAqICB0aGUg
ZHJpdmUqKiBpbnRvIHRoZSByZWNvcmQuIEF0IHRoaXMgcG9pbnQsIHdlIGFsc28gaGF2ZSB0aGUg
cmVzdWx0IGZyb20NCiAqICB0aGUgY29tbWFuZCAoc3RhdHVzLCBlcnJvciwgKGFzYz8gYXNjcT8p
KSwgc28gc2F2ZSB0aGVtIHRvby4gU2V0DQogKiAgQ0FNX1RSQUNFX0ZfUkVTUF9WQUxJRCB0byBp
bmRpY2F0ZSB0aGF0IHRoZSByZXNwb25zZSBkYXRhIGlzIHZhbGlkLg0KICogIENsZWFyIElOUFJP
R1JFU1MgYW5kIHNldCBDT01QTEVURSBpbnN0ZWFkLg0KICoNCiAqICBUaGlzIHNob3VsZCBiZSBk
b25lIGp1c3QgYWZ0ZXIgZ2V0dGluZyB0aGUgcmVzcG9uc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUN
CiAqICBoYXJkd2FyZS4NCiAqLw0Kdm9pZA0KdHJhY2VfcmVjX3Jlc3AoY2FtX3JlcXVlc3RfdCBy
ZXEpIHsNCglzdHJ1Y3QgdGltZXZhbCB0djsNCglpZiAocmVxLT50cmFjZV9yZWMgJiYgKHJlcS0+
dHJhY2VfcmVjLT5mbGFncyAmIENBTV9UUkFDRV9GX1ZBTElEKSkgew0KCQltaWNyb3VwdGltZSgm
dHYpOw0KCQliY29weShyZXEtPmNkYiwgcmVxLT50cmFjZV9yZWMtPnJlc3BfY2RiLCBzaXplb2Yo
cmVxLT5jZGIpKTsNCgkJcmVxLT50cmFjZV9yZWMtPnJlc3BfdXNlYyA9ICgodWludDY0X3QpIHR2
LT50dl9zZWMgKg0KCQkgICAgMTAwMDAwMCkgKyB0di0+dHZfdXNlYzsNCgkJcmVxLT50cmFjZV9y
ZWMtPmZsYWdzIHw9DQoJCSAgICAoQ0FNX1RSQUNFX0ZfUkVTUF9WQUxJRCB8IENBTV9UUkFDRV9G
X0NPTVBMRVRFKTsNCgkJcmVxLT50cmFjZV9yZWMtPmZsYWdzICY9IH5DQU1fVFJBQ0VfRl9JTlBS
T0dSRVNTOw0KCX0NCn0NCg0KLS0tLS0tLS0tLS0tLS0tLQ0KDQovKiBVcGRhdGUgdGhlIHRyYWNl
IHJlY29yZCBpZiB0aGVyZSB3YXMgYSB0aW1lb3V0Lg0KICoNCiAqICBJZiB0aGUgdHJhY2UgcmVj
b3JkIGlzIHByZXNlbnQgYW5kIHZhbGlkLCBzZXQgVElNRURPVVQgdG8gaW5kaWNhdGUNCiAqICB0
aGF0IHRoZSByZXF1ZXN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVjb3JkIGV4Y2VlZGVkIGl0cyB0
aW1lb3V0Lg0KICogIFNpbmNlIHRoaXMgYXR0ZW1wdCBpcyBjb21wbGV0ZSwgY2xlYXIgSU5QUk9H
UkVTUyBhbmQgc2V0IENPTVBMRVRFLg0KICoNCiAqICBUaGlzIHNob3VsZCBiZSBkb25lIGFsb25n
IHdpdGggb3RoZXIgdGltZW91dCBoYW5kbGluZy4NCiAqLw0Kdm9pZA0KdHJhY2VfcmVjX3RpbWVv
dXQoY2FtX3JlcXVlc3RfdCByZXEpIHsNCglpZiAocmVxLT50cmFjZV9yZWMgJiYgKHJlcS0+dHJh
Y2VfcmVjLT5mbGFncyAmIENBTV9UUkFDRV9GX1ZBTElEKSkgew0KCQlyZXEtPnRyYWNlX3JlYy0+
ZmxhZ3MgfD0NCgkJICAgIChDQU1fVFJBQ0VfRl9USU1FRE9VVCB8IENBTV9UUkFDRV9GX0NPTVBM
RVRFKTsNCgkJcmVxLT50cmFjZV9yZWMtPmZsYWdzICY9IH5DQU1fVFJBQ0VfRl9JTlBST0dSRVNT
Ow0KCX0NCn0NCg0KLS0tLS0tLS0tLS0tLS0tLQ0KDQovKiBVcGRhdGUgdGhlIHRyYWNlIHJlY29y
ZCBpZiB0aGUgcmVxdWVzdCBpcyBiZWluZyByZXRyaWVkLg0KICogIA0KICogIElmIHRoZSB0cmFj
ZSByZWNvcmQgaXMgcHJlc2VudCBhbmQgdmFsaWQsIHNldCBSRVRSSUVEIHRvIGluZGljYXRlDQog
KiAgdGhhdCB0aGUgcmVxdWVzdCBhc3NvY2lhdGVkIHdpdGggdGhlIHJlY29yZCBpcyBnb2luZyB0
byBiZSByZXRyaWVkLg0KICogIFNpbmNlIHRoaXMgYXR0ZW1wdCBpcyBjb21wbGV0ZSwgY2xlYXIg
SU5QUk9HUkVTUyBhbmQgc2V0IENPTVBMRVRFLg0KICogIFRoZW4gZ2V0IGEgbmV3IHRyYWNlIHJl
Y29yZCBmb3IgdGhlIG5ldyBhdHRlbXB0LCBjb3B5IHRoZSByZXF1ZXN0DQogKiAgY29tbWFuZCBk
YXRhIHRvIHRoZSBuZXcgcmVjb3JkLCBhbmQgc2V0IElTX1JFVFJZIHRvIHNob3cgdGhhdCB0aGlz
DQogKiAgaXMgYSByZXRyeSBvZiBhbiBlYXJsaWVyIHJlcXVlc3QuDQogKg0KICogIFRoaXMgc2hv
dWxkIGJlIGRvbmUgYXQgdGhlIHRpbWUgdGhlIHJldHJ5IGlzIHF1ZXVlZC4NCiAqLw0Kdm9pZA0K
dHJhY2VfcmVjX3JldHJ5KGNhbV9yZXF1ZXN0X3QgcmVxKSB7DQoJaWYgKHJlcS0+dHJhY2VfcmVj
ICYmIChyZXEtPnRyYWNlX3JlYy0+ZmxhZ3MgJiBDQU1fVFJBQ0VfRl9WQUxJRCkpIHsNCgkJLyog
Rmlyc3QsIG1hcmsgdGhlIG9yaWdpbmFsIHJlcXVlc3QgYXMgYmVpbmcgcmVxdWV1ZWQuICovDQoJ
CXJlcS0+dHJhY2VfcmVjLT5mbGFncyB8PQ0KCQkgICAgKENBTV9UUkFDRV9GX1JFVFJJRUQgfCBD
QU1fVFJBQ0VfRl9DT01QTEVURSk7DQoJCXJlcS0+dHJhY2VfcmVjLT5mbGFncyAmPSB+Q0FNX1RS
QUNFX0ZfSU5QUk9HUkVTUzsNCgkJLyogR2V0IGEgbmV3IHJlY29yZCBmb3IgdGhlIHJldHJ5LiAq
Lw0KCQl0cmFjZV9yZWNfaW5pdChyZXEpOw0KCQkvKiBNYXJrIHRoZSBuZXcgcmVjb3JkIGFzIGJl
aW5nIGEgcmV0cnkuICovDQoJCXJlcS0+dHJhY2VfcmVjLT5mbGFncyB8PSBDQU1fVFJBQ0VfRl9J
U19SRVRSWTsNCgl9DQp9DQoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCkkn
ZCBhcHByZWNpYXRlIGZlZWRiYWNrLCBib3RoIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxz
IGFuZCBvbiB0aGUgaWRlYSBhcyBhIHdob2xlLiBTb21lIG9wZW4gcXVlc3Rpb25zIGFyZToNCg0K
LSBNeSBhc3N1bXB0aW9uIGlzIHRoYXQgZWFjaCBTSU0gaGFzIGEgc3RydWN0dXJlIHRoYXQgYXNz
b2NpYXRlcyBhIFBFUklQSCdzIHNvZnRjIHdpdGggdGhlIENEQiB0aGF0J3MgYmVpbmcgcHJvY2Vz
c2VkLiBJdCBtaWdodCByZXF1aXJlIGRlcmVmZXJlbmNpbmcgYSBjaGFpbiBvZiBwb2ludGVycywg
YnV0IGl0IHNob3VsZCBiZSB0aGVyZSBpbiBzb21lIGZhc2hpb24uDQoNCi0gVGhlIGN1cnJlbnQg
aW1wbGVtZW50YXRpb24gYWRkcyBhIGZldyBpb2N0bHMgdG8gdGhlIG9sZCBhZCg0KSBkaXNrLWRl
dmljZSBkcml2ZXIuIEkgd291bGQgZXhwZWN0IHRvIGFkZCB0aGUgbmV3IGlvY3RscyB0byBkYSg0
KSBhbmQgYWRhKDQpOyBpcyB0aGF0IHRoZSByaWdodCB0aGluZyB0byBkbz8NCg0KQWdhaW4sIGFu
eSBmZWVkYmFjayB3b3VsZCBiZSBncmVhdGx5IGFwcHJlY2lhdGVkLiBJJ2xsIGJlIGF0IHRoZSBE
ZXYvVmVuZG9yIFN1bW1pdCBuZXh0IHdlZWssIGlmIGFueW9uZSB3YW50cyB0byBkaXNjdXNzIHRo
aXMgd2l0aCBtZSBpbiBwZXJzb24uDQoNClRoYW5rcywNCg0KUmF2aQ0K



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A760883F-317D-46C9-AD7C-B8F5D96A49DA>