From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v3 3/8] libxl: refactor the FreeBSD hotplug script code Date: Thu, 31 Mar 2016 17:09:34 +0200 Message-ID: <1459436979-7475-4-git-send-email-roger.pau@citrix.com> References: <1459436979-7475-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aleGx-0006yO-Rw for xen-devel@lists.xenproject.org; Thu, 31 Mar 2016 15:12:35 +0000 In-Reply-To: <1459436979-7475-1-git-send-email-roger.pau@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.xenproject.org Cc: Wei Liu , Ian Jackson , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VGhpcyBmYWN0b3JzIG91dCB0aGUgbmljIGhvdHBsdWcgc3BlY2lmaWMgY29kZSBmcm9tIHRoZSBj b21tb24gY29kZSBwYXRoIGluCm9yZGVyIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGFkZCBzdXBwb3J0 IGZvciBkaXNrIGhvdHBsdWcgc2NyaXB0cy4gSXQKc2hvdWxkbid0IGluY2x1ZGUgYW55IGZ1bmN0 aW9uYWwgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1 QGNpdHJpeC5jb20+Ci0tLQpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5j b20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KQ2hhbmdlcyBzaW5jZSB2 MjoKIC0gU3BsaXQgdGhlIHJlZmFjdG9yaW5nIGNvZGUgb3V0IG9mIHRoZSBob3RwbHVnIGRpc2sg YWRkaXRpb24gY2hhbmdlLgotLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2ZyZWVic2QuYyB8IDc2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDQ1IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhsL2xpYnhsX2ZyZWVic2QuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ZyZWVic2QuYwppbmRl eCA0N2MzMzkxLi41NGRiM2Q1IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9mcmVlYnNk LmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZnJlZWJzZC5jCkBAIC01OSwxNCArNTksMzYgQEAg c3RhdGljIGludCBsaWJ4bF9faG90cGx1Z19lbnZfbmljKGxpYnhsX19nYyAqZ2MsIGxpYnhsX19k ZXZpY2UgKmRldiwgY2hhciAqKiplbnYKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBs aWJ4bF9faG90cGx1Z19uaWMobGlieGxfX2djICpnYywgbGlieGxfX2RldmljZSAqZGV2LCBjaGFy ICoqKmFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fZGV2aWNlX2Fj dGlvbiBhY3Rpb24pCitzdGF0aWMgaW50IGxpYnhsX19ob3RwbHVnX25pYyhsaWJ4bF9fZ2MgKmdj LCBsaWJ4bF9fZGV2aWNlICpkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFy ICoqKmFyZ3MsIGNoYXIgKioqZW52LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX2RldmljZV9hY3Rpb24gYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IG51bV9leGVjKQogeworICAgIGxpYnhsX25pY190eXBlIG5pY3R5cGU7CiAgICAgY2hhciAq YmVfcGF0aCA9IGxpYnhsX19kZXZpY2VfYmFja2VuZF9wYXRoKGdjLCBkZXYpOwogICAgIGNoYXIg KnNjcmlwdDsKLSAgICBpbnQgbnIgPSAwLCByYyA9IDAsIGFycmF5c2l6ZSA9IDQ7CisgICAgaW50 IG5yID0gMCwgcmM7CiAKLSAgICBhc3NlcnQoZGV2LT5iYWNrZW5kX2tpbmQgPT0gTElCWExfX0RF VklDRV9LSU5EX1ZJRik7CisgICAgcmMgPSBsaWJ4bF9fbmljX3R5cGUoZ2MsIGRldiwgJm5pY3R5 cGUpOworICAgIGlmIChyYykgeworICAgICAgICBMT0coRVJST1IsICJlcnJvciB3aGVuIGZldGNo aW5nIG5pYyB0eXBlIik7CisgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgZ290byBv dXQ7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGb3IgUFYgZG9tYWlucyBvbmx5IG9uZSBwYXNz IGlzIG5lZWRlZCAoYmVjYXVzZSB0aGVyZSdzIG5vIGVtdWxhdGVkCisgICAgICogaW50ZXJmYWNl KS4gRm9yIEhWTSBkb21haW5zIHR3byBwYXNzZXMgYXJlIG5lZWRlZCBpbiBvcmRlciB0byBhZGQK KyAgICAgKiBib3RoIHRoZSBQViBhbmQgdGhlIHRhcCBpbnRlcmZhY2VzIHRvIHRoZSBicmlkZ2Uu CisgICAgICovCisgICAgaWYgKG5pY3R5cGUgPT0gTElCWExfTklDX1RZUEVfVklGICYmIG51bV9l eGVjICE9IDApIHsKKyAgICAgICAgcmMgPSAwOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisK KyAgICByYyA9IGxpYnhsX19ob3RwbHVnX2Vudl9uaWMoZ2MsIGRldiwgZW52LCBudW1fZXhlYyk7 CisgICAgaWYgKHJjKQorICAgICAgICBnb3RvIG91dDsKIAogICAgIHNjcmlwdCA9IGxpYnhsX194 c19yZWFkKGdjLCBYQlRfTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklO VEYoIiVzLyVzIiwgYmVfcGF0aCwgInNjcmlwdCIpKTsKQEAgLTc2LDEzICs5OCwxNCBAQCBzdGF0 aWMgaW50IGxpYnhsX19ob3RwbHVnX25pYyhsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fZGV2aWNlICpk ZXYsIGNoYXIgKioqYXJncywKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCisgICAgY29uc3Qg aW50IGFycmF5c2l6ZSA9IDQ7CiAgICAgR0NORVdfQVJSQVkoKmFyZ3MsIGFycmF5c2l6ZSk7CiAg ICAgKCphcmdzKVtucisrXSA9IHNjcmlwdDsKICAgICAoKmFyZ3MpW25yKytdID0gYmVfcGF0aDsK LSAgICAoKmFyZ3MpW25yKytdID0gR0NTUFJJTlRGKCIlcyIsIGFjdGlvbiA9PSBMSUJYTF9fREVW SUNFX0FDVElPTl9BREQgPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFk ZCIgOiAicmVtb3ZlIik7CisgICAgKCphcmdzKVtucisrXSA9IChjaGFyICopIGxpYnhsX19kZXZp Y2VfYWN0aW9uX3RvX3N0cmluZyhhY3Rpb24pOwogICAgICgqYXJncylbbnIrK10gPSBOVUxMOwog ICAgIGFzc2VydChuciA9PSBhcnJheXNpemUpOworICAgIHJjID0gMTsKIAogb3V0OgogICAgIHJl dHVybiByYzsKQEAgLTkzLDM2ICsxMTYsMjcgQEAgaW50IGxpYnhsX19nZXRfaG90cGx1Z19zY3Jp cHRfaW5mbyhsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fZGV2aWNlICpkZXYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kZXZpY2VfYWN0aW9uIGFjdGlvbiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9leGVjKQogewotICAgIGxpYnhs X25pY190eXBlIG5pY3R5cGU7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKGRldi0+YmFja2VuZF9r aW5kICE9IExJQlhMX19ERVZJQ0VfS0lORF9WSUYgfHwgbnVtX2V4ZWMgPT0gMikKLSAgICAgICAg cmV0dXJuIDA7Ci0KLSAgICByYyA9IGxpYnhsX19uaWNfdHlwZShnYywgZGV2LCAmbmljdHlwZSk7 Ci0gICAgaWYgKHJjKSB7Ci0gICAgICAgIExPRyhFUlJPUiwgImVycm9yIHdoZW4gZmV0Y2hpbmcg bmljIHR5cGUiKTsKLSAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwotICAgICAgICBnb3RvIG91dDsK LSAgICB9Ci0KLSAgICAvKgotICAgICAqIEZvciBQViBkb21haW5zIG9ubHkgb25lIHBhc3MgaXMg bmVlZGVkIChiZWNhdXNlIHRoZXJlJ3Mgbm8gZW11bGF0ZWQKLSAgICAgKiBpbnRlcmZhY2UpLiBG b3IgSFZNIGRvbWFpbnMgdHdvIHBhc3NlcyBhcmUgbmVlZGVkIGluIG9yZGVyIHRvIGFkZAotICAg ICAqIGJvdGggdGhlIFBWIGFuZCB0aGUgdGFwIGludGVyZmFjZXMgdG8gdGhlIGJyaWRnZS4KLSAg ICAgKi8KLSAgICBpZiAobmljdHlwZSA9PSBMSUJYTF9OSUNfVFlQRV9WSUYgJiYgbnVtX2V4ZWMg IT0gMCkgeworICAgIHN3aXRjaCAoZGV2LT5iYWNrZW5kX2tpbmQpIHsKKyAgICBjYXNlIExJQlhM X19ERVZJQ0VfS0lORF9WSUY6CisgICAgICAgIC8qCisgICAgICAgICAqIElmIGRvbWFpbiBoYXMg YSBzdHViZG9tIHdlIGRvbid0IGhhdmUgdG8gZXhlY3V0ZSBob3RwbHVnIHNjcmlwdHMKKyAgICAg ICAgICogZm9yIGVtdWxhdGVkIGludGVyZmFjZXMKKyAgICAgICAgICovCisgICAgICAgIGlmICgo bnVtX2V4ZWMgPiAxKSB8fAorICAgICAgICAgICAgKGxpYnhsX2dldF9zdHViZG9tX2lkKENUWCwg ZGV2LT5kb21pZCkgJiYgbnVtX2V4ZWMpKSB7CisgICAgICAgICAgICByYyA9IDA7CisgICAgICAg ICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgICAgICByYyA9IGxpYnhsX19ob3RwbHVnX25p YyhnYywgZGV2LCBhcmdzLCBlbnYsIGFjdGlvbiwgbnVtX2V4ZWMpOworICAgICAgICBicmVhazsK KyAgICBkZWZhdWx0OgorICAgICAgICAvKiBObyBuZWVkIHRvIGV4ZWN1dGUgYW55IGhvdHBsdWcg c2NyaXB0cyAqLwogICAgICAgICByYyA9IDA7Ci0gICAgICAgIGdvdG8gb3V0OworICAgICAgICBi cmVhazsKICAgICB9CiAKLSAgICByYyA9IGxpYnhsX19ob3RwbHVnX2Vudl9uaWMoZ2MsIGRldiwg ZW52LCBudW1fZXhlYyk7Ci0gICAgaWYgKHJjKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJj ID0gbGlieGxfX2hvdHBsdWdfbmljKGdjLCBkZXYsIGFyZ3MsIGFjdGlvbik7Ci0gICAgaWYgKCFy YykgcmMgPSAxOwotCiBvdXQ6CiAgICAgcmV0dXJuIHJjOwogfQotLSAKMi42LjQgKEFwcGxlIEdp dC02MykKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=