From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6AADA6E529 for ; Wed, 14 Aug 2019 10:21:59 +0000 (UTC) From: Lukasz Kalamarz Date: Wed, 14 Aug 2019 12:21:38 +0200 Message-Id: <20190814102140.3275-3-lukasz.kalamarz@intel.com> In-Reply-To: <20190814102140.3275-1-lukasz.kalamarz@intel.com> References: <20190814102140.3275-1-lukasz.kalamarz@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC PATCH 2/4] lib/i915/intel_memory_region: Add lib to manage memory regions 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: Matthew Auld List-ID: TE1FTSBzZXJpZXMgaW50cm9kdWNlZCBjb25jZXB0IG9mIG1lbW9yeV9yZWdpb25zLiBUaGlzIHBh dGNoIGltcGxlbWVudApoZWxwZXIgZnVuY3Rpb25zIHRoYXQgYWxsb3cgdXNlciB0byBtYW5hZ2Ug dGhlbSBpbiBtb3JlIGNvbnZlbmllbnQgd2F5LgoKU2lnbmVkLW9mZi1ieTogTHVrYXN6IEthbGFt YXJ6IDxsdWthc3oua2FsYW1hcnpAaW50ZWwuY29tPgpDYzogTWF0dGhldyBBdWxkIDxtYXR0aGV3 LmF1bGRAaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGlu dXguaW50ZWwuY29tPgotLS0KIGxpYi9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAgICB8ICAgMiAr CiBsaWIvaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMgfCAxNjQgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBsaWIvaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmggfCAxMTIgKysr KysrKysrKysrKysrKysrKysrKwogbGliL2lvY3RsX3dyYXBwZXJzLmggICAgICAgICAgIHwgICAx ICsKIGxpYi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAgMSArCiA1IGZpbGVzIGNoYW5n ZWQsIDI4MCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2k5MTUvaW50ZWxf bWVtb3J5X3JlZ2lvbi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2k5MTUvaW50ZWxfbWVtb3J5 X3JlZ2lvbi5oCgpkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlLnNvdXJjZXMgYi9saWIvTWFrZWZp bGUuc291cmNlcwppbmRleCBlMTZkZTg2ZS4uYzVkYmRlYWYgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtl ZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9NYWtlZmlsZS5zb3VyY2VzCkBAIC0xNyw2ICsxNyw4IEBA IGxpYl9zb3VyY2VfbGlzdCA9CSAJXAogCWk5MTUvZ2VtX21tYW4uaAlcCiAJaTkxNS9nZW1fdm0u YwlcCiAJaTkxNS9nZW1fdm0uaAlcCisJaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMJXAorCWk5 MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCVwKIAlpOTE1XzNkLmgJCVwKIAlpOTE1X3JlZy5oCQlc CiAJaTkxNV9wY2lpZHMuaAkJXApkaWZmIC0tZ2l0IGEvbGliL2k5MTUvaW50ZWxfbWVtb3J5X3Jl Z2lvbi5jIGIvbGliL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwLi5mNjk3ODAwMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9pOTE1 L2ludGVsX21lbW9yeV9yZWdpb24uYwpAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqIENvcHlyaWdo dCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0 CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICog SU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxz eXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorCisjaW5jbHVkZSAiaW50ZWxfcmVn LmgiCisjaW5jbHVkZSAiZHJtdGVzdC5oIgorI2luY2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiCisj aW5jbHVkZSAiaWd0X2R1bW15bG9hZC5oIgorI2luY2x1ZGUgImlndF9ndC5oIgorI2luY2x1ZGUg ImludGVsX2NoaXBzZXQuaCIKKworI2luY2x1ZGUgImk5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5o IgorCisjZGVmaW5lIGk5MTVfcXVlcnlfaXRlbXMoZmQsIGl0ZW1zLCBuX2l0ZW1zKSBkbyB7IFwK KwkJaWd0X2Fzc2VydF9lcShfX2k5MTVfcXVlcnlfaXRlbXMoZmQsIGl0ZW1zLCBuX2l0ZW1zKSwg MCk7IFwKKwkJZXJybm8gPSAwOyBcCisJfSB3aGlsZSAoMCkKKyNkZWZpbmUgaTkxNV9xdWVyeV9p dGVtc19lcnIoZmQsIGl0ZW1zLCBuX2l0ZW1zLCBlcnIpIGRvIHsgXAorCQlpZ3RfYXNzZXJ0X2Vx KF9faTkxNV9xdWVyeV9pdGVtcyhmZCwgaXRlbXMsIG5faXRlbXMpLCAtZXJyKTsgXAorCX0gd2hp bGUgKDApCisKK3N0YXRpYyBpbnQKK19faTkxNV9xdWVyeShpbnQgZmQsIHN0cnVjdCBkcm1faTkx NV9xdWVyeSAqcSkKK3sKKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9RVUVSWSwg cSkpCisJCXJldHVybiAtZXJybm87CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK19faTkx NV9xdWVyeV9pdGVtcyhpbnQgZmQsIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICppdGVtcywg dWludDMyX3Qgbl9pdGVtcykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgcSA9IHsKKwkJLm51 bV9pdGVtcyA9IG5faXRlbXMsCisJCS5pdGVtc19wdHIgPSB0b191c2VyX3BvaW50ZXIoaXRlbXMp LAorCX07CisJcmV0dXJuIF9faTkxNV9xdWVyeShmZCwgJnEpOworfQorCitib29sIGdlbV9oYXNf cXVlcnlfc3VwcG9ydChpbnQgZmQpCit7CisJc3RydWN0IGRybV9pOTE1X3F1ZXJ5IHF1ZXJ5ID0g e307CisKKwlyZXR1cm4gX19pOTE1X3F1ZXJ5KGZkLCAmcXVlcnkpID09IDA7Cit9CisKK2NvbnN0 IHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uIGludGVsX21lbW9yeV9yZWdpb25zW10gPSB7CisJ eyAiU01FTSIsIExPQ0FMX0k5MTVfU1lTVEVNX01FTU9SWSwgSU5URUxfTUVNT1JZX1JFR0lPTl9J RChMT0NBTF9JOTE1X1NZU1RFTV9NRU1PUlkpfSwKKwl7ICJMTUVNIiwgTE9DQUxfSTkxNV9ERVZJ Q0VfTUVNT1JZLCBJTlRFTF9NRU1PUllfUkVHSU9OX0lEKExPQ0FMX0k5MTVfREVWSUNFX01FTU9S WSl9LAorCXsgTlVMTCwgMCwgMH0KK307CisKKy8qKgorICogIGdlbV9nZXRfcGFnZV9zaXplOgor ICogIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0b3IKKyAqICBAbWVtX3JlZ2lvbl90 eXBlOiB1c2VkIG1lbW9yeV9yZWdpb24gdHlwZQorICoKKyAqICBXaXRoIGludHJvZHVjdGlvbiBv ZiBMTUVNIHdlIG9ic2VydmUgZGlmZmVyZW50IHBhZ2Ugc2l6ZXMgZm9yIHRob3NlIHR3bworICog IG1lbW9yeSByZWdpb25zLiBXaXRob3V0IHRoaXMgaGVscGVyIGZ1bmN0aW9uIHdlIG1heSBiZSBw cm9uZSB0byBmb3JnZXQKKyAqICBhYm91dCBzZXR0aW5nIHByb3BlciBwYWdlIHNpemUuCisgKi8K K3VpbnQzMl90IGdlbV9nZXRfYmF0Y2hfc2l6ZShpbnQgZmQsIHVpbnQ4X3QgbWVtX3JlZ2lvbl90 eXBlKQoreworCXJldHVybiAobWVtX3JlZ2lvbl90eXBlID09IExPQ0FMX0k5MTVfREVWSUNFX01F TU9SWSkgPyA2NTUzNiA6IDQwOTY7Cit9CisKKy8qKgorICogZ2VtX2dldF9xdWVyeV9tZW1vcnlf cmVnaW9uczoKKyAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0b3IKKyAqCisgKiBU aGlzIGZ1bmN0aW9uIHdyYXBzIHF1ZXJ5IG1lY2hhbmlzbSBmb3IgbWVtb3J5IHJlZ2lvbnMuCisg KgorICogUmV0dXJuczogRmlsbGVkIHN0cnVjdCB3aXRoIGF2YWlsYWJsZSBtZW1vcnkgcmVnaW9u cy4KKyAqLworc3RydWN0IGxvY2FsX2k5MTVfcXVlcnlfbWVtb3J5X3JlZ2lvbl9pbmZvICpnZW1f Z2V0X3F1ZXJ5X21lbW9yeV9yZWdpb25zKGludCBmZCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcXVl cnlfaXRlbSBpdGVtOworCXN0cnVjdCBsb2NhbF9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25faW5m byAqcXVlcnlfaW5mbzsKKworCW1lbXNldCgmaXRlbSwgMCwgc2l6ZW9mKGl0ZW0pKTsKKwlpdGVt LnF1ZXJ5X2lkID0gTE9DQUxfSTkxNV9RVUVSWV9NRU1SRUdJT05fSU5GTzsKKwlpOTE1X3F1ZXJ5 X2l0ZW1zKGZkLCAmaXRlbSwgMSk7CisKKwlxdWVyeV9pbmZvID0gY2FsbG9jKDEsIGl0ZW0ubGVu Z3RoKTsKKworCWl0ZW0uZGF0YV9wdHIgPSB0b191c2VyX3BvaW50ZXIocXVlcnlfaW5mbyk7CisJ aTkxNV9xdWVyeV9pdGVtcyhmZCwgJml0ZW0sIDEpOworCisJcmV0dXJuIHF1ZXJ5X2luZm87Cit9 CisKKy8qKgorICogZ2VtX2JvX3NldF9tZW1vcnlfcmVnaW9uOgorICogQGZkOiBvcGVuIGk5MTUg ZHJtIGZpbGUgZGVzY3JpcHRvcgorICogQGhhbmRsZTogYnVmZmVyIG9iamVjdCBoYW5kbGUKKyAq IEBpZDogbWVtb3J5IHJlZ2lvbiBpZAorICoKKyAqIFdyYXBwZXIgZnVuY3Rpb24gb24gSU9DVExf STkxNV9HRU1fT0JKRUNUX1NFVFBBUkFNLiBJdCBzZXRzIG9iamVjdCB0byBiZQorICogbWlncmF0 ZWQgaW50byBAaWQgbWVtb3J5IHJlZ2lvbi4KKyAqCisgKiBSZXR1cm5zOiBlcnJubworICovCitp bnQgZ2VtX2JvX3NldF9tZW1vcnlfcmVnaW9uKGludCBmZCwgaW50IGhhbmRsZSwgdWludDMyX3Qg aWQpCit7CisJc3RydWN0IGxvY2FsX2k5MTVfZ2VtX29iamVjdF9wYXJhbSBvYmo7CisJaW50IGVy ciA9IDA7CisKKwltZW1zZXQoJm9iaiwgMCwgc2l6ZW9mKG9iaikpOworCW9iai5oYW5kbGUgPSBo YW5kbGU7CisJb2JqLnNpemUgPSAxOworCW9iai5wYXJhbSA9IExPQ0FMX0k5MTVfUEFSQU1fTUVN T1JZX1JFR0lPTiB8IExPQ0FMX0k5MTVfT0JKRUNUX1BBUkFNOworCW9iai5kYXRhID0gdG9fdXNl cl9wb2ludGVyKCZpZCk7CisKKwlpZiAoaWd0X2lvY3RsKGZkLCBMT0NBTF9JT0NUTF9JOTE1X0dF TV9PQkpFQ1RfU0VUUEFSQU0sICZvYmopKSB7CisJCWVyciA9IC1lcnJubzsKKwkJZXJybm8gPSAw OworCX0KKworCXJldHVybiBlcnI7Cit9CisvKioKKyAqIGdlbV9maW5kX21lbW9yeV9yZWdpb25f aW5fcXVlcnk6CisgKiBAcXVlcnlfaW5mbzogcXVlcnkgcmVzdWx0IG9mIG1lbW9yeSByZWdpb25z CisgKiBAbnVtX3JlZ2lvbnM6IG51bWJlciBvZiBtZW1vcnkgcmVnaW9ucyBmcm9tIEBxdWVyeV9p bmZvCisgKiBAaWQ6IG1lbW9yeSByZWdpb24gaWQKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGl0ZXJh dGUgb3ZlciBAbnVtX3JlZ2lvbnMgb2YgbWVtb3J5IHJlZ2lvbnMgb2J0YWluZWQgYnkKKyAqIEBx dWVyeV9pbmZvIHRvIGZpbmQgaWYgbWVtb3J5IHJlZ2lvbiB3aXRoIGdpdmVuIEBpZCBpcyBhdmFp bGFibGUuCisgKgorICogUmV0dXJuczogdHJ1ZSBpZiBtZW1vcnkgcmVnaW9uIHdhcyBmb3VuZC4g T3RoZXJ3aXNlIGZhbHNlLgorICovCitib29sIGdlbV9maW5kX21lbW9yeV9yZWdpb25faW5fcXVl cnkoc3RydWN0IGxvY2FsX2k5MTVfcXVlcnlfbWVtb3J5X3JlZ2lvbl9pbmZvICpxdWVyeV9pbmZv LAorCQkJCSAgICAgdWludDhfdCBudW1fcmVnaW9ucywgdWludDMyX3QgaWQpCit7CisJZm9yIChp bnQgaSA9IDA7IGkgPCBudW1fcmVnaW9uczsgaSsrKSB7CisJCWlmIChxdWVyeV9pbmZvLT5yZWdp b25zW2ldLmlkID09IGlkKQorCQkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOwor fQpkaWZmIC0tZ2l0IGEvbGliL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oIGIvbGliL2k5MTUv aW50ZWxfbWVtb3J5X3JlZ2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw Li5kZDA0YmVkNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9pOTE1L2ludGVsX21lbW9yeV9yZWdp b24uaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENv cnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisg KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQor ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNo YWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwg SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC SUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgor ICovCisjaW5jbHVkZSAiYmVuY2htYXJrcy9pbG9nMi5oIgorCisjaWZuZGVmIElOVEVMX01FTU9S WV9SRUdJT05fSAorI2RlZmluZSBJTlRFTF9NRU1PUllfUkVHSU9OX0gKKworI2RlZmluZSBMT0NB TF9JOTE1X1FVRVJZX01FTVJFR0lPTl9JTkZPICAgMworCitzdHJ1Y3QgbG9jYWxfaTkxNV9tZW1v cnlfcmVnaW9uX2luZm8geworCisJLyoqIEJhc2UgdHlwZSBvZiBhIHJlZ2lvbiAqLworI2RlZmlu ZSBMT0NBTF9JOTE1X1NZU1RFTV9NRU1PUlkgICAgICAgICAwCisjZGVmaW5lIExPQ0FMX0k5MTVf REVWSUNFX01FTU9SWSAgICAgICAgIDEKKworCS8qKiBUaGUgcmVnaW9uIGlkIGlzIGVuY29kZWQg aW4gYSBsYXlvdXQgd2hpY2ggbWFrZXMgaXQgcG9zc2libGUgdG8KKwkgKiByZXRyaWV2ZSB0aGUg Zm9sbG93aW5nIGluZm9ybWF0aW9uOgorCSAqCisJICogIEJhc2UgdHlwZTogbG9nMihJRCA+PiAx NikKKwkgKi8KKwlfX3UzMiBpZDsKKworCS8qKiBSZXNlcnZlZCBmaWVsZC4gTUJaICovCisJX191 MzIgcnN2ZDA7CisKKwkvKiogVW51c2VkIGZvciBub3cuIE1CWiAqLworCV9fdTY0IGZsYWdzOwor CisJX191NjQgc2l6ZTsKKworCS8qKiBSZXNlcnZlZCBmaWVsZHMgbXVzdCBiZSBjbGVhcmVkIHRv IHplcm8uICovCisJX191NjQgcnN2ZDFbNF07Cit9OworCitzdHJ1Y3QgbG9jYWxfaTkxNV9xdWVy eV9tZW1vcnlfcmVnaW9uX2luZm8geworCisJLyoqIE51bWJlciBvZiBzdHJ1Y3QgZHJtX2k5MTVf bWVtb3J5X3JlZ2lvbl9pbmZvIHN0cnVjdHMgKi8KKwlfX3UzMiBudW1fcmVnaW9uczsKKworCS8q KiBNQlogKi8KKwlfX3UzMiByc3ZkWzNdOworCisJc3RydWN0IGxvY2FsX2k5MTVfbWVtb3J5X3Jl Z2lvbl9pbmZvIHJlZ2lvbnNbXTsKK307CisKKyNkZWZpbmUgSU5URUxfTUVNT1JZX1RZUEVfU0hJ RlQgMTYKKworI2RlZmluZSBJTlRFTF9NRU1PUllfUkVHSU9OX0lEKHR5cGUpIFwKKwkJCSgoQklU KCh0eXBlKSArIElOVEVMX01FTU9SWV9UWVBFX1NISUZUKSkgfCBCSVQoMCkpCisjZGVmaW5lIE1F TU9SWV9UWVBFX0ZST01fUkVHSU9OKHIpIChpbG9nMihyID4+IElOVEVMX01FTU9SWV9UWVBFX1NI SUZUKSkKKworZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uIHsKKwljb25z dCBjaGFyICpyZWdpb25fbmFtZTsKKwl1aW50OF90IG1lbV9yZWdpb25fdHlwZTsKKwl1aW50MzJf dCBpZDsKK30gaW50ZWxfbWVtb3J5X3JlZ2lvbnNbXTsKKworYm9vbCBnZW1faGFzX3F1ZXJ5X3N1 cHBvcnQoaW50IGZkKTsKKwordWludDMyX3QgZ2VtX2dldF9iYXRjaF9zaXplKGludCBmZCwgdWlu dDhfdCBtZW1fcmVnaW9uX3R5cGUpOworCitzdHJ1Y3QgbG9jYWxfaTkxNV9xdWVyeV9tZW1vcnlf cmVnaW9uX2luZm8gKmdlbV9nZXRfcXVlcnlfbWVtb3J5X3JlZ2lvbnMoaW50IGZkKTsKKworYm9v bCBnZW1fZmluZF9tZW1vcnlfcmVnaW9uX2luX3F1ZXJ5KHN0cnVjdCBsb2NhbF9pOTE1X3F1ZXJ5 X21lbW9yeV9yZWdpb25faW5mbyAqcXVlcnlfaW5mbywKKwkJCQkgICAgIHVpbnQ4X3QgbnVtX3Jl Z2lvbnMsIHVpbnQzMl90IGlkKTsKKworI2RlZmluZSBMT0NBTF9JOTE1X0dFTV9PQkpFQ1RfU0VU UEFSQU0gICBEUk1fSTkxNV9HRU1fQ09OVEVYVF9TRVRQQVJBTQorI2RlZmluZSBMT0NBTF9JT0NU TF9JOTE1X0dFTV9PQkpFQ1RfU0VUUEFSQU0gICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0Ug KyBMT0NBTF9JOTE1X0dFTV9PQkpFQ1RfU0VUUEFSQU0sIHN0cnVjdCBsb2NhbF9pOTE1X2dlbV9v YmplY3RfcGFyYW0pCisKK3N0cnVjdCBsb2NhbF9pOTE1X2dlbV9vYmplY3RfcGFyYW0geworCS8q KiBIYW5kbGUgZm9yIHRoZSBvYmplY3QgKi8KKwlfX3UzMiBoYW5kbGU7CisKKwlfX3UzMiBzaXpl OworCisJLyoqIFNldCB0aGUgbWVtb3J5IHJlZ2lvbiBmb3IgdGhlIG9iamVjdCBsaXN0ZWQgaW4g cHJlZmVyZW5jZSBvcmRlcgorCSAqICBhcyBhbiBhcnJheSBvZiByZWdpb24gaWRzIHdpdGhpbiBk YXRhLiBUbyBmb3JjZSBhbiBvYmplY3QKKwkgKiAgdG8gYSBwYXJ0aWN1bGFyIG1lbW9yeSByZWdp b24sIHNldCB0aGUgcmVnaW9uIGFzIHRoZSBzb2xlIGVudHJ5LgorCSAqCisJICogIFZhbGlkIHJl Z2lvbiBpZHMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgaWQgZmllbGQgb2YKKwkgKiAgc3RydWN0IGRy bV9pOTE1X21lbW9yeV9yZWdpb25faW5mby4KKwkgKiAgU2VlIHN0cnVjdCBkcm1faTkxNV9xdWVy eV9tZW1vcnlfcmVnaW9uX2luZm8uCisJICovCisjZGVmaW5lIExPQ0FMX0k5MTVfT0JKRUNUX1BB UkFNICAoMXVsbDw8MzIpCisjZGVmaW5lIExPQ0FMX0k5MTVfUEFSQU1fTUVNT1JZX1JFR0lPTiAw eDEKKworCV9fdTY0IHBhcmFtOworCisJX191NjQgZGF0YTsKK307CitpbnQgZ2VtX2JvX3NldF9t ZW1vcnlfcmVnaW9uKGludCBmZCwgaW50IGhhbmRsZSwgdWludDMyX3QgaWQpOworI2VuZGlmIC8q IElOVEVMX01FTU9SWV9SRUdJT05fSCAqLwpkaWZmIC0tZ2l0IGEvbGliL2lvY3RsX3dyYXBwZXJz LmggYi9saWIvaW9jdGxfd3JhcHBlcnMuaAppbmRleCAwMzIxMWM5Ny4uZjIwOTEyOTUgMTAwNjQ0 Ci0tLSBhL2xpYi9pb2N0bF93cmFwcGVycy5oCisrKyBiL2xpYi9pb2N0bF93cmFwcGVycy5oCkBA IC0zOCw2ICszOCw3IEBACiAKICNpbmNsdWRlICJpOTE1L2dlbV9jb250ZXh0LmgiCiAjaW5jbHVk ZSAiaTkxNS9nZW1fc2NoZWR1bGVyLmgiCisjaW5jbHVkZSAiaTkxNS9pbnRlbF9tZW1vcnlfcmVn aW9uLmgiCiAKIC8qKgogICogaWd0X2lvY3RsOgpkaWZmIC0tZ2l0IGEvbGliL21lc29uLmJ1aWxk IGIvbGliL21lc29uLmJ1aWxkCmluZGV4IDE1NzYyNGU3Li41MmQyMTRiMSAxMDA2NDQKLS0tIGEv bGliL21lc29uLmJ1aWxkCisrKyBiL2xpYi9tZXNvbi5idWlsZApAQCAtNyw2ICs3LDcgQEAgbGli X3NvdXJjZXMgPSBbCiAJJ2k5MTUvZ2VtX3JpbmcuYycsCiAJJ2k5MTUvZ2VtX21tYW4uYycsCiAJ J2k5MTUvZ2VtX3ZtLmMnLAorCSdpOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYycsCiAJJ2lndF9j b2xvcl9lbmNvZGluZy5jJywKIAknaWd0X2RlYnVnZnMuYycsCiAJJ2lndF9kZXZpY2UuYycsCi0t IAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==