From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id B95B56E20E for ; Mon, 20 Aug 2018 13:01:57 +0000 (UTC) From: Chris Wilson Date: Mon, 20 Aug 2018 14:01:46 +0100 Message-Id: <20180820130149.30566-4-chris@chris-wilson.co.uk> In-Reply-To: <20180820130149.30566-1-chris@chris-wilson.co.uk> References: <20180820130149.30566-1-chris@chris-wilson.co.uk> Subject: [igt-dev] [PATCH i-g-t 3/6] igt/shell: Simple OS interface List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 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 List-ID: U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0t LQogc2hlbGwvaW5jbHVkZS9vcy1idWlsdGluLmggfCAgIDcgKysrCiBzaGVsbC9saWIvaW9jdGwu YyAgICAgICAgICB8ICA5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzaGVsbC9saWIv b3MuYyAgICAgICAgICAgICB8IDEyMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBzaGVsbC9tZXNvbi5idWlsZCAgICAgICAgICB8ICAgMiArCiA0IGZpbGVzIGNoYW5nZWQs IDIyMCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2hlbGwvaW5jbHVkZS9vcy1i dWlsdGluLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzaGVsbC9saWIvaW9jdGwuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNoZWxsL2xpYi9vcy5jCgpkaWZmIC0tZ2l0IGEvc2hlbGwvaW5jbHVkZS9vcy1i dWlsdGluLmggYi9zaGVsbC9pbmNsdWRlL29zLWJ1aWx0aW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLjc4MTExYmI2MQotLS0gL2Rldi9udWxsCisrKyBiL3NoZWxsL2lu Y2x1ZGUvb3MtYnVpbHRpbi5oCkBAIC0wLDAgKzEsNyBAQAorI2lmbmRlZiBPU19CVUlMVElOX0gK KyNkZWZpbmUgT1NfSAorCitfX2F0dHJpYnV0ZSgobm9yZXR1cm4pKQordm9pZCBvc190aHJvd19l cnJubyhkdWtfY29udGV4dCAqY3R4LCBpbnQgZXJyKTsKKworI2VuZGlmICAvKiBPU19CVUlMVElO X0ggKi8KZGlmZiAtLWdpdCBhL3NoZWxsL2xpYi9pb2N0bC5jIGIvc2hlbGwvbGliL2lvY3RsLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42NzM5YzlkZTAKLS0tIC9kZXYv bnVsbAorKysgYi9zaGVsbC9saWIvaW9jdGwuYwpAQCAtMCwwICsxLDkxIEBACisjaW5jbHVkZSA8 c3lzL2lvY3RsLmg+CisKKyNpbmNsdWRlICJkdWt0YXBlLmgiCisjaW5jbHVkZSAiaWd0LWJ1aWx0 aW5zLmgiCisKK3N0YXRpYyBkdWtfcmV0X3QgaW9jdGxfaW9jdGwoZHVrX2NvbnRleHQgKmN0eCkK K3sKKwlkdWtfc2l6ZV90IHN6OworCXVuc2lnbmVkIGxvbmcgY21kOworCWludCBmZDsKKwl2b2lk ICpwdHI7CisKKwlmZCA9IGR1a19nZXRfaW50KGN0eCwgLTMpOworCWNtZCAgPSBkdWtfZ2V0X3Vp bnQoY3R4LCAtMik7CisJcHRyID0gZHVrX2dldF9idWZmZXJfZGF0YShjdHgsIC0xLCAmc3opOwor CisJZHVrX3B1c2hfaW50KGN0eCwgaW9jdGwoZmQsIGNtZCwgcHRyKSk7CisJcmV0dXJuIDE7Cit9 CisKK3N0YXRpYyBkdWtfcmV0X3QgaW9jdGxfbnIoZHVrX2NvbnRleHQgKmN0eCkKK3sKKwlkdWtf cHVzaF91aW50KGN0eCwgX0lPQ19OUihkdWtfcmVxdWlyZV91aW50KGN0eCwgLTEpKSk7CisJcmV0 dXJuIDE7Cit9CisKK3N0YXRpYyBkdWtfcmV0X3QgaW9jdGxfdHlwZShkdWtfY29udGV4dCAqY3R4 KQoreworCWR1a19wdXNoX3VpbnQoY3R4LCBfSU9DX1RZUEUoZHVrX3JlcXVpcmVfdWludChjdHgs IC0xKSkpOworCXJldHVybiAxOworfQorCitzdGF0aWMgZHVrX3JldF90IGlvY3RsX2RpcihkdWtf Y29udGV4dCAqY3R4KQoreworCWR1a19wdXNoX3VpbnQoY3R4LCBfSU9DX0RJUihkdWtfcmVxdWly ZV91aW50KGN0eCwgLTEpKSk7CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBkdWtfcmV0X3QgaW9j dGxfc2l6ZShkdWtfY29udGV4dCAqY3R4KQoreworCWR1a19wdXNoX3VpbnQoY3R4LCBfSU9DX1NJ WkUoZHVrX3JlcXVpcmVfdWludChjdHgsIC0xKSkpOworCXJldHVybiAxOworfQorCitzdGF0aWMg ZHVrX3JldF90IGlvY3RsX3BvaW50ZXIoZHVrX2NvbnRleHQgKmN0eCkKK3sKKwl1bnNpZ25lZCBs b25nIG9mZnNldCA9IGR1a19nZXRfdWludChjdHgsIC0yKTsKKwlkdWtfc2l6ZV90IHN6OworCXZv aWQgKnVzZXI7CisJdm9pZCAqcHRyOworCisJdXNlciA9IGR1a19nZXRfYnVmZmVyX2RhdGEoY3R4 LCAtMSwgJnN6KTsKKwlwdHIgPSBkdWtfZ2V0X2J1ZmZlcl9kYXRhKGN0eCwgLTMsICZzeik7CisJ aWYgKCFwdHIpCisJCXJldHVybiAtMTsKKworCW1lbWNweShwdHIgKyBvZmZzZXQsICZ1c2VyLCBz aXplb2Yodm9pZCAqKSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IGR1a19mdW5j dGlvbl9saXN0X2VudHJ5IGZ1bmNzW10gPSB7CisJeyAiaW9jdGwiLCBpb2N0bF9pb2N0bCwgMyB9 LAorCisJeyAibnIiLCBpb2N0bF9uciwgMSB9LAorCXsgInR5cGUiLCBpb2N0bF90eXBlLCAxIH0s CisJeyAiZGlyIiwgaW9jdGxfZGlyLCAxIH0sCisJeyAic2l6ZSIsIGlvY3RsX3NpemUsIDEgfSwK KworCXsgInVzZXJfcG9pbnRlciIsIGlvY3RsX3BvaW50ZXIsIDMgfSwKKworCXt9Cit9OworCitz dGF0aWMgZHVrX3JldF90IGlvY3RsX2J1aWx0aW5fY3RvcihkdWtfY29udGV4dCAqY3R4KQorewor CWR1a19wdXNoX29iamVjdChjdHgpOworCWR1a19wdXRfZnVuY3Rpb25fbGlzdChjdHgsIC0xLCBm dW5jcyk7CisKKwlyZXR1cm4gMTsKK30KKworX19hdHRyaWJ1dGVfXygoY29uc3RydWN0b3IpKQor c3RhdGljIHZvaWQgX19pb2N0bF9yZWdpc3Rlcl9idWlsdGluX18odm9pZCkKK3sKKwlzdGF0aWMg c3RydWN0IGlndF9idWlsdGluIGJ1aWx0aW4gPSB7CisJCS5uYW1lID0gImlvY3RsIiwKKwkJLmN0 b3IgPSBpb2N0bF9idWlsdGluX2N0b3IKKwl9OworCWlndF9yZWdpc3Rlcl9idWlsdGluKCZidWls dGluKTsKK30KZGlmZiAtLWdpdCBhL3NoZWxsL2xpYi9vcy5jIGIvc2hlbGwvbGliL29zLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mM2IwN2U5NjEKLS0tIC9kZXYvbnVs bAorKysgYi9zaGVsbC9saWIvb3MuYwpAQCAtMCwwICsxLDEyMCBAQAorI2luY2x1ZGUgPGVycm5v Lmg+CisjaW5jbHVkZSA8Z3JwLmg+CisjaW5jbHVkZSA8cHdkLmg+CisjaW5jbHVkZSA8dW5pc3Rk Lmg+CisKKyNpbmNsdWRlICJkdWt0YXBlLmgiCisjaW5jbHVkZSAiaWd0LWJ1aWx0aW5zLmgiCisj aW5jbHVkZSAib3MtYnVpbHRpbi5oIgorCitzdGF0aWMgZHVrX3JldF90IG9zX3VpZChkdWtfY29u dGV4dCAqY3R4KQoreworCWR1a19wdXNoX2ludChjdHgsIGdldHVpZCgpKTsKKwlyZXR1cm4gMTsK K30KKworc3RhdGljIGR1a19yZXRfdCBvc19kcm9wX3Jvb3QoZHVrX2NvbnRleHQgKmN0eCkKK3sK KwlzdHJ1Y3QgcGFzc3dkICpwdzsKKwlzdHJ1Y3QgZ3JvdXAgKmdycDsKKwkvKiBBcmJpdHJhcnkg ZGVmYXVsdCB2YWx1ZXMgZm9yIG5vYm9keTp2aWRlbyAqLworCXVpZF90IHVpZCA9IDY1NTM0Owor CWdpZF90IGdpZCA9IDQ0OworCisJaWYgKGdldHVpZCgpKQorCQlyZXR1cm4gMDsgLyogYWxyZWFk eSBhIHVzZXIgKi8KKworCXB3ID0gZ2V0cHduYW0oIm5vYm9keSIpOworCWlmIChwdykKKwkJdWlk ID0gcHctPnB3X3VpZCwgZ2lkID0gcHctPnB3X2dpZDsKKworCWdycCA9IGdldGdybmFtKCJ2aWRl byIpOworCWlmIChncnApCisJCWdpZCA9IGdycC0+Z3JfZ2lkOworCisJaWYgKHNldGdpZChnaWQp IHx8IHNldHVpZCh1aWQpKQorCQlvc190aHJvd19lcnJubyhjdHgsIC1lcnJubyk7CisKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGNvbnN0IGR1a19mdW5jdGlvbl9saXN0X2VudHJ5IGZ1bmNzW10g PSB7CisJeyAidWlkIiwgb3NfdWlkLCAwIH0sCisJeyAiZHJvcF9yb290Iiwgb3NfZHJvcF9yb290 LCAwIH0sCisKKwl7fQorfTsKKworc3RhdGljIGNvbnN0IGR1a19udW1iZXJfbGlzdF9lbnRyeSBl cnJub3NbXSA9IHsKKyNkZWZpbmUgQyh4KSB7ICN4LCB4IH0KKwlDKEVQRVJNKSwKKwlDKEVOT0VO VCksCisJQyhFU1JDSCksCisJQyhFSU5UUiksCisJQyhFSU8pLAorCUMoRU5YSU8pLAorCUMoRTJC SUcpLAorCUMoRU5PRVhFQyksCisJQyhFQkFERiksCisJQyhFQ0hJTEQpLAorCUMoRUFHQUlOKSwK KwlDKEVOT01FTSksCisJQyhFQUNDRVMpLAorCUMoRUZBVUxUKSwKKwlDKEVOT1RCTEspLAorCUMo RUJVU1kpLAorCUMoRUVYSVNUKSwKKwlDKEVYREVWKSwKKwlDKEVOT0RFViksCisJQyhFTk9URElS KSwKKwlDKEVJU0RJUiksCisJQyhFSU5WQUwpLAorCUMoRU5GSUxFKSwKKwlDKEVNRklMRSksCisJ QyhFTk9UVFkpLAorCUMoRVRYVEJTWSksCisJQyhFRkJJRyksCisJQyhFTk9TUEMpLAorCUMoRVNQ SVBFKSwKKwlDKEVST0ZTKSwKKwlDKEVNTElOSyksCisJQyhFUElQRSksCisJQyhFRE9NKSwKKwlD KEVSQU5HRSksCisjdW5kZWYgQworCisJeyB9LAorfTsKKworc3RhdGljIGR1a19yZXRfdCBvc19i dWlsdGluX2N0b3IoZHVrX2NvbnRleHQgKmN0eCkKK3sKKwlkdWtfcHVzaF9vYmplY3QoY3R4KTsK KwlkdWtfZHVwX3RvcChjdHgpOworCWR1a19wdXRfZ2xvYmFsX3N0cmluZyhjdHgsICJvcyIpOwor CisJZHVrX3B1dF9mdW5jdGlvbl9saXN0KGN0eCwgLTEsIGZ1bmNzKTsKKwlkdWtfcHV0X251bWJl cl9saXN0KGN0eCwgLTEsIGVycm5vcyk7CisJZHVrX3BvcChjdHgpOworCisJcmV0dXJuIDA7Cit9 CisKK19fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkKK3N0YXRpYyB2b2lkIF9fb3NfcmVnaXN0 ZXJfYnVpbHRpbl9fKHZvaWQpCit7CisJc3RhdGljIHN0cnVjdCBpZ3RfYnVpbHRpbiBidWlsdGlu ID0geworCQkubmFtZSA9ICJvcyIsCisJCS5jdG9yID0gb3NfYnVpbHRpbl9jdG9yCisJfTsKKwlp Z3RfcmVnaXN0ZXJfZ2xvYmFsKCZidWlsdGluKTsKK30KKworX19hdHRyaWJ1dGUoKG5vcmV0dXJu KSkKK3ZvaWQgb3NfdGhyb3dfZXJybm8oZHVrX2NvbnRleHQgKmN0eCwgaW50IGVycikKK3sKKwlk dWtfcHVzaF9lcnJvcl9vYmplY3QoY3R4LCBEVUtfRVJSX0VSUk9SLAorCQkJICAgICAgIiVkICgl cykiLCBlcnIsIHN0cmVycm9yKGVycikpOworCWR1a19wdXNoX2ludChjdHgsIGVycik7CisJZHVr X3B1dF9wcm9wX3N0cmluZyhjdHgsIC0yLCAiZXJybm8iKTsKKwlkdWtfdGhyb3dfcmF3KGN0eCk7 Cit9CmRpZmYgLS1naXQgYS9zaGVsbC9tZXNvbi5idWlsZCBiL3NoZWxsL21lc29uLmJ1aWxkCmlu ZGV4IDUzYjA3NTRlOS4uYjI0NTBiMTYyIDEwMDY0NAotLS0gYS9zaGVsbC9tZXNvbi5idWlsZAor KysgYi9zaGVsbC9tZXNvbi5idWlsZApAQCAtMyw2ICszLDggQEAgZXhlY3V0YWJsZSgnaWd0Jywg WwogCSAgICAgJ2lndC1idWlsdGlucy5jJywKIAkgICAgICdpZ3QtbWF0aC5jJywKIAkgICAgICdp Z3Qtc2hlbGwuYycsCisJICAgICAnbGliL2lvY3RsLmMnLAorCSAgICAgJ2xpYi9vcy5jJywKIAkg ICBdLCBkZXBlbmRlbmNpZXMgOiBbIG1hdGgsIGxpYmttb2QgXSwKIAkgICBpbmNsdWRlX2RpcmVj dG9yaWVzIDogaW5jbHVkZV9kaXJlY3RvcmllcygnaW5jbHVkZScsICcuLi9pbmNsdWRlJykKICkK LS0gCjIuMTguMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==