From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 09/13] libx86: Introduce a helper to deserialise cpuid_policy objects Date: Fri, 13 Jul 2018 21:03:10 +0100 Message-ID: <1531512194-6865-10-git-send-email-andrew.cooper3@citrix.com> References: <1531512194-6865-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1531512194-6865-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Sergey Dyasli , Wei Liu , Andrew Cooper , Ian Jackson , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org QXMgd2l0aCB0aGUgc2VyaWFsaXNlIHNpZGUsIFhlbidzIGNvcHlfZnJvbV9ndWVzdCBBUEkgaXMg dXNlZCwgd2l0aCBhCmNvbXBhdGliaWxpdHkgd3JhcHBlciBmb3IgdGhlIHVzZXJzcGFjZSBidWls ZC4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5j b20+ClNpZ25lZC1vZmYtYnk6IFNlcmdleSBEeWFzbGkgPHNlcmdleS5keWFzbGlAY2l0cml4LmNv bT4KU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu Y29tPgpDQzogU2VyZ2V5IER5YXNsaSA8c2VyZ2V5LmR5YXNsaUBjaXRyaXguY29tPgpDQzogSWFu IEphY2tzb24gPElhbi5KYWNrc29uQGV1LmNpdHJpeC5jb20+Cgp2MjoKICogUmV3cml0ZSBjb3B5 X2Zyb21fYnVmZmVyX29mZnNldCgpIHRvIGF2b2lkIG11bHRpcGxlIGV2YWx1YXRpb24gb2YgaXRz CiAgIGFyZ3VtZW50cy4KICogRXhwYW5kIGJvdW5kYXJ5IGp1c3RpZmljYXRpb25zLgotLS0KIHhl bi9jb21tb24vbGlieDg2L2NwdWlkLmMgICAgICB8IDk0ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogeGVuL2NvbW1vbi9saWJ4ODYvcHJpdmF0ZS5oICAgIHwgMTQg KysrKysrKwogeGVuL2luY2x1ZGUveGVuL2xpYng4Ni9jcHVpZC5oIHwgMTEgKysrKysKIDMgZmls ZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2xp Yng4Ni9jcHVpZC5jIGIveGVuL2NvbW1vbi9saWJ4ODYvY3B1aWQuYwppbmRleCBjZjdkYmQzLi43 M2NkNTc0IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2xpYng4Ni9jcHVpZC5jCisrKyBiL3hlbi9j b21tb24vbGlieDg2L2NwdWlkLmMKQEAgLTEyMyw2ICsxMjMsMTAwIEBAIGludCB4ODZfY3B1aWRf Y29weV90b19idWZmZXIoY29uc3Qgc3RydWN0IGNwdWlkX3BvbGljeSAqcCwKICAgICByZXR1cm4g MDsKIH0KIAoraW50IHg4Nl9jcHVpZF9jb3B5X2Zyb21fYnVmZmVyKHN0cnVjdCBjcHVpZF9wb2xp Y3kgKnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3B1aWRfbGVhZl9i dWZmZXJfdCBsZWF2ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg bnJfbGVhdmVzLCB1aW50MzJfdCAqZXJyX2xlYWYsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgKmVycl9zdWJsZWFmKQoreworICAgIHVuc2lnbmVkIGludCBpOworICAg IHhlbl9jcHVpZF9sZWFmX3QgZGF0YTsKKyAgICBzdHJ1Y3QgY3B1aWRfbGVhZiAqbCA9ICh2b2lk ICopJmRhdGEuYTsKKworICAgIC8qCisgICAgICogQSB3ZWxsIGZvcm1lZCBjYWxsZXIgaXMgZXhw ZWN0ZWQgcGFzcyBhbiBhcnJheSB3aXRoIGxlYXZlcyBpbiBvcmRlciwKKyAgICAgKiBhbmQgd2l0 aG91dCBhbnkgcmVwZXRpdGlvbnMuICBIb3dldmVyLCBkdWUgdG8gcGVyLXZlbmRvciBkaWZmZXJl bmNlcywKKyAgICAgKiBhbmQgaW4gdGhlIGNhc2Ugb2YgdXBncmFkZSBvciBsZXZlbGxlZCBzY2Vu YXJpb3MsIHdlIHR5cGljYWxseSBleHBlY3QKKyAgICAgKiBmZXdlciB0aGFuIE1BWCBsZWF2ZXMg dG8gYmUgcGFzc2VkLgorICAgICAqCisgICAgICogRGV0ZWN0aW5nIHJlcGVhdGVkIGVudHJpZXMg aXMgcHJvaGliaXRpdmVseSBjb21wbGljYXRlZCwgc28gd2UgZG9uJ3QKKyAgICAgKiBib3RoZXIu ICBUaGF0IHNhaWQsIG9uZSB3YXkgb3IgYW5vdGhlciBpZiBtb3JlIHRoYW4gTUFYIGxlYXZlcyBh cmUKKyAgICAgKiBwYXNzZWQsIHNvbWV0aGluZyBpcyB3cm9uZy4KKyAgICAgKi8KKyAgICBpZiAo IG5yX2xlYXZlcyA+IENQVUlEX01BWF9TRVJJQUxJU0VEX0xFQVZFUyApCisgICAgICAgIHJldHVy biAtRTJCSUc7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IG5yX2xlYXZlczsgKytpICkKKyAgICB7 CisgICAgICAgIGlmICggY29weV9mcm9tX2J1ZmZlcl9vZmZzZXQoJmRhdGEsIGxlYXZlcywgaSwg MSkgKQorICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgc3dpdGNoICggZGF0 YS5sZWFmICkKKyAgICAgICAgeworICAgICAgICBjYXNlIDAgLi4uIEFSUkFZX1NJWkUocC0+YmFz aWMucmF3KSAtIDE6CisgICAgICAgICAgICBzd2l0Y2ggKCBkYXRhLmxlYWYgKQorICAgICAgICAg ICAgeworICAgICAgICAgICAgY2FzZSAweDQ6CisgICAgICAgICAgICAgICAgaWYgKCBkYXRhLnN1 YmxlYWYgPj0gQVJSQVlfU0laRShwLT5jYWNoZS5yYXcpICkKKyAgICAgICAgICAgICAgICAgICAg Z290byBvdXRfb2ZfcmFuZ2U7CisKKyAgICAgICAgICAgICAgICBwLT5jYWNoZS5yYXdbZGF0YS5z dWJsZWFmXSA9ICpsOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNl IDB4NzoKKyAgICAgICAgICAgICAgICBpZiAoIGRhdGEuc3VibGVhZiA+PSBBUlJBWV9TSVpFKHAt PmZlYXQucmF3KSApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0X29mX3JhbmdlOworCisg ICAgICAgICAgICAgICAgcC0+ZmVhdC5yYXdbZGF0YS5zdWJsZWFmXSA9ICpsOworICAgICAgICAg ICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDB4YjoKKyAgICAgICAgICAgICAgICBp ZiAoIGRhdGEuc3VibGVhZiA+PSBBUlJBWV9TSVpFKHAtPnRvcG8ucmF3KSApCisgICAgICAgICAg ICAgICAgICAgIGdvdG8gb3V0X29mX3JhbmdlOworCisgICAgICAgICAgICAgICAgcC0+dG9wby5y YXdbZGF0YS5zdWJsZWFmXSA9ICpsOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg ICAgICBjYXNlIDB4ZDoKKyAgICAgICAgICAgICAgICBpZiAoIGRhdGEuc3VibGVhZiA+PSBBUlJB WV9TSVpFKHAtPnhzdGF0ZS5yYXcpICkKKyAgICAgICAgICAgICAgICAgICAgZ290byBvdXRfb2Zf cmFuZ2U7CisKKyAgICAgICAgICAgICAgICBwLT54c3RhdGUucmF3W2RhdGEubGVhZl0gPSAqbDsK KyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg ICAgICAgICBwLT5iYXNpYy5yYXdbZGF0YS5sZWFmXSA9ICpsOworICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAw eDQwMDAwMDAwOgorICAgICAgICAgICAgcC0+aHZfbGltaXQgPSBsLT5hOworICAgICAgICAgICAg YnJlYWs7CisKKyAgICAgICAgY2FzZSAweDQwMDAwMTAwOgorICAgICAgICAgICAgcC0+aHYyX2xp bWl0ID0gbC0+YTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgMHg4MDAwMDAw MCAuLi4gMHg4MDAwMDAwMCArIEFSUkFZX1NJWkUocC0+ZXh0ZC5yYXcpIC0gMToKKyAgICAgICAg ICAgIHAtPmV4dGQucmF3W2RhdGEubGVhZiAmIDB4ZmZmZl0gPSAqbDsKKyAgICAgICAgICAgIGJy ZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBnb3RvIG91dF9vZl9yYW5nZTsK KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworCisgb3V0X29mX3JhbmdlOgorICAg IGlmICggZXJyX2xlYWYgKQorICAgICAgICAqZXJyX2xlYWYgPSBkYXRhLmxlYWY7CisgICAgaWYg KCBlcnJfc3VibGVhZiApCisgICAgICAgICplcnJfc3VibGVhZiA9IGRhdGEuc3VibGVhZjsKKwor ICAgIHJldHVybiAtRVJBTkdFOworfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9k ZTogQwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9saWJ4ODYvcHJpdmF0ZS5oIGIveGVuL2NvbW1v bi9saWJ4ODYvcHJpdmF0ZS5oCmluZGV4IGU4NzRmYjYuLmRjNDUxZDAgMTAwNjQ0Ci0tLSBhL3hl bi9jb21tb24vbGlieDg2L3ByaXZhdGUuaAorKysgYi94ZW4vY29tbW9uL2xpYng4Ni9wcml2YXRl LmgKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlIDxhc20vbXNyLWluZGV4Lmg+CiAKICNkZWZp bmUgY29weV90b19idWZmZXJfb2Zmc2V0IGNvcHlfdG9fZ3Vlc3Rfb2Zmc2V0CisjZGVmaW5lIGNv cHlfZnJvbV9idWZmZXJfb2Zmc2V0IGNvcHlfZnJvbV9ndWVzdF9vZmZzZXQKIAogI2Vsc2UKIApA QCAtNDQsNiArNDUsMTkgQEAgc3RhdGljIGlubGluZSBib29sIHRlc3RfYml0KHVuc2lnbmVkIGlu dCBiaXQsIGNvbnN0IHZvaWQgKnZhZGRyKQogICAgIDA7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9KQogCisvKiBtZW1jcHkoKSwgYnV0IHdpdGgg Y29weV9mcm9tX2d1ZXN0X29mZnNldCgpJ3MgQVBJLiAqLworI2RlZmluZSBjb3B5X2Zyb21fYnVm ZmVyX29mZnNldChkc3QsIHNyYywgaW5kZXgsIG5yKSAgICBcCisoeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjb25zdCB0eXBlb2Yo Kihkc3QpKSAqc3JjXyA9IChzcmMpOyAgICAgICAgICAgICAgICAgXAorICAgIHR5cGVvZigqKGRz dCkpICpkc3RfID0gKGRzdCk7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZW9mKGlu ZGV4KSBpbmRleF8gPSAoaW5kZXgpOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlb2Yo bnIpIG5yXyA9IChuciksIGlfOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZm9y ICggaV8gPSAwOyBpXyA8IG5yXzsgaV8rKyApICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgZHN0X1tpX10gPSBzcmNfW2luZGV4XyArIGlfXTsgICAgICAgICAgICAgICAgICAgXAorICAg IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9 KQorCiAjZW5kaWYgLyogX19YRU5fXyAqLwogCiAjZW5kaWYgLyogWEVOX0xJQlg4Nl9QUklWQVRF X0ggKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9saWJ4ODYvY3B1aWQuaCBiL3hlbi9p bmNsdWRlL3hlbi9saWJ4ODYvY3B1aWQuaAppbmRleCA0NjBiMTAyLi5jNGM0YmQ0IDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4vbGlieDg2L2NwdWlkLmgKKysrIGIveGVuL2luY2x1ZGUveGVu L2xpYng4Ni9jcHVpZC5oCkBAIC0yNjAsNiArMjYwLDE3IEBAIGludCB4ODZfY3B1aWRfY29weV90 b19idWZmZXIoY29uc3Qgc3RydWN0IGNwdWlkX3BvbGljeSAqcCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3B1aWRfbGVhZl9idWZmZXJfdCBsZWF2ZXMsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90ICpucl9lbnRyaWVzX3ApOwogCisvKgorICogQ29weSBDUFVJ RCBkYXRhIGZyb20gYSBidWZmZXIsIGZpbGxpbmcgaW4gYSBjcHVpZF9wb2xpY3kgb2JqZWN0LiAg UGVyZm9ybXMKKyAqIGJvdWRhcnkgY2hlY2tpbmcgb2YgdGhlIGluY29tbWluZyBsZWF2ZXMgYmVm b3JlIGZpbGxpbmcgdGhlIGFwcHJvcHJpYXRlCisgKiBwb2xpY3kgdW5pb25zLCBidXQgbm8gY29u dGVudCB2YWxpZGF0aW9uIGlzIHBlcmZvcm1lZC4gIE9uIGFuIGVycm9yLCB0aGUKKyAqIG9wdGlv bmFsIGVycl8qIHBvaW50ZXJzIG1heSBoZWxwIGlkZW50aWZ5IHdoZXJlIHRoZSBpc3N1ZSBsaWVz LgorICovCitpbnQgeDg2X2NwdWlkX2NvcHlfZnJvbV9idWZmZXIoc3RydWN0IGNwdWlkX3BvbGlj eSAqcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjcHVpZF9sZWFmX2J1 ZmZlcl90IGxlYXZlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBu cl9sZWF2ZXMsIHVpbnQzMl90ICplcnJfbGVhZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCAqZXJyX3N1YmxlYWYpOworCiAjZW5kaWYgLyogIVhFTl9MSUJYODZfQ1BV SURfSCAqLwogCiAvKgotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs