[PATCH v10 12/20] xen: add a hook to perform AP startup

看板FB_current作者時間12年前 (2014/01/15 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
QVAgc3RhcnR1cCBvbiBQVkggZm9sbG93cyB0aGUgUFYgbWV0aG9kLCBzbyB3ZSBuZWVkIHRvIGFk ZCBhIGhvb2sgaW4Kb3JkZXIgdG8gZGl2ZXJnZSBmcm9tIGJhcmUgbWV0YWwuCi0tLQogc3lzL2Ft ZDY0L2FtZDY0L21wX21hY2hkZXAuYyB8ICAgMTQgKysrLS0tCiBzeXMvYW1kNjQvaW5jbHVkZS9j cHUuaCAgICAgIHwgICAgMSArCiBzeXMvYW1kNjQvaW5jbHVkZS9zbXAuaCAgICAgIHwgICAgMSAr CiBzeXMveDg2L3hlbi9odm0uYyAgICAgICAgICAgIHwgICAxMiArKysrKy0KIHN5cy94ODYveGVu L3B2LmMgICAgICAgICAgICAgfCAgIDg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogc3lzL3hlbi9wdi5oICAgICAgICAgICAgICAgICB8ICAgMzIgKysrKysrKysr KysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAxMzcgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXMveGVuL3B2LmgKCmRpZmYgLS1naXQgYS9zeXMvYW1k NjQvYW1kNjQvbXBfbWFjaGRlcC5jIGIvc3lzL2FtZDY0L2FtZDY0L21wX21hY2hkZXAuYwppbmRl eCA0YWY0ZjhmLi4xN2U5NTdkIDEwMDY0NAotLS0gYS9zeXMvYW1kNjQvYW1kNjQvbXBfbWFjaGRl cC5jCisrKyBiL3N5cy9hbWQ2NC9hbWQ2NC9tcF9tYWNoZGVwLmMKQEAgLTkwLDcgKzkwLDcgQEAg ZXh0ZXJuICBzdHJ1Y3QgcGNwdSBfX3BjcHVbXTsKIAogLyogQVAgdXNlcyB0aGlzIGR1cmluZyBi b290c3RyYXAuICBEbyBub3Qgc3RhdGljaXplLiAgKi8KIGNoYXIgKmJvb3RTVEs7Ci1zdGF0aWMg aW50IGJvb3RBUDsKK2ludCBib290QVA7CiAKIC8qIEZyZWUgdGhlc2UgYWZ0ZXIgdXNlICovCiB2 b2lkICpib290c3RhY2tzW01BWENQVV07CkBAIC0xMjQsNyArMTI0LDggQEAgc3RhdGljIHVfbG9u ZyAqaXBpX2hhcmRjbG9ja19jb3VudHNbTUFYQ1BVXTsKIAogLyogRGVmYXVsdCBjcHVfb3BzIGlt cGxlbWVudGF0aW9uLiAqLwogc3RydWN0IGNwdV9vcHMgY3B1X29wcyA9IHsKLQkuaXBpX3ZlY3Rv cmVkID0gbGFwaWNfaXBpX3ZlY3RvcmVkCisJLmlwaV92ZWN0b3JlZCA9IGxhcGljX2lwaV92ZWN0 b3JlZCwKKwkuc3RhcnRfYWxsX2FwcyA9IG5hdGl2ZV9zdGFydF9hbGxfYXBzLAogfTsKIAogZXh0 ZXJuIGludGhhbmRfdCBJRFRWRUMoZmFzdF9zeXNjYWxsKSwgSURUVkVDKGZhc3Rfc3lzY2FsbDMy KTsKQEAgLTEzOCw3ICsxMzksNyBAQCBleHRlcm4gaW50IHBtYXBfcGNpZF9lbmFibGVkOwogc3Rh dGljIHZvbGF0aWxlIGNwdXNldF90IGlwaV9ubWlfcGVuZGluZzsKIAogLyogdXNlZCB0byBob2xk IHRoZSBBUCdzIHVudGlsIHdlIGFyZSByZWFkeSB0byByZWxlYXNlIHRoZW0gKi8KLXN0YXRpYyBz dHJ1Y3QgbXR4IGFwX2Jvb3RfbXR4Oworc3RydWN0IG10eCBhcF9ib290X210eDsKIAogLyogU2V0 IHRvIDEgb25jZSB3ZSdyZSByZWFkeSB0byBsZXQgdGhlIEFQcyBvdXQgb2YgdGhlIHBlbi4gKi8K IHN0YXRpYyB2b2xhdGlsZSBpbnQgYXBzX3JlYWR5ID0gMDsKQEAgLTE2NSw3ICsxNjYsNiBAQCBz dGF0aWMgaW50IGNwdV9jb3JlczsJCQkvKiBjb3JlcyBwZXIgcGFja2FnZSAqLwogCiBzdGF0aWMg dm9pZAlhc3NpZ25fY3B1X2lkcyh2b2lkKTsKIHN0YXRpYyB2b2lkCXNldF9pbnRlcnJ1cHRfYXBp Y19pZHModm9pZCk7Ci1zdGF0aWMgaW50CXN0YXJ0X2FsbF9hcHModm9pZCk7CiBzdGF0aWMgaW50 CXN0YXJ0X2FwKGludCBhcGljX2lkKTsKIHN0YXRpYyB2b2lkCXJlbGVhc2VfYXBzKHZvaWQgKmR1 bW15KTsKIApAQCAtNTY5LDcgKzU2OSw3IEBAIGNwdV9tcF9zdGFydCh2b2lkKQogCWFzc2lnbl9j cHVfaWRzKCk7CiAKIAkvKiBTdGFydCBlYWNoIEFwcGxpY2F0aW9uIFByb2Nlc3NvciAqLwotCXN0 YXJ0X2FsbF9hcHMoKTsKKwljcHVfb3BzLnN0YXJ0X2FsbF9hcHMoKTsKIAogCXNldF9pbnRlcnJ1 cHRfYXBpY19pZHMoKTsKIH0KQEAgLTkwOCw4ICs5MDgsOCBAQCBhc3NpZ25fY3B1X2lkcyh2b2lk KQogLyoKICAqIHN0YXJ0IGVhY2ggQVAgaW4gb3VyIGxpc3QKICAqLwotc3RhdGljIGludAotc3Rh cnRfYWxsX2Fwcyh2b2lkKQoraW50CituYXRpdmVfc3RhcnRfYWxsX2Fwcyh2b2lkKQogewogCXZt X29mZnNldF90IHZhID0gYm9vdF9hZGRyZXNzICsgS0VSTkJBU0U7CiAJdV9pbnQ2NF90ICpwdDQs ICpwdDMsICpwdDI7CmRpZmYgLS1naXQgYS9zeXMvYW1kNjQvaW5jbHVkZS9jcHUuaCBiL3N5cy9h bWQ2NC9pbmNsdWRlL2NwdS5oCmluZGV4IDNjNWQ1ZGYuLjk4ZGMzZTAgMTAwNjQ0Ci0tLSBhL3N5 cy9hbWQ2NC9pbmNsdWRlL2NwdS5oCisrKyBiL3N5cy9hbWQ2NC9pbmNsdWRlL2NwdS5oCkBAIC02 NCw2ICs2NCw3IEBAIHN0cnVjdCBjcHVfb3BzIHsKIAl2b2lkICgqY3B1X2luaXQpKHZvaWQpOwog CXZvaWQgKCpjcHVfcmVzdW1lKSh2b2lkKTsKIAl2b2lkICgqaXBpX3ZlY3RvcmVkKSh1X2ludCwg aW50KTsKKwlpbnQgICgqc3RhcnRfYWxsX2Fwcykodm9pZCk7CiB9OwogCiBleHRlcm4gc3RydWN0 CWNwdV9vcHMgY3B1X29wczsKZGlmZiAtLWdpdCBhL3N5cy9hbWQ2NC9pbmNsdWRlL3NtcC5oIGIv c3lzL2FtZDY0L2luY2x1ZGUvc21wLmgKaW5kZXggZDFiMzY2Yi4uMTViYzgyMyAxMDA2NDQKLS0t IGEvc3lzL2FtZDY0L2luY2x1ZGUvc21wLmgKKysrIGIvc3lzL2FtZDY0L2luY2x1ZGUvc21wLmgK QEAgLTc5LDYgKzc5LDcgQEAgdm9pZAlzbXBfbWFza2VkX2ludmxwZ19yYW5nZShjcHVzZXRfdCBt YXNrLCBzdHJ1Y3QgcG1hcCAqcG1hcCwKIAkgICAgdm1fb2Zmc2V0X3Qgc3RhcnR2YSwgdm1fb2Zm c2V0X3QgZW5kdmEpOwogdm9pZAlzbXBfaW52bHRsYihzdHJ1Y3QgcG1hcCAqcG1hcCk7CiB2b2lk CXNtcF9tYXNrZWRfaW52bHRsYihjcHVzZXRfdCBtYXNrLCBzdHJ1Y3QgcG1hcCAqcG1hcCk7Citp bnQJbmF0aXZlX3N0YXJ0X2FsbF9hcHModm9pZCk7CiAKICNlbmRpZiAvKiAhTE9DT1JFICovCiAj ZW5kaWYgLyogU01QICovCmRpZmYgLS1naXQgYS9zeXMveDg2L3hlbi9odm0uYyBiL3N5cy94ODYv eGVuL2h2bS5jCmluZGV4IGZiMWVkNzkuLjQ5Y2FhY2YgMTAwNjQ0Ci0tLSBhL3N5cy94ODYveGVu L2h2bS5jCisrKyBiL3N5cy94ODYveGVuL2h2bS5jCkBAIC01Myw2ICs1Myw5IEBAIF9fRkJTRElE KCIkRnJlZUJTRCQiKTsKICNpbmNsdWRlIDx4ZW4vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPHhl bi9odm0uaD4KICNpbmNsdWRlIDx4ZW4veGVuX2ludHIuaD4KKyNpZmRlZiBfX2FtZDY0X18KKyNp bmNsdWRlIDx4ZW4vcHYuaD4KKyNlbmRpZgogCiAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9odm0v cGFyYW1zLmg+CiAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS92Y3B1Lmg+CkBAIC0xMTksNyArMTIy LDEwIEBAIGVudW0geGVuX2RvbWFpbl90eXBlIHhlbl9kb21haW5fdHlwZSA9IFhFTl9OQVRJVkU7 CiBzdHJ1Y3QgY3B1X29wcyB4ZW5faHZtX2NwdV9vcHMgPSB7CiAJLmlwaV92ZWN0b3JlZAk9IGxh cGljX2lwaV92ZWN0b3JlZCwKIAkuY3B1X2luaXQJPSB4ZW5faHZtX2NwdV9pbml0LAotCS5jcHVf cmVzdW1lCT0geGVuX2h2bV9jcHVfcmVzdW1lCisJLmNwdV9yZXN1bWUJPSB4ZW5faHZtX2NwdV9y ZXN1bWUsCisjaWZkZWYgX19hbWQ2NF9fCisJLnN0YXJ0X2FsbF9hcHMgPSBuYXRpdmVfc3RhcnRf YWxsX2FwcywKKyNlbmRpZgogfTsKIAogc3RhdGljIE1BTExPQ19ERUZJTkUoTV9YRU5IVk0sICJ4 ZW5faHZtIiwgIlhlbiBIVk0gUFYgU3VwcG9ydCIpOwpAQCAtNjk4LDYgKzcwNCwxMCBAQCB4ZW5f aHZtX2luaXQoZW51bSB4ZW5faHZtX2luaXRfdHlwZSBpbml0X3R5cGUpCiAJCXNldHVwX3hlbl9m ZWF0dXJlcygpOwogCQljcHVfb3BzID0geGVuX2h2bV9jcHVfb3BzOwogIAkJdm1fZ3Vlc3QgPSBW TV9HVUVTVF9YRU47CisjaWZkZWYgX19hbWQ2NF9fCisJCWlmICh4ZW5fcHZfZG9tYWluKCkpCisJ CQljcHVfb3BzLnN0YXJ0X2FsbF9hcHMgPSB4ZW5fcHZfc3RhcnRfYWxsX2FwczsKKyNlbmRpZgog CQlicmVhazsKIAljYXNlIFhFTl9IVk1fSU5JVF9SRVNVTUU6CiAJCWlmIChlcnJvciAhPSAwKQpk aWZmIC0tZ2l0IGEvc3lzL3g4Ni94ZW4vcHYuYyBiL3N5cy94ODYveGVuL3B2LmMKaW5kZXggZDEx YmMxYS4uMjJmZDZhNiAxMDA2NDQKLS0tIGEvc3lzL3g4Ni94ZW4vcHYuYworKysgYi9zeXMveDg2 L3hlbi9wdi5jCkBAIC0zNCw4ICszNCwxMSBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CiAjaW5j bHVkZSA8c3lzL2tlcm5lbC5oPgogI2luY2x1ZGUgPHN5cy9yZWJvb3QuaD4KICNpbmNsdWRlIDxz eXMvc3lzdG0uaD4KKyNpbmNsdWRlIDxzeXMvbWFsbG9jLmg+CiAjaW5jbHVkZSA8c3lzL2xvY2su aD4KICNpbmNsdWRlIDxzeXMvcndsb2NrLmg+CisjaW5jbHVkZSA8c3lzL211dGV4Lmg+CisjaW5j bHVkZSA8c3lzL3NtcC5oPgogCiAjaW5jbHVkZSA8dm0vdm0uaD4KICNpbmNsdWRlIDx2bS92bV9l eHRlcm4uaD4KQEAgLTQ5LDkgKzUyLDEzIEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsKICNpbmNs dWRlIDxtYWNoaW5lL3N5c2FyY2guaD4KICNpbmNsdWRlIDxtYWNoaW5lL2Nsb2NrLmg+CiAjaW5j bHVkZSA8bWFjaGluZS9wYy9iaW9zLmg+CisjaW5jbHVkZSA8bWFjaGluZS9zbXAuaD4KIAogI2lu Y2x1ZGUgPHhlbi94ZW4tb3MuaD4KICNpbmNsdWRlIDx4ZW4vaHlwZXJ2aXNvci5oPgorI2luY2x1 ZGUgPHhlbi9wdi5oPgorCisjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS92Y3B1Lmg+CiAKIC8qIE5h dGl2ZSBpbml0aWFsIGZ1bmN0aW9uICovCiBleHRlcm4gdV9pbnQ2NF90IGhhbW1lcl90aW1lKHVf aW50NjRfdCwgdV9pbnQ2NF90KTsKQEAgLTY1LDYgKzcyLDE1IEBAIHN0YXRpYyBjYWRkcl90IHhl bl9wdl9wYXJzZV9wcmVsb2FkX2RhdGEodV9pbnQ2NF90KTsKIHN0YXRpYyB2b2lkIHhlbl9wdl9w YXJzZV9tZW1tYXAoY2FkZHJfdCwgdm1fcGFkZHJfdCAqLCBpbnQgKik7CiAKIHN0YXRpYyB2b2lk IHhlbl9wdl9zZXRfaW5pdF9vcHModm9pZCk7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gRXh0ZXJuIERlY2xhcmF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyog VmFyaWFibGVzIHVzZWQgYnkgYW1kNjQgbXBfbWFjaGRlcCB0byBzdGFydCBBUHMgKi8KK2V4dGVy biBzdHJ1Y3QgbXR4IGFwX2Jvb3RfbXR4OworZXh0ZXJuIHZvaWQgKmJvb3RzdGFja3NbXTsKK2V4 dGVybiBjaGFyICpkb3VibGVmYXVsdF9zdGFjazsKK2V4dGVybiBjaGFyICpubWlfc3RhY2s7Citl eHRlcm4gdm9pZCAqZHBjcHU7CitleHRlcm4gaW50IGJvb3RBUDsKK2V4dGVybiBjaGFyICpib290 U1RLOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEdsb2JhbCBEYXRhIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogWGVuIGluaXRfb3BzIGltcGxlbWVu dGF0aW9uLiAqLwpAQCAtMTY4LDYgKzE4NCw3NSBAQCBoYW1tZXJfdGltZV94ZW4oc3RhcnRfaW5m b190ICpzaSwgdV9pbnQ2NF90IHhlbnN0YWNrKQogfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIFBWIHNwZWNpZmljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0q LworCitzdGF0aWMgaW50CitzdGFydF94ZW5fYXAoaW50IGNwdSkKK3sKKwlzdHJ1Y3QgdmNwdV9n dWVzdF9jb250ZXh0ICpjdHh0OworCWludCBtcywgY3B1cyA9IG1wX25hcHM7CisKKwljdHh0ID0g bWFsbG9jKHNpemVvZigqY3R4dCksIE1fVEVNUCwgTV9OT1dBSVQgfCBNX1pFUk8pOworCWlmIChj dHh0ID09IE5VTEwpCisJCXBhbmljKCJ1bmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5Iik7CisKKwlj dHh0LT5mbGFncyA9IFZHQ0ZfSU5fS0VSTkVMOworCWN0eHQtPnVzZXJfcmVncy5yaXAgPSAodW5z aWduZWQgbG9uZykgaW5pdF9zZWNvbmRhcnk7CisJY3R4dC0+dXNlcl9yZWdzLnJzcCA9ICh1bnNp Z25lZCBsb25nKSBib290U1RLOworCisJLyogU2V0IHRoZSBBUCB0byB1c2UgdGhlIHNhbWUgcGFn ZSB0YWJsZXMgKi8KKwljdHh0LT5jdHJscmVnWzNdID0gS1BNTDRwaHlzOworCisJaWYgKEhZUEVS VklTT1JfdmNwdV9vcChWQ1BVT1BfaW5pdGlhbGlzZSwgY3B1LCBjdHh0KSkKKwkJcGFuaWMoInVu YWJsZSB0byBpbml0aWFsaXplIEFQIyVkXG4iLCBjcHUpOworCisJZnJlZShjdHh0LCBNX1RFTVAp OworCisJLyogTGF1bmNoIHRoZSB2Q1BVICovCisJaWYgKEhZUEVSVklTT1JfdmNwdV9vcChWQ1BV T1BfdXAsIGNwdSwgTlVMTCkpCisJCXBhbmljKCJ1bmFibGUgdG8gc3RhcnQgQVAjJWRcbiIsIGNw dSk7CisKKwkvKiBXYWl0IHVwIHRvIDUgc2Vjb25kcyBmb3IgaXQgdG8gc3RhcnQuICovCisJZm9y IChtcyA9IDA7IG1zIDwgNTAwMDsgbXMrKykgeworCQlpZiAobXBfbmFwcyA+IGNwdXMpCisJCQly ZXR1cm4gKDEpOwkvKiByZXR1cm4gU1VDQ0VTUyAqLworCQlERUxBWSgxMDAwKTsKKwl9CisKKwly ZXR1cm4gKDApOworfQorCitpbnQKK3hlbl9wdl9zdGFydF9hbGxfYXBzKHZvaWQpCit7CisJaW50 IGNwdTsKKworCW10eF9pbml0KCZhcF9ib290X210eCwgImFwIGJvb3QiLCBOVUxMLCBNVFhfU1BJ Tik7CisKKwlmb3IgKGNwdSA9IDE7IGNwdSA8IG1wX25jcHVzOyBjcHUrKykgeworCisJCS8qIGFs bG9jYXRlIGFuZCBzZXQgdXAgYW4gaWRsZSBzdGFjayBkYXRhIHBhZ2UgKi8KKwkJYm9vdHN0YWNr c1tjcHVdID0gKHZvaWQgKilrbWVtX21hbGxvYyhrZXJuZWxfYXJlbmEsCisJCSAgICBLU1RBQ0tf UEFHRVMgKiBQQUdFX1NJWkUsIE1fV0FJVE9LIHwgTV9aRVJPKTsKKwkJZG91YmxlZmF1bHRfc3Rh Y2sgPSAoY2hhciAqKWttZW1fbWFsbG9jKGtlcm5lbF9hcmVuYSwKKwkJICAgIFBBR0VfU0laRSwg TV9XQUlUT0sgfCBNX1pFUk8pOworCQlubWlfc3RhY2sgPSAoY2hhciAqKWttZW1fbWFsbG9jKGtl cm5lbF9hcmVuYSwgUEFHRV9TSVpFLAorCQkgICAgTV9XQUlUT0sgfCBNX1pFUk8pOworCQlkcGNw dSA9ICh2b2lkICopa21lbV9tYWxsb2Moa2VybmVsX2FyZW5hLCBEUENQVV9TSVpFLAorCQkgICAg TV9XQUlUT0sgfCBNX1pFUk8pOworCisJCWJvb3RTVEsgPSAoY2hhciAqKWJvb3RzdGFja3NbY3B1 XSArIEtTVEFDS19QQUdFUyAqIFBBR0VfU0laRSAtIDg7CisJCWJvb3RBUCA9IGNwdTsKKworCQkv KiBhdHRlbXB0IHRvIHN0YXJ0IHRoZSBBcHBsaWNhdGlvbiBQcm9jZXNzb3IgKi8KKwkJaWYgKCFz dGFydF94ZW5fYXAoY3B1KSkKKwkJCXBhbmljKCJBUCAjJWQgZmFpbGVkIHRvIHN0YXJ0ISIsIGNw dSk7CisKKwkJQ1BVX1NFVChjcHUsICZhbGxfY3B1cyk7CS8qIHJlY29yZCBBUCBpbiBDUFUgbWFw ICovCisJfQorCisJcmV0dXJuIChtcF9uYXBzKTsKK30KKwogLyoKICAqIEZ1bmN0aW9ucyB0byBj b252ZXJ0IHRoZSAiZXh0cmEiIHBhcmFtZXRlcnMgcGFzc2VkIGJ5IFhlbgogICogaW50byBGcmVl QlNEIGJvb3Qgb3B0aW9ucyAoZnJvbSB0aGUgaTM4NiBYZW4gcG9ydCkuCmRpZmYgLS1naXQgYS9z eXMveGVuL3B2LmggYi9zeXMveGVuL3B2LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNDViNzQ3MwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy94ZW4vcHYuaApAQCAtMCwwICsx LDMyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEzIFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9S UyBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICog QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJV VE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJ TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwor ICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT UyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBU T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB WQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G IFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZglfX1hF Tl9QVl9IX18KKyNkZWZpbmUJX19YRU5fUFZfSF9fCisKK2ludAl4ZW5fcHZfc3RhcnRfYWxsX2Fw cyh2b2lkKTsKKworI2VuZGlmCS8qIF9fWEVOX1BWX0hfXyAqLwotLSAKMS43LjcuNSAoQXBwbGUg R2l0LTI2KQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZnJlZWJzZC1jdXJyZW50QGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuZnJl ZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlYnNkLWN1cnJlbnQKVG8gdW5zdWJzY3JpYmUs IHNlbmQgYW55IG1haWwgdG8gImZyZWVic2QtY3VycmVudC11bnN1YnNjcmliZUBmcmVlYnNkLm9y ZyI=
文章代碼(AID): #1IrNjVwr (FB_current)