From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joshua Otto Subject: [PATCH RFC 02/20] libxc/xc_sr: parameterise write_record() on fd Date: Mon, 27 Mar 2017 05:06:14 -0400 Message-ID: <1490605592-12189-3-git-send-email-jtotto@uwaterloo.ca> References: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> 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 1csQci-0004fO-BB for xen-devel@lists.xenproject.org; Mon, 27 Mar 2017 09:07:36 +0000 In-Reply-To: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> 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.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, czylin@uwaterloo.ca, Joshua Otto , imhy.yang@gmail.com, hjarmstr@uwaterloo.ca List-Id: xen-devel@lists.xenproject.org UmlnaHQgbm93LCB3cml0ZV9zcGxpdF9yZWNvcmQoKSAtIHdoaWNoIGlzIGRlbGVnYXRlZCB0byBi eQp3cml0ZV9yZWNvcmQoKSAtIGltcGxpY2l0bHkgd3JpdGVzIHRvIGN0eC0+ZmQuICBUaGlzIG1l YW5zIGl0IGNhbid0IGJlCnVzZWQgd2l0aCB0aGUgcmVzdG9yZSBjb250ZXh0J3Mgc2VuZF9iYWNr X2ZkLCB3aGljaCBpcyB1bmhhbmR5LgoKQWRkIGFuICdmZCcgcGFyYW1ldGVyIHRvIGJvdGggd3Jp dGVfcmVjb3JkKCkgYW5kIHdyaXRlX3NwbGl0X3JlY29yZCgpLAphbmQgbWVjaGFuaWNhbGx5IHVw ZGF0ZSBhbGwgZXhpc3RpbmcgY2FsbHNpdGVzIHRvIHBhc3MgY3R4LT5mZCBmb3IgaXQuCgpObyBm dW5jdGlvbmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEpvc2h1YSBPdHRvIDxqdG90dG9AdXdh dGVybG9vLmNhPgotLS0KIHRvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5jICAgICAgIHwgIDYgKysr LS0tCiB0b29scy9saWJ4Yy94Y19zcl9jb21tb24uaCAgICAgICB8ICA4ICsrKystLS0tCiB0b29s cy9saWJ4Yy94Y19zcl9jb21tb25feDg2LmMgICB8ICAyICstCiB0b29scy9saWJ4Yy94Y19zcl9z YXZlLmMgICAgICAgICB8ICA2ICsrKy0tLQogdG9vbHMvbGlieGMveGNfc3Jfc2F2ZV94ODZfaHZt LmMgfCAgNSArKystLQogdG9vbHMvbGlieGMveGNfc3Jfc2F2ZV94ODZfcHYuYyAgfCAxNyArKysr KysrKystLS0tLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAyMSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9jb21tb24uYyBiL3Rvb2xz L2xpYnhjL3hjX3NyX2NvbW1vbi5jCmluZGV4IDQ4ZmE2NzYuLmMxYmFiZjYgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1v bi5jCkBAIC01Miw4ICs1Miw4IEBAIGNvbnN0IGNoYXIgKnJlY190eXBlX3RvX3N0cih1aW50MzJf dCB0eXBlKQogICAgIHJldHVybiAiUmVzZXJ2ZWQiOwogfQogCi1pbnQgd3JpdGVfc3BsaXRfcmVj b3JkKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIHN0cnVjdCB4Y19zcl9yZWNvcmQgKnJlYywK LSAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYnVmLCBzaXplX3Qgc3opCitpbnQgd3JpdGVf c3BsaXRfcmVjb3JkKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIGludCBmZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHhjX3NyX3JlY29yZCAqcmVjLCB2b2lkICpidWYsIHNpemVf dCBzeikKIHsKICAgICBzdGF0aWMgY29uc3QgY2hhciB6ZXJvZXNbKDF1IDw8IFJFQ19BTElHTl9P UkRFUikgLSAxXSA9IHsgMCB9OwogCkBAIC04MSw3ICs4MSw3IEBAIGludCB3cml0ZV9zcGxpdF9y ZWNvcmQoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgc3RydWN0IHhjX3NyX3JlY29yZCAqcmVj LAogICAgIGlmICggc3ogKQogICAgICAgICBhc3NlcnQoYnVmKTsKIAotICAgIGlmICggd3JpdGV2 X2V4YWN0KGN0eC0+ZmQsIHBhcnRzLCBBUlJBWV9TSVpFKHBhcnRzKSkgKQorICAgIGlmICggd3Jp dGV2X2V4YWN0KGZkLCBwYXJ0cywgQVJSQVlfU0laRShwYXJ0cykpICkKICAgICAgICAgZ290byBl cnI7CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1v bi5oIGIvdG9vbHMvbGlieGMveGNfc3JfY29tbW9uLmgKaW5kZXggYTgzZjIyYS4uMmYzM2NjYyAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfc3JfY29tbW9uLmgKKysrIGIvdG9vbHMvbGlieGMv eGNfc3JfY29tbW9uLmgKQEAgLTM2MSw4ICszNjEsOCBAQCBzdHJ1Y3QgeGNfc3JfcmVjb3JkCiAg KgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIG5vbjAgb24gZmFpbHVyZS4KICAqLwotaW50 IHdyaXRlX3NwbGl0X3JlY29yZChzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4LCBzdHJ1Y3QgeGNf c3JfcmVjb3JkICpyZWMsCi0gICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmJ1Ziwgc2l6ZV90 IHN6KTsKK2ludCB3cml0ZV9zcGxpdF9yZWNvcmQoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwg aW50IGZkLAorICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfc3JfcmVjb3JkICpyZWMs IHZvaWQgKmJ1Ziwgc2l6ZV90IHN6KTsKIAogLyoKICAqIFdyaXRlcyBhIHJlY29yZCB0byB0aGUg c3RyZWFtLCBhcHBseWluZyBjb3JyZWN0IHBhZGRpbmcgd2hlcmUgYXBwcm9wcmlhdGUuCkBAIC0z NzEsMTAgKzM3MSwxMCBAQCBpbnQgd3JpdGVfc3BsaXRfcmVjb3JkKHN0cnVjdCB4Y19zcl9jb250 ZXh0ICpjdHgsIHN0cnVjdCB4Y19zcl9yZWNvcmQgKnJlYywKICAqCiAgKiBSZXR1cm5zIDAgb24g c3VjY2VzcyBhbmQgbm9uMCBvbiBmYWlsdXJlLgogICovCi1zdGF0aWMgaW5saW5lIGludCB3cml0 ZV9yZWNvcmQoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwKK3N0YXRpYyBpbmxpbmUgaW50IHdy aXRlX3JlY29yZChzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4LCBpbnQgZmQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX3NyX3JlY29yZCAqcmVjKQogewotICAgIHJl dHVybiB3cml0ZV9zcGxpdF9yZWNvcmQoY3R4LCByZWMsIE5VTEwsIDApOworICAgIHJldHVybiB3 cml0ZV9zcGxpdF9yZWNvcmQoY3R4LCBmZCwgcmVjLCBOVUxMLCAwKTsKIH0KIAogLyoKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbl94ODYuYyBiL3Rvb2xzL2xpYnhjL3hjX3Ny X2NvbW1vbl94ODYuYwppbmRleCA5OGYxY2VmLi43YjNkZDUwIDEwMDY0NAotLS0gYS90b29scy9s aWJ4Yy94Y19zcl9jb21tb25feDg2LmMKKysrIGIvdG9vbHMvbGlieGMveGNfc3JfY29tbW9uX3g4 Ni5jCkBAIC0xOCw3ICsxOCw3IEBAIGludCB3cml0ZV90c2NfaW5mbyhzdHJ1Y3QgeGNfc3JfY29u dGV4dCAqY3R4KQogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCi0gICAgcmV0dXJuIHdyaXRl X3JlY29yZChjdHgsICZyZWMpOworICAgIHJldHVybiB3cml0ZV9yZWNvcmQoY3R4LCBjdHgtPmZk LCAmcmVjKTsKIH0KIAogaW50IGhhbmRsZV90c2NfaW5mbyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAq Y3R4LCBzdHJ1Y3QgeGNfc3JfcmVjb3JkICpyZWMpCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94 Y19zcl9zYXZlLmMgYi90b29scy9saWJ4Yy94Y19zcl9zYXZlLmMKaW5kZXggZmM2M2E1NS4uNjFm YzRhNCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jCisrKyBiL3Rvb2xzL2xp YnhjL3hjX3NyX3NhdmUuYwpAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgaW50IHdyaXRlX2VuZF9y ZWNvcmQoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKIHsKICAgICBzdHJ1Y3QgeGNfc3JfcmVj b3JkIGVuZCA9IHsgUkVDX1RZUEVfRU5ELCAwLCBOVUxMIH07CiAKLSAgICByZXR1cm4gd3JpdGVf cmVjb3JkKGN0eCwgJmVuZCk7CisgICAgcmV0dXJuIHdyaXRlX3JlY29yZChjdHgsIGN0eC0+ZmQs ICZlbmQpOwogfQogCiAvKgpAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgaW50IHdyaXRlX2NoZWNr cG9pbnRfcmVjb3JkKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgpCiB7CiAgICAgc3RydWN0IHhj X3NyX3JlY29yZCBjaGVja3BvaW50ID0geyBSRUNfVFlQRV9DSEVDS1BPSU5ULCAwLCBOVUxMIH07 CiAKLSAgICByZXR1cm4gd3JpdGVfcmVjb3JkKGN0eCwgJmNoZWNrcG9pbnQpOworICAgIHJldHVy biB3cml0ZV9yZWNvcmQoY3R4LCBjdHgtPmZkLCAmY2hlY2twb2ludCk7CiB9CiAKIC8qCkBAIC02 NDYsNyArNjQ2LDcgQEAgc3RhdGljIGludCB2ZXJpZnlfZnJhbWVzKHN0cnVjdCB4Y19zcl9jb250 ZXh0ICpjdHgpCiAKICAgICBEUFJJTlRGKCJFbmFibGluZyB2ZXJpZnkgbW9kZSIpOwogCi0gICAg cmMgPSB3cml0ZV9yZWNvcmQoY3R4LCAmcmVjKTsKKyAgICByYyA9IHdyaXRlX3JlY29yZChjdHgs IGN0eC0+ZmQsICZyZWMpOwogICAgIGlmICggcmMgKQogICAgICAgICBnb3RvIG91dDsKIApkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZV94ODZfaHZtLmMgYi90b29scy9saWJ4Yy94 Y19zcl9zYXZlX3g4Nl9odm0uYwppbmRleCBlNDg1OTI4Li5lYTRiNzgwIDEwMDY0NAotLS0gYS90 b29scy9saWJ4Yy94Y19zcl9zYXZlX3g4Nl9odm0uYworKysgYi90b29scy9saWJ4Yy94Y19zcl9z YXZlX3g4Nl9odm0uYwpAQCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgaW50IHdyaXRlX2h2bV9jb250 ZXh0KHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgpCiAgICAgfQogCiAgICAgaHZtX3JlYy5sZW5n dGggPSBodm1fYnVmX3NpemU7Ci0gICAgcmMgPSB3cml0ZV9yZWNvcmQoY3R4LCAmaHZtX3JlYyk7 CisgICAgcmMgPSB3cml0ZV9yZWNvcmQoY3R4LCBjdHgtPmZkLCAmaHZtX3JlYyk7CiAgICAgaWYg KCByYyA8IDAgKQogICAgIHsKICAgICAgICAgUEVSUk9SKCJlcnJvciB3cml0ZSBIVk1fQ09OVEVY VCByZWNvcmQiKTsKQEAgLTExMiw3ICsxMTIsOCBAQCBzdGF0aWMgaW50IHdyaXRlX2h2bV9wYXJh bXMoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKICAgICAgICAgfQogICAgIH0KIAotICAgIHJj ID0gd3JpdGVfc3BsaXRfcmVjb3JkKGN0eCwgJnJlYywgZW50cmllcywgaGRyLmNvdW50ICogc2l6 ZW9mKCplbnRyaWVzKSk7CisgICAgcmMgPSB3cml0ZV9zcGxpdF9yZWNvcmQoY3R4LCBjdHgtPmZk LCAmcmVjLCBlbnRyaWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhkci5jb3VudCAq IHNpemVvZigqZW50cmllcykpOwogICAgIGlmICggcmMgKQogICAgICAgICBQRVJST1IoIkZhaWxl ZCB0byB3cml0ZSBIVk1fUEFSQU1TIHJlY29yZCIpOwogCmRpZmYgLS1naXQgYS90b29scy9saWJ4 Yy94Y19zcl9zYXZlX3g4Nl9wdi5jIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZV94ODZfcHYuYwpp bmRleCBmMjE4ZDE3Li4yYjJjMDUwIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19zcl9zYXZl X3g4Nl9wdi5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmVfeDg2X3B2LmMKQEAgLTU3MSw5 ICs1NzEsOSBAQCBzdGF0aWMgaW50IHdyaXRlX29uZV92Y3B1X2Jhc2ljKHN0cnVjdCB4Y19zcl9j b250ZXh0ICpjdHgsIHVpbnQzMl90IGlkKQogICAgIH0KIAogICAgIGlmICggY3R4LT54ODZfcHYu d2lkdGggPT0gOCApCi0gICAgICAgIHJjID0gd3JpdGVfc3BsaXRfcmVjb3JkKGN0eCwgJnJlYywg JnZjcHUsIHNpemVvZih2Y3B1Lng2NCkpOworICAgICAgICByYyA9IHdyaXRlX3NwbGl0X3JlY29y ZChjdHgsIGN0eC0+ZmQsICZyZWMsICZ2Y3B1LCBzaXplb2YodmNwdS54NjQpKTsKICAgICBlbHNl Ci0gICAgICAgIHJjID0gd3JpdGVfc3BsaXRfcmVjb3JkKGN0eCwgJnJlYywgJnZjcHUsIHNpemVv Zih2Y3B1LngzMikpOworICAgICAgICByYyA9IHdyaXRlX3NwbGl0X3JlY29yZChjdHgsIGN0eC0+ ZmQsICZyZWMsICZ2Y3B1LCBzaXplb2YodmNwdS54MzIpKTsKIAogIGVycjoKICAgICByZXR1cm4g cmM7CkBAIC02MDksNyArNjA5LDcgQEAgc3RhdGljIGludCB3cml0ZV9vbmVfdmNwdV9leHRlbmRl ZChzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4LCB1aW50MzJfdCBpZCkKICAgICAgICAgcmV0dXJu IC0xOwogICAgIH0KIAotICAgIHJldHVybiB3cml0ZV9zcGxpdF9yZWNvcmQoY3R4LCAmcmVjLCAm ZG9tY3RsLnUuZXh0X3ZjcHVjb250ZXh0LAorICAgIHJldHVybiB3cml0ZV9zcGxpdF9yZWNvcmQo Y3R4LCBjdHgtPmZkLCAmcmVjLCAmZG9tY3RsLnUuZXh0X3ZjcHVjb250ZXh0LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLnUuZXh0X3ZjcHVjb250ZXh0LnNpemUpOwogfQog CkBAIC02NjQsNyArNjY0LDggQEAgc3RhdGljIGludCB3cml0ZV9vbmVfdmNwdV94c2F2ZShzdHJ1 Y3QgeGNfc3JfY29udGV4dCAqY3R4LCB1aW50MzJfdCBpZCkKICAgICAgICAgZ290byBlcnI7CiAg ICAgfQogCi0gICAgcmMgPSB3cml0ZV9zcGxpdF9yZWNvcmQoY3R4LCAmcmVjLCBidWZmZXIsIGRv bWN0bC51LnZjcHVleHRzdGF0ZS5zaXplKTsKKyAgICByYyA9IHdyaXRlX3NwbGl0X3JlY29yZChj dHgsIGN0eC0+ZmQsICZyZWMsIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk b21jdGwudS52Y3B1ZXh0c3RhdGUuc2l6ZSk7CiAgICAgaWYgKCByYyApCiAgICAgICAgIGdvdG8g ZXJyOwogCkBAIC03MzAsNyArNzMxLDcgQEAgc3RhdGljIGludCB3cml0ZV9vbmVfdmNwdV9tc3Jz KHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIHVpbnQzMl90IGlkKQogICAgICAgICBnb3RvIGVy cjsKICAgICB9CiAKLSAgICByYyA9IHdyaXRlX3NwbGl0X3JlY29yZChjdHgsICZyZWMsIGJ1ZmZl ciwKKyAgICByYyA9IHdyaXRlX3NwbGl0X3JlY29yZChjdHgsIGN0eC0+ZmQsICZyZWMsIGJ1ZmZl ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21jdGwudS52Y3B1X21zcnMubXNyX2Nv dW50ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuX2RvbWN0bF92Y3B1 X21zcl90KSk7CiAgICAgaWYgKCByYyApCkBAIC04MDUsNyArODA2LDcgQEAgc3RhdGljIGludCB3 cml0ZV94ODZfcHZfaW5mbyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogICAgICAgICAgICAg LmRhdGEgPSAmaW5mbwogICAgICAgICB9OwogCi0gICAgcmV0dXJuIHdyaXRlX3JlY29yZChjdHgs ICZyZWMpOworICAgIHJldHVybiB3cml0ZV9yZWNvcmQoY3R4LCBjdHgtPmZkLCAmcmVjKTsKIH0K IAogLyoKQEAgLTg0Niw3ICs4NDcsNyBAQCBzdGF0aWMgaW50IHdyaXRlX3g4Nl9wdl9wMm1fZnJh bWVzKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgpCiAgICAgZWxzZQogICAgICAgICBkYXRhID0g KHVpbnQ2NF90ICopY3R4LT54ODZfcHYucDJtX3BmbnM7CiAKLSAgICByYyA9IHdyaXRlX3NwbGl0 X3JlY29yZChjdHgsICZyZWMsIGRhdGEsIGRhdGFzeik7CisgICAgcmMgPSB3cml0ZV9zcGxpdF9y ZWNvcmQoY3R4LCBjdHgtPmZkLCAmcmVjLCBkYXRhLCBkYXRhc3opOwogCiAgICAgaWYgKCBkYXRh ICE9ICh1aW50NjRfdCAqKWN0eC0+eDg2X3B2LnAybV9wZm5zICkKICAgICAgICAgZnJlZShkYXRh KTsKQEAgLTg2Niw3ICs4NjcsNyBAQCBzdGF0aWMgaW50IHdyaXRlX3NoYXJlZF9pbmZvKHN0cnVj dCB4Y19zcl9jb250ZXh0ICpjdHgpCiAgICAgICAgIC5kYXRhID0gY3R4LT54ODZfcHYuc2hpbmZv LAogICAgIH07CiAKLSAgICByZXR1cm4gd3JpdGVfcmVjb3JkKGN0eCwgJnJlYyk7CisgICAgcmV0 dXJuIHdyaXRlX3JlY29yZChjdHgsIGN0eC0+ZmQsICZyZWMpOwogfQogCiAvKgotLSAKMi43LjQK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK