From: Euan Harris Subject: [PATCH 2/3] python: Extract registered watch search logic from xspy_read_watch() Date: Fri, 15 Sep 2017 17:35:35 +0100 Message-ID: <1505493336-74758-3-git-send-email-euan.harris@citrix.com> References: <1505493336-74758-1-git-send-email-euan.harris@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dstaw-0005P0-6q for xen-devel@lists.xenproject.org; Fri, 15 Sep 2017 16:35:58 +0000 In-Reply-To: <1505493336-74758-1-git-send-email-euan.harris@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Euan Harris , marmarek@invisiblethingslab.com List-Id: xen-devel@lists.xenproject.org V2hlbiBhIHdhdGNoIGZpcmVzLCB4c3B5X3JlYWRfd2F0Y2goKSBjaGVja3Mgd2hldGhlciB0aGUg Y2xpZW50IGhhcwpyZWdpc3RlcmVkIGludGVyZXN0IGluIHRoZSBwYXRoIHdoaWNoIGNoYW5nZWQg YW5kLCBpZiBzbywgcmV0dXJucyB0aGUKcGF0aCBhbmQgYSBjbGllbnQtc3VwcGxpZWQgdG9rZW4u ICAgVGhlIGJpbmRpbmcgZm9yIHhzX2NoZWNrX3dhdGNoKCkKbmVlZHMgdG8gZG8gdGhlIHNhbWUs IHNvIHRoaXMgcGF0Y2ggZXh0cmFjdHMgdGhlIHNlYXJjaCBjb2RlIGludG8gYQpzZXBhcmF0ZSBm dW5jdGlvbi4KClNpZ25lZC1vZmYtYnk6IEV1YW4gSGFycmlzIDxldWFuLmhhcnJpc0BjaXRyaXgu Y29tPgotLS0KIHRvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveHMveHMuYyB8IDYxICsrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDM4IGluc2Vy dGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3B5dGhvbi94ZW4v bG93bGV2ZWwveHMveHMuYyBiL3Rvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveHMveHMuYwppbmRl eCA5ZjFiOTE2Li5hNGI1MGEwIDEwMDY0NAotLS0gYS90b29scy9weXRob24veGVuL2xvd2xldmVs L3hzL3hzLmMKKysrIGIvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94cy94cy5jCkBAIC03Nyw2 ICs3Nyw4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHhzX2hhbmRsZSAqeHNoYW5kbGUoWHNIYW5k bGUgKnNlbGYpCiAKIHN0YXRpYyB2b2lkIHJlbW92ZV93YXRjaChYc0hhbmRsZSAqeHNoLCBQeU9i amVjdCAqdG9rZW4pOwogCitzdGF0aWMgUHlPYmplY3QgKm1hdGNoX3dhdGNoX2J5X3Rva2VuKFhz SGFuZGxlICpzZWxmLCBjaGFyICoqeHN2YWwpOworCiBzdGF0aWMgUHlPYmplY3QgKm5vbmUoYm9v bCByZXN1bHQpOwogCiBzdGF0aWMgaW50IHBhcnNlX3RyYW5zYWN0aW9uX3BhdGgoWHNIYW5kbGUg KnNlbGYsIFB5T2JqZWN0ICphcmdzLApAQCAtNDg0LDggKzQ4Niw2IEBAIHN0YXRpYyBQeU9iamVj dCAqeHNweV9yZWFkX3dhdGNoKFhzSGFuZGxlICpzZWxmLCBQeU9iamVjdCAqYXJncykKICAgICBz dHJ1Y3QgeHNfaGFuZGxlICp4aCA9IHhzaGFuZGxlKHNlbGYpOwogICAgIFB5T2JqZWN0ICp2YWwg PSBOVUxMOwogICAgIGNoYXIgKip4c3ZhbDsKLSAgICBQeU9iamVjdCAqdG9rZW47Ci0gICAgaW50 IGk7CiAgICAgdW5zaWduZWQgaW50IG51bTsKIAogICAgIGlmICgheGgpCkBAIC00OTcsMzIgKzQ5 NywyMCBAQCBhZ2FpbjoKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogICAgIGlmICgheHN2YWwp IHsKICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKHhzX2Vycm9yKTsKLSAgICAgICAgZ290byBl eGl0OwotICAgIH0KLSAgICBpZiAoc3NjYW5mKHhzdmFsW1hTX1dBVENIX1RPS0VOXSwgIiVsaSIs ICh1bnNpZ25lZCBsb25nICopJnRva2VuKSAhPSAxKSB7Ci0JeHNfc2V0X2Vycm9yKEVJTlZBTCk7 Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0gICAgZm9yIChpID0gMDsgaSA8IFB5TGlzdF9T aXplKHNlbGYtPndhdGNoZXMpOyBpKyspIHsKLSAgICAgICAgaWYgKHRva2VuID09IFB5TGlzdF9H ZXRJdGVtKHNlbGYtPndhdGNoZXMsIGkpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAg IGlmIChpID09IFB5TGlzdF9TaXplKHNlbGYtPndhdGNoZXMpKSB7Ci0gICAgICAvKiBXZSBkbyBu b3QgaGF2ZSBhIHJlZ2lzdGVyZWQgd2F0Y2ggZm9yIHRoZSBvbmUgdGhhdCBoYXMganVzdCBmaXJl ZC4KLSAgICAgICAgIElnbm9yZSB0aGlzIC0tIGEgd2F0Y2ggdGhhdCBoYXMgYmVlbiByZWNlbnRs eSBkZXJlZ2lzdGVyZWQgY2FuIHN0aWxsCi0gICAgICAgICBoYXZlIHdhdGNoZXMgaW4gdHJhbnNp dC4gIFRoaXMgaXMgYSBibG9ja2luZyBtZXRob2QsIHNvIGdvIGJhY2sgdG8KLSAgICAgICAgIHJl YWQgYWdhaW4uCi0gICAgICAqLwotICAgICAgZnJlZSh4c3ZhbCk7Ci0gICAgICBnb3RvIGFnYWlu OworICAgICAgICByZXR1cm4gdmFsOwogICAgIH0KLSAgICAvKiBDcmVhdGUgdHVwbGUgKHBhdGgs IHRva2VuKS4gKi8KLSAgICB2YWwgPSBQeV9CdWlsZFZhbHVlKCIoc08pIiwgeHN2YWxbWFNfV0FU Q0hfUEFUSF0sIHRva2VuKTsKLSBleGl0OgorCisgICAgdmFsID0gbWF0Y2hfd2F0Y2hfYnlfdG9r ZW4oc2VsZiwgeHN2YWwpOwogICAgIGZyZWUoeHN2YWwpOworCisgICAgaWYgKCF2YWwgJiYgZXJy bm8gPT0gRUFHQUlOKSB7CisgICAgICAgIGdvdG8gYWdhaW47CisgICAgfQorCiAgICAgcmV0dXJu IHZhbDsKIH0KIAorCiAjZGVmaW5lIHhzcHlfdW53YXRjaF9kb2MgIlxuIgkJCQlcCiAJIlN0b3Ag d2F0Y2hpbmcgYSBwYXRoLlxuIgkJCVwKIAkiIHBhdGggIFtzdHJpbmddIDogeGVuc3RvcmUgcGF0 aC5cbiIJCVwKQEAgLTg2OCw2ICs4NTYsMzMgQEAgc3RhdGljIGludCBwYXJzZV90cmFuc2FjdGlv bl9wYXRoKFhzSGFuZGxlICpzZWxmLCBQeU9iamVjdCAqYXJncywKIH0KIAogCitzdGF0aWMgUHlP YmplY3QgKm1hdGNoX3dhdGNoX2J5X3Rva2VuKFhzSGFuZGxlICpzZWxmLCBjaGFyICoqeHN2YWwp Cit7CisgICAgUHlPYmplY3QgKnRva2VuOworICAgIGludCBpOworCisgICAgaWYgKHNzY2FuZih4 c3ZhbFtYU19XQVRDSF9UT0tFTl0sICIlbGkiLCAodW5zaWduZWQgbG9uZyAqKSZ0b2tlbikgIT0g MSkgeworCXhzX3NldF9lcnJvcihFSU5WQUwpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9 CisgICAgZm9yIChpID0gMDsgaSA8IFB5TGlzdF9TaXplKHNlbGYtPndhdGNoZXMpOyBpKyspIHsK KyAgICAgICAgaWYgKHRva2VuID09IFB5TGlzdF9HZXRJdGVtKHNlbGYtPndhdGNoZXMsIGkpKQor ICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpID09IFB5TGlzdF9TaXplKHNlbGYt PndhdGNoZXMpKSB7CisgICAgICAgIC8qIFdlIGRvIG5vdCBoYXZlIGEgcmVnaXN0ZXJlZCB3YXRj aCBmb3IgdGhlIG9uZSB0aGF0IGhhcyBqdXN0IGZpcmVkLgorICAgICAgICAgICBJZ25vcmUgdGhp cyAtLSBhIHdhdGNoIHRoYXQgaGFzIGJlZW4gcmVjZW50bHkgZGVyZWdpc3RlcmVkIGNhbiBzdGls bAorICAgICAgICAgICBoYXZlIHdhdGNoZXMgaW4gdHJhbnNpdC4KKyAgICAgICAgKi8KKyAgICAg ICAgeHNfc2V0X2Vycm9yKEVBR0FJTik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKwor ICAgIC8qIENyZWF0ZSB0dXBsZSAocGF0aCwgdG9rZW4pLiAqLworICAgIHJldHVybiBQeV9CdWls ZFZhbHVlKCIoc08pIiwgeHN2YWxbWFNfV0FUQ0hfUEFUSF0sIHRva2VuKTsKK30KKworCiBzdGF0 aWMgUHlPYmplY3QgKm5vbmUoYm9vbCByZXN1bHQpCiB7CiAgICAgaWYgKHJlc3VsdCkgewotLSAK MS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=