From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DA018C433DB for ; Fri, 5 Feb 2021 17:14:38 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3645064F2A for ; Fri, 5 Feb 2021 17:14:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3645064F2A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40252 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l84gm-0006L2-WE for qemu-devel@archiver.kernel.org; Fri, 05 Feb 2021 12:14:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42830) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l84HC-0002na-0B for qemu-devel@nongnu.org; Fri, 05 Feb 2021 11:48:10 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:39209) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1l84H6-00070I-PR for qemu-devel@nongnu.org; Fri, 05 Feb 2021 11:48:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1612543677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wsadCRgQAS19sXbdE2GHuZbzynDcOgKtaIzOYAa5sZY=; b=KiXlNIxEVPB1cUBE0AQNKOWH9Cx5G+LrEW3Udbk3MB3q7YAosH06tIhFydkzVtjEDPjG4U oE69hOIO/t65QJPgaP8ZPClOEFkarTCrAJ1LRuRYSZ+wATU0U08D8q61j6Rg6s/Nr8XRWk 64LcrudWiCKRFisqaW+7bZdsLWPzcwM= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-544-MKBC4NmlMpiYyCeps73tyA-1; Fri, 05 Feb 2021 11:47:55 -0500 X-MC-Unique: MKBC4NmlMpiYyCeps73tyA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3E460804038; Fri, 5 Feb 2021 16:47:54 +0000 (UTC) Received: from localhost (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id A2FC0722F5; Fri, 5 Feb 2021 16:47:44 +0000 (UTC) From: Stefan Hajnoczi To: Peter Maydell , qemu-devel@nongnu.org Subject: [PULL v3 15/27] multi-process: define MPQemuMsg format and transmission functions Date: Fri, 5 Feb 2021 16:44:47 +0000 Message-Id: <20210205164459.432714-16-stefanha@redhat.com> In-Reply-To: <20210205164459.432714-1-stefanha@redhat.com> References: <20210205164459.432714-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=stefanha@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=63.128.21.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.352, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , John G Johnson , Thomas Huth , Jagannathan Raman , Stefan Hajnoczi , qemu-block@nongnu.org, "Michael S. Tsirkin" , "Denis V. Lunev" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Elena Ufimtseva , Wainer dos Santos Moschetta , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" RnJvbTogRWxlbmEgVWZpbXRzZXZhIDxlbGVuYS51ZmltdHNldmFAb3JhY2xlLmNvbT4KCkRlZmlu ZXMgTVBRZW11TXNnLCB3aGljaCBpcyB0aGUgbWVzc2FnZSB0aGF0IGlzIHNlbnQgdG8gdGhlIHJl bW90ZQpwcm9jZXNzLiBUaGlzIG1lc3NhZ2UgaXMgc2VudCBvdmVyIFFJT0NoYW5uZWwgYW5kIGlz IHVzZWQgdG8KY29tbWFuZCB0aGUgcmVtb3RlIHByb2Nlc3MgdG8gcGVyZm9ybSB2YXJpb3VzIHRh c2tzLgpEZWZpbmUgdHJhbnNtaXNzaW9uIGZ1bmN0aW9ucyB1c2VkIGJ5IHByb3h5IGFuZCBieSBy ZW1vdGUuCgpTaWduZWQtb2ZmLWJ5OiBKYWdhbm5hdGhhbiBSYW1hbiA8amFnLnJhbWFuQG9yYWNs ZS5jb20+ClNpZ25lZC1vZmYtYnk6IEpvaG4gRyBKb2huc29uIDxqb2huLmcuam9obnNvbkBvcmFj bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBFbGVuYSBVZmltdHNldmEgPGVsZW5hLnVmaW10c2V2YUBv cmFjbGUuY29tPgpSZXZpZXdlZC1ieTogU3RlZmFuIEhham5vY3ppIDxzdGVmYW5oYUByZWRoYXQu Y29tPgpNZXNzYWdlLWlkOiA1NmNhOGJjZjk1MTk1YjJiMTk1YjA4ZjZiOTU2NWI2ZDc0MTBiY2U1 LjE2MTE5MzgzMTkuZ2l0LmphZy5yYW1hbkBvcmFjbGUuY29tCgpbUmVwbGFjZSBzdHJ1Y3QgaW92 ZWMgc2VuZFsyXSA9IHswfSB3aXRoIHt9IHRvIG1ha2UgY2xhbmcgaGFwcHkgYXMKc3VnZ2VzdGVk IGJ5IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4uCi0tU3RlZmFuXQoK U2lnbmVkLW9mZi1ieTogU3RlZmFuIEhham5vY3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPgotLS0K IE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogbWVzb24uYnVpbGQgICAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiBody9yZW1vdGUvdHJhY2UuaCAgICAgICAgICAgICAg IHwgICAxICsKIGluY2x1ZGUvaHcvcmVtb3RlL21wcWVtdS1saW5rLmggfCAgNjMgKysrKysrKysr KwogaW5jbHVkZS9zeXNlbXUvaW90aHJlYWQuaCAgICAgICB8ICAgNiArCiBody9yZW1vdGUvbXBx ZW11LWxpbmsuYyAgICAgICAgIHwgMjA1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBpb3RocmVhZC5jICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIGh3L3JlbW90ZS9tZXNv bi5idWlsZCAgICAgICAgICAgfCAgIDEgKwogaHcvcmVtb3RlL3RyYWNlLWV2ZW50cyAgICAgICAg ICB8ICAgNCArCiA5IGZpbGVzIGNoYW5nZWQsIDI4OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgaHcvcmVtb3RlL3RyYWNlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2h3 L3JlbW90ZS9tcHFlbXUtbGluay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaHcvcmVtb3RlL21wcWVt dS1saW5rLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBody9yZW1vdGUvdHJhY2UtZXZlbnRzCgpkaWZm IC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCA0NTk3OTQ1MmVkLi45NzEz N2Y2MTdiIDEwMDY0NAotLS0gYS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtMzIw NSw2ICszMjA1LDggQEAgRjogaHcvcGNpLWhvc3QvcmVtb3RlLmMKIEY6IGluY2x1ZGUvaHcvcGNp LWhvc3QvcmVtb3RlLmgKIEY6IGh3L3JlbW90ZS9tYWNoaW5lLmMKIEY6IGluY2x1ZGUvaHcvcmVt b3RlL21hY2hpbmUuaAorRjogaHcvcmVtb3RlL21wcWVtdS1saW5rLmMKK0Y6IGluY2x1ZGUvaHcv cmVtb3RlL21wcWVtdS1saW5rLmgKIAogQnVpbGQgYW5kIHRlc3QgYXV0b21hdGlvbgogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWls ZAppbmRleCA3YTcyODNhOTdkLi40MzIxNWM3NGUzIDEwMDY0NAotLS0gYS9tZXNvbi5idWlsZAor KysgYi9tZXNvbi5idWlsZApAQCAtMTgwMCw2ICsxODAwLDcgQEAgaWYgaGF2ZV9zeXN0ZW0KICAg ICAnbmV0JywKICAgICAnc29mdG1tdScsCiAgICAgJ3VpJywKKyAgICAnaHcvcmVtb3RlJywKICAg XQogZW5kaWYKIHRyYWNlX2V2ZW50c19zdWJkaXJzICs9IFsKZGlmZiAtLWdpdCBhL2h3L3JlbW90 ZS90cmFjZS5oIGIvaHcvcmVtb3RlL3RyYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uNWQ1ZTNhYzcyMAotLS0gL2Rldi9udWxsCisrKyBiL2h3L3JlbW90ZS90cmFj ZS5oCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICJ0cmFjZS90cmFjZS1od19yZW1vdGUuaCIKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvaHcvcmVtb3RlL21wcWVtdS1saW5rLmggYi9pbmNsdWRlL2h3L3Jl bW90ZS9tcHFlbXUtbGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LmNhYzY5OWNiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2h3L3JlbW90ZS9tcHFlbXUt bGluay5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb21tdW5pY2F0aW9uIGNoYW5uZWwgYmV0 d2VlbiBRRU1VIGFuZCByZW1vdGUgZGV2aWNlIHByb2Nlc3MKKyAqCisgKiBDb3B5cmlnaHQgwqkg MjAxOCwgMjAyMSBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLgorICoKKyAqIFRoaXMgd29y ayBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHUEwsIHZlcnNpb24gMiBv ciBsYXRlci4KKyAqIFNlZSB0aGUgQ09QWUlORyBmaWxlIGluIHRoZSB0b3AtbGV2ZWwgZGlyZWN0 b3J5LgorICoKKyAqLworCisjaWZuZGVmIE1QUUVNVV9MSU5LX0gKKyNkZWZpbmUgTVBRRU1VX0xJ TktfSAorCisjaW5jbHVkZSAicW9tL29iamVjdC5oIgorI2luY2x1ZGUgInFlbXUvdGhyZWFkLmgi CisjaW5jbHVkZSAiaW8vY2hhbm5lbC5oIgorCisjZGVmaW5lIFJFTU9URV9NQVhfRkRTIDgKKwor I2RlZmluZSBNUFFFTVVfTVNHX0hEUl9TSVpFIG9mZnNldG9mKE1QUWVtdU1zZywgZGF0YS51NjQp CisKKy8qKgorICogTVBRZW11Q21kOgorICoKKyAqIE1QUWVtdUNtZCBlbnVtIHR5cGUgdG8gc3Bl Y2lmeSB0aGUgY29tbWFuZCB0byBiZSBleGVjdXRlZCBvbiB0aGUgcmVtb3RlCisgKiBkZXZpY2Uu CisgKgorICogVGhpcyB1c2VzIGEgcHJpdmF0ZSBwcm90b2NvbCBiZXR3ZWVuIFFFTVUgYW5kIHRo ZSByZW1vdGUgcHJvY2Vzcy4gdmZpby11c2VyCisgKiBwcm90b2NvbCB3b3VsZCBzdXBlcnNlZGUg dGhpcyBpbiB0aGUgZnV0dXJlLgorICoKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBNUFFFTVVf Q01EX01BWCwKK30gTVBRZW11Q21kOworCisvKioKKyAqIE1QUWVtdU1zZzoKKyAqIEBjbWQ6IFRo ZSByZW1vdGUgY29tbWFuZAorICogQHNpemU6IFNpemUgb2YgdGhlIGRhdGEgdG8gYmUgc2hhcmVk CisgKiBAZGF0YTogU3RydWN0dXJlZCBkYXRhCisgKiBAZmRzOiBGaWxlIGRlc2NyaXB0b3JzIHRv IGJlIHNoYXJlZCB3aXRoIHJlbW90ZSBkZXZpY2UKKyAqCisgKiBNUFFlbXVNc2cgRm9ybWF0IG9m IHRoZSBtZXNzYWdlIHNlbnQgdG8gdGhlIHJlbW90ZSBkZXZpY2UgZnJvbSBRRU1VLgorICoKKyAq LwordHlwZWRlZiBzdHJ1Y3QgeworICAgIGludCBjbWQ7CisgICAgc2l6ZV90IHNpemU7CisKKyAg ICB1bmlvbiB7CisgICAgICAgIHVpbnQ2NF90IHU2NDsKKyAgICB9IGRhdGE7CisKKyAgICBpbnQg ZmRzW1JFTU9URV9NQVhfRkRTXTsKKyAgICBpbnQgbnVtX2ZkczsKK30gTVBRZW11TXNnOworCiti b29sIG1wcWVtdV9tc2dfc2VuZChNUFFlbXVNc2cgKm1zZywgUUlPQ2hhbm5lbCAqaW9jLCBFcnJv ciAqKmVycnApOworYm9vbCBtcHFlbXVfbXNnX3JlY3YoTVBRZW11TXNnICptc2csIFFJT0NoYW5u ZWwgKmlvYywgRXJyb3IgKiplcnJwKTsKKworYm9vbCBtcHFlbXVfbXNnX3ZhbGlkKE1QUWVtdU1z ZyAqbXNnKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL3N5c2VtdS9pb3RocmVhZC5o IGIvaW5jbHVkZS9zeXNlbXUvaW90aHJlYWQuaAppbmRleCAwYzUyODRkYmJjLi5mMTc3MTQyZjE2 IDEwMDY0NAotLS0gYS9pbmNsdWRlL3N5c2VtdS9pb3RocmVhZC5oCisrKyBiL2luY2x1ZGUvc3lz ZW11L2lvdGhyZWFkLmgKQEAgLTU3LDQgKzU3LDEwIEBAIElPVGhyZWFkICppb3RocmVhZF9jcmVh dGUoY29uc3QgY2hhciAqaWQsIEVycm9yICoqZXJycCk7CiB2b2lkIGlvdGhyZWFkX3N0b3AoSU9U aHJlYWQgKmlvdGhyZWFkKTsKIHZvaWQgaW90aHJlYWRfZGVzdHJveShJT1RocmVhZCAqaW90aHJl YWQpOwogCisvKgorICogUmV0dXJucyB0cnVlIGlmIGV4ZWN1dGluZyB3aXRoaW5nIElPVGhyZWFk IGNvbnRleHQsCisgKiBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wgcWVtdV9pbl9pb3RocmVh ZCh2b2lkKTsKKwogI2VuZGlmIC8qIElPVEhSRUFEX0ggKi8KZGlmZiAtLWdpdCBhL2h3L3JlbW90 ZS9tcHFlbXUtbGluay5jIGIvaHcvcmVtb3RlL21wcWVtdS1saW5rLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMGQxODk5ZmQ5NAotLS0gL2Rldi9udWxsCisrKyBiL2h3 L3JlbW90ZS9tcHFlbXUtbGluay5jCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICogQ29tbXVuaWNh dGlvbiBjaGFubmVsIGJldHdlZW4gUUVNVSBhbmQgcmVtb3RlIGRldmljZSBwcm9jZXNzCisgKgor ICogQ29weXJpZ2h0IMKpIDIwMTgsIDIwMjEgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4K KyAqCisgKiBUaGlzIHdvcmsgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R1BMLCB2ZXJzaW9uIDIgb3IgbGF0ZXIuCisgKiBTZWUgdGhlIENPUFlJTkcgZmlsZSBpbiB0aGUg dG9wLWxldmVsIGRpcmVjdG9yeS4KKyAqCisgKi8KKworI2luY2x1ZGUgInFlbXUvb3NkZXAuaCIK KyNpbmNsdWRlICJxZW11LWNvbW1vbi5oIgorCisjaW5jbHVkZSAicWVtdS9tb2R1bGUuaCIKKyNp bmNsdWRlICJody9yZW1vdGUvbXBxZW11LWxpbmsuaCIKKyNpbmNsdWRlICJxYXBpL2Vycm9yLmgi CisjaW5jbHVkZSAicWVtdS9pb3YuaCIKKyNpbmNsdWRlICJxZW11L2Vycm9yLXJlcG9ydC5oIgor I2luY2x1ZGUgInFlbXUvbWFpbi1sb29wLmgiCisjaW5jbHVkZSAiaW8vY2hhbm5lbC5oIgorI2lu Y2x1ZGUgInN5c2VtdS9pb3RocmVhZC5oIgorI2luY2x1ZGUgInRyYWNlLmgiCisKKy8qCisgKiBT ZW5kIG1lc3NhZ2Ugb3ZlciB0aGUgaW9jIFFJT0NoYW5uZWwuCisgKiBUaGlzIGZ1bmN0aW9uIGlz IHNhZmUgdG8gY2FsbCBmcm9tOgorICogLSBtYWluIGxvb3AgaW4gY28tcm91dGluZSBjb250ZXh0 LiBXaWxsIGJsb2NrIHRoZSBtYWluIGxvb3AgaWYgbm90IGluCisgKiAgIGNvLXJvdXRpbmUgY29u dGV4dDsKKyAqIC0gdkNQVSB0aHJlYWQgd2l0aCBubyBjby1yb3V0aW5lIGNvbnRleHQgYW5kIGlm IHRoZSBjaGFubmVsIGlzIG5vdCBwYXJ0CisgKiAgIG9mIHRoZSBtYWluIGxvb3AgaGFuZGxpbmc7 CisgKiAtIElPVGhyZWFkIHdpdGhpbiBjby1yb3V0aW5lIGNvbnRleHQsIG91dHNpZGUgb2YgY28t cm91dGluZSBjb250ZXh0CisgKiAgIHdpbGwgYmxvY2sgSU9UaHJlYWQ7CisgKiBSZXR1cm5zIHRy dWUgaWYgbm8gZXJyb3JzIHdlcmUgZW5jb3VudGVyZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAqLwor Ym9vbCBtcHFlbXVfbXNnX3NlbmQoTVBRZW11TXNnICptc2csIFFJT0NoYW5uZWwgKmlvYywgRXJy b3IgKiplcnJwKQoreworICAgIEVSUlBfR1VBUkQoKTsKKyAgICBib29sIGlvbG9jayA9IHFlbXVf bXV0ZXhfaW90aHJlYWRfbG9ja2VkKCk7CisgICAgYm9vbCBpb3RocmVhZCA9IHFlbXVfaW5faW90 aHJlYWQoKTsKKyAgICBzdHJ1Y3QgaW92ZWMgc2VuZFsyXSA9IHt9OworICAgIGludCAqZmRzID0g TlVMTDsKKyAgICBzaXplX3QgbmZkcyA9IDA7CisgICAgYm9vbCByZXQgPSBmYWxzZTsKKworICAg IHNlbmRbMF0uaW92X2Jhc2UgPSBtc2c7CisgICAgc2VuZFswXS5pb3ZfbGVuID0gTVBRRU1VX01T R19IRFJfU0laRTsKKworICAgIHNlbmRbMV0uaW92X2Jhc2UgPSAodm9pZCAqKSZtc2ctPmRhdGE7 CisgICAgc2VuZFsxXS5pb3ZfbGVuID0gbXNnLT5zaXplOworCisgICAgaWYgKG1zZy0+bnVtX2Zk cykgeworICAgICAgICBuZmRzID0gbXNnLT5udW1fZmRzOworICAgICAgICBmZHMgPSBtc2ctPmZk czsKKyAgICB9CisKKyAgICAvKgorICAgICAqIERvbnQgdXNlIGluIElPVGhyZWFkIG91dCBvZiBj by1yb3V0aW5lIGNvbnRleHQgYXMKKyAgICAgKiBpdCB3aWxsIGJsb2NrIElPVGhyZWFkLgorICAg ICAqLworICAgIGFzc2VydChxZW11X2luX2Nvcm91dGluZSgpIHx8ICFpb3RocmVhZCk7CisKKyAg ICAvKgorICAgICAqIFNraXAgdW5sb2NraW5nL2xvY2tpbmcgaW90aHJlYWQgbG9jayB3aGVuIHRo ZSBJT1RocmVhZCBpcyBydW5uaW5nCisgICAgICogaW4gY28tcm91dGluZSBjb250ZXh0LiBDby1y b3V0aW5lIGNvbnRleHQgaXMgYXNzZXJ0ZWQgYWJvdmUKKyAgICAgKiBmb3IgSU9UaHJlYWQgY2Fz ZS4KKyAgICAgKiBBbHNvIHNraXAgbG9jayBoYW5kbGluZyB3aGlsZSBpbiBhIGNvLXJvdXRpbmUg aW4gdGhlIG1haW4gY29udGV4dC4KKyAgICAgKi8KKyAgICBpZiAoaW9sb2NrICYmICFpb3RocmVh ZCAmJiAhcWVtdV9pbl9jb3JvdXRpbmUoKSkgeworICAgICAgICBxZW11X211dGV4X3VubG9ja19p b3RocmVhZCgpOworICAgIH0KKworICAgIGlmICghcWlvX2NoYW5uZWxfd3JpdGV2X2Z1bGxfYWxs KGlvYywgc2VuZCwgR19OX0VMRU1FTlRTKHNlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmRzLCBuZmRzLCBlcnJwKSkgeworICAgICAgICByZXQgPSB0cnVlOworICAg IH0gZWxzZSB7CisgICAgICAgIHRyYWNlX21wcWVtdV9zZW5kX2lvX2Vycm9yKG1zZy0+Y21kLCBt c2ctPnNpemUsIG5mZHMpOworICAgIH0KKworICAgIGlmIChpb2xvY2sgJiYgIWlvdGhyZWFkICYm ICFxZW11X2luX2Nvcm91dGluZSgpKSB7CisgICAgICAgIC8qIFNlZSBhYm92ZSBjb21tZW50IHdo eSBza2lwIGxvY2tpbmcgaGVyZS4gKi8KKyAgICAgICAgcWVtdV9tdXRleF9sb2NrX2lvdGhyZWFk KCk7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFJlYWQgbWVzc2FnZSBm cm9tIHRoZSBpb2MgUUlPQ2hhbm5lbC4KKyAqIFRoaXMgZnVuY3Rpb24gaXMgc2FmZSB0byBjYWxs IGZyb206CisgKiAtIEZyb20gbWFpbiBsb29wIGluIGNvLXJvdXRpbmUgY29udGV4dC4gV2lsbCBi bG9jayB0aGUgbWFpbiBsb29wIGlmIG5vdCBpbgorICogICBjby1yb3V0aW5lIGNvbnRleHQ7Cisg KiAtIEZyb20gdkNQVSB0aHJlYWQgd2l0aCBubyBjby1yb3V0aW5lIGNvbnRleHQgYW5kIGlmIHRo ZSBjaGFubmVsIGlzIG5vdCBwYXJ0CisgKiAgIG9mIHRoZSBtYWluIGxvb3AgaGFuZGxpbmc7Cisg KiAtIEZyb20gSU9UaHJlYWQgd2l0aGluIGNvLXJvdXRpbmUgY29udGV4dCwgb3V0c2lkZSBvZiBj by1yb3V0aW5lIGNvbnRleHQKKyAqICAgd2lsbCBibG9jayBJT1RocmVhZDsKKyAqLworc3RhdGlj IHNzaXplX3QgbXBxZW11X3JlYWQoUUlPQ2hhbm5lbCAqaW9jLCB2b2lkICpidWYsIHNpemVfdCBs ZW4sIGludCAqKmZkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbmZkcywg RXJyb3IgKiplcnJwKQoreworICAgIEVSUlBfR1VBUkQoKTsKKyAgICBzdHJ1Y3QgaW92ZWMgaW92 ID0geyAuaW92X2Jhc2UgPSBidWYsIC5pb3ZfbGVuID0gbGVuIH07CisgICAgYm9vbCBpb2xvY2sg PSBxZW11X211dGV4X2lvdGhyZWFkX2xvY2tlZCgpOworICAgIGJvb2wgaW90aHJlYWQgPSBxZW11 X2luX2lvdGhyZWFkKCk7CisgICAgaW50IHJldCA9IC0xOworCisgICAgLyoKKyAgICAgKiBEb250 IHVzZSBpbiBJT1RocmVhZCBvdXQgb2YgY28tcm91dGluZSBjb250ZXh0IGFzCisgICAgICogaXQg d2lsbCBibG9jayBJT1RocmVhZC4KKyAgICAgKi8KKyAgICBhc3NlcnQocWVtdV9pbl9jb3JvdXRp bmUoKSB8fCAhaW90aHJlYWQpOworCisgICAgaWYgKGlvbG9jayAmJiAhaW90aHJlYWQgJiYgIXFl bXVfaW5fY29yb3V0aW5lKCkpIHsKKyAgICAgICAgcWVtdV9tdXRleF91bmxvY2tfaW90aHJlYWQo KTsKKyAgICB9CisKKyAgICByZXQgPSBxaW9fY2hhbm5lbF9yZWFkdl9mdWxsX2FsbF9lb2YoaW9j LCAmaW92LCAxLCBmZHMsIG5mZHMsIGVycnApOworCisgICAgaWYgKGlvbG9jayAmJiAhaW90aHJl YWQgJiYgIXFlbXVfaW5fY29yb3V0aW5lKCkpIHsKKyAgICAgICAgcWVtdV9tdXRleF9sb2NrX2lv dGhyZWFkKCk7CisgICAgfQorCisgICAgcmV0dXJuIChyZXQgPD0gMCkgPyByZXQgOiBpb3YuaW92 X2xlbjsKK30KKworYm9vbCBtcHFlbXVfbXNnX3JlY3YoTVBRZW11TXNnICptc2csIFFJT0NoYW5u ZWwgKmlvYywgRXJyb3IgKiplcnJwKQoreworICAgIEVSUlBfR1VBUkQoKTsKKyAgICBnX2F1dG9m cmVlIGludCAqZmRzID0gTlVMTDsKKyAgICBzaXplX3QgbmZkcyA9IDA7CisgICAgc3NpemVfdCBs ZW47CisgICAgYm9vbCByZXQgPSBmYWxzZTsKKworICAgIGxlbiA9IG1wcWVtdV9yZWFkKGlvYywg bXNnLCBNUFFFTVVfTVNHX0hEUl9TSVpFLCAmZmRzLCAmbmZkcywgZXJycCk7CisgICAgaWYgKGxl biA8PSAwKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9IGVsc2UgaWYgKGxlbiAhPSBNUFFF TVVfTVNHX0hEUl9TSVpFKSB7CisgICAgICAgIGVycm9yX3NldGcoZXJycCwgIk1lc3NhZ2UgaGVh ZGVyIGNvcnJ1cHRlZCIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgaWYgKG1z Zy0+c2l6ZSA+IHNpemVvZihtc2ctPmRhdGEpKSB7CisgICAgICAgIGVycm9yX3NldGcoZXJycCwg IkludmFsaWQgc2l6ZSBmb3IgbWVzc2FnZSIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQor CisgICAgaWYgKCFtc2ctPnNpemUpIHsKKyAgICAgICAgZ290byBjb3B5X2ZkczsKKyAgICB9CisK KyAgICBsZW4gPSBtcHFlbXVfcmVhZChpb2MsICZtc2ctPmRhdGEsIG1zZy0+c2l6ZSwgTlVMTCwg TlVMTCwgZXJycCk7CisgICAgaWYgKGxlbiA8PSAwKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAg ICB9CisgICAgaWYgKGxlbiAhPSBtc2ctPnNpemUpIHsKKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJw LCAiVW5hYmxlIHRvIHJlYWQgZnVsbCBtZXNzYWdlIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAg ICB9CisKK2NvcHlfZmRzOgorICAgIG1zZy0+bnVtX2ZkcyA9IG5mZHM7CisgICAgaWYgKG5mZHMg PiBHX05fRUxFTUVOVFMobXNnLT5mZHMpKSB7CisgICAgICAgIGVycm9yX3NldGcoZXJycCwKKyAg ICAgICAgICAgICAgICAgICAiT3ZlcmZsb3cgZXJyb3I6IHJlY2VpdmVkICV6dSBmZHMsIG1vcmUg dGhhbiBtYXggb2YgJWQgZmRzIiwKKyAgICAgICAgICAgICAgICAgICBuZmRzLCBSRU1PVEVfTUFY X0ZEUyk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgaWYgKG5mZHMpIHsKKyAgICAg ICAgbWVtY3B5KG1zZy0+ZmRzLCBmZHMsIG5mZHMgKiBzaXplb2YoaW50KSk7CisgICAgfQorCisg ICAgcmV0ID0gdHJ1ZTsKKworZmFpbDoKKyAgICBpZiAoKmVycnApIHsKKyAgICAgICAgdHJhY2Vf bXBxZW11X3JlY3ZfaW9fZXJyb3IobXNnLT5jbWQsIG1zZy0+c2l6ZSwgbmZkcyk7CisgICAgfQor ICAgIHdoaWxlICgqZXJycCAmJiBuZmRzKSB7CisgICAgICAgIGNsb3NlKGZkc1tuZmRzIC0gMV0p OworICAgICAgICBuZmRzLS07CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworYm9vbCBt cHFlbXVfbXNnX3ZhbGlkKE1QUWVtdU1zZyAqbXNnKQoreworICAgIGlmIChtc2ctPmNtZCA+PSBN UFFFTVVfQ01EX01BWCAmJiBtc2ctPmNtZCA8IDApIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor ICAgIH0KKworICAgIC8qIFZlcmlmeSBGRHMuICovCisgICAgaWYgKG1zZy0+bnVtX2ZkcyA+PSBS RU1PVEVfTUFYX0ZEUykgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYg KG1zZy0+bnVtX2ZkcyA+IDApIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtc2ctPm51 bV9mZHM7IGkrKykgeworICAgICAgICAgICAgaWYgKGZjbnRsKG1zZy0+ZmRzW2ldLCBGX0dFVEZM KSA9PSAtMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQpkaWZmIC0tZ2l0IGEvaW90 aHJlYWQuYyBiL2lvdGhyZWFkLmMKaW5kZXggYjlmMjc1MTM4Mi4uN2YwODYzODdiZSAxMDA2NDQK LS0tIGEvaW90aHJlYWQuYworKysgYi9pb3RocmVhZC5jCkBAIC0zNjksMyArMzY5LDkgQEAgSU9U aHJlYWQgKmlvdGhyZWFkX2J5X2lkKGNvbnN0IGNoYXIgKmlkKQogewogICAgIHJldHVybiBJT1RI UkVBRChvYmplY3RfcmVzb2x2ZV9wYXRoX3R5cGUoaWQsIFRZUEVfSU9USFJFQUQsIE5VTEwpKTsK IH0KKworYm9vbCBxZW11X2luX2lvdGhyZWFkKHZvaWQpCit7CisgICAgcmV0dXJuIHFlbXVfZ2V0 X2N1cnJlbnRfYWlvX2NvbnRleHQoKSA9PSBxZW11X2dldF9haW9fY29udGV4dCgpID8KKyAgICAg ICAgICAgICAgICAgICAgZmFsc2UgOiB0cnVlOworfQpkaWZmIC0tZ2l0IGEvaHcvcmVtb3RlL21l c29uLmJ1aWxkIGIvaHcvcmVtb3RlL21lc29uLmJ1aWxkCmluZGV4IDE5N2IwMzg2NDYuLmEyYjJm YzBlNTkgMTAwNjQ0Ci0tLSBhL2h3L3JlbW90ZS9tZXNvbi5idWlsZAorKysgYi9ody9yZW1vdGUv bWVzb24uYnVpbGQKQEAgLTEsNSArMSw2IEBACiByZW1vdGVfc3MgPSBzcy5zb3VyY2Vfc2V0KCkK IAogcmVtb3RlX3NzLmFkZCh3aGVuOiAnQ09ORklHX01VTFRJUFJPQ0VTUycsIGlmX3RydWU6IGZp bGVzKCdtYWNoaW5lLmMnKSkKK3JlbW90ZV9zcy5hZGQod2hlbjogJ0NPTkZJR19NVUxUSVBST0NF U1MnLCBpZl90cnVlOiBmaWxlcygnbXBxZW11LWxpbmsuYycpKQogCiBzb2Z0bW11X3NzLmFkZF9h bGwod2hlbjogJ0NPTkZJR19NVUxUSVBST0NFU1MnLCBpZl90cnVlOiByZW1vdGVfc3MpCmRpZmYg LS1naXQgYS9ody9yZW1vdGUvdHJhY2UtZXZlbnRzIGIvaHcvcmVtb3RlL3RyYWNlLWV2ZW50cwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wYjIzOTc0ZjkwCi0tLSAvZGV2 L251bGwKKysrIGIvaHcvcmVtb3RlL3RyYWNlLWV2ZW50cwpAQCAtMCwwICsxLDQgQEAKKyMgbXVs dGktcHJvY2VzcyB0cmFjZSBldmVudHMKKworbXBxZW11X3NlbmRfaW9fZXJyb3IoaW50IGNtZCwg aW50IHNpemUsIGludCBuZmRzKSAic2VuZCBjb21tYW5kICVkIHNpemUgJWQsICVkIGZpbGUgZGVz Y3JpcHRvcnMgdG8gcmVtb3RlIHByb2Nlc3MiCittcHFlbXVfcmVjdl9pb19lcnJvcihpbnQgY21k LCBpbnQgc2l6ZSwgaW50IG5mZHMpICJmYWlsZWQgdG8gcmVjZWl2ZSAlZCBzaXplICVkLCAlZCBm aWxlIGRlc2NyaXB0b3JzIHRvIHJlbW90ZSBwcm9jZXNzIgotLSAKMi4yOS4yCgo=