From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v3 2/7] drm: Introduce drm_mode_object_{get,put}() Date: Tue, 28 Feb 2017 15:46:38 +0100 Message-ID: <20170228144643.5668-3-thierry.reding@gmail.com> References: <20170228144643.5668-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1769F6E740 for ; Tue, 28 Feb 2017 14:46:51 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id u48so1930781wrc.1 for ; Tue, 28 Feb 2017 06:46:51 -0800 (PST) In-Reply-To: <20170228144643.5668-1-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Daniel Vetter , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkZvciBjb25zaXN0ZW5j eSB3aXRoIG90aGVyIHJlZmVyZW5jZSBjb3VudGluZyBBUElzIGluIHRoZSBrZXJuZWwsIGFkZApk cm1fbW9kZV9vYmplY3RfZ2V0KCkgYW5kIGRybV9tb2RlX29iamVjdF9wdXQoKSB0byByZWZlcmVu Y2UgY291bnQgRFJNCm1vZGUgb2JqZWN0cy4KCkNvbXBhdGliaWxpdHkgYWxpYXNlcyBhcmUgYWRk ZWQgdG8ga2VlcCBleGlzdGluZyBjb2RlIHdvcmtpbmcuIFRvIGhlbHAKc3BlZWQgdXAgdGhlIHRy YW5zaXRpb24sIGFsbCB0aGUgaW5zdGFuY2VzIG9mIHRoZSBvbGQgZnVuY3Rpb25zIGluIHRoZQpE Uk0gY29yZSBhcmUgYWxyZWFkeSByZXBsYWNlZCBpbiB0aGlzIGNvbW1pdC4KCkEgc2VtYW50aWMg cGF0Y2ggaXMgcHJvdmlkZWQgdGhhdCBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IGFsbCBkcml2ZXJz IHRvCnRoZSBuZXcgaGVscGVycy4KClJldmlld2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNo cm9taXVtLm9yZz4KQWNrZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdA YW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgICAgIHwgMTQgKysr KystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9vYmplY3QuYyAgICAgICAgfCAyNiAr KysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jICAgICAg ICAgICB8ICA2ICsrLS0tCiBpbmNsdWRlL2RybS9kcm1fbW9kZV9vYmplY3QuaCAgICAgICAgICAg IHwgMzYgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBzY3JpcHRzL2NvY2NpbmVsbGUvYXBp L2RybS1nZXQtcHV0LmNvY2NpIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IDUgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jCmluZGV4IGE1NjczMTA3ZGIyNi4uMmJiMGE3NTllOGVjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKQEAgLTIxMjIsMTMgKzIxMjIsMTMgQEAgaW50IGRybV9tb2RlX2F0b21pY19p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQl9CiAKIAkJaWYgKCFvYmotPnByb3BlcnRp ZXMpIHsKLQkJCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShvYmopOworCQkJZHJtX21vZGVf b2JqZWN0X3B1dChvYmopOwogCQkJcmV0ID0gLUVOT0VOVDsKIAkJCWdvdG8gb3V0OwogCQl9CiAK IAkJaWYgKGdldF91c2VyKGNvdW50X3Byb3BzLCBjb3VudF9wcm9wc19wdHIgKyBjb3BpZWRfb2Jq cykpIHsKLQkJCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShvYmopOworCQkJZHJtX21vZGVf b2JqZWN0X3B1dChvYmopOwogCQkJcmV0ID0gLUVGQVVMVDsKIAkJCWdvdG8gb3V0OwogCQl9CkBA IC0yMTQxLDE0ICsyMTQxLDE0IEBAIGludCBkcm1fbW9kZV9hdG9taWNfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7CiAKIAkJCWlmIChn ZXRfdXNlcihwcm9wX2lkLCBwcm9wc19wdHIgKyBjb3BpZWRfcHJvcHMpKSB7Ci0JCQkJZHJtX21v ZGVfb2JqZWN0X3VucmVmZXJlbmNlKG9iaik7CisJCQkJZHJtX21vZGVfb2JqZWN0X3B1dChvYmop OwogCQkJCXJldCA9IC1FRkFVTFQ7CiAJCQkJZ290byBvdXQ7CiAJCQl9CiAKIAkJCXByb3AgPSBk cm1fbW9kZV9vYmpfZmluZF9wcm9wX2lkKG9iaiwgcHJvcF9pZCk7CiAJCQlpZiAoIXByb3ApIHsK LQkJCQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uob2JqKTsKKwkJCQlkcm1fbW9kZV9vYmpl Y3RfcHV0KG9iaik7CiAJCQkJcmV0ID0gLUVOT0VOVDsKIAkJCQlnb3RvIG91dDsKIAkJCX0KQEAg LTIxNTYsMTQgKzIxNTYsMTQgQEAgaW50IGRybV9tb2RlX2F0b21pY19pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZwcm9wX3ZhbHVlLAogCQkJCQkg ICBwcm9wX3ZhbHVlc19wdHIgKyBjb3BpZWRfcHJvcHMsCiAJCQkJCSAgIHNpemVvZihwcm9wX3Zh bHVlKSkpIHsKLQkJCQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uob2JqKTsKKwkJCQlkcm1f bW9kZV9vYmplY3RfcHV0KG9iaik7CiAJCQkJcmV0ID0gLUVGQVVMVDsKIAkJCQlnb3RvIG91dDsK IAkJCX0KIAogCQkJcmV0ID0gYXRvbWljX3NldF9wcm9wKHN0YXRlLCBvYmosIHByb3AsIHByb3Bf dmFsdWUpOwogCQkJaWYgKHJldCkgewotCQkJCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShv YmopOworCQkJCWRybV9tb2RlX29iamVjdF9wdXQob2JqKTsKIAkJCQlnb3RvIG91dDsKIAkJCX0K IApAQCAtMjE3Niw3ICsyMTc2LDcgQEAgaW50IGRybV9tb2RlX2F0b21pY19pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCQkJcGxhbmVfbWFzayB8PSAoMSA8PCBkcm1fcGxhbmVfaW5kZXgo cGxhbmUpKTsKIAkJCXBsYW5lLT5vbGRfZmIgPSBwbGFuZS0+ZmI7CiAJCX0KLQkJZHJtX21vZGVf b2JqZWN0X3VucmVmZXJlbmNlKG9iaik7CisJCWRybV9tb2RlX29iamVjdF9wdXQob2JqKTsKIAl9 CiAKIAlyZXQgPSBwcmVwYXJlX2NydGNfc2lnbmFsaW5nKGRldiwgc3RhdGUsIGFyZywgZmlsZV9w cml2LCAmZmVuY2Vfc3RhdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVf b2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfb2JqZWN0LmMKaW5kZXggM2I0MDVk YmYxYjhkLi5kYTlhOWFkYmNjOTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9k ZV9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfb2JqZWN0LmMKQEAgLTEz Myw3ICsxMzMsNyBAQCBzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpfX2RybV9tb2RlX29iamVjdF9m aW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAgKgogICogVGhpcyBmdW5jdGlvbiBpcyB1c2Vk IHRvIGxvb2sgdXAgYSBtb2Rlc2V0IG9iamVjdC4gSXQgd2lsbCBhY3F1aXJlIGEKICAqIHJlZmVy ZW5jZSBmb3IgcmVmZXJlbmNlIGNvdW50ZWQgb2JqZWN0cy4gVGhpcyByZWZlcmVuY2UgbXVzdCBi ZSBkcm9wcGVkIGFnYWluCi0gKiBieSBjYWxsaW5kIGRybV9tb2RlX29iamVjdF91bnJlZmVyZW5j ZSgpLgorICogYnkgY2FsbGluZCBkcm1fbW9kZV9vYmplY3RfcHV0KCkuCiAgKi8KIHN0cnVjdCBk cm1fbW9kZV9vYmplY3QgKmRybV9tb2RlX29iamVjdF9maW5kKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCXVpbnQzMl90IGlkLCB1aW50MzJfdCB0eXBlKQpAQCAtMTQ2LDM4ICsxNDYsMzggQEAg c3RydWN0IGRybV9tb2RlX29iamVjdCAqZHJtX21vZGVfb2JqZWN0X2ZpbmQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfb2JqZWN0X2ZpbmQpOwogCiAvKioK LSAqIGRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZSAtIGRlY3IgdGhlIG9iamVjdCByZWZjbnQK LSAqIEBvYmo6IG1vZGVfb2JqZWN0CisgKiBkcm1fbW9kZV9vYmplY3RfcHV0IC0gcmVsZWFzZSBh IG1vZGUgb2JqZWN0IHJlZmVyZW5jZQorICogQG9iajogRFJNIG1vZGUgb2JqZWN0CiAgKgogICog VGhpcyBmdW5jdGlvbiBkZWNyZW1lbnRzIHRoZSBvYmplY3QncyByZWZjb3VudCBpZiBpdCBpcyBh IHJlZmNvdW50ZWQgbW9kZXNldAogICogb2JqZWN0LiBJdCBpcyBhIG5vLW9wIG9uIGFueSBvdGhl ciBvYmplY3QuIFRoaXMgaXMgdXNlZCB0byBkcm9wIHJlZmVyZW5jZXMKLSAqIGFjcXVpcmVkIHdp dGggZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZSgpLgorICogYWNxdWlyZWQgd2l0aCBkcm1fbW9k ZV9vYmplY3RfZ2V0KCkuCiAgKi8KLXZvaWQgZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKHN0 cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaikKK3ZvaWQgZHJtX21vZGVfb2JqZWN0X3B1dChzdHJ1 Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmopCiB7CiAJaWYgKG9iai0+ZnJlZV9jYikgewogCQlEUk1f REVCVUcoIk9CSiBJRDogJWQgKCVkKVxuIiwgb2JqLT5pZCwga3JlZl9yZWFkKCZvYmotPnJlZmNv dW50KSk7CiAJCWtyZWZfcHV0KCZvYmotPnJlZmNvdW50LCBvYmotPmZyZWVfY2IpOwogCX0KIH0K LUVYUE9SVF9TWU1CT0woZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKTsKK0VYUE9SVF9TWU1C T0woZHJtX21vZGVfb2JqZWN0X3B1dCk7CiAKIC8qKgotICogZHJtX21vZGVfb2JqZWN0X3JlZmVy ZW5jZSAtIGluY3IgdGhlIG9iamVjdCByZWZjbnQKLSAqIEBvYmo6IG1vZGVfb2JqZWN0CisgKiBk cm1fbW9kZV9vYmplY3RfZ2V0IC0gYWNxdWlyZSBhIG1vZGUgb2JqZWN0IHJlZmVyZW5jZQorICog QG9iajogRFJNIG1vZGUgb2JqZWN0CiAgKgogICogVGhpcyBmdW5jdGlvbiBpbmNyZW1lbnRzIHRo ZSBvYmplY3QncyByZWZjb3VudCBpZiBpdCBpcyBhIHJlZmNvdW50ZWQgbW9kZXNldAogICogb2Jq ZWN0LiBJdCBpcyBhIG5vLW9wIG9uIGFueSBvdGhlciBvYmplY3QuIFJlZmVyZW5jZXMgc2hvdWxk IGJlIGRyb3BwZWQgYWdhaW4KLSAqIGJ5IGNhbGxpbmcgZHJtX21vZGVfb2JqZWN0X3VucmVmZXJl bmNlKCkuCisgKiBieSBjYWxsaW5nIGRybV9tb2RlX29iamVjdF9wdXQoKS4KICAqLwotdm9pZCBk cm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlKHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaikKK3Zv aWQgZHJtX21vZGVfb2JqZWN0X2dldChzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmopCiB7CiAJ aWYgKG9iai0+ZnJlZV9jYikgewogCQlEUk1fREVCVUcoIk9CSiBJRDogJWQgKCVkKVxuIiwgb2Jq LT5pZCwga3JlZl9yZWFkKCZvYmotPnJlZmNvdW50KSk7CiAJCWtyZWZfZ2V0KCZvYmotPnJlZmNv dW50KTsKIAl9CiB9Ci1FWFBPUlRfU1lNQk9MKGRybV9tb2RlX29iamVjdF9yZWZlcmVuY2UpOwor RVhQT1JUX1NZTUJPTChkcm1fbW9kZV9vYmplY3RfZ2V0KTsKIAogLyoqCiAgKiBkcm1fb2JqZWN0 X2F0dGFjaF9wcm9wZXJ0eSAtIGF0dGFjaCBhIHByb3BlcnR5IHRvIGEgbW9kZXNldCBvYmplY3QK QEAgLTM2Myw3ICszNjMsNyBAQCBpbnQgZHJtX21vZGVfb2JqX2dldF9wcm9wZXJ0aWVzX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkmYXJnLT5jb3VudF9wcm9w cyk7CiAKIG91dF91bnJlZjoKLQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uob2JqKTsKKwlk cm1fbW9kZV9vYmplY3RfcHV0KG9iaik7CiBvdXQ6CiAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChk ZXYpOwogCXJldHVybiByZXQ7CkBAIC00MjgsNyArNDI4LDcgQEAgaW50IGRybV9tb2RlX29ial9z ZXRfcHJvcGVydHlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlk cm1fcHJvcGVydHlfY2hhbmdlX3ZhbGlkX3B1dChwcm9wZXJ0eSwgcmVmKTsKIAogb3V0X3VucmVm OgotCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShhcmdfb2JqKTsKKwlkcm1fbW9kZV9vYmpl Y3RfcHV0KGFyZ19vYmopOwogb3V0OgogCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKIAly ZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jCmluZGV4IDQxMWU0NzAzNjljMC4uMTVhZjBk NDJlOGJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb3BlcnR5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jCkBAIC01OTcsNyArNTk3LDcgQEAgdm9pZCBk cm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJs b2IpCiAJaWYgKCFibG9iKQogCQlyZXR1cm47CiAKLQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVu Y2UoJmJsb2ItPmJhc2UpOworCWRybV9tb2RlX29iamVjdF9wdXQoJmJsb2ItPmJhc2UpOwogfQog RVhQT1JUX1NZTUJPTChkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYik7CiAKQEAgLTYyNSw3 ICs2MjUsNyBAQCB2b2lkIGRybV9wcm9wZXJ0eV9kZXN0cm95X3VzZXJfYmxvYnMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKICAqLwogc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkcm1fcHJvcGVy dHlfcmVmZXJlbmNlX2Jsb2Ioc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQogewotCWRy bV9tb2RlX29iamVjdF9yZWZlcmVuY2UoJmJsb2ItPmJhc2UpOworCWRybV9tb2RlX29iamVjdF9n ZXQoJmJsb2ItPmJhc2UpOwogCXJldHVybiBibG9iOwogfQogRVhQT1JUX1NZTUJPTChkcm1fcHJv cGVydHlfcmVmZXJlbmNlX2Jsb2IpOwpAQCAtOTA2LDcgKzkwNiw3IEBAIHZvaWQgZHJtX3Byb3Bl cnR5X2NoYW5nZV92YWxpZF9wdXQoc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCiAJCXJl dHVybjsKIAogCWlmIChkcm1fcHJvcGVydHlfdHlwZV9pcyhwcm9wZXJ0eSwgRFJNX01PREVfUFJP UF9PQkpFQ1QpKSB7Ci0JCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShyZWYpOworCQlkcm1f bW9kZV9vYmplY3RfcHV0KHJlZik7CiAJfSBlbHNlIGlmIChkcm1fcHJvcGVydHlfdHlwZV9pcyhw cm9wZXJ0eSwgRFJNX01PREVfUFJPUF9CTE9CKSkKIAkJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNl X2Jsb2Iob2JqX3RvX2Jsb2IocmVmKSk7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f bW9kZV9vYmplY3QuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX29iamVjdC5oCmluZGV4IDJjMDE3 YWRmNmQ3NC4uYTc2N2I0YTMwYTZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9v YmplY3QuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9vYmplY3QuaApAQCAtNDUsMTAgKzQ1 LDEwIEBAIHN0cnVjdCBkcm1fZGV2aWNlOwogICogICBkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0 eSgpIGJlZm9yZSB0aGUgb2JqZWN0IGlzIHZpc2libGUgdG8gdXNlcnNwYWNlLgogICoKICAqIC0g Rm9yIG9iamVjdHMgd2l0aCBkeW5hbWljIGxpZmV0aW1lcyAoYXMgaW5kaWNhdGVkIGJ5IGEgbm9u LU5VTEwgQGZyZWVfY2IpIGl0Ci0gKiAgIHByb3ZpZGVzIHJlZmVyZW5jZSBjb3VudGluZyB0aHJv dWdoIGRybV9tb2RlX29iamVjdF9yZWZlcmVuY2UoKSBhbmQKLSAqICAgZHJtX21vZGVfb2JqZWN0 X3VucmVmZXJlbmNlKCkuIFRoaXMgaXMgdXNlZCBieSAmZHJtX2ZyYW1lYnVmZmVyLAotICogICAm ZHJtX2Nvbm5lY3RvciBhbmQgJmRybV9wcm9wZXJ0eV9ibG9iLiBUaGVzZSBvYmplY3RzIHByb3Zp ZGUgc3BlY2lhbGl6ZWQKLSAqICAgcmVmZXJlbmNlIGNvdW50aW5nIHdyYXBwZXJzLgorICogICBw cm92aWRlcyByZWZlcmVuY2UgY291bnRpbmcgdGhyb3VnaCBkcm1fbW9kZV9vYmplY3RfZ2V0KCkg YW5kCisgKiAgIGRybV9tb2RlX29iamVjdF9wdXQoKS4gVGhpcyBpcyB1c2VkIGJ5ICZkcm1fZnJh bWVidWZmZXIsICZkcm1fY29ubmVjdG9yCisgKiAgIGFuZCAmZHJtX3Byb3BlcnR5X2Jsb2IuIFRo ZXNlIG9iamVjdHMgcHJvdmlkZSBzcGVjaWFsaXplZCByZWZlcmVuY2UKKyAqICAgY291bnRpbmcg d3JhcHBlcnMuCiAgKi8KIHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgewogCXVpbnQzMl90IGlkOwpA QCAtMTE0LDggKzExNCwzMiBAQCBzdHJ1Y3QgZHJtX29iamVjdF9wcm9wZXJ0aWVzIHsKIAogc3Ry dWN0IGRybV9tb2RlX29iamVjdCAqZHJtX21vZGVfb2JqZWN0X2ZpbmQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJCQkJICAgICB1aW50MzJfdCBpZCwgdWludDMyX3QgdHlwZSk7Ci12b2lkIGRy bV9tb2RlX29iamVjdF9yZWZlcmVuY2Uoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqKTsKLXZv aWQgZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9i aik7Cit2b2lkIGRybV9tb2RlX29iamVjdF9nZXQoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2Jq KTsKK3ZvaWQgZHJtX21vZGVfb2JqZWN0X3B1dChzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmop OworCisvKioKKyAqIGRybV9tb2RlX29iamVjdF9yZWZlcmVuY2UgLSBhY3F1aXJlIGEgbW9kZSBv YmplY3QgcmVmZXJlbmNlCisgKiBAb2JqOiBEUk0gbW9kZSBvYmplY3QKKyAqCisgKiBUaGlzIGlz IGEgY29tcGF0aWJpbGl0eSBhbGlhcyBmb3IgZHJtX21vZGVfb2JqZWN0X2dldCgpIGFuZCBzaG91 bGQgbm90IGJlCisgKiB1c2VkIGJ5IG5ldyBjb2RlLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQg ZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZShzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmopCit7 CisJZHJtX21vZGVfb2JqZWN0X2dldChvYmopOworfQorCisvKioKKyAqIGRybV9tb2RlX29iamVj dF91bnJlZmVyZW5jZSAtIHJlbGVhc2UgYSBtb2RlIG9iamVjdCByZWZlcmVuY2UKKyAqIEBvYmo6 IERSTSBtb2RlIG9iamVjdAorICoKKyAqIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IGFsaWFzIGZv ciBkcm1fbW9kZV9vYmplY3RfcHV0KCkgYW5kIHNob3VsZCBub3QgYmUKKyAqIHVzZWQgYnkgbmV3 IGNvZGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVu Y2Uoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqKQoreworCWRybV9tb2RlX29iamVjdF9wdXQo b2JqKTsKK30KIAogaW50IGRybV9vYmplY3RfcHJvcGVydHlfc2V0X3ZhbHVlKHN0cnVjdCBkcm1f bW9kZV9vYmplY3QgKm9iaiwKIAkJCQkgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LApk aWZmIC0tZ2l0IGEvc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaSBiL3Nj cmlwdHMvY29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hMzc0MjQ0N2M5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9z Y3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpCkBAIC0wLDAgKzEsNDIgQEAK Ky8vLworLy8vIFVzZSBkcm1fKl9nZXQoKSBhbmQgZHJtXypfcHV0KCkgaGVscGVycyBpbnN0ZWFk IG9mIGRybV8qX3JlZmVyZW5jZSgpIGFuZAorLy8vIGRybV8qX3VucmVmZXJlbmNlKCkgaGVscGVy cy4KKy8vLworLy8gQ29uZmlkZW5jZTogSGlnaAorLy8gQ29weXJpZ2h0OiAoQykgMjAxNyBOVklE SUEgQ29ycG9yYXRpb24KKy8vIE9wdGlvbnM6IC0tbm8taW5jbHVkZXMgLS1pbmNsdWRlLWhlYWRl cnMKKy8vCisKK3ZpcnR1YWwgcGF0Y2gKK3ZpcnR1YWwgcmVwb3J0CisKK0BkZXBlbmRzIG9uIHBh dGNoQAorZXhwcmVzc2lvbiBvYmplY3Q7CitAQAorCisoCistIGRybV9tb2RlX29iamVjdF9yZWZl cmVuY2Uob2JqZWN0KQorKyBkcm1fbW9kZV9vYmplY3RfZ2V0KG9iamVjdCkKK3wKKy0gZHJtX21v ZGVfb2JqZWN0X3VucmVmZXJlbmNlKG9iamVjdCkKKysgZHJtX21vZGVfb2JqZWN0X3B1dChvYmpl Y3QpCispCisKK0ByIGRlcGVuZHMgb24gcmVwb3J0QAorZXhwcmVzc2lvbiBvYmplY3Q7Citwb3Np dGlvbiBwOworQEAKKworKAorZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlQHAob2JqZWN0KQor fAorZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZUBwKG9iamVjdCkKKykKKworQHNjcmlwdDpweXRo b24gZGVwZW5kcyBvbiByZXBvcnRACitvYmplY3QgPDwgci5vYmplY3Q7CitwIDw8IHIucDsKK0BA CisKK21zZz0iV0FSTklORzogdXNlIGdldC9wdXQgaGVscGVycyB0byByZWZlcmVuY2UgYW5kIGRl cmVmZXJlbmNlICVzIiAlIChvYmplY3QpCitjb2NjaWxpYi5yZXBvcnQucHJpbnRfcmVwb3J0KHBb MF0sIG1zZykKLS0gCjIuMTEuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==