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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT 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 F2FD5C54FD0 for ; Sun, 22 Mar 2020 16:14:54 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 C629820724 for ; Sun, 22 Mar 2020 16:14:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C629820724 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jG3FF-0004Yi-DB; Sun, 22 Mar 2020 16:14:37 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jG3FD-0004Y0-ER for xen-devel@lists.xenproject.org; Sun, 22 Mar 2020 16:14:35 +0000 X-Inumbo-ID: 33f9bad0-6c58-11ea-bec1-bc764e2007e4 Received: from mail-ed1-f67.google.com (unknown [209.85.208.67]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 33f9bad0-6c58-11ea-bec1-bc764e2007e4; Sun, 22 Mar 2020 16:14:27 +0000 (UTC) Received: by mail-ed1-f67.google.com with SMTP id u59so13455282edc.12 for ; Sun, 22 Mar 2020 09:14:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4DuAipu9BSo2SCY2T0JAchJqXJO/XZINnXRDSNDPO8s=; b=ukXJipr9caP1gYnzvXN+q0d5mnSPoHNp+MpFlMe0CDCjQJ2isNeJxXE+LZS77lVevU qg4ny4wIoX/BDMXJfONKR7SkCwwlJIJPsDbnKxshZSdh9S4dTgaFKD//3hWc89thpWv7 xEVWp5nDOmCihtatXRqJehAa0yvESJgVxI1E+BtZKqFNvCgZl96fJ+CiTJmGYWHrEgJo YvhXakzpFvuJfxz+CAX+e1XyhKTasDs/k+KiVOCsLNDFA3yUIjQIBzG8xqnNgtGheBrk UtIb/7TjTNf5yu4yitUMPvcw+b9lM5L9dBl8g3+iDkI8NFxPksyqx1VnonqLrhCYPx3i AOuQ== X-Gm-Message-State: ANhLgQ0cjj98acXErq0etg2BbYFK8gri+RtNd/gKauFSSfCz49BQj3Mt c8788vbf28MzA9E6PsnSw+hdPNE8JLtR3w== X-Google-Smtp-Source: ADFU+vvxMcIR+VB0vYNJ38BmDBhUKdxLqJy9IzwgKNq1EtLeTTHt2Qy9NSX0FJZR6PjSoUXEnMJ5+A== X-Received: by 2002:a50:a9a6:: with SMTP id n35mr9058218edc.57.1584893666593; Sun, 22 Mar 2020 09:14:26 -0700 (PDT) Received: from ufe34d9ed68d054.ant.amazon.com (54-240-197-235.amazon.com. [54.240.197.235]) by smtp.gmail.com with ESMTPSA id v13sm106693edj.62.2020.03.22.09.14.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Mar 2020 09:14:26 -0700 (PDT) From: julien@xen.org To: xen-devel@lists.xenproject.org Date: Sun, 22 Mar 2020 16:14:04 +0000 Message-Id: <20200322161418.31606-4-julien@xen.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200322161418.31606-1-julien@xen.org> References: <20200322161418.31606-1-julien@xen.org> Subject: [Xen-devel] [PATCH 03/17] xen/mm: Move the MM types in a separate header X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , julien@xen.org, Wei Liu , Andrew Cooper , Julien Grall , Ian Jackson , George Dunlap , Jan Beulich MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RnJvbTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4KCkl0IGlzIGdldHRpbmcgaW5j cmVkaWJseSBkaWZmaWN1bHQgdG8gdXNlIHR5cGVzYWZlIEdGTi9NRk4vUEZOIGluIHRoZQpoZWFk ZXJzIGJlY2F1c2Ugb2YgY2lyY3VsYXIgZGVwZW5kZW5jeS4gRm9yIGluc3RhbmNlLCBhc20teDg2 L3BhZ2UuaApjYW5ub3QgaW5jbHVkZSB4ZW4vbW0uaC4KCkluIG9yZGVyIHRvIGNvbnZlcnQgbW9y ZSBjb2RlIHRvIHVzZSB0eXBlc2FmZSwgdGhlIHR5cGVzIGFyZSBub3cgbW92ZWQKaW4gYSBzZXBh cmF0ZSBoZWFkZXIgdGhhdCByZXF1aXJlcyBvbmx5IGEgZmV3IGRlcGVuZGVuY2llcy4KClNpZ25l ZC1vZmYtYnk6IEp1bGllbiBHcmFsbCA8amdyYWxsQGFtYXpvbi5jb20+Ci0tLQogeGVuL2luY2x1 ZGUveGVuL21tLmggICAgICAgfCAxMzQgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IHhlbi9pbmNsdWRlL3hlbi9tbV90eXBlcy5oIHwgMTU1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTU2IGluc2VydGlvbnMoKyksIDEzMyBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS94ZW4vbW1fdHlwZXMu aAoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9tbS5oIGIveGVuL2luY2x1ZGUveGVuL21t LmgKaW5kZXggZDBkMDk1ZDljNy4uNDMzNzMwM2Y5OSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv eGVuL21tLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL21tLmgKQEAgLTEsNTAgKzEsNyBAQAogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgogICogaW5jbHVkZS94ZW4vbW0uaAogICoKLSAqIERlZmluaXRp b25zIGZvciBtZW1vcnkgcGFnZXMsIGZyYW1lIG51bWJlcnMsIGFkZHJlc3NlcywgYWxsb2NhdGlv bnMsIGV0Yy4KLSAqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNiwgSyBBIEZyYXNlciA8a2Vp ckB4ZW5zb3VyY2UuY29tPgotICoKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0t LS0tLS0tLS0tLS0tLS0rCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuIE1lbW9yeSBN YW5hZ2VtZW50Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0t LS0tKwotICoKLSAqIFhlbiBoYXMgdG8gaGFuZGxlIG1hbnkgZGlmZmVyZW50IGFkZHJlc3Mgc3Bh Y2VzLiAgSXQgaXMgaW1wb3J0YW50IG5vdCB0bwotICogZ2V0IHRoZXNlIHNwYWNlcyBtaXhlZCB1 cC4gIFRoZSBmb2xsb3dpbmcgaXMgYSBjb25zaXN0ZW50IHRlcm1pbm9sb2d5IHdoaWNoCi0gKiBz aG91bGQgYmUgYWRoZXJlZCB0by4KLSAqCi0gKiBtZm46IE1hY2hpbmUgRnJhbWUgTnVtYmVyCi0g KiAgIFRoZSB2YWx1ZXMgWGVuIHB1dHMgaW50byBpdHMgb3duIHBhZ2V0YWJsZXMuICBUaGlzIGlz IHRoZSBob3N0IHBoeXNpY2FsCi0gKiAgIG1lbW9yeSBhZGRyZXNzIHNwYWNlIHdpdGggUkFNLCBN TUlPIGV0Yy4KLSAqCi0gKiBnZm46IEd1ZXN0IEZyYW1lIE51bWJlcgotICogICBUaGUgdmFsdWVz IGEgZ3Vlc3QgcHV0cyBpbiBpdHMgb3duIHBhZ2V0YWJsZXMuICBGb3IgYW4gYXV0by10cmFuc2xh dGVkCi0gKiAgIGd1ZXN0IChoYXJkd2FyZSBhc3Npc3RlZCB3aXRoIDJuZCBzdGFnZSB0cmFuc2xh dGlvbiwgb3Igc2hhZG93ZWQpLCBnZm4gIT0KLSAqICAgbWZuLiAgRm9yIGEgbm9uLXRyYW5zbGF0 ZWQgZ3Vlc3Qgd2hpY2ggaXMgYXdhcmUgb2YgWGVuLCBnZm4gPT0gbWZuLgotICoKLSAqIHBmbjog UHNldWRvcGh5c2ljYWwgRnJhbWUgTnVtYmVyCi0gKiAgIEEgbGluZWFyIGlkZWEgb2YgYSBndWVz dCBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlLiBGb3IgYW4gYXV0by10cmFuc2xhdGVkCi0gKiAgIGd1 ZXN0LCBwZm4gPT0gZ2ZuIHdoaWxlIGZvciBhIG5vbi10cmFuc2xhdGVkIGd1ZXN0LCBwZm4gIT0g Z2ZuLgotICoKLSAqIGRmbjogRGV2aWNlIERNQSBGcmFtZSBOdW1iZXIgKGRlZmluaXRpb25zIGlu IGluY2x1ZGUveGVuL2lvbW11LmgpCi0gKiAgIFRoZSBsaW5lYXIgZnJhbWUgbnVtYmVycyBvZiBk ZXZpY2UgRE1BIGFkZHJlc3Mgc3BhY2UuIEFsbCBpbml0aWF0b3JzIGZvcgotICogICAoaS5lLiBh bGwgZGV2aWNlcyBhc3NpZ25lZCB0bykgYSBndWVzdCBzaGFyZSBhIHNpbmdsZSBETUEgYWRkcmVz cyBzcGFjZQotICogICBhbmQsIGJ5IGRlZmF1bHQsIFhlbiB3aWxsIGVuc3VyZSBkZm4gPT0gcGZu LgotICoKLSAqIFdBUk5JTkc6IFNvbWUgb2YgdGhlc2UgdGVybXMgaGF2ZSBjaGFuZ2VkIG92ZXIg dGltZSB3aGlsZSBvdGhlcnMgaGF2ZSBiZWVuCi0gKiB1c2VkIGluY29uc2lzdGVudGx5LCBtZWFu aW5nIHRoYXQgYSBsb3Qgb2YgZXhpc3RpbmcgY29kZSBkb2VzIG5vdCBtYXRjaCB0aGUKLSAqIGRl ZmluaXRpb25zIGFib3ZlLiAgTmV3IGNvZGUgc2hvdWxkIHVzZSB0aGVzZSB0ZXJtcyBhcyBkZXNj cmliZWQgaGVyZSwgYW5kCi0gKiBvdmVyIHRpbWUgb2xkZXIgY29kZSBzaG91bGQgYmUgY29ycmVj dGVkIHRvIGJlIGNvbnNpc3RlbnQuCi0gKgotICogQW4gaW5jb21wbGV0ZSBsaXN0IG9mIGxhcmdl ciB3b3JrIGFyZWE6Ci0gKiAtIFBoYXNlIG91dCB0aGUgdXNlIG9mICdwZm4nIGZyb20gdGhlIHg4 NiBwYWdldGFibGUgY29kZS4gIENhbGxlcnMgc2hvdWxkCi0gKiAgIGtub3cgZXhwbGljaXRseSB3 aGV0aGVyIHRoZXkgYXJlIHRhbGtpbmcgYWJvdXQgbWZucyBvciBnZm5zLgotICogLSBQaGFzZSBv dXQgdGhlIHVzZSBvZiAncGZuJyBmcm9tIHRoZSBBUk0gbW0gY29kZS4gIEEgY3Vyc29yeSBnbGFu Y2UKLSAqICAgc3VnZ2VzdHMgdGhhdCAnbWZuJyBhbmQgJ3BmbicgYXJlIGN1cnJlbnRseSB1c2Vk IGludGVyY2hhbmdlYWJseSwgd2hlcmUKLSAqICAgJ21mbicgaXMgdGhlIGFwcHJvcHJpYXRlIHRl cm0gdG8gdXNlLgotICogLSBQaGFzZSBvdXQgdGhlIHVzZSBvZiBncGZuL2dtZm4gd2hlcmUgcGZu L21mbiBhcmUgbWVhbnQuICBUaGlzIGV4Y2x1ZGVzCi0gKiAgIHRoZSB4ODYgc2hhZG93IGNvZGUs IHdoaWNoIHVzZXMgZ21mbi9zbWZuIHBhaXJzIHdpdGggZGlmZmVyZW50LAotICogICBkb2N1bWVu dGVkLCBtZWFuaW5ncy4KICAqLwogCiAjaWZuZGVmIF9fWEVOX01NX0hfXwpAQCAtNTQsMTAwICsx MSwxMSBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogI2luY2x1ZGUgPHhlbi9saXN0Lmg+CiAj aW5jbHVkZSA8eGVuL3NwaW5sb2NrLmg+Ci0jaW5jbHVkZSA8eGVuL3R5cGVzYWZlLmg+CiAjaW5j bHVkZSA8eGVuL2tlcm5lbC5oPgorI2luY2x1ZGUgPHhlbi9tbV90eXBlcy5oPgogI2luY2x1ZGUg PHhlbi9wZXJmYy5oPgogI2luY2x1ZGUgPHB1YmxpYy9tZW1vcnkuaD4KIAotVFlQRV9TQUZFKHVu c2lnbmVkIGxvbmcsIG1mbik7Ci0jZGVmaW5lIFBSSV9tZm4gICAgICAgICAgIjA1bHgiCi0jZGVm aW5lIElOVkFMSURfTUZOICAgICAgX21mbih+MFVMKQotLyoKLSAqIFRvIGJlIHVzZWQgZm9yIGds b2JhbCB2YXJpYWJsZSBpbml0aWFsaXphdGlvbi4gVGhpcyB3b3JrYXJvdW5kIGEgYnVnCi0gKiBp biBHQ0MgPCA1LjAuCi0gKi8KLSNkZWZpbmUgSU5WQUxJRF9NRk5fSU5JVElBTElaRVIgeyB+MFVM IH0KLQotI2lmbmRlZiBtZm5fdAotI2RlZmluZSBtZm5fdCAvKiBHcmVwIGZvZGRlcjogbWZuX3Qs IF9tZm4oKSBhbmQgbWZuX3goKSBhcmUgZGVmaW5lZCBhYm92ZSAqLwotI2RlZmluZSBfbWZuCi0j ZGVmaW5lIG1mbl94Ci0jdW5kZWYgbWZuX3QKLSN1bmRlZiBfbWZuCi0jdW5kZWYgbWZuX3gKLSNl bmRpZgotCi1zdGF0aWMgaW5saW5lIG1mbl90IG1mbl9hZGQobWZuX3QgbWZuLCB1bnNpZ25lZCBs b25nIGkpCi17Ci0gICAgcmV0dXJuIF9tZm4obWZuX3gobWZuKSArIGkpOwotfQotCi1zdGF0aWMg aW5saW5lIG1mbl90IG1mbl9tYXgobWZuX3QgeCwgbWZuX3QgeSkKLXsKLSAgICByZXR1cm4gX21m bihtYXgobWZuX3goeCksIG1mbl94KHkpKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgbWZuX3QgbWZu X21pbihtZm5fdCB4LCBtZm5fdCB5KQotewotICAgIHJldHVybiBfbWZuKG1pbihtZm5feCh4KSwg bWZuX3goeSkpKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sX3QgbWZuX2VxKG1mbl90IHgsIG1m bl90IHkpCi17Ci0gICAgcmV0dXJuIG1mbl94KHgpID09IG1mbl94KHkpOwotfQotCi1UWVBFX1NB RkUodW5zaWduZWQgbG9uZywgZ2ZuKTsKLSNkZWZpbmUgUFJJX2dmbiAgICAgICAgICAiMDVseCIK LSNkZWZpbmUgSU5WQUxJRF9HRk4gICAgICBfZ2ZuKH4wVUwpCi0vKgotICogVG8gYmUgdXNlZCBm b3IgZ2xvYmFsIHZhcmlhYmxlIGluaXRpYWxpemF0aW9uLiBUaGlzIHdvcmthcm91bmQgYSBidWcK LSAqIGluIEdDQyA8IDUuMCBodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNn aT9pZD02NDg1NgotICovCi0jZGVmaW5lIElOVkFMSURfR0ZOX0lOSVRJQUxJWkVSIHsgfjBVTCB9 Ci0KLSNpZm5kZWYgZ2ZuX3QKLSNkZWZpbmUgZ2ZuX3QgLyogR3JlcCBmb2RkZXI6IGdmbl90LCBf Z2ZuKCkgYW5kIGdmbl94KCkgYXJlIGRlZmluZWQgYWJvdmUgKi8KLSNkZWZpbmUgX2dmbgotI2Rl ZmluZSBnZm5feAotI3VuZGVmIGdmbl90Ci0jdW5kZWYgX2dmbgotI3VuZGVmIGdmbl94Ci0jZW5k aWYKLQotc3RhdGljIGlubGluZSBnZm5fdCBnZm5fYWRkKGdmbl90IGdmbiwgdW5zaWduZWQgbG9u ZyBpKQotewotICAgIHJldHVybiBfZ2ZuKGdmbl94KGdmbikgKyBpKTsKLX0KLQotc3RhdGljIGlu bGluZSBnZm5fdCBnZm5fbWF4KGdmbl90IHgsIGdmbl90IHkpCi17Ci0gICAgcmV0dXJuIF9nZm4o bWF4KGdmbl94KHgpLCBnZm5feCh5KSkpOwotfQotCi1zdGF0aWMgaW5saW5lIGdmbl90IGdmbl9t aW4oZ2ZuX3QgeCwgZ2ZuX3QgeSkKLXsKLSAgICByZXR1cm4gX2dmbihtaW4oZ2ZuX3goeCksIGdm bl94KHkpKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbF90IGdmbl9lcShnZm5fdCB4LCBnZm5f dCB5KQotewotICAgIHJldHVybiBnZm5feCh4KSA9PSBnZm5feCh5KTsKLX0KLQotVFlQRV9TQUZF KHVuc2lnbmVkIGxvbmcsIHBmbik7Ci0jZGVmaW5lIFBSSV9wZm4gICAgICAgICAgIjA1bHgiCi0j ZGVmaW5lIElOVkFMSURfUEZOICAgICAgKH4wVUwpCi0KLSNpZm5kZWYgcGZuX3QKLSNkZWZpbmUg cGZuX3QgLyogR3JlcCBmb2RkZXI6IHBmbl90LCBfcGZuKCkgYW5kIHBmbl94KCkgYXJlIGRlZmlu ZWQgYWJvdmUgKi8KLSNkZWZpbmUgX3BmbgotI2RlZmluZSBwZm5feAotI3VuZGVmIHBmbl90Ci0j dW5kZWYgX3BmbgotI3VuZGVmIHBmbl94Ci0jZW5kaWYKLQogc3RydWN0IHBhZ2VfaW5mbzsKIAog dm9pZCBwdXRfcGFnZShzdHJ1Y3QgcGFnZV9pbmZvICopOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUveGVuL21tX3R5cGVzLmggYi94ZW4vaW5jbHVkZS94ZW4vbW1fdHlwZXMuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mMTQzNTlmNTcxCi0tLSAvZGV2L251bGwKKysr IGIveGVuL2luY2x1ZGUveGVuL21tX3R5cGVzLmgKQEAgLTAsMCArMSwxNTUgQEAKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKyAqIGluY2x1ZGUveGVuL21tX3R5cGVzLmgKKyAqCisgKiBEZWZpbml0 aW9ucyBmb3IgbWVtb3J5IHBhZ2VzLCBmcmFtZSBudW1iZXJzLCBhZGRyZXNzZXMsIGFsbG9jYXRp b25zLCBldGMuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEsgQSBGcmFzZXIgPGtl aXJAeGVuc291cmNlLmNvbT4KKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0t LS0tLS0tLS0tLS0tLS0tKworICogICAgICAgICAgICAgICAgICAgICAgICAgIFhlbiBNZW1vcnkg TWFuYWdlbWVudAorICogICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKKyAqCisgKiBYZW4gaGFzIHRvIGhhbmRsZSBtYW55IGRpZmZlcmVudCBhZGRyZXNzIHNw YWNlcy4gIEl0IGlzIGltcG9ydGFudCBub3QgdG8KKyAqIGdldCB0aGVzZSBzcGFjZXMgbWl4ZWQg dXAuICBUaGUgZm9sbG93aW5nIGlzIGEgY29uc2lzdGVudCB0ZXJtaW5vbG9neSB3aGljaAorICog c2hvdWxkIGJlIGFkaGVyZWQgdG8uCisgKgorICogbWZuOiBNYWNoaW5lIEZyYW1lIE51bWJlcgor ICogICBUaGUgdmFsdWVzIFhlbiBwdXRzIGludG8gaXRzIG93biBwYWdldGFibGVzLiAgVGhpcyBp cyB0aGUgaG9zdCBwaHlzaWNhbAorICogICBtZW1vcnkgYWRkcmVzcyBzcGFjZSB3aXRoIFJBTSwg TU1JTyBldGMuCisgKgorICogZ2ZuOiBHdWVzdCBGcmFtZSBOdW1iZXIKKyAqICAgVGhlIHZhbHVl cyBhIGd1ZXN0IHB1dHMgaW4gaXRzIG93biBwYWdldGFibGVzLiAgRm9yIGFuIGF1dG8tdHJhbnNs YXRlZAorICogICBndWVzdCAoaGFyZHdhcmUgYXNzaXN0ZWQgd2l0aCAybmQgc3RhZ2UgdHJhbnNs YXRpb24sIG9yIHNoYWRvd2VkKSwgZ2ZuICE9CisgKiAgIG1mbi4gIEZvciBhIG5vbi10cmFuc2xh dGVkIGd1ZXN0IHdoaWNoIGlzIGF3YXJlIG9mIFhlbiwgZ2ZuID09IG1mbi4KKyAqCisgKiBwZm46 IFBzZXVkb3BoeXNpY2FsIEZyYW1lIE51bWJlcgorICogICBBIGxpbmVhciBpZGVhIG9mIGEgZ3Vl c3QgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZS4gRm9yIGFuIGF1dG8tdHJhbnNsYXRlZAorICogICBn dWVzdCwgcGZuID09IGdmbiB3aGlsZSBmb3IgYSBub24tdHJhbnNsYXRlZCBndWVzdCwgcGZuICE9 IGdmbi4KKyAqCisgKiBkZm46IERldmljZSBETUEgRnJhbWUgTnVtYmVyIChkZWZpbml0aW9ucyBp biBpbmNsdWRlL3hlbi9pb21tdS5oKQorICogICBUaGUgbGluZWFyIGZyYW1lIG51bWJlcnMgb2Yg ZGV2aWNlIERNQSBhZGRyZXNzIHNwYWNlLiBBbGwgaW5pdGlhdG9ycyBmb3IKKyAqICAgKGkuZS4g YWxsIGRldmljZXMgYXNzaWduZWQgdG8pIGEgZ3Vlc3Qgc2hhcmUgYSBzaW5nbGUgRE1BIGFkZHJl c3Mgc3BhY2UKKyAqICAgYW5kLCBieSBkZWZhdWx0LCBYZW4gd2lsbCBlbnN1cmUgZGZuID09IHBm bi4KKyAqCisgKiBXQVJOSU5HOiBTb21lIG9mIHRoZXNlIHRlcm1zIGhhdmUgY2hhbmdlZCBvdmVy IHRpbWUgd2hpbGUgb3RoZXJzIGhhdmUgYmVlbgorICogdXNlZCBpbmNvbnNpc3RlbnRseSwgbWVh bmluZyB0aGF0IGEgbG90IG9mIGV4aXN0aW5nIGNvZGUgZG9lcyBub3QgbWF0Y2ggdGhlCisgKiBk ZWZpbml0aW9ucyBhYm92ZS4gIE5ldyBjb2RlIHNob3VsZCB1c2UgdGhlc2UgdGVybXMgYXMgZGVz Y3JpYmVkIGhlcmUsIGFuZAorICogb3ZlciB0aW1lIG9sZGVyIGNvZGUgc2hvdWxkIGJlIGNvcnJl Y3RlZCB0byBiZSBjb25zaXN0ZW50LgorICoKKyAqIEFuIGluY29tcGxldGUgbGlzdCBvZiBsYXJn ZXIgd29yayBhcmVhOgorICogLSBQaGFzZSBvdXQgdGhlIHVzZSBvZiAncGZuJyBmcm9tIHRoZSB4 ODYgcGFnZXRhYmxlIGNvZGUuICBDYWxsZXJzIHNob3VsZAorICogICBrbm93IGV4cGxpY2l0bHkg d2hldGhlciB0aGV5IGFyZSB0YWxraW5nIGFib3V0IG1mbnMgb3IgZ2Zucy4KKyAqIC0gUGhhc2Ug b3V0IHRoZSB1c2Ugb2YgJ3BmbicgZnJvbSB0aGUgQVJNIG1tIGNvZGUuICBBIGN1cnNvcnkgZ2xh bmNlCisgKiAgIHN1Z2dlc3RzIHRoYXQgJ21mbicgYW5kICdwZm4nIGFyZSBjdXJyZW50bHkgdXNl ZCBpbnRlcmNoYW5nZWFibHksIHdoZXJlCisgKiAgICdtZm4nIGlzIHRoZSBhcHByb3ByaWF0ZSB0 ZXJtIHRvIHVzZS4KKyAqIC0gUGhhc2Ugb3V0IHRoZSB1c2Ugb2YgZ3Bmbi9nbWZuIHdoZXJlIHBm bi9tZm4gYXJlIG1lYW50LiAgVGhpcyBleGNsdWRlcworICogICB0aGUgeDg2IHNoYWRvdyBjb2Rl LCB3aGljaCB1c2VzIGdtZm4vc21mbiBwYWlycyB3aXRoIGRpZmZlcmVudCwKKyAqICAgZG9jdW1l bnRlZCwgbWVhbmluZ3MuCisgKi8KKworI2lmbmRlZiBfX1hFTl9NTV9UWVBFU19IX18KKyNkZWZp bmUgX19YRU5fTU1fVFlQRVNfSF9fCisKKyNpbmNsdWRlIDx4ZW4vdHlwZXNhZmUuaD4KKyNpbmNs dWRlIDx4ZW4va2VybmVsLmg+CisKK1RZUEVfU0FGRSh1bnNpZ25lZCBsb25nLCBtZm4pOworI2Rl ZmluZSBQUklfbWZuICAgICAgICAgICIwNWx4IgorI2RlZmluZSBJTlZBTElEX01GTiAgICAgIF9t Zm4ofjBVTCkKKy8qCisgKiBUbyBiZSB1c2VkIGZvciBnbG9iYWwgdmFyaWFibGUgaW5pdGlhbGl6 YXRpb24uIFRoaXMgd29ya2Fyb3VuZCBhIGJ1ZworICogaW4gR0NDIDwgNS4wLgorICovCisjZGVm aW5lIElOVkFMSURfTUZOX0lOSVRJQUxJWkVSIHsgfjBVTCB9CisKKyNpZm5kZWYgbWZuX3QKKyNk ZWZpbmUgbWZuX3QgLyogR3JlcCBmb2RkZXI6IG1mbl90LCBfbWZuKCkgYW5kIG1mbl94KCkgYXJl IGRlZmluZWQgYWJvdmUgKi8KKyNkZWZpbmUgX21mbgorI2RlZmluZSBtZm5feAorI3VuZGVmIG1m bl90CisjdW5kZWYgX21mbgorI3VuZGVmIG1mbl94CisjZW5kaWYKKworc3RhdGljIGlubGluZSBt Zm5fdCBtZm5fYWRkKG1mbl90IG1mbiwgdW5zaWduZWQgbG9uZyBpKQoreworICAgIHJldHVybiBf bWZuKG1mbl94KG1mbikgKyBpKTsKK30KKworc3RhdGljIGlubGluZSBtZm5fdCBtZm5fbWF4KG1m bl90IHgsIG1mbl90IHkpCit7CisgICAgcmV0dXJuIF9tZm4obWF4KG1mbl94KHgpLCBtZm5feCh5 KSkpOworfQorCitzdGF0aWMgaW5saW5lIG1mbl90IG1mbl9taW4obWZuX3QgeCwgbWZuX3QgeSkK K3sKKyAgICByZXR1cm4gX21mbihtaW4obWZuX3goeCksIG1mbl94KHkpKSk7Cit9CisKK3N0YXRp YyBpbmxpbmUgYm9vbF90IG1mbl9lcShtZm5fdCB4LCBtZm5fdCB5KQoreworICAgIHJldHVybiBt Zm5feCh4KSA9PSBtZm5feCh5KTsKK30KKworVFlQRV9TQUZFKHVuc2lnbmVkIGxvbmcsIGdmbik7 CisjZGVmaW5lIFBSSV9nZm4gICAgICAgICAgIjA1bHgiCisjZGVmaW5lIElOVkFMSURfR0ZOICAg ICAgX2dmbih+MFVMKQorLyoKKyAqIFRvIGJlIHVzZWQgZm9yIGdsb2JhbCB2YXJpYWJsZSBpbml0 aWFsaXphdGlvbi4gVGhpcyB3b3JrYXJvdW5kIGEgYnVnCisgKiBpbiBHQ0MgPCA1LjAgaHR0cHM6 Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NjQ4NTYKKyAqLworI2RlZmlu ZSBJTlZBTElEX0dGTl9JTklUSUFMSVpFUiB7IH4wVUwgfQorCisjaWZuZGVmIGdmbl90CisjZGVm aW5lIGdmbl90IC8qIEdyZXAgZm9kZGVyOiBnZm5fdCwgX2dmbigpIGFuZCBnZm5feCgpIGFyZSBk ZWZpbmVkIGFib3ZlICovCisjZGVmaW5lIF9nZm4KKyNkZWZpbmUgZ2ZuX3gKKyN1bmRlZiBnZm5f dAorI3VuZGVmIF9nZm4KKyN1bmRlZiBnZm5feAorI2VuZGlmCisKK3N0YXRpYyBpbmxpbmUgZ2Zu X3QgZ2ZuX2FkZChnZm5fdCBnZm4sIHVuc2lnbmVkIGxvbmcgaSkKK3sKKyAgICByZXR1cm4gX2dm bihnZm5feChnZm4pICsgaSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgZ2ZuX3QgZ2ZuX21heChnZm5f dCB4LCBnZm5fdCB5KQoreworICAgIHJldHVybiBfZ2ZuKG1heChnZm5feCh4KSwgZ2ZuX3goeSkp KTsKK30KKworc3RhdGljIGlubGluZSBnZm5fdCBnZm5fbWluKGdmbl90IHgsIGdmbl90IHkpCit7 CisgICAgcmV0dXJuIF9nZm4obWluKGdmbl94KHgpLCBnZm5feCh5KSkpOworfQorCitzdGF0aWMg aW5saW5lIGJvb2xfdCBnZm5fZXEoZ2ZuX3QgeCwgZ2ZuX3QgeSkKK3sKKyAgICByZXR1cm4gZ2Zu X3goeCkgPT0gZ2ZuX3goeSk7Cit9CisKK1RZUEVfU0FGRSh1bnNpZ25lZCBsb25nLCBwZm4pOwor I2RlZmluZSBQUklfcGZuICAgICAgICAgICIwNWx4IgorI2RlZmluZSBJTlZBTElEX1BGTiAgICAg ICh+MFVMKQorCisjaWZuZGVmIHBmbl90CisjZGVmaW5lIHBmbl90IC8qIEdyZXAgZm9kZGVyOiBw Zm5fdCwgX3BmbigpIGFuZCBwZm5feCgpIGFyZSBkZWZpbmVkIGFib3ZlICovCisjZGVmaW5lIF9w Zm4KKyNkZWZpbmUgcGZuX3gKKyN1bmRlZiBwZm5fdAorI3VuZGVmIF9wZm4KKyN1bmRlZiBwZm5f eAorI2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9NTV9UWVBFU19IX18gKi8KKworLyoKKyAqIExv Y2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMt YmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5p bAorICogRW5kOgorICovCi0tIAoyLjE3LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs