From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Matt Wette Newsgroups: gmane.lisp.guile.devel Subject: patch for mmap and friends Date: Fri, 13 Jan 2023 16:49:50 -0800 Message-ID: <1ee846ab-e9ce-d616-94dd-0056e4b840f9@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------lKToELzklC7iX300Q0xWZZSr" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7869"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 To: 27782@debbugs.gnu.org, guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sat Jan 14 01:50:22 2023 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pGUkX-0001rC-QH for guile-devel@m.gmane-mx.org; Sat, 14 Jan 2023 01:50:22 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pGUkB-0001Bh-Er; Fri, 13 Jan 2023 19:49:59 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pGUk9-0001BW-Pt for guile-devel@gnu.org; Fri, 13 Jan 2023 19:49:57 -0500 Original-Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pGUk7-0007OG-2U for guile-devel@gnu.org; Fri, 13 Jan 2023 19:49:57 -0500 Original-Received: by mail-pg1-x535.google.com with SMTP id 36so16051996pgp.10 for ; Fri, 13 Jan 2023 16:49:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=G/p2rQnnr8u5gB7FY7qTeqWcr8370PrvCnhH7qd9ne8=; b=mfEPht/Bz9yHEeRrqIs8cmeqSztpwgSgbg4+AaDvosTcAdn7a55fHtlAgDM4LOe/jq hRW1lFsBKVmOuB86hWa54pYvlQRiXwZGek1/mEAAvO2u2Vj+hRmxlza6NrJfX0zhuCLl U2UhJT6142Qek/vRzUQFOl68RHe6pRc/xzg470udQ57S+sWYp+E0Xl7afNTmN5nKvefJ Jqvc42Tz2cdvIflS/9rHLVVvln0ummzZrIMLkpDL8SomwcvoPmnBp6d2cz7sONlREWv3 81w2RROlTkqAUWn6wvvtxm1UY6HAvI/ZBW556U0lB2PhJLtpHl0bf1mbRqo7UTn50raP qxCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=G/p2rQnnr8u5gB7FY7qTeqWcr8370PrvCnhH7qd9ne8=; b=KTYcTJD8+pBlIubw2Qln9nZDBX911jGYN4FmMsJWY8hEC/VwY40Agdmix+2QR1R9RO YjFpL3NIT7+0iDx5aIVjN5qd1+x19Hx63vmxVhVkTX3dEN5Cgk8wU1voCbRDlqy1MBYH LLPQZ0GtPJHOgj/FWBpeFwGsamWw02/bB6WJdLBYIR7mc/096UnytXLdOwhoNBtMoTmr eJCId6ht237uQQFJ8izbPeheuaJkNi0jFc1zZlhg46mbZY14nZ1deDMt5q3Gub9pv8HC d/8QlZYWqZ0emwHIODVGuD3Q0rFhow5B/SX6gbygQ+vEXTtyyMfLNZB7fBhvI89y2jKu GD8g== X-Gm-Message-State: AFqh2koNSR8QUruLgS7VhIwOn0xQM8IujKGYJVIL3MXbssmjfk6Le1ug aqlGLLQKSPMpkPr3Xl8rPNcYBvfZDks= X-Google-Smtp-Source: AMrXdXvQmNIHGW/vmQwUo8f3s7fnBdlprcV1qLqWMdP6iQt7Xl8PednU3RufjQ3sf1IL6D6+U7x4xg== X-Received: by 2002:a05:6a00:340d:b0:589:432c:11e2 with SMTP id cn13-20020a056a00340d00b00589432c11e2mr18023836pfb.25.1673657392432; Fri, 13 Jan 2023 16:49:52 -0800 (PST) Original-Received: from [192.168.2.157] (64-52-138-37.championbroadband.com. [64.52.138.37]) by smtp.gmail.com with ESMTPSA id q16-20020aa78430000000b0058baf8694e1sm2741263pfn.71.2023.01.13.16.49.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 13 Jan 2023 16:49:51 -0800 (PST) Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::535; envelope-from=matt.wette@gmail.com; helo=mail-pg1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:21578 Archived-At: This is a multi-part message in MIME format. --------------lKToELzklC7iX300Q0xWZZSr Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Please consider this patch for adding mmap(), munmap() and msync()  to libguile/filesys.c.  Included is update for posix.texi and test file mman.test. Once included, feature 'mman should be #t. Matt --------------lKToELzklC7iX300Q0xWZZSr Content-Type: text/x-patch; charset=UTF-8; name="0001-Add-mmap-and-friends-munmap-msync.patch" Content-Disposition: attachment; filename="0001-Add-mmap-and-friends-munmap-msync.patch" Content-Transfer-Encoding: base64 RnJvbSA2Yzk0NDE3NGQzNWQ0M2Y4NzM0MGM4MTk5ZDQ3ZjNmMDg4ZmE2Y2E3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0IFdldHRlIDxtd2V0dGVAYWx1bW5pLmNhbHRl Y2guZWR1PgpEYXRlOiBGcmksIDEzIEphbiAyMDIzIDE2OjQyOjA2IC0wODAwClN1YmplY3Q6 IFtQQVRDSF0gQWRkIG1tYXAgYW5kIGZyaWVuZHMgKG11bm1hcCwgbXN5bmMpLgoKKiBsaWJn dWlsZS9maWxlc3lzLltjaF06IGFkZGVkIHNjbV9tbWFwX3NlYXJjaCwgc2NtX21tYXAsIHNj bV9tc3luYywgYW5kCiAgaW5pdF9tbWFuLCBidWlsdCBvbiBhdmFpbGFiaWxpdHkgb2YgSEFW RV9NTUFOX0g7IGFsc28gcHJvdmlkZXMgZmVhdHVyZQogICdtbWFuCiogZG9jL3JlZi9wb3Np eC50ZXhpOiBhZGRlZCBkb2N1bWVudGF0aW9uIGZvciBtbWFwIGFuZCBmcmllbmRzCiogdGVz dC1zdWl0ZS9NYWtlZmlsZS5hbTogdXBkYXRlZCBmb3IgbW1hbi50ZXN0CiogdGVzdC1zdWl0 ZS90ZXN0cy9tbWFuLnRlc3Q6IG1tYXAgdGVzdHMKLS0tCiBjb25maWd1cmUuYWMgICAgICAg ICAgIHwgICAyICsKIGRvYy9yZWYvcG9zaXgudGV4aSAgICAgfCAgNDUgKysrKysrKwogbGli Z3VpbGUvZmlsZXN5cy5jICAgICB8IDI2NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogbGliZ3VpbGUvZmlsZXN5cy5oICAgICB8ICAgNCArCiB0ZXN0LXN1 aXRlL01ha2VmaWxlLmFtIHwgICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgMzE2IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXgg ZjhjMTJmMGQ3Li5jMzQ4ZDE0YTIgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9j b25maWd1cmUuYWMKQEAgLTEwMTgsNiArMTAxOCw4IEBAIEFDX0NIRUNLX01FTUJFUlMoW3N0 cnVjdCB0bS50bV9nbXRvZmZdLCwsCiBdKQogR1VJTEVfU1RSVUNUX1VUSU1CVUYKIAorQUNf Q0hFQ0tfRlVOQ1MoW21zeW5jXSkKKwogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMKZGlmZiAtLWdp dCBhL2RvYy9yZWYvcG9zaXgudGV4aSBiL2RvYy9yZWYvcG9zaXgudGV4aQppbmRleCA1NjUz ZDM3NTguLjE2ZjNiYmM0OSAxMDA2NDQKLS0tIGEvZG9jL3JlZi9wb3NpeC50ZXhpCisrKyBi L2RvYy9yZWYvcG9zaXgudGV4aQpAQCAtMTIxNiw2ICsxMjE2LDUxIEBAIHZhbGlkIHNlcGFy YXRvcnMuICBUaHVzLCBwcm9ncmFtcyBzaG91bGQgbm90IGFzc3VtZSB0aGF0CiBzZXBhcmF0 b3ItLS1lLmcuLCB3aGVuIGV4dHJhY3RpbmcgdGhlIGNvbXBvbmVudHMgb2YgYSBmaWxlIG5h bWUuCiBAZW5kIGRlZnZyCiAKK0BkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gbW1hcCBhZGRy IGxlbiBbcHJvdCBbZmxhZ3MgW2ZkIFtvZmZzZXRdXV1dCitAZGVmZm54IHtTY2hlbWUgUHJv Y2VkdXJlfSBtbWFwL3NlYXJjaCBhZGRyIGxlbiBbcHJvdCBbZmxhZ3MgW2ZkIFtvZmZzZXRd XV1dCitDcmVhdGUgYSBtZW1vcnkgbWFwcGluZywgcmV0dXJuaW5nIGEgYnl0ZXZlY3Rvci4g IEB2YXJ7YWRkcn0sIGlmCitub24temVybywgaXMgdGhlIHN0YXJpbmcgYWRkcmVzczsgb3Is IGlmIHplcm8sIGlzIGFzc2lnbmVkIGJ5IHRoZQorc3lzdGVtLiAgQHZhcntwcm90fSwgaWYg cHJvdmlkZWQsIGFzc2lnbnMgcHJvdGVjdGlvbi4gIEB2YXJ7ZmR9LAoraWYgcHJvdmlkZWQg YXNzb2NpYXRlcyB0aGUgbWVtb3J5IHJlZ2lvbiB3aXRoIGEgZmlsZSwgc3RhcnRpbmcKK2F0 IEB2YXJ7b2Zmc2V0fSwgaWYgcHJvdmlkZWQuCitUaGUgcmVnaW9uIHJldHVybmVkIGJ5IG1t YXAgd2lsbCBOT1QgYmUgc2VhcmNoZWQgYnkgdGhlIGdhcmJhZ2UKKyBjb2xsZWN0b3IgZm9y IHBvaW50ZXJzLCB3aGlsZSB0aGF0IHJldHVybmVkIGJ5IG1tYXAvc2VhcmNoIHdpbGwuCitO b3RlIHRoYXQgdGhlIGZpbmFsaXplciBmb3IgdGhlIHJldHVybmVkIGJ5dGV2ZWN0b3Igd2ls bCBjYWxsIG11bm1hcC4KK0RlZmF1bHRzIGZvciBvcHRpb25hbCBhcmd1bWVudHMgYXJlCitA dGFibGUgQGFzaXMKK0BpdGVtIHByb3QKKyhsb2dpb3IgUFJPVF9SRUFEIFBST1RfV1JJVEUp CitAaXRlbSBmbGFncworKGxvZ2lvciBNQVBfQU5PTllNT1VTIE1BUF9QUklWQVRFKQorQGl0 ZW0gZmQKKy0xCitAaXRlbSBvZmZzZXQKKzAKK0BlbmQgdGFibGUKK0BlbmQgZGVmZm4KKwor QGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBtdW5tYXAgYnZlYworR2l2ZW4gYnl0ZXZlY3Rv ciBnZW5lcmF0ZWQgYnkgbW1hcCBvciBtbWFwL3NlYXJjaCwgdW5tYXAgdGhlCit0aGUgYXNz b2NpYXRlZCBtZW1vcnkuICBUaGUgYXJndW1lbnQgd2lsbCBiZSBtb2RpZmllZCB0bworcmVm bGVjdCBhIHplcm8gbGVuZ3RoIGJ2LiAgVGhlIHJldHVybiB2YWx1ZSBpcyB1bnNwZWNpZmll ZC4KK05vdGUgdGhhdCBtdW5tYXAgaXMgY2FsbGVkIGJ5IGZpbmFsaXplciBhc3NvY2lhdGVk IHdpdGgKK2J5dGV2ZWN0b3JzIHJldHVybmVkIGZyb20gbW1hcCBhbmQgbW1hcC9zZWFyY2gu CitAZW5kIGRlZmZuCisKK0BkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gbXN5bmMgYWRkciBs ZW5ndGggZmxhZworRmx1c2ggY2hhbmdlcyBtYWRlIHRvIHRoZSBpbi1jb3JlIGNvcHkgb2Yg YSBmaWxlIG1hcHBlZCB1c2luZworbW1hcCBvciBtbWFwL3NlYXJjaC4gIFRoaXMgc2hvdWxk IGJlIGV4ZWN1dGVkIG9uIG1vZGlmaWVkIG1lbW9yeQorYmVmb3JlIGNhbGxpbmcgbXVubWFw LiAgVGhlIEB2YXJ7ZmxhZ3N9IGFyZ3VtZW50IG11c3QgYmUgZXhhY3RseSBvbmUKK29mIHRo ZSBmb2xsb3dpbmc6CitAdGFibGUgQGNvZGUKK0BpdGVtIE1TX0FTWU5DCitJbml0aWF0ZSB1 cGRhdGUsIHJldHVybiBpbW1lZGlhdGVseS4KK0BpdGVtIE1TX1NZTkMKK0luaXRpYXRlIHVw ZGF0ZSwgYmxvY2sgdW50aWwgY29tcGxldGUuCitAaXRlbSBNU19JTlZBTElEQVRFCitJbnZh bGlkYXRlIG90aGVyIG1hcHBpbmdzIG9mIHRoZSBzYW1lIGZpbGUuCitAZW5kIHRhYmxlCitA ZW5kIGRlZmZuCiAKIEBub2RlIFVzZXIgSW5mb3JtYXRpb24KIEBzdWJzZWN0aW9uIFVzZXIg SW5mb3JtYXRpb24KZGlmZiAtLWdpdCBhL2xpYmd1aWxlL2ZpbGVzeXMuYyBiL2xpYmd1aWxl L2ZpbGVzeXMuYwppbmRleCAxZjBiYmE1NTYuLjBkZGI0Y2ZlZSAxMDA2NDQKLS0tIGEvbGli Z3VpbGUvZmlsZXN5cy5jCisrKyBiL2xpYmd1aWxlL2ZpbGVzeXMuYwpAQCAtNjcsMTEgKzY3 LDE3IEBACiAjIGluY2x1ZGUgPHN5cy9zZW5kZmlsZS5oPgogI2VuZGlmCiAKKyNpZmRlZiBI QVZFX1NZU19NTUFOX0gKKyMgaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNlbmRpZgorCiAjaW5j bHVkZSAiYXN5bmMuaCIKICNpbmNsdWRlICJib29sZWFuLmgiCiAjaW5jbHVkZSAiZHlud2lu ZC5oIgogI2luY2x1ZGUgImZkZXMtZmluYWxpemVycy5oIgogI2luY2x1ZGUgImZlYXR1cmUu aCIKKyNpbmNsdWRlICJmaW5hbGl6ZXJzLmgiCisjaW5jbHVkZSAiZm9yZWlnbi5oIgogI2lu Y2x1ZGUgImZwb3J0cy5oIgogI2luY2x1ZGUgImdzdWJyLmgiCiAjaW5jbHVkZSAiaXNlbGVj dC5oIgpAQCAtMjI2Myw2ICsyMjY5LDI2MSBAQCBzY21fZGlyX2ZyZWUgKFNDTSBwKQogCiAM CiAKKyNpZmRlZiBIQVZFX1NZU19NTUFOX0gKKy8qIHNlZSBodHRwczovL3B1YnMub3Blbmdy b3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvZnVuY3Rpb25zL21tYXAuaHRtbCAqLwor CitzdGF0aWMgdm9pZAorbW1hcF9maW5hbGl6ZXIgKHZvaWQgKnB0ciwgdm9pZCAqZGF0YSkK K3sKKyAgU0NNIGJ2ZWM7CisgIHZvaWQgKmNfYWRkcjsKKyAgc2l6ZV90IGNfbGVuOworICBp bnQgcnY7CisKKyAgYnZlYyA9IFNDTV9QQUNLX1BPSU5URVIgKHB0cik7CisgIGlmICghU0NN X0JZVEVWRUNUT1JfUCAoYnZlYykpCisgICAgc2NtX21pc2NfZXJyb3IgKCJtbWFwIiwgImV4 cGVjdGluZyBieXRldmVjdG9yIiwgU0NNX0VPTCk7CisKKyAgY19hZGRyID0gU0NNX0JZVEVW RUNUT1JfQ09OVEVOVFMgKGJ2ZWMpOworICBjX2xlbiA9IFNDTV9CWVRFVkVDVE9SX0xFTkdU SCAoYnZlYyk7CisgIFNDTV9TWVNDQUxMIChydiA9IG11bm1hcChjX2FkZHIsIGNfbGVuKSk7 CisgIGlmIChydiAhPSAwKQorICAgIHNjbV9taXNjX2Vycm9yICgibW1hcCIsICJmYWlsZWQg dG8gbXVubWFwIG1lbW9yeSIsIFNDTV9FT0wpOworfQorCitTQ01fREVGSU5FIChzY21fbW1h cF9zZWFyY2gsICJtbWFwL3NlYXJjaCIsIDIsIDQsIDAsCisgICAgICAgICAgICAoU0NNIGFk ZHIsIFNDTSBsZW4sIFNDTSBwcm90LCBTQ00gZmxhZ3MsIFNDTSBmZCwgU0NNIG9mZnNldCks CisJICAgICJDcmVhdGUgYSBtZW1vcnkgbWFwcGluZywgcmV0dXJuaW5nIGEgYnl0ZXZlY3Rv ci4uICBAdmFye2FkZHJ9LFxuIgorCSAgICAiaWYgbm9uLXplcm8sIGlzIHRoZSBzdGFyaW5n IGFkZHJlc3M7IG9yLCBpZiB6ZXJvLCBpcyBhc3NpZ25lZCBieVxuIgorCSAgICAidGhlIHN5 c3RlbS4gIEB2YXJ7cHJvdH0sIGlmIHByb3ZpZGVkLCBhc3NpZ25zIHByb3RlY3Rpb24uXG4i CisJICAgICJAdmFye2ZkfSwgaWYgcHJvdmlkZWQgYXNzb2NpYXRlcyB0aGUgbWVtb3J5IHJl Z2lvbiB3aXRoIGEgZmlsZVxuIgorCSAgICAic3RhcnRpbmcgYXQgQHZhcntvZmZzZXR9LCBp ZiBwcm92aWRlZC5cbiIKKwkgICAgIlRoZSByZWdpb24gcmV0dXJuZWQgYnkgbW1hcCBXSUxM IGJlIHNlYXJjaGVkIGJ5IHRoZSBnYXJiYWdlXG4iCisJICAgICJjb2xsZWN0b3IgZm9yIHBv aW50ZXJzLiAgU2VlIGFsc28gbW1hcC4gIE5vdGUgdGhhdCB0aGVcbiIKKyAgICAgICAgICAg ICJmaW5hbGl6ZXIgZm9yIHRoZSByZXR1cm5lZCBieXRldmVjdG9yIHdpbGwgY2FsbCBtdW5t YXAuXG4iCisJICAgICJEZWZhdWx0cyBmb3Igb3B0aW9uYWwgYXJndW1lbnRzIGFyZVxuIgor CSAgICAiQHRhYmxlIEBhc2lzXG4iCisJICAgICJAaXRlbSBwcm90XG4obG9naW9yIFBST1Rf UkVBRCBQUk9UX1dSSVRFKVxuIgorCSAgICAiQGl0ZW0gZmxhZ3Ncbihsb2dpb3IgTUFQX0FO T05ZTU9VUyBNQVBfUFJJVkFURSlcbiIKKwkgICAgIkBpdGVtIGZkXG4tMVxuIgorCSAgICAi QGl0ZW0gb2Zmc2V0XG4wXG4iCisJICAgICJAZW5kIHRhYmxlIikKKyNkZWZpbmUgRlVOQ19O QU1FIHNfc2NtX21tYXBfc2VhcmNoCit7CisgIHZvaWQgKmNfbWVtLCAqY19hZGRyOworICBz aXplX3QgY19sZW47CisgIGludCBjX3Byb3QsIGNfZmxhZ3MsIGNfZmQ7CisgIHNjbV90X29m ZiBjX29mZnNldDsKKyAgU0NNIHBvaW50ZXIsIGJ2ZWM7CisKKyAgaWYgKFNDTV9QT0lOVEVS X1AgKGFkZHIpKQorICAgIGNfYWRkciA9IFNDTV9QT0lOVEVSX1ZBTFVFIChhZGRyKTsKKyAg ZWxzZSBpZiAoc2NtX2lzX2ludGVnZXIgKGFkZHIpKQorICAgIGNfYWRkciA9ICh2b2lkKikg c2NtX3RvX3VpbnRwdHJfdCAoYWRkcik7CisgIGVsc2UKKyAgICBzY21fbWlzY19lcnJvciAo Im1tYXAiLCAiYmFkIGFkZHIiLCBhZGRyKTsKKworICBjX2xlbiA9IHNjbV90b19zaXplX3Qg KGxlbik7CisKKyAgaWYgKFNDTV9VTkJORFAgKHByb3QpKQorICAgIGNfcHJvdCA9IFBST1Rf UkVBRCB8IFBST1RfV1JJVEU7CisgIGVsc2UKKyAgICBjX3Byb3QgPSBzY21fdG9faW50IChw cm90KTsKKworICBpZiAoU0NNX1VOQk5EUCAoZmxhZ3MpKQorICAgIGNfZmxhZ3MgPSBNQVBf QU5PTllNT1VTIHwgTUFQX1BSSVZBVEU7CisgIGVsc2UKKyAgICBjX2ZsYWdzID0gc2NtX3Rv X2ludCAoZmxhZ3MpOworCisgIGlmIChTQ01fVU5CTkRQIChmZCkpCisgICAgY19mZCA9IC0x OworICBlbHNlCisgICAgY19mZCA9IHNjbV90b19pbnQgKGZkKTsKKworICBpZiAoU0NNX1VO Qk5EUCAob2Zmc2V0KSkKKyAgICBjX29mZnNldCA9IDA7CisgIGVsc2UKKyAgICBjX29mZnNl dCA9IHNjbV90b19vZmZfdCAob2Zmc2V0KTsKKworICBpZiAoKGNfYWRkciA9PSBOVUxMKSAm JiAoY19mbGFncyAmIE1BUF9GSVhFRCkpCisgICAgc2NtX21pc2NfZXJyb3IgKCJtbWFwIiwg ImNhbm5vdCBoYXZlIE5VTEwgYWRkciB3LyBNQVBfRklYRUQiLCBTQ01fRU9MKTsKKworICBT Q01fU1lTQ0FMTCAoY19tZW0gPSBtbWFwKGNfYWRkciwgY19sZW4sIGNfcHJvdCwgY19mbGFn cywgY19mZCwgY19vZmZzZXQpKTsKKyAgaWYgKGNfbWVtID09IE1BUF9GQUlMRUQpCisgICAg c2NtX3N5c2Vycm9yICgibW1hcCIpOyAgICAgICAgICAgICAgLyogZXJybm8gc2V0ICovCisK KyAgcG9pbnRlciA9IHNjbV9jZWxsIChzY21fdGM3X3BvaW50ZXIsIChzY21fdF9iaXRzKSBj X21lbSk7CisgIGJ2ZWMgPSBzY21fY190YWtlX3R5cGVkX2J5dGV2ZWN0b3IoKHNpZ25lZCBj aGFyICopIGNfbWVtICsgY19vZmZzZXQsIGNfbGVuLAorCQkJCSAgICAgU0NNX0FSUkFZX0VM RU1FTlRfVFlQRV9WVTgsIHBvaW50ZXIpOworICBhc3NlcnQoc2l6ZW9mKHZvaWQqKSA8PSBz aXplb2Yoc2l6ZV90KSk7CisgIHNjbV9pX3NldF9maW5hbGl6ZXIgKFNDTTJQVFIgKGJ2ZWMp LCBtbWFwX2ZpbmFsaXplciwgKHZvaWQqKSBjX2xlbik7CisgIHJldHVybiBidmVjOworfQor I3VuZGVmIEZVTkNfTkFNRQorCitTQ01fREVGSU5FIChzY21fbW1hcCwgIm1tYXAiLCAyLCA0 LCAwLAorICAgICAgICAgICAgKFNDTSBhZGRyLCBTQ00gbGVuLCBTQ00gcHJvdCwgU0NNIGZs YWdzLCBTQ00gZmQsIFNDTSBvZmZzZXQpLAorCSAgICAiQ3JlYXRlIGEgbWVtb3J5IG1hcHBp bmcsIHJldHVybmluZyBhIGJ5dGV2ZWN0b3IuICBAdmFye2FkZHJ9LCBpZlxuIgorCSAgICAi bm9uLXplcm8sIGlzIHRoZSBzdGFyaW5nIGFkZHJlc3M7IG9yLCBpZiB6ZXJvLCBpcyBhc3Np Z25lZCBieSB0aGVcbiIKKwkgICAgInN5c3RlbS4gIEB2YXJ7cHJvdH0sIGlmIHByb3ZpZGVk LCBhc3NpZ25zIHByb3RlY3Rpb24uICBAdmFye2ZkfSxcbiIKKwkgICAgImlmIHByb3ZpZGVk IGFzc29jaWF0ZXMgdGhlIG1lbW9yeSByZWdpb24gd2l0aCBhIGZpbGUsIHN0YXJ0aW5nIFxu IgorCSAgICAiYXQgQHZhcntvZmZzZXR9LCBpZiBwcm92aWRlZC5cbiIKKwkgICAgIlRoZSBy ZWdpb24gcmV0dXJuZWQgYnkgbW1hcCB3aWxsIE5PVCBiZSBzZWFyY2hlZCBieSB0aGUgZ2Fy YmFnZVxuIgorCSAgICAiY29sbGVjdG9yIGZvciBwb2ludGVycy4gU2VlIGFsc28gbW1hcC9z ZWFyY2guICBOb3RlIHRoYXQgdGhlXG4iCisgICAgICAgICAgICAiZmluYWxpemVyIGZvciB0 aGUgcmV0dXJuZWQgYnl0ZXZlY3RvciB3aWxsIGNhbGwgbXVubWFwLlxuIgorCSAgICAiRGVm YXVsdHMgZm9yIGFyZ3VtZW50cyBhcmU6XG4iCisJICAgICJAdGFibGUgQGFzaXNcbiIKKwkg ICAgIkBpdGVtIHByb3Rcbihsb2dpb3IgUFJPVF9SRUFEIFBST1RfV1JJVEUpXG4iCisJICAg ICJAaXRlbSBmbGFnc1xuKGxvZ2lvciBNQVBfQU5PTllNT1VTIE1BUF9QUklWQVRFKVxuIgor CSAgICAiQGl0ZW0gZmRcbi0xXG4iCisJICAgICJAaXRlbSBvZmZzZXRcbjBcbiIKKwkgICAg IkBlbmQgdGFibGUiKQorI2RlZmluZSBGVU5DX05BTUUgc19zY21fbW1hcAoreworICB2b2lk ICpjX21lbTsKKyAgc2l6ZV90IGNfbGVuOworICBTQ00gYnZlYzsKKworICBidmVjID0gc2Nt X21tYXBfc2VhcmNoKGFkZHIsIGxlbiwgcHJvdCwgZmxhZ3MsIGZkLCBvZmZzZXQpOworICBj X21lbSA9IFNDTV9CWVRFVkVDVE9SX0NPTlRFTlRTKGJ2ZWMpOworICBjX2xlbiA9IFNDTV9C WVRFVkVDVE9SX0xFTkdUSChidmVjKTsKKworICAvKiBUZWxsIEdDIG5vdCB0byBzY2FuIGZv ciBwb2ludGVycy4gKi8KKyAgR0NfZXhjbHVkZV9zdGF0aWNfcm9vdHMoY19tZW0sIChjaGFy KikgY19tZW0gKyBjX2xlbik7CisKKyAgcmV0dXJuIGJ2ZWM7Cit9CisjdW5kZWYgRlVOQ19O QU1FCisKKy8qIFRoZSBmb2xsb3dpbmcgY29waWVkIGZyb20gYnl0ZXZlY3RvcnMuYy4gS2x1 ZGdlPyAqLworI2RlZmluZSBTQ01fQllURVZFQ1RPUl9TRVRfTEVOR1RIKF9idiwgX2xlbikg ICAgICAgICAgICBcCisgIFNDTV9TRVRfQ0VMTF9XT1JEXzEgKChfYnYpLCAoc2NtX3RfYml0 cykgKF9sZW4pKQorI2RlZmluZSBTQ01fQllURVZFQ1RPUl9TRVRfQ09OVEVOVFMoX2J2LCBf Y29udGVudHMpCVwKKyAgU0NNX1NFVF9DRUxMX1dPUkRfMiAoKF9idiksIChzY21fdF9iaXRz KSAoX2NvbnRlbnRzKSkKKworU0NNX0RFRklORSAoc2NtX211bm1hcCwgIm11bm1hcCIsIDEs IDAsIDAsCisgICAgICAgICAgICAoU0NNIGJ2ZWMpLAorCSAgICAiR2l2ZW4gYnl0ZXZlY3Rv ciBnZW5lcmF0ZWQgYnkgbW1hcCBvciBtbWFwL3NlYXJjaCwgdW5tYXAgdGhlXG4iCisgICAg ICAgICAgICAidGhlIGFzc29jaWF0ZWQgbWVtb3J5LiAgVGhlIGFyZ3VtZW50IHdpbGwgYmUg bW9kaWZpZWQgdG8gXG4iCisgICAgICAgICAgICAicmVmbGVjdCBhIHplcm8gbGVuZ3RoIGJ2 LiBUaGUgcmV0dXJuIHZhbHVlIGlzIHVuc3BlY2lmaWVkLlxuIgorICAgICAgICAgICAgIk5v dGUgdGhhdCBtdW5tYXAgaXMgY2FsbGVkIGJ5IGZpbmFsaXplciBhc3NvY2lhdGVkIHdpdGhc biIKKyAgICAgICAgICAgICJieXRldmVjdG9ycyByZXR1cm5lZCBmcm9tIG1tYXAgYW5kIG1t YXAvc2VhcmNoLlxuIikKKyNkZWZpbmUgRlVOQ19OQU1FIHNfc2NtX211bm1hcAoreworICB2 b2lkICphZGRyOworICBzaXplX3QgbGVuOworICBpbnQgcnY7CisKKyAgU0NNX1ZBTElEQVRF X0JZVEVWRUNUT1IgKDEsIGJ2ZWMpOworCisgIGFkZHIgPSAodm9pZCAqKSBTQ01fQllURVZF Q1RPUl9DT05URU5UUyAoYnZlYyk7CisgIGxlbiA9IFNDTV9CWVRFVkVDVE9SX0xFTkdUSCAo YnZlYyk7CisKKyAgLyogSW52YWxpZGF0ZSBmdXJ0aGVyIHdvcmsgb24gdGhpcyBieXRldmVj dG9yLiAqLworICBTQ01fQllURVZFQ1RPUl9TRVRfTEVOR1RIIChidmVjLCAwKTsKKyAgU0NN X0JZVEVWRUNUT1JfU0VUX0NPTlRFTlRTIChidmVjLCBOVUxMKTsKKworICBTQ01fU1lTQ0FM TCAocnYgPSBtdW5tYXAoYWRkciwgbGVuKSk7CisgIGlmIChydiA9PSAtMSkKKyAgICBTQ01f U1lTRVJST1I7CQkJLyogZXJybm8gc2V0ICovCisKKyAgcmV0dXJuIFNDTV9VTlNQRUNJRklF RDsKK30KKyN1bmRlZiBGVU5DX05BTUUKKworI2lmZGVmIEhBVkVfTVNZTkMKK1NDTV9ERUZJ TkUgKHNjbV9tc3luYywgIm1zeW5jIiwgMiwgMCwgMCwKKyAgICAgICAgICAgIChTQ00gYnZl YywgU0NNIGZsYWdzKSwKKwkgICAgIkZsdXNoIGNoYW5nZXMgbWFkZSB0byB0aGUgaW4tY29y ZSBjb3B5IG9mIGEgZmlsZSBtYXBwZWQgdXNpbmdcbiIKKyAgICAgICAgICAgICJtbWFwIG9y IG1tYXAvc2VhcmNoLiAgVGhpcyBzaG91bGQgYmUgZXhlY3V0ZWQgb24gbW9kaWZpZWQgbWVt b3J5XG4iCisgICAgICAgICAgICAiYmVmb3JlIGNhbGxpbmcgbXVubWFwLiAgVGhlIEB2YXJ7 ZmxhZ3N9IGFyZ3VtZW50IG11c3QgYmUgZXhhY3RseVxuIgorICAgICAgICAgICAgIm9uZSBv ZiB0aGUgZm9sbG93aW5nOlxuIgorICAgICAgICAgICAgIkB0YWJsZSBAY29kZVxuIgorICAg ICAgICAgICAgIkBpdGVtIE1TX0FTWU5DXG4iCisgICAgICAgICAgICAiSW5pdGlhdGUgdXBk YXRlLCByZXR1cm4gaW1tZWRpYXRlbHkuXG4iCisgICAgICAgICAgICAiQGl0ZW0gTVNfU1lO Q1xuIgorICAgICAgICAgICAgIkluaXRpYXRlIHVwZGF0ZSwgYmxvY2sgdW50aWwgY29tcGxl dGUuXG4iCisgICAgICAgICAgICAiQGl0ZW0gTVNfSU5WQUxJREFURVxuIgorICAgICAgICAg ICAgIkludmFsaWRhdGUgb3RoZXIgbWFwcGluZ3Mgb2YgdGhlIHNhbWUgZmlsZS5cbiIKKyAg ICAgICAgICAgICJAZW5kIHRhYmxlXG4iCisgICAgICAgICAgICAiVGhlIHJldHVybiB2YWx1 ZSBpcyB1bnNwZWNpZmllZC4iKQorI2RlZmluZSBGVU5DX05BTUUgc19zY21fbXN5bmMKK3sK KyAgdm9pZCAqYWRkcjsKKyAgc2l6ZV90IGxlbjsKKyAgaW50IGNfZmxhZ3MsIHJ2OworCisg IFNDTV9WQUxJREFURV9CWVRFVkVDVE9SICgxLCBidmVjKTsKKyAgYWRkciA9ICh2b2lkICop IFNDTV9CWVRFVkVDVE9SX0NPTlRFTlRTIChidmVjKTsKKyAgbGVuID0gU0NNX0JZVEVWRUNU T1JfTEVOR1RIIChidmVjKTsKKworICBjX2ZsYWdzID0gc2NtX3RvX2ludCAoZmxhZ3MpOwor CisgIFNDTV9TWVNDQUxMIChydiA9IG1zeW5jKGFkZHIsIGxlbiwgY19mbGFncykpOworICBp ZiAocnYgPT0gLTEpCisgICAgU0NNX1NZU0VSUk9SOwkJCS8qIGVycm5vIHNldCAqLworCisg IHJldHVybiBTQ01fVU5TUEVDSUZJRUQ7Cit9CisjdW5kZWYgRlVOQ19OQU1FCisjZW5kaWYg LyogSEFWRV9NU1lOQyAqLworCitzdGF0aWMgdm9pZCBpbml0X21tYW4odm9pZCkgeworICBz Y21fYWRkX2ZlYXR1cmUoIm1tYW4iKTsKKworI2lmZGVmIFBST1RfTk9ORQorICBzY21fY19k ZWZpbmUgKCJQUk9UX05PTkUiLCBzY21fZnJvbV9pbnQgKFBST1RfTk9ORSkpOworI2VuZGlm CisjaWZkZWYgUFJPVF9SRUFECisgIHNjbV9jX2RlZmluZSAoIlBST1RfUkVBRCIsIHNjbV9m cm9tX2ludCAoUFJPVF9SRUFEKSk7CisjZW5kaWYKKyNpZmRlZiBQUk9UX1dSSVRFCisgIHNj bV9jX2RlZmluZSAoIlBST1RfV1JJVEUiLCBzY21fZnJvbV9pbnQgKFBST1RfV1JJVEUpKTsK KyNlbmRpZgorI2lmZGVmIFBST1RfRVhFQworICBzY21fY19kZWZpbmUgKCJQUk9UX0VYRUMi LCBzY21fZnJvbV9pbnQgKFBST1RfRVhFQykpOworI2VuZGlmCisKKyNpZmRlZiBNQVBfQU5P TllNT1VTCisgIHNjbV9jX2RlZmluZSAoIk1BUF9BTk9OWU1PVVMiLCBzY21fZnJvbV9pbnQg KE1BUF9BTk9OWU1PVVMpKTsKKyNlbmRpZgorI2lmZGVmIE1BUF9BTk9OCisgIHNjbV9jX2Rl ZmluZSAoIk1BUF9BTk9OIiwgc2NtX2Zyb21faW50IChNQVBfQU5PTikpOworI2VuZGlmCisj aWZkZWYgTUFQX0ZJTEUKKyAgc2NtX2NfZGVmaW5lICgiTUFQX0ZJTEUiLCBzY21fZnJvbV9p bnQgKE1BUF9GSUxFKSk7CisjZW5kaWYKKyNpZmRlZiBNQVBfRklYRUQKKyAgc2NtX2NfZGVm aW5lICgiTUFQX0ZJWEVEIiwgc2NtX2Zyb21faW50IChNQVBfRklYRUQpKTsKKyNlbmRpZgor I2lmZGVmIE1BUF9IQVNTRU1BUEhPUkUKKyAgc2NtX2NfZGVmaW5lICgiTUFQX0hBU1NFTUFQ SE9SRSIsIHNjbV9mcm9tX2ludCAoTUFQX0hBU1NFTUFQSE9SRSkpOworI2VuZGlmCisjaWZk ZWYgTUFQX1BSSVZBVEUKKyAgc2NtX2NfZGVmaW5lICgiTUFQX1BSSVZBVEUiLCBzY21fZnJv bV9pbnQgKE1BUF9QUklWQVRFKSk7CisjZW5kaWYKKyNpZmRlZiBNQVBfU0hBUkVECisgIHNj bV9jX2RlZmluZSAoIk1BUF9TSEFSRUQiLCBzY21fZnJvbV9pbnQgKE1BUF9TSEFSRUQpKTsK KyNlbmRpZgorI2lmZGVmIE1BUF9OT0NBQ0hFCisgIHNjbV9jX2RlZmluZSAoIk1BUF9OT0NB Q0hFIiwgc2NtX2Zyb21faW50IChNQVBfTk9DQUNIRSkpOworI2VuZGlmCisgIHNjbV9jX2Rl ZmluZSAoIlBBR0VfU0laRSIsIHNjbV9mcm9tX2ludCAoZ2V0cGFnZXNpemUoKSkpOworI2lm ZGVmIE1TX0FTWU5DCisgIHNjbV9jX2RlZmluZSAoIk1TX0FTWU5DIiwgc2NtX2Zyb21faW50 IChNU19BU1lOQykpOworI2VuZGlmCisjaWZkZWYgTVNfU1lOQworICBzY21fY19kZWZpbmUg KCJNU19TWU5DIiwgc2NtX2Zyb21faW50IChNU19TWU5DKSk7CisjZW5kaWYKKyNpZmRlZiBN U19JTlZBTElEQVRFCisgIHNjbV9jX2RlZmluZSAoIk1TX0lOVkFMSURBVEUiLCBzY21fZnJv bV9pbnQgKE1TX0lOVkFMSURBVEUpKTsKKyNlbmRpZgorfQorCisjZW5kaWYgLyogSEFWRV9T WVNfTU1BTl9IICovCisKKwwKKwogdm9pZAogc2NtX2luaXRfZmlsZXN5cyAoKQogewpAQCAt MjM4Nyw2ICsyNjQ4LDkgQEAgc2NtX2luaXRfZmlsZXN5cyAoKQogI2lmZGVmIEhBVkVfUkVB RExJTktBVAogICBzY21fYWRkX2ZlYXR1cmUoInJlYWRsaW5rLXBvcnQiKTsKICNlbmRpZgor I2lmIGRlZmluZWQoSEFWRV9TWVNfTU1BTl9IKQorICBpbml0X21tYW4oKTsKKyNlbmRpZgog CiAjaW5jbHVkZSAiZmlsZXN5cy54IgogfQpkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvZmlsZXN5 cy5oIGIvbGliZ3VpbGUvZmlsZXN5cy5oCmluZGV4IDFjZTUwZDMwZS4uZmE0MGI0ODRmIDEw MDY0NAotLS0gYS9saWJndWlsZS9maWxlc3lzLmgKKysrIGIvbGliZ3VpbGUvZmlsZXN5cy5o CkBAIC04MCw2ICs4MCwxMCBAQCBTQ01fQVBJIFNDTSBzY21fZGlybmFtZSAoU0NNIGZpbGVu YW1lKTsKIFNDTV9BUEkgU0NNIHNjbV9iYXNlbmFtZSAoU0NNIGZpbGVuYW1lLCBTQ00gc3Vm Zml4KTsKIFNDTV9BUEkgU0NNIHNjbV9jYW5vbmljYWxpemVfcGF0aCAoU0NNIHBhdGgpOwog U0NNX0FQSSBTQ00gc2NtX3NlbmRmaWxlIChTQ00gb3V0LCBTQ00gaW4sIFNDTSBjb3VudCwg U0NNIG9mZnNldCk7CitTQ01fQVBJIFNDTSBzY21fbW1hcF9zZWFyY2goU0NNIGFkZHIsIFND TSBsZW4sIFNDTSBwcm90LCBTQ00gZmxhZ3MsIFNDTSBmZCwgU0NNIG9mZnNldCk7CitTQ01f QVBJIFNDTSBzY21fbW1hcChTQ00gYWRkciwgU0NNIGxlbiwgU0NNIHByb3QsIFNDTSBmbGFn cywgU0NNIGZkLCBTQ00gb2Zmc2V0KTsKK1NDTV9BUEkgU0NNIHNjbV9tc3luYyhTQ00gYnZl YywgU0NNIGZsYWdzKTsKK1NDTV9BUEkgU0NNIHNjbV9tdW5tYXAoU0NNIGJ2ZWMpOwogU0NN X0lOVEVSTkFMIFNDTSBzY21faV9yZWxhdGl2aXplX3BhdGggKFNDTSBwYXRoLCBTQ00gaW5f cGF0aCk7CiAKIFNDTV9JTlRFUk5BTCB2b2lkIHNjbV9pbml0X2ZpbGVzeXMgKHZvaWQpOwpk aWZmIC0tZ2l0IGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbSBiL3Rlc3Qtc3VpdGUvTWFrZWZp bGUuYW0KaW5kZXggMTZmYTJlOTUyLi4zNzg1ZTJmODUgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3Vp dGUvTWFrZWZpbGUuYW0KKysrIGIvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQpAQCAtNzcsNiAr NzcsNyBAQCBTQ01fVEVTVFMgPSB0ZXN0cy8wMC1pbml0aWFsLWVudi50ZXN0CQlcCiAJICAg IHRlc3RzL2xvYWQudGVzdAkJCVwKIAkgICAgdGVzdHMvbWF0Y2gudGVzdAkJCVwKIAkgICAg dGVzdHMvbWF0Y2gudGVzdC51cHN0cmVhbQkJXAorCSAgICB0ZXN0cy9tbWFuLnRlc3QJCQlc CiAJICAgIHRlc3RzL21vZHVsZXMudGVzdAkJCVwKIAkgICAgdGVzdHMvbXVsdGlsaW5ndWFs Lm5vdHRlc3QJCVwKIAkgICAgdGVzdHMvbmV0LWRiLnRlc3QJCQlcCi0tIAoyLjM0LjEKCg== --------------lKToELzklC7iX300Q0xWZZSr--