From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v5 1/4] xen: introduce a helper to allocate non-contiguous memory Date: Fri, 8 May 2015 16:34:08 +0200 Message-ID: <1431095651-25935-2-git-send-email-roger.pau@citrix.com> References: <1431095651-25935-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.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YqjM3-0008HM-L6 for xen-devel@lists.xenproject.org; Fri, 08 May 2015 14:34:19 +0000 In-Reply-To: <1431095651-25935-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Ian Campbell , Andrew Cooper , Tim Deegan , Stefano Stabellini , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VGhlIGFsbG9jYXRvciB1c2VzIGluZGVwZW5kZW50IGNhbGxzIHRvIGFsbG9jX2RvbWhlYXBfcGFn ZXMgaW4gb3JkZXIgdG8gZ2V0CnRoZSBkZXNpcmVkIGFtb3VudCBvZiBtZW1vcnkgYW5kIHRoZW4g bWFwcyBhbGwgdGhlIGluZGVwZW5kZW50IHBoeXNpY2FsCmFkZHJlc3NlcyBpbnRvIGEgY29udGln dW91cyB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9u bsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KVGVzdGVkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGll bi5ncmFsbEBjaXRyaXguY29tPiAoQVJNKQpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5v LnN0YWJlbGxpbmlAY2l0cml4LmNvbT4KQ2M6IElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNp dHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBUaW0gRGVl Z2FuIDx0aW1AeGVuLm9yZz4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+Ci0tLQpDaGFuZ2VzIHNpbmNlIHY0OgogLSBSZW1vdmUgdGhlIHJlZC1ibGFjayB0cmVl LCB0aGUgc2FtZSBjYW4gYmUgYWNoaWV2ZWQgYnkgZG9pbmcgYSBWQSAtPiBNRk4KICAgdHJhbnNs YXRpb24uCiAtIFByb3ZpZGUgYSB2emFsbG9jIHRoYXQgemVyb2VzIHRoZSBhbGxvY2F0ZWQgbWVt b3J5IGFyZWEuCiAtIEFsbG9jYXRlIGRvbWhlYXAgYW5ub255bW91cyBwYWdlcy4KLS0tCiB4ZW4v Y29tbW9uL3ZtYXAuYyAgICAgICAgICB8ICAyICstCiB4ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5j ICB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhl bi9pbmNsdWRlL2FzbS1hcm0vbW0uaCAgIHwgIDIgKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvcGFn ZS5oIHwgIDIgKysKIHhlbi9pbmNsdWRlL3hlbi92bWFwLmggICAgIHwgIDEgKwogeGVuL2luY2x1 ZGUveGVuL3htYWxsb2MuaCAgfCAgNCArKysKIDYgZmlsZXMgY2hhbmdlZCwgNzIgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdm1hcC5jIGIveGVu L2NvbW1vbi92bWFwLmMKaW5kZXggNzM5ZDQ2OC4uMjQ4Y2VlYyAxMDA2NDQKLS0tIGEveGVuL2Nv bW1vbi92bWFwLmMKKysrIGIveGVuL2NvbW1vbi92bWFwLmMKQEAgLTE0Niw3ICsxNDYsNyBAQCBz dGF0aWMgdW5zaWduZWQgaW50IHZtX2luZGV4KGNvbnN0IHZvaWQgKnZhKQogICAgICAgICAgICB0 ZXN0X2JpdChpZHgsIHZtX2JpdG1hcCkgPyBpZHggOiAwOwogfQogCi1zdGF0aWMgdW5zaWduZWQg aW50IHZtX3NpemUoY29uc3Qgdm9pZCAqdmEpCit1bnNpZ25lZCBpbnQgdm1fc2l6ZShjb25zdCB2 b2lkICp2YSkKIHsKICAgICB1bnNpZ25lZCBpbnQgc3RhcnQgPSB2bV9pbmRleCh2YSksIGVuZDsK IApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi94bWFsbG9jX3Rsc2YuYyBiL3hlbi9jb21tb24veG1h bGxvY190bHNmLmMKaW5kZXggYjEzMzE3ZS4uZmUzMDMyZSAxMDA2NDQKLS0tIGEveGVuL2NvbW1v bi94bWFsbG9jX3Rsc2YuYworKysgYi94ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jCkBAIC0yNyw2 ICsyNyw3IEBACiAjaW5jbHVkZSA8eGVuL2lycS5oPgogI2luY2x1ZGUgPHhlbi9tbS5oPgogI2lu Y2x1ZGUgPHhlbi9wZm4uaD4KKyNpbmNsdWRlIDx4ZW4vdm1hcC5oPgogI2luY2x1ZGUgPGFzbS90 aW1lLmg+CiAKICNkZWZpbmUgTUFYX1BPT0xfTkFNRV9MRU4gICAgICAgMTYKQEAgLTYxMyw2ICs2 MTQsMTMgQEAgdm9pZCAqX3h6YWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25n IGFsaWduKQogICAgIHJldHVybiBwID8gbWVtc2V0KHAsIDAsIHNpemUpIDogcDsKIH0KIAordm9p ZCAqdnphbGxvYyh1bnNpZ25lZCBsb25nIHNpemUpCit7CisgICAgdm9pZCAqcCA9IHZtYWxsb2Mo c2l6ZSk7CisKKyAgICByZXR1cm4gcCA/IG1lbXNldChwLCAwLCBzaXplKSA6IHA7Cit9CisKIHZv aWQgeGZyZWUodm9pZCAqcCkKIHsKICAgICBzdHJ1Y3QgYmhkciAqYjsKQEAgLTY1MSwzICs2NTks NTcgQEAgdm9pZCB4ZnJlZSh2b2lkICpwKQogCiAgICAgeG1lbV9wb29sX2ZyZWUocCwgeGVucG9v bCk7CiB9CisKK3ZvaWQgKnZtYWxsb2ModW5zaWduZWQgbG9uZyBzaXplKQoreworICAgIHVuc2ln bmVkIGxvbmcgKm1mbjsKKyAgICB1bnNpZ25lZCBsb25nIHBhZ2VzLCBpOworICAgIHN0cnVjdCBw YWdlX2luZm8gKnBnOworICAgIHZvaWQgKnZhID0gTlVMTDsKKworICAgIEFTU0VSVCghaW5faXJx KCkpOworCisgICAgaWYgKCBzaXplID09IDAgKQorICAgICAgICByZXR1cm4gWkVST19CTE9DS19Q VFI7CisKKyAgICBwYWdlcyA9IERJVl9ST1VORF9VUChzaXplLCBQQUdFX1NJWkUpOworICAgIG1m biA9IHh6YWxsb2NfYXJyYXkodW5zaWduZWQgbG9uZywgcGFnZXMpOworICAgIGlmICggbWZuID09 IE5VTEwgKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgcGFn ZXM7IGkrKyApCisgICAgeworICAgICAgICBwZyA9IGFsbG9jX2RvbWhlYXBfcGFnZXMoTlVMTCwg MSwgMCk7CisgICAgICAgIGlmICggcGcgPT0gTlVMTCApCisgICAgICAgICAgICBnb3RvIGVycm9y OworICAgICAgICBtZm5baV0gPSBwYWdlX3RvX21mbihwZyk7CisgICAgfQorCisgICAgdmEgPSB2 bWFwKG1mbiwgcGFnZXMpOworICAgIGlmICggdmEgPT0gTlVMTCApCisgICAgICAgIGdvdG8gZXJy b3I7CisKKyAgICB4ZnJlZShtZm4pOworICAgIHJldHVybiB2YTsKKworIGVycm9yOgorICAgIHZ1 bm1hcCh2YSk7CisgICAgZm9yICggaSA9IDA7IGkgPCBwYWdlczsgaSsrICkKKyAgICAgICAgaWYg KCBtZm5baV0gIT0gMCApCisgICAgICAgICAgICBmcmVlX2RvbWhlYXBfcGFnZXMobWZuX3RvX3Bh Z2UobWZuW2ldKSwgMSk7CisgICAgeGZyZWUobWZuKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKwor dm9pZCB2ZnJlZSh2b2lkICp2YSkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaSwgcGFnZXMgPSB2bV9z aXplKHZhKTsKKworICAgIGlmICggcGFnZXMgPT0gMCApCisgICAgICAgIHJldHVybjsKKworICAg IGZvciAoIGkgPSAwOyBpIDwgcGFnZXM7IGkrKyApCisgICAgICAgIGZyZWVfZG9taGVhcF9wYWdl cyh2bWFwX3RvX3BhZ2UodmEgKyBpICogUEFHRV9TSVpFKSwgMSk7CisKKyAgICB2dW5tYXAodmEp OworfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oIGIveGVuL2luY2x1ZGUv YXNtLWFybS9tbS5oCmluZGV4IGQyNWU0ODUuLmMwYWZjZWMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vbW0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKQEAgLTIwOCw2 ICsyMDgsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19pb21lbSAqaW9yZW1hcF93YyhwYWRkcl90 IHN0YXJ0LCBzaXplX3QgbGVuKQogI2RlZmluZSBwZm5fdG9fcGFkZHIocGZuKSAoKHBhZGRyX3Qp KHBmbikgPDwgUEFHRV9TSElGVCkKICNkZWZpbmUgcGFkZHJfdG9fcGZuKHBhKSAgKCh1bnNpZ25l ZCBsb25nKSgocGEpID4+IFBBR0VfU0hJRlQpKQogI2RlZmluZSBwYWRkcl90b19wZHgocGEpICAg IHBmbl90b19wZHgocGFkZHJfdG9fcGZuKHBhKSkKKyNkZWZpbmUgdm1hcF90b19tZm4odmEpICAg ICBwYWRkcl90b19wZm4odmlydF90b19tYWRkcigodmFkZHJfdCl2YSkpCisjZGVmaW5lIHZtYXBf dG9fcGFnZSh2YSkgICAgbWZuX3RvX3BhZ2Uodm1hcF90b19tZm4odmEpKQogCiAvKiBQYWdlLWFs aWduIGFkZHJlc3MgYW5kIGNvbnZlcnQgdG8gZnJhbWUgbnVtYmVyIGZvcm1hdCAqLwogI2RlZmlu ZSBwYWRkcl90b19wZm5fYWxpZ25lZChwYWRkcikgICAgcGFkZHJfdG9fcGZuKFBBR0VfQUxJR04o cGFkZHIpKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L3BhZ2UuaAppbmRleCBhOGJjOTk5Li44OTc3YTc2IDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2Uu aApAQCAtMjYyLDYgKzI2Miw4IEBAIHZvaWQgY29weV9wYWdlX3NzZTIodm9pZCAqLCBjb25zdCB2 b2lkICopOwogI2RlZmluZSBwZm5fdG9fcGFkZHIocGZuKSAgIF9fcGZuX3RvX3BhZGRyKHBmbikK ICNkZWZpbmUgcGFkZHJfdG9fcGZuKHBhKSAgICBfX3BhZGRyX3RvX3BmbihwYSkKICNkZWZpbmUg cGFkZHJfdG9fcGR4KHBhKSAgICBwZm5fdG9fcGR4KHBhZGRyX3RvX3BmbihwYSkpCisjZGVmaW5l IHZtYXBfdG9fbWZuKHZhKSAgICAgbDFlX2dldF9wZm4oKnZpcnRfdG9feGVuX2wxZSgodW5zaWdu ZWQgbG9uZykodmEpKSkKKyNkZWZpbmUgdm1hcF90b19wYWdlKHZhKSAgICBtZm5fdG9fcGFnZSh2 bWFwX3RvX21mbih2YSkpCiAKICNlbmRpZiAvKiAhZGVmaW5lZChfX0FTU0VNQkxZX18pICovCiAK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi92bWFwLmggYi94ZW4vaW5jbHVkZS94ZW4vdm1h cC5oCmluZGV4IGIxOTIzZGQuLmJjNWM4NjIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi92 bWFwLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3ZtYXAuaApAQCAtMTEsNiArMTEsNyBAQCB2b2lk ICpfX3ZtYXAoY29uc3QgdW5zaWduZWQgbG9uZyAqbWZuLCB1bnNpZ25lZCBpbnQgZ3JhbnVsYXJp dHksCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgYWxpZ24sIHVu c2lnbmVkIGludCBmbGFncyk7CiB2b2lkICp2bWFwKGNvbnN0IHVuc2lnbmVkIGxvbmcgKm1mbiwg dW5zaWduZWQgaW50IG5yKTsKIHZvaWQgdnVubWFwKGNvbnN0IHZvaWQgKik7Cit1bnNpZ25lZCBp bnQgdm1fc2l6ZShjb25zdCB2b2lkICp2YSk7CiAKIHZvaWQgX19pb21lbSAqaW9yZW1hcChwYWRk cl90LCBzaXplX3QpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5oIGIv eGVuL2luY2x1ZGUveGVuL3htYWxsb2MuaAppbmRleCAyNGE5OWFjLi5iZTE1N2JmIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi94bWFs bG9jLmgKQEAgLTMwLDYgKzMwLDEwIEBAIGV4dGVybiB2b2lkIHhmcmVlKHZvaWQgKik7CiBleHRl cm4gdm9pZCAqX3htYWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWdu KTsKIGV4dGVybiB2b2lkICpfeHphbGxvYyh1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxv bmcgYWxpZ24pOwogCit2b2lkICp2bWFsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSk7Cit2b2lkICp2 emFsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSk7Cit2b2lkIHZmcmVlKHZvaWQgKnZhKTsKKwogc3Rh dGljIGlubGluZSB2b2lkICpfeG1hbGxvY19hcnJheSgKICAgICB1bnNpZ25lZCBsb25nIHNpemUs IHVuc2lnbmVkIGxvbmcgYWxpZ24sIHVuc2lnbmVkIGxvbmcgbnVtKQogewotLSAKMS45LjUgKEFw cGxlIEdpdC01MC4zKQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==