From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v3 01/16] libxc: Rework extra module initialisation Date: Thu, 25 Feb 2016 14:55:59 +0000 Message-ID: <1456412174-20162-2-git-send-email-anthony.perard@citrix.com> References: <1456412174-20162-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: <1456412174-20162-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+Ci0tLQpOZXcgcGF0Y2ggaW4gVjMuCi0tLQogdG9vbHMvbGlieGMveGNfZG9t X2h2bWxvYWRlci5jIHwgMTI0ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgOTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9tX2h2bWxvYWRlci5jIGIvdG9vbHMvbGlieGMv eGNfZG9tX2h2bWxvYWRlci5jCmluZGV4IDMzMGQ1ZTguLjU0ZTA5NmMgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhjL3hjX2RvbV9odm1sb2FkZXIuYworKysgYi90b29scy9saWJ4Yy94Y19kb21faHZt bG9hZGVyLmMKQEAgLTEyOSw5OCArMTI5LDQ1IEBAIHN0YXRpYyBlbGZfZXJyb3JzdGF0dXMgeGNf ZG9tX3BhcnNlX2h2bV9rZXJuZWwoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQogICAgIHJldHVy biByYzsKIH0KIAotc3RhdGljIGludCBtb2R1bGVzX2luaXQoc3RydWN0IHhjX2RvbV9pbWFnZSAq ZG9tLAotICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdmVuZCwgc3RydWN0IGVsZl9i aW5hcnkgKmVsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICptc3RhcnRfb3V0 LCB1aW50NjRfdCAqbWVuZF9vdXQpCitzdGF0aWMgaW50IG1vZHVsZV9pbml0X29uZShzdHJ1Y3Qg eGNfZG9tX2ltYWdlICpkb20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNf aHZtX2Zpcm13YXJlX21vZHVsZSAqbW9kdWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2hhciAqbmFtZSkKIHsKLSNkZWZpbmUgTU9EVUxFX0FMSUdOIDFVTCA8PCA3Ci0jZGVmaW5lIE1C X0FMSUdOICAgICAxVUwgPDwgMjAKLSNkZWZpbmUgTUtBTElHTih4LCBhKSAoKCh1aW50NjRfdCko eCkgKyAoYSkgLSAxKSAmIH4odWludDY0X3QpKChhKSAtIDEpKQotICAgIHVpbnQ2NF90IHRvdGFs X2xlbiA9IDAsIG9mZnNldDEgPSAwOworICAgIHN0cnVjdCB4Y19kb21fc2VnIHNlZzsKKyAgICB2 b2lkICpkZXN0OwogCi0gICAgaWYgKCBkb20tPmFjcGlfbW9kdWxlLmxlbmd0aCA9PSAwICYmIGRv bS0+c21iaW9zX21vZHVsZS5sZW5ndGggPT0gMCApCi0gICAgICAgIHJldHVybiAwOwotCi0gICAg LyogRmluZCB0aGUgdG90YWwgbGVuZ3RoIGZvciB0aGUgZmlybXdhcmUgbW9kdWxlcyB3aXRoIGEg cmVhc29uYWJsZSBsYXJnZQotICAgICAqIGFsaWdubWVudCBzaXplIHRvIGFsaWduIGVhY2ggdGhl IG1vZHVsZXMuCi0gICAgICovCi0gICAgdG90YWxfbGVuID0gTUtBTElHTihkb20tPmFjcGlfbW9k dWxlLmxlbmd0aCwgTU9EVUxFX0FMSUdOKTsKLSAgICBvZmZzZXQxID0gdG90YWxfbGVuOwotICAg IHRvdGFsX2xlbiArPSBNS0FMSUdOKGRvbS0+c21iaW9zX21vZHVsZS5sZW5ndGgsIE1PRFVMRV9B TElHTik7Ci0KLSAgICAvKiBXYW50IHRvIHBsYWNlIHRoZSBtb2R1bGVzIDFNYitjaGFuZ2UgYmVo aW5kIHRoZSBsb2FkZXIgaW1hZ2UuICovCi0gICAgKm1zdGFydF9vdXQgPSBNS0FMSUdOKGVsZi0+ cGVuZCwgTUJfQUxJR04pICsgKE1CX0FMSUdOKTsKLSAgICAqbWVuZF9vdXQgPSAqbXN0YXJ0X291 dCArIHRvdGFsX2xlbjsKLQotICAgIGlmICggKm1lbmRfb3V0ID4gdmVuZCApCi0gICAgICAgIHJl dHVybiAtMTsKLQotICAgIGlmICggZG9tLT5hY3BpX21vZHVsZS5sZW5ndGggIT0gMCApCi0gICAg ICAgIGRvbS0+YWNwaV9tb2R1bGUuZ3Vlc3RfYWRkcl9vdXQgPSAqbXN0YXJ0X291dDsKLSAgICBp ZiAoIGRvbS0+c21iaW9zX21vZHVsZS5sZW5ndGggIT0gMCApCi0gICAgICAgIGRvbS0+c21iaW9z X21vZHVsZS5ndWVzdF9hZGRyX291dCA9ICptc3RhcnRfb3V0ICsgb2Zmc2V0MTsKKyAgICBpZiAo IG1vZHVsZS0+bGVuZ3RoICkKKyAgICB7CisgICAgICAgIGlmICggeGNfZG9tX2FsbG9jX3NlZ21l bnQoZG9tLCAmc2VnLCBuYW1lLCAwLCBtb2R1bGUtPmxlbmd0aCkgKQorICAgICAgICAgICAgZ290 byBlcnI7CisgICAgICAgIGRlc3QgPSB4Y19kb21fc2VnX3RvX3B0cihkb20sICZzZWcpOworICAg ICAgICBpZiAoIGRlc3QgPT0gTlVMTCApCisgICAgICAgIHsKKyAgICAgICAgICAgIERPTVBSSU5U RigiJXM6IHhjX2RvbV9zZWdfdG9fcHRyKGRvbSwgJnNlZykgPT4gTlVMTCIsCisgICAgICAgICAg ICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIGdvdG8gZXJyOworICAgICAg ICB9CisgICAgICAgIG1lbWNweShkZXN0LCBtb2R1bGUtPmRhdGEsIG1vZHVsZS0+bGVuZ3RoKTsK KyAgICAgICAgbW9kdWxlLT5ndWVzdF9hZGRyX291dCA9IHNlZy52c3RhcnQ7CisgICAgfQogCiAg ICAgcmV0dXJuIDA7CitlcnI6CisgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgaW50IGxvYWRt b2R1bGVzKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAg dWludDY0X3QgbXN0YXJ0LCB1aW50NjRfdCBtZW5kLAotICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCBkb21pZCkKK3N0YXRpYyBpbnQgbW9kdWxlc19pbml0KHN0cnVjdCB4Y19kb21faW1h Z2UgKmRvbSkKIHsKLSAgICBwcml2Y21kX21tYXBfZW50cnlfdCAqZW50cmllcyA9IE5VTEw7Ci0g ICAgdW5zaWduZWQgbG9uZyBwZm5fc3RhcnQ7Ci0gICAgdW5zaWduZWQgbG9uZyBwZm5fZW5kOwot ICAgIHNpemVfdCBwYWdlczsKLSAgICB1aW50MzJfdCBpOwotICAgIHVpbnQ4X3QgKmRlc3Q7Ci0g ICAgaW50IHJjID0gLTE7Ci0gICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBkb20tPnhjaDsKLQotICAg IGlmICggbXN0YXJ0ID09IDAgfHwgbWVuZCA9PSAwICkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg ICBwZm5fc3RhcnQgPSAodW5zaWduZWQgbG9uZykobXN0YXJ0ID4+IFBBR0VfU0hJRlQpOwotICAg IHBmbl9lbmQgPSAodW5zaWduZWQgbG9uZykoKG1lbmQgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdF X1NISUZUKTsKLSAgICBwYWdlcyA9IHBmbl9lbmQgLSBwZm5fc3RhcnQ7Ci0KLSAgICAvKiBNYXAg YWRkcmVzcyBzcGFjZSBmb3IgbW9kdWxlIGxpc3QuICovCi0gICAgZW50cmllcyA9IGNhbGxvYyhw YWdlcywgc2l6ZW9mKHByaXZjbWRfbW1hcF9lbnRyeV90KSk7Ci0gICAgaWYgKCBlbnRyaWVzID09 IE5VTEwgKQotICAgICAgICBnb3RvIGVycm9yX291dDsKLQotICAgIGZvciAoIGkgPSAwOyBpIDwg cGFnZXM7IGkrKyApCi0gICAgICAgIGVudHJpZXNbaV0ubWZuID0gKG1zdGFydCA+PiBQQUdFX1NI SUZUKSArIGk7Ci0KLSAgICBkZXN0ID0geGNfbWFwX2ZvcmVpZ25fcmFuZ2VzKAotICAgICAgICB4 Y2gsIGRvbWlkLCBwYWdlcyA8PCBQQUdFX1NISUZULCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCAx IDw8IFBBR0VfU0hJRlQsCi0gICAgICAgIGVudHJpZXMsIHBhZ2VzKTsKLSAgICBpZiAoIGRlc3Qg PT0gTlVMTCApCi0gICAgICAgIGdvdG8gZXJyb3Jfb3V0OwotCi0gICAgLyogWmVybyB0aGUgcmFu Z2Ugc28gcGFkZGluZyBpcyBjbGVhciBiZXR3ZWVuIG1vZHVsZXMgKi8KLSAgICBtZW1zZXQoZGVz dCwgMCwgcGFnZXMgPDwgUEFHRV9TSElGVCk7Ci0KLSAgICAvKiBMb2FkIG1vZHVsZXMgaW50byBy YW5nZSAqLwotICAgIGlmICggZG9tLT5hY3BpX21vZHVsZS5sZW5ndGggIT0gMCApCi0gICAgewot ICAgICAgICBtZW1jcHkoZGVzdCwKLSAgICAgICAgICAgICAgIGRvbS0+YWNwaV9tb2R1bGUuZGF0 YSwKLSAgICAgICAgICAgICAgIGRvbS0+YWNwaV9tb2R1bGUubGVuZ3RoKTsKLSAgICB9Ci0gICAg aWYgKCBkb20tPnNtYmlvc19tb2R1bGUubGVuZ3RoICE9IDAgKQotICAgIHsKLSAgICAgICAgbWVt Y3B5KGRlc3QgKyAoZG9tLT5zbWJpb3NfbW9kdWxlLmd1ZXN0X2FkZHJfb3V0IC0gbXN0YXJ0KSwK LSAgICAgICAgICAgICAgIGRvbS0+c21iaW9zX21vZHVsZS5kYXRhLAotICAgICAgICAgICAgICAg ZG9tLT5zbWJpb3NfbW9kdWxlLmxlbmd0aCk7Ci0gICAgfQotCi0gICAgbXVubWFwKGRlc3QsIHBh Z2VzIDw8IFBBR0VfU0hJRlQpOwotICAgIHJjID0gMDsKKyAgICBpbnQgcmM7CiAKLSBlcnJvcl9v dXQ6Ci0gICAgZnJlZShlbnRyaWVzKTsKKyAgICByYyA9IG1vZHVsZV9pbml0X29uZShkb20sICZk b20tPmFjcGlfbW9kdWxlLCAiYWNwaSBtb2R1bGUiKTsKKyAgICBpZiAoIHJjICkgZ290byBlcnI7 CisgICAgcmMgPSBtb2R1bGVfaW5pdF9vbmUoZG9tLCAmZG9tLT5zbWJpb3NfbW9kdWxlLCAic21i aW9zIG1vZHVsZSIpOworICAgIGlmICggcmMgKSBnb3RvIGVycjsKIAotICAgIHJldHVybiByYzsK KyAgICByZXR1cm4gMDsKK2VycjoKKyAgICByZXR1cm4gLTE7CiB9CiAKIHN0YXRpYyBlbGZfZXJy b3JzdGF0dXMgeGNfZG9tX2xvYWRfaHZtX2tlcm5lbChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20p CkBAIC0yMjksNyArMTc2LDYgQEAgc3RhdGljIGVsZl9lcnJvcnN0YXR1cyB4Y19kb21fbG9hZF9o dm1fa2VybmVsKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKICAgICBwcml2Y21kX21tYXBfZW50 cnlfdCAqZW50cmllcyA9IE5VTEw7CiAgICAgc2l6ZV90IHBhZ2VzID0gKGVsZi0+cGVuZCAtIGVs Zi0+cHN0YXJ0ICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKICAgICBlbGZfZXJyb3Jz dGF0dXMgcmM7Ci0gICAgdWludDY0X3QgbV9zdGFydCA9IDAsIG1fZW5kID0gMDsKICAgICBpbnQg aTsKIAogICAgIC8qIE1hcCBhZGRyZXNzIHNwYWNlIGZvciBpbml0aWFsIGVsZiBpbWFnZS4gKi8K QEAgLTI2MiwxNSArMjA4LDcgQEAgc3RhdGljIGVsZl9lcnJvcnN0YXR1cyB4Y19kb21fbG9hZF9o dm1fa2VybmVsKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIAogICAgIG11bm1hcChlbGYtPmRl c3RfYmFzZSwgZWxmLT5kZXN0X3NpemUpOwogCi0gICAgcmMgPSBtb2R1bGVzX2luaXQoZG9tLCBk b20tPnRvdGFsX3BhZ2VzIDw8IFBBR0VfU0hJRlQsIGVsZiwgJm1fc3RhcnQsCi0gICAgICAgICAg ICAgICAgICAgICAgJm1fZW5kKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgIHsKLSAgICAgICAg RE9NUFJJTlRGKCIlczogaW5zdWZmaWNpZW50IHNwYWNlIHRvIGxvYWQgbW9kdWxlcy4iLCBfX2Z1 bmNfXyk7Ci0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotCi0gICAgcmMgPSBsb2FkbW9kdWxl cyhkb20sIG1fc3RhcnQsIG1fZW5kLCBkb20tPmd1ZXN0X2RvbWlkKTsKKyAgICByYyA9IG1vZHVs ZXNfaW5pdChkb20pOwogICAgIGlmICggcmMgIT0gMCApCiAgICAgewogICAgICAgICBET01QUklO VEYoIiVzOiB1bmFibGUgdG8gbG9hZCBtb2R1bGVzLiIsIF9fZnVuY19fKTsKLS0gCkFudGhvbnkg UEVSQVJECgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK