From owner-freebsd-performance@FreeBSD.ORG Thu Aug 26 02:45:42 2010 Return-Path: Delivered-To: freebsd-performance@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 064A11065679; Thu, 26 Aug 2010 02:45:42 +0000 (UTC) (envelope-from Jin.Mai@alcatel-sbell.com.cn) Received: from cnshjsmin03.alcatel-sbell.com.cn (cnshjsmin03.alcatel-sbell.com.cn [211.144.215.47]) by mx1.freebsd.org (Postfix) with ESMTP id E1E998FC1D; Thu, 26 Aug 2010 02:45:40 +0000 (UTC) X-AuditID: ac189297-b7be1ae000001fe2-f1-4c75d1ca53c3 Received: from cnshgsbhs01.ad4.ad.alcatel.com (smtp.cn.alcatel-lucent.com [172.24.146.145]) by cnshjsmin03.alcatel-sbell.com.cn (Symantec Brightmail Gateway) with SMTP id D5.C5.08162.AC1D57C4; Thu, 26 Aug 2010 10:30:34 +0800 (HKT) Received: from CNSHGSMBS03.ad4.ad.alcatel.com ([172.24.146.173]) by cnshgsbhs01.ad4.ad.alcatel.com with Microsoft SMTPSVC(6.0.3790.4675); Thu, 26 Aug 2010 10:30:34 +0800 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01CB44C6.A8EA2172" Date: Thu, 26 Aug 2010 10:30:33 +0800 Message-ID: <1DB91DF937A4544C81E636468B91C21C0728E6FF@CNSHGSMBS03.ad4.ad.alcatel.com> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: HELP. FreeBSD 8.1 polling issue Thread-Index: ActExqh99x4mmQoLSjK6TlN2EyEHZQ== From: "MAI JIN" To: , X-OriginalArrivalTime: 26 Aug 2010 02:30:34.0605 (UTC) FILETIME=[A96011D0:01CB44C6] X-CFilter-Loop: Reflected X-Brightmail-Tracker: AAAAAA== X-Mailman-Approved-At: Thu, 26 Aug 2010 04:48:42 +0000 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: HELP. FreeBSD 8.1 polling issue X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Aug 2010 02:45:42 -0000 This is a multi-part message in MIME format. ------_=_NextPart_001_01CB44C6.A8EA2172 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksDQoNCkkgZ290IGEgZnJlZUJTRCA4LjEgcG9sbGluZyBpc3N1ZSBvbiBteSBQQy4gSXQgaXMg YSBkdWFsLWNvcmUgSW50ZWwgUGVudGl1bSB4ODYgUEMgKDIuOEdIeiBlYWNoIGNvcmUpLiBUaGUg RXRoZXJuZXQgaW50ZXJmYWNlIGlzIEJyb2FkY29tIE5ldFh0cmVtZSA1N3h4IEdpZ2FiaXQgRXRo ZXJuZXQgaW50ZXJmYWNlLg0KSSBzZXQgdGhlIGZvbGxvd2luZyBvcHRpb25zIChlbmFibGUgcG9s bGluZyBhbmQgemVyby1idWZmZXIgY29weSkgYW5kIHJlYnVpbHQgdGhlIGtlcm5lbDoNCg0KQ29k ZToNCiMgVG8gbWFrZSBhbiBTTVAga2VybmVsLCB0aGUgbmV4dCB0d28gbGluZXMgYXJlIG5lZWRl ZA0Kb3B0aW9ucyAgICAgICAgIFNNUCAgICAgICAgICAgICAgICAgICAgICMgU3ltbWV0cmljIE11 bHRpUHJvY2Vzc29yIEtlcm5lbA0KZGV2aWNlICAgICAgICAgIGFwaWMgICAgICAgICAgICAgICAg ICAgICMgSS9PIEFQSUMNCg0Kb3B0aW9ucyBERVZJQ0VfUE9MTElORyAjIE9wZW4gUG9sbGluZw0K b3B0aW9ucyBIWj0xMDAwDQpvcHRpb25zIFpFUk9fQ09QWV9TT0NLRVRTDQpUaGUgZm9sbG93aW5n IHdlcmUgYXBwZW5kZWQgdG8gdGhlIC9ldGMvc3lzY3RsLmNvbmYNCg0KQ29kZToNCmtlcm4ucG9s bGluZy5lbmFibGU9MQ0KIyBpbmNyZWFzZSBCUEYgYnVmZmVyIHRvIDEwTQ0KbmV0LmJwZi5idWZz aXplPTEwNDg1NzYwDQpuZXQuYnBmLm1heGJ1ZnNpemU9MTA0ODU3NjANCmtlcm4ucG9sbGluZy5p ZGxlX3BvbGw9MQ0Ka2Vybi5wb2xsaW5nLmJ1cnN0X21heD0xMDAwDQpBZnRlciBpbnN0YWxsZWQg YW5kIHJlYm9vdGVkIHRoZSBzeXN0ZW0sIGtlcm4ucG9sbGluZy5lbmFibGUgd2FzIG5vdCBmb3Vu ZCBpbiBNSUIgc28gSSBoYWQgdG8gaWdub3JlIHRoaXMgZXJyb3IuIExvb2tzIGxpa2Uga2Vybi5w b2xsaW5nLmVuYWJsZSBpcyByZW1vdmVkIGZyb20gRnJlZUJTRCB2OC4xPw0KRXZlcnl0aGluZyBs b29rZWQgZ29vZCBzbyBidWlsZCBteSBhcHBsaWNhdGlvbiB0byByZWNlaXZlZCBkYXRhIGZyb20g YW5vdGhlciBIUCBzZXJ2ZXIuIEkgd3JvdGUgdGhlIGFwcGxpY2F0aW9uIHVzaW5nIGxpYnBjYXAt MS4xLjEgd2l0aCBCRlAgemVyby1jb3B5IHR1cm5lZCBvbiAoSSBmb3VuZCB0aGUgI2RlZmluZSBI QVZFX1pFUk9DT1BZX0JQRiAxIGluIGNvbmZpZy5oKS4gQXR0YWNoZWQgcGxlYXNlIGZpbmQgdGhl IHNvdXJjZSBjb2RlIG9mIG15IGFwcGxpY2F0aW9uLg0KDQpCZWZvcmUgcnVubmluZyB0aGUgYXBw bGljYXRpb24sIEkgc2V0IHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoNCg0KQ29kZToNCmlmY29u ZmlnIGJnZTAgcG9sbGluZyAgICAgIyBUaGlzIHdpbGwgdHVybiBvbiB0aGUgcG9sbGluZyBvZiB0 aGUgQnJvYWRjb20gZHJpdmVyLg0KQ29kZToNCnN5c2N0bCAtdyBuZXQuYnBmLmJ1ZnNpemU9MTA0 ODU3NjAgDQpzeXNjdGwgLXcgbmV0LmJwZi5tYXhidWZzaXplPTEwNDg1NzYwDQpzeXNjdGwgLXcg a2Vybi5wb2xsaW5nLmlkbGVfcG9sbD0xDQpzeXNjdGwgLXcga2Vybi5wb2xsaW5nLmJ1cnN0X21h eD0xMDAwDQpzeXNjdGwgLXcga2Vybi5wb2xsaW5nLmVhY2hfYnVyc3Q9MTI4DQpzeXNjdGwgLXcg bmV0LmluZXQuaXAuaW50cl9xdWV1ZV9tYXhsZW49MjU2DQpUaGVuIEkgcmFuIHRoZSBhcHBsaWNh dGlvbiB0byByZWNlaXZlIGRhdGEgZnJvbSB0aGUgSFAgc2VydmVyLiBJIHJhbiBtdWx0aXBsZSBp cGVyZiBvbiB0aGUgSFAgc2VydmVyIHRvIHNlbmQgYXJvdW5kIDEzM01iaXRzL3MgVURQIGxvYWQg dG8gdGhlIFBDIHVuZGVyIHRlc3QuIFRoZSBVRFAgcGF5bG9hZCBzaXplIHdhcyA0NyBieXRlcy4g VGhlIGVudGlyZSBJUCBwYWNrZXQgc2l6ZSBpcyA3NiBieXRlcy4NCg0KRmlyc3Qgb2YgYWxsLCB0 aGUgcmVjZWl2aW5nIGFwcGxpY2F0aW9uIHdvcmtlZCB3ZWxsIGFuZCByZWNlaXZlZCBhcm91bmQg MjA1SyBwYWNrZXRzL3NlY29uZCB3aXRob3V0IHBhY2tldCBsb3NpbmcgKEkgY2hlY2tlZCB0aGUg cmVjZWl2aW5nIHN0YXR1cyB1c2luZyBwY2FwX3N0YXRzKS4gSG93ZXZlciwgYWZ0ZXIgMiBtaW51 dGVzLCB0aGUgYXBwbGljYXRpb24gY2FuIG5vdCByZWNlaXZlZCBkYXRhIGFueSBtb3JlLiBUaGUg cGFja2V0cy9zZWNvbmQgaXMgMC4gSSByYW4gdGhlIHBpbmcgZnJvbSB0aGUgUEMgdW5kZXIgdGVz dCBhbmQgZm91bmQgdGhhdCB0aGUgcGluZyByZXBvcnRpbmcgdGltZW91dCBhbmQgZGVzdGluYXRp b24gdW5yZWFjaGFibGUgKHRoZSBwaW5nIGZyb20gSFAgdG8gdGhlIFBDIGFsc28gZmFpbGVkKS4g TG9va2VkIGxpa2UgdGhlIGxpbmsgYmV0d2VlbiB0aGUgSFAgc2VydmVyIGFuZCBQQyB3YXMgYnJv a2VuIHNvIHRoZSBhcHBsaWNhdGlvbiBjb3VsZCByZWNlaXZlIGRhdGEuIE5vIHBhY2tldCB3YXMg ZHJvcHBlZC4gVGhlbiBJIHJlc3RhcnQgdGhlIGJnZTAgaW50ZXJmYWNlIHVzaW5nOiBpZmNvbmZp ZyBiZ2UwIGRvd24gJiYgaWZjb25maWcgYmdlMCB1cA0KDQpBbmQgdGhlbiBJIHJlLXJhbiB0aGUg YXBwbGljYXRpb24gYW5kIGl0IGNvbnRpbnVlZCByZWNlaXZpbmcgZGF0YS4gQnV0IGFmdGVyIDEg b3IgMiBtaW51dGVzLCB0aGUgbGluayBicm9rZSBhZ2Fpbi4gSSB0aGluayBpdCB3YXMgbXkgYXBw bGljYXRpb24gdGhhdCBjYXVzZWQgdGhlIGJnZTAgaW50ZXJmYWNlIGRvd24uIEkgc3RhcnRlZCB0 aGUgdGNwZHVtcCBhbmQgaXQgd29ya2VkIHdlbGwgd2l0aG91dCBicmVha2luZyB0aGUgbGluay4g DQoNCkkgdHJpZWQgdG8gaW5jcmVhc2UgdGhlIGtlcm4ucG9sbGluZy5lYWNoX2J1cnN0IGZyb20g MTI4IHRvIDUwMCBidXQgdGhlIGFwcGxpY2F0aW9uIHdvdWxkIGNhdXNlIHRoZSBiZ2UwIGRvd24g d2l0aGluIDEgbWludXRlLiBObyBwYWNrZXQgd2FzIGRyb3BwZWQgYmVmb3JlIHRoZSBsaW5rIHdh cyBkb3duLg0KDQpJIGNoZWNrZWQgdGhlIENQVSB1c2FnZSBvZiB0aGUgUEMuIFRoZSBzeXMgdXNl ZCBpcyBhcm91bmQgOTAlIChtaWdodCBiZSBjYXVzZWQgYnkga2Vybi5wb2xsaW5nLmlkbGVfcG9s bD0xKSwgdXNlciBsYW5kIGlzIDEzJS4gDQpJIGRvbuKAmXQgdW5kZXJzdGFuZCB3aHkgdGhlIGFw cGxpY2F0aW9uIHdvdWxkIGJyZWFrIHRoZSBiZ2UwLg0KDQpJIHRyaWVkIGNoYW5naW5nIHRoZSBw YXJhbWV0ZXJzOg0Kb3B0aW9ucyBIWj0yMDAwDQoNCnN5c2N0bCAtdyBuZXQuYnBmLmJ1ZnNpemU9 MjA0ODU3NjAgDQpzeXNjdGwgLXcgbmV0LmJwZi5tYXhidWZzaXplPTIwNDg1NzYwDQpzeXNjdGwg LXcga2Vybi5wb2xsaW5nLmlkbGVfcG9sbD0xDQpzeXNjdGwgLXcga2Vybi5wb2xsaW5nLmJ1cnN0 X21heD0xMDAwMA0Kc3lzY3RsIC13IGtlcm4ucG9sbGluZy5lYWNoX2J1cnN0PTUwMDANCg0KVGhl IHBlcmZvcm1hbmNlIHdhcyBiZXR0ZXI6IEkgZ290IDMwN0sgcGFja2V0L3NlY29uZCAodGhlIEhQ IHNlcnZlciBzZW5kZWQgYXJvdW5kIDI1ME1iaXRzL3MsIG15IFBDIGdvdCAyMDBNYml0cy9zKS4g QnV0IGFmdGVyIDIgbWludXRlcywgdGhlIGJnZTAgd2FzIGRvd24gYWdhaW4uIA0KDQpDb3VsZCBh bnlib2R5IGhhdmUgYSBsb29rIGF0IHRoaXMgaXNzdWU/IEhvdyBjYW4gSSBvcHRpbWl6ZSB0aGUg cGVyZm9ybWFuY2Ugb2YgdGhlIHBvbGxpbmc/DQoNClRoYW5rcywNCkppbiANCg0KIDw8Y2FwLmNw cD4+IA0KDQpCZXN0IHJlZ2FyZHMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K54qv5by6 5rGJ6ICF77yM6Jm96L+c5b+F6K+b44CCDQrpuqbov5sgTWFpIEppbg0KQWxjYXRlbCBTaGFuZ2hh aSBCZWxsIChOYW5qaW5nKSBDby4gTHRkLg0KQWxjYXRlbC1OZXQ6IDI3MzUtNTAxMSANClRlbDog KCs4NiktMjUtODQ3MyAxMjQwLTUwMTENCkFkZHI6IDExRiwgWWFuZ3RzZSBSaXZlciBUZWNoIFBh cmsuIA0KICAgICAgICAgICBCdWlsZGluZyBOby40MCBvZiBOYW5jaGFuZyBSb2FkLCANCiAgICAg ICAgICAgR3Vsb3UgRGlzdHJpY3QsIE5hbmppbmcsIENoaW5hDQpaaXA6IDIxMDAzNw0KamluLm1h aUBBbGNhdGVsLXNiZWxsLmNvbS5jbg0KQVNCL01vQUQvUkRSL0JTUiBBUEwNCiANCg0K ------_=_NextPart_001_01CB44C6.A8EA2172 Content-Type: application/octet-stream; name="cap.cpp" Content-Transfer-Encoding: base64 Content-Description: cap.cpp Content-Disposition: attachment; filename="cap.cpp" I2luY2x1ZGUgPC9yb290L3BjYXAvaW5jbHVkZS9wY2FwLmg+DQogI2luY2x1ZGUgPHVuaXN0ZC5o Pg0KI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KI2luY2x1ZGUgPHNpZ25hbC5oPg0KI2luY2x1ZGUg PHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RkbGliLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQojaW5j bHVkZSA8bGltaXRzLmg+DQojaWZuZGVmIFdJTjMyDQojaW5jbHVkZSA8c3lzL3dhaXQuaD4NCiNp bmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4NCiNpbmNsdWRlIDxlcnJuby5oPg0KI2VuZGlmIC8qIFdJ TjMyICovDQovLyNpbmNsdWRlIDxuZXQvaWYuaD4NCiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQoj aW5jbHVkZSA8bmV0aW5ldC9pbi5oPg0KI2luY2x1ZGUgPGFycGEvaW5ldC5oPg0KI2luY2x1ZGUg PG5ldC9ldGhlcm5ldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaWZfZXRoZXIuaD4NCiNpbmNsdWRl IDxuZXRpbmV0L2lwLmg+DQojaW5jbHVkZSA8bmV0aW5ldC91ZHAuaD4NCg0KdHlwZWRlZiBpbnQg U1RBVFVTOw0KdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVjaGFyX3Q7DQoNCiNkZWZpbmUgQUxBUk1f U0xFRVAgICAgICAgICAgICAgNQ0KDQojZGVmaW5lIElQX1JFQ1ZfTUFYX1ZMQU4gICAgICAgIDQw OTYNCiNkZWZpbmUgSVBfUkVDVl9USU1FT1VUIDANCiNkZWZpbmUgSVBfUkVBU1NFTUJMRV9USU1F T1VUIDYwDQojZGVmaW5lIElQX1JFQ1ZfQlVGX1NJWkUgICAgNDA5Ng0KI2RlZmluZSBNQVhfRklM VEVSX1NJWkUgNTEyDQojZGVmaW5lIElQX1JFQ1ZfTUFYX1BBQ0tFVF9TSVpFICAgICAgICAgNjU1 MzYNCg0KI2RlZmluZSBFUlJPUiAtMQ0KI2RlZmluZSBPSyAwDQoNCg0KI2RlZmluZSBFUlJPUl9N QUpPUl9DTEFTUyBwcmludGYNCiNkZWZpbmUgVFJBQ0VfV0FSTklOR19DTEFTUyBwcmludGYNCg0K I2RlZmluZSBJUF9SRUNWX1RJTUVfVEhPVVNBTkQgICAxMDAwDQojZGVmaW5lIElQX1JFQ1ZfVElN RV9NSUxMSU9OICAgICgxMDAwMDAwKQ0KDQojaWZuZGVmIEVUSEVSVFlQRV9WTEFODQojZGVmaW5l IEVUSEVSVFlQRV9WTEFOICAgICAgICAgIDB4ODEwMCAgLyogSUVFRSA4MDIuMVEgVkxBTiB0YWdn aW5nICovDQojZW5kaWYNCg0KI2RlZmluZSBNQVhfQUFMMlBBVEhfTlVNICAgICAgNTEyDQojZGVm aW5lIEFBTDJQQVRIX1NUQVJUX1BPUlQgICA4MTkyDQoNCnBjYXBfdCAqbV9wZCA9IE5VTEw7DQpp bnQgbV9kYXRhbGluayA9IERMVF9FTjEwTUI7DQppbnQgbV9zbmFwbGVuID0gSVBfUkVDVl9CVUZf U0laRTsNCg0KdW5zaWduZWQgbG9uZyBtX3BrdENvdW50ID0gMDsNCnVuc2lnbmVkIGxvbmcgbV9w a3RMZW4gPSAwOw0KDQppbl9hZGRyX3QgbV9pcCA9IDA7DQoNCnZvaWQgbXlfc2lnYWxhcm0oaW50 IHNpZykgOw0KDQp0eXBlZGVmIHN0cnVjdCBwY2FwX3N0YXQgbXlzdGF0OyANCiANCm15c3RhdCBh Y3R1YWxTdGF0OyAvKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIG15c3RhdCBvbiBzdGFjayAtIHlvdSBj YW4gYWxzbyBkbyBpdCBvbiB0aGUgaGVhcCBieSBtYWxsb2MtaW5nICovIA0KbXlzdGF0ICpteXN0 YXRwID0gJmFjdHVhbFN0YXQ7IC8qIHVzZSBhbGxvY2F0ZWQgbWVtb3J5ICovIA0KIA0KDQpTVEFU VVMgcHJvY2Vzc0lwUGFja2V0KGNvbnN0IHN0cnVjdCBwY2FwX3BrdGhkciAqaCwgc2l6ZV90IGxl biwgY29uc3QgdWNoYXJfdCAqcGt0KQ0Kew0KICAgIHN0YXRpYyB1Y2hhcl90IG5ld19wa3RbSVBf UkVDVl9NQVhfUEFDS0VUX1NJWkVdOw0KICAgIHVuc2lnbmVkIG5ld19sZW4gPSBzaXplb2YobmV3 X3BrdCk7DQogICAgaW50IGlzX2ZyYWdtZW50ID0gMDsNCiAgICBjb25zdCBzdHJ1Y3QgaXAgKmlw Ow0KICAgIHVuc2lnbmVkIHggPSAwOw0KICAgIHVuc2lnbmVkIHByb3RvID0gMDsNCiAgICBzdHJ1 Y3QgaW5fYWRkciBpcF9kc3Q7DQogICAgc3RydWN0IGluX2FkZHIgaXBfc3JjOw0KICAgIGNvbnN0 IHVjaGFyX3QgKm9yaWdfcGt0ID0gcGt0Ow0KICAgIHNpemVfdCBvcmlnX2xlbiA9IGxlbjsNCiAg ICB1bnNpZ25lZCBmcmFnX2hkcl9vZmZzZXQgPSAwOw0KDQogICAgaWYgKGxlbiA8IHNpemVvZihz dHJ1Y3QgaXApKQ0KICAgICAgICByZXR1cm4gRVJST1I7DQoNCiAgICBpcCA9IChjb25zdCBzdHJ1 Y3QgaXAgKikgcGt0Ow0KICAgIGlmIChpcC0+aXBfdiAhPSBJUFZFUlNJT04pDQogICAgICAgIHJl dHVybiBFUlJPUjsNCg0KICAgIHByb3RvID0gaXAtPmlwX3A7DQoNCiAgICBtZW1jcHkoJmlwX2Rz dCwgJmlwLT5pcF9kc3QsIHNpemVvZihzdHJ1Y3QgaW5fYWRkcikpOw0KICAgIG1lbWNweSgmaXBf c3JjLCAmaXAtPmlwX3NyYywgc2l6ZW9mKHN0cnVjdCBpbl9hZGRyKSk7DQogDQogICAgbV9wa3RD b3VudCsrOw0KICAgIG1fcGt0TGVuICs9IGxlbjsNCg0KICAgIHggPSBpcC0+aXBfaGwgPDwgMjsN CiAgICBpZiAobGVuIDw9IHgpDQogICAgICAgIHJldHVybiBFUlJPUjsNCg0KICAgIHBrdCArPSB4 Ow0KICAgIGxlbiAtPSB4Ow0KDQogICAgeCA9IG50b2hzKGlwLT5pcF9vZmYpOw0KICAgIGlzX2Zy YWdtZW50ID0gKHggJiBJUF9PRkZNQVNLKSAhPSAwIHx8ICh4ICYgSVBfTUYpICE9IDA7DQoNCiAg ICAgICAgaWYgKGlzX2ZyYWdtZW50KSANCiAgICAgICAgew0KICAgICAgICB9DQogICAgZWxzZQ0K ICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gT0s7DQogICAgfQ0KICAgIHJldHVybiBFUlJP UjsNCn0NCg0KDQpTVEFUVVMgY2xlYW51cCgpDQp7DQogICAgaWYgKG1fcGQpDQogICAgICAgICAg ICBwY2FwX2JyZWFrbG9vcChtX3BkKTsNCiAgICAgICAgLyoNCiAgICAgICAgICogV2UgZG9uJ3Qg aGF2ZSAicGNhcF9icmVha2xvb3AoKSI7IHRoaXMgaXNuJ3Qgc2FmZSwgYnV0DQogICAgICAgICAq IGl0J3MgdGhlIGJlc3Qgd2UgY2FuIGRvLiAgUHJpbnQgdGhlIHN1bW1hcnkgaWYgd2UncmUNCiAg ICAgICAgICogbm90IHJlYWRpbmcgZnJvbSBhIHNhdmVmaWxlIC0gaS5lLiwgaWYgd2UncmUgZG9p bmcgYQ0KICAgICAgICAgKiBsaXZlIGNhcHR1cmUgLSBhbmQgZXhpdC4NCiAgICAgICAgICovDQog ICAgICAgIHBjYXBfY2xvc2UobV9wZCk7DQogICAgcmV0dXJuIE9LOw0KfQ0KDQoNCg0KU1RBVFVT IHJlY2VpdmVEYXRhKGNvbnN0IHN0cnVjdCBwY2FwX3BrdGhkciAqaCwgY29uc3QgdWNoYXJfdCAq YnVmKQ0Kew0KICAgICAgICBzaXplX3QgbGVuID0gaC0+Y2FwbGVuOw0KICAgIHVuc2lnbmVkIGV0 eXBlPTAgLCB2bGFuOw0KICAgIGNvbnN0IHVjaGFyX3QgKnBrdCA9IGJ1ZjsNCg0KICAgIHN3aXRj aCAobV9kYXRhbGluaykNCiAgICB7DQogICAgICAgIGNhc2UgRExUX0VOMTBNQjoNCiAgICAgICAg ew0KICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBldGhlcl9oZWFkZXIgKmV0aGVyOw0KDQog ICAgICAgICAgICAgICAgaWYgKGxlbiA8IEVUSEVSX0hEUl9MRU4pDQogICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gRVJST1I7DQogICAgICAgICAgICAgICAgZXRoZXIgPSAoY29uc3Qgc3Ry dWN0IGV0aGVyX2hlYWRlciAqKSBwa3Q7DQogICAgICAgICAgICAgICAgZXR5cGUgPSBudG9ocyhl dGhlci0+ZXRoZXJfdHlwZSk7DQogICAgICAgICAgICAgICAgcGt0ICs9IEVUSEVSX0hEUl9MRU47 DQogICAgICAgICAgICAgICAgbGVuIC09IEVUSEVSX0hEUl9MRU47DQogICAgICAgICAgICAgICAg aWYgKGV0eXBlID09IEVUSEVSVFlQRV9WTEFOKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBp ZiAobGVuIDwgNCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9S Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdmxhbiA9IG50b2hzKCooY29uc3QgdWludDE2X3Qg KikgcGt0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHBrdCArPSAyOw0KICAgICAgICAgICAg ICAgICAgICAgICAgbGVuIC09IDI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmxhbiA8 IDEgfHwgdmxhbiA+IElQX1JFQ1ZfTUFYX1ZMQU4pDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBFUlJPUjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGV0eXBlID0gbnRv aHMoKihjb25zdCB1aW50MTZfdCAqKSBwa3QpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcGt0 ICs9IDI7DQogICAgICAgICAgICAgICAgICAgICAgICBsZW4gLT0gMjsNCiAgICAgICAgICAgICAg IH0NCiAgICAgICAgIA0KLyoNCiAgICBtX3BrdENvdW50Kys7DQogICAgbV9wa3RMZW4gKz0gbGVu Ow0KKi8NCiAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgICBjYXNlIERMVF9SQVc6 DQogICAgICAgIHsNCiAgICAgICAgICAgICBldHlwZSA9IEVUSEVSVFlQRV9JUDsNCiAgICAgICAg ICAgICBicmVhazsNCiAgICAgICAgfQ0KDQogICAgICAgIGNhc2UgRExUX05VTEw6IHsNCiAgICAg ICAgICAgICAgICB1bnNpZ25lZCB4Ow0KDQogICAgICAgICAgICAgICAgaWYgKGxlbiA8IHNpemVv ZihpbnQzMl90KSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUjsNCiAgICAg ICAgICAgICAgICB4ID0gKihjb25zdCB1aW50MzJfdCAqKXBrdDsNCiAgICAgICAgICAgICAgICBp ZiAoeCA9PSBQRl9JTkVUKQ0KICAgICAgICAgICAgICAgICAgICAgICAgZXR5cGUgPSBFVEhFUlRZ UEVfSVA7DQovKg0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHggPT0gUEZfSU5FVDYpDQogICAg ICAgICAgICAgICAgICAgICAgICBldHlwZSA9IEVUSEVSVFlQRV9JUFY2Ow0KKi8NCiAgICAgICAg ICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJST1I7DQogICAg ICAgICAgICAgICAgcGt0ICs9IHNpemVvZihpbnQzMl90KTsNCiAgICAgICAgICAgICAgICBsZW4g LT0gc2l6ZW9mKGludDMyX3QpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAg fQ0KICAgICAgICANCiAgICAgICAgLy9Ob3QgZXRoZXJuZXQgZnJhbWUNCiAgICAgICAgZGVmYXVs dDoNCiAgICAgICAgICByZXR1cm4gT0s7DQogICAgfQ0KICAgICANCiAgICBpZiAoZXR5cGUgIT0g RVRIRVJUWVBFX0lQIHx8IGxlbiA8PSBzaXplb2Yoc3RydWN0IGlwKSkgLy93ZSByZWNlaXZlIElQ djQgcGFja3J0IG9ubHkNCiAgICB7DQogICAgICAgIHJldHVybiBFUlJPUjsNCiAgICB9DQogICAg cmV0dXJuIHByb2Nlc3NJcFBhY2tldChoLCBsZW4sIHBrdCk7DQp9DQoNCnZvaWQgcGFja2V0SGFu ZGxlcih1Y2hhcl90ICp1c2VyLCBjb25zdCBzdHJ1Y3QgcGNhcF9wa3RoZHIgKmgsIGNvbnN0IHVj aGFyX3QgKnNwKQ0Kew0KICAgcmVjZWl2ZURhdGEoaCwgc3ApOw0KfQ0KDQoNCg0Kdm9pZCBwcmlu dE1zZ0luSGV4KGNvbnN0IHVjaGFyX3QgKmJ1ZiwgaW50IGxlbikNCnsNCiNkZWZpbmUgTlRMX01B WF9NU0dfRFVNUF9MSU5FIDUwDQoNCiAgICAgICAgY2hhciAgICBsb2dbODE5Ml0gPSB7MH07DQog ICAgICAgIGNoYXIgICAgICpwdHIgPSBsb2c7DQogICAgICAgIGludCAgICAgaTsNCg0KICAgICAg ICBwdHIgKz0gc3ByaW50ZihwdHIsICJbJTRkXSAiLDApOw0KICAgICAgICBmb3IgKGkgPSAwOyBp IDwgbGVuOyBpKyspDQogICAgICAgIHsNCiAgICAgICAgICAgICAgICBwdHIgKz0gc3ByaW50Zihw dHIsICIlMDJYICIsIGJ1ZltpXSk7DQogICAgICAgICAgICAgICAgaWYgKCAoaSsxKSAlIE5UTF9N QVhfTVNHX0RVTVBfTElORSA9PSAwICkgIC8qIEZlZWRMaW5lICovDQogICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgLy9wdHIgKz0gc3ByaW50ZihwdHIsICJcbiIpOw0K ICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0gbG9nOw0KICAgICAgICAgICAgICAgICAgICAg ICAgcHJpbnRmKCIlc1xuIiwgbG9nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHB0ciArPSBz cHJpbnRmKHB0ciwgIlslNGRdICIsaSsxKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0N CiAgICAgICAgaWYoIGkgJSBOVExfTUFYX01TR19EVU1QX0xJTkUgIT0gMCApICAgLyogUHJpbnQg UmVtYWluZyBCeXRlcyAqLw0KICAgICAgICB7DQogICAgICAgICAgICAgICAgLy9wdHIgKz0gc3By aW50ZihwdHIsICJcbiIpOw0KICAgICAgICAgICAgICAgIHB0ciA9IGxvZzsNCiAgICAgICAgfQ0K ICAgICAgICBwcmludGYoIiVzXG4iLCBsb2cpOw0KICAgICAgICByZXR1cm47DQp9DQoNCg0KU1RB VFVTIHN0YXJ0KCkNCnsNCiAgICAgICAgcmVnaXN0ZXIgaW50IGNudCwgaTsNCiAgICAgICAgdWlu dDMyX3QgbG9jYWxuZXQsIG5ldG1hc2s7DQogICAgICAgIHJlZ2lzdGVyIGNoYXIgKmNtZGJ1ZiA9 ICJ1ZHAgYW5kIGRzdCBob3N0IDE5Mi4xNjguNi4xMTEgYW5kIGRzdCBwb3J0cmFuZ2UgODE5Mi04 NTAwIiwgKmRldmljZTsNCiAgICAgICAgLy9yZWdpc3RlciBjaGFyICpjbWRidWYgPSAidWRwIGFu ZCBkc3QgaG9zdCAxOTIuMTY4LjYuMTExIGFuZCBkc3QgcG9ydHJhbmdlIDgxOTItODUwMCIsICpk ZXZpY2U7DQogICAgICAgIGludCB0eXBlOw0KICAgICAgICBzdHJ1Y3QgYnBmX3Byb2dyYW0gZmNv ZGU7DQovLyAgICAgICAgc2lnaGFuZGxlcl90IG9sZGhhbmRsZXI7DQogICAgICAgIGNoYXIgZWJ1 ZltQQ0FQX0VSUkJVRl9TSVpFXTsNCiAgICAgICAgaW50IHN0YXR1czsNCg0KICAgICAgICBjbnQg PSAtMTsgLy9sb29wIGZvciBldmVyDQogICAgICAgIGRldmljZSA9ICJiZ2UwIjsNCiAgICANCiAg ICAgICAgaWYgKGRldmljZVswXSA9PSAnXDAnKSB7DQogICAgICAgICAgICAgICAgZGV2aWNlID0g cGNhcF9sb29rdXBkZXYoZWJ1Zik7DQogICAgICAgICAgICAgICAgaWYgKGRldmljZSA9PSBOVUxM KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgRVJST1JfTUFKT1JfQ0xB U1MoIkVSUk9SOiBObyBuZXR3b3JrIGludGVyZmFjZSB0byByZWNlaXZlIElQIHBhY2tldHMuICVz IiwgZWJ1Zik7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUjsNCiAgICAgICAgICAg ICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBpZiAobV9wZCkNCiAgICAgICAgICAgcGNhcF9j bG9zZShtX3BkKTsNCiAgICAgICAgDQoNCiAgICAgICAgICAgICplYnVmID0gJ1wwJzsNCg0KICAg ICAgICAgICAgcHJpbnRmKCJPcGVuZ2luZyBjYXB0dXJlIG9uICVzXG4iLCBkZXZpY2UpOw0KDQog ICAgICAgICAgICBtX3BkID0gcGNhcF9vcGVuX2xpdmUoZGV2aWNlLCBJUF9SRUNWX0JVRl9TSVpF LCAwLCBJUF9SRUNWX1RJTUVPVVQsIGVidWYpOw0KICAgICAgICAgICAgaWYgKG1fcGQgPT0gTlVM TCl7DQogICAgICAgICAgICAgICAgRVJST1JfTUFKT1JfQ0xBU1MoIkVSUk9SOiBjYW5ub3Qgb3Bl biAlcyB0byByZWFkIElQIHBhY2tldHMuICVzIiwgZGV2aWNlLCBlYnVmKTsNCiAgICAgICAgICAg ICAgICByZXR1cm4gRVJST1I7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmICgq ZWJ1Zil7DQogICAgICAgICAgICAgICAgVFJBQ0VfV0FSTklOR19DTEFTUygiJXMiLCBlYnVmKTsN CiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAqIExldCB1c2Vy IG93biBwcm9jZXNzIGFmdGVyIHNvY2tldCBoYXMgYmVlbiBvcGVuZWQuDQogICAgICAgICAgICAg Ki8NCg0KICAgICAgICAgbV9kYXRhbGluayA9IHBjYXBfZGF0YWxpbmsobV9wZCk7DQogICAgICAg ICBpZiAobV9kYXRhbGluayAhPSBETFRfRU4xME1CICYmIG1fZGF0YWxpbmsgIT0gRExUX1JBVyl7 DQogICAgICAgICAgICAgICAgICAgIEVSUk9SX01BSk9SX0NMQVNTKCJEYXRhbGluayAlcyBpcyBu b3Qgb25lIG9mIHRoZSBETFRzIHN1cHBvcnRlZCBieSB0aGlzIGRldmljZSAlcy4gT25seSBETFRf RU4xME1CIGFuZCBETFRfUkFXIHN1cHBvcnRlZCBjdXJyZW50bHkuXG4iLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICBwY2FwX2RhdGFsaW5rX3ZhbF90b19uYW1lKG1fZGF0YWxpbmspLCBkZXZp Y2UpOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJST1I7DQogICAgICAgICB9DQoNCiAg ICAgICAgaSA9IHBjYXBfc25hcHNob3QobV9wZCk7DQogICAgICAgIGlmIChtX3NuYXBsZW4gPCBp KSB7DQogICAgICAgICAgICAgICAgVFJBQ0VfV0FSTklOR19DTEFTUygic25hcGxlbiByYWlzZWQg ZnJvbSAlZCB0byAlZCIsIG1fc25hcGxlbiwgaSk7DQogICAgICAgICAgICAgICAgbV9zbmFwbGVu ID0gaTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAocGNhcF9sb29rdXBuZXQoZGV2aWNlLCAmbG9j YWxuZXQsICZuZXRtYXNrLCBlYnVmKSA8IDApIHsNCiAgICAgICAgICAgICAgICBsb2NhbG5ldCA9 IDA7DQogICAgICAgICAgICAgICAgbmV0bWFzayA9IDA7DQogICAgICAgICAgICAgICAgVFJBQ0Vf V0FSTklOR19DTEFTUygiJXMiLCBlYnVmKTsNCiAgICAgICAgfQ0KICAgIA0KLyoNCiAgICAgICAg aWYgKHBjYXBfY29tcGlsZShtX3BkLCAmZmNvZGUsIGNtZGJ1ZiwgMCwgbmV0bWFzaykgPCAwKXsN CiAgICAgICAgICAgIEVSUk9SX01BSk9SX0NMQVNTKCIlcyIsIHBjYXBfZ2V0ZXJyKG1fcGQpKTsN CiAgICAgICAgICAgIHJldHVybiBFUlJPUjsNCiAgICAgICAgfQ0KDQogDQogICAgICAgIGlmIChw Y2FwX3NldGZpbHRlcihtX3BkLCAmZmNvZGUpIDwgMCl7DQogICAgICAgICAgICBFUlJPUl9NQUpP Ul9DTEFTUygiJXMiLCBwY2FwX2dldGVycihtX3BkKSk7DQogICAgICAgICAgICByZXR1cm4gRVJS T1I7DQogICAgICAgICAgICB9DQoqLw0KDQogICAgICAgIHR5cGUgPSBwY2FwX2RhdGFsaW5rKG1f cGQpOw0KDQogICAgDQogICAgICAgIHN0YXR1cyA9IHBjYXBfbG9vcChtX3BkLCBjbnQsIHBhY2tl dEhhbmRsZXIsIDApOw0KICAgICAgICBpZiAoc3RhdHVzID09IC0xKSB7DQogICAgICAgICAgICAv Kg0KICAgICAgICAgICAgICogRXJyb3IuICBSZXBvcnQgaXQuDQogICAgICAgICAgICAgKi8NCiAg ICAgICAgIEVSUk9SX01BSk9SX0NMQVNTKCAiJXM6IHBjYXBfbG9vcCBleGl0OiAlc1xuIiwNCiAg ICAgICAgICAgICAgICBkZXZpY2UsIHBjYXBfZ2V0ZXJyKG1fcGQpKTsNCiAgICAgICAgfQ0KICAg ICAgICBwY2FwX2Nsb3NlKG1fcGQpOw0KICAgICAgICByZXR1cm4gKHN0YXR1cyA9PSAtMSA/IEVS Uk9SIDogT0spOw0KfQ0KDQoNCnZvaWQgbXlfc2lnYWxhcm0oaW50IHNpZykgew0KDQoNCiAgcHJp bnRmKCJQYWNrZXRzL1M6ICVkLCAgQml0cy9TOiAlZCAoJWYgTWJpdHMvUylcbiIsICBtX3BrdENv dW50L0FMQVJNX1NMRUVQLCBtX3BrdExlbio4L0FMQVJNX1NMRUVQLCAoKGZsb2F0KShtX3BrdExl bio4KSkvKEFMQVJNX1NMRUVQKjEwMjQqMTAyNCkpOw0KDQogIG1fcGt0Q291bnQ9MDsNCiAgbV9w a3RMZW49MDsNCg0KLyogUHV0IHRoZSBpbnRlcmZhY2UgaW4gc3RhdGlzdGljcyBtb2RlICovDQpp ZihwY2FwX3N0YXRzKG1fcGQsIG15c3RhdHApIDwgMCkNCnsNCiAgICBmcHJpbnRmKHN0ZGVyciwi XG5FcnJvciBwY2FwX3N0YXRzLlxuIik7DQp9DQplbHNlDQp7DQogICAgcHJpbnRmKCJOdW0gb2Yg cmVjdjogJWQsIE51bSBvZiBkcm9wOiAlZFxuIiwgbXlzdGF0cC0+cHNfcmVjdiwgbXlzdGF0cC0+ cHNfZHJvcCk7DQp9DQogIGFsYXJtKEFMQVJNX1NMRUVQKTsNCiAgc2lnbmFsKFNJR0FMUk0sIG15 X3NpZ2FsYXJtKTsNCn0NCg0KaW50IG1haW4oKQ0Kew0KICAgIHNpZ25hbChTSUdBTFJNLCBteV9z aWdhbGFybSk7DQogICAgYWxhcm0oQUxBUk1fU0xFRVApOw0KICAgIHJldHVybiBzdGFydCgpOw0K fQ== ------_=_NextPart_001_01CB44C6.A8EA2172--