From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v4 01/14] libxc: Rework extra module initialisation Date: Mon, 14 Mar 2016 17:55:36 +0000 Message-ID: <1457978150-27201-2-git-send-email-anthony.perard@citrix.com> References: <1457978150-27201-1-git-send-email-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1457978150-27201-1-git-send-email-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 , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCB1c2UgeGNfZG9tX2FsbG9jX3NlZ21lbnQoKSB0byBhbGxvY2F0ZSB0aGUgbWVt b3J5IHNwYWNlIGZvciB0aGUKQUNQSSBtb2R1bGVzIGFuZCB0aGUgU01CSU9TIG1vZHVsZXMuIFRo aXMgaXMgdG8gcmVwbGFjZSB0aGUgYXJiaXRyYXJ5CnBsYWNlbWVudCBvZiAxTUIgYWZ0ZXIgdGhl IGh2bWxvYWRlciBpbWFnZS4KCkluIGxhdGVyIHBhdGNoZXMsIHdoaWxlIHRyeWluZyB0byBsb2Fk IGEgZmlybXdhcmUgc3VjaCBhcyBPVk1GLCB0aGUgbGF0ZXIKY291bGQgZWFzaWx5IGJlIGxvYWRl ZCBwYXN0IHRoZSBhZGRyZXNzIDRNQiAoT1ZNRiBpcyBhIDJNQiBiaW5hcnkpLCBidXQKaHZtbG9h ZGVyIHVzZSBhIHJhbmdlIG9mIG1lbW9yeSBmcm9tIDRNQiB0byA4TUIgdG8gcGVyZm9ybSB0ZXN0 cyBhbmQgaW4gdGhlCnByb2Nlc3MsIGNsZWFyIHRoZSBtZW1vcnksIGJlZm9yZSBsb2FkaW5nIHRo ZSBtb2R1bGVzLgoKU2lnbmVkLW9mZi1ieTogQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJk QGNpdHJpeC5jb20+Ci0tLQpDaGFuZ2VzIGluIFY0OgotIGNoZWNrIHRoYXQgZ3Vlc3RfYWRkcl9v dXQgaGF2ZSBhIHJlYXNvbmFibGUgdmFsdWUuCgpOZXcgcGF0Y2ggaW4gVjMuCi0tLQogdG9vbHMv bGlieGMveGNfZG9tX2h2bWxvYWRlci5jIHwgMTMxICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgOTMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9tX2h2bWxvYWRlci5jIGIv dG9vbHMvbGlieGMveGNfZG9tX2h2bWxvYWRlci5jCmluZGV4IDMzMGQ1ZTguLjdjZjU4NTQgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX2RvbV9odm1sb2FkZXIuYworKysgYi90b29scy9saWJ4 Yy94Y19kb21faHZtbG9hZGVyLmMKQEAgLTEyOSw5OCArMTI5LDUyIEBAIHN0YXRpYyBlbGZfZXJy b3JzdGF0dXMgeGNfZG9tX3BhcnNlX2h2bV9rZXJuZWwoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9t KQogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBtb2R1bGVzX2luaXQoc3RydWN0IHhj X2RvbV9pbWFnZSAqZG9tLAotICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdmVuZCwg c3RydWN0IGVsZl9iaW5hcnkgKmVsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90 ICptc3RhcnRfb3V0LCB1aW50NjRfdCAqbWVuZF9vdXQpCitzdGF0aWMgaW50IG1vZHVsZV9pbml0 X29uZShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgeGNfaHZtX2Zpcm13YXJlX21vZHVsZSAqbW9kdWxlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2hhciAqbmFtZSkKIHsKLSNkZWZpbmUgTU9EVUxFX0FMSUdOIDFVTCA8PCA3 Ci0jZGVmaW5lIE1CX0FMSUdOICAgICAxVUwgPDwgMjAKLSNkZWZpbmUgTUtBTElHTih4LCBhKSAo KCh1aW50NjRfdCkoeCkgKyAoYSkgLSAxKSAmIH4odWludDY0X3QpKChhKSAtIDEpKQotICAgIHVp bnQ2NF90IHRvdGFsX2xlbiA9IDAsIG9mZnNldDEgPSAwOworICAgIHN0cnVjdCB4Y19kb21fc2Vn IHNlZzsKKyAgICB2b2lkICpkZXN0OwogCi0gICAgaWYgKCBkb20tPmFjcGlfbW9kdWxlLmxlbmd0 aCA9PSAwICYmIGRvbS0+c21iaW9zX21vZHVsZS5sZW5ndGggPT0gMCApCi0gICAgICAgIHJldHVy biAwOwotCi0gICAgLyogRmluZCB0aGUgdG90YWwgbGVuZ3RoIGZvciB0aGUgZmlybXdhcmUgbW9k dWxlcyB3aXRoIGEgcmVhc29uYWJsZSBsYXJnZQotICAgICAqIGFsaWdubWVudCBzaXplIHRvIGFs aWduIGVhY2ggdGhlIG1vZHVsZXMuCi0gICAgICovCi0gICAgdG90YWxfbGVuID0gTUtBTElHTihk b20tPmFjcGlfbW9kdWxlLmxlbmd0aCwgTU9EVUxFX0FMSUdOKTsKLSAgICBvZmZzZXQxID0gdG90 YWxfbGVuOwotICAgIHRvdGFsX2xlbiArPSBNS0FMSUdOKGRvbS0+c21iaW9zX21vZHVsZS5sZW5n dGgsIE1PRFVMRV9BTElHTik7Ci0KLSAgICAvKiBXYW50IHRvIHBsYWNlIHRoZSBtb2R1bGVzIDFN YitjaGFuZ2UgYmVoaW5kIHRoZSBsb2FkZXIgaW1hZ2UuICovCi0gICAgKm1zdGFydF9vdXQgPSBN S0FMSUdOKGVsZi0+cGVuZCwgTUJfQUxJR04pICsgKE1CX0FMSUdOKTsKLSAgICAqbWVuZF9vdXQg PSAqbXN0YXJ0X291dCArIHRvdGFsX2xlbjsKLQotICAgIGlmICggKm1lbmRfb3V0ID4gdmVuZCAp Ci0gICAgICAgIHJldHVybiAtMTsKLQotICAgIGlmICggZG9tLT5hY3BpX21vZHVsZS5sZW5ndGgg IT0gMCApCi0gICAgICAgIGRvbS0+YWNwaV9tb2R1bGUuZ3Vlc3RfYWRkcl9vdXQgPSAqbXN0YXJ0 X291dDsKLSAgICBpZiAoIGRvbS0+c21iaW9zX21vZHVsZS5sZW5ndGggIT0gMCApCi0gICAgICAg IGRvbS0+c21iaW9zX21vZHVsZS5ndWVzdF9hZGRyX291dCA9ICptc3RhcnRfb3V0ICsgb2Zmc2V0 MTsKKyAgICBpZiAoIG1vZHVsZS0+bGVuZ3RoICkKKyAgICB7CisgICAgICAgIGlmICggeGNfZG9t X2FsbG9jX3NlZ21lbnQoZG9tLCAmc2VnLCBuYW1lLCAwLCBtb2R1bGUtPmxlbmd0aCkgKQorICAg ICAgICAgICAgZ290byBlcnI7CisgICAgICAgIGRlc3QgPSB4Y19kb21fc2VnX3RvX3B0cihkb20s ICZzZWcpOworICAgICAgICBpZiAoIGRlc3QgPT0gTlVMTCApCisgICAgICAgIHsKKyAgICAgICAg ICAgIERPTVBSSU5URigiJXM6IHhjX2RvbV9zZWdfdG9fcHRyKGRvbSwgJnNlZykgPT4gTlVMTCIs CisgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIGdvdG8g ZXJyOworICAgICAgICB9CisgICAgICAgIG1lbWNweShkZXN0LCBtb2R1bGUtPmRhdGEsIG1vZHVs ZS0+bGVuZ3RoKTsKKyAgICAgICAgbW9kdWxlLT5ndWVzdF9hZGRyX291dCA9IHNlZy52c3RhcnQ7 CisgICAgICAgIGlmICggbW9kdWxlLT5ndWVzdF9hZGRyX291dCA+IFVJTlQzMl9NQVggfHwKKyAg ICAgICAgICAgICBtb2R1bGUtPmd1ZXN0X2FkZHJfb3V0ICsgbW9kdWxlLT5sZW5ndGggPiBVSU5U MzJfTUFYICkKKyAgICAgICAgeworICAgICAgICAgICAgRE9NUFJJTlRGKCIlczogTW9kdWxlICVz IHdvdWxkIGJlIGxvYWRlZCBhYnJvdmUgNEdCIiwKKyAgICAgICAgICAgICAgICAgICAgICBfX0ZV TkNUSU9OX18sIG5hbWUpOworICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgIH0KKyAgICB9 CiAKICAgICByZXR1cm4gMDsKK2VycjoKKyAgICByZXR1cm4gLTE7CiB9CiAKLXN0YXRpYyBpbnQg bG9hZG1vZHVsZXMoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tLAotICAgICAgICAgICAgICAgICAg ICAgICB1aW50NjRfdCBtc3RhcnQsIHVpbnQ2NF90IG1lbmQsCi0gICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IGRvbWlkKQorc3RhdGljIGludCBtb2R1bGVzX2luaXQoc3RydWN0IHhjX2Rv bV9pbWFnZSAqZG9tKQogewotICAgIHByaXZjbWRfbW1hcF9lbnRyeV90ICplbnRyaWVzID0gTlVM TDsKLSAgICB1bnNpZ25lZCBsb25nIHBmbl9zdGFydDsKLSAgICB1bnNpZ25lZCBsb25nIHBmbl9l bmQ7Ci0gICAgc2l6ZV90IHBhZ2VzOwotICAgIHVpbnQzMl90IGk7Ci0gICAgdWludDhfdCAqZGVz dDsKLSAgICBpbnQgcmMgPSAtMTsKLSAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGRvbS0+eGNoOwot Ci0gICAgaWYgKCBtc3RhcnQgPT0gMCB8fCBtZW5kID09IDAgKQotICAgICAgICByZXR1cm4gMDsK LQotICAgIHBmbl9zdGFydCA9ICh1bnNpZ25lZCBsb25nKShtc3RhcnQgPj4gUEFHRV9TSElGVCk7 Ci0gICAgcGZuX2VuZCA9ICh1bnNpZ25lZCBsb25nKSgobWVuZCArIFBBR0VfU0laRSAtIDEpID4+ IFBBR0VfU0hJRlQpOwotICAgIHBhZ2VzID0gcGZuX2VuZCAtIHBmbl9zdGFydDsKLQotICAgIC8q IE1hcCBhZGRyZXNzIHNwYWNlIGZvciBtb2R1bGUgbGlzdC4gKi8KLSAgICBlbnRyaWVzID0gY2Fs bG9jKHBhZ2VzLCBzaXplb2YocHJpdmNtZF9tbWFwX2VudHJ5X3QpKTsKLSAgICBpZiAoIGVudHJp ZXMgPT0gTlVMTCApCi0gICAgICAgIGdvdG8gZXJyb3Jfb3V0OwotCi0gICAgZm9yICggaSA9IDA7 IGkgPCBwYWdlczsgaSsrICkKLSAgICAgICAgZW50cmllc1tpXS5tZm4gPSAobXN0YXJ0ID4+IFBB R0VfU0hJRlQpICsgaTsKLQotICAgIGRlc3QgPSB4Y19tYXBfZm9yZWlnbl9yYW5nZXMoCi0gICAg ICAgIHhjaCwgZG9taWQsIHBhZ2VzIDw8IFBBR0VfU0hJRlQsIFBST1RfUkVBRCB8IFBST1RfV1JJ VEUsIDEgPDwgUEFHRV9TSElGVCwKLSAgICAgICAgZW50cmllcywgcGFnZXMpOwotICAgIGlmICgg ZGVzdCA9PSBOVUxMICkKLSAgICAgICAgZ290byBlcnJvcl9vdXQ7Ci0KLSAgICAvKiBaZXJvIHRo ZSByYW5nZSBzbyBwYWRkaW5nIGlzIGNsZWFyIGJldHdlZW4gbW9kdWxlcyAqLwotICAgIG1lbXNl dChkZXN0LCAwLCBwYWdlcyA8PCBQQUdFX1NISUZUKTsKLQotICAgIC8qIExvYWQgbW9kdWxlcyBp bnRvIHJhbmdlICovCi0gICAgaWYgKCBkb20tPmFjcGlfbW9kdWxlLmxlbmd0aCAhPSAwICkKLSAg ICB7Ci0gICAgICAgIG1lbWNweShkZXN0LAotICAgICAgICAgICAgICAgZG9tLT5hY3BpX21vZHVs ZS5kYXRhLAotICAgICAgICAgICAgICAgZG9tLT5hY3BpX21vZHVsZS5sZW5ndGgpOwotICAgIH0K LSAgICBpZiAoIGRvbS0+c21iaW9zX21vZHVsZS5sZW5ndGggIT0gMCApCi0gICAgewotICAgICAg ICBtZW1jcHkoZGVzdCArIChkb20tPnNtYmlvc19tb2R1bGUuZ3Vlc3RfYWRkcl9vdXQgLSBtc3Rh cnQpLAotICAgICAgICAgICAgICAgZG9tLT5zbWJpb3NfbW9kdWxlLmRhdGEsCi0gICAgICAgICAg ICAgICBkb20tPnNtYmlvc19tb2R1bGUubGVuZ3RoKTsKLSAgICB9Ci0KLSAgICBtdW5tYXAoZGVz dCwgcGFnZXMgPDwgUEFHRV9TSElGVCk7Ci0gICAgcmMgPSAwOworICAgIGludCByYzsKIAotIGVy cm9yX291dDoKLSAgICBmcmVlKGVudHJpZXMpOworICAgIHJjID0gbW9kdWxlX2luaXRfb25lKGRv bSwgJmRvbS0+YWNwaV9tb2R1bGUsICJhY3BpIG1vZHVsZSIpOworICAgIGlmICggcmMgKSBnb3Rv IGVycjsKKyAgICByYyA9IG1vZHVsZV9pbml0X29uZShkb20sICZkb20tPnNtYmlvc19tb2R1bGUs ICJzbWJpb3MgbW9kdWxlIik7CisgICAgaWYgKCByYyApIGdvdG8gZXJyOwogCi0gICAgcmV0dXJu IHJjOworICAgIHJldHVybiAwOworZXJyOgorICAgIHJldHVybiAtMTsKIH0KIAogc3RhdGljIGVs Zl9lcnJvcnN0YXR1cyB4Y19kb21fbG9hZF9odm1fa2VybmVsKHN0cnVjdCB4Y19kb21faW1hZ2Ug KmRvbSkKQEAgLTIyOSw3ICsxODMsNiBAQCBzdGF0aWMgZWxmX2Vycm9yc3RhdHVzIHhjX2RvbV9s b2FkX2h2bV9rZXJuZWwoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQogICAgIHByaXZjbWRfbW1h cF9lbnRyeV90ICplbnRyaWVzID0gTlVMTDsKICAgICBzaXplX3QgcGFnZXMgPSAoZWxmLT5wZW5k IC0gZWxmLT5wc3RhcnQgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOwogICAgIGVsZl9l cnJvcnN0YXR1cyByYzsKLSAgICB1aW50NjRfdCBtX3N0YXJ0ID0gMCwgbV9lbmQgPSAwOwogICAg IGludCBpOwogCiAgICAgLyogTWFwIGFkZHJlc3Mgc3BhY2UgZm9yIGluaXRpYWwgZWxmIGltYWdl LiAqLwpAQCAtMjYyLDE1ICsyMTUsNyBAQCBzdGF0aWMgZWxmX2Vycm9yc3RhdHVzIHhjX2RvbV9s b2FkX2h2bV9rZXJuZWwoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQogCiAgICAgbXVubWFwKGVs Zi0+ZGVzdF9iYXNlLCBlbGYtPmRlc3Rfc2l6ZSk7CiAKLSAgICByYyA9IG1vZHVsZXNfaW5pdChk b20sIGRvbS0+dG90YWxfcGFnZXMgPDwgUEFHRV9TSElGVCwgZWxmLCAmbV9zdGFydCwKLSAgICAg ICAgICAgICAgICAgICAgICAmbV9lbmQpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgewotICAg ICAgICBET01QUklOVEYoIiVzOiBpbnN1ZmZpY2llbnQgc3BhY2UgdG8gbG9hZCBtb2R1bGVzLiIs IF9fZnVuY19fKTsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0KLSAgICByYyA9IGxvYWRt b2R1bGVzKGRvbSwgbV9zdGFydCwgbV9lbmQsIGRvbS0+Z3Vlc3RfZG9taWQpOworICAgIHJjID0g bW9kdWxlc19pbml0KGRvbSk7CiAgICAgaWYgKCByYyAhPSAwICkKICAgICB7CiAgICAgICAgIERP TVBSSU5URigiJXM6IHVuYWJsZSB0byBsb2FkIG1vZHVsZXMuIiwgX19mdW5jX18pOwotLSAKQW50 aG9ueSBQRVJBUkQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=