From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4 06/38] drm: Add some kselftests for the DRM range manager (struct drm_mm) Date: Thu, 22 Dec 2016 08:36:09 +0000 Message-ID: <20161222083641.2691-7-chris@chris-wilson.co.uk> References: <20161222083641.2691-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161222083641.2691-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Rmlyc3Qgd2UgaW50cm9kdWNlIGEgc21hdHRlcmluZyBvZiBpbmZyYXN0cnVjdHVyZSBmb3Igd3Jp dGluZyBzZWxmdGVzdHMuClRoZSBpZGVhIGlzIHRoYXQgd2UgaGF2ZSBhIHRlc3QgbW9kdWxlIHRo YXQgZXhlcmNpc2VzIGEgcGFydGljdWxhcgpwb3J0aW9uIG9mIHRoZSBleHBvcnRlZCBBUEksIGFu ZCB0aGF0IG1vZHVsZSBwcm92aWRlcyBhIHNldCBvZiB0ZXN0cwp0aGF0IGNhbiBlaXRoZXIgYmUg cnVuIGFzIGFuIGVuc2VtYmxlIHZpYSBrc2VsZnRlc3Qgb3IgaW5kaXZpZHVhbGx5IHZpYQphbiBp Z3QgaGFybmVzcyAoaW4gdGhpcyBjYXNlIGlndC9kcm1fbW0pLiBUbyBhY2NvbW1vZGF0ZSBzZWxl Y3RpbmcKaW5kaXZpZHVhbCB0ZXN0cywgd2UgZXhwb3J0IGEgYm9vbGVhbiBwYXJhbWV0ZXIgdG8g Y29udHJvbCBzZWxlY3Rpb24gb2YKZWFjaCB0ZXN0IC0gdGhhdCBpcyBoaWRkZW4gaW5zaWRlIGEg YnVuY2ggb2YgcmV1c2FibGUgYm9pbGVycGxhdGUgbWFjcm9zCnRvIGtlZXAgd3JpdGluZyB0aGUg dGVzdHMgc2ltcGxlLgoKdjI6IENob29zZSBhIHJhbmRvbSByYW5kb21fc2VlZCB1bmxlc3Mgb25l IGlzIHNwZWNpZmllZCBieSB0aGUgdXNlci4KdjM6IE1vcmUgcGFyYW1ldGVycyB0byBjb250cm9s IG1heF9pdGVyYXRpb25zIGFuZCBtYXhfcHJpbWUgb2YgdGhlCnRlc3RzLgoKVGVzdGNhc2U6IGln dC9kcm1fbW0KU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+CkFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5j b20+ClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5p bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL0tjb25maWcgICAgICAgICAgICAgICAgICAg ICAgIHwgIDE1ICsrKysKIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9tbV9zZWxmdGVzdHMu aCAgfCAgIDggKysKIGRyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX3NlbGZ0ZXN0LmMgICAg ICB8IDEwOSArKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3NlbGZ0 ZXN0cy9kcm1fc2VsZnRlc3QuaCAgICAgIHwgIDQxICsrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYyAgICAgICB8ICA1OCArKysrKysrKysrKysrKwogdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9ncHUvZHJtX21tLnNoIHwgIDE1ICsrKysKIDcg ZmlsZXMgY2hhbmdlZCwgMjQ3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9tbV9zZWxmdGVzdHMuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX3NlbGZ0ZXN0LmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9zZWxmdGVzdC5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jCiBjcmVh dGUgbW9kZSAxMDA3NTUgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9ncHUvZHJtX21t LnNoCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcgYi9kcml2ZXJzL2dwdS9k cm0vS2NvbmZpZwppbmRleCA0NWExYzc0NjhlODguLjI5MTQ2ZmE4MzAwMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKQEAg LTQ4LDYgKzQ4LDIxIEBAIGNvbmZpZyBEUk1fREVCVUdfTU0KIAogCSAgSWYgaW4gZG91YnQsIHNh eSAiTiIuCiAKK2NvbmZpZyBEUk1fREVCVUdfTU1fU0VMRlRFU1QKKwl0cmlzdGF0ZSAia3NlbGZ0 ZXN0cyBmb3IgRFJNIHJhbmdlIG1hbmFnZXIgKHN0cnVjdCBkcm1fbW0pIgorCWRlcGVuZHMgb24g RFJNCisJZGVwZW5kcyBvbiBERUJVR19LRVJORUwKKwlzZWxlY3QgUFJJTUVfTlVNQkVSUworCXNl bGVjdCBEUk1fTElCX1JBTkRPTQorCWRlZmF1bHQgbgorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIHBy b3ZpZGVzIGEga2VybmVsIG1vZHVsZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QKKwkgIHRoZSBE Uk0gcmFuZ2UgbWFuYWdlciAoZHJtX21tKSBhbmQgaXRzIEFQSS4gVGhpcyBvcHRpb24gaXMgbm90 CisJICB1c2VmdWwgZm9yIGRpc3RyaWJ1dGlvbnMgb3IgZ2VuZXJhbCBrZXJuZWxzLCBidXQgb25s eSBmb3Iga2VybmVsCisJICBkZXZlbG9wZXJzIHdvcmtpbmcgb24gRFJNIGFuZCBhc3NvY2lhdGVk IGRyaXZlcnMuCisKKwkgIElmIGluIGRvdWJ0LCBzYXkgIk4iLgorCiBjb25maWcgRFJNX0tNU19I RUxQRVIKIAl0cmlzdGF0ZQogCWRlcGVuZHMgb24gRFJNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5kZXggNmJiNDE2MzYw YWU0Li5jMGQxYWVkODU4OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQor KysgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTM4LDYgKzM4LDcgQEAgZHJtX2ttc19o ZWxwZXItJChDT05GSUdfRFJNX0tNU19DTUFfSEVMUEVSKSArPSBkcm1fZmJfY21hX2hlbHBlci5v CiBkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fRFBfQVVYX0NIQVJERVYpICs9IGRybV9kcF9h dXhfZGV2Lm8KIAogb2JqLSQoQ09ORklHX0RSTV9LTVNfSEVMUEVSKSArPSBkcm1fa21zX2hlbHBl ci5vCitvYmotJChDT05GSUdfRFJNX0RFQlVHX01NX1NFTEZURVNUKSArPSBzZWxmdGVzdHMvdGVz dC1kcm1fbW0ubwogCiBDRkxBR1NfZHJtX3RyYWNlX3BvaW50cy5vIDo9IC1JJChzcmMpCiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21tX3NlbGZ0ZXN0cy5oIGIv ZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1fbW1fc2VsZnRlc3RzLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xNjEwZTBhNjNhNWIKLS0tIC9kZXYvbnVsbAor KysgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9tbV9zZWxmdGVzdHMuaApAQCAtMCww ICsxLDggQEAKKy8qIExpc3QgZWFjaCB1bml0IHRlc3QgYXMgc2VsZnRlc3QobmFtZSwgZnVuY3Rp b24pCisgKgorICogVGhlIG5hbWUgaXMgdXNlZCBhcyBib3RoIGFuIGVudW0gYW5kIGV4cGFuZGVk IGFzIGlndF9fbmFtZSB0byBjcmVhdGUKKyAqIGEgbW9kdWxlIHBhcmFtZXRlci4gSXQgbXVzdCBi ZSB1bmlxdWUgYW5kIGxlZ2FsIGZvciBhIEMgaWRlbnRpZmllci4KKyAqCisgKiBUZXN0cyBhcmUg ZXhlY3V0ZWQgaW4gb3JkZXIgYnkgaWd0L2RybV9tbQorICovCitzZWxmdGVzdChzYW5pdHljaGVj aywgaWd0X3Nhbml0eWNoZWNrKSAvKiBrZWVwIGZpcnN0IChzZWxmY2hlY2sgZm9yIGlndCkgKi8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX3NlbGZ0ZXN0LmMgYi9k cml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9zZWxmdGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTI5ZWQ5ZmFlZjViCi0tLSAvZGV2L251bGwKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1fc2VsZnRlc3QuYwpAQCAtMCwwICsxLDEwOSBA QAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE2IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g b2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1 bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0 d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisg KiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUs IGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlz aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAo aW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAq CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQg U0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlIDxsaW51 eC9jb21waWxlci5oPgorCisjZGVmaW5lIHNlbGZ0ZXN0KG5hbWUsIGZ1bmMpIF9faWR4XyMjbmFt ZSwKK2VudW0geworI2luY2x1ZGUgVEVTVFMKK307CisjdW5kZWYgc2VsZnRlc3QKKworI2RlZmlu ZSBzZWxmdGVzdChuLCBmKSBbX19pZHhfIyNuXSA9IHsgLm5hbWUgPSAjbiwgLmZ1bmMgPSBmIH0s CitzdGF0aWMgc3RydWN0IGRybV9zZWxmdGVzdCB7CisJYm9vbCBlbmFibGVkOworCWNvbnN0IGNo YXIgKm5hbWU7CisJaW50ICgqZnVuYykodm9pZCAqKTsKK30gc2VsZnRlc3RzW10gPSB7CisjaW5j bHVkZSBURVNUUworfTsKKyN1bmRlZiBzZWxmdGVzdAorCisvKiBFbWJlZCB0aGUgbGluZSBudW1i ZXIgaW50byB0aGUgcGFyYW1ldGVyIG5hbWUgc28gdGhhdCB3ZSBjYW4gb3JkZXIgdGVzdHMgKi8K KyNkZWZpbmUgcGFyYW0obikgX19QQVNURShpZ3RfXywgX19QQVNURShfX1BBU1RFKF9fTElORV9f LCBfXyksIG4pKQorI2RlZmluZSBzZWxmdGVzdF8wKG4sIGZ1bmMsIGlkKSBcCittb2R1bGVfcGFy YW1fbmFtZWQoaWQsIHNlbGZ0ZXN0c1tfX2lkeF8jI25dLmVuYWJsZWQsIGJvb2wsIDA0MDApOwor I2RlZmluZSBzZWxmdGVzdChuLCBmdW5jKSBzZWxmdGVzdF8wKG4sIGZ1bmMsIHBhcmFtKG4pKQor I2luY2x1ZGUgVEVTVFMKKyN1bmRlZiBzZWxmdGVzdAorCitzdGF0aWMgdm9pZCBzZXRfZGVmYXVs dF90ZXN0X2FsbChzdHJ1Y3QgZHJtX3NlbGZ0ZXN0ICpzdCwgdW5zaWduZWQgbG9uZyBjb3VudCkK K3sKKwl1bnNpZ25lZCBsb25nIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKwkJ aWYgKHN0W2ldLmVuYWJsZWQpCisJCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7 IGkrKykKKwkJc3RbaV0uZW5hYmxlZCA9IHRydWU7Cit9CisKK3N0YXRpYyBpbnQgcnVuX3NlbGZ0 ZXN0cyhzdHJ1Y3QgZHJtX3NlbGZ0ZXN0ICpzdCwKKwkJCSB1bnNpZ25lZCBsb25nIGNvdW50LAor CQkJIHZvaWQgKmRhdGEpCit7CisJaW50IGVyciA9IDA7CisKKwlzZXRfZGVmYXVsdF90ZXN0X2Fs bChzdCwgY291bnQpOworCisJLyogVGVzdHMgYXJlIGxpc3RlZCBpbiBuYXR1cmFsIG9yZGVyIGlu IGRybV8qX3NlbGZ0ZXN0cy5oICovCisJZm9yICg7IGNvdW50LS07IHN0KyspIHsKKwkJaWYgKCFz dC0+ZW5hYmxlZCkKKwkJCWNvbnRpbnVlOworCisJCXByX2RlYnVnKCJkcm06IFJ1bm5pbmcgJXNc biIsIHN0LT5uYW1lKTsKKwkJZXJyID0gc3QtPmZ1bmMoZGF0YSk7CisJCWlmIChlcnIpCisJCQli cmVhazsKKwl9CisKKwlpZiAoV0FSTihlcnIgPiAwIHx8IGVyciA9PSAtRU5PVFRZLAorCQkgIiVz IHJldHVybmVkICVkLCBjb25mbGljdGluZyB3aXRoIHNlbGZ0ZXN0J3MgbWFnaWMgdmFsdWVzIVxu IiwKKwkJIHN0LT5uYW1lLCBlcnIpKQorCQllcnIgPSAtMTsKKworCXJjdV9iYXJyaWVyKCk7CisJ cmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBfX21heWJlX3VudXNlZAorX19kcm1fc3VidGVz dHMoY29uc3QgY2hhciAqY2FsbGVyLAorCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX3N1YnRlc3Qg KnN0LAorCSAgICAgICBpbnQgY291bnQsCisJICAgICAgIHZvaWQgKmRhdGEpCit7CisJaW50IGVy cjsKKworCWZvciAoOyBjb3VudC0tOyBzdCsrKSB7CisJCXByX2RlYnVnKCJSdW5uaW5nICVzLyVz XG4iLCBjYWxsZXIsIHN0LT5uYW1lKTsKKwkJZXJyID0gc3QtPmZ1bmMoZGF0YSk7CisJCWlmIChl cnIpIHsKKwkJCXByX2VycigiJXM6ICVzIGZhaWxlZCB3aXRoIGVycm9yICVkXG4iLAorCQkJICAg ICAgIGNhbGxlciwgc3QtPm5hbWUsIGVycik7CisJCQlyZXR1cm4gZXJyOworCQl9CisJfQorCisJ cmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9z ZWxmdGVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1fc2VsZnRlc3QuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM3ODRlYzAyZmY1MwotLS0gL2Rl di9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX3NlbGZ0ZXN0LmgKQEAg LTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE2IEludGVsIENvcnBvcmF0aW9u CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdh cmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGlu Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBT b2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAg SU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO RworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNp Zm5kZWYgX19EUk1fU0VMRlRFU1RfSF9fCisjZGVmaW5lIF9fRFJNX1NFTEZURVNUX0hfXworCitz dHJ1Y3QgZHJtX3N1YnRlc3QgeworCWludCAoKmZ1bmMpKHZvaWQgKmRhdGEpOworCWNvbnN0IGNo YXIgKm5hbWU7Cit9OworCitzdGF0aWMgaW50IF9fZHJtX3N1YnRlc3RzKGNvbnN0IGNoYXIgKmNh bGxlciwKKwkJCSAgY29uc3Qgc3RydWN0IGRybV9zdWJ0ZXN0ICpzdCwKKwkJCSAgaW50IGNvdW50 LAorCQkJICB2b2lkICpkYXRhKTsKKyNkZWZpbmUgZHJtX3N1YnRlc3RzKFQsIGRhdGEpIFwKKwlf X2RybV9zdWJ0ZXN0cyhfX2Z1bmNfXywgVCwgQVJSQVlfU0laRShUKSwgZGF0YSkKKworI2RlZmlu ZSBTVUJURVNUKHgpIHsgeCwgI3ggfQorCisjZW5kaWYgLyogX19EUk1fU0VMRlRFU1RfSF9fICov CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMgYi9k cml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42ODJmNWY4NmY0NjUKLS0tIC9kZXYvbnVsbAorKysgYi9k cml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMKQEAgLTAsMCArMSw1OCBAQAor LyoKKyAqIFRlc3QgY2FzZXMgZm9yIHRoZSBkcm1fbW0gcmFuZ2UgbWFuYWdlcgorICovCisKKyNk ZWZpbmUgcHJfZm10KGZtdCkgImRybV9tbTogIiBmbXQKKworI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgorI2luY2x1ZGUgPGxpbnV4L3ByaW1lX251bWJlcnMuaD4KKyNpbmNsdWRlIDxsaW51eC9z bGFiLmg+CisjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxv Yy5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgorCisjaW5jbHVkZSAiLi4vbGliL2RybV9y YW5kb20uaCIKKworI2RlZmluZSBURVNUUyAiZHJtX21tX3NlbGZ0ZXN0cy5oIgorI2luY2x1ZGUg ImRybV9zZWxmdGVzdC5oIgorCitzdGF0aWMgdW5zaWduZWQgaW50IHJhbmRvbV9zZWVkOworc3Rh dGljIHVuc2lnbmVkIGludCBtYXhfaXRlcmF0aW9ucyA9IDgxOTI7CitzdGF0aWMgdW5zaWduZWQg aW50IG1heF9wcmltZSA9IDEyODsKKworc3RhdGljIGludCBpZ3Rfc2FuaXR5Y2hlY2sodm9pZCAq aWdub3JlZCkKK3sKKwlwcl9pbmZvKCIlcyAtIG9rIVxuIiwgX19mdW5jX18pOworCXJldHVybiAw OworfQorCisjaW5jbHVkZSAiZHJtX3NlbGZ0ZXN0LmMiCisKK3N0YXRpYyBpbnQgX19pbml0IHRl c3RfZHJtX21tX2luaXQodm9pZCkKK3sKKwlpbnQgZXJyOworCisJd2hpbGUgKCFyYW5kb21fc2Vl ZCkKKwkJcmFuZG9tX3NlZWQgPSBnZXRfcmFuZG9tX2ludCgpOworCisJcHJfaW5mbygiVGVzdGlu ZyBEUk0gcmFuZ2UgbWFuZ2VyIChzdHJ1Y3QgZHJtX21tKSwgd2l0aCByYW5kb21fc2VlZD0weCV4 IG1heF9pdGVyYXRpb25zPSV1IG1heF9wcmltZT0ldVxuIiwKKwkJcmFuZG9tX3NlZWQsIG1heF9p dGVyYXRpb25zLCBtYXhfcHJpbWUpOworCWVyciA9IHJ1bl9zZWxmdGVzdHMoc2VsZnRlc3RzLCBB UlJBWV9TSVpFKHNlbGZ0ZXN0cyksIE5VTEwpOworCisJcmV0dXJuIGVyciA+IDAgPyAwIDogZXJy OworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgdGVzdF9kcm1fbW1fZXhpdCh2b2lkKQoreworfQor Cittb2R1bGVfaW5pdCh0ZXN0X2RybV9tbV9pbml0KTsKK21vZHVsZV9leGl0KHRlc3RfZHJtX21t X2V4aXQpOworCittb2R1bGVfcGFyYW0ocmFuZG9tX3NlZWQsIHVpbnQsIDA0MDApOworbW9kdWxl X3BhcmFtKG1heF9pdGVyYXRpb25zLCB1aW50LCAwNDAwKTsKK21vZHVsZV9wYXJhbShtYXhfcHJp bWUsIHVpbnQsIDA0MDApOworCitNT0RVTEVfQVVUSE9SKCJJbnRlbCBDb3Jwb3JhdGlvbiIpOwor TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvZHJpdmVycy9ncHUvZHJtX21tLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVy cy9ncHUvZHJtX21tLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMC4u OTZkZDU1YzkyNzk5Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv ZHJpdmVycy9ncHUvZHJtX21tLnNoCkBAIC0wLDAgKzEsMTUgQEAKKyMhL2Jpbi9zaAorIyBSdW5z IEFQSSB0ZXN0cyBmb3Igc3RydWN0IGRybV9tbSAoRFJNIHJhbmdlIG1hbmFnZXIpCisKK2lmICEg L3NiaW4vbW9kcHJvYmUgLW4gLXEgdGVzdC1kcm1fbW07IHRoZW4KKyAgICAgICBlY2hvICJkcml2 ZXJzL2dwdS9kcm1fbW06IFtza2lwXSIKKyAgICAgICBleGl0IDc3CitmaQorCitpZiAvc2Jpbi9t b2Rwcm9iZSAtcSB0ZXN0LWRybV9tbTsgdGhlbgorICAgICAgIC9zYmluL21vZHByb2JlIC1xIC1y IHRlc3QtZHJtX21tCisgICAgICAgZWNobyAiZHJpdmVycy9ncHUvZHJtX21tOiBvayIKK2Vsc2UK KyAgICAgICBlY2hvICJkcml2ZXJzL2dwdS9kcm1fbW06IFtGQUlMXSIKKyAgICAgICBleGl0IDEK K2ZpCi0tIAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=