From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id RcCqAxqFF2GANgAAWB0awg (envelope-from ) for ; Sat, 14 Aug 2021 04:55:54 -0400 Received: by simark.ca (Postfix, from userid 112) id ED8181EDFB; Sat, 14 Aug 2021 04:55:53 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_DYNAMIC,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 7E4DE1E4A3 for ; Sat, 14 Aug 2021 04:55:52 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 21E313835413 for ; Sat, 14 Aug 2021 08:55:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 21E313835413 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1628931352; bh=ERyJ0kX2EnEBPPjOWQK2eAAMqJslJe7gQyN4FZsHlNA=; h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=q25DZ2Qyot3pJXlu06C8ZCFV76DY8/wvdI/naEH/8UBeisF6xAQAbiRPab+7Uw3GR 1SEyCLxjqbo5Zz3PMmKtEpQ3rNcdrpsA+6B1wMroDPB5TvYAs8UpPwuyOWjF/5eSM0 LYZmmCe4NBm9Ys9yTac2G+AWBjqYX0Lm+31iixZk= Received: from mail-yb1-xb2d.google.com (mail-yb1-xb2d.google.com [IPv6:2607:f8b0:4864:20::b2d]) by sourceware.org (Postfix) with ESMTPS id 8EF1B385841F for ; Sat, 14 Aug 2021 08:55:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8EF1B385841F Received: by mail-yb1-xb2d.google.com with SMTP id z5so23335719ybj.2 for ; Sat, 14 Aug 2021 01:55:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ERyJ0kX2EnEBPPjOWQK2eAAMqJslJe7gQyN4FZsHlNA=; b=bi2XEWuMpGXnTv55H7cdRB1B04xEsb/XjS63iWrrVLKxR4M5T1LBoBv9annm59xFq8 EOEPptJuzbUZeBfEI8XZ+Vn56f8u7Q5cJ2DO2dAOPEz2YjfDGWcNsVIw0mvFVcFVsqip iFlP5+CEAAFODJKIuB0xjCeyWVekZBrFDUn/7TrG2dRsn9k2QfNx2xEvGxmzlg8Cfjyz 9p5ZWU+dyAfZbs1hmFZhHg88OMwbNz5R9UU5Qk4q9XozU0x+JNtKrIA3W+D13N6NL2+a z95Y1Qh/tNcl8v2R4btINkBIzGeZ3qNFD2LRQDow96xJ6Sk4SWjm93r2bheh3aEBnOAj rCeg== X-Gm-Message-State: AOAM531n/CpvJu7soam68xfpYlnjznxETsnBs2peJgJQORN4vTYJPTHy 7AeU+LLZy0UccSr1Fb/ZuV2EQPjvfb2CYOapxIjQs/G9DbQK91za X-Google-Smtp-Source: ABdhPJw2GAPRVNZFum5pSIQTkO9bAUtUvLUA+BR0NDJYeIY9FU8KheJdhuUeWKxyt2SdJRNjiAG8R0t7001Ku7YmRBQ= X-Received: by 2002:a25:aaa4:: with SMTP id t33mr8095894ybi.256.1628931322084; Sat, 14 Aug 2021 01:55:22 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Sat, 14 Aug 2021 16:55:10 +0800 Message-ID: Subject: Re: [PATCH 2/7][LoongArch] GDB Server support To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary="000000000000d1790e05c9812072" X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Paul Hua via Gdb-patches Reply-To: Paul Hua Cc: Xu Chenghua , caiyinyu@loongson.cn, chenglulu@loongson.cn, huangpei@loongson.cn, liuzhensong@loongson.cn Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" --000000000000d1790e05c9812072 Content-Type: text/plain; charset="UTF-8" Sorry, forget the raw patch. On Sat, Aug 14, 2021 at 4:50 PM Paul Hua wrote: > > Also, send to gdb-patches@sourceware.org > > Original message: > https://sourceware.org/pipermail/binutils/2021-August/117697.html > > > On Sat, Aug 14, 2021 at 4:11 PM Paul Hua wrote: > > > > --000000000000d1790e05c9812072 Content-Type: text/x-patch; charset="US-ASCII"; name="0002-gdbserver-LoongArch-GDBServer-Port.patch" Content-Disposition: attachment; filename="0002-gdbserver-LoongArch-GDBServer-Port.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ksbjmygb0 RnJvbSAyNWEwMzE4YjNjNGI5YzVmMDc5NGRlNjkwNDYxNmUwNjc4NzYxZjczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBsaXV6aGVuc29uZyA8bGl1emhlbnNvbmdAbG9vbmdzb24uY24+ CkRhdGU6IFNhdCwgMTQgQXVnIDIwMjEgMTE6MzI6MzMgKzA4MDAKU3ViamVjdDogW1BBVENIIDIv N10gZ2Ric2VydmVyOiBMb29uZ0FyY2ggR0RCU2VydmVyIFBvcnQuCgogIGdkYnNlcnZlci9NYWtl ZmlsZS5pbgogIGdkYnNlcnZlci9jb25maWd1cmUuc3J2CiAgZ2Ric2VydmVyL2xpbnV4LWxvb25n YXJjaC1sb3cuY2MKLS0tCiBnZGJzZXJ2ZXIvTWFrZWZpbGUuaW4gICAgICAgICAgICB8ICAgMiAr CiBnZGJzZXJ2ZXIvY29uZmlndXJlLnNydiAgICAgICAgICB8ICAxNSArKwogZ2Ric2VydmVyL2xp bnV4LWxvb25nYXJjaC1sb3cuY2MgfCAyOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCAzMDkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdkYnNlcnZlci9saW51eC1sb29uZ2FyY2gtbG93LmNjCgpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVy L01ha2VmaWxlLmluIGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCmluZGV4IDEyZTliMjc3N2FlLi5j MmE0OWZiZDAyZCAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyL01ha2VmaWxlLmluCisrKyBiL2dkYnNl cnZlci9NYWtlZmlsZS5pbgpAQCAtMTkzLDYgKzE5Myw3IEBAIFNGSUxFUyA9IFwKIAkkKHNyY2Rp cikvbGludXgtYXJtLWxvdy5jYyBcCiAJJChzcmNkaXIpL2xpbnV4LWlhNjQtbG93LmNjIFwKIAkk KHNyY2RpcikvbGludXgtbG93LmNjIFwKKwkkKHNyY2RpcikvbGludXgtbG9vbmdhcmNoLWxvdy5j YyBcCiAJJChzcmNkaXIpL2xpbnV4LW02OGstbG93LmNjIFwKIAkkKHNyY2RpcikvbGludXgtbWlw cy1sb3cuY2MgXAogCSQoc3JjZGlyKS9saW51eC1uaW9zMi1sb3cuY2MgXApAQCAtMjI2LDYgKzIy Nyw3IEBAIFNGSUxFUyA9IFwKIAkkKHNyY2RpcikvLi4vZ2RiL2FyY2gvYXJtLmMgXAogCSQoc3Jj ZGlyKS8uLi9nZGIvYXJjaC9hcm0tZ2V0LW5leHQtcGNzLmMgXAogCSQoc3JjZGlyKS8uLi9nZGIv YXJjaC9hcm0tbGludXguYyBcCisJJChzcmNkaXIpLy4uL2dkYi9hcmNoL2xvb25nYXJjaC5jIFwK IAkkKHNyY2RpcikvLi4vZ2RiL2FyY2gvcHBjLWxpbnV4LWNvbW1vbi5jIFwKIAkkKHNyY2Rpcikv Li4vZ2RiL2FyY2gvcmlzY3YuYyBcCiAJJChzcmNkaXIpLy4uL2dkYi9uYXQvYWFyY2g2NC1tdGUt bGludXgtcHRyYWNlLmMgXApkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyL2NvbmZpZ3VyZS5zcnYgYi9n ZGJzZXJ2ZXIvY29uZmlndXJlLnNydgppbmRleCA5NzFmNTM3YmZmYS4uMjg4MWQ4NWU0ZDcgMTAw NjQ0Ci0tLSBhL2dkYnNlcnZlci9jb25maWd1cmUuc3J2CisrKyBiL2dkYnNlcnZlci9jb25maWd1 cmUuc3J2CkBAIC0zODEsNiArMzgxLDIxIEBAIGNhc2UgIiR7Z2Ric2VydmVyX2hvc3R9IiBpbgog CQkJc3J2X2xpbnV4X3JlZ3NldHM9eWVzCiAJCQlzcnZfbGludXhfdGhyZWFkX2RiPXllcwogCQkJ OzsKKyAgbG9vbmdhcmNoKi1saW51eCopCXNydl90Z3RvYmo9IiRzcnZfbGludXhfb2JqIGxpbnV4 LWxvb25nYXJjaC1sb3cubyIKKwkJCXNydl90Z3RvYmo9IiR7c3J2X3RndG9ian0gYXJjaC9sb29u Z2FyY2gubyIKKwkJCXNydl90Z3RvYmo9IiR7c3J2X3RndG9ian0gYXJjaC9sb29uZ2FyY2gtbGlu dXgtbmF0Lm8iCisJCQlzcnZfeG1sZmlsZXM9Imxvb25nYXJjaC9iYXNlMzIueG1sIgorCQkJc3J2 X3htbGZpbGVzPSIke3Nydl94bWxmaWxlc30gbG9vbmdhcmNoL2Jhc2U2NC54bWwiCisJCQlzcnZf eG1sZmlsZXM9IiR7c3J2X3htbGZpbGVzfSBsb29uZ2FyY2gvZnB1MzIueG1sIgorCQkJc3J2X3ht bGZpbGVzPSIke3Nydl94bWxmaWxlc30gbG9vbmdhcmNoL2ZwdTY0LnhtbCIKKwkJCXNydl94bWxm aWxlcz0iJHtzcnZfeG1sZmlsZXN9IGxvb25nYXJjaC9sYnQzMi54bWwiCisJCQlzcnZfeG1sZmls ZXM9IiR7c3J2X3htbGZpbGVzfSBsb29uZ2FyY2gvbGJ0NjQueG1sIgorCQkJc3J2X3htbGZpbGVz PSIke3Nydl94bWxmaWxlc30gbG9vbmdhcmNoL2xzeC54bWwiCisJCQlzcnZfeG1sZmlsZXM9IiR7 c3J2X3htbGZpbGVzfSBsb29uZ2FyY2gvbGFzeC54bWwiCisJCQlzcnZfbGludXhfcmVnc2V0cz15 ZXMKKwkJCXNydl9saW51eF91c3JyZWdzPXllcworCQkJc3J2X2xpbnV4X3RocmVhZF9kYj15ZXMK KwkJCTs7CiAgICopCiAJCQkjIFdobyBhcmUgeW91PwogCQkJVU5TVVBQT1JURUQ9MQpkaWZmIC0t Z2l0IGEvZ2Ric2VydmVyL2xpbnV4LWxvb25nYXJjaC1sb3cuY2MgYi9nZGJzZXJ2ZXIvbGludXgt bG9vbmdhcmNoLWxvdy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NjdmMWRlMTkwNzQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGJzZXJ2ZXIvbGludXgtbG9vbmdhcmNo LWxvdy5jYwpAQCAtMCwwICsxLDI5MiBAQAorLyogQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisK KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlICJzZXJ2ZXIuaCIKKyNp bmNsdWRlICJsaW51eC1sb3cuaCIKKworI2luY2x1ZGUgIm5hdC9nZGJfcHRyYWNlLmgiCisKKyNp bmNsdWRlICJnZGJfcHJvY19zZXJ2aWNlLmgiCisjaW5jbHVkZSAiYXJjaC9sb29uZ2FyY2guaCIK KyNpbmNsdWRlICJhcmNoL2xvb25nYXJjaC1saW51eC1uYXQuaCIKKyNpbmNsdWRlICJlbGYvY29t bW9uLmgiCisjaW5jbHVkZSAidGRlc2MuaCIKKworY2xhc3MgbG9vbmdhcmNoX3RhcmdldCA6IHB1 YmxpYyBsaW51eF9wcm9jZXNzX3RhcmdldAoreworcHVibGljOgorICBjb25zdCByZWdzX2luZm8g KmdldF9yZWdzX2luZm8gKCkgb3ZlcnJpZGU7CisKKyAgY29uc3QgZ2RiX2J5dGUgKnN3X2JyZWFr cG9pbnRfZnJvbV9raW5kIChpbnQga2luZCwgaW50ICpzaXplKSBvdmVycmlkZTsKKworcHJvdGVj dGVkOgorICB2b2lkIGxvd19hcmNoX3NldHVwICgpIG92ZXJyaWRlOworCisgIGJvb2wgbG93X2Nh bm5vdF9mZXRjaF9yZWdpc3RlciAoaW50IHJlZ25vKSBvdmVycmlkZTsKKworICBib29sIGxvd19j YW5ub3Rfc3RvcmVfcmVnaXN0ZXIgKGludCByZWdubykgb3ZlcnJpZGU7CisKKyAgYm9vbCBsb3df ZmV0Y2hfcmVnaXN0ZXIgKHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ25vKSBvdmVycmlkZTsK KworICBib29sIGxvd19zdXBwb3J0c19icmVha3BvaW50cyAoKSBvdmVycmlkZTsKKworICBDT1JF X0FERFIgbG93X2dldF9wYyAocmVnY2FjaGUgKnJlZ2NhY2hlKSBvdmVycmlkZTsKKworICB2b2lk IGxvd19zZXRfcGMgKHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIG5ld3BjKSBvdmVycmlk ZTsKKworICBib29sIGxvd19icmVha3BvaW50X2F0IChDT1JFX0FERFIgcGMpIG92ZXJyaWRlOwor fTsKKworc3RhdGljIGxvb25nYXJjaF90YXJnZXQgdGhlX2xvb25nYXJjaF90YXJnZXQ7CisKK3N0 YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbG9vbmdhcmNoX2JyZWFrcG9pbnQgPSAweDAwMmEwMDA1 OworI2RlZmluZSBsb29uZ2FyY2hfYnJlYWtwb2ludF9sZW4gNAorCit2b2lkCitsb29uZ2FyY2hf dGFyZ2V0Ojpsb3dfYXJjaF9zZXR1cCAoKQoreworICBpbnQgcGlkID0gbHdwaWRfb2YgKGN1cnJl bnRfdGhyZWFkKTsKKyAgc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzYyA9IGxvb25nYXJjaF9saW51 eF9yZWFkX2Rlc2NyaXB0aW9uX3J1bnRpbWUgKHBpZCk7CisgIGluaXRfdGFyZ2V0X2Rlc2MgKHRk ZXNjLCBsb29uZ2FyY2hfZXhwZWRpdGVfcmVncyk7CisgIGN1cnJlbnRfcHJvY2VzcyAoKS0+dGRl c2MgPSB0ZGVzYzsKK30KKworYm9vbAorbG9vbmdhcmNoX3RhcmdldDo6bG93X2Nhbm5vdF9mZXRj aF9yZWdpc3RlciAoaW50IHJlZ25vKQoreworICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wKK2xv b25nYXJjaF90YXJnZXQ6Omxvd19jYW5ub3Rfc3RvcmVfcmVnaXN0ZXIgKGludCByZWdubykKK3sK KyAgcmV0dXJuIGZhbHNlOworfQorCitib29sCitsb29uZ2FyY2hfdGFyZ2V0Ojpsb3dfZmV0Y2hf cmVnaXN0ZXIgKHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ25vKQoreworICBjb25zdCBzdHJ1 Y3QgdGFyZ2V0X2Rlc2MgKnRkZXNjID0gY3VycmVudF9wcm9jZXNzICgpLT50ZGVzYzsKKworICBp ZiAoZmluZF9yZWdubyAodGRlc2MsICJyMCIpID09IHJlZ25vKQorICAgIHsKKyAgICAgIHN1cHBs eV9yZWdpc3Rlcl96ZXJvZWQgKHJlZ2NhY2hlLCByZWdubyk7CisgICAgICByZXR1cm4gdHJ1ZTsK KyAgICB9CisKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sCitsb29uZ2FyY2hfdGFyZ2V0Ojps b3dfc3VwcG9ydHNfYnJlYWtwb2ludHMgKCkKK3sKKyAgcmV0dXJuIHRydWU7Cit9CisKK0NPUkVf QUREUgorbG9vbmdhcmNoX3RhcmdldDo6bG93X2dldF9wYyAocmVnY2FjaGUgKnJlZ2NhY2hlKQor eworICBpbnQgcmVnbm8gPSBmaW5kX3JlZ25vIChyZWdjYWNoZS0+dGRlc2MsICJwYyIpOworICBp ZiAocmVnaXN0ZXJfc2l6ZSAocmVnY2FjaGUtPnRkZXNjLCByZWdubykgPT0gNCkKKyAgICB7Cisg ICAgICBpbnQzMl90IHBjOworICAgICAgY29sbGVjdF9yZWdpc3RlciAocmVnY2FjaGUsIHJlZ25v LCAmcGMpOworICAgICAgcmV0dXJuIHBjOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGlu dDY0X3QgcGM7CisgICAgICBjb2xsZWN0X3JlZ2lzdGVyIChyZWdjYWNoZSwgcmVnbm8sICZwYyk7 CisgICAgICByZXR1cm4gcGM7CisgICAgfQorfQorCit2b2lkCitsb29uZ2FyY2hfdGFyZ2V0Ojps b3dfc2V0X3BjIChyZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVfQUREUiBwYykKK3sKKyAgc3VwcGx5 X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAicGMiLCAmcGMpOworfQorCitjb25zdCBnZGJf Ynl0ZSAqCitsb29uZ2FyY2hfdGFyZ2V0Ojpzd19icmVha3BvaW50X2Zyb21fa2luZCAoaW50IGtp bmQsIGludCAqc2l6ZSkKK3sKKyAgKnNpemUgPSBsb29uZ2FyY2hfYnJlYWtwb2ludF9sZW47Cisg IHJldHVybiAoY29uc3QgZ2RiX2J5dGUgKikgJmxvb25nYXJjaF9icmVha3BvaW50OworfQorCiti b29sCitsb29uZ2FyY2hfdGFyZ2V0Ojpsb3dfYnJlYWtwb2ludF9hdCAoQ09SRV9BRERSIHdoZXJl KQoreworICB1aW50MzJfdCBpbnNuOworCisgIHJlYWRfbWVtb3J5ICh3aGVyZSwgKHVuc2lnbmVk IGNoYXIgKikgJmluc24sIHNpemVvZiAoaW5zbikpOworICBpZiAoaW5zbiA9PSBsb29uZ2FyY2hf YnJlYWtwb2ludCkKKyAgICByZXR1cm4gdHJ1ZTsKKworICByZXR1cm4gZmFsc2U7Cit9CisKK3N0 YXRpYyB2b2lkCitsb29uZ2FyY2hfZmlsbF9ncmVnc2V0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLCB2b2lkICpidWYpCit7CisgIGludCBpLCByID0gZmluZF9yZWdubyAocmVnY2FjaGUtPnRk ZXNjLCAicjAiKTsKKworICBmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykKKyAgICBjb2xsZWN0X3Jl Z2lzdGVyIChyZWdjYWNoZSwgciArIGksICh1aW50NjRfdCAqKSBidWYgKyBpKTsKKyAgY29sbGVj dF9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgInBjIiwgKHVpbnQ2NF90ICopIGJ1ZiArIDMy KTsKK30KKworc3RhdGljIHZvaWQKK2xvb25nYXJjaF9zdG9yZV9ncmVnc2V0IChzdHJ1Y3QgcmVn Y2FjaGUgKnJlZ2NhY2hlLCBjb25zdCB2b2lkICpidWYpCit7CisgIGludCBpLCByID0gZmluZF9y ZWdubyAocmVnY2FjaGUtPnRkZXNjLCAicjAiKTsKKworICBzdXBwbHlfcmVnaXN0ZXJfemVyb2Vk IChyZWdjYWNoZSwgcik7CisgIGZvciAoaSA9IDE7IGkgPCAzMjsgaSsrKQorICAgIHN1cHBseV9y ZWdpc3RlciAocmVnY2FjaGUsIHIgKyBpLCAoY29uc3QgdWludDY0X3QgKikgYnVmICsgaSk7Cisg IHN1cHBseV9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgInBjIiwgKGNvbnN0IHVpbnQ2NF90 ICopIGJ1ZiArIDMyKTsKK30KKworc3RhdGljIHZvaWQKK2xvb25nYXJjaF9maWxsX2ZwcmVnc2V0 IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCB2b2lkICpidWYpCit7CisgIGludCBpLCBmLCBm Y2M7CisgIGYgPSBmaW5kX3JlZ25vIChyZWdjYWNoZS0+dGRlc2MsICJmMCIpOworICBmY2MgPSBm aW5kX3JlZ25vIChyZWdjYWNoZS0+dGRlc2MsICJmY2MwIik7CisgIHVpbnQ4X3QgKmZjY3MgPSAo dWludDhfdCAqKSAoKHVpbnQ2NF90ICopIGJ1ZiArIDMyKTsKKworICBmb3IgKGkgPSAwOyBpIDwg MzI7IGkrKykKKyAgICBjb2xsZWN0X3JlZ2lzdGVyIChyZWdjYWNoZSwgZiArIGksICh1aW50NjRf dCAqKSBidWYgKyBpKTsKKyAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykKKyAgICBjb2xsZWN0X3Jl Z2lzdGVyIChyZWdjYWNoZSwgZmNjICsgaSwgZmNjcyArIGkpOworICBjb2xsZWN0X3JlZ2lzdGVy X2J5X25hbWUgKHJlZ2NhY2hlLCAiZmNzciIsICh1aW50NjRfdCAqKSBidWYgKyAzMyk7Cit9CisK K3N0YXRpYyB2b2lkCitsb29uZ2FyY2hfc3RvcmVfZnByZWdzZXQgKHN0cnVjdCByZWdjYWNoZSAq cmVnY2FjaGUsIGNvbnN0IHZvaWQgKmJ1ZikKK3sKKyAgaW50IGksIGYsIGZjYzsKKyAgZiA9IGZp bmRfcmVnbm8gKHJlZ2NhY2hlLT50ZGVzYywgImYwIik7CisgIGZjYyA9IGZpbmRfcmVnbm8gKHJl Z2NhY2hlLT50ZGVzYywgImZjYzAiKTsKKyAgY29uc3QgdWludDhfdCAqZmNjcyA9IChjb25zdCB1 aW50OF90ICopICgoY29uc3QgdWludDY0X3QgKikgYnVmICsgMzIpOworCisgIGZvciAoaSA9IDA7 IGkgPCAzMjsgaSsrKQorICAgIHN1cHBseV9yZWdpc3RlciAocmVnY2FjaGUsIGYgKyBpLCAoY29u c3QgdWludDY0X3QgKikgYnVmICsgaSk7CisgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspCisgICAg c3VwcGx5X3JlZ2lzdGVyIChyZWdjYWNoZSwgZmNjICsgaSwgZmNjcyArIGkpOworICBzdXBwbHlf cmVnaXN0ZXJfYnlfbmFtZSAocmVnY2FjaGUsICJmY3NyIiwgKGNvbnN0IHVpbnQ2NF90ICopIGJ1 ZiArIDMzKTsKK30KKworc3RhdGljIHZvaWQKK2xvb25nYXJjaF9maWxsX2xidHJlZ3NldCAoc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgdm9pZCAqYnVmKQoreworICBpbnQgaSwgc2NyID0gZmlu ZF9yZWdubyAocmVnY2FjaGUtPnRkZXNjLCAic2NyMCIpOworCisgIGZvciAoaSA9IDA7IGkgPCA0 OyBpKyspCisgICAgY29sbGVjdF9yZWdpc3RlciAocmVnY2FjaGUsIHNjciArIGksICh1aW50NjRf dCAqKSBidWYgKyBpKTsKKyAgY29sbGVjdF9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgIkVG TEFHIiwgKHVpbnQ2NF90ICopIGJ1ZiArIDQpOworICBjb2xsZWN0X3JlZ2lzdGVyX2J5X25hbWUg KHJlZ2NhY2hlLCAieDg2X3RvcCIsICh1aW50MzJfdCAqKSBidWYgKyA5KTsKK30KKworc3RhdGlj IHZvaWQKK2xvb25nYXJjaF9zdG9yZV9sYnRyZWdzZXQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUsIGNvbnN0IHZvaWQgKmJ1ZikKK3sKKyAgaW50IGksIHNjciA9IGZpbmRfcmVnbm8gKHJlZ2Nh Y2hlLT50ZGVzYywgInNjcjAiKTsKKworICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQorICAgIHN1 cHBseV9yZWdpc3RlciAocmVnY2FjaGUsIHNjciArIGksIChjb25zdCB1aW50NjRfdCAqKSBidWYg KyBpKTsKKyAgc3VwcGx5X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAiRUZMQUciLCAoY29u c3QgdWludDY0X3QgKikgYnVmICsgNCk7CisgIHN1cHBseV9yZWdpc3Rlcl9ieV9uYW1lIChyZWdj YWNoZSwgIng4Nl90b3AiLCAoY29uc3QgdWludDMyX3QgKikgYnVmICsgOSk7Cit9CisKK3N0YXRp YyB2b2lkCitsb29uZ2FyY2hfZmlsbF9sc3hyZWdzZXQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUsIHZvaWQgKmJ1ZikKK3sKKyAgaW50IGksIHZyID0gZmluZF9yZWdubyAocmVnY2FjaGUtPnRk ZXNjLCAidnIwIik7CisKKyAgZm9yIChpID0gMDsgaSA8IDMyOyBpKyspCisgICAgY29sbGVjdF9y ZWdpc3RlciAocmVnY2FjaGUsIHZyICsgaSwgKHVpbnQ2NF90ICopIGJ1ZiArIDIgKiBpKTsKK30K Kworc3RhdGljIHZvaWQKK2xvb25nYXJjaF9zdG9yZV9sc3hyZWdzZXQgKHN0cnVjdCByZWdjYWNo ZSAqcmVnY2FjaGUsIGNvbnN0IHZvaWQgKmJ1ZikKK3sKKyAgaW50IGksIHZyID0gZmluZF9yZWdu byAocmVnY2FjaGUtPnRkZXNjLCAidnIwIik7CisKKyAgZm9yIChpID0gMTsgaSA8IDMyOyBpKysp CisgICAgc3VwcGx5X3JlZ2lzdGVyIChyZWdjYWNoZSwgdnIgKyBpLCAoY29uc3QgdWludDY0X3Qg KikgYnVmICsgMiAqIGkpOworfQorCitzdGF0aWMgdm9pZAorbG9vbmdhcmNoX2ZpbGxfbGFzeHJl Z3NldCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgdm9pZCAqYnVmKQoreworICBpbnQgaSwg eHIgPSBmaW5kX3JlZ25vIChyZWdjYWNoZS0+dGRlc2MsICJ4cjAiKTsKKworICBmb3IgKGkgPSAw OyBpIDwgMzI7IGkrKykKKyAgICBjb2xsZWN0X3JlZ2lzdGVyIChyZWdjYWNoZSwgeHIgKyBpLCAo dWludDY0X3QgKikgYnVmICsgNCAqIGkpOworfQorCitzdGF0aWMgdm9pZAorbG9vbmdhcmNoX3N0 b3JlX2xhc3hyZWdzZXQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGNvbnN0IHZvaWQgKmJ1 ZikKK3sKKyAgaW50IGksIHhyID0gZmluZF9yZWdubyAocmVnY2FjaGUtPnRkZXNjLCAieHIwIik7 CisKKyAgZm9yIChpID0gMTsgaSA8IDMyOyBpKyspCisgICAgc3VwcGx5X3JlZ2lzdGVyIChyZWdj YWNoZSwgeHIgKyBpLCAoY29uc3QgdWludDY0X3QgKikgYnVmICsgNCAqIGkpOworfQorCitzdGF0 aWMgc3RydWN0IHJlZ3NldF9pbmZvIGxvb25nYXJjaF9yZWdzZXRzW10gPQoreworICB7IFBUUkFD RV9HRVRSRUdTRVQsIFBUUkFDRV9TRVRSRUdTRVQsIE5UX1BSU1RBVFVTLCAzMyAqIDgsIEdFTkVS QUxfUkVHUywKKyAgICBsb29uZ2FyY2hfZmlsbF9ncmVnc2V0LCBsb29uZ2FyY2hfc3RvcmVfZ3Jl Z3NldCB9LAorICB7IFBUUkFDRV9HRVRSRUdTRVQsIFBUUkFDRV9TRVRSRUdTRVQsIE5UX0ZQUkVH U0VULCAzNCAqIDgsIEZQX1JFR1MsCisgICAgbG9vbmdhcmNoX2ZpbGxfZnByZWdzZXQsIGxvb25n YXJjaF9zdG9yZV9mcHJlZ3NldCB9LAorICB7IFBUUkFDRV9HRVRSRUdTRVQsIFBUUkFDRV9TRVRS RUdTRVQsIE5UX0xBUkNIX0xCVCwgNSAqIDgsIEVYVEVOREVEX1JFR1MsCisgICAgbG9vbmdhcmNo X2ZpbGxfbGJ0cmVnc2V0LCBsb29uZ2FyY2hfc3RvcmVfbGJ0cmVnc2V0IH0sCisgIHsgUFRSQUNF X0dFVFJFR1NFVCwgUFRSQUNFX1NFVFJFR1NFVCwgTlRfTEFSQ0hfTFNYLCAzMiAqIDE2LCBFWFRF TkRFRF9SRUdTLAorICAgIGxvb25nYXJjaF9maWxsX2xzeHJlZ3NldCwgbG9vbmdhcmNoX3N0b3Jl X2xzeHJlZ3NldCB9LAorICB7IFBUUkFDRV9HRVRSRUdTRVQsIFBUUkFDRV9TRVRSRUdTRVQsIE5U X0xBUkNIX0xBU1gsIDMyICogMzIsIEVYVEVOREVEX1JFR1MsCisgICAgbG9vbmdhcmNoX2ZpbGxf bGFzeHJlZ3NldCwgbG9vbmdhcmNoX3N0b3JlX2xhc3hyZWdzZXQgfSwKKyAgTlVMTF9SRUdTRVQK K307CisKK3N0YXRpYyBzdHJ1Y3QgcmVnc2V0c19pbmZvIGxvb25nYXJjaF9yZWdzZXRzX2luZm8g PQoreworICBsb29uZ2FyY2hfcmVnc2V0cywgCS8qIHJlZ3NldHMuICAqLworICAwLAkJIAkvKiBu dW1fcmVnc2V0cy4gICovCisgIE5VTEwsCSAgICAgIAkJLyogZGlzYWJsZWRfcmVnc2V0cy4gICov Cit9OworCitzdGF0aWMgcmVnc19pbmZvIGxvb25nYXJjaF9yZWdzX2luZm8gPSB7IE5VTEwsIC8q IHJlZ3NldF9iaXRtYXAuICAqLworCQkJCQkgTlVMTCwgJmxvb25nYXJjaF9yZWdzZXRzX2luZm8g fTsKKworY29uc3QgcmVnc19pbmZvICoKK2xvb25nYXJjaF90YXJnZXQ6OmdldF9yZWdzX2luZm8g KCkKK3sKKyAgcmV0dXJuICZsb29uZ2FyY2hfcmVnc19pbmZvOworfQorCisvKiBUaGUgbGludXgg dGFyZ2V0IG9wcyBvYmplY3QuICAqLworCitsaW51eF9wcm9jZXNzX3RhcmdldCAqdGhlX2xpbnV4 X3RhcmdldCA9ICZ0aGVfbG9vbmdhcmNoX3RhcmdldDsKKwordm9pZCBpbml0aWFsaXplX2xvd19h cmNoICgpOwordm9pZAoraW5pdGlhbGl6ZV9sb3dfYXJjaCAoKQoreworICBpbml0aWFsaXplX3Jl Z3NldHNfaW5mbyAoJmxvb25nYXJjaF9yZWdzZXRzX2luZm8pOworfQotLSAKMi4yNy4wCgo= --000000000000d1790e05c9812072--