[PATCH v9 09/19] xen: add a apic_enumerator for PVH
LS0tCiBzeXMvY29uZi9maWxlcy5hbWQ2NCAgICAgfCAgICAxICsKIHN5cy94ODYveGVuL3B2Y3B1
X2VudW0uYyB8ICAxMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMzcgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXMveDg2L3hlbi9wdmNwdV9lbnVtLmMKCmRpZmYgLS1naXQg
YS9zeXMvY29uZi9maWxlcy5hbWQ2NCBiL3N5cy9jb25mL2ZpbGVzLmFtZDY0CmluZGV4IDEwOWE3
OTYuLmEzNDkxZGEgMTAwNjQ0Ci0tLSBhL3N5cy9jb25mL2ZpbGVzLmFtZDY0CisrKyBiL3N5cy9j
b25mL2ZpbGVzLmFtZDY0CkBAIC01NjksMyArNTY5LDQgQEAgeDg2L3g4Ni9kZWxheS5jCQkJc3Rh
bmRhcmQKIHg4Ni94ZW4vaHZtLmMJCQlvcHRpb25hbAl4ZW5odm0KIHg4Ni94ZW4veGVuX2ludHIu
YwkJb3B0aW9uYWwJeGVuIHwgeGVuaHZtCiB4ODYveGVuL3B2LmMJCQlvcHRpb25hbAl4ZW5odm0K
K3g4Ni94ZW4vcHZjcHVfZW51bS5jCQlvcHRpb25hbAl4ZW5odm0KZGlmZiAtLWdpdCBhL3N5cy94
ODYveGVuL3B2Y3B1X2VudW0uYyBiL3N5cy94ODYveGVuL3B2Y3B1X2VudW0uYwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzg0ODg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lz
L3g4Ni94ZW4vcHZjcHVfZW51bS5jCkBAIC0wLDAgKzEsMTM2IEBACisvKi0KKyAqIENvcHlyaWdo
dCAoYykgMjAwMyBKb2huIEJhbGR3aW4gPGpoYkBGcmVlQlNELm9yZz4KKyAqIENvcHlyaWdodCAo
YykgMjAxMyBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KKyAqIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBh
dXRob3Igbm9yIHRoZSBuYW1lcyBvZiBhbnkgY28tY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29m
dHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlIDxzeXMvY2RlZnMuaD4KK19fRkJTRElEKCIkRnJlZUJTRCQiKTsKKworI2luY2x1ZGUgPHN5
cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9zeXN0bS5oPgorI2luY2x1ZGUgPHN5cy9idXMuaD4K
KyNpbmNsdWRlIDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL3NtcC5oPgorI2luY2x1ZGUg
PHN5cy9wY3B1Lmg+CisjaW5jbHVkZSA8dm0vdm0uaD4KKyNpbmNsdWRlIDx2bS9wbWFwLmg+CisK
KyNpbmNsdWRlIDxtYWNoaW5lL2ludHJfbWFjaGRlcC5oPgorI2luY2x1ZGUgPG1hY2hpbmUvYXBp
Y3Zhci5oPgorCisjaW5jbHVkZSA8bWFjaGluZS9jcHUuaD4KKyNpbmNsdWRlIDxtYWNoaW5lL3Nt
cC5oPgorCisjaW5jbHVkZSA8eGVuL3hlbi1vcy5oPgorI2luY2x1ZGUgPHhlbi9oeXBlcnZpc29y
Lmg+CisKKyNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL3ZjcHUuaD4KKworc3RhdGljIGludCB4ZW5w
dl9wcm9iZSh2b2lkKTsKK3N0YXRpYyBpbnQgeGVucHZfcHJvYmVfY3B1cyh2b2lkKTsKK3N0YXRp
YyBpbnQgeGVucHZfc2V0dXBfbG9jYWwodm9pZCk7CitzdGF0aWMgaW50IHhlbnB2X3NldHVwX2lv
KHZvaWQpOworCitzdGF0aWMgc3RydWN0IGFwaWNfZW51bWVyYXRvciB4ZW5wdl9lbnVtZXJhdG9y
ID0geworCSJYZW4gUFYiLAorCXhlbnB2X3Byb2JlLAorCXhlbnB2X3Byb2JlX2NwdXMsCisJeGVu
cHZfc2V0dXBfbG9jYWwsCisJeGVucHZfc2V0dXBfaW8KK307CisKKy8qCisgKiBUaGlzIGVudW1l
cmF0b3Igd2lsbCBvbmx5IGJlIHJlZ2lzdGVyZWQgb24gUFZICisgKi8KK3N0YXRpYyBpbnQKK3hl
bnB2X3Byb2JlKHZvaWQpCit7CisJcmV0dXJuICgtMTAwKTsKK30KKworLyoKKyAqIFRlc3QgZWFj
aCBwb3NzaWJsZSB2Q1BVIGluIG9yZGVyIHRvIGZpbmQgdGhlIG51bWJlciBvZiB2Q1BVcworICov
CitzdGF0aWMgaW50Cit4ZW5wdl9wcm9iZV9jcHVzKHZvaWQpCit7CisjaWZkZWYgU01QCisJaW50
IGksIHJldDsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhDUFU7IGkrKykgeworCQlyZXQgPSBIWVBF
UlZJU09SX3ZjcHVfb3AoVkNQVU9QX2lzX3VwLCBpLCBOVUxMKTsKKwkJaWYgKHJldCA+PSAwKQor
CQkJY3B1X2FkZCgoaSAqIDIpLCAoaSA9PSAwKSk7CisJfQorI2VuZGlmCisJcmV0dXJuICgwKTsK
K30KKworLyoKKyAqIEluaXRpYWxpemUgdGhlIHZDUFUgaWQgb2YgdGhlIEJTUAorICovCitzdGF0
aWMgaW50Cit4ZW5wdl9zZXR1cF9sb2NhbCh2b2lkKQoreworCVBDUFVfU0VUKHZjcHVfaWQsIDAp
OworCXJldHVybiAoMCk7Cit9CisKKy8qCisgKiBPbiBQVkggZ3Vlc3RzIHRoZXJlJ3Mgbm8gSU8g
QVBJQworICovCitzdGF0aWMgaW50Cit4ZW5wdl9zZXR1cF9pbyh2b2lkKQoreworCXJldHVybiAo
MCk7Cit9CisKK3N0YXRpYyB2b2lkCit4ZW5wdl9yZWdpc3Rlcih2b2lkICpkdW1teSBfX3VudXNl
ZCkKK3sKKwlpZiAoeGVuX3B2X2RvbWFpbigpKSB7CisJCWFwaWNfcmVnaXN0ZXJfZW51bWVyYXRv
cigmeGVucHZfZW51bWVyYXRvcik7CisJfQorfQorU1lTSU5JVCh4ZW5wdl9yZWdpc3RlciwgU0lf
U1VCX1RVTkFCTEVTIC0gMSwgU0lfT1JERVJfRklSU1QsIHhlbnB2X3JlZ2lzdGVyLCBOVUxMKTsK
KworLyoKKyAqIFNldHVwIHBlci1DUFUgdkNQVSBJRHMKKyAqLworc3RhdGljIHZvaWQKK3hlbnB2
X3NldF9pZHModm9pZCAqZHVtbXkpCit7CisJc3RydWN0IHBjcHUgKnBjOworCWludCBpOworCisJ
Q1BVX0ZPUkVBQ0goaSkgeworCQlwYyA9IHBjcHVfZmluZChpKTsKKwkJcGMtPnBjX3ZjcHVfaWQg
PSBpOworCX0KK30KK1NZU0lOSVQoeGVucHZfc2V0X2lkcywgU0lfU1VCX0NQVSwgU0lfT1JERVJf
TUlERExFLCB4ZW5wdl9zZXRfaWRzLCBOVUxMKTsKLS0gCjEuNy43LjUgKEFwcGxlIEdpdC0yNikK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZyZWVic2Qt
Y3VycmVudEBmcmVlYnNkLm9yZyBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmZyZWVic2Qub3Jn
L21haWxtYW4vbGlzdGluZm8vZnJlZWJzZC1jdXJyZW50ClRvIHVuc3Vic2NyaWJlLCBzZW5kIGFu
eSBtYWlsIHRvICJmcmVlYnNkLWN1cnJlbnQtdW5zdWJzY3JpYmVAZnJlZWJzZC5vcmci