From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 3/5] drm/ttm: move ttm_tt defines into ttm_tt.h Date: Tue, 27 Feb 2018 12:49:58 +0100 Message-ID: <20180227115000.4105-3-christian.koenig@amd.com> References: <20180227115000.4105-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180227115000.4105-1-christian.koenig-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org TGV0J3Mgc3RvcCBtYW5nbGluZyBldmVyeXRoaW5nIGluIGEgc2luZ2xlIGhlYWRlciBhbmQgY3Jl YXRlIG9uZSBoZWFkZXIKcGVyIG9iamVjdCBpbnN0ZWFkLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0 aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX3R0LmMgICAgfCAgIDYgLQogaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIu aCB8IDIzNyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2RybS90 dG0vdHRtX3R0LmggICAgICAgIHwgMjcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjczIGluc2VydGlvbnMoKyksIDI0MiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RybS90dG0vdHRtX3R0LmgKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fdHQuYwppbmRleCAwZWUzYjhmMTE2MDUuLjhlMGI1MjVjZGEwMCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV90dC5jCkBAIC0zMSwxNyArMzEsMTEgQEAKICNkZWZpbmUgcHJfZm10KGZtdCkgIltUVE1dICIg Zm10CiAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0u aD4KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvc2htZW1fZnMu aD4KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc3dhcC5oPgotI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRl IDxkcm0vZHJtX2NhY2hlLmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbW9kdWxlLmg+CiAjaW5j bHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxh Y2VtZW50Lmg+CiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGFnZV9hbGxvYy5oPgogI2lmZGVmIENP TkZJR19YODYKICNpbmNsdWRlIDxhc20vc2V0X21lbW9yeS5oPgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVy LmgKaW5kZXggNDMxMmI1MzI2ZjBiLi5mOGUyNTE1YjQwMWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2 ZXIuaApAQCAtNDIsMTExICs0MiwxMCBAQAogI2luY2x1ZGUgInR0bV9tZW1vcnkuaCIKICNpbmNs dWRlICJ0dG1fbW9kdWxlLmgiCiAjaW5jbHVkZSAidHRtX3BsYWNlbWVudC5oIgorI2luY2x1ZGUg InR0bV90dC5oIgogCiAjZGVmaW5lIFRUTV9NQVhfQk9fUFJJT1JJVFkJNFUKIAotc3RydWN0IHR0 bV9iYWNrZW5kX2Z1bmMgewotCS8qKgotCSAqIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIG1lbWJl ciBiaW5kCi0JICoKLQkgKiBAdHRtOiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV90dC4KLQkgKiBA Ym9fbWVtOiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV9tZW1fcmVnIGRlc2NyaWJpbmcgdGhlCi0J ICogbWVtb3J5IHR5cGUgYW5kIGxvY2F0aW9uIGZvciBiaW5kaW5nLgotCSAqCi0JICogQmluZCB0 aGUgYmFja2VuZCBwYWdlcyBpbnRvIHRoZSBhcGVydHVyZSBpbiB0aGUgbG9jYXRpb24KLQkgKiBp bmRpY2F0ZWQgYnkgQGJvX21lbS4gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgYWJsZSB0byBoYW5k bGUKLQkgKiBkaWZmZXJlbmNlcyBiZXR3ZWVuIGFwZXJ0dXJlIGFuZCBzeXN0ZW0gcGFnZSBzaXpl cy4KLQkgKi8KLQlpbnQgKCpiaW5kKSAoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX21l bV9yZWcgKmJvX21lbSk7Ci0KLQkvKioKLQkgKiBzdHJ1Y3QgdHRtX2JhY2tlbmRfZnVuYyBtZW1i ZXIgdW5iaW5kCi0JICoKLQkgKiBAdHRtOiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV90dC4KLQkg KgotCSAqIFVuYmluZCBwcmV2aW91c2x5IGJvdW5kIGJhY2tlbmQgcGFnZXMuIFRoaXMgZnVuY3Rp b24gc2hvdWxkIGJlCi0JICogYWJsZSB0byBoYW5kbGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBhcGVy dHVyZSBhbmQgc3lzdGVtIHBhZ2Ugc2l6ZXMuCi0JICovCi0JaW50ICgqdW5iaW5kKSAoc3RydWN0 IHR0bV90dCAqdHRtKTsKLQotCS8qKgotCSAqIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIG1lbWJl ciBkZXN0cm95Ci0JICoKLQkgKiBAdHRtOiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV90dC4KLQkg KgotCSAqIERlc3Ryb3kgdGhlIGJhY2tlbmQuIFRoaXMgd2lsbCBiZSBjYWxsIGJhY2sgZnJvbSB0 dG1fdHRfZGVzdHJveSBzbwotCSAqIGRvbid0IGNhbGwgdHRtX3R0X2Rlc3Ryb3kgZnJvbSB0aGUg Y2FsbGJhY2sgb3IgaW5maW5pdGUgbG9vcC4KLQkgKi8KLQl2b2lkICgqZGVzdHJveSkgKHN0cnVj dCB0dG1fdHQgKnR0bSk7Ci19OwotCi0jZGVmaW5lIFRUTV9QQUdFX0ZMQUdfV1JJVEUgICAgICAg ICAgICgxIDw8IDMpCi0jZGVmaW5lIFRUTV9QQUdFX0ZMQUdfU1dBUFBFRCAgICAgICAgICgxIDw8 IDQpCi0jZGVmaW5lIFRUTV9QQUdFX0ZMQUdfUEVSU0lTVEVOVF9TV0FQICgxIDw8IDUpCi0jZGVm aW5lIFRUTV9QQUdFX0ZMQUdfWkVST19BTExPQyAgICAgICgxIDw8IDYpCi0jZGVmaW5lIFRUTV9Q QUdFX0ZMQUdfRE1BMzIgICAgICAgICAgICgxIDw8IDcpCi0jZGVmaW5lIFRUTV9QQUdFX0ZMQUdf U0cgICAgICAgICAgICAgICgxIDw8IDgpCi0jZGVmaW5lIFRUTV9QQUdFX0ZMQUdfTk9fUkVUUlkJ ICAgICAgKDEgPDwgOSkKLQotZW51bSB0dG1fY2FjaGluZ19zdGF0ZSB7Ci0JdHRfdW5jYWNoZWQs Ci0JdHRfd2MsCi0JdHRfY2FjaGVkCi19OwotCi0vKioKLSAqIHN0cnVjdCB0dG1fdHQKLSAqCi0g KiBAYmRldjogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYm9fZGV2aWNlLgotICogQGZ1bmM6IFBv aW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX2JhY2tlbmRfZnVuYyB0aGF0IGRlc2NyaWJlcwotICogdGhl IGJhY2tlbmQgbWV0aG9kcy4KLSAqIHBvaW50ZXIuCi0gKiBAcGFnZXM6IEFycmF5IG9mIHBhZ2Vz IGJhY2tpbmcgdGhlIGRhdGEuCi0gKiBAbnVtX3BhZ2VzOiBOdW1iZXIgb2YgcGFnZXMgaW4gdGhl IHBhZ2UgYXJyYXkuCi0gKiBAYmRldjogUG9pbnRlciB0byB0aGUgY3VycmVudCBzdHJ1Y3QgdHRt X2JvX2RldmljZS4KLSAqIEBiZTogUG9pbnRlciB0byB0aGUgdHRtIGJhY2tlbmQuCi0gKiBAc3dh cF9zdG9yYWdlOiBQb2ludGVyIHRvIHNobWVtIHN0cnVjdCBmaWxlIGZvciBzd2FwIHN0b3JhZ2Uu Ci0gKiBAY2FjaGluZ19zdGF0ZTogVGhlIGN1cnJlbnQgY2FjaGluZyBzdGF0ZSBvZiB0aGUgcGFn ZXMuCi0gKiBAc3RhdGU6IFRoZSBjdXJyZW50IGJpbmRpbmcgc3RhdGUgb2YgdGhlIHBhZ2VzLgot ICoKLSAqIFRoaXMgaXMgYSBzdHJ1Y3R1cmUgaG9sZGluZyB0aGUgcGFnZXMsIGNhY2hpbmctIGFu ZCBhcGVydHVyZSBiaW5kaW5nCi0gKiBzdGF0dXMgZm9yIGEgYnVmZmVyIG9iamVjdCB0aGF0IGlz bid0IGJhY2tlZCBieSBmaXhlZCAoVlJBTSAvIEFHUCkKLSAqIG1lbW9yeS4KLSAqLwotCi1zdHJ1 Y3QgdHRtX3R0IHsKLQlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldjsKLQlzdHJ1Y3QgdHRtX2Jh Y2tlbmRfZnVuYyAqZnVuYzsKLQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwotCXVpbnQzMl90IHBhZ2Vf ZmxhZ3M7Ci0JdW5zaWduZWQgbG9uZyBudW1fcGFnZXM7Ci0Jc3RydWN0IHNnX3RhYmxlICpzZzsg LyogZm9yIFNHIG9iamVjdHMgdmlhIGRtYS1idWYgKi8KLQlzdHJ1Y3QgZmlsZSAqc3dhcF9zdG9y YWdlOwotCWVudW0gdHRtX2NhY2hpbmdfc3RhdGUgY2FjaGluZ19zdGF0ZTsKLQllbnVtIHsKLQkJ dHRfYm91bmQsCi0JCXR0X3VuYm91bmQsCi0JCXR0X3VucG9wdWxhdGVkLAotCX0gc3RhdGU7Ci19 OwotCi0vKioKLSAqIHN0cnVjdCB0dG1fZG1hX3R0Ci0gKgotICogQHR0bTogQmFzZSB0dG1fdHQg c3RydWN0LgotICogQGRtYV9hZGRyZXNzOiBUaGUgRE1BIChidXMpIGFkZHJlc3NlcyBvZiB0aGUg cGFnZXMKLSAqIEBwYWdlc19saXN0OiB1c2VkIGJ5IHNvbWUgcGFnZSBhbGxvY2F0aW9uIGJhY2tl bmQKLSAqCi0gKiBUaGlzIGlzIGEgc3RydWN0dXJlIGhvbGRpbmcgdGhlIHBhZ2VzLCBjYWNoaW5n LSBhbmQgYXBlcnR1cmUgYmluZGluZwotICogc3RhdHVzIGZvciBhIGJ1ZmZlciBvYmplY3QgdGhh dCBpc24ndCBiYWNrZWQgYnkgZml4ZWQgKFZSQU0gLyBBR1ApCi0gKiBtZW1vcnkuCi0gKi8KLXN0 cnVjdCB0dG1fZG1hX3R0IHsKLQlzdHJ1Y3QgdHRtX3R0IHR0bTsKLQlkbWFfYWRkcl90ICpkbWFf YWRkcmVzczsKLQlzdHJ1Y3QgbGlzdF9oZWFkIHBhZ2VzX2xpc3Q7Ci19OwotCiAjZGVmaW5lIFRU TV9NRU1UWVBFX0ZMQUdfRklYRUQgICAgICAgICAoMSA8PCAwKQkvKiBGaXhlZCAob24tY2FyZCkg UENJIG1lbW9yeSAqLwogI2RlZmluZSBUVE1fTUVNVFlQRV9GTEFHX01BUFBBQkxFICAgICAgKDEg PDwgMSkJLyogTWVtb3J5IG1hcHBhYmxlICovCiAjZGVmaW5lIFRUTV9NRU1UWVBFX0ZMQUdfQ01B ICAgICAgICAgICAoMSA8PCAzKQkvKiBDYW4ndCBtYXAgYXBlcnR1cmUgKi8KQEAgLTYxMCwxMTcg KzUwOSw2IEBAIHR0bV9mbGFnX21hc2tlZCh1aW50MzJfdCAqb2xkLCB1aW50MzJfdCBuZXcsIHVp bnQzMl90IG1hc2spCiAJcmV0dXJuICpvbGQ7CiB9CiAKLS8qKgotICogdHRtX3R0X2NyZWF0ZQot ICoKLSAqIEBibzogcG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdAotICogQHpl cm9fYWxsb2M6IHRydWUgaWYgYWxsb2NhdGVkIHBhZ2VzIG5lZWRzIHRvIGJlIHplcm9lZAotICoK LSAqIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgVFRNIHN0cnVjdHVyZSBhbGxvY2F0ZWQgZm9yIHRoZSBn aXZlbiBCTy4KLSAqIE5vIHBhZ2VzIGFyZSBhY3R1YWxseSBhbGxvY2F0ZWQuCi0gKi8KLWludCB0 dG1fdHRfY3JlYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgemVyb19hbGxv Yyk7Ci0KLS8qKgotICogdHRtX3R0X2luaXQKLSAqCi0gKiBAdHRtOiBUaGUgc3RydWN0IHR0bV90 dC4KLSAqIEBiZGV2OiBwb2ludGVyIHRvIGEgc3RydWN0IHR0bV9ib19kZXZpY2U6Ci0gKiBAc2l6 ZTogU2l6ZSBvZiB0aGUgZGF0YSBuZWVkZWQgYmFja2luZy4KLSAqIEBwYWdlX2ZsYWdzOiBQYWdl IGZsYWdzIGFzIGlkZW50aWZpZWQgYnkgVFRNX1BBR0VfRkxBR19YWCBmbGFncy4KLSAqCi0gKiBD cmVhdGUgYSBzdHJ1Y3QgdHRtX3R0IHRvIGJhY2sgZGF0YSB3aXRoIHN5c3RlbSBtZW1vcnkgcGFn ZXMuCi0gKiBObyBwYWdlcyBhcmUgYWN0dWFsbHkgYWxsb2NhdGVkLgotICogUmV0dXJuczoKLSAq IE5VTEw6IE91dCBvZiBtZW1vcnkuCi0gKi8KLWludCB0dG1fdHRfaW5pdChzdHJ1Y3QgdHRtX3R0 ICp0dG0sIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAotCQl1bnNpZ25lZCBsb25nIHNpemUs IHVpbnQzMl90IHBhZ2VfZmxhZ3MpOwotaW50IHR0bV9kbWFfdHRfaW5pdChzdHJ1Y3QgdHRtX2Rt YV90dCAqdHRtX2RtYSwgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCi0JCSAgICB1bnNpZ25l ZCBsb25nIHNpemUsIHVpbnQzMl90IHBhZ2VfZmxhZ3MpOwotCi0vKioKLSAqIHR0bV90dF9maW5p Ci0gKgotICogQHR0bTogdGhlIHR0bV90dCBzdHJ1Y3R1cmUuCi0gKgotICogRnJlZSBtZW1vcnkg b2YgdHRtX3R0IHN0cnVjdHVyZQotICovCi12b2lkIHR0bV90dF9maW5pKHN0cnVjdCB0dG1fdHQg KnR0bSk7Ci12b2lkIHR0bV9kbWFfdHRfZmluaShzdHJ1Y3QgdHRtX2RtYV90dCAqdHRtX2RtYSk7 Ci0KLS8qKgotICogdHRtX3R0bV9iaW5kOgotICoKLSAqIEB0dG06IFRoZSBzdHJ1Y3QgdHRtX3R0 IGNvbnRhaW5pbmcgYmFja2luZyBwYWdlcy4KLSAqIEBib19tZW06IFRoZSBzdHJ1Y3QgdHRtX21l bV9yZWcgaWRlbnRpZnlpbmcgdGhlIGJpbmRpbmcgbG9jYXRpb24uCi0gKgotICogQmluZCB0aGUg cGFnZXMgb2YgQHR0bSB0byBhbiBhcGVydHVyZSBsb2NhdGlvbiBpZGVudGlmaWVkIGJ5IEBib19t ZW0KLSAqLwotaW50IHR0bV90dF9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9t ZW1fcmVnICpib19tZW0sCi0JCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsKLQotLyoq Ci0gKiB0dG1fdHRtX2Rlc3Ryb3k6Ci0gKgotICogQHR0bTogVGhlIHN0cnVjdCB0dG1fdHQuCi0g KgotICogVW5iaW5kLCB1bnBvcHVsYXRlIGFuZCBkZXN0cm95IGNvbW1vbiBzdHJ1Y3QgdHRtX3R0 LgotICovCi12b2lkIHR0bV90dF9kZXN0cm95KHN0cnVjdCB0dG1fdHQgKnR0bSk7Ci0KLS8qKgot ICogdHRtX3R0bV91bmJpbmQ6Ci0gKgotICogQHR0bTogVGhlIHN0cnVjdCB0dG1fdHQuCi0gKgot ICogVW5iaW5kIGEgc3RydWN0IHR0bV90dC4KLSAqLwotdm9pZCB0dG1fdHRfdW5iaW5kKHN0cnVj dCB0dG1fdHQgKnR0bSk7Ci0KLS8qKgotICogdHRtX3R0X3N3YXBpbjoKLSAqCi0gKiBAdHRtOiBU aGUgc3RydWN0IHR0bV90dC4KLSAqCi0gKiBTd2FwIGluIGEgcHJldmlvdXNseSBzd2FwIG91dCB0 dG1fdHQuCi0gKi8KLWludCB0dG1fdHRfc3dhcGluKHN0cnVjdCB0dG1fdHQgKnR0bSk7Ci0KLS8q KgotICogdHRtX3R0X3NldF9wbGFjZW1lbnRfY2FjaGluZzoKLSAqCi0gKiBAdHRtIEEgc3RydWN0 IHR0bV90dCB0aGUgYmFja2luZyBwYWdlcyBvZiB3aGljaCB3aWxsIGNoYW5nZSBjYWNoaW5nIHBv bGljeS4KLSAqIEBwbGFjZW1lbnQ6IEZsYWcgaW5kaWNhdGluZyB0aGUgZGVzaXJlZCBjYWNoaW5n IHBvbGljeS4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hhbmdlIGNhY2hpbmcgcG9saWN5 IG9mIGFueSBkZWZhdWx0IGtlcm5lbCBtYXBwaW5ncyBvZgotICogdGhlIHBhZ2VzIGJhY2tpbmcg QHR0bS4gSWYgY2hhbmdpbmcgZnJvbSBjYWNoZWQgdG8gdW5jYWNoZWQgb3IKLSAqIHdyaXRlLWNv bWJpbmVkLAotICogYWxsIENQVSBjYWNoZXMgd2lsbCBmaXJzdCBiZSBmbHVzaGVkIHRvIG1ha2Ug c3VyZSB0aGUgZGF0YSBvZiB0aGUgcGFnZXMKLSAqIGhpdCBSQU0uIFRoaXMgZnVuY3Rpb24gbWF5 IGJlIHZlcnkgY29zdGx5IGFzIGl0IGludm9sdmVzIGdsb2JhbCBUTEIKLSAqIGFuZCBjYWNoZSBm bHVzaGVzIGFuZCBwb3RlbnRpYWwgcGFnZSBzcGxpdHRpbmcgLyBjb21iaW5pbmcuCi0gKi8KLWlu dCB0dG1fdHRfc2V0X3BsYWNlbWVudF9jYWNoaW5nKHN0cnVjdCB0dG1fdHQgKnR0bSwgdWludDMy X3QgcGxhY2VtZW50KTsKLWludCB0dG1fdHRfc3dhcG91dChzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0 cnVjdCBmaWxlICpwZXJzaXN0ZW50X3N3YXBfc3RvcmFnZSk7Ci0KLS8qKgotICogdHRtX3R0X3Bv cHVsYXRlIC0gYWxsb2NhdGUgcGFnZXMgZm9yIGEgdHRtCi0gKgotICogQHR0bTogUG9pbnRlciB0 byB0aGUgdHRtX3R0IHN0cnVjdHVyZQotICoKLSAqIENhbGxzIHRoZSBkcml2ZXIgbWV0aG9kIHRv IGFsbG9jYXRlIHBhZ2VzIGZvciBhIHR0bQotICovCi1pbnQgdHRtX3R0X3BvcHVsYXRlKHN0cnVj dCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwotCi0vKioKLSAq IHR0bV90dF91bnBvcHVsYXRlIC0gZnJlZSBwYWdlcyBmcm9tIGEgdHRtCi0gKgotICogQHR0bTog UG9pbnRlciB0byB0aGUgdHRtX3R0IHN0cnVjdHVyZQotICoKLSAqIENhbGxzIHRoZSBkcml2ZXIg bWV0aG9kIHRvIGZyZWUgYWxsIHBhZ2VzIGZyb20gYSB0dG0KLSAqLwotdm9pZCB0dG1fdHRfdW5w b3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pOwotCiAvKgogICogdHRtX2JvLmMKICAqLwpAQCAt MTA3NCwyNyArODYyLDQgQEAgcGdwcm90X3QgdHRtX2lvX3Byb3QodWludDMyX3QgY2FjaGluZ19m bGFncywgcGdwcm90X3QgdG1wKTsKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlcl9mdW5jIHR0bV9ib19tYW5hZ2VyX2Z1bmM7CiAKLSNpZiBJU19FTkFCTEVEKENPTkZJ R19BR1ApCi0jaW5jbHVkZSA8bGludXgvYWdwX2JhY2tlbmQuaD4KLQotLyoqCi0gKiB0dG1fYWdw X3R0X2NyZWF0ZQotICoKLSAqIEBiZGV2OiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV9ib19kZXZp Y2UuCi0gKiBAYnJpZGdlOiBUaGUgYWdwIGJyaWRnZSB0aGlzIGRldmljZSBpcyBzaXR0aW5nIG9u LgotICogQHNpemU6IFNpemUgb2YgdGhlIGRhdGEgbmVlZGVkIGJhY2tpbmcuCi0gKiBAcGFnZV9m bGFnczogUGFnZSBmbGFncyBhcyBpZGVudGlmaWVkIGJ5IFRUTV9QQUdFX0ZMQUdfWFggZmxhZ3Mu Ci0gKgotICoKLSAqIENyZWF0ZSBhIFRUTSBiYWNrZW5kIHRoYXQgdXNlcyB0aGUgaW5kaWNhdGVk IEFHUCBicmlkZ2UgYXMgYW4gYXBlcnR1cmUKLSAqIGZvciBUVCBtZW1vcnkuIFRoaXMgZnVuY3Rp b24gdXNlcyB0aGUgbGludXggYWdwZ2FydCBpbnRlcmZhY2UgdG8KLSAqIGJpbmQgYW5kIHVuYmlu ZCBtZW1vcnkgYmFja2luZyBhIHR0bV90dC4KLSAqLwotc3RydWN0IHR0bV90dCAqdHRtX2FncF90 dF9jcmVhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCi0JCQkJIHN0cnVjdCBhZ3BfYnJp ZGdlX2RhdGEgKmJyaWRnZSwKLQkJCQkgdW5zaWduZWQgbG9uZyBzaXplLCB1aW50MzJfdCBwYWdl X2ZsYWdzKTsKLWludCB0dG1fYWdwX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwotdm9pZCB0dG1fYWdwX3R0X3VucG9wdWxhdGUo c3RydWN0IHR0bV90dCAqdHRtKTsKLSNlbmRpZgotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL3R0bS90dG1fdHQuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNzg1NTZiNDg4ZQotLS0gL2Rldi9udWxs CisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaApAQCAtMCwwICsxLDI3MiBAQAorLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDkgVm13YXJlLCBJbmMu LCBQYWxvIEFsdG8sIENBLiwgVVNBCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlCisgKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisgKiB3aXRob3V0IGxpbWl0YXRp b24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisgKiBk aXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvCisgKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK KyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSAoaW5jbHVkaW5nIHRoZQorICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVk IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKKyAqIG9mIHRoZSBTb2Z0d2Fy ZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8g RVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUywgQVVUSE9SUyBBTkQvT1IgSVRT IFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKKyAqIERBTUFHRVMgT1IgT1RIRVIg TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgorICog T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRQorICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FS RS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9UVE1fVFRfSF8KKyNkZWZpbmUg X1RUTV9UVF9IXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworc3RydWN0IHR0bV90dDsK K3N0cnVjdCB0dG1fbWVtX3JlZzsKK3N0cnVjdCB0dG1fYnVmZmVyX29iamVjdDsKK3N0cnVjdCB0 dG1fb3BlcmF0aW9uX2N0eDsKKworI2RlZmluZSBUVE1fUEFHRV9GTEFHX1dSSVRFICAgICAgICAg ICAoMSA8PCAzKQorI2RlZmluZSBUVE1fUEFHRV9GTEFHX1NXQVBQRUQgICAgICAgICAoMSA8PCA0 KQorI2RlZmluZSBUVE1fUEFHRV9GTEFHX1BFUlNJU1RFTlRfU1dBUCAoMSA8PCA1KQorI2RlZmlu ZSBUVE1fUEFHRV9GTEFHX1pFUk9fQUxMT0MgICAgICAoMSA8PCA2KQorI2RlZmluZSBUVE1fUEFH RV9GTEFHX0RNQTMyICAgICAgICAgICAoMSA8PCA3KQorI2RlZmluZSBUVE1fUEFHRV9GTEFHX1NH ICAgICAgICAgICAgICAoMSA8PCA4KQorI2RlZmluZSBUVE1fUEFHRV9GTEFHX05PX1JFVFJZCSAg ICAgICgxIDw8IDkpCisKK2VudW0gdHRtX2NhY2hpbmdfc3RhdGUgeworCXR0X3VuY2FjaGVkLAor CXR0X3djLAorCXR0X2NhY2hlZAorfTsKKworc3RydWN0IHR0bV9iYWNrZW5kX2Z1bmMgeworCS8q KgorCSAqIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIG1lbWJlciBiaW5kCisJICoKKwkgKiBAdHRt OiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV90dC4KKwkgKiBAYm9fbWVtOiBQb2ludGVyIHRvIGEg c3RydWN0IHR0bV9tZW1fcmVnIGRlc2NyaWJpbmcgdGhlCisJICogbWVtb3J5IHR5cGUgYW5kIGxv Y2F0aW9uIGZvciBiaW5kaW5nLgorCSAqCisJICogQmluZCB0aGUgYmFja2VuZCBwYWdlcyBpbnRv IHRoZSBhcGVydHVyZSBpbiB0aGUgbG9jYXRpb24KKwkgKiBpbmRpY2F0ZWQgYnkgQGJvX21lbS4g VGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUKKwkgKiBkaWZmZXJlbmNlcyBi ZXR3ZWVuIGFwZXJ0dXJlIGFuZCBzeXN0ZW0gcGFnZSBzaXplcy4KKwkgKi8KKwlpbnQgKCpiaW5k KSAoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX21lbV9yZWcgKmJvX21lbSk7CisKKwkv KioKKwkgKiBzdHJ1Y3QgdHRtX2JhY2tlbmRfZnVuYyBtZW1iZXIgdW5iaW5kCisJICoKKwkgKiBA dHRtOiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV90dC4KKwkgKgorCSAqIFVuYmluZCBwcmV2aW91 c2x5IGJvdW5kIGJhY2tlbmQgcGFnZXMuIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlCisJICogYWJs ZSB0byBoYW5kbGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBhcGVydHVyZSBhbmQgc3lzdGVtIHBhZ2Ug c2l6ZXMuCisJICovCisJaW50ICgqdW5iaW5kKSAoc3RydWN0IHR0bV90dCAqdHRtKTsKKworCS8q KgorCSAqIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIG1lbWJlciBkZXN0cm95CisJICoKKwkgKiBA dHRtOiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV90dC4KKwkgKgorCSAqIERlc3Ryb3kgdGhlIGJh Y2tlbmQuIFRoaXMgd2lsbCBiZSBjYWxsIGJhY2sgZnJvbSB0dG1fdHRfZGVzdHJveSBzbworCSAq IGRvbid0IGNhbGwgdHRtX3R0X2Rlc3Ryb3kgZnJvbSB0aGUgY2FsbGJhY2sgb3IgaW5maW5pdGUg bG9vcC4KKwkgKi8KKwl2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1fdHQgKnR0bSk7Cit9Owor CisvKioKKyAqIHN0cnVjdCB0dG1fdHQKKyAqCisgKiBAYmRldjogUG9pbnRlciB0byBhIHN0cnVj dCB0dG1fYm9fZGV2aWNlLgorICogQGZ1bmM6IFBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX2JhY2tl bmRfZnVuYyB0aGF0IGRlc2NyaWJlcworICogdGhlIGJhY2tlbmQgbWV0aG9kcy4KKyAqIHBvaW50 ZXIuCisgKiBAcGFnZXM6IEFycmF5IG9mIHBhZ2VzIGJhY2tpbmcgdGhlIGRhdGEuCisgKiBAbnVt X3BhZ2VzOiBOdW1iZXIgb2YgcGFnZXMgaW4gdGhlIHBhZ2UgYXJyYXkuCisgKiBAYmRldjogUG9p bnRlciB0byB0aGUgY3VycmVudCBzdHJ1Y3QgdHRtX2JvX2RldmljZS4KKyAqIEBiZTogUG9pbnRl ciB0byB0aGUgdHRtIGJhY2tlbmQuCisgKiBAc3dhcF9zdG9yYWdlOiBQb2ludGVyIHRvIHNobWVt IHN0cnVjdCBmaWxlIGZvciBzd2FwIHN0b3JhZ2UuCisgKiBAY2FjaGluZ19zdGF0ZTogVGhlIGN1 cnJlbnQgY2FjaGluZyBzdGF0ZSBvZiB0aGUgcGFnZXMuCisgKiBAc3RhdGU6IFRoZSBjdXJyZW50 IGJpbmRpbmcgc3RhdGUgb2YgdGhlIHBhZ2VzLgorICoKKyAqIFRoaXMgaXMgYSBzdHJ1Y3R1cmUg aG9sZGluZyB0aGUgcGFnZXMsIGNhY2hpbmctIGFuZCBhcGVydHVyZSBiaW5kaW5nCisgKiBzdGF0 dXMgZm9yIGEgYnVmZmVyIG9iamVjdCB0aGF0IGlzbid0IGJhY2tlZCBieSBmaXhlZCAoVlJBTSAv IEFHUCkKKyAqIG1lbW9yeS4KKyAqLworc3RydWN0IHR0bV90dCB7CisJc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXY7CisJc3RydWN0IHR0bV9iYWNrZW5kX2Z1bmMgKmZ1bmM7CisJc3RydWN0IHBh Z2UgKipwYWdlczsKKwl1aW50MzJfdCBwYWdlX2ZsYWdzOworCXVuc2lnbmVkIGxvbmcgbnVtX3Bh Z2VzOworCXN0cnVjdCBzZ190YWJsZSAqc2c7IC8qIGZvciBTRyBvYmplY3RzIHZpYSBkbWEtYnVm ICovCisJc3RydWN0IGZpbGUgKnN3YXBfc3RvcmFnZTsKKwllbnVtIHR0bV9jYWNoaW5nX3N0YXRl IGNhY2hpbmdfc3RhdGU7CisJZW51bSB7CisJCXR0X2JvdW5kLAorCQl0dF91bmJvdW5kLAorCQl0 dF91bnBvcHVsYXRlZCwKKwl9IHN0YXRlOworfTsKKworLyoqCisgKiBzdHJ1Y3QgdHRtX2RtYV90 dAorICoKKyAqIEB0dG06IEJhc2UgdHRtX3R0IHN0cnVjdC4KKyAqIEBkbWFfYWRkcmVzczogVGhl IERNQSAoYnVzKSBhZGRyZXNzZXMgb2YgdGhlIHBhZ2VzCisgKiBAcGFnZXNfbGlzdDogdXNlZCBi eSBzb21lIHBhZ2UgYWxsb2NhdGlvbiBiYWNrZW5kCisgKgorICogVGhpcyBpcyBhIHN0cnVjdHVy ZSBob2xkaW5nIHRoZSBwYWdlcywgY2FjaGluZy0gYW5kIGFwZXJ0dXJlIGJpbmRpbmcKKyAqIHN0 YXR1cyBmb3IgYSBidWZmZXIgb2JqZWN0IHRoYXQgaXNuJ3QgYmFja2VkIGJ5IGZpeGVkIChWUkFN IC8gQUdQKQorICogbWVtb3J5LgorICovCitzdHJ1Y3QgdHRtX2RtYV90dCB7CisJc3RydWN0IHR0 bV90dCB0dG07CisJZG1hX2FkZHJfdCAqZG1hX2FkZHJlc3M7CisJc3RydWN0IGxpc3RfaGVhZCBw YWdlc19saXN0OworfTsKKworLyoqCisgKiB0dG1fdHRfY3JlYXRlCisgKgorICogQGJvOiBwb2lu dGVyIHRvIGEgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0CisgKiBAemVyb19hbGxvYzogdHJ1ZSBp ZiBhbGxvY2F0ZWQgcGFnZXMgbmVlZHMgdG8gYmUgemVyb2VkCisgKgorICogTWFrZSBzdXJlIHdl IGhhdmUgYSBUVE0gc3RydWN0dXJlIGFsbG9jYXRlZCBmb3IgdGhlIGdpdmVuIEJPLgorICogTm8g cGFnZXMgYXJlIGFjdHVhbGx5IGFsbG9jYXRlZC4KKyAqLworaW50IHR0bV90dF9jcmVhdGUoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCB6ZXJvX2FsbG9jKTsKKworLyoqCisgKiB0 dG1fdHRfaW5pdAorICoKKyAqIEB0dG06IFRoZSBzdHJ1Y3QgdHRtX3R0LgorICogQGJkZXY6IHBv aW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX2JvX2RldmljZToKKyAqIEBzaXplOiBTaXplIG9mIHRoZSBk YXRhIG5lZWRlZCBiYWNraW5nLgorICogQHBhZ2VfZmxhZ3M6IFBhZ2UgZmxhZ3MgYXMgaWRlbnRp ZmllZCBieSBUVE1fUEFHRV9GTEFHX1hYIGZsYWdzLgorICoKKyAqIENyZWF0ZSBhIHN0cnVjdCB0 dG1fdHQgdG8gYmFjayBkYXRhIHdpdGggc3lzdGVtIG1lbW9yeSBwYWdlcy4KKyAqIE5vIHBhZ2Vz IGFyZSBhY3R1YWxseSBhbGxvY2F0ZWQuCisgKiBSZXR1cm5zOgorICogTlVMTDogT3V0IG9mIG1l bW9yeS4KKyAqLworaW50IHR0bV90dF9pbml0KHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCisJCXVuc2lnbmVkIGxvbmcgc2l6ZSwgdWludDMyX3QgcGFnZV9m bGFncyk7CitpbnQgdHRtX2RtYV90dF9pbml0KHN0cnVjdCB0dG1fZG1hX3R0ICp0dG1fZG1hLCBz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKKwkJICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdWlu dDMyX3QgcGFnZV9mbGFncyk7CisKKy8qKgorICogdHRtX3R0X2ZpbmkKKyAqCisgKiBAdHRtOiB0 aGUgdHRtX3R0IHN0cnVjdHVyZS4KKyAqCisgKiBGcmVlIG1lbW9yeSBvZiB0dG1fdHQgc3RydWN0 dXJlCisgKi8KK3ZvaWQgdHRtX3R0X2Zpbmkoc3RydWN0IHR0bV90dCAqdHRtKTsKK3ZvaWQgdHRt X2RtYV90dF9maW5pKHN0cnVjdCB0dG1fZG1hX3R0ICp0dG1fZG1hKTsKKworLyoqCisgKiB0dG1f dHRtX2JpbmQ6CisgKgorICogQHR0bTogVGhlIHN0cnVjdCB0dG1fdHQgY29udGFpbmluZyBiYWNr aW5nIHBhZ2VzLgorICogQGJvX21lbTogVGhlIHN0cnVjdCB0dG1fbWVtX3JlZyBpZGVudGlmeWlu ZyB0aGUgYmluZGluZyBsb2NhdGlvbi4KKyAqCisgKiBCaW5kIHRoZSBwYWdlcyBvZiBAdHRtIHRv IGFuIGFwZXJ0dXJlIGxvY2F0aW9uIGlkZW50aWZpZWQgYnkgQGJvX21lbQorICovCitpbnQgdHRt X3R0X2JpbmQoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX21lbV9yZWcgKmJvX21lbSwK KwkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOworCisvKioKKyAqIHR0bV90dG1fZGVz dHJveToKKyAqCisgKiBAdHRtOiBUaGUgc3RydWN0IHR0bV90dC4KKyAqCisgKiBVbmJpbmQsIHVu cG9wdWxhdGUgYW5kIGRlc3Ryb3kgY29tbW9uIHN0cnVjdCB0dG1fdHQuCisgKi8KK3ZvaWQgdHRt X3R0X2Rlc3Ryb3koc3RydWN0IHR0bV90dCAqdHRtKTsKKworLyoqCisgKiB0dG1fdHRtX3VuYmlu ZDoKKyAqCisgKiBAdHRtOiBUaGUgc3RydWN0IHR0bV90dC4KKyAqCisgKiBVbmJpbmQgYSBzdHJ1 Y3QgdHRtX3R0LgorICovCit2b2lkIHR0bV90dF91bmJpbmQoc3RydWN0IHR0bV90dCAqdHRtKTsK KworLyoqCisgKiB0dG1fdHRfc3dhcGluOgorICoKKyAqIEB0dG06IFRoZSBzdHJ1Y3QgdHRtX3R0 LgorICoKKyAqIFN3YXAgaW4gYSBwcmV2aW91c2x5IHN3YXAgb3V0IHR0bV90dC4KKyAqLworaW50 IHR0bV90dF9zd2FwaW4oc3RydWN0IHR0bV90dCAqdHRtKTsKKworLyoqCisgKiB0dG1fdHRfc2V0 X3BsYWNlbWVudF9jYWNoaW5nOgorICoKKyAqIEB0dG0gQSBzdHJ1Y3QgdHRtX3R0IHRoZSBiYWNr aW5nIHBhZ2VzIG9mIHdoaWNoIHdpbGwgY2hhbmdlIGNhY2hpbmcgcG9saWN5LgorICogQHBsYWNl bWVudDogRmxhZyBpbmRpY2F0aW5nIHRoZSBkZXNpcmVkIGNhY2hpbmcgcG9saWN5LgorICoKKyAq IFRoaXMgZnVuY3Rpb24gd2lsbCBjaGFuZ2UgY2FjaGluZyBwb2xpY3kgb2YgYW55IGRlZmF1bHQg a2VybmVsIG1hcHBpbmdzIG9mCisgKiB0aGUgcGFnZXMgYmFja2luZyBAdHRtLiBJZiBjaGFuZ2lu ZyBmcm9tIGNhY2hlZCB0byB1bmNhY2hlZCBvcgorICogd3JpdGUtY29tYmluZWQsCisgKiBhbGwg Q1BVIGNhY2hlcyB3aWxsIGZpcnN0IGJlIGZsdXNoZWQgdG8gbWFrZSBzdXJlIHRoZSBkYXRhIG9m IHRoZSBwYWdlcworICogaGl0IFJBTS4gVGhpcyBmdW5jdGlvbiBtYXkgYmUgdmVyeSBjb3N0bHkg YXMgaXQgaW52b2x2ZXMgZ2xvYmFsIFRMQgorICogYW5kIGNhY2hlIGZsdXNoZXMgYW5kIHBvdGVu dGlhbCBwYWdlIHNwbGl0dGluZyAvIGNvbWJpbmluZy4KKyAqLworaW50IHR0bV90dF9zZXRfcGxh Y2VtZW50X2NhY2hpbmcoc3RydWN0IHR0bV90dCAqdHRtLCB1aW50MzJfdCBwbGFjZW1lbnQpOwor aW50IHR0bV90dF9zd2Fwb3V0KHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IGZpbGUgKnBlcnNp c3RlbnRfc3dhcF9zdG9yYWdlKTsKKworLyoqCisgKiB0dG1fdHRfcG9wdWxhdGUgLSBhbGxvY2F0 ZSBwYWdlcyBmb3IgYSB0dG0KKyAqCisgKiBAdHRtOiBQb2ludGVyIHRvIHRoZSB0dG1fdHQgc3Ry dWN0dXJlCisgKgorICogQ2FsbHMgdGhlIGRyaXZlciBtZXRob2QgdG8gYWxsb2NhdGUgcGFnZXMg Zm9yIGEgdHRtCisgKi8KK2ludCB0dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtLCBz dHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7CisKKy8qKgorICogdHRtX3R0X3VucG9wdWxh dGUgLSBmcmVlIHBhZ2VzIGZyb20gYSB0dG0KKyAqCisgKiBAdHRtOiBQb2ludGVyIHRvIHRoZSB0 dG1fdHQgc3RydWN0dXJlCisgKgorICogQ2FsbHMgdGhlIGRyaXZlciBtZXRob2QgdG8gZnJlZSBh bGwgcGFnZXMgZnJvbSBhIHR0bQorICovCit2b2lkIHR0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0 dG1fdHQgKnR0bSk7CisKKyNpZiBJU19FTkFCTEVEKENPTkZJR19BR1ApCisjaW5jbHVkZSA8bGlu dXgvYWdwX2JhY2tlbmQuaD4KKworLyoqCisgKiB0dG1fYWdwX3R0X2NyZWF0ZQorICoKKyAqIEBi ZGV2OiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV9ib19kZXZpY2UuCisgKiBAYnJpZGdlOiBUaGUg YWdwIGJyaWRnZSB0aGlzIGRldmljZSBpcyBzaXR0aW5nIG9uLgorICogQHNpemU6IFNpemUgb2Yg dGhlIGRhdGEgbmVlZGVkIGJhY2tpbmcuCisgKiBAcGFnZV9mbGFnczogUGFnZSBmbGFncyBhcyBp ZGVudGlmaWVkIGJ5IFRUTV9QQUdFX0ZMQUdfWFggZmxhZ3MuCisgKgorICoKKyAqIENyZWF0ZSBh IFRUTSBiYWNrZW5kIHRoYXQgdXNlcyB0aGUgaW5kaWNhdGVkIEFHUCBicmlkZ2UgYXMgYW4gYXBl cnR1cmUKKyAqIGZvciBUVCBtZW1vcnkuIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgbGludXggYWdw Z2FydCBpbnRlcmZhY2UgdG8KKyAqIGJpbmQgYW5kIHVuYmluZCBtZW1vcnkgYmFja2luZyBhIHR0 bV90dC4KKyAqLworc3RydWN0IHR0bV90dCAqdHRtX2FncF90dF9jcmVhdGUoc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXYsCisJCQkJIHN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZSwKKwkJ CQkgdW5zaWduZWQgbG9uZyBzaXplLCB1aW50MzJfdCBwYWdlX2ZsYWdzKTsKK2ludCB0dG1fYWdw X3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4 ICpjdHgpOwordm9pZCB0dG1fYWdwX3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKTsK KyNlbmRpZgorCisjZW5kaWYKLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9hbWQtZ2Z4Cg==