From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v6 01/14] libxc: Rework extra module initialisation Date: Tue, 12 Jul 2016 15:42:38 +0100 Message-ID: <20160712144251.558-2-anthony.perard@citrix.com> References: <20160712144251.558-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160712144251.558-1-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Anthony PERARD , Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCB1c2UgeGNfZG9tX2FsbG9jX3NlZ21lbnQoKSB0byBhbGxvY2F0ZSB0aGUgbWVt b3J5IHNwYWNlIGZvciB0aGUKQUNQSSBtb2R1bGVzIGFuZCB0aGUgU01CSU9TIG1vZHVsZXMuIFRo aXMgaXMgdG8gcmVwbGFjZSB0aGUgYXJiaXRyYXJ5CnBsYWNlbWVudCBvZiAxTUIgKCsgZXh0cmEg Zm9yIE1CIGFsaWduZW1lbnQpIGFmdGVyIHRoZSBodm1sb2FkZXIgaW1hZ2UuCgpUaGlzIHBhdGNo IGNhbiBoZWxwIGlmIG9uZSBhZGQgZXh0cmEgQUNQSSB0YWJsZSBhbmQgaHZtbG9hZGVyIGNvbnRh aW4KT1ZNRiAoT1ZNRiBpcyBhIDJNQiBiaW5hcnkpLCBhcyBpbiB0aGF0IGNhc2UgdGhlIGV4dHJh IEFDUEkgdGFibGUgY291bGQKZWFzaWx5IGJlIGxvYWRlZCBwYXN0IHRoZSBhZGRyZXNzIDRNQiwg YnV0IGh2bWxvYWRlciB1c2UgYSByYW5nZSBvZgptZW1vcnkgZnJvbSA0TUIgdG8gMTBNQiB0byBw ZXJmb3JtIHRlc3RzIGFuZCBpbiB0aGUgcHJvY2VzcywgY2xlYXJzIHRoZQptZW1vcnksIGJlZm9y ZSBsb2FkaW5nIHRoZSBtb2R1bGVzLgoKU2lnbmVkLW9mZi1ieTogQW50aG9ueSBQRVJBUkQgPGFu dGhvbnkucGVyYXJkQGNpdHJpeC5jb20+CgotLS0KQ2hhbmdlcyBpbiBWNjoKLSBpbiBtb2R1bGVf aW5pdF9vbmUoKSwgY2hlY2sgdGhhdCB0aGUgbW9kdWxlIGlzIHRvIGJlIGxvYWRlZCBiZWxsb3cK ICBkb20tPm1taW9fc3RhcnQgaW5zdGVhZCBvZiBVSU5UMzJfTUFYLgoKQ2hhbmdlcyBpbiBWNToK LSByZXdyaXRlIHBhdGNoIGRlc2NyaXB0aW9uCgpDaGFuZ2VzIGluIFY0OgotIGNoZWNrIHRoYXQg Z3Vlc3RfYWRkcl9vdXQgaGF2ZSBhIHJlYXNvbmFibGUgdmFsdWUuCgpOZXcgcGF0Y2ggaW4gVjMu Ci0tLQogdG9vbHMvbGlieGMveGNfZG9tX2h2bWxvYWRlci5jIHwgMTMzICsrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDAgaW5zZXJ0aW9u cygrKSwgOTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9tX2h2 bWxvYWRlci5jIGIvdG9vbHMvbGlieGMveGNfZG9tX2h2bWxvYWRlci5jCmluZGV4IDMzMGQ1ZTgu LjgxNTBiNzQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX2RvbV9odm1sb2FkZXIuYworKysg Yi90b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVyLmMKQEAgLTEyOSw5OCArMTI5LDU0IEBAIHN0 YXRpYyBlbGZfZXJyb3JzdGF0dXMgeGNfZG9tX3BhcnNlX2h2bV9rZXJuZWwoc3RydWN0IHhjX2Rv bV9pbWFnZSAqZG9tKQogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBtb2R1bGVzX2lu aXQoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tLAotICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDY0X3QgdmVuZCwgc3RydWN0IGVsZl9iaW5hcnkgKmVsZiwKLSAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ2NF90ICptc3RhcnRfb3V0LCB1aW50NjRfdCAqbWVuZF9vdXQpCitzdGF0aWMgaW50 IG1vZHVsZV9pbml0X29uZShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgeGNfaHZtX2Zpcm13YXJlX21vZHVsZSAqbW9kdWxlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbmFtZSkKIHsKLSNkZWZpbmUgTU9EVUxFX0FM SUdOIDFVTCA8PCA3Ci0jZGVmaW5lIE1CX0FMSUdOICAgICAxVUwgPDwgMjAKLSNkZWZpbmUgTUtB TElHTih4LCBhKSAoKCh1aW50NjRfdCkoeCkgKyAoYSkgLSAxKSAmIH4odWludDY0X3QpKChhKSAt IDEpKQotICAgIHVpbnQ2NF90IHRvdGFsX2xlbiA9IDAsIG9mZnNldDEgPSAwOworICAgIHN0cnVj dCB4Y19kb21fc2VnIHNlZzsKKyAgICB2b2lkICpkZXN0OwogCi0gICAgaWYgKCBkb20tPmFjcGlf bW9kdWxlLmxlbmd0aCA9PSAwICYmIGRvbS0+c21iaW9zX21vZHVsZS5sZW5ndGggPT0gMCApCi0g ICAgICAgIHJldHVybiAwOwotCi0gICAgLyogRmluZCB0aGUgdG90YWwgbGVuZ3RoIGZvciB0aGUg ZmlybXdhcmUgbW9kdWxlcyB3aXRoIGEgcmVhc29uYWJsZSBsYXJnZQotICAgICAqIGFsaWdubWVu dCBzaXplIHRvIGFsaWduIGVhY2ggdGhlIG1vZHVsZXMuCi0gICAgICovCi0gICAgdG90YWxfbGVu ID0gTUtBTElHTihkb20tPmFjcGlfbW9kdWxlLmxlbmd0aCwgTU9EVUxFX0FMSUdOKTsKLSAgICBv ZmZzZXQxID0gdG90YWxfbGVuOwotICAgIHRvdGFsX2xlbiArPSBNS0FMSUdOKGRvbS0+c21iaW9z X21vZHVsZS5sZW5ndGgsIE1PRFVMRV9BTElHTik7Ci0KLSAgICAvKiBXYW50IHRvIHBsYWNlIHRo ZSBtb2R1bGVzIDFNYitjaGFuZ2UgYmVoaW5kIHRoZSBsb2FkZXIgaW1hZ2UuICovCi0gICAgKm1z dGFydF9vdXQgPSBNS0FMSUdOKGVsZi0+cGVuZCwgTUJfQUxJR04pICsgKE1CX0FMSUdOKTsKLSAg ICAqbWVuZF9vdXQgPSAqbXN0YXJ0X291dCArIHRvdGFsX2xlbjsKLQotICAgIGlmICggKm1lbmRf b3V0ID4gdmVuZCApCi0gICAgICAgIHJldHVybiAtMTsKLQotICAgIGlmICggZG9tLT5hY3BpX21v ZHVsZS5sZW5ndGggIT0gMCApCi0gICAgICAgIGRvbS0+YWNwaV9tb2R1bGUuZ3Vlc3RfYWRkcl9v dXQgPSAqbXN0YXJ0X291dDsKLSAgICBpZiAoIGRvbS0+c21iaW9zX21vZHVsZS5sZW5ndGggIT0g MCApCi0gICAgICAgIGRvbS0+c21iaW9zX21vZHVsZS5ndWVzdF9hZGRyX291dCA9ICptc3RhcnRf b3V0ICsgb2Zmc2V0MTsKKyAgICBpZiAoIG1vZHVsZS0+bGVuZ3RoICkKKyAgICB7CisgICAgICAg IGlmICggeGNfZG9tX2FsbG9jX3NlZ21lbnQoZG9tLCAmc2VnLCBuYW1lLCAwLCBtb2R1bGUtPmxl bmd0aCkgKQorICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgIGRlc3QgPSB4Y19kb21fc2Vn X3RvX3B0cihkb20sICZzZWcpOworICAgICAgICBpZiAoIGRlc3QgPT0gTlVMTCApCisgICAgICAg IHsKKyAgICAgICAgICAgIERPTVBSSU5URigiJXM6IHhjX2RvbV9zZWdfdG9fcHRyKGRvbSwgJnNl ZykgPT4gTlVMTCIsCisgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAg ICAgICAgIGdvdG8gZXJyOworICAgICAgICB9CisgICAgICAgIG1lbWNweShkZXN0LCBtb2R1bGUt PmRhdGEsIG1vZHVsZS0+bGVuZ3RoKTsKKyAgICAgICAgbW9kdWxlLT5ndWVzdF9hZGRyX291dCA9 IHNlZy52c3RhcnQ7CisKKyAgICAgICAgYXNzZXJ0KGRvbS0+bW1pb19zdGFydCA+IDAgJiYgZG9t LT5tbWlvX3N0YXJ0IDwgVUlOVDMyX01BWCk7CisgICAgICAgIGlmICggbW9kdWxlLT5ndWVzdF9h ZGRyX291dCA+IGRvbS0+bW1pb19zdGFydCB8fAorICAgICAgICAgICAgIG1vZHVsZS0+Z3Vlc3Rf YWRkcl9vdXQgKyBtb2R1bGUtPmxlbmd0aCA+IGRvbS0+bW1pb19zdGFydCApCisgICAgICAgIHsK KyAgICAgICAgICAgIERPTVBSSU5URigiJXM6IE1vZHVsZSAlcyB3b3VsZCBiZSBsb2FkZWQgYWJy b3ZlIDRHQiIsCisgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBuYW1lKTsKKyAg ICAgICAgICAgIGdvdG8gZXJyOworICAgICAgICB9CisgICAgfQogCiAgICAgcmV0dXJuIDA7Citl cnI6CisgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgaW50IGxvYWRtb2R1bGVzKHN0cnVjdCB4 Y19kb21faW1hZ2UgKmRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbXN0YXJ0 LCB1aW50NjRfdCBtZW5kLAotICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCkK K3N0YXRpYyBpbnQgbW9kdWxlc19pbml0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIHsKLSAg ICBwcml2Y21kX21tYXBfZW50cnlfdCAqZW50cmllcyA9IE5VTEw7Ci0gICAgdW5zaWduZWQgbG9u ZyBwZm5fc3RhcnQ7Ci0gICAgdW5zaWduZWQgbG9uZyBwZm5fZW5kOwotICAgIHNpemVfdCBwYWdl czsKLSAgICB1aW50MzJfdCBpOwotICAgIHVpbnQ4X3QgKmRlc3Q7Ci0gICAgaW50IHJjID0gLTE7 Ci0gICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBkb20tPnhjaDsKLQotICAgIGlmICggbXN0YXJ0ID09 IDAgfHwgbWVuZCA9PSAwICkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBwZm5fc3RhcnQgPSAo dW5zaWduZWQgbG9uZykobXN0YXJ0ID4+IFBBR0VfU0hJRlQpOwotICAgIHBmbl9lbmQgPSAodW5z aWduZWQgbG9uZykoKG1lbmQgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUKTsKLSAgICBw YWdlcyA9IHBmbl9lbmQgLSBwZm5fc3RhcnQ7Ci0KLSAgICAvKiBNYXAgYWRkcmVzcyBzcGFjZSBm b3IgbW9kdWxlIGxpc3QuICovCi0gICAgZW50cmllcyA9IGNhbGxvYyhwYWdlcywgc2l6ZW9mKHBy aXZjbWRfbW1hcF9lbnRyeV90KSk7Ci0gICAgaWYgKCBlbnRyaWVzID09IE5VTEwgKQotICAgICAg ICBnb3RvIGVycm9yX291dDsKLQotICAgIGZvciAoIGkgPSAwOyBpIDwgcGFnZXM7IGkrKyApCi0g ICAgICAgIGVudHJpZXNbaV0ubWZuID0gKG1zdGFydCA+PiBQQUdFX1NISUZUKSArIGk7Ci0KLSAg ICBkZXN0ID0geGNfbWFwX2ZvcmVpZ25fcmFuZ2VzKAotICAgICAgICB4Y2gsIGRvbWlkLCBwYWdl cyA8PCBQQUdFX1NISUZULCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCAxIDw8IFBBR0VfU0hJRlQs Ci0gICAgICAgIGVudHJpZXMsIHBhZ2VzKTsKLSAgICBpZiAoIGRlc3QgPT0gTlVMTCApCi0gICAg ICAgIGdvdG8gZXJyb3Jfb3V0OwotCi0gICAgLyogWmVybyB0aGUgcmFuZ2Ugc28gcGFkZGluZyBp cyBjbGVhciBiZXR3ZWVuIG1vZHVsZXMgKi8KLSAgICBtZW1zZXQoZGVzdCwgMCwgcGFnZXMgPDwg UEFHRV9TSElGVCk7Ci0KLSAgICAvKiBMb2FkIG1vZHVsZXMgaW50byByYW5nZSAqLwotICAgIGlm ICggZG9tLT5hY3BpX21vZHVsZS5sZW5ndGggIT0gMCApCi0gICAgewotICAgICAgICBtZW1jcHko ZGVzdCwKLSAgICAgICAgICAgICAgIGRvbS0+YWNwaV9tb2R1bGUuZGF0YSwKLSAgICAgICAgICAg ICAgIGRvbS0+YWNwaV9tb2R1bGUubGVuZ3RoKTsKLSAgICB9Ci0gICAgaWYgKCBkb20tPnNtYmlv c19tb2R1bGUubGVuZ3RoICE9IDAgKQotICAgIHsKLSAgICAgICAgbWVtY3B5KGRlc3QgKyAoZG9t LT5zbWJpb3NfbW9kdWxlLmd1ZXN0X2FkZHJfb3V0IC0gbXN0YXJ0KSwKLSAgICAgICAgICAgICAg IGRvbS0+c21iaW9zX21vZHVsZS5kYXRhLAotICAgICAgICAgICAgICAgZG9tLT5zbWJpb3NfbW9k dWxlLmxlbmd0aCk7Ci0gICAgfQotCi0gICAgbXVubWFwKGRlc3QsIHBhZ2VzIDw8IFBBR0VfU0hJ RlQpOwotICAgIHJjID0gMDsKKyAgICBpbnQgcmM7CiAKLSBlcnJvcl9vdXQ6Ci0gICAgZnJlZShl bnRyaWVzKTsKKyAgICByYyA9IG1vZHVsZV9pbml0X29uZShkb20sICZkb20tPmFjcGlfbW9kdWxl LCAiQUNQSSBtb2R1bGUiKTsKKyAgICBpZiAoIHJjICkgZ290byBlcnI7CisgICAgcmMgPSBtb2R1 bGVfaW5pdF9vbmUoZG9tLCAmZG9tLT5zbWJpb3NfbW9kdWxlLCAiU01CSU9TIG1vZHVsZSIpOwor ICAgIGlmICggcmMgKSBnb3RvIGVycjsKIAotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gMDsK K2VycjoKKyAgICByZXR1cm4gLTE7CiB9CiAKIHN0YXRpYyBlbGZfZXJyb3JzdGF0dXMgeGNfZG9t X2xvYWRfaHZtX2tlcm5lbChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCkBAIC0yMjksNyArMTg1 LDYgQEAgc3RhdGljIGVsZl9lcnJvcnN0YXR1cyB4Y19kb21fbG9hZF9odm1fa2VybmVsKHN0cnVj dCB4Y19kb21faW1hZ2UgKmRvbSkKICAgICBwcml2Y21kX21tYXBfZW50cnlfdCAqZW50cmllcyA9 IE5VTEw7CiAgICAgc2l6ZV90IHBhZ2VzID0gKGVsZi0+cGVuZCAtIGVsZi0+cHN0YXJ0ICsgUEFH RV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKICAgICBlbGZfZXJyb3JzdGF0dXMgcmM7Ci0gICAg dWludDY0X3QgbV9zdGFydCA9IDAsIG1fZW5kID0gMDsKICAgICBpbnQgaTsKIAogICAgIC8qIE1h cCBhZGRyZXNzIHNwYWNlIGZvciBpbml0aWFsIGVsZiBpbWFnZS4gKi8KQEAgLTI2MiwxNSArMjE3 LDcgQEAgc3RhdGljIGVsZl9lcnJvcnN0YXR1cyB4Y19kb21fbG9hZF9odm1fa2VybmVsKHN0cnVj dCB4Y19kb21faW1hZ2UgKmRvbSkKIAogICAgIG11bm1hcChlbGYtPmRlc3RfYmFzZSwgZWxmLT5k ZXN0X3NpemUpOwogCi0gICAgcmMgPSBtb2R1bGVzX2luaXQoZG9tLCBkb20tPnRvdGFsX3BhZ2Vz IDw8IFBBR0VfU0hJRlQsIGVsZiwgJm1fc3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgJm1f ZW5kKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgIHsKLSAgICAgICAgRE9NUFJJTlRGKCIlczog aW5zdWZmaWNpZW50IHNwYWNlIHRvIGxvYWQgbW9kdWxlcy4iLCBfX2Z1bmNfXyk7Ci0gICAgICAg IGdvdG8gZXJyb3I7Ci0gICAgfQotCi0gICAgcmMgPSBsb2FkbW9kdWxlcyhkb20sIG1fc3RhcnQs IG1fZW5kLCBkb20tPmd1ZXN0X2RvbWlkKTsKKyAgICByYyA9IG1vZHVsZXNfaW5pdChkb20pOwog ICAgIGlmICggcmMgIT0gMCApCiAgICAgewogICAgICAgICBET01QUklOVEYoIiVzOiB1bmFibGUg dG8gbG9hZCBtb2R1bGVzLiIsIF9fZnVuY19fKTsKLS0gCkFudGhvbnkgUEVSQVJECgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==