From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH] drm/i915: Decouple execbuf uAPI from internal implementation Date: Thu, 14 Jan 2016 15:02:59 +0000 Message-ID: <1452783779-2364-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id E747C6E9F5 for ; Thu, 14 Jan 2016 07:03:09 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkF0IHRoZSBt b21lbnQgZXhlY2J1ZiByaW5nIHNlbGVjdGlvbiBpcyBmdWxseSBjb3VwbGVkIHRvCmludGVybmFs IHJpbmcgaWRzIHdoaWNoIGlzIG5vdCBhIGdvb2QgdGhpbmcgb24gaXRzIG93bi4KClRoaXMgZGVw ZW5kZW5jeSBpcyBhbHNvIHNwcmVhZCBiZXR3ZWVuIHR3byBzb3VyY2UgZmlsZXMgYW5kCm5vdCBz cGVsbGVkIG91dCBhdCBlaXRoZXIgc2lkZSB3aGljaCBtYWtlcyBpdCBoaWRkZW4gYW5kCmZyYWdp bGUuCgpUaGlzIHBhdGNoIGRlY291cGxlcyB0aGlzIGRlcGVuZGVuY3kgYnkgaW50cm9kdWNpbmcg YW4gZXhwbGljaXQKdHJhbnNsYXRpb24gdGFibGUgb2YgZXhlY2J1ZiB1QVBJIHRvIHJpbmcgaWQg Y2xvc2UgdG8gdGhlIG9ubHkKY2FsbCBzaXRlIChpOTE1X2dlbV9kb19leGVjYnVmZmVyKS4KClRo aXMgd2F5IHdlIGFyZSBmcmVlIHRvIGNoYW5nZSBkcml2ZXIgaW50ZXJuYWwgaW1wbGVtZW50YXRp b24KZGV0YWlscyB3aXRob3V0IGJyZWFraW5nIHVzZXJzcGFjZS4gQWxsIHN0YXRlIHJlbGF0aW5n IHRvIHRoZQp1QVBJIGlzIG5vdyBjb250YWluZWQgaW4sIG9yIG5leHQgdG8sIGk5MTVfZ2VtX2Rv X2V4ZWNidWZmZXIuCgpBcyBhIHNpZGUgYmVuZWZpdCwgdGhpcyBwYXRjaCBkZWNyZWFzZXMgdGhl IGNvbXBpbGVkIHNpemUKb2YgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlci4KClNpZ25lZC1vZmYtYnk6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0 dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg ICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAg ICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwg MTAzICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmggICAgfCAgMTAgKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDU2IGluc2Vy dGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGVi N2JiOTdmNzMxNi4uMzVkNWQ2MDk5YTQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTMz NCw3ICszMzQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlIHsKIAkJdW5zaWduZWQg Ym9vc3RzOwogCX0gcnBzOwogCi0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqYnNkX3Jpbmc7CisJ dW5zaWduZWQgaW50IGJzZF9yaW5nOwogfTsKIAogZW51bSBpbnRlbF9kcGxsX2lkIHsKQEAgLTEz MDAsNyArMTMwMCw3IEBAIHN0cnVjdCBpOTE1X2dlbV9tbSB7CiAJYm9vbCBidXN5OwogCiAJLyog dGhlIGluZGljYXRvciBmb3IgZGlzcGF0Y2ggdmlkZW8gY29tbWFuZHMgb24gdHdvIEJTRCByaW5n cyAqLwotCWludCBic2RfcmluZ19kaXNwYXRjaF9pbmRleDsKKwl1bnNpZ25lZCBpbnQgYnNkX3Jp bmdfZGlzcGF0Y2hfaW5kZXg7CiAKIAkvKiogQml0IDYgc3dpenpsaW5nIHJlcXVpcmVkIGZvciBY IHRpbGluZyAqLwogCXVpbnQzMl90IGJpdF82X3N3aXp6bGVfeDsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCmluZGV4IGRkYzIxZDRiMzg4ZC4uMjZlNjg0MmYyZGYzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKQEAgLTUxMTIsNiArNTExMiw4IEBAIGludCBpOTE1X2dlbV9vcGVuKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIAlzcGluX2xvY2tfaW5pdCgmZmls ZV9wcml2LT5tbS5sb2NrKTsKIAlJTklUX0xJU1RfSEVBRCgmZmlsZV9wcml2LT5tbS5yZXF1ZXN0 X2xpc3QpOwogCisJZmlsZV9wcml2LT5ic2RfcmluZyA9IC0xOworCiAJcmV0ID0gaTkxNV9nZW1f Y29udGV4dF9vcGVuKGRldiwgZmlsZSk7CiAJaWYgKHJldCkKIAkJa2ZyZWUoZmlsZV9wcml2KTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCBkNDY5YzQ3 NzlmZjUuLmNkODY0NmEyMzc4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYwpAQCAtMTMyOCwzMyArMTMyOCwyMyBAQCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1 Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAogLyoqCiAg KiBGaW5kIG9uZSBCU0QgcmluZyB0byBkaXNwYXRjaCB0aGUgY29ycmVzcG9uZGluZyBCU0QgY29t bWFuZC4KLSAqIFRoZSBSaW5nIElEIGlzIHJldHVybmVkLgorICogVGhlIHJpbmcgaW5kZXggaXMg cmV0dXJuZWQuCiAgKi8KLXN0YXRpYyBpbnQgZ2VuOF9kaXNwYXRjaF9ic2RfcmluZyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAotCQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlKQorc3RhdGljIHVu c2lnbmVkIGludAorZ2VuOF9kaXNwYXRjaF9ic2RfcmluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1faTkxNV9m aWxlX3ByaXZhdGUgKmZpbGVfcHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2OwogCi0JLyogQ2hlY2sg d2hldGhlciB0aGUgZmlsZV9wcml2IGlzIHVzaW5nIG9uZSByaW5nICovCi0JaWYgKGZpbGVfcHJp di0+YnNkX3JpbmcpCi0JCXJldHVybiBmaWxlX3ByaXYtPmJzZF9yaW5nLT5pZDsKLQllbHNlIHsK LQkJLyogSWYgbm8sIHVzZSB0aGUgcGluZy1wb25nIG1lY2hhbmlzbSB0byBzZWxlY3Qgb25lIHJp bmcgKi8KLQkJaW50IHJpbmdfaWQ7Ci0KLQkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OwotCQlpZiAoZGV2X3ByaXYtPm1tLmJzZF9yaW5nX2Rpc3BhdGNoX2luZGV4ID09IDApIHsKLQkJ CXJpbmdfaWQgPSBWQ1M7Ci0JCQlkZXZfcHJpdi0+bW0uYnNkX3JpbmdfZGlzcGF0Y2hfaW5kZXgg PSAxOwotCQl9IGVsc2UgewotCQkJcmluZ19pZCA9IFZDUzI7Ci0JCQlkZXZfcHJpdi0+bW0uYnNk X3JpbmdfZGlzcGF0Y2hfaW5kZXggPSAwOwotCQl9Ci0JCWZpbGVfcHJpdi0+YnNkX3JpbmcgPSAm ZGV2X3ByaXYtPnJpbmdbcmluZ19pZF07Ci0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOwotCQlyZXR1cm4gcmluZ19pZDsKKwkvKiBDaGVjayB3aGV0aGVyIHRoZSBmaWxlX3ByaXYg aGFzIGFscmVhZHkgc2VsZWN0ZWQgb25lIHJpbmcuICovCisJaWYgKChpbnQpZmlsZV9wcml2LT5i c2RfcmluZyA8IDApIHsKKwkJLyogSWYgbm90LCB1c2UgdGhlIHBpbmctcG9uZyBtZWNoYW5pc20g dG8gc2VsZWN0IG9uZS4gKi8KKwkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211 dGV4KTsKKwkJZmlsZV9wcml2LT5ic2RfcmluZyA9IGRldl9wcml2LT5tbS5ic2RfcmluZ19kaXNw YXRjaF9pbmRleDsKKwkJZGV2X3ByaXYtPm1tLmJzZF9yaW5nX2Rpc3BhdGNoX2luZGV4IF49IDE7 CisJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKIAl9CisKKwly ZXR1cm4gZmlsZV9wcml2LT5ic2RfcmluZzsKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICoKQEAgLTEzNzcsNiArMTM2NywxNiBAQCBlYl9nZXRfYmF0Y2goc3RydWN0IGVi X3ZtYXMgKmViKQogCXJldHVybiB2bWEtPm9iajsKIH0KIAorI2RlZmluZSBJOTE1X1VTRVJfUklO R1MgKDQpCisKK3N0YXRpYyBjb25zdCBlbnVtIGludGVsX3JpbmdfaWQgdXNlcl9yaW5nX21hcFtJ OTE1X1VTRVJfUklOR1MgKyAxXSA9IHsKKwlbSTkxNV9FWEVDX0RFRkFVTFRdCT0gUkNTLAorCVtJ OTE1X0VYRUNfUkVOREVSXQk9IFJDUywKKwlbSTkxNV9FWEVDX0JMVF0JCT0gQkNTLAorCVtJOTE1 X0VYRUNfQlNEXQkJPSBWQ1MsCisJW0k5MTVfRVhFQ19WRUJPWF0JPSBWRUNTCit9OworCiBzdGF0 aWMgaW50CiBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCkBAIC0xMzkzLDYgKzEz OTMsNyBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgcGFyYW1zX21hc3Rlcjsg LyogWFhYOiB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIgKi8KIAlzdHJ1Y3QgaTkxNV9leGVjYnVmZmVy X3BhcmFtcyAqcGFyYW1zID0gJnBhcmFtc19tYXN0ZXI7CiAJY29uc3QgdTMyIGN0eF9pZCA9IGk5 MTVfZXhlY2J1ZmZlcjJfZ2V0X2NvbnRleHRfaWQoKmFyZ3MpOworCXVuc2lnbmVkIGludCB1c2Vy X3JpbmdfaWQgPSBhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19SSU5HX01BU0s7CiAJdTMyIGRpc3Bh dGNoX2ZsYWdzOwogCWludCByZXQ7CiAJYm9vbCBuZWVkX3JlbG9jczsKQEAgLTE0MTQsNDkgKzE0 MTUsMzkgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19JU19QSU5ORUQpCiAJCWRp c3BhdGNoX2ZsYWdzIHw9IEk5MTVfRElTUEFUQ0hfUElOTkVEOwogCi0JaWYgKChhcmdzLT5mbGFn cyAmIEk5MTVfRVhFQ19SSU5HX01BU0spID4gTEFTVF9VU0VSX1JJTkcpIHsKLQkJRFJNX0RFQlVH KCJleGVjYnVmIHdpdGggdW5rbm93biByaW5nOiAlZFxuIiwKLQkJCSAgKGludCkoYXJncy0+Zmxh Z3MgJiBJOTE1X0VYRUNfUklOR19NQVNLKSk7CisJaWYgKHVzZXJfcmluZ19pZCA+IEk5MTVfVVNF Ul9SSU5HUykgeworCQlEUk1fREVCVUcoImV4ZWNidWYgd2l0aCB1bmtub3duIHJpbmc6ICV1XG4i LCB1c2VyX3JpbmdfaWQpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAoKChhcmdzLT5m bGFncyAmIEk5MTVfRVhFQ19SSU5HX01BU0spICE9IEk5MTVfRVhFQ19CU0QpICYmCisJaWYgKCh1 c2VyX3JpbmdfaWQgIT0gSTkxNV9FWEVDX0JTRCkgJiYKIAkgICAgKChhcmdzLT5mbGFncyAmIEk5 MTVfRVhFQ19CU0RfTUFTSykgIT0gMCkpIHsKIAkJRFJNX0RFQlVHKCJleGVjYnVmIHdpdGggbm9u IGJzZCByaW5nIGJ1dCB3aXRoIGludmFsaWQgIgogCQkJImJzZCBkaXNwYXRjaCBmbGFnczogJWRc biIsIChpbnQpKGFyZ3MtPmZsYWdzKSk7CiAJCXJldHVybiAtRUlOVkFMOwotCX0gCi0KLQlpZiAo KGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX1JJTkdfTUFTSykgPT0gSTkxNV9FWEVDX0RFRkFVTFQp Ci0JCXJpbmcgPSAmZGV2X3ByaXYtPnJpbmdbUkNTXTsKLQllbHNlIGlmICgoYXJncy0+ZmxhZ3Mg JiBJOTE1X0VYRUNfUklOR19NQVNLKSA9PSBJOTE1X0VYRUNfQlNEKSB7Ci0JCWlmIChIQVNfQlNE MihkZXYpKSB7Ci0JCQlpbnQgcmluZ19pZDsKLQotCQkJc3dpdGNoIChhcmdzLT5mbGFncyAmIEk5 MTVfRVhFQ19CU0RfTUFTSykgewotCQkJY2FzZSBJOTE1X0VYRUNfQlNEX0RFRkFVTFQ6Ci0JCQkJ cmluZ19pZCA9IGdlbjhfZGlzcGF0Y2hfYnNkX3JpbmcoZGV2LCBmaWxlKTsKLQkJCQlyaW5nID0g JmRldl9wcml2LT5yaW5nW3JpbmdfaWRdOwotCQkJCWJyZWFrOwotCQkJY2FzZSBJOTE1X0VYRUNf QlNEX1JJTkcxOgotCQkJCXJpbmcgPSAmZGV2X3ByaXYtPnJpbmdbVkNTXTsKLQkJCQlicmVhazsK LQkJCWNhc2UgSTkxNV9FWEVDX0JTRF9SSU5HMjoKLQkJCQlyaW5nID0gJmRldl9wcml2LT5yaW5n W1ZDUzJdOwotCQkJCWJyZWFrOwotCQkJZGVmYXVsdDoKLQkJCQlEUk1fREVCVUcoImV4ZWNidWYg d2l0aCB1bmtub3duIGJzZCByaW5nOiAlZFxuIiwKLQkJCQkJICAoaW50KShhcmdzLT5mbGFncyAm IEk5MTVfRVhFQ19CU0RfTUFTSykpOwotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJfQotCQl9IGVs c2UKLQkJCXJpbmcgPSAmZGV2X3ByaXYtPnJpbmdbVkNTXTsKLQl9IGVsc2UKLQkJcmluZyA9ICZk ZXZfcHJpdi0+cmluZ1soYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfUklOR19NQVNLKSAtIDFdOwor CX0KKworCWlmICh1c2VyX3JpbmdfaWQgPT0gSTkxNV9FWEVDX0JTRCAmJiBIQVNfQlNEMihkZXYp KSB7CisJCXVuc2lnbmVkIGludCBic2RfaWR4ID0gYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfQlNE X01BU0s7CisKKwkJaWYgKGJzZF9pZHggPT0gSTkxNV9FWEVDX0JTRF9ERUZBVUxUKSB7CisJCQli c2RfaWR4ID0gZ2VuOF9kaXNwYXRjaF9ic2RfcmluZyhkZXZfcHJpdiwgZmlsZSk7CisJCX0gZWxz ZSBpZiAoYnNkX2lkeCA+PSBJOTE1X0VYRUNfQlNEX1JJTkcxICYmCisJCQkgICBic2RfaWR4IDw9 IEk5MTVfRVhFQ19CU0RfUklORzIpIHsKKwkJCWJzZF9pZHgtLTsKKwkJfSBlbHNlIHsKKwkJCURS TV9ERUJVRygiZXhlY2J1ZiB3aXRoIHVua25vd24gYnNkIHJpbmc6ICV1XG4iLAorCQkJCSAgYnNk X2lkeCk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXJpbmcgPSAmZGV2X3ByaXYtPnJp bmdbX1ZDUyhic2RfaWR4KV07CisJfSBlbHNlIHsKKwkJcmluZyA9ICZkZXZfcHJpdi0+cmluZ1t1 c2VyX3JpbmdfbWFwW3VzZXJfcmluZ19pZF1dOworCX0KIAogCWlmICghaW50ZWxfcmluZ19pbml0 aWFsaXplZChyaW5nKSkgewotCQlEUk1fREVCVUcoImV4ZWNidWYgd2l0aCBpbnZhbGlkIHJpbmc6 ICVkXG4iLAotCQkJICAoaW50KShhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19SSU5HX01BU0spKTsK KwkJRFJNX0RFQlVHKCJleGVjYnVmIHdpdGggaW52YWxpZCByaW5nOiAldVxuIiwgdXNlcl9yaW5n X2lkKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmgKaW5kZXggNzM0OWQ5MjU4MTkxLi5mZGMyMjBmYzJiMTggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTE0OCwxNCArMTQ4LDE0IEBAIHN0cnVj dCAgaTkxNV9jdHhfd29ya2Fyb3VuZHMgewogc3RydWN0ICBpbnRlbF9lbmdpbmVfY3MgewogCWNv bnN0IGNoYXIJKm5hbWU7CiAJZW51bSBpbnRlbF9yaW5nX2lkIHsKLQkJUkNTID0gMHgwLAotCQlW Q1MsCisJCVJDUyA9IDAsCiAJCUJDUywKLQkJVkVDUywKLQkJVkNTMgorCQlWQ1MsCisJCVZDUzIs CS8qIEtlZXAgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIHR5cGUgZW5naW5lIHRvZ2V0aGVyLiAqLwor CQlWRUNTCiAJfSBpZDsKICNkZWZpbmUgSTkxNV9OVU1fUklOR1MgNQotI2RlZmluZSBMQVNUX1VT RVJfUklORyAoVkVDUyArIDEpCisjZGVmaW5lIF9WQ1MobikgKFZDUyArIChuKSkKIAl1MzIJCW1t aW9fYmFzZTsKIAlzdHJ1Y3QJCWRybV9kZXZpY2UgKmRldjsKIAlzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqYnVmZmVyOwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==