From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30866 invoked by alias); 9 Apr 2010 03:10:51 -0000 Received: (qmail 30848 invoked by uid 22791); 9 Apr 2010 03:10:48 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 09 Apr 2010 03:10:41 +0000 Received: (qmail 4845 invoked from network); 9 Apr 2010 03:10:39 -0000 Received: from unknown (HELO macbook-2.local) (stan@127.0.0.2) by mail.codesourcery.com with ESMTPA; 9 Apr 2010 03:10:39 -0000 Message-ID: <4BBE9AA8.3050700@codesourcery.com> Date: Fri, 09 Apr 2010 03:10:00 -0000 From: Stan Shebs User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Stan Shebs CC: Pedro Alves , gdb-patches@sourceware.org Subject: Re: tracing broken if target doesn't do disconnected tracing References: <201004050101.02067.pedro@codesourcery.com> <201004081825.15900.pedro@codesourcery.com> <4BBE1E00.3070306@codesourcery.com> <201004081932.31774.pedro@codesourcery.com> <4BBE2A19.3010604@codesourcery.com> In-Reply-To: <4BBE2A19.3010604@codesourcery.com> Content-Type: multipart/mixed; boundary="------------050209000405080808060007" Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-04/txt/msg00218.txt.bz2 This is a multi-part message in MIME format. --------------050209000405080808060007 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1508 Ironically, after all that, I ended up going with Pedro's pair of cancel queries - there was no way to do nested query() calls so that answering two questions would be the exception rather than the rule, and a three-answer query seemed like it was going to be a mouthful to explain. So here's what I ended up committing. Stan 2010-04-08 Stan Shebs Pedro Alves * tracepoint.h (struct trace_status): New fields disconnected_tracing and circular_buffer. (disconnect_tracing): Rename from disconnect_or_stop_tracing. * tracepoint.c (trace_status_command): Display target's status for disconnected tracing and circular buffer. (disconnect_tracing): Rename from disconnect_or_stop_tracing, add query for non-disconnected-tracing case, remove the stop_tracing call. (tfile_open): Clear disconnected and circular buffer status. (trace_save): Save disconnected and circular buffer status. (parse_trace_status): Parse disconnected and circular buffer status, also recognize disconnected as a stop reason. * remote.c (remote_set_disconnected_tracing): Only set QTDisconnected if the remote end supports disconnected tracing. Warn otherwise, if trying to enable disconnected tracing. * infcmd.c (detach_command): Update disconnect_tracing call. * cli/cli-cmds.c (quit_command): Ditto. * gdb.texinfo (Tracepoint Packets): Describe disconn and circular trace status fields. --------------050209000405080808060007 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0"; name="disconn-patch-2" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="disconn-patch-2" Content-length: 16015 SW5kZXg6IGluZmNtZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IC9jdnMvc3JjL3NyYy9nZGIvaW5mY21kLmMsdgpyZXRyaWV2aW5nIHJl dmlzaW9uIDEuMjY0CmRpZmYgLXAgLXIxLjI2NCBpbmZjbWQuYwoqKiogaW5m Y21kLmMJNCBBcHIgMjAxMCAyMjoxMjowNCAtMDAwMAkxLjI2NAotLS0gaW5m Y21kLmMJOSBBcHIgMjAxMCAwMjo1OTo0MSAtMDAwMAoqKioqKioqKioqKioq KiogZGV0YWNoX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eQoq KiogMjU0NywyNTUzICoqKioKICAgIGlmIChwdGlkX2VxdWFsIChpbmZlcmlv cl9wdGlkLCBudWxsX3B0aWQpKQogICAgICBlcnJvciAoXygiVGhlIHByb2dy YW0gaXMgbm90IGJlaW5nIHJ1bi4iKSk7CiAgCiEgICBkaXNjb25uZWN0X29y X3N0b3BfdHJhY2luZyAoZnJvbV90dHkpOwogIAogICAgdGFyZ2V0X2RldGFj aCAoYXJncywgZnJvbV90dHkpOwogIAotLS0gMjU0NywyNTUzIC0tLS0KICAg IGlmIChwdGlkX2VxdWFsIChpbmZlcmlvcl9wdGlkLCBudWxsX3B0aWQpKQog ICAgICBlcnJvciAoXygiVGhlIHByb2dyYW0gaXMgbm90IGJlaW5nIHJ1bi4i KSk7CiAgCiEgICBkaXNjb25uZWN0X3RyYWNpbmcgKGZyb21fdHR5KTsKICAK ICAgIHRhcmdldF9kZXRhY2ggKGFyZ3MsIGZyb21fdHR5KTsKICAKSW5kZXg6 IHJlbW90ZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j dnMvc3JjL3NyYy9nZGIvcmVtb3RlLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMzk5CmRpZmYgLXAgLXIxLjM5OSByZW1vdGUuYwoqKiogcmVtb3RlLmMJ MiBBcHIgMjAxMCAwMToxODozNCAtMDAwMAkxLjM5OQotLS0gcmVtb3RlLmMJ OSBBcHIgMjAxMCAwMjo1OTo0MSAtMDAwMAoqKioqKioqKioqKioqKiogcmVt b3RlX3NldF9kaXNjb25uZWN0ZWRfdHJhY2luZyAoaW50IHZhbAoqKiogOTc3 Niw5Nzg2ICoqKioKICB7CiAgICBzdHJ1Y3QgcmVtb3RlX3N0YXRlICpycyA9 IGdldF9yZW1vdGVfc3RhdGUgKCk7CiAgCiEgICBzcHJpbnRmIChycy0+YnVm LCAiUVREaXNjb25uZWN0ZWQ6JXgiLCB2YWwpOwohICAgcHV0cGt0IChycy0+ YnVmKTsKISAgIHJlbW90ZV9nZXRfbm9pc3lfcmVwbHkgKCZ0YXJnZXRfYnVm LCAmdGFyZ2V0X2J1Zl9zaXplKTsKISAgIGlmIChzdHJjbXAgKHRhcmdldF9i dWYsICJPSyIpKQohICAgICBlcnJvciAoXygiVGFyZ2V0IGRvZXMgbm90IHN1 cHBvcnQgdGhpcyBjb21tYW5kLiIpKTsKICB9CiAgCiAgc3RhdGljIGludAot LS0gOTc3Niw5NzkxIC0tLS0KICB7CiAgICBzdHJ1Y3QgcmVtb3RlX3N0YXRl ICpycyA9IGdldF9yZW1vdGVfc3RhdGUgKCk7CiAgCiEgICBpZiAocnMtPmRp c2Nvbm5lY3RlZF90cmFjaW5nKQohICAgICB7CiEgICAgICAgc3ByaW50ZiAo cnMtPmJ1ZiwgIlFURGlzY29ubmVjdGVkOiV4IiwgdmFsKTsKISAgICAgICBw dXRwa3QgKHJzLT5idWYpOwohICAgICAgIHJlbW90ZV9nZXRfbm9pc3lfcmVw bHkgKCZ0YXJnZXRfYnVmLCAmdGFyZ2V0X2J1Zl9zaXplKTsKISAgICAgICBp ZiAoc3RyY21wICh0YXJnZXRfYnVmLCAiT0siKSkKISAJZXJyb3IgKF8oIlRh cmdldCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY29tbWFuZC4iKSk7CiEgICAg IH0KISAgIGVsc2UgaWYgKHZhbCkKISAgICAgd2FybmluZyAoXygiVGFyZ2V0 IGRvZXMgbm90IHN1cHBvcnQgZGlzY29ubmVjdGVkIHRyYWNpbmcuIikpOwog IH0KICAKICBzdGF0aWMgaW50CkluZGV4OiB0cmFjZXBvaW50LmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi90 cmFjZXBvaW50LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTczCmRpZmYg LXAgLXIxLjE3MyB0cmFjZXBvaW50LmMKKioqIHRyYWNlcG9pbnQuYwk2IEFw ciAyMDEwIDE3OjQ3OjQwIC0wMDAwCTEuMTczCi0tLSB0cmFjZXBvaW50LmMJ OSBBcHIgMjAxMCAwMjo1OTo0MSAtMDAwMAoqKioqKioqKioqKioqKiogdHJh Y2Vfc3RhdHVzX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcgoqKiogMTYy NiwxNjM1ICoqKioKICAgIGVsc2UgaWYgKHRzLT5ydW5uaW5nKQogICAgICB7 CiAgICAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJUcmFjZSBpcyBydW5uaW5n IG9uIHRoZSB0YXJnZXQuXG4iKSk7Ci0gICAgICAgaWYgKGRpc2Nvbm5lY3Rl ZF90cmFjaW5nKQotIAlwcmludGZfZmlsdGVyZWQgKF8oIlRyYWNlIHdpbGwg Y29udGludWUgaWYgR0RCIGRpc2Nvbm5lY3RzLlxuIikpOwotICAgICAgIGVs c2UKLSAJcHJpbnRmX2ZpbHRlcmVkIChfKCJUcmFjZSB3aWxsIHN0b3AgaWYg R0RCIGRpc2Nvbm5lY3RzLlxuIikpOwogICAgICB9CiAgICBlbHNlCiAgICAg IHsKLS0tIDE2MjYsMTYzMSAtLS0tCioqKioqKioqKioqKioqKiB0cmFjZV9z dGF0dXNfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyCioqKiAxNjk5LDE3 MDQgKioqKgotLS0gMTY5NSwxNzA4IC0tLS0KICAJCQkgdHMtPmJ1ZmZlcl9m cmVlKTsKICAgICAgfQogIAorICAgaWYgKHRzLT5kaXNjb25uZWN0ZWRfdHJh Y2luZykKKyAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJUcmFjZSB3aWxsIGNv bnRpbnVlIGlmIEdEQiBkaXNjb25uZWN0cy5cbiIpKTsKKyAgIGVsc2UKKyAg ICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJUcmFjZSB3aWxsIHN0b3AgaWYgR0RC IGRpc2Nvbm5lY3RzLlxuIikpOworIAorICAgaWYgKHRzLT5jaXJjdWxhcl9i dWZmZXIpCisgICAgIHByaW50Zl9maWx0ZXJlZCAoXygiVHJhY2UgYnVmZmVy IGlzIGNpcmN1bGFyLlxuIikpOworIAogICAgLyogTm93IHJlcG9ydCBvbiB3 aGF0IHdlJ3JlIGRvaW5nIHdpdGggdGZpbmQuICAqLwogICAgaWYgKHRyYWNl ZnJhbWVfbnVtYmVyID49IDApCiAgICAgIHByaW50Zl9maWx0ZXJlZCAoXygi TG9va2luZyBhdCB0cmFjZSBmcmFtZSAlZCwgdHJhY2Vwb2ludCAlZC5cbiIp LAoqKioqKioqKioqKioqKiogdHJhY2Vfc3RhdHVzX21pIChpbnQgb25fc3Rv cCkKKioqIDE4MDEsMTgwOSAqKioqCiAgICAgIHVpX291dF9maWVsZF9pbnQg KHVpb3V0LCAiYnVmZmVyLWZyZWUiLCAgKGludCkgdHMtPmJ1ZmZlcl9mcmVl KTsKICB9CiAgCiEgCiAgdm9pZAohIGRpc2Nvbm5lY3Rfb3Jfc3RvcF90cmFj aW5nIChpbnQgZnJvbV90dHkpCiAgewogICAgLyogSXQgY2FuIGhhcHBlbiB0 aGF0IHRoZSB0YXJnZXQgdGhhdCB3YXMgdHJhY2luZyB3ZW50IGF3YXkgb24g aXRzCiAgICAgICBvd24sIGFuZCB3ZSBkaWRuJ3Qgbm90aWNlLiAgR2V0IGEg c3RhdHVzIHVwZGF0ZSwgYW5kIGlmIHRoZQotLS0gMTgwNSwxODE1IC0tLS0K ICAgICAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJidWZmZXItZnJlZSIs ICAoaW50KSB0cy0+YnVmZmVyX2ZyZWUpOwogIH0KICAKISAvKiBUaGlzIGZ1 bmN0aW9uIGhhbmRsZXMgdGhlIGRldGFpbHMgb2Ygd2hhdCB0byBkbyBhYm91 dCBhbiBvbmdvaW5nCiEgICAgdHJhY2luZyBydW4gaWYgdGhlIHVzZXIgaGFz IGFza2VkIHRvIGRldGFjaCBvciBvdGhlcndpc2UgZGlzY29ubmVjdAohICAg IGZyb20gdGhlIHRhcmdldC4gICovCiAgdm9pZAohIGRpc2Nvbm5lY3RfdHJh Y2luZyAoaW50IGZyb21fdHR5KQogIHsKICAgIC8qIEl0IGNhbiBoYXBwZW4g dGhhdCB0aGUgdGFyZ2V0IHRoYXQgd2FzIHRyYWNpbmcgd2VudCBhd2F5IG9u IGl0cwogICAgICAgb3duLCBhbmQgd2UgZGlkbid0IG5vdGljZS4gIEdldCBh IHN0YXR1cyB1cGRhdGUsIGFuZCBpZiB0aGUKKioqKioqKioqKioqKioqIGRp c2Nvbm5lY3Rfb3Jfc3RvcF90cmFjaW5nIChpbnQgZnJvbV90dHkKKioqIDE4 MTIsMTgyOSAqKioqCiAgICBpZiAodGFyZ2V0X2dldF90cmFjZV9zdGF0dXMg KGN1cnJlbnRfdHJhY2Vfc3RhdHVzICgpKSA8IDApCiAgICAgIGN1cnJlbnRf dHJhY2Vfc3RhdHVzICgpLT5ydW5uaW5nID0gMDsKICAKICAgIGlmIChjdXJy ZW50X3RyYWNlX3N0YXR1cyAoKS0+cnVubmluZyAmJiBmcm9tX3R0eSkKICAg ICAgewohICAgICAgIGludCBjb250ID0gcXVlcnkgKF8oIlRyYWNlIGlzIHJ1 bm5pbmcuICBDb250aW51ZSB0cmFjaW5nIGFmdGVyIGRldGFjaD8gIikpOwoh ICAgICAgIC8qIE5vdGUgdGhhdCB3ZSBzZW5kIHRoZSBxdWVyeSByZXN1bHQg d2l0aG91dCBhZmZlY3RpbmcgdGhlCiEgCSB1c2VyJ3Mgc2V0dGluZyBvZiBk aXNjb25uZWN0ZWRfdHJhY2luZywgc28gdGhhdCB0aGUgYW5zd2VyIGlzCiEg CSBhIG9uZS10aW1lLW9ubHkuICAqLwohICAgICAgIHNlbmRfZGlzY29ubmVj dGVkX3RyYWNpbmdfdmFsdWUgKGNvbnQpOwohIAohICAgICAgIC8qIEFsc28g ZW5zdXJlIHRoYXQgd2UgZG8gdGhlIGVxdWl2YWxlbnQgb2YgYSB0c3RvcCBj b21tYW5kIGlmCiEgCSB0cmFjaW5nIGlzIG5vdCB0byBjb250aW51ZSBhZnRl ciB0aGUgZGV0YWNoLiAgKi8KISAgICAgICBpZiAoIWNvbnQpCiEgCXN0b3Bf dHJhY2luZyAoKTsKICAgICAgfQogIAogICAgLyogQWxzbyB3ZSB3YW50IHRv IGJlIG91dCBvZiB0ZmluZCBtb2RlLCBvdGhlcndpc2UgdGhpbmdzIGNhbiBn ZXQKLS0tIDE4MTgsMTg0MCAtLS0tCiAgICBpZiAodGFyZ2V0X2dldF90cmFj ZV9zdGF0dXMgKGN1cnJlbnRfdHJhY2Vfc3RhdHVzICgpKSA8IDApCiAgICAg IGN1cnJlbnRfdHJhY2Vfc3RhdHVzICgpLT5ydW5uaW5nID0gMDsKICAKKyAg IC8qIElmIHJ1bm5pbmcgaW50ZXJhY3RpdmVseSwgZ2l2ZSB0aGUgdXNlciB0 aGUgb3B0aW9uIHRvIGNhbmNlbCBhbmQKKyAgICAgIHRoZW4gZGVjaWRlIHdo YXQgdG8gZG8gZGlmZmVyZW50bHkgd2l0aCB0aGUgcnVuLiAgU2NyaXB0cyBh cmUKKyAgICAgIGp1c3QgZ29pbmcgdG8gZGlzY29ubmVjdCBhbmQgbGV0IHRo ZSB0YXJnZXQgZGVhbCB3aXRoIGl0LAorICAgICAgYWNjb3JkaW5nIHRvIGhv dyBpdCdzIGJlZW4gaW5zdHJ1Y3RlZCBwcmV2aW91c2x5IHZpYQorICAgICAg ZGlzY29ubmVjdGVkLXRyYWNpbmcuICAqLwogICAgaWYgKGN1cnJlbnRfdHJh Y2Vfc3RhdHVzICgpLT5ydW5uaW5nICYmIGZyb21fdHR5KQogICAgICB7CiEg ICAgICAgaWYgKGN1cnJlbnRfdHJhY2Vfc3RhdHVzICgpLT5kaXNjb25uZWN0 ZWRfdHJhY2luZykKISAJewohIAkgIGlmICghcXVlcnkgKF8oIlRyYWNlIGlz IHJ1bm5pbmcgYW5kIHdpbGwgY29udGludWUgYWZ0ZXIgZGV0YWNoOyBkZXRh Y2ggYW55d2F5PyAiKSkpCiEgCSAgICBlcnJvciAoXygiTm90IGNvbmZpcm1l ZC4iKSk7CiEgCX0KISAgICAgICBlbHNlCiEgCXsKISAJICBpZiAoIXF1ZXJ5 IChfKCJUcmFjZSBpcyBydW5uaW5nIGJ1dCB3aWxsIHN0b3Agb24gZGV0YWNo OyBkZXRhY2ggYW55d2F5PyAiKSkpCiEgCSAgICBlcnJvciAoXygiTm90IGNv bmZpcm1lZC4iKSk7CiEgCX0KICAgICAgfQogIAogICAgLyogQWxzbyB3ZSB3 YW50IHRvIGJlIG91dCBvZiB0ZmluZCBtb2RlLCBvdGhlcndpc2UgdGhpbmdz IGNhbiBnZXQKKioqKioqKioqKioqKioqIHRyYWNlX3NhdmUgKGNvbnN0IGNo YXIgKmZpbGVuYW1lLCBpbnQgdGEKKioqIDI1OTksMjYwNCAqKioqCi0tLSAy NjEwLDI2MTkgLS0tLQogICAgICBmcHJpbnRmIChmcCwgIjt0ZnJlZToleCIs IHRzLT5idWZmZXJfZnJlZSk7CiAgICBpZiAodHMtPmJ1ZmZlcl9zaXplID49 IDApCiAgICAgIGZwcmludGYgKGZwLCAiO3RzaXplOiV4IiwgdHMtPmJ1ZmZl cl9zaXplKTsKKyAgIGlmICh0cy0+ZGlzY29ubmVjdGVkX3RyYWNpbmcpCisg ICAgIGZwcmludGYgKGZwLCAiO2Rpc2Nvbm46JXgiLCB0cy0+ZGlzY29ubmVj dGVkX3RyYWNpbmcpOworICAgaWYgKHRzLT5jaXJjdWxhcl9idWZmZXIpCisg ICAgIGZwcmludGYgKGZwLCAiO2NpcmN1bGFyOiV4IiwgdHMtPmNpcmN1bGFy X2J1ZmZlcik7CiAgICBmcHJpbnRmIChmcCwgIlxuIik7CiAgCiAgICAvKiBO b3RlIHRoYXQgd2Ugd2FudCB0byB1cGxvYWQgdHJhY2Vwb2ludHMgYW5kIHNh dmUgdGhvc2UsIHJhdGhlcgoqKioqKioqKioqKioqKiogdGZpbGVfb3BlbiAo Y2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0eQoqKiogMzE2NywzMTcyICoq KioKLS0tIDMxODIsMzE4OSAtLS0tCiAgICB0cy0+c3RvcF9yZWFzb24gPSB0 cmFjZV9zdG9wX3JlYXNvbl91bmtub3duOwogICAgdHMtPnRyYWNlZnJhbWVf Y291bnQgPSAtMTsKICAgIHRzLT5idWZmZXJfZnJlZSA9IDA7CisgICB0cy0+ ZGlzY29ubmVjdGVkX3RyYWNpbmcgPSAwOworICAgdHMtPmNpcmN1bGFyX2J1 ZmZlciA9IDA7CiAgCiAgICAvKiBSZWFkIHRocm91Z2ggYSBzZWN0aW9uIG9m IG5ld2xpbmUtdGVybWluYXRlZCBsaW5lcyB0aGF0CiAgICAgICBkZWZpbmUg dGhpbmdzIGxpa2UgdHJhY2Vwb2ludHMuICAqLwoqKioqKioqKioqKioqKiog cGFyc2VfdHJhY2Vfc3RhdHVzIChjaGFyICpsaW5lLCBzdHJ1Y3QgdAoqKiog MzI4MiwzMjg3ICoqKioKLS0tIDMyOTksMzMwNiAtLS0tCiAgICB0cy0+dHJh Y2VmcmFtZXNfY3JlYXRlZCA9IC0xOwogICAgdHMtPmJ1ZmZlcl9mcmVlID0g LTE7CiAgICB0cy0+YnVmZmVyX3NpemUgPSAtMTsKKyAgIHRzLT5kaXNjb25u ZWN0ZWRfdHJhY2luZyA9IDA7CisgICB0cy0+Y2lyY3VsYXJfYnVmZmVyID0g MDsKICAKICAgIHdoaWxlICgqcCsrKQogICAgICB7CioqKioqKioqKioqKioq KiBTdGF0dXMgbGluZTogJyVzJ1xuIiksIHAsIGxpbmUpOwoqKiogMzMxMCwz MzE1ICoqKioKLS0tIDMzMjksMzMzOSAtLS0tCiAgCSAgcCA9IHVucGFja192 YXJsZW5faGV4ICgrK3AxLCAmdmFsKTsKICAJICB0cy0+c3RvcF9yZWFzb24g PSB0c3RvcF9jb21tYW5kOwogIAl9CisgICAgICAgZWxzZSBpZiAoc3RybmNt cCAocCwgc3RvcF9yZWFzb25fbmFtZXNbdHJhY2VfZGlzY29ubmVjdGVkXSwg cDEgLSBwKSA9PSAwKQorIAl7CisgCSAgcCA9IHVucGFja192YXJsZW5faGV4 ICgrK3AxLCAmdmFsKTsKKyAJICB0cy0+c3RvcF9yZWFzb24gPSB0cmFjZV9k aXNjb25uZWN0ZWQ7CisgCX0KICAgICAgICBlbHNlIGlmIChzdHJuY21wIChw LCBzdG9wX3JlYXNvbl9uYW1lc1t0cmFjZXBvaW50X2Vycm9yXSwgcDEgLSBw KSA9PSAwKQogIAl7CiAgCSAgcDIgPSBzdHJjaHIgKCsrcDEsICc6Jyk7Cioq KioqKioqKioqKioqKiBTdGF0dXMgbGluZTogJyVzJ1xuIiksIHAsIGxpbmUp OwoqKiogMzM0OCwzMzUzICoqKioKLS0tIDMzNzIsMzM4NyAtLS0tCiAgCSAg cCA9IHVucGFja192YXJsZW5faGV4ICgrK3AxLCAmdmFsKTsKICAJICB0cy0+ YnVmZmVyX3NpemUgPSB2YWw7CiAgCX0KKyAgICAgICBlbHNlIGlmIChzdHJu Y21wIChwLCAiZGlzY29ubiIsIHAxIC0gcCkgPT0gMCkKKyAJeworIAkgIHAg PSB1bnBhY2tfdmFybGVuX2hleCAoKytwMSwgJnZhbCk7CisgCSAgdHMtPmRp c2Nvbm5lY3RlZF90cmFjaW5nID0gdmFsOworIAl9CisgICAgICAgZWxzZSBp ZiAoc3RybmNtcCAocCwgImNpcmN1bGFyIiwgcDEgLSBwKSA9PSAwKQorIAl7 CisgCSAgcCA9IHVucGFja192YXJsZW5faGV4ICgrK3AxLCAmdmFsKTsKKyAJ ICB0cy0+Y2lyY3VsYXJfYnVmZmVyID0gdmFsOworIAl9CiAgICAgICAgZWxz ZQogIAl7CiAgCSAgLyogU2lsZW50bHkgc2tpcCB1bmtub3duIG9wdGlvbmFs IGluZm8uICAqLwpJbmRleDogdHJhY2Vwb2ludC5oCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvdHJhY2Vwb2lu dC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM0CmRpZmYgLXAgLXIxLjM0 IHRyYWNlcG9pbnQuaAoqKiogdHJhY2Vwb2ludC5oCTYgQXByIDIwMTAgMTc6 NDc6NDAgLTAwMDAJMS4zNAotLS0gdHJhY2Vwb2ludC5oCTkgQXByIDIwMTAg MDI6NTk6NDEgLTAwMDAKKioqKioqKioqKioqKioqIHN0cnVjdCB0cmFjZV9z dGF0dXMKKioqIDEwNiwxMTEgKioqKgotLS0gMTA2LDEyMSAtLS0tCiAgICAv KiBVbnVzZWQgYnl0ZXMgbGVmdCBpbiB0aGUgdGFyZ2V0J3MgdHJhY2UgYnVm ZmVyLiAgKi8KICAKICAgIGludCBidWZmZXJfZnJlZTsKKyAKKyAgIC8qIDEg aWYgdGhlIHRhcmdldCB3aWxsIGNvbnRpbnVlIHRyYWNpbmcgYWZ0ZXIgZGlz Y29ubmVjdGlvbiwgZWxzZQorICAgICAgMC4gIElmIHRoZSB0YXJnZXQgZG9l cyBub3QgcmVwb3J0IGEgdmFsdWUsIGFzc3VtZSAwLiAgKi8KKyAKKyAgIGlu dCBkaXNjb25uZWN0ZWRfdHJhY2luZzsKKyAKKyAgIC8qIDEgaWYgdGhlIHRh cmdldCBpcyB1c2luZyBhIGNpcmN1bGFyIHRyYWNlIGJ1ZmZlciwgZWxzZSAw LiAgSWYgdGhlCisgICAgICB0YXJnZXQgZG9lcyBub3QgcmVwb3J0IGEgdmFs dWUsIGFzc3VtZSAwLiAgKi8KKyAKKyAgIGludCBjaXJjdWxhcl9idWZmZXI7 CiAgfTsKICAKICBzdHJ1Y3QgdHJhY2Vfc3RhdHVzICpjdXJyZW50X3RyYWNl X3N0YXR1cyAodm9pZCk7CioqKioqKioqKioqKioqKiBleHRlcm4gc3RydWN0 IGJyZWFrcG9pbnQgKmNyZWF0ZV90cmFjZXBvCioqKiAxODksMTk1ICoqKioK ICBleHRlcm4gdm9pZCBtZXJnZV91cGxvYWRlZF90cmFjZXBvaW50cyAoc3Ry dWN0IHVwbG9hZGVkX3RwICoqdXRwcCk7CiAgZXh0ZXJuIHZvaWQgbWVyZ2Vf dXBsb2FkZWRfdHJhY2Vfc3RhdGVfdmFyaWFibGVzIChzdHJ1Y3QgdXBsb2Fk ZWRfdHN2ICoqdXRzdnApOwogIAohIGV4dGVybiB2b2lkIGRpc2Nvbm5lY3Rf b3Jfc3RvcF90cmFjaW5nIChpbnQgZnJvbV90dHkpOwogIAogIGV4dGVybiB2 b2lkIHN0YXJ0X3RyYWNpbmcgKHZvaWQpOwogIGV4dGVybiB2b2lkIHN0b3Bf dHJhY2luZyAodm9pZCk7Ci0tLSAxOTksMjA1IC0tLS0KICBleHRlcm4gdm9p ZCBtZXJnZV91cGxvYWRlZF90cmFjZXBvaW50cyAoc3RydWN0IHVwbG9hZGVk X3RwICoqdXRwcCk7CiAgZXh0ZXJuIHZvaWQgbWVyZ2VfdXBsb2FkZWRfdHJh Y2Vfc3RhdGVfdmFyaWFibGVzIChzdHJ1Y3QgdXBsb2FkZWRfdHN2ICoqdXRz dnApOwogIAohIGV4dGVybiB2b2lkIGRpc2Nvbm5lY3RfdHJhY2luZyAoaW50 IGZyb21fdHR5KTsKICAKICBleHRlcm4gdm9pZCBzdGFydF90cmFjaW5nICh2 b2lkKTsKICBleHRlcm4gdm9pZCBzdG9wX3RyYWNpbmcgKHZvaWQpOwpJbmRl eDogZG9jL2dkYi50ZXhpbmZvCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZG9jL2dkYi50ZXhpbmZvLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjY5OApkaWZmIC1wIC1yMS42OTggZ2RiLnRl eGluZm8KKioqIGRvYy9nZGIudGV4aW5mbwk4IEFwciAyMDEwIDIyOjMyOjM3 IC0wMDAwCTEuNjk4Ci0tLSBkb2MvZ2RiLnRleGluZm8JOSBBcHIgMjAxMCAw Mjo1OTo0MiAtMDAwMAoqKioqKioqKioqKioqKiogVGhlIHRyYWNlIHN0b3Bw ZWQgZm9yIHNvbWUgb3RoZXIgcmVhc29uLgoqKiogMzE1MDgsMzE1MTcgKioq KgogIAogIEBlbmQgdGFibGUKICAKISBBZGRpdGlvbmFsIG9wdGlvbmFsIGZp ZWxkcyBzdXBwbHkgc3RhdGlzdGljYWwgaW5mb3JtYXRpb24uICBBbHRob3Vn aAohIG5vdCByZXF1aXJlZCwgdGhleSBhcmUgZXh0cmVtZWx5IHVzZWZ1bCBm b3IgdXNlcnMgbW9uaXRvcmluZyB0aGUKISBwcm9ncmVzcyBvZiBhIHRyYWNl IHJ1bi4gIElmIGEgdHJhY2UgaGFzIHN0b3BwZWQsIGFuZCB0aGVzZSBudW1i ZXJzCiEgYXJlIHJlcG9ydGVkLCB0aGV5IG11c3QgcmVmbGVjdCB0aGUgc3Rh dGUgb2YgdGhlIGp1c3Qtc3RvcHBlZCB0cmFjZS4KICAKICBAdGFibGUgQHNh bXAKICAKLS0tIDMxNTA4LDMxNTE4IC0tLS0KICAKICBAZW5kIHRhYmxlCiAg CiEgQWRkaXRpb25hbCBvcHRpb25hbCBmaWVsZHMgc3VwcGx5IHN0YXRpc3Rp Y2FsIGFuZCBvdGhlciBpbmZvcm1hdGlvbi4KISBBbHRob3VnaCBub3QgcmVx dWlyZWQsIHRoZXkgYXJlIGV4dHJlbWVseSB1c2VmdWwgZm9yIHVzZXJzIG1v bml0b3JpbmcKISB0aGUgcHJvZ3Jlc3Mgb2YgYSB0cmFjZSBydW4uICBJZiBh IHRyYWNlIGhhcyBzdG9wcGVkLCBhbmQgdGhlc2UKISBudW1iZXJzIGFyZSBy ZXBvcnRlZCwgdGhleSBtdXN0IHJlZmxlY3QgdGhlIHN0YXRlIG9mIHRoZSBq dXN0LXN0b3BwZWQKISB0cmFjZS4KICAKICBAdGFibGUgQHNhbXAKICAKKioq KioqKioqKioqKioqIFRoZSB0b3RhbCBzaXplIG9mIHRoZSB0cmFjZSBidWZm ZXIsIGluIGIKKioqIDMxNTI4LDMxNTMzICoqKioKLS0tIDMxNTI5LDMxNTQ1 IC0tLS0KICBAaXRlbSB0ZnJlZTpAdmFye259CiAgVGhlIG51bWJlciBvZiBi eXRlcyBzdGlsbCB1bnVzZWQgaW4gdGhlIGJ1ZmZlci4KICAKKyBAaXRlbSBj aXJjdWxhcjpAdmFye259CisgVGhlIHZhbHVlIG9mIHRoZSBjaXJjdWxhciB0 cmFjZSBidWZmZXIgZmxhZy4gIEBjb2RlezF9IG1lYW5zIHRoYXQgdGhlCisg dHJhY2UgYnVmZmVyIGlzIGNpcmN1bGFyIGFuZCBvbGQgdHJhY2UgZnJhbWVz IHdpbGwgYmUgZGlzY2FyZGVkIGlmCisgbmVjZXNzYXJ5IHRvIG1ha2Ugcm9v bSwgQGNvZGV7MH0gbWVhbnMgdGhhdCB0aGUgdHJhY2UgYnVmZmVyIGlzIGxp bmVhcgorIGFuZCBtYXkgZmlsbCB1cC4KKyAKKyBAaXRlbSBkaXNjb25uOkB2 YXJ7bn0KKyBUaGUgdmFsdWUgb2YgdGhlIGRpc2Nvbm5lY3RlZCB0cmFjaW5n IGZsYWcuICBAY29kZXsxfSBtZWFucyB0aGF0CisgdHJhY2luZyB3aWxsIGNv bnRpbnVlIGFmdGVyIEB2YWx1ZXtHREJOfSBkaXNjb25uZWN0cywgQGNvZGV7 MH0gbWVhbnMKKyB0aGF0IHRoZSB0cmFjZSBydW4gd2lsbCBzdG9wLgorIAog IEBlbmQgdGFibGUKICAKICBAaXRlbSBxVFY6QHZhcnt2YXJ9CkluZGV4OiBj bGkvY2xpLWNtZHMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvY3ZzL3NyYy9zcmMvZ2RiL2NsaS9jbGktY21kcy5jLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjk5CmRpZmYgLXAgLXIxLjk5IGNsaS1jbWRzLmMKKioq IGNsaS9jbGktY21kcy5jCTcgQXByIDIwMTAgMDM6NDI6NTUgLTAwMDAJMS45 OQotLS0gY2xpL2NsaS1jbWRzLmMJOSBBcHIgMjAxMCAwMjo1OTo0MiAtMDAw MAoqKioqKioqKioqKioqKioKKioqIDM4LDQ0ICoqKioKICAjaW5jbHVkZSAi b2JqZmlsZXMuaCIKICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUg ImRpc2FzbS5oIgohIGV4dGVybiB2b2lkIGRpc2Nvbm5lY3Rfb3Jfc3RvcF90 cmFjaW5nIChpbnQgZnJvbV90dHkpOwogIAogICNpbmNsdWRlICJ1aS1vdXQu aCIKICAKLS0tIDM4LDQ0IC0tLS0KICAjaW5jbHVkZSAib2JqZmlsZXMuaCIK ICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUgImRpc2FzbS5oIgoh ICNpbmNsdWRlICJ0cmFjZXBvaW50LmgiCiAgCiAgI2luY2x1ZGUgInVpLW91 dC5oIgogIAoqKioqKioqKioqKioqKiogcXVpdF9jb21tYW5kIChjaGFyICph cmdzLCBpbnQgZnJvbV90dHkpCioqKiAzMzcsMzQzICoqKioKICAgIGlmICgh cXVpdF9jb25maXJtICgpKQogICAgICBlcnJvciAoXygiTm90IGNvbmZpcm1l ZC4iKSk7CiAgCiEgICBkaXNjb25uZWN0X29yX3N0b3BfdHJhY2luZyAoZnJv bV90dHkpOwogIAogICAgcXVpdF9mb3JjZSAoYXJncywgZnJvbV90dHkpOwog IH0KLS0tIDMzNywzNDMgLS0tLQogICAgaWYgKCFxdWl0X2NvbmZpcm0gKCkp CiAgICAgIGVycm9yIChfKCJOb3QgY29uZmlybWVkLiIpKTsKICAKISAgIGRp c2Nvbm5lY3RfdHJhY2luZyAoZnJvbV90dHkpOwogIAogICAgcXVpdF9mb3Jj ZSAoYXJncywgZnJvbV90dHkpOwogIH0K --------------050209000405080808060007--