From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v5 01/14] libxc: Rework extra module initialisation Date: Wed, 22 Jun 2016 18:15:32 +0100 Message-ID: <20160622171545.5304-2-anthony.perard@citrix.com> References: <20160622171545.5304-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: <20160622171545.5304-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+Ci0tLQpDaGFuZ2VzIGluIFY1OgotIHJld3JpdGUgcGF0 Y2ggZGVzY3JpcHRpb24KCkNoYW5nZXMgaW4gVjQ6Ci0gY2hlY2sgdGhhdCBndWVzdF9hZGRyX291 dCBoYXZlIGEgcmVhc29uYWJsZSB2YWx1ZS4KCk5ldyBwYXRjaCBpbiBWMy4KLS0tCiB0b29scy9s aWJ4Yy94Y19kb21faHZtbG9hZGVyLmMgfCAxMzEgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCA5MyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVyLmMgYi90 b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVyLmMKaW5kZXggMzMwZDVlOC4uZGE4Yjk5NSAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tX2h2bWxvYWRlci5jCisrKyBiL3Rvb2xzL2xpYnhj L3hjX2RvbV9odm1sb2FkZXIuYwpAQCAtMTI5LDk4ICsxMjksNTIgQEAgc3RhdGljIGVsZl9lcnJv cnN0YXR1cyB4Y19kb21fcGFyc2VfaHZtX2tlcm5lbChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20p CiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IG1vZHVsZXNfaW5pdChzdHJ1Y3QgeGNf ZG9tX2ltYWdlICpkb20sCi0gICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB2ZW5kLCBz dHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qg Km1zdGFydF9vdXQsIHVpbnQ2NF90ICptZW5kX291dCkKK3N0YXRpYyBpbnQgbW9kdWxlX2luaXRf b25lKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB4Y19odm1fZmlybXdhcmVfbW9kdWxlICptb2R1bGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBjaGFyICpuYW1lKQogewotI2RlZmluZSBNT0RVTEVfQUxJR04gMVVMIDw8IDcK LSNkZWZpbmUgTUJfQUxJR04gICAgIDFVTCA8PCAyMAotI2RlZmluZSBNS0FMSUdOKHgsIGEpICgo KHVpbnQ2NF90KSh4KSArIChhKSAtIDEpICYgfih1aW50NjRfdCkoKGEpIC0gMSkpCi0gICAgdWlu dDY0X3QgdG90YWxfbGVuID0gMCwgb2Zmc2V0MSA9IDA7CisgICAgc3RydWN0IHhjX2RvbV9zZWcg c2VnOworICAgIHZvaWQgKmRlc3Q7CiAKLSAgICBpZiAoIGRvbS0+YWNwaV9tb2R1bGUubGVuZ3Ro ID09IDAgJiYgZG9tLT5zbWJpb3NfbW9kdWxlLmxlbmd0aCA9PSAwICkKLSAgICAgICAgcmV0dXJu IDA7Ci0KLSAgICAvKiBGaW5kIHRoZSB0b3RhbCBsZW5ndGggZm9yIHRoZSBmaXJtd2FyZSBtb2R1 bGVzIHdpdGggYSByZWFzb25hYmxlIGxhcmdlCi0gICAgICogYWxpZ25tZW50IHNpemUgdG8gYWxp Z24gZWFjaCB0aGUgbW9kdWxlcy4KLSAgICAgKi8KLSAgICB0b3RhbF9sZW4gPSBNS0FMSUdOKGRv bS0+YWNwaV9tb2R1bGUubGVuZ3RoLCBNT0RVTEVfQUxJR04pOwotICAgIG9mZnNldDEgPSB0b3Rh bF9sZW47Ci0gICAgdG90YWxfbGVuICs9IE1LQUxJR04oZG9tLT5zbWJpb3NfbW9kdWxlLmxlbmd0 aCwgTU9EVUxFX0FMSUdOKTsKLQotICAgIC8qIFdhbnQgdG8gcGxhY2UgdGhlIG1vZHVsZXMgMU1i K2NoYW5nZSBiZWhpbmQgdGhlIGxvYWRlciBpbWFnZS4gKi8KLSAgICAqbXN0YXJ0X291dCA9IE1L QUxJR04oZWxmLT5wZW5kLCBNQl9BTElHTikgKyAoTUJfQUxJR04pOwotICAgICptZW5kX291dCA9 ICptc3RhcnRfb3V0ICsgdG90YWxfbGVuOwotCi0gICAgaWYgKCAqbWVuZF9vdXQgPiB2ZW5kICkK LSAgICAgICAgcmV0dXJuIC0xOwotCi0gICAgaWYgKCBkb20tPmFjcGlfbW9kdWxlLmxlbmd0aCAh PSAwICkKLSAgICAgICAgZG9tLT5hY3BpX21vZHVsZS5ndWVzdF9hZGRyX291dCA9ICptc3RhcnRf b3V0OwotICAgIGlmICggZG9tLT5zbWJpb3NfbW9kdWxlLmxlbmd0aCAhPSAwICkKLSAgICAgICAg ZG9tLT5zbWJpb3NfbW9kdWxlLmd1ZXN0X2FkZHJfb3V0ID0gKm1zdGFydF9vdXQgKyBvZmZzZXQx OworICAgIGlmICggbW9kdWxlLT5sZW5ndGggKQorICAgIHsKKyAgICAgICAgaWYgKCB4Y19kb21f YWxsb2Nfc2VnbWVudChkb20sICZzZWcsIG5hbWUsIDAsIG1vZHVsZS0+bGVuZ3RoKSApCisgICAg ICAgICAgICBnb3RvIGVycjsKKyAgICAgICAgZGVzdCA9IHhjX2RvbV9zZWdfdG9fcHRyKGRvbSwg JnNlZyk7CisgICAgICAgIGlmICggZGVzdCA9PSBOVUxMICkKKyAgICAgICAgeworICAgICAgICAg ICAgRE9NUFJJTlRGKCIlczogeGNfZG9tX3NlZ190b19wdHIoZG9tLCAmc2VnKSA9PiBOVUxMIiwK KyAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgZ290byBl cnI7CisgICAgICAgIH0KKyAgICAgICAgbWVtY3B5KGRlc3QsIG1vZHVsZS0+ZGF0YSwgbW9kdWxl LT5sZW5ndGgpOworICAgICAgICBtb2R1bGUtPmd1ZXN0X2FkZHJfb3V0ID0gc2VnLnZzdGFydDsK KyAgICAgICAgaWYgKCBtb2R1bGUtPmd1ZXN0X2FkZHJfb3V0ID4gVUlOVDMyX01BWCB8fAorICAg ICAgICAgICAgIG1vZHVsZS0+Z3Vlc3RfYWRkcl9vdXQgKyBtb2R1bGUtPmxlbmd0aCA+IFVJTlQz Ml9NQVggKQorICAgICAgICB7CisgICAgICAgICAgICBET01QUklOVEYoIiVzOiBNb2R1bGUgJXMg d291bGQgYmUgbG9hZGVkIGFicm92ZSA0R0IiLAorICAgICAgICAgICAgICAgICAgICAgIF9fRlVO Q1RJT05fXywgbmFtZSk7CisgICAgICAgICAgICBnb3RvIGVycjsKKyAgICAgICAgfQorICAgIH0K IAogICAgIHJldHVybiAwOworZXJyOgorICAgIHJldHVybiAtMTsKIH0KIAotc3RhdGljIGludCBs b2FkbW9kdWxlcyhzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20sCi0gICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ2NF90IG1zdGFydCwgdWludDY0X3QgbWVuZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgZG9taWQpCitzdGF0aWMgaW50IG1vZHVsZXNfaW5pdChzdHJ1Y3QgeGNfZG9t X2ltYWdlICpkb20pCiB7Ci0gICAgcHJpdmNtZF9tbWFwX2VudHJ5X3QgKmVudHJpZXMgPSBOVUxM OwotICAgIHVuc2lnbmVkIGxvbmcgcGZuX3N0YXJ0OwotICAgIHVuc2lnbmVkIGxvbmcgcGZuX2Vu ZDsKLSAgICBzaXplX3QgcGFnZXM7Ci0gICAgdWludDMyX3QgaTsKLSAgICB1aW50OF90ICpkZXN0 OwotICAgIGludCByYyA9IC0xOwotICAgIHhjX2ludGVyZmFjZSAqeGNoID0gZG9tLT54Y2g7Ci0K LSAgICBpZiAoIG1zdGFydCA9PSAwIHx8IG1lbmQgPT0gMCApCi0gICAgICAgIHJldHVybiAwOwot Ci0gICAgcGZuX3N0YXJ0ID0gKHVuc2lnbmVkIGxvbmcpKG1zdGFydCA+PiBQQUdFX1NISUZUKTsK LSAgICBwZm5fZW5kID0gKHVuc2lnbmVkIGxvbmcpKChtZW5kICsgUEFHRV9TSVpFIC0gMSkgPj4g UEFHRV9TSElGVCk7Ci0gICAgcGFnZXMgPSBwZm5fZW5kIC0gcGZuX3N0YXJ0OwotCi0gICAgLyog TWFwIGFkZHJlc3Mgc3BhY2UgZm9yIG1vZHVsZSBsaXN0LiAqLwotICAgIGVudHJpZXMgPSBjYWxs b2MocGFnZXMsIHNpemVvZihwcml2Y21kX21tYXBfZW50cnlfdCkpOwotICAgIGlmICggZW50cmll cyA9PSBOVUxMICkKLSAgICAgICAgZ290byBlcnJvcl9vdXQ7Ci0KLSAgICBmb3IgKCBpID0gMDsg aSA8IHBhZ2VzOyBpKysgKQotICAgICAgICBlbnRyaWVzW2ldLm1mbiA9IChtc3RhcnQgPj4gUEFH RV9TSElGVCkgKyBpOwotCi0gICAgZGVzdCA9IHhjX21hcF9mb3JlaWduX3JhbmdlcygKLSAgICAg ICAgeGNoLCBkb21pZCwgcGFnZXMgPDwgUEFHRV9TSElGVCwgUFJPVF9SRUFEIHwgUFJPVF9XUklU RSwgMSA8PCBQQUdFX1NISUZULAotICAgICAgICBlbnRyaWVzLCBwYWdlcyk7Ci0gICAgaWYgKCBk ZXN0ID09IE5VTEwgKQotICAgICAgICBnb3RvIGVycm9yX291dDsKLQotICAgIC8qIFplcm8gdGhl IHJhbmdlIHNvIHBhZGRpbmcgaXMgY2xlYXIgYmV0d2VlbiBtb2R1bGVzICovCi0gICAgbWVtc2V0 KGRlc3QsIDAsIHBhZ2VzIDw8IFBBR0VfU0hJRlQpOwotCi0gICAgLyogTG9hZCBtb2R1bGVzIGlu dG8gcmFuZ2UgKi8KLSAgICBpZiAoIGRvbS0+YWNwaV9tb2R1bGUubGVuZ3RoICE9IDAgKQotICAg IHsKLSAgICAgICAgbWVtY3B5KGRlc3QsCi0gICAgICAgICAgICAgICBkb20tPmFjcGlfbW9kdWxl LmRhdGEsCi0gICAgICAgICAgICAgICBkb20tPmFjcGlfbW9kdWxlLmxlbmd0aCk7Ci0gICAgfQot ICAgIGlmICggZG9tLT5zbWJpb3NfbW9kdWxlLmxlbmd0aCAhPSAwICkKLSAgICB7Ci0gICAgICAg IG1lbWNweShkZXN0ICsgKGRvbS0+c21iaW9zX21vZHVsZS5ndWVzdF9hZGRyX291dCAtIG1zdGFy dCksCi0gICAgICAgICAgICAgICBkb20tPnNtYmlvc19tb2R1bGUuZGF0YSwKLSAgICAgICAgICAg ICAgIGRvbS0+c21iaW9zX21vZHVsZS5sZW5ndGgpOwotICAgIH0KLQotICAgIG11bm1hcChkZXN0 LCBwYWdlcyA8PCBQQUdFX1NISUZUKTsKLSAgICByYyA9IDA7CisgICAgaW50IHJjOwogCi0gZXJy b3Jfb3V0OgotICAgIGZyZWUoZW50cmllcyk7CisgICAgcmMgPSBtb2R1bGVfaW5pdF9vbmUoZG9t LCAmZG9tLT5hY3BpX21vZHVsZSwgIkFDUEkgbW9kdWxlIik7CisgICAgaWYgKCByYyApIGdvdG8g ZXJyOworICAgIHJjID0gbW9kdWxlX2luaXRfb25lKGRvbSwgJmRvbS0+c21iaW9zX21vZHVsZSwg IlNNQklPUyBtb2R1bGUiKTsKKyAgICBpZiAoIHJjICkgZ290byBlcnI7CiAKLSAgICByZXR1cm4g cmM7CisgICAgcmV0dXJuIDA7CitlcnI6CisgICAgcmV0dXJuIC0xOwogfQogCiBzdGF0aWMgZWxm X2Vycm9yc3RhdHVzIHhjX2RvbV9sb2FkX2h2bV9rZXJuZWwoc3RydWN0IHhjX2RvbV9pbWFnZSAq ZG9tKQpAQCAtMjI5LDcgKzE4Myw2IEBAIHN0YXRpYyBlbGZfZXJyb3JzdGF0dXMgeGNfZG9tX2xv YWRfaHZtX2tlcm5lbChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAgICAgcHJpdmNtZF9tbWFw X2VudHJ5X3QgKmVudHJpZXMgPSBOVUxMOwogICAgIHNpemVfdCBwYWdlcyA9IChlbGYtPnBlbmQg LSBlbGYtPnBzdGFydCArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7CiAgICAgZWxmX2Vy cm9yc3RhdHVzIHJjOwotICAgIHVpbnQ2NF90IG1fc3RhcnQgPSAwLCBtX2VuZCA9IDA7CiAgICAg aW50IGk7CiAKICAgICAvKiBNYXAgYWRkcmVzcyBzcGFjZSBmb3IgaW5pdGlhbCBlbGYgaW1hZ2Uu ICovCkBAIC0yNjIsMTUgKzIxNSw3IEBAIHN0YXRpYyBlbGZfZXJyb3JzdGF0dXMgeGNfZG9tX2xv YWRfaHZtX2tlcm5lbChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAKICAgICBtdW5tYXAoZWxm LT5kZXN0X2Jhc2UsIGVsZi0+ZGVzdF9zaXplKTsKIAotICAgIHJjID0gbW9kdWxlc19pbml0KGRv bSwgZG9tLT50b3RhbF9wYWdlcyA8PCBQQUdFX1NISUZULCBlbGYsICZtX3N0YXJ0LAotICAgICAg ICAgICAgICAgICAgICAgICZtX2VuZCk7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICB7Ci0gICAg ICAgIERPTVBSSU5URigiJXM6IGluc3VmZmljaWVudCBzcGFjZSB0byBsb2FkIG1vZHVsZXMuIiwg X19mdW5jX18pOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIHJjID0gbG9hZG1v ZHVsZXMoZG9tLCBtX3N0YXJ0LCBtX2VuZCwgZG9tLT5ndWVzdF9kb21pZCk7CisgICAgcmMgPSBt b2R1bGVzX2luaXQoZG9tKTsKICAgICBpZiAoIHJjICE9IDAgKQogICAgIHsKICAgICAgICAgRE9N UFJJTlRGKCIlczogdW5hYmxlIHRvIGxvYWQgbW9kdWxlcy4iLCBfX2Z1bmNfXyk7Ci0tIApBbnRo b255IFBFUkFSRAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==