From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7C0D4893B9 for ; Thu, 21 Feb 2019 19:27:55 +0000 (UTC) From: Antonio Argenziano Date: Thu, 21 Feb 2019 11:27:42 -0800 Message-Id: <20190221192745.31178-3-antonio.argenziano@intel.com> In-Reply-To: <20190221192745.31178-1-antonio.argenziano@intel.com> References: <20190221192745.31178-1-antonio.argenziano@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC 2/5] lib/ioctl_wrappers: add mmap_offset support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Janulgue Abdiel , Matthew Auld List-ID: RnJvbTogIkthbGFtYXJ6LCBMdWthc3oiIDxsdWthc3oua2FsYW1hcnpAaW50ZWwuY29tPgoKV2l0 aCByZWNlbnRseSBwcm9wb3NlZCBjaGFuZ2VzLCBJR1QgbmVlZCB0byBzdGFydCBzdXBwb3J0aW5n IG5ldwp3YXkgb2YgbW1hcGluZyBvYmplY3QsIHdoaWNoIHdpbGwgYmUgdXNlZCBmcm9tIG5vdyBi eSBkZWZhdWx0LgpUaGlzIHBhdGNoIG1vZGlmeSBnZW1fbW1hcF93YyBhbmQgZ2VtX21tYXAgZnVu Y3Rpb25zIHRvIGJlCmluIHN5bmMgd2l0aCB0aG9zZSBjaGFuZ2VzLgoKU2lnbmVkLW9mZi1ieTog THVrYXN6IEthbGFtYXJ6IDxsdWthc3oua2FsYW1hcnpAaW50ZWwuY29tPgpDYzogSmFudWxndWUg QWJkaWVsIDxhYmRpZWwuamFudWxndWVAaW50ZWwuY29tPgpDYzogTWF0dGhldyBBdWxkIDxtYXR0 aGV3LmF1bGRAaW50ZWwuY29tPgpDYzogTWljaGFsIFdpbmlhcnNraSA8bWljaGFsLndpbmlhcnNr aUBpbnRlbC5jb20+CkNjOiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8uYXJnZW56aWFub0Bp bnRlbC5jb20+CkNjOiBEYW5pZWxlIFNwdXJpbyBDZXJhb2xvIDxkYW5pZWxlLmNlcmFvbG9zcHVy aW9AaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXgu aW50ZWwuY29tPgotLS0KIGxpYi9pb2N0bF93cmFwcGVycy5jIHwgMTUwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMjkgaW5zZXJ0 aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lvY3RsX3dyYXBwZXJz LmMgYi9saWIvaW9jdGxfd3JhcHBlcnMuYwppbmRleCA0MDRjMmZiZi4uZDliNDYwODggMTAwNjQ0 Ci0tLSBhL2xpYi9pb2N0bF93cmFwcGVycy5jCisrKyBiL2xpYi9pb2N0bF93cmFwcGVycy5jCkBA IC02NDEsNiArNjQxLDI0IEBAIHZvaWQgZ2VtX2V4ZWNidWZfd3IoaW50IGZkLCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2V4ZWNidWZmZXIyICpleGVjYnVmKQogCWlndF9hc3NlcnRfZXEoX19nZW1fZXhl Y2J1Zl93cihmZCwgZXhlY2J1ZiksIDApOwogfQogCitzdGF0aWMgYm9vbCBoYXNfbW1hcF9vZmZz ZXQoaW50IGZkKQoreworCXN0YXRpYyBpbnQgaGFzX21tYXBfb2Zmc2V0ID0gLTE7CisKKwlpZiAo aGFzX21tYXBfb2Zmc2V0ID09IC0xKSB7CisJCXN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSBncDsK KworCQloYXNfbW1hcF9vZmZzZXQgPSAwOworCisJCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkp OworCQlncC5wYXJhbSA9IDB4MjQ7IC8qIEk5MTVfUEFSQU1fTU1BUF9PRkZTRVRfVkVSU0lPTiAq LworCQlncC52YWx1ZSA9ICZoYXNfbW1hcF9vZmZzZXQ7CisJCWlvY3RsKGZkLCBEUk1fSU9DVExf STkxNV9HRVRQQVJBTSwgJmdwKTsKKwl9CisKKwlyZXR1cm4gaGFzX21tYXBfb2Zmc2V0ID4gMDsK K30KKwogLyoqCiAgKiBfX2dlbV9tbWFwX19ndHQ6CiAgKiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmls ZSBkZXNjcmlwdG9yCkBAIC03MDIsNDAgKzcyMCw4MyBAQCBpbnQgZ2VtX211bm1hcCh2b2lkICpw dHIsIHVpbnQ2NF90IHNpemUpCiAJcmV0dXJuIHJldDsKIH0KIAorc3RydWN0IGxvY2FsX2RybV9p OTE1X2dlbV9tbWFwX29mZnNldCB7CisJLyoqIEhhbmRsZSBmb3IgdGhlIG9iamVjdCBiZWluZyBt YXBwZWQuICovCisJX191MzIgaGFuZGxlOworCV9fdTMyIHBhZDsKKwkvKioKKwkgKiBGYWtlIG9m ZnNldCB0byB1c2UgZm9yIHN1YnNlcXVlbnQgbW1hcCBjYWxsCisJICoKKwkgKiBUaGlzIGlzIGEg Zml4ZWQtc2l6ZSB0eXBlIGZvciAzMi82NCBjb21wYXRpYmlsaXR5LgorCSAqLworCV9fdTY0IG9m ZnNldDsKKworCS8qKgorCSAqIEZsYWdzIGZvciBleHRlbmRlZCBiZWhhdmlvdXIuCisJICoKKwkg KiBJdCBpcyBtYW5kYXRvcnkgdGhhdCBlaXRoZXIgb25lIG9mIHRoZSBfV0MvX1dCIGZsYWdzCisJ ICogc2hvdWxkIGJlIHBhc3NlZCBoZXJlLgorCSAqLworCV9fdTY0IGZsYWdzOworfTsKKworI2Rl ZmluZSBMT0NBTF9EUk1fSTkxNV9HRU1fTU1BUF9PRkZTRVQgMHgyNAorI2RlZmluZSBMT0NBTF9J OTE1X01NQVBfT0ZGU0VUX1dDICgxIDw8IDApCisjZGVmaW5lIExPQ0FMX0k5MTVfTU1BUF9PRkZT RVRfV0IgKDEgPDwgMSkKKyNkZWZpbmUgTE9DQUxfSTkxNV9NTUFQX09GRlNFVF9VQyAoMSA8PCAy KQorCisjZGVmaW5lIExPQ0FMX0RSTV9JT0NUTF9JOTE1X0dFTV9NTUFQX09GRlNFVCBcCisJCURS TV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBMT0NBTF9EUk1fSTkxNV9HRU1fTU1BUF9PRkZTRVQs IHN0cnVjdCBsb2NhbF9kcm1faTkxNV9nZW1fbW1hcF9vZmZzZXQpCisKIGJvb2wgZ2VtX21tYXBf X2hhc193YyhpbnQgZmQpCiB7CiAJc3RhdGljIGludCBoYXNfd2MgPSAtMTsKIAogCWlmIChoYXNf d2MgPT0gLTEpIHsKLQkJc3RydWN0IGRybV9pOTE1X2dldHBhcmFtIGdwOwotCQlpbnQgbW1hcF92 ZXJzaW9uID0gLTE7Ci0JCWludCBndHRfdmVyc2lvbiA9IC0xOwogCiAJCWhhc193YyA9IDA7CiAK LQkJbWVtc2V0KCZncCwgMCwgc2l6ZW9mKGdwKSk7Ci0JCWdwLnBhcmFtID0gSTkxNV9QQVJBTV9N TUFQX0dUVF9WRVJTSU9OOwotCQlncC52YWx1ZSA9ICZndHRfdmVyc2lvbjsKLQkJaW9jdGwoZmQs IERSTV9JT0NUTF9JOTE1X0dFVFBBUkFNLCAmZ3ApOwotCi0JCW1lbXNldCgmZ3AsIDAsIHNpemVv ZihncCkpOwotCQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fTU1BUF9WRVJTSU9OOwotCQlncC52YWx1 ZSA9ICZtbWFwX3ZlcnNpb247Ci0JCWlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJBTSwg JmdwKTsKLQotCQkvKiBEbyB3ZSBoYXZlIHRoZSBuZXcgbW1hcF9pb2N0bCB3aXRoIERPTUFJTl9X Qz8gKi8KLQkJaWYgKG1tYXBfdmVyc2lvbiA+PSAxICYmIGd0dF92ZXJzaW9uID49IDIpIHsKLQkJ CXN0cnVjdCBkcm1faTkxNV9nZW1fbW1hcCBhcmc7CisJCS8qIERvIHdlIGhhdmUgdGhlIG5ldyBt bWFwX29mZnNldCBpb2N0bD8gKi8KKwkJaWYgKGhhc19tbWFwX29mZnNldChmZCkpIHsKKwkJCXN0 cnVjdCBsb2NhbF9kcm1faTkxNV9nZW1fbW1hcF9vZmZzZXQgYXJnOwogCiAJCQkvKiBEb2VzIHRo aXMgZGV2aWNlIHN1cHBvcnQgd2MtbW1hcHMgPyAqLwogCQkJbWVtc2V0KCZhcmcsIDAsIHNpemVv ZihhcmcpKTsKIAkJCWFyZy5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKIAkJCWFyZy5v ZmZzZXQgPSAwOwotCQkJYXJnLnNpemUgPSA0MDk2OwotCQkJYXJnLmZsYWdzID0gSTkxNV9NTUFQ X1dDOwotCQkJaGFzX3djID0gaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fTU1BUCwg JmFyZykgPT0gMDsKKwkJCWFyZy5mbGFncyA9IExPQ0FMX0k5MTVfTU1BUF9PRkZTRVRfV0M7CisJ CQloYXNfd2MgPSBpZ3RfaW9jdGwoZmQsIExPQ0FMX0RSTV9JT0NUTF9JOTE1X0dFTV9NTUFQX09G RlNFVCwgJmFyZykgPT0gMDsKIAkJCWdlbV9jbG9zZShmZCwgYXJnLmhhbmRsZSk7CisJCX0gZWxz ZSB7CisJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2V0cGFyYW0gZ3A7CisJCQlpbnQgbW1hcF92ZXJzaW9u ID0gLTE7CisJCQlpbnQgZ3R0X3ZlcnNpb24gPSAtMTsKKworCQkJbWVtc2V0KCZncCwgMCwgc2l6 ZW9mKGdwKSk7CisJCQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fTU1BUF9HVFRfVkVSU0lPTjsKKwkJ CWdwLnZhbHVlID0gJmd0dF92ZXJzaW9uOworCQkJaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dF VFBBUkFNLCAmZ3ApOworCisJCQltZW1zZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKKwkJCWdwLnBh cmFtID0gSTkxNV9QQVJBTV9NTUFQX1ZFUlNJT047CisJCQlncC52YWx1ZSA9ICZtbWFwX3ZlcnNp b247CisJCQlpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7CisKKwkJCS8q IERvIHdlIGhhdmUgdGhlIG1tYXBfaW9jdGwgd2l0aCBET01BSU5fV0M/ICovCisJCQlpZiAobW1h cF92ZXJzaW9uID49IDEgJiYgZ3R0X3ZlcnNpb24gPj0gMikgeworCQkJCXN0cnVjdCBkcm1faTkx NV9nZW1fbW1hcCBhcmc7CisKKwkJCQkvKiBEb2VzIHRoaXMgZGV2aWNlIHN1cHBvcnQgd2MtbW1h cHMgPyAqLworCQkJCW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7CisJCQkJYXJnLmhhbmRs ZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOworCQkJCWFyZy5vZmZzZXQgPSAwOworCQkJCWFyZy5z aXplID0gNDA5NjsKKwkJCQlhcmcuZmxhZ3MgPSBJOTE1X01NQVBfV0M7CisJCQkJaGFzX3djID0g aWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fTU1BUCwgJmFyZykgPT0gMDsKKwkJCQln ZW1fY2xvc2UoZmQsIGFyZy5oYW5kbGUpOworCQkJfQogCQl9CisKIAkJZXJybm8gPSAwOwogCX0K IApAQCAtNzc4LDYgKzgzOSw0MyBAQCBzdGF0aWMgdm9pZAogCXJldHVybiBmcm9tX3VzZXJfcG9p bnRlcihhcmcuYWRkcl9wdHIpOwogfQogCisvKioKKyAqIF9fZ2VtX21tYXBfb2Zmc2V0OgorICog QGZkOiBvcGVuIGk5MTUgZHJtIGZpbGUgZGVzY3JpcHRvcgorICogQGhhbmRsZTogZ2VtIGJ1ZmZl ciBvYmplY3QgaGFuZGxlCisgKiBAb2Zmc2V0OiBvZmZzZXQgaW4gdGhlIGdlbSBidWZmZXIgb2Yg dGhlIG1tYXAgYXJlbmEKKyAqIEBzaXplOiBzaXplIG9mIHRoZSBtbWFwIGFyZW5hCisgKiBAcHJv dDogbWVtb3J5IHByb3RlY3Rpb24gYml0cyBhcyB1c2VkIGJ5IG1tYXAoKQorICogQGZsYWdzOiBm bGFncyB1c2VkIHRvIGRldGVybWluZSBjYWNoaW5nCisgKgorICogU2ltaWxhciB0byBfX2dlbV9t bWFwIGJ1dCB1c2UgTU1BUF9PRkZTRVQgSU9DVEwuCisgKgorICogUmV0dXJuczogQSBwb2ludGVy IHRvIHRoZSBjcmVhdGVkIG1lbW9yeSBtYXBwaW5nLCBOVUxMIG9uIGZhaWx1cmUuCisgKi8KK3N0 YXRpYyB2b2lkCisqX19nZW1fbW1hcF9vZmZzZXQoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVp bnQ2NF90IG9mZnNldCwgdWludDY0X3Qgc2l6ZSwgdW5zaWduZWQgaW50IHByb3QsIHVpbnQ2NF90 IGZsYWdzKQoreworCXN0cnVjdCBsb2NhbF9kcm1faTkxNV9nZW1fbW1hcF9vZmZzZXQgYXJnOwor CXZvaWQgKnB0cjsKKworCW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7CisJYXJnLmhhbmRs ZSA9IGhhbmRsZTsKKwlhcmcub2Zmc2V0ID0gb2Zmc2V0OworCWFyZy5mbGFncyA9IGZsYWdzOwor CisJaWYgKGlndF9pb2N0bChmZCwgTE9DQUxfRFJNX0lPQ1RMX0k5MTVfR0VNX01NQVBfT0ZGU0VU LCAmYXJnKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlwdHIgPSBtbWFwNjQoMCwgc2l6ZSwgcHJvdCwg TUFQX1NIQVJFRCwgZmQsIGFyZy5vZmZzZXQpOworCisJaWYgKHB0ciA9PSBNQVBfRkFJTEVEKQor CQlwdHIgPSBOVUxMOworCWVsc2UKKwkJZXJybm8gPSAwOworCisJcmV0dXJuIHB0cjsKK30KKwog LyoqCiAgKiBfX2dlbV9tbWFwX193YzoKICAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2Ny aXB0b3IKQEAgLTc5NSw3ICs4OTMsMTAgQEAgc3RhdGljIHZvaWQKICAqLwogdm9pZCAqX19nZW1f bW1hcF9fd2MoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0 X3Qgc2l6ZSwgdW5zaWduZWQgcHJvdCkKIHsKLQlyZXR1cm4gX19nZW1fbW1hcChmZCwgaGFuZGxl LCBvZmZzZXQsIHNpemUsIHByb3QsIEk5MTVfTU1BUF9XQyk7CisJaWYgKGhhc19tbWFwX29mZnNl dChmZCkpCisJCXJldHVybiBfX2dlbV9tbWFwX29mZnNldChmZCwgaGFuZGxlLCBvZmZzZXQsIHNp emUsIHByb3QsIExPQ0FMX0k5MTVfTU1BUF9PRkZTRVRfV0MpOworCWVsc2UKKwkJcmV0dXJuIF9f Z2VtX21tYXAoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCBJOTE1X01NQVBfV0MpOwog fQogCiAvKioKQEAgLTgzMiw3ICs5MzMsMTQgQEAgdm9pZCAqZ2VtX21tYXBfX3djKGludCBmZCwg dWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90IHNpemUsIHVuc2kKICAq Lwogdm9pZCAqX19nZW1fbW1hcF9fY3B1KGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRf dCBvZmZzZXQsIHVpbnQ2NF90IHNpemUsIHVuc2lnbmVkIHByb3QpCiB7Ci0JcmV0dXJuIF9fZ2Vt X21tYXAoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCAwKTsKKwl2b2lkICpwdHI7CisK KwlpZiAoaGFzX21tYXBfb2Zmc2V0KGZkKSkKKwkJcHRyID0gX19nZW1fbW1hcF9vZmZzZXQoZmQs IGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCBMT0NBTF9JOTE1X01NQVBfT0ZGU0VUX1dCKTsK KwllbHNlCisJCXB0ciA9IF9fZ2VtX21tYXAoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90 LCAwKTsKKworCXJldHVybiBwdHI7CiB9CiAKIC8qKgotLSAKMi4yMC4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdApp Z3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=