From mboxrd@z Thu Jan 1 00:00:00 1970 From: gengdongjiu Subject: =?gb2312?B?tPC4tDogW1BBVENIIHYxMSAxLzZdIEFDUEk6IGFkZCBBUEVJL0hFU1QvQ1BF?= =?gb2312?Q?R_structures_and_macros?= Date: Fri, 18 Aug 2017 17:18:24 +0000 Message-ID: <0184EA26B2509940AA629AE1405DD7F201591861@DGGEMA503-MBX.china.huawei.com> References: <1503066227-18251-1-git-send-email-gengdongjiu@huawei.com> <1503066227-18251-2-git-send-email-gengdongjiu@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Cc: "Zhengqiang \(turing\)" , Wuquanming , Huangshaoyu , Linuxarm To: "mst@redhat.com" , "imammedo@redhat.com" , Zhaoshenglong , "peter.maydell@linaro.org" , "pbonzini@redhat.com" , "qemu-devel@nongnu.org" , "qemu-arm@nongnu.org" , "kvm@vger.kernel.org" , "edk2-devel@lists.01.org" , Laszlo Ersek , "christoffer.dall@linaro.org" , "marc.zyngier@arm.com" , "will.deacon@arm.com" , "james.morse@arm.com" , "tbaicar@codeaurora.org" , "ard.biesheuvel@linaro.org" , "mingo@kernel.org" , "bp@suse.de" , Shiju Jose , "zjzhang@codeaurora.org" < Return-path: In-Reply-To: <1503066227-18251-2-git-send-email-gengdongjiu@huawei.com> Content-Language: zh-CN List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org List-Id: kvm.vger.kernel.org TG9vcCBMYXN6bG8NCg0KPiAtLS0tLdPKvP7Urbz+LS0tLS0NCj4gt6K8/sjLOiBnZW5nZG9uZ2pp dQ0KPiC3osvNyrG85DogMjAxN8TqONTCMTjI1SAyMjoyNA0KPiDK1bz+yMs6IG1zdEByZWRoYXQu Y29tOyBpbWFtbWVkb0ByZWRoYXQuY29tOyBaaGFvc2hlbmdsb25nIDx6aGFvc2hlbmdsb25nQGh1 YXdlaS5jb20+OyBwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc7DQo+IHBib256aW5pQHJlZGhhdC5j b207IHFlbXUtZGV2ZWxAbm9uZ251Lm9yZzsgcWVtdS1hcm1Abm9uZ251Lm9yZzsga3ZtQHZnZXIu a2VybmVsLm9yZzsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7DQo+IGNocmlzdG9mZmVyLmRhbGxA bGluYXJvLm9yZzsgbWFyYy56eW5naWVyQGFybS5jb207IHdpbGwuZGVhY29uQGFybS5jb207IGph bWVzLm1vcnNlQGFybS5jb207IHRiYWljYXJAY29kZWF1cm9yYS5vcmc7DQo+IGFyZC5iaWVzaGV1 dmVsQGxpbmFyby5vcmc7IG1pbmdvQGtlcm5lbC5vcmc7IGJwQHN1c2UuZGU7IFNoaWp1IEpvc2Ug PHNoaWp1Lmpvc2VAaHVhd2VpLmNvbT47IHpqemhhbmdAY29kZWF1cm9yYS5vcmc7DQo+IGxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsga3ZtYXJtQGxpc3RzLmNzLmNvbHVtYmlh LmVkdTsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtYWNwaUB2Z2VyLmtlcm5l bC5vcmc7DQo+IGRldmVsQGFjcGljYS5vcmc7IEpvaG4gR2FycnkgPGpvaG4uZ2FycnlAaHVhd2Vp LmNvbT47IEpvbmF0aGFuIENhbWVyb24gPGpvbmF0aGFuLmNhbWVyb25AaHVhd2VpLmNvbT47IFNo YW1lZXJhbGkgS29sb3RodW0NCj4gVGhvZGkgPHNoYW1lZXJhbGkua29sb3RodW0udGhvZGlAaHVh d2VpLmNvbT47IGh1YW5nZGFvZGUgPGh1YW5nZGFvZGVAaGlzaWxpY29uLmNvbT47IFdhbmd6aG91 IChCKSA8d2FuZ3pob3UxQGhpc2lsaWNvbi5jb20+DQo+ILOty806IEh1YW5nc2hhb3l1IDxodWFu Z3NoYW95dUBodWF3ZWkuY29tPjsgV3VxdWFubWluZyA8d3VxdWFubWluZ0BodWF3ZWkuY29tPjsg TGludXhhcm0gPGxpbnV4YXJtQGh1YXdlaS5jb20+Ow0KPiBnZW5nZG9uZ2ppdSA8Z2VuZ2Rvbmdq aXVAaHVhd2VpLmNvbT47IFpoZW5ncWlhbmcgKHR1cmluZykgPHpoZW5ncWlhbmcxMEBodWF3ZWku Y29tPg0KPiDW98ziOiBbUEFUQ0ggdjExIDEvNl0gQUNQSTogYWRkIEFQRUkvSEVTVC9DUEVSIHN0 cnVjdHVyZXMgYW5kIG1hY3Jvcw0KPiANCj4gKDEpIEFkZCByZWxhdGVkIEFQRUkvSEVTVCB0YWJs ZSBzdHJ1Y3R1cmVzIGFuZCAgbWFjcm9zLCB0aGVzZQ0KPiAgICAgZGVmaW5pdGlvbiByZWZlciB0 byBBQ1BJIDYuMSBhbmQgVUVGSSAyLjYgc3BlYy4NCj4gKDIpIEFkZCBnZW5lcmljIGVycm9yIHN0 YXR1cyBibG9jayBhbmQgQ1BFUiBtZW1vcnkgc2VjdGlvbg0KPiAgICAgZGVmaW5pdGlvbiwgdXNl ciBzcGFjZSBvbmx5IGhhbmRsZSBtZW1vcnkgc2VjdGlvbiBlcnJvcnMuDQo+IA0KPiBTaWduZWQt b2ZmLWJ5OiBEb25naml1IEdlbmcgPGdlbmdkb25naml1QGh1YXdlaS5jb20+DQo+IC0tLQ0KPiAg aW5jbHVkZS9ody9hY3BpL2FjcGktZGVmcy5oIHwgMTkzICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrDQo+ICAxIGZpbGUgY2hhbmdlZCwgMTkzIGluc2VydGlvbnMo KykNCj4gDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FjcGkvYWNwaS1kZWZzLmggYi9pbmNs dWRlL2h3L2FjcGkvYWNwaS1kZWZzLmggaW5kZXggNzJiZTY3NS4uM2I0YmFkNyAxMDA2NDQNCj4g LS0tIGEvaW5jbHVkZS9ody9hY3BpL2FjcGktZGVmcy5oDQo+ICsrKyBiL2luY2x1ZGUvaHcvYWNw aS9hY3BpLWRlZnMuaA0KPiBAQCAtMjk3LDYgKzI5Nyw0NCBAQCB0eXBlZGVmIHN0cnVjdCBBY3Bp TXVsdGlwbGVBcGljVGFibGUgQWNwaU11bHRpcGxlQXBpY1RhYmxlOw0KPiAgI2RlZmluZSBBQ1BJ X0FQSUNfR0VORVJJQ19UUkFOU0xBVE9SICAgIDE1DQo+ICAjZGVmaW5lIEFDUElfQVBJQ19SRVNF UlZFRCAgICAgICAgICAgICAgMTYgICAvKiAxNiBhbmQgZ3JlYXRlciBhcmUgcmVzZXJ2ZWQgKi8N Cj4gDQo+ICsvKiBVRUZJIFNwZWMgMi42LCAiTi4yLjUgTWVtb3J5IEVycm9yIFNlY3Rpb24gKi8N Cj4gKyNkZWZpbmUgVUVGSV9DUEVSX01FTV9WQUxJRF9FUlJPUl9TVEFUVVMgICAgIDB4MDAwMQ0K PiArI2RlZmluZSBVRUZJX0NQRVJfTUVNX1ZBTElEX1BBICAgICAgICAgICAgICAgMHgwMDAyDQo+ ICsjZGVmaW5lIFVFRklfQ1BFUl9NRU1fVkFMSURfUEFfTUFTSyAgICAgICAgICAweDAwMDQNCj4g KyNkZWZpbmUgVUVGSV9DUEVSX01FTV9WQUxJRF9OT0RFICAgICAgICAgICAgIDB4MDAwOA0KPiAr I2RlZmluZSBVRUZJX0NQRVJfTUVNX1ZBTElEX0NBUkQgICAgICAgICAgICAgMHgwMDEwDQo+ICsj ZGVmaW5lIFVFRklfQ1BFUl9NRU1fVkFMSURfTU9EVUxFICAgICAgICAgICAweDAwMjANCj4gKyNk ZWZpbmUgVUVGSV9DUEVSX01FTV9WQUxJRF9CQU5LICAgICAgICAgICAgIDB4MDA0MA0KPiArI2Rl ZmluZSBVRUZJX0NQRVJfTUVNX1ZBTElEX0RFVklDRSAgICAgICAgICAgMHgwMDgwDQo+ICsjZGVm aW5lIFVFRklfQ1BFUl9NRU1fVkFMSURfUk9XICAgICAgICAgICAgICAweDAxMDANCj4gKyNkZWZp bmUgVUVGSV9DUEVSX01FTV9WQUxJRF9DT0xVTU4gICAgICAgICAgIDB4MDIwMA0KPiArI2RlZmlu ZSBVRUZJX0NQRVJfTUVNX1ZBTElEX0JJVF9QT1NJVElPTiAgICAgMHgwNDAwDQo+ICsjZGVmaW5l IFVFRklfQ1BFUl9NRU1fVkFMSURfUkVRVUVTVE9SICAgICAgICAweDA4MDANCj4gKyNkZWZpbmUg VUVGSV9DUEVSX01FTV9WQUxJRF9SRVNQT05ERVIgICAgICAgIDB4MTAwMA0KPiArI2RlZmluZSBV RUZJX0NQRVJfTUVNX1ZBTElEX1RBUkdFVCAgICAgICAgICAgMHgyMDAwDQo+ICsjZGVmaW5lIFVF RklfQ1BFUl9NRU1fVkFMSURfRVJST1JfVFlQRSAgICAgICAweDQwMDANCj4gKyNkZWZpbmUgVUVG SV9DUEVSX01FTV9WQUxJRF9SQU5LX05VTUJFUiAgICAgIDB4ODAwMA0KPiArI2RlZmluZSBVRUZJ X0NQRVJfTUVNX1ZBTElEX0NBUkRfSEFORExFICAgICAgMHgxMDAwMA0KPiArI2RlZmluZSBVRUZJ X0NQRVJfTUVNX1ZBTElEX01PRFVMRV9IQU5ETEUgICAgMHgyMDAwMA0KPiArI2RlZmluZSBVRUZJ X0NQRVJfTUVNX0VSUk9SX1RZUEVfTVVMVElfRUNDICAgMw0KPiArDQo+ICsvKiBGcm9tIHRoZSBB Q1BJIDYuMSBzcGVjLCAiMTguMy4yLjkgSGFyZHdhcmUgRXJyb3IgTm90aWZpY2F0aW9uIiAqLw0K PiArDQo+ICtlbnVtIEFjcGlIZXN0Tm90aWZ5VHlwZSB7DQo+ICsgICAgQUNQSV9IRVNUX05PVElG WV9QT0xMRUQgPSAwLA0KPiArICAgIEFDUElfSEVTVF9OT1RJRllfRVhURVJOQUwgPSAxLA0KPiAr ICAgIEFDUElfSEVTVF9OT1RJRllfTE9DQUwgPSAyLA0KPiArICAgIEFDUElfSEVTVF9OT1RJRllf U0NJID0gMywNCj4gKyAgICBBQ1BJX0hFU1RfTk9USUZZX05NSSA9IDQsDQo+ICsgICAgQUNQSV9I RVNUX05PVElGWV9DTUNJID0gNSwgIC8qIEFDUEkgNS4wICovDQo+ICsgICAgQUNQSV9IRVNUX05P VElGWV9NQ0UgPSA2LCAgIC8qIEFDUEkgNS4wICovDQo+ICsgICAgQUNQSV9IRVNUX05PVElGWV9H UElPID0gNywgIC8qIEFDUEkgNi4wICovDQo+ICsgICAgQUNQSV9IRVNUX05PVElGWV9TRUEgPSA4 LCAgIC8qIEFDUEkgNi4xICovDQo+ICsgICAgQUNQSV9IRVNUX05PVElGWV9TRUkgPSA5LCAgIC8q IEFDUEkgNi4xICovDQo+ICsgICAgQUNQSV9IRVNUX05PVElGWV9HU0lWID0gMTAsIC8qIEFDUEkg Ni4xICovDQo+ICsgICAgQUNQSV9IRVNUX05PVElGWV9SRVNFUlZFRCA9IDExICAvKiAxMSBhbmQg Z3JlYXRlciBhcmUgcmVzZXJ2ZWQgKi8NCj4gK307DQo+ICsNCj4gIC8qDQo+ICAgKiBNQURUIHN1 Yi1zdHJ1Y3R1cmVzIChGb2xsb3cgTVVMVElQTEVfQVBJQ19ERVNDUklQVElPTl9UQUJMRSkNCj4g ICAqLw0KPiBAQCAtNDc0LDYgKzUxMiwxNjEgQEAgc3RydWN0IEFjcGlTeXN0ZW1SZXNvdXJjZUFm ZmluaXR5VGFibGUgeyAgfSBRRU1VX1BBQ0tFRDsgIHR5cGVkZWYgc3RydWN0IEFjcGlTeXN0ZW1S ZXNvdXJjZUFmZmluaXR5VGFibGUNCj4gQWNwaVN5c3RlbVJlc291cmNlQWZmaW5pdHlUYWJsZTsN Cj4gDQo+ICsvKiBIYXJkd2FyZSBFcnJvciBOb3RpZmljYXRpb24sIGZyb20gdGhlIEFDUEkgNi4x DQo+ICsgKiBzcGVjLCAiMTguMy4yLjkgSGFyZHdhcmUgRXJyb3IgTm90aWZpY2F0aW9uIg0KPiAr ICovDQo+ICtzdHJ1Y3QgQWNwaUhlc3ROb3RpZnkgew0KPiArICAgIHVpbnQ4X3QgdHlwZTsNCj4g KyAgICB1aW50OF90IGxlbmd0aDsNCj4gKyAgICB1aW50MTZfdCBjb25maWdfd3JpdGVfZW5hYmxl Ow0KPiArICAgIHVpbnQzMl90IHBvbGxfaW50ZXJ2YWw7DQo+ICsgICAgdWludDMyX3QgdmVjdG9y Ow0KPiArICAgIHVpbnQzMl90IHBvbGxpbmdfdGhyZXNob2xkX3ZhbHVlOw0KPiArICAgIHVpbnQz Ml90IHBvbGxpbmdfdGhyZXNob2xkX3dpbmRvdzsNCj4gKyAgICB1aW50MzJfdCBlcnJvcl90aHJl c2hvbGRfdmFsdWU7DQo+ICsgICAgdWludDMyX3QgZXJyb3JfdGhyZXNob2xkX3dpbmRvdzsNCj4g K30gUUVNVV9QQUNLRUQ7DQo+ICt0eXBlZGVmIHN0cnVjdCBBY3BpSGVzdE5vdGlmeSBBY3BpSGVz dE5vdGlmeTsNCj4gKw0KPiArLyogRnJvbSBBQ1BJIDYuMSwgc2VjdGlvbnMgIjE4LjMuMi4xIElB LTMyIEFyY2hpdGVjdHVyZSBNYWNoaW5lDQo+ICsgKiBDaGVjayBFeGNlcHRpb24iIHRocm91Z2gg IjE4LjMuMi44IEdlbmVyaWMgSGFyZHdhcmUgRXJyb3IgU291cmNlIHZlcnNpb24gMiIuDQo+ICsg Ki8NCj4gK2VudW0gQWNwaUhlc3RTb3VyY2VUeXBlIHsNCj4gKyAgICBBQ1BJX0hFU1RfU09VUkNF X0lBMzJfQ0hFQ0sgPSAwLA0KPiArICAgIEFDUElfSEVTVF9TT1VSQ0VfSUEzMl9DT1JSRUNURURf Q0hFQ0sgPSAxLA0KPiArICAgIEFDUElfSEVTVF9TT1VSQ0VfSUEzMl9OTUkgPSAyLA0KPiArICAg IEFDUElfSEVTVF9TT1VSQ0VfQUVSX1JPT1RfUE9SVCA9IDYsDQo+ICsgICAgQUNQSV9IRVNUX1NP VVJDRV9BRVJfRU5EUE9JTlQgPSA3LA0KPiArICAgIEFDUElfSEVTVF9TT1VSQ0VfQUVSX0JSSURH RSA9IDgsDQo+ICsgICAgQUNQSV9IRVNUX1NPVVJDRV9HRU5FUklDX0VSUk9SID0gOSwNCj4gKyAg ICBBQ1BJX0hFU1RfU09VUkNFX0dFTkVSSUNfRVJST1JfVjIgPSAxMCwNCj4gKyAgICBBQ1BJX0hF U1RfU09VUkNFX1JFU0VSVkVEID0gMTEgICAgLyogMTEgYW5kIGdyZWF0ZXIgYXJlIHJlc2VydmVk ICovDQo+ICt9Ow0KPiArDQo+ICsvKiBCbG9jayBzdGF0dXMgYml0bWFza3MgZnJvbSBBQ1BJIDYu MSwgIjE4LjMuMi43LjEgR2VuZXJpYyBFcnJvciBEYXRhIiAqLw0KPiArI2RlZmluZSBBQ1BJX0dF QlNfVU5DT1JSRUNUQUJMRSAgICAgICAgICAgICAoMSkNCj4gKyNkZWZpbmUgQUNQSV9HRUJTX0NP UlJFQ1RBQkxFICAgICAgICAgICAgICAgKDEgPDwgMSkNCj4gKyNkZWZpbmUgQUNQSV9HRUJTX01V TFRJUExFX1VOQ09SUkVDVEFCTEUgICAgKDEgPDwgMikNCj4gKyNkZWZpbmUgQUNQSV9HRUJTX01V TFRJUExFX0NPUlJFQ1RBQkxFICAgICAgKDEgPDwgMykNCj4gKy8qIDEwIGJpdHMsIGVycm9yIGRh dGEgZW50cnkgY291bnQgKi8NCj4gKyNkZWZpbmUgQUNQSV9HRUJTX0VSUk9SX0VOVFJZX0NPVU5U ICAgICAgICAgKDB4M0ZGIDw8IDQpDQo+ICsNCj4gKy8qIEdlbmVyaWMgSGFyZHdhcmUgRXJyb3Ig U291cmNlIFN0cnVjdHVyZSwgcmVmZXIgdG8gQUNQSSA2LjENCj4gKyAqICIxOC4zLjIuNyBHZW5l cmljIEhhcmR3YXJlIEVycm9yIFNvdXJjZSIuIGluIHRoaXMgc3RydWN0IHRoZQ0KPiArICogInR5 cGUiIGZpZWxkIGhhcyB0byBiZSBBQ1BJX0hFU1RfU09VUkNFX0dFTkVSSUNfRVJST1IgICovDQo+ ICsNCj4gK3N0cnVjdCBBY3BpR2VuZXJpY0hhcmR3YXJlRXJyb3JTb3VyY2Ugew0KPiArICAgIHVp bnQxNl90IHR5cGU7DQo+ICsgICAgdWludDE2X3Qgc291cmNlX2lkOw0KPiArICAgIHVpbnQxNl90 IHJlbGF0ZWRfc291cmNlX2lkOw0KPiArICAgIHVpbnQ4X3QgZmxhZ3M7DQo+ICsgICAgdWludDhf dCBlbmFibGVkOw0KPiArICAgIHVpbnQzMl90IG51bWJlcl9vZl9yZWNvcmRzOw0KPiArICAgIHVp bnQzMl90IG1heF9zZWN0aW9uc19wZXJfcmVjb3JkOw0KPiArICAgIHVpbnQzMl90IG1heF9yYXdf ZGF0YV9sZW5ndGg7DQo+ICsgICAgc3RydWN0IEFjcGlHZW5lcmljQWRkcmVzcyBlcnJvcl9zdGF0 dXNfYWRkcmVzczsNCj4gKyAgICBzdHJ1Y3QgQWNwaUhlc3ROb3RpZnkgbm90aWZ5Ow0KPiArICAg IHVpbnQzMl90IGVycm9yX3N0YXR1c19ibG9ja19sZW5ndGg7IH0gUUVNVV9QQUNLRUQ7IHR5cGVk ZWYgc3RydWN0DQo+ICtBY3BpR2VuZXJpY0hhcmR3YXJlRXJyb3JTb3VyY2UgQWNwaUdlbmVyaWNI YXJkd2FyZUVycm9yU291cmNlOw0KPiArDQo+ICsvKiBHZW5lcmljIEhhcmR3YXJlIEVycm9yIFNv dXJjZSwgdmVyc2lvbiAyLCBBQ1BJIDYuMSwgIjE4LjMuMi44DQo+ICtHZW5lcmljDQo+ICsgKiBI YXJkd2FyZSBFcnJvciBTb3VyY2UgdmVyc2lvbiAyIiwgaW4gdGhpcyBzdHJ1Y3QgdGhlICJ0eXBl IiBmaWVsZA0KPiAraGFzIHRvDQo+ICsgKiBiZSBBQ1BJX0hFU1RfU09VUkNFX0dFTkVSSUNfRVJS T1JfVjIgICovIHN0cnVjdA0KPiArQWNwaUdlbmVyaWNIYXJkd2FyZUVycm9yU291cmNlVjIgew0K PiArICAgIHVpbnQxNl90IHR5cGU7DQo+ICsgICAgdWludDE2X3Qgc291cmNlX2lkOw0KPiArICAg IHVpbnQxNl90IHJlbGF0ZWRfc291cmNlX2lkOw0KPiArICAgIHVpbnQ4X3QgZmxhZ3M7DQo+ICsg ICAgdWludDhfdCBlbmFibGVkOw0KPiArICAgIHVpbnQzMl90IG51bWJlcl9vZl9yZWNvcmRzOw0K PiArICAgIHVpbnQzMl90IG1heF9zZWN0aW9uc19wZXJfcmVjb3JkOw0KPiArICAgIHVpbnQzMl90 IG1heF9yYXdfZGF0YV9sZW5ndGg7DQo+ICsgICAgc3RydWN0IEFjcGlHZW5lcmljQWRkcmVzcyBl cnJvcl9zdGF0dXNfYWRkcmVzczsNCj4gKyAgICBzdHJ1Y3QgQWNwaUhlc3ROb3RpZnkgbm90aWZ5 Ow0KPiArICAgIHVpbnQzMl90IGVycm9yX3N0YXR1c19ibG9ja19sZW5ndGg7DQo+ICsgICAgc3Ry dWN0IEFjcGlHZW5lcmljQWRkcmVzcyByZWFkX2Fja19yZWdpc3RlcjsNCj4gKyAgICB1aW50NjRf dCByZWFkX2Fja19wcmVzZXJ2ZTsNCj4gKyAgICB1aW50NjRfdCByZWFkX2Fja193cml0ZTsNCj4g K30gUUVNVV9QQUNLRUQ7DQo+ICt0eXBlZGVmIHN0cnVjdCBBY3BpR2VuZXJpY0hhcmR3YXJlRXJy b3JTb3VyY2VWMg0KPiArICAgICAgICAgICAgQWNwaUdlbmVyaWNIYXJkd2FyZUVycm9yU291cmNl VjI7DQo+ICsNCj4gKy8qIEdlbmVyaWMgRXJyb3IgU3RhdHVzIGJsb2NrLCBmcm9tIEFDUEkgNi4x LA0KPiArICogIjE4LjMuMi43LjEgR2VuZXJpYyBFcnJvciBEYXRhIg0KPiArICovDQo+ICtzdHJ1 Y3QgQWNwaUdlbmVyaWNFcnJvclN0YXR1cyB7DQo+ICsgICAgLyogSXQgaXMgYSBiaXRtYXNrIGNv bXBvc2VkIG9mIEFDUElfR0VCU194eHggbWFjcm9zICovDQo+ICsgICAgdWludDMyX3QgYmxvY2tf c3RhdHVzOw0KPiArICAgIHVpbnQzMl90IHJhd19kYXRhX29mZnNldDsNCj4gKyAgICB1aW50MzJf dCByYXdfZGF0YV9sZW5ndGg7DQo+ICsgICAgdWludDMyX3QgZGF0YV9sZW5ndGg7DQo+ICsgICAg dWludDMyX3QgZXJyb3Jfc2V2ZXJpdHk7DQo+ICt9IFFFTVVfUEFDS0VEOw0KPiArdHlwZWRlZiBz dHJ1Y3QgQWNwaUdlbmVyaWNFcnJvclN0YXR1cyBBY3BpR2VuZXJpY0Vycm9yU3RhdHVzOw0KPiAr DQo+ICtlbnVtIEFjcGlHZW5lcmljRXJyb3JTZXZlcml0eSB7DQo+ICsgICAgQUNQSV9DUEVSX1NF Vl9SRUNPVkVSQUJMRSwNCj4gKyAgICBBQ1BJX0NQRVJfU0VWX0ZBVEFMLA0KPiArICAgIEFDUElf Q1BFUl9TRVZfQ09SUkVDVEVELA0KPiArICAgIEFDUElfQ1BFUl9TRVZfTk9ORSwNCj4gK307DQo+ ICsNCj4gKy8qIEdlbmVyaWMgRXJyb3IgRGF0YSBlbnRyeSwgcmV2aXNpb24gbnVtYmVyIGlzIDB4 MDMwMCwNCj4gKyAqIEFDUEkgNi4xLCAiMTguMy4yLjcuMSBHZW5lcmljIEVycm9yIERhdGEiDQo+ ICsgKi8NCj4gK3N0cnVjdCBBY3BpR2VuZXJpY0Vycm9yRGF0YSB7DQo+ICsgICAgdWludDhfdCBz ZWN0aW9uX3R5cGVfbGVbMTZdOw0KPiArICAgIC8qIFRoZSAiZXJyb3Jfc2V2ZXJpdHkiIGZpZWxk cyB0aGF0IHRoZXkgdGFrZSB0aGVpcg0KPiArICAgICAqIHZhbHVlcyBmcm9tIEFjcGlHZW5lcmlj RXJyb3JTZXZlcml0eQ0KPiArICAgICAqLw0KPiArICAgIHVpbnQzMl90IGVycm9yX3NldmVyaXR5 Ow0KPiArICAgIHVpbnQxNl90IHJldmlzaW9uOw0KPiArICAgIHVpbnQ4X3QgdmFsaWRhdGlvbl9i aXRzOw0KPiArICAgIHVpbnQ4X3QgZmxhZ3M7DQo+ICsgICAgdWludDMyX3QgZXJyb3JfZGF0YV9s ZW5ndGg7DQo+ICsgICAgdWludDhfdCBmcnVfaWRbMTZdOw0KPiArICAgIHVpbnQ4X3QgZnJ1X3Rl eHRbMjBdOw0KPiArICAgIHVpbnQ2NF90IHRpbWVfc3RhbXA7DQo+ICt9IFFFTVVfUEFDS0VEOw0K PiArdHlwZWRlZiBzdHJ1Y3QgQWNwaUdlbmVyaWNFcnJvckRhdGEgQWNwaUdlbmVyaWNFcnJvckRh dGE7DQo+ICsNCj4gKy8qIEZyb20gVUVGSSAyLjYsICJOLjIuNSBNZW1vcnkgRXJyb3IgU2VjdGlv biIgKi8gc3RydWN0DQo+ICtVZWZpQ3BlclNlY01lbUVyciB7DQo+ICsgICAgdWludDY0X3QgICAg dmFsaWRhdGlvbl9iaXRzOw0KPiArICAgIHVpbnQ2NF90ICAgIGVycm9yX3N0YXR1czsNCj4gKyAg ICB1aW50NjRfdCAgICBwaHlzaWNhbF9hZGRyOw0KPiArICAgIHVpbnQ2NF90ICAgIHBoeXNpY2Fs X2FkZHJfbWFzazsNCj4gKyAgICB1aW50MTZfdCAgICBub2RlOw0KPiArICAgIHVpbnQxNl90ICAg IGNhcmQ7DQo+ICsgICAgdWludDE2X3QgICAgbW9kdWxlOw0KPiArICAgIHVpbnQxNl90ICAgIGJh bms7DQo+ICsgICAgdWludDE2X3QgICAgZGV2aWNlOw0KPiArICAgIHVpbnQxNl90ICAgIHJvdzsN Cj4gKyAgICB1aW50MTZfdCAgICBjb2x1bW47DQo+ICsgICAgdWludDE2X3QgICAgYml0X3BvczsN Cj4gKyAgICB1aW50NjRfdCAgICByZXF1ZXN0b3JfaWQ7DQo+ICsgICAgdWludDY0X3QgICAgcmVz cG9uZGVyX2lkOw0KPiArICAgIHVpbnQ2NF90ICAgIHRhcmdldF9pZDsNCj4gKyAgICB1aW50OF90 ICAgICBlcnJvcl90eXBlOw0KPiArICAgIHVpbnQ4X3QgICAgIHJlc2VydmVkOw0KPiArICAgIHVp bnQxNl90ICAgIHJhbms7DQo+ICsgICAgdWludDE2X3QgICAgbWVtX2FycmF5X2hhbmRsZTsgICAv KiBjYXJkIGhhbmRsZSBpbiBVRUZJIDIuNCAqLw0KPiArICAgIHVpbnQxNl90ICAgIG1lbV9kZXZf aGFuZGxlOyAgICAgLyogbW9kdWxlIGhhbmRsZSBpbiBVRUZJIDIuNCAqLw0KPiArfSBRRU1VX1BB Q0tFRDsNCj4gK3R5cGVkZWYgc3RydWN0IFVlZmlDcGVyU2VjTWVtRXJyIFVlZmlDcGVyU2VjTWVt RXJyOw0KPiArDQo+ICsvKg0KPiArICogSEVTVCBEZXNjcmlwdGlvbiBUYWJsZQ0KPiArICovDQo+ ICtzdHJ1Y3QgQWNwaUhhcmR3YXJlRXJyb3JTb3VyY2VUYWJsZSB7DQo+ICsgICAgQUNQSV9UQUJM RV9IRUFERVJfREVGICAgICAgICAgICAgICAgICAgICAvKiBBQ1BJIGNvbW1vbiB0YWJsZSBoZWFk ZXIgKi8NCj4gKyAgICB1aW50MzJfdCAgICAgICAgICAgZXJyb3Jfc291cmNlX2NvdW50Ow0KPiAr fSBRRU1VX1BBQ0tFRDsNCj4gK3R5cGVkZWYgc3RydWN0IEFjcGlIYXJkd2FyZUVycm9yU291cmNl VGFibGUNCj4gK0FjcGlIYXJkd2FyZUVycm9yU291cmNlVGFibGU7DQo+ICsNCj4gICNkZWZpbmUg QUNQSV9TUkFUX1BST0NFU1NPUl9BUElDICAgICAwDQo+ICAjZGVmaW5lIEFDUElfU1JBVF9NRU1P UlkgICAgICAgICAgICAgMQ0KPiAgI2RlZmluZSBBQ1BJX1NSQVRfUFJPQ0VTU09SX3gyQVBJQyAg IDINCj4gLS0NCj4gMS44LjMuMQ0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2Vy bmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: gengdongjiu@huawei.com (gengdongjiu) Date: Fri, 18 Aug 2017 17:18:24 +0000 Subject: =?gb2312?B?tPC4tDogW1BBVENIIHYxMSAxLzZdIEFDUEk6IGFkZCBBUEVJL0hFU1QvQ1BF?= =?gb2312?Q?R_structures_and_macros?= In-Reply-To: <1503066227-18251-2-git-send-email-gengdongjiu@huawei.com> References: <1503066227-18251-1-git-send-email-gengdongjiu@huawei.com> <1503066227-18251-2-git-send-email-gengdongjiu@huawei.com> Message-ID: <0184EA26B2509940AA629AE1405DD7F201591861@DGGEMA503-MBX.china.huawei.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Loop Laszlo > -----????----- > ???: gengdongjiu > ????: 2017?8?18? 22:24 > ???: mst at redhat.com; imammedo at redhat.com; Zhaoshenglong ; peter.maydell at linaro.org; > pbonzini at redhat.com; qemu-devel at nongnu.org; qemu-arm at nongnu.org; kvm at vger.kernel.org; edk2-devel at lists.01.org; > christoffer.dall at linaro.org; marc.zyngier at arm.com; will.deacon at arm.com; james.morse at arm.com; tbaicar at codeaurora.org; > ard.biesheuvel at linaro.org; mingo at kernel.org; bp at suse.de; Shiju Jose ; zjzhang at codeaurora.org; > linux-arm-kernel at lists.infradead.org; kvmarm at lists.cs.columbia.edu; linux-kernel at vger.kernel.org; linux-acpi at vger.kernel.org; > devel at acpica.org; John Garry ; Jonathan Cameron ; Shameerali Kolothum > Thodi ; huangdaode ; Wangzhou (B) > ??: Huangshaoyu ; Wuquanming ; Linuxarm ; > gengdongjiu ; Zhengqiang (turing) > ??: [PATCH v11 1/6] ACPI: add APEI/HEST/CPER structures and macros > > (1) Add related APEI/HEST table structures and macros, these > definition refer to ACPI 6.1 and UEFI 2.6 spec. > (2) Add generic error status block and CPER memory section > definition, user space only handle memory section errors. > > Signed-off-by: Dongjiu Geng > --- > include/hw/acpi/acpi-defs.h | 193 ++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 193 insertions(+) > > diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h index 72be675..3b4bad7 100644 > --- a/include/hw/acpi/acpi-defs.h > +++ b/include/hw/acpi/acpi-defs.h > @@ -297,6 +297,44 @@ typedef struct AcpiMultipleApicTable AcpiMultipleApicTable; > #define ACPI_APIC_GENERIC_TRANSLATOR 15 > #define ACPI_APIC_RESERVED 16 /* 16 and greater are reserved */ > > +/* UEFI Spec 2.6, "N.2.5 Memory Error Section */ > +#define UEFI_CPER_MEM_VALID_ERROR_STATUS 0x0001 > +#define UEFI_CPER_MEM_VALID_PA 0x0002 > +#define UEFI_CPER_MEM_VALID_PA_MASK 0x0004 > +#define UEFI_CPER_MEM_VALID_NODE 0x0008 > +#define UEFI_CPER_MEM_VALID_CARD 0x0010 > +#define UEFI_CPER_MEM_VALID_MODULE 0x0020 > +#define UEFI_CPER_MEM_VALID_BANK 0x0040 > +#define UEFI_CPER_MEM_VALID_DEVICE 0x0080 > +#define UEFI_CPER_MEM_VALID_ROW 0x0100 > +#define UEFI_CPER_MEM_VALID_COLUMN 0x0200 > +#define UEFI_CPER_MEM_VALID_BIT_POSITION 0x0400 > +#define UEFI_CPER_MEM_VALID_REQUESTOR 0x0800 > +#define UEFI_CPER_MEM_VALID_RESPONDER 0x1000 > +#define UEFI_CPER_MEM_VALID_TARGET 0x2000 > +#define UEFI_CPER_MEM_VALID_ERROR_TYPE 0x4000 > +#define UEFI_CPER_MEM_VALID_RANK_NUMBER 0x8000 > +#define UEFI_CPER_MEM_VALID_CARD_HANDLE 0x10000 > +#define UEFI_CPER_MEM_VALID_MODULE_HANDLE 0x20000 > +#define UEFI_CPER_MEM_ERROR_TYPE_MULTI_ECC 3 > + > +/* From the ACPI 6.1 spec, "18.3.2.9 Hardware Error Notification" */ > + > +enum AcpiHestNotifyType { > + ACPI_HEST_NOTIFY_POLLED = 0, > + ACPI_HEST_NOTIFY_EXTERNAL = 1, > + ACPI_HEST_NOTIFY_LOCAL = 2, > + ACPI_HEST_NOTIFY_SCI = 3, > + ACPI_HEST_NOTIFY_NMI = 4, > + ACPI_HEST_NOTIFY_CMCI = 5, /* ACPI 5.0 */ > + ACPI_HEST_NOTIFY_MCE = 6, /* ACPI 5.0 */ > + ACPI_HEST_NOTIFY_GPIO = 7, /* ACPI 6.0 */ > + ACPI_HEST_NOTIFY_SEA = 8, /* ACPI 6.1 */ > + ACPI_HEST_NOTIFY_SEI = 9, /* ACPI 6.1 */ > + ACPI_HEST_NOTIFY_GSIV = 10, /* ACPI 6.1 */ > + ACPI_HEST_NOTIFY_RESERVED = 11 /* 11 and greater are reserved */ > +}; > + > /* > * MADT sub-structures (Follow MULTIPLE_APIC_DESCRIPTION_TABLE) > */ > @@ -474,6 +512,161 @@ struct AcpiSystemResourceAffinityTable { } QEMU_PACKED; typedef struct AcpiSystemResourceAffinityTable > AcpiSystemResourceAffinityTable; > > +/* Hardware Error Notification, from the ACPI 6.1 > + * spec, "18.3.2.9 Hardware Error Notification" > + */ > +struct AcpiHestNotify { > + uint8_t type; > + uint8_t length; > + uint16_t config_write_enable; > + uint32_t poll_interval; > + uint32_t vector; > + uint32_t polling_threshold_value; > + uint32_t polling_threshold_window; > + uint32_t error_threshold_value; > + uint32_t error_threshold_window; > +} QEMU_PACKED; > +typedef struct AcpiHestNotify AcpiHestNotify; > + > +/* From ACPI 6.1, sections "18.3.2.1 IA-32 Architecture Machine > + * Check Exception" through "18.3.2.8 Generic Hardware Error Source version 2". > + */ > +enum AcpiHestSourceType { > + ACPI_HEST_SOURCE_IA32_CHECK = 0, > + ACPI_HEST_SOURCE_IA32_CORRECTED_CHECK = 1, > + ACPI_HEST_SOURCE_IA32_NMI = 2, > + ACPI_HEST_SOURCE_AER_ROOT_PORT = 6, > + ACPI_HEST_SOURCE_AER_ENDPOINT = 7, > + ACPI_HEST_SOURCE_AER_BRIDGE = 8, > + ACPI_HEST_SOURCE_GENERIC_ERROR = 9, > + ACPI_HEST_SOURCE_GENERIC_ERROR_V2 = 10, > + ACPI_HEST_SOURCE_RESERVED = 11 /* 11 and greater are reserved */ > +}; > + > +/* Block status bitmasks from ACPI 6.1, "18.3.2.7.1 Generic Error Data" */ > +#define ACPI_GEBS_UNCORRECTABLE (1) > +#define ACPI_GEBS_CORRECTABLE (1 << 1) > +#define ACPI_GEBS_MULTIPLE_UNCORRECTABLE (1 << 2) > +#define ACPI_GEBS_MULTIPLE_CORRECTABLE (1 << 3) > +/* 10 bits, error data entry count */ > +#define ACPI_GEBS_ERROR_ENTRY_COUNT (0x3FF << 4) > + > +/* Generic Hardware Error Source Structure, refer to ACPI 6.1 > + * "18.3.2.7 Generic Hardware Error Source". in this struct the > + * "type" field has to be ACPI_HEST_SOURCE_GENERIC_ERROR */ > + > +struct AcpiGenericHardwareErrorSource { > + uint16_t type; > + uint16_t source_id; > + uint16_t related_source_id; > + uint8_t flags; > + uint8_t enabled; > + uint32_t number_of_records; > + uint32_t max_sections_per_record; > + uint32_t max_raw_data_length; > + struct AcpiGenericAddress error_status_address; > + struct AcpiHestNotify notify; > + uint32_t error_status_block_length; } QEMU_PACKED; typedef struct > +AcpiGenericHardwareErrorSource AcpiGenericHardwareErrorSource; > + > +/* Generic Hardware Error Source, version 2, ACPI 6.1, "18.3.2.8 > +Generic > + * Hardware Error Source version 2", in this struct the "type" field > +has to > + * be ACPI_HEST_SOURCE_GENERIC_ERROR_V2 */ struct > +AcpiGenericHardwareErrorSourceV2 { > + uint16_t type; > + uint16_t source_id; > + uint16_t related_source_id; > + uint8_t flags; > + uint8_t enabled; > + uint32_t number_of_records; > + uint32_t max_sections_per_record; > + uint32_t max_raw_data_length; > + struct AcpiGenericAddress error_status_address; > + struct AcpiHestNotify notify; > + uint32_t error_status_block_length; > + struct AcpiGenericAddress read_ack_register; > + uint64_t read_ack_preserve; > + uint64_t read_ack_write; > +} QEMU_PACKED; > +typedef struct AcpiGenericHardwareErrorSourceV2 > + AcpiGenericHardwareErrorSourceV2; > + > +/* Generic Error Status block, from ACPI 6.1, > + * "18.3.2.7.1 Generic Error Data" > + */ > +struct AcpiGenericErrorStatus { > + /* It is a bitmask composed of ACPI_GEBS_xxx macros */ > + uint32_t block_status; > + uint32_t raw_data_offset; > + uint32_t raw_data_length; > + uint32_t data_length; > + uint32_t error_severity; > +} QEMU_PACKED; > +typedef struct AcpiGenericErrorStatus AcpiGenericErrorStatus; > + > +enum AcpiGenericErrorSeverity { > + ACPI_CPER_SEV_RECOVERABLE, > + ACPI_CPER_SEV_FATAL, > + ACPI_CPER_SEV_CORRECTED, > + ACPI_CPER_SEV_NONE, > +}; > + > +/* Generic Error Data entry, revision number is 0x0300, > + * ACPI 6.1, "18.3.2.7.1 Generic Error Data" > + */ > +struct AcpiGenericErrorData { > + uint8_t section_type_le[16]; > + /* The "error_severity" fields that they take their > + * values from AcpiGenericErrorSeverity > + */ > + uint32_t error_severity; > + uint16_t revision; > + uint8_t validation_bits; > + uint8_t flags; > + uint32_t error_data_length; > + uint8_t fru_id[16]; > + uint8_t fru_text[20]; > + uint64_t time_stamp; > +} QEMU_PACKED; > +typedef struct AcpiGenericErrorData AcpiGenericErrorData; > + > +/* From UEFI 2.6, "N.2.5 Memory Error Section" */ struct > +UefiCperSecMemErr { > + uint64_t validation_bits; > + uint64_t error_status; > + uint64_t physical_addr; > + uint64_t physical_addr_mask; > + uint16_t node; > + uint16_t card; > + uint16_t module; > + uint16_t bank; > + uint16_t device; > + uint16_t row; > + uint16_t column; > + uint16_t bit_pos; > + uint64_t requestor_id; > + uint64_t responder_id; > + uint64_t target_id; > + uint8_t error_type; > + uint8_t reserved; > + uint16_t rank; > + uint16_t mem_array_handle; /* card handle in UEFI 2.4 */ > + uint16_t mem_dev_handle; /* module handle in UEFI 2.4 */ > +} QEMU_PACKED; > +typedef struct UefiCperSecMemErr UefiCperSecMemErr; > + > +/* > + * HEST Description Table > + */ > +struct AcpiHardwareErrorSourceTable { > + ACPI_TABLE_HEADER_DEF /* ACPI common table header */ > + uint32_t error_source_count; > +} QEMU_PACKED; > +typedef struct AcpiHardwareErrorSourceTable > +AcpiHardwareErrorSourceTable; > + > #define ACPI_SRAT_PROCESSOR_APIC 0 > #define ACPI_SRAT_MEMORY 1 > #define ACPI_SRAT_PROCESSOR_x2APIC 2 > -- > 1.8.3.1