[PATCH v10 16/20] xen: create a Xen nexus to use in PV/PVH

看板FB_current作者時間12年前 (2014/01/15 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
SW50cm9kdWNlIGEgWGVuIHNwZWNpZmljIG5leHVzIHRoYXQgaXMgZ29pbmcgdG8gYmUgaW4gY2hh cmdlIGZvcgphdHRhY2hpbmcgWGVuIHNwZWNpZmljIGRldmljZXMuCi0tLQogc3lzL2NvbmYvZmls ZXMuYW1kNjQgICAgICAgICAgfCAgICAxICsKIHN5cy9jb25mL2ZpbGVzLmkzODYgICAgICAgICAg IHwgICAgMSArCiBzeXMvZGV2L3hlbi9jb25zb2xlL2NvbnNvbGUuYyB8ICAgIDIgKy0KIHN5cy9k ZXYveGVuL3RpbWVyL3RpbWVyLmMgICAgIHwgICAgNCArLQogc3lzL2Rldi94ZW4veGVucGNpL3hl bnBjaS5jICAgfCAgIDY0ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzeXMv eDg2L3hlbi94ZW5fbmV4dXMuYyAgICAgICB8ICAgNzYgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIHN5cy94ZW4veGVuc3RvcmUveGVuc3RvcmUuYyAgIHwgICAgNiAr LS0tCiA3IGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHN5cy94ODYveGVuL3hlbl9uZXh1cy5jCgpkaWZmIC0tZ2l0IGEv c3lzL2NvbmYvZmlsZXMuYW1kNjQgYi9zeXMvY29uZi9maWxlcy5hbWQ2NAppbmRleCBkN2M5OGNj Li5mMzc4OTgzIDEwMDY0NAotLS0gYS9zeXMvY29uZi9maWxlcy5hbWQ2NAorKysgYi9zeXMvY29u Zi9maWxlcy5hbWQ2NApAQCAtNTcxLDMgKzU3MSw0IEBAIHg4Ni94ZW4veGVuX2ludHIuYwkJb3B0 aW9uYWwJeGVuIHwgeGVuaHZtCiB4ODYveGVuL3B2LmMJCQlvcHRpb25hbAl4ZW5odm0KIHg4Ni94 ZW4vcHZjcHVfZW51bS5jCQlvcHRpb25hbAl4ZW5odm0KIHg4Ni94ZW4veGVucHYuYwkJCW9wdGlv bmFsCXhlbmh2bQoreDg2L3hlbi94ZW5fbmV4dXMuYwkJb3B0aW9uYWwJeGVuaHZtCmRpZmYgLS1n aXQgYS9zeXMvY29uZi9maWxlcy5pMzg2IGIvc3lzL2NvbmYvZmlsZXMuaTM4NgppbmRleCA4MTE0 MmUzLi4wMjg4N2EzMyAxMDA2NDQKLS0tIGEvc3lzL2NvbmYvZmlsZXMuaTM4NgorKysgYi9zeXMv Y29uZi9maWxlcy5pMzg2CkBAIC02MDQsMyArNjA0LDQgQEAgeDg2L3g4Ni9kZWxheS5jCQkJc3Rh bmRhcmQKIHg4Ni94ZW4vaHZtLmMJCQlvcHRpb25hbCB4ZW5odm0KIHg4Ni94ZW4veGVuX2ludHIu YwkJb3B0aW9uYWwgeGVuIHwgeGVuaHZtCiB4ODYveGVuL3hlbnB2LmMJCQlvcHRpb25hbCB4ZW4g fCB4ZW5odm0KK3g4Ni94ZW4veGVuX25leHVzLmMJCW9wdGlvbmFsIHhlbiB8IHhlbmh2bQpkaWZm IC0tZ2l0IGEvc3lzL2Rldi94ZW4vY29uc29sZS9jb25zb2xlLmMgYi9zeXMvZGV2L3hlbi9jb25z b2xlL2NvbnNvbGUuYwppbmRleCA4OTlkZmZjLi45MTUzOGZlIDEwMDY0NAotLS0gYS9zeXMvZGV2 L3hlbi9jb25zb2xlL2NvbnNvbGUuYworKysgYi9zeXMvZGV2L3hlbi9jb25zb2xlL2NvbnNvbGUu YwpAQCAtNDYyLDQgKzQ2Miw0IEBAIHhjb25zX2ZvcmNlX2ZsdXNoKHZvaWQpCiAJfQogfQogCi1E UklWRVJfTU9EVUxFKHhjLCBuZXh1cywgeGNfZHJpdmVyLCB4Y19kZXZjbGFzcywgMCwgMCk7CitE UklWRVJfTU9EVUxFKHhjLCB4ZW5wdiwgeGNfZHJpdmVyLCB4Y19kZXZjbGFzcywgMCwgMCk7CmRp ZmYgLS1naXQgYS9zeXMvZGV2L3hlbi90aW1lci90aW1lci5jIGIvc3lzL2Rldi94ZW4vdGltZXIv dGltZXIuYwppbmRleCA5NjM3MmFiLi5mMTZmNWE1IDEwMDY0NAotLS0gYS9zeXMvZGV2L3hlbi90 aW1lci90aW1lci5jCisrKyBiL3N5cy9kZXYveGVuL3RpbWVyL3RpbWVyLmMKQEAgLTYzNiw1ICs2 MzYsNSBAQCBzdGF0aWMgZHJpdmVyX3QgeGVudGltZXJfZHJpdmVyID0gewogCXNpemVvZihzdHJ1 Y3QgeGVudGltZXJfc29mdGMpLAogfTsKIAotRFJJVkVSX01PRFVMRSh4ZW50aW1lciwgbmV4dXMs IHhlbnRpbWVyX2RyaXZlciwgeGVudGltZXJfZGV2Y2xhc3MsIDAsIDApOwotTU9EVUxFX0RFUEVO RCh4ZW50aW1lciwgbmV4dXMsIDEsIDEsIDEpOworRFJJVkVSX01PRFVMRSh4ZW50aW1lciwgeGVu cHYsIHhlbnRpbWVyX2RyaXZlciwgeGVudGltZXJfZGV2Y2xhc3MsIDAsIDApOworTU9EVUxFX0RF UEVORCh4ZW50aW1lciwgeGVucHYsIDEsIDEsIDEpOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi94ZW4v eGVucGNpL3hlbnBjaS5jIGIvc3lzL2Rldi94ZW4veGVucGNpL3hlbnBjaS5jCmluZGV4IGRkMmFk OTIuLmUzMzQwNTEgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYveGVuL3hlbnBjaS94ZW5wY2kuYworKysg Yi9zeXMvZGV2L3hlbi94ZW5wY2kveGVucGNpLmMKQEAgLTUxLDggKzUxLDYgQEAgX19GQlNESUQo IiRGcmVlQlNEJCIpOwogCiBleHRlcm4gdm9pZCB4ZW5faW50cl9oYW5kbGVfdXBjYWxsKHN0cnVj dCB0cmFwZnJhbWUgKnRyYXBfZnJhbWUpOwogCi1zdGF0aWMgZGV2aWNlX3QgbmV4dXM7Ci0KIC8q CiAgKiBUaGlzIGlzIHVzZWQgdG8gZmluZCBvdXIgcGxhdGZvcm0gZGV2aWNlIGluc3RhbmNlLgog ICovCkBAIC0xODgsMzYgKzE4Niw2IEBAIHhlbnBjaV9hbGxvY19zcGFjZShzaXplX3Qgc3osIHZt X3BhZGRyX3QgKnBhKQogCX0KIH0KIAotc3RhdGljIHN0cnVjdCByZXNvdXJjZSAqCi14ZW5wY2lf YWxsb2NfcmVzb3VyY2UoZGV2aWNlX3QgZGV2LCBkZXZpY2VfdCBjaGlsZCwgaW50IHR5cGUsIGlu dCAqcmlkLAotICAgIHVfbG9uZyBzdGFydCwgdV9sb25nIGVuZCwgdV9sb25nIGNvdW50LCB1X2lu dCBmbGFncykKLXsKLQlyZXR1cm4gKEJVU19BTExPQ19SRVNPVVJDRShuZXh1cywgY2hpbGQsIHR5 cGUsIHJpZCwgc3RhcnQsCi0JICAgIGVuZCwgY291bnQsIGZsYWdzKSk7Ci19Ci0KLQotc3RhdGlj IGludAoteGVucGNpX3JlbGVhc2VfcmVzb3VyY2UoZGV2aWNlX3QgZGV2LCBkZXZpY2VfdCBjaGls ZCwgaW50IHR5cGUsIGludCByaWQsCi0gICAgc3RydWN0IHJlc291cmNlICpyKQotewotCXJldHVy biAoQlVTX1JFTEVBU0VfUkVTT1VSQ0UobmV4dXMsIGNoaWxkLCB0eXBlLCByaWQsIHIpKTsKLX0K LQotc3RhdGljIGludAoteGVucGNpX2FjdGl2YXRlX3Jlc291cmNlKGRldmljZV90IGRldiwgZGV2 aWNlX3QgY2hpbGQsIGludCB0eXBlLCBpbnQgcmlkLAotICAgIHN0cnVjdCByZXNvdXJjZSAqcikK LXsKLQlyZXR1cm4gKEJVU19BQ1RJVkFURV9SRVNPVVJDRShuZXh1cywgY2hpbGQsIHR5cGUsIHJp ZCwgcikpOwotfQotCi1zdGF0aWMgaW50Ci14ZW5wY2lfZGVhY3RpdmF0ZV9yZXNvdXJjZShkZXZp Y2VfdCBkZXYsIGRldmljZV90IGNoaWxkLCBpbnQgdHlwZSwKLSAgICBpbnQgcmlkLCBzdHJ1Y3Qg cmVzb3VyY2UgKnIpCi17Ci0JcmV0dXJuIChCVVNfREVBQ1RJVkFURV9SRVNPVVJDRShuZXh1cywg Y2hpbGQsIHR5cGUsIHJpZCwgcikpOwotfQotCiAvKgogICogUHJvYmUgLSBqdXN0IGNoZWNrIGRl dmljZSBJRC4KICAqLwpAQCAtMjI5LDcgKzE5Nyw3IEBAIHhlbnBjaV9wcm9iZShkZXZpY2VfdCBk ZXYpCiAJCXJldHVybiAoRU5YSU8pOwogCiAJZGV2aWNlX3NldF9kZXNjKGRldiwgIlhlbiBQbGF0 Zm9ybSBEZXZpY2UiKTsKLQlyZXR1cm4gKGJ1c19nZW5lcmljX3Byb2JlKGRldikpOworCXJldHVy biAoQlVTX1BST0JFX0RFRkFVTFQpOwogfQogCiAvKgpAQCAtMjM5LDIwICsyMDcsOCBAQCBzdGF0 aWMgaW50CiB4ZW5wY2lfYXR0YWNoKGRldmljZV90IGRldikKIHsKIAlzdHJ1Y3QgeGVucGNpX3Nv ZnRjICpzY3AgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7Ci0JZGV2Y2xhc3NfdCBkYzsKIAlpbnQg ZXJyb3I7CiAKLQkvKgotCSAqIEZpbmQgYW5kIHJlY29yZCBuZXh1czAuICBTaW5jZSB3ZSBhcmUg bm90IHJlYWxseSBvbiB0aGUKLQkgKiBQQ0kgYnVzLCBhbGwgcmVzb3VyY2Ugb3BlcmF0aW9ucyBh cmUgZGlyZWN0ZWQgdG8gbmV4dXMKLQkgKiBpbnN0ZWFkIG9mIHRocm91Z2ggb3VyIHBhcmVudC4K LQkgKi8KLQlpZiAoKGRjID0gZGV2Y2xhc3NfZmluZCgibmV4dXMiKSkgID09IDAKLQkgfHwgKG5l eHVzID0gZGV2Y2xhc3NfZ2V0X2RldmljZShkYywgMCkpID09IDApIHsKLQkJZGV2aWNlX3ByaW50 ZihkZXYsICJ1bmFibGUgdG8gZmluZCBuZXh1cy4iKTsKLQkJcmV0dXJuIChFTk9FTlQpOwotCX0K LQogCWVycm9yID0geGVucGNpX2FsbG9jYXRlX3Jlc291cmNlcyhkZXYpOwogCWlmIChlcnJvcikg ewogCQlkZXZpY2VfcHJpbnRmKGRldiwgInhlbnBjaV9hbGxvY2F0ZV9yZXNvdXJjZXMgZmFpbGVk KCVkKS5cbiIsCkBAIC0yNzAsNyArMjI2LDcgQEAgeGVucGNpX2F0dGFjaChkZXZpY2VfdCBkZXYp CiAJCWdvdG8gZXJyZXhpdDsKIAl9CiAKLQlyZXR1cm4gKGJ1c19nZW5lcmljX2F0dGFjaChkZXYp KTsKKwlyZXR1cm4gKDApOwogCiBlcnJleGl0OgogCS8qCkBAIC0zMDksMTYgKzI2NSwxMCBAQCB4 ZW5wY2lfZGV0YWNoKGRldmljZV90IGRldikKIH0KIAogc3RhdGljIGludAoteGVucGNpX3N1c3Bl bmQoZGV2aWNlX3QgZGV2KQotewotCXJldHVybiAoYnVzX2dlbmVyaWNfc3VzcGVuZChkZXYpKTsK LX0KLQotc3RhdGljIGludAogeGVucGNpX3Jlc3VtZShkZXZpY2VfdCBkZXYpCiB7CiAJeGVuX2h2 bV9zZXRfY2FsbGJhY2soZGV2KTsKLQlyZXR1cm4gKGJ1c19nZW5lcmljX3Jlc3VtZShkZXYpKTsK KwlyZXR1cm4gKDApOwogfQogCiBzdGF0aWMgZGV2aWNlX21ldGhvZF90IHhlbnBjaV9tZXRob2Rz W10gPSB7CkBAIC0zMjYsMTYgKzI3Niw4IEBAIHN0YXRpYyBkZXZpY2VfbWV0aG9kX3QgeGVucGNp X21ldGhvZHNbXSA9IHsKIAlERVZNRVRIT0QoZGV2aWNlX3Byb2JlLAkJeGVucGNpX3Byb2JlKSwK IAlERVZNRVRIT0QoZGV2aWNlX2F0dGFjaCwJeGVucGNpX2F0dGFjaCksCiAJREVWTUVUSE9EKGRl dmljZV9kZXRhY2gsCXhlbnBjaV9kZXRhY2gpLAotCURFVk1FVEhPRChkZXZpY2Vfc3VzcGVuZCwJ eGVucGNpX3N1c3BlbmQpLAogCURFVk1FVEhPRChkZXZpY2VfcmVzdW1lLAl4ZW5wY2lfcmVzdW1l KSwKIAotCS8qIEJ1cyBpbnRlcmZhY2UgKi8KLQlERVZNRVRIT0QoYnVzX2FkZF9jaGlsZCwJYnVz X2dlbmVyaWNfYWRkX2NoaWxkKSwKLQlERVZNRVRIT0QoYnVzX2FsbG9jX3Jlc291cmNlLCAgIHhl bnBjaV9hbGxvY19yZXNvdXJjZSksCi0JREVWTUVUSE9EKGJ1c19yZWxlYXNlX3Jlc291cmNlLCB4 ZW5wY2lfcmVsZWFzZV9yZXNvdXJjZSksCi0JREVWTUVUSE9EKGJ1c19hY3RpdmF0ZV9yZXNvdXJj ZSwgeGVucGNpX2FjdGl2YXRlX3Jlc291cmNlKSwKLQlERVZNRVRIT0QoYnVzX2RlYWN0aXZhdGVf cmVzb3VyY2UsIHhlbnBjaV9kZWFjdGl2YXRlX3Jlc291cmNlKSwKLQogCXsgMCwgMCB9CiB9Owog CmRpZmYgLS1naXQgYS9zeXMveDg2L3hlbi94ZW5fbmV4dXMuYyBiL3N5cy94ODYveGVuL3hlbl9u ZXh1cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1YjdjNDMKLS0tIC9k ZXYvbnVsbAorKysgYi9zeXMveDg2L3hlbi94ZW5fbmV4dXMuYwpAQCAtMCwwICsxLDc2IEBACisv KgorICogQ29weXJpZ2h0IChjKSAyMDEzIFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRy aXguY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBBUyBJUycn IEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NM QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBM SUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VS VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV UFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNM VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VU IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT SUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPHN5cy9jZGVmcy5o PgorX19GQlNESUQoIiRGcmVlQlNEJCIpOworCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5j bHVkZSA8c3lzL2J1cy5oPgorI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMv bW9kdWxlLmg+CisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgorI2luY2x1ZGUgPHN5cy9zeXN0bS5o PgorI2luY2x1ZGUgPHN5cy9zbXAuaD4KKworI2luY2x1ZGUgPG1hY2hpbmUvbmV4dXN2YXIuaD4K KworI2luY2x1ZGUgPHhlbi94ZW4tb3MuaD4KKworLyoKKyAqIFhlbiBuZXh1cyg0KSBkcml2ZXIu CisgKi8KK3N0YXRpYyBpbnQKK25leHVzX3hlbl9wcm9iZShkZXZpY2VfdCBkZXYpCit7CisJaWYg KCF4ZW5fcHZfZG9tYWluKCkpCisJCXJldHVybiAoRU5YSU8pOworCisJcmV0dXJuIChCVVNfUFJP QkVfREVGQVVMVCk7Cit9CisKK3N0YXRpYyBpbnQKK25leHVzX3hlbl9hdHRhY2goZGV2aWNlX3Qg ZGV2KQoreworCisJbmV4dXNfaW5pdF9yZXNvdXJjZXMoKTsKKwlidXNfZ2VuZXJpY19wcm9iZShk ZXYpOworCWJ1c19nZW5lcmljX2F0dGFjaChkZXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBkZXZpY2VfbWV0aG9kX3QgbmV4dXNfeGVuX21ldGhvZHNbXSA9IHsKKwkvKiBEZXZpY2UgaW50 ZXJmYWNlICovCisJREVWTUVUSE9EKGRldmljZV9wcm9iZSwJCW5leHVzX3hlbl9wcm9iZSksCisJ REVWTUVUSE9EKGRldmljZV9hdHRhY2gsCW5leHVzX3hlbl9hdHRhY2gpLAorCisJeyAwLCAwIH0K K307CisKK0RFRklORV9DTEFTU18xKG5leHVzLCBuZXh1c194ZW5fZHJpdmVyLCBuZXh1c194ZW5f bWV0aG9kcywgMSwgbmV4dXNfZHJpdmVyKTsKK3N0YXRpYyBkZXZjbGFzc190IG5leHVzX2RldmNs YXNzOworCitEUklWRVJfTU9EVUxFKG5leHVzX3hlbiwgcm9vdCwgbmV4dXNfeGVuX2RyaXZlciwg bmV4dXNfZGV2Y2xhc3MsIDAsIDApOwpkaWZmIC0tZ2l0IGEvc3lzL3hlbi94ZW5zdG9yZS94ZW5z dG9yZS5jIGIvc3lzL3hlbi94ZW5zdG9yZS94ZW5zdG9yZS5jCmluZGV4IGQ0MDQ4NjIuLmI1Y2Y0 MTMgMTAwNjQ0Ci0tLSBhL3N5cy94ZW4veGVuc3RvcmUveGVuc3RvcmUuYworKysgYi9zeXMveGVu L3hlbnN0b3JlL3hlbnN0b3JlLmMKQEAgLTEyNjEsMTEgKzEyNjEsNyBAQCBzdGF0aWMgZGV2aWNl X21ldGhvZF90IHhlbnN0b3JlX21ldGhvZHNbXSA9IHsKIERFRklORV9DTEFTU18wKHhlbnN0b3Jl LCB4ZW5zdG9yZV9kcml2ZXIsIHhlbnN0b3JlX21ldGhvZHMsIDApOwogc3RhdGljIGRldmNsYXNz X3QgeGVuc3RvcmVfZGV2Y2xhc3M7IAogIAotI2lmZGVmIFhFTkhWTQotRFJJVkVSX01PRFVMRSh4 ZW5zdG9yZSwgeGVucGNpLCB4ZW5zdG9yZV9kcml2ZXIsIHhlbnN0b3JlX2RldmNsYXNzLCAwLCAw KTsKLSNlbHNlCi1EUklWRVJfTU9EVUxFKHhlbnN0b3JlLCBuZXh1cywgeGVuc3RvcmVfZHJpdmVy LCB4ZW5zdG9yZV9kZXZjbGFzcywgMCwgMCk7Ci0jZW5kaWYKK0RSSVZFUl9NT0RVTEUoeGVuc3Rv cmUsIHhlbnB2LCB4ZW5zdG9yZV9kcml2ZXIsIHhlbnN0b3JlX2RldmNsYXNzLCAwLCAwKTsKIAog LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN5c2N0bCBEYXRhIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIFhYWCBTaG91bGRuJ3QgdGhlIG5vZGUgYmUgc29t ZXdoZXJlIGVsc2U/ICovCi0tIAoxLjcuNy41IChBcHBsZSBHaXQtMjYpCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmcmVlYnNkLWN1cnJlbnRAZnJlZWJz ZC5vcmcgbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ZyZWVic2QtY3VycmVudApUbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAiZnJl ZWJzZC1jdXJyZW50LXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg==
文章代碼(AID): #1IrNjV-M (FB_current)