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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 200C8D6DDE0 for ; Fri, 15 Nov 2024 07:38:37 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tBqsc-0000eL-5r; Fri, 15 Nov 2024 02:36:34 -0500 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 1tBqsZ-0000cx-Rj for grub-devel@gnu.org; Fri, 15 Nov 2024 02:36:31 -0500 Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tBqsX-00007o-Pc for grub-devel@gnu.org; Fri, 15 Nov 2024 02:36:31 -0500 Received: by mail-lf1-x132.google.com with SMTP id 2adb3069b0e04-53da07b78dfso496150e87.0 for ; Thu, 14 Nov 2024 23:36:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1731656188; x=1732260988; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=f4kZFuQI4PtFcfhObOOAlGa0vwEnK4164c2SxkA7FG4=; b=UvAoGMIZ9RZP0+TPxPrW9wpzGIUWl0QBy90HtBRnQ+nF6Efl0tfGGo7XwgQwf/FOjW ItgxLKcnFOXOOPql+tsV8tMo7oHbnqmDI89xRuoLp6uKvfQkQR2eB0A3LO4WRZYbX6jT LB56w++3HzlJVdNKCuJfk5vm+pqzBjGG/+TVcnMyt7yfNkA/hzalDI2xObREf3CqlBDh 6s6DzfvH0y4AmoRG2SudEdM9L5PpU8WV7dR+mAUyzNCoIeupaLcBtoKvMgm7gTci8t0f l9kfoVOQRPIQ+OA32iPGexJmkyhmDiSUXLWnQgJfRy1nMvRItL4OziwU3mTgcEl9mqGy s3jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731656188; x=1732260988; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f4kZFuQI4PtFcfhObOOAlGa0vwEnK4164c2SxkA7FG4=; b=jviVnPO2UXnyBTDphFDQjIfamnSEMdsu+2qe3e3zZNs+uke8s/utb+TrT9Dodp8a5v 2fEZZjs+dAwSpOHDqOuQSD9JA02dhcz1wTbAV4ZrKPjNQl6X+qe0Sfw4/N2nODCPVYnl /rBRKDVYb3HdXv8cC7mMTu+m6ynfio3Yq7IV+F44OBUbagoWTS+MOSUojzhQkvFIqsEv geu0AB12I2cuE9BmZnckzUxhHrfiK9fH0RExVfOnsVFJ07mX1idtCXyHbh82rOA4hQMW KC8d8+H+gqURKIum/OlsGGdTflSrmHqYDLk1QDXaSLTj+jIAvV60qPxuBdcJQx9HyNzU yXpA== X-Gm-Message-State: AOJu0YznnrhjRtnLWhgCBcbO99ZFwpouK0ge+T76533O+aFd8BpV9YfW q11znkDd5k6K2TYvSfXQeOOyj522gmYGbNIDPuI8kAIEN1m57npI4fgEGxNCzpYLjmgnx6gc9dT t X-Google-Smtp-Source: AGHT+IEBg5jQv9qiPQ9l9oJtshOxtpgF8Fn4ANSmIaS+eZfo1hhddPVxTUkQcGjLkf74DoYdK6LLDQ== X-Received: by 2002:a05:6512:3c87:b0:53d:a2cb:349e with SMTP id 2adb3069b0e04-53dab291a9amr625489e87.4.1731656188069; Thu, 14 Nov 2024 23:36:28 -0800 (PST) Received: from localhost (111-240-136-29.dynamic-ip.hinet.net. [111.240.136.29]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7f8c1c2f056sm715477a12.28.2024.11.14.23.36.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Nov 2024 23:36:27 -0800 (PST) To: The development of GNU GRUB Subject: [PATCH v23 20/33] tss2: Add TPM2 buffer handling functions Date: Fri, 15 Nov 2024 15:34:48 +0800 Message-ID: <20241115073506.2784-21-glin@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241115073506.2784-1-glin@suse.com> References: <20241115073506.2784-1-glin@suse.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::132; envelope-from=glin@suse.com; helo=mail-lf1-x132.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, 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: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Gary Lin via Grub-devel Reply-To: The development of GNU GRUB Cc: Gary Lin , Daniel Kiper , Hernan Gatta , Daniel Axtens , shkhisti@microsoft.com, jaskaran.khurana@microsoft.com, christopher.co@microsoft.com, daniel.mihai@microsoft.com, jaredz@redhat.com, development@efficientek.com, jejb@linux.ibm.com, mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , Vladimir Serbinenko Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org QXMgdGhlIHByZXBhcnRpb24gdG8gc3VwcG9ydCBUUE0yIFNvZnR3YXJlIFN0YWNrIChUU1MyKSwg dGhpcyBjb21taXQKaW1wbGVtZW50cyB0aGUgVFBNMiBidWZmZXIgaGFuZGxpbmcgZnVuY3Rpb25z IHRvIHBhY2sgZGF0YSBmb3IgdGhlIFRQTTIKY29tbWFuZHMgYW5kIHVucGFjayB0aGUgZGF0YSBm cm9tIHRoZSByZXNwb25zZS4KCkNjOiBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5iQGxpbnV4LmlibS5j b20+ClNpZ25lZC1vZmYtYnk6IEhlcm5hbiBHYXR0YSA8aGVnYXR0YUBsaW51eC5taWNyb3NvZnQu Y29tPgpTaWduZWQtb2ZmLWJ5OiBHYXJ5IExpbiA8Z2xpbkBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6 IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0tLQogZ3J1Yi1jb3JlL2xp Yi90c3MyL2J1ZmZlci5jICAgICAgfCAxNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfYnVmZmVyLmggfCAgNjQgKysrKysrKysrKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgMjExIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn cnViLWNvcmUvbGliL3RzczIvYnVmZmVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUv bGliL3RzczIvdHNzMl9idWZmZXIuaAoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvdHNzMi9i dWZmZXIuYyBiL2dydWItY29yZS9saWIvdHNzMi9idWZmZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLjE2ZDU5YThmNQotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29y ZS9saWIvdHNzMi9idWZmZXIuYwpAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAqICBHUlVCICAtLSAg R1JhbmQgVW5pZmllZCBCb290bG9hZGVyCisgKiAgQ29weXJpZ2h0IChDKSAyMDIyIE1pY3Jvc29m dCBDb3Jwb3JhdGlvbgorICogIENvcHlyaWdodCAoQykgMjAyNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKyAqCisgKiAgR1JVQiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor ICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIEdSVUIgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggR1JVQi4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSA8Z3J1Yi9t aXNjLmg+CisKKyNpbmNsdWRlIDx0c3MyX2J1ZmZlci5oPgorCit2b2lkIGdydWJfdHBtMl9idWZm ZXJfaW5pdCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlcikKK3sKKyAgZ3J1Yl9tZW1zZXQgKGJ1 ZmZlci0+ZGF0YSwgMCwgc2l6ZW9mIChidWZmZXItPmRhdGEpKTsKKyAgYnVmZmVyLT5zaXplID0g MDsKKyAgYnVmZmVyLT5vZmZzZXQgPSAwOworICBidWZmZXItPmNhcCA9IHNpemVvZiAoYnVmZmVy LT5kYXRhKTsKKyAgYnVmZmVyLT5lcnJvciA9IDA7Cit9CisKK3ZvaWQKK2dydWJfdHBtMl9idWZm ZXJfcGFjayAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwgY29uc3Qgdm9pZCAqZGF0YSwgZ3J1 Yl9zaXplX3Qgc2l6ZSkKK3sKKyAgZ3J1Yl91aW50MzJfdCByID0gYnVmZmVyLT5jYXAgLSBidWZm ZXItPnNpemU7CisKKyAgaWYgKGJ1ZmZlci0+ZXJyb3IpCisgICAgcmV0dXJuOworCisgIGlmIChz aXplID4gcikKKyAgICB7CisgICAgICBidWZmZXItPmVycm9yID0gMTsKKyAgICAgIHJldHVybjsK KyAgICB9CisKKyAgZ3J1Yl9tZW1jcHkgKCZidWZmZXItPmRhdGFbYnVmZmVyLT5zaXplXSwgKHZv aWQgKikgZGF0YSwgc2l6ZSk7CisgIGJ1ZmZlci0+c2l6ZSArPSBzaXplOworfQorCit2b2lkCitn cnViX3RwbTJfYnVmZmVyX3BhY2tfdTggKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsIGdydWJf dWludDhfdCB2YWx1ZSkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrIChidWZmZXIsIChjb25z dCB2b2lkICopICZ2YWx1ZSwgc2l6ZW9mICh2YWx1ZSkpOworfQorCit2b2lkCitncnViX3RwbTJf YnVmZmVyX3BhY2tfdTE2IChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLCBncnViX3VpbnQxNl90 IHZhbHVlKQoreworICBncnViX3VpbnQxNl90IHRtcCA9IGdydWJfY3B1X3RvX2JlMTYgKHZhbHVl KTsKKworICBncnViX3RwbTJfYnVmZmVyX3BhY2sgKGJ1ZmZlciwgKGNvbnN0IHZvaWQgKikgJnRt cCwgc2l6ZW9mICh0bXApKTsKK30KKwordm9pZAorZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UzMiAo Z3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwgZ3J1Yl91aW50MzJfdCB2YWx1ZSkKK3sKKyAgZ3J1 Yl91aW50MzJfdCB0bXAgPSBncnViX2NwdV90b19iZTMyICh2YWx1ZSk7CisKKyAgZ3J1Yl90cG0y X2J1ZmZlcl9wYWNrIChidWZmZXIsIChjb25zdCB2b2lkICopICZ0bXAsIHNpemVvZiAodG1wKSk7 Cit9CisKK3ZvaWQKK2dydWJfdHBtMl9idWZmZXJfdW5wYWNrIChncnViX3RwbTJfYnVmZmVyX3Qg YnVmZmVyLCB2b2lkICpkYXRhLCBncnViX3NpemVfdCBzaXplKQoreworICBncnViX3VpbnQzMl90 IHIgPSBidWZmZXItPnNpemUgLSBidWZmZXItPm9mZnNldDsKKworICBpZiAoYnVmZmVyLT5lcnJv cikKKyAgICByZXR1cm47CisKKyAgaWYgKHNpemUgPiByKQorICAgIHsKKyAgICAgIGJ1ZmZlci0+ ZXJyb3IgPSAxOworICAgICAgcmV0dXJuOworICAgIH0KKworICBncnViX21lbWNweSAoZGF0YSwg JmJ1ZmZlci0+ZGF0YVtidWZmZXItPm9mZnNldF0sIHNpemUpOworICBidWZmZXItPm9mZnNldCAr PSBzaXplOworfQorCit2b2lkCitncnViX3RwbTJfYnVmZmVyX3VucGFja191OCAoZ3J1Yl90cG0y X2J1ZmZlcl90IGJ1ZmZlciwgZ3J1Yl91aW50OF90ICp2YWx1ZSkKK3sKKyAgZ3J1Yl91aW50MzJf dCByID0gYnVmZmVyLT5zaXplIC0gYnVmZmVyLT5vZmZzZXQ7CisKKyAgaWYgKGJ1ZmZlci0+ZXJy b3IpCisgICAgcmV0dXJuOworCisgIGlmIChzaXplb2YgKCp2YWx1ZSkgPiByKQorICAgIHsKKyAg ICAgIGJ1ZmZlci0+ZXJyb3IgPSAxOworICAgICAgcmV0dXJuOworICAgIH0KKworICBncnViX21l bWNweSAodmFsdWUsICZidWZmZXItPmRhdGFbYnVmZmVyLT5vZmZzZXRdLCBzaXplb2YgKCp2YWx1 ZSkpOworICBidWZmZXItPm9mZnNldCArPSBzaXplb2YgKCp2YWx1ZSk7Cit9CisKK3ZvaWQKK2dy dWJfdHBtMl9idWZmZXJfdW5wYWNrX3UxNiAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwgZ3J1 Yl91aW50MTZfdCAqdmFsdWUpCit7CisgIGdydWJfdWludDE2X3QgdG1wOworICBncnViX3VpbnQz Ml90IHIgPSBidWZmZXItPnNpemUgLSBidWZmZXItPm9mZnNldDsKKworICBpZiAoYnVmZmVyLT5l cnJvcikKKyAgICByZXR1cm47CisKKyAgaWYgKHNpemVvZiAodG1wKSA+IHIpCisgICAgeworICAg ICAgYnVmZmVyLT5lcnJvciA9IDE7CisgICAgICByZXR1cm47CisgICAgfQorCisgIGdydWJfbWVt Y3B5ICgmdG1wLCAmYnVmZmVyLT5kYXRhW2J1ZmZlci0+b2Zmc2V0XSwgc2l6ZW9mICh0bXApKTsK KyAgYnVmZmVyLT5vZmZzZXQgKz0gc2l6ZW9mICh0bXApOworICAqdmFsdWUgPSBncnViX2JlX3Rv X2NwdTE2ICh0bXApOworfQorCit2b2lkCitncnViX3RwbTJfYnVmZmVyX3VucGFja191MzIgKGdy dWJfdHBtMl9idWZmZXJfdCBidWZmZXIsIGdydWJfdWludDMyX3QgKnZhbHVlKQoreworICBncnVi X3VpbnQzMl90IHRtcDsKKyAgZ3J1Yl91aW50MzJfdCByID0gYnVmZmVyLT5zaXplIC0gYnVmZmVy LT5vZmZzZXQ7CisKKyAgaWYgKGJ1ZmZlci0+ZXJyb3IpCisgICAgcmV0dXJuOworCisgIGlmIChz aXplb2YgKHRtcCkgPiByKQorICAgIHsKKyAgICAgIGJ1ZmZlci0+ZXJyb3IgPSAxOworICAgICAg cmV0dXJuOworICAgIH0KKworICBncnViX21lbWNweSAoJnRtcCwgJmJ1ZmZlci0+ZGF0YVtidWZm ZXItPm9mZnNldF0sIHNpemVvZiAodG1wKSk7CisgIGJ1ZmZlci0+b2Zmc2V0ICs9IHNpemVvZiAo dG1wKTsKKyAgKnZhbHVlID0gZ3J1Yl9iZV90b19jcHUzMiAodG1wKTsKK30KZGlmZiAtLWdpdCBh L2dydWItY29yZS9saWIvdHNzMi90c3MyX2J1ZmZlci5oIGIvZ3J1Yi1jb3JlL2xpYi90c3MyL3Rz czJfYnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mYjlkYjFh ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL3RzczIvdHNzMl9idWZmZXIuaApA QCAtMCwwICsxLDY0IEBACisvKgorICogIEdSVUIgIC0tICBHUmFuZCBVbmlmaWVkIEJvb3Rsb2Fk ZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMjIgTWljcm9zb2Z0IENvcnBvcmF0aW9uCisgKiAgQ29w eXJpZ2h0IChDKSAyMDI0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAqICBH UlVCIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgR1JVQiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisgKiAgYWxvbmcgd2l0aCBHUlVCLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorICovCisKKyNpZm5kZWYgR1JVQl9UUE0yX0JVRkZFUl9IRUFERVIKKyNkZWZp bmUgR1JVQl9UUE0yX0JVRkZFUl9IRUFERVIgMQorCisjaW5jbHVkZSA8Z3J1Yi90eXBlcy5oPgor CisjZGVmaW5lIEdSVUJfVFBNMl9CVUZGRVJfQ0FQQUNJVFkgNDA5NgorCitzdHJ1Y3QgZ3J1Yl90 cG0yX2J1ZmZlcgoreworICBncnViX3VpbnQ4X3QgZGF0YVtHUlVCX1RQTTJfQlVGRkVSX0NBUEFD SVRZXTsKKyAgZ3J1Yl9zaXplX3Qgc2l6ZTsKKyAgZ3J1Yl9zaXplX3Qgb2Zmc2V0OworICBncnVi X3NpemVfdCBjYXA7CisgIGJvb2wgZXJyb3I7Cit9OwordHlwZWRlZiBzdHJ1Y3QgZ3J1Yl90cG0y X2J1ZmZlciAqZ3J1Yl90cG0yX2J1ZmZlcl90OworCitleHRlcm4gdm9pZAorZ3J1Yl90cG0yX2J1 ZmZlcl9pbml0IChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyKTsKKworZXh0ZXJuIHZvaWQKK2dy dWJfdHBtMl9idWZmZXJfcGFjayAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwgY29uc3Qgdm9p ZCAqZGF0YSwgZ3J1Yl9zaXplX3Qgc2l6ZSk7CisKK2V4dGVybiB2b2lkCitncnViX3RwbTJfYnVm ZmVyX3BhY2tfdTggKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsIGdydWJfdWludDhfdCB2YWx1 ZSk7CisKK2V4dGVybiB2b2lkCitncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChncnViX3RwbTJf YnVmZmVyX3QgYnVmZmVyLCBncnViX3VpbnQxNl90IHZhbHVlKTsKKworZXh0ZXJuIHZvaWQKK2dy dWJfdHBtMl9idWZmZXJfcGFja191MzIgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsIGdydWJf dWludDMyX3QgdmFsdWUpOworCitleHRlcm4gdm9pZAorZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2sg KGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsIHZvaWQgKmRhdGEsIGdydWJfc2l6ZV90IHNpemUp OworCitleHRlcm4gdm9pZAorZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTggKGdydWJfdHBtMl9i dWZmZXJfdCBidWZmZXIsIGdydWJfdWludDhfdCAqdmFsdWUpOworCitleHRlcm4gdm9pZAorZ3J1 Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2IChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLCBncnVi X3VpbnQxNl90ICp2YWx1ZSk7CisKK2V4dGVybiB2b2lkCitncnViX3RwbTJfYnVmZmVyX3VucGFj a191MzIgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsIGdydWJfdWludDMyX3QgKnZhbHVlKTsK KworI2VuZGlmIC8qICEgR1JVQl9UUE0yX0JVRkZFUl9IRUFERVIgKi8KLS0gCjIuNDMuMAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkdydWItZGV2ZWwg bWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFp bG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==