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=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,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 74A40C32792 for ; Mon, 30 Sep 2019 15:01:26 +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 45EEC20679 for ; Mon, 30 Sep 2019 15:01:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="m6MWzgzB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 45EEC20679 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=none 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 1iExAq-0006Bm-Jd; Mon, 30 Sep 2019 15:01:16 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iExAp-0006BG-9j for xen-devel@lists.xenproject.org; Mon, 30 Sep 2019 15:01:15 +0000 X-Inumbo-ID: 18f13e6e-e393-11e9-bf31-bc764e2007e4 Received: from mail-wr1-x441.google.com (unknown [2a00:1450:4864:20::441]) by localhost (Halon) with ESMTPS id 18f13e6e-e393-11e9-bf31-bc764e2007e4; Mon, 30 Sep 2019 15:00:53 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id h7so11746459wrw.8 for ; Mon, 30 Sep 2019 08:00:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jBrEUmLmtAmRmL0ZQe75O+VGK/lIBJ2eQ4PSZ4jPdH0=; b=m6MWzgzBfJhXOKh+t5/3eA6RsAMf5EOQdP83nwfOg+Jqv4vNftDY3jSEa1TfhNF8fm pmvw0aHqOpSeN6Pk0gok9ltaOrukUqVzSQ5WSx55W62BInQQiCaTCX1cJanXSKEqYh5E gRXeoVOifiZOGaftSghxf2BytgneZjrWfbgy5GkdSaI6cACj6LnGI+w2bKgiWpQna5+1 Y0PelY3F4Eruf6GiLbYWQyg8QklJ2Qkm101S1d9SQ158fru7LF+N3836ffcG712wcWqQ /5EGK3pNlSP9HZN3N2cvjhCtr5YG0BeNsgQjtEUruQIT6c7ajA/nYHwC7nHImmDhZ6js LULg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=jBrEUmLmtAmRmL0ZQe75O+VGK/lIBJ2eQ4PSZ4jPdH0=; b=po4QUK4toGLDVG7UdMsHzO084xHfQaSJq8T/du6ns3sS/oL0ZiQwBhnzXbK1LZmTLI APyB0eBj4KPfgU5MqQ41Ho9lepal9weEpP3tzRUJifM3htD06Tydt7Pw/PTCh1ZtqbRn o7Ul4hPqWICgLKFzojJ3FS1LDGJTNRdcw1u7rdnMxtkYDg/UddXK0rU4/xoWTaUM7IQA m2slg0rqgFlpnb3pUkG64PhmSzc3jnmcli1FSczlxwY6aCEDCT8ZchPcRjsm5ziTzrQE kvaALM4pTEkIxLeSjo0UG006Eac9InKf9YBgHZ3pseINnK8ZdxSbM6TtS6IdHlKG7BfN Ntjg== X-Gm-Message-State: APjAAAXaf5ri0vTc2ruueAZV1wd7RVotQxlWFdBKLGdBQePFJsdP7kTf jpIRPZhFIxifRrVSWW34AyUgJMCJgg4= X-Google-Smtp-Source: APXvYqwhXMRcnQ4crkziMurYZ2VZh8DTU6KYKuTROLbsX7plOy1Pv6yV8Omj8O3CN8ZMQRykDNBE+g== X-Received: by 2002:adf:e988:: with SMTP id h8mr13603675wrm.354.1569855652462; Mon, 30 Sep 2019 08:00:52 -0700 (PDT) Received: from debian.mshome.net (207.148.159.143.dyn.plus.net. [143.159.148.207]) by smtp.gmail.com with ESMTPSA id f143sm32870852wme.40.2019.09.30.08.00.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Sep 2019 08:00:51 -0700 (PDT) From: Wei Liu X-Google-Original-From: Wei Liu To: Xen Development List Date: Mon, 30 Sep 2019 16:00:39 +0100 Message-Id: <20190930150044.5734-6-liuwe@microsoft.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190930150044.5734-1-liuwe@microsoft.com> References: <20190930150044.5734-1-liuwe@microsoft.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH for-next v2 5/9] x86: introduce hypervisor framework 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: Wei Liu , Wei Liu , Andrew Cooper , Michael Kelley , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" V2Ugd2lsbCBzb29uIGltcGxlbWVudCBIeXBlci1WIHN1cHBvcnQgZm9yIFhlbi4gQWRkIGEgZnJh bWV3b3JrIGZvcgp0aGF0LgoKVGhpcyByZXF1aXJlcyBtb3Zpbmcgc29tZSBvZiB0aGUgaHlwZXJ2 aXNvcl8qIGZ1bmN0aW9ucyBmcm9tIHhlbi5oIHRvCmh5cGVydmlzb3IuaC4KClNpZ25lZC1vZmYt Ynk6IFdlaSBMaXUgPGxpdXdlQG1pY3Jvc29mdC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2d1ZXN0 L01ha2VmaWxlICAgICAgICAgICAgfCAgMiArCiB4ZW4vYXJjaC94ODYvZ3Vlc3QvaHlwZXJ2aXNv ci5jICAgICAgICB8IDQ1ICsrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYv Z3Vlc3QuaCAgICAgICAgICAgIHwgIDEgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC9oeXBl cnZpc29yLmggfCA2MSArKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNt LXg4Ni9ndWVzdC94ZW4uaCAgICAgICAgfCAxMiAtLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxMDkg aW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2Fy Y2gveDg2L2d1ZXN0L2h5cGVydmlzb3IuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRl L2FzbS14ODYvZ3Vlc3QvaHlwZXJ2aXNvci5oCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2d1 ZXN0L01ha2VmaWxlIGIveGVuL2FyY2gveDg2L2d1ZXN0L01ha2VmaWxlCmluZGV4IDY4MDZmMDQ5 NDcuLmY2M2Q2NGJiZWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ndWVzdC9NYWtlZmlsZQor KysgYi94ZW4vYXJjaC94ODYvZ3Vlc3QvTWFrZWZpbGUKQEAgLTEgKzEsMyBAQAorb2JqLXkgKz0g aHlwZXJ2aXNvci5vCisKIHN1YmRpci0kKENPTkZJR19YRU5fR1VFU1QpICs9IHhlbgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2d1ZXN0L2h5cGVydmlzb3IuYyBiL3hlbi9hcmNoL3g4Ni9ndWVz dC9oeXBlcnZpc29yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODli OWFlNGRlMAotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9hcmNoL3g4Ni9ndWVzdC9oeXBlcnZpc29y LmMKQEAgLTAsMCArMSw0NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogYXJjaC94ODYv Z3Vlc3QvaHlwZXJ2aXNvci5jCisgKgorICogU3VwcG9ydCBmb3IgZGV0ZWN0aW5nIGFuZCBydW5u aW5nIHVuZGVyIGEgaHlwZXJ2aXNvci4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2Yg dGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisgKgorICogQ29weXJpZ2h0IChjKSAyMDE5IE1pY3Jvc29mdC4KKyAqLworCisjaW5jbHVkZSA8 eGVuL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxhc20vY2FjaGUuaD4KKyNpbmNsdWRlIDxhc20vZ3Vl c3QvaHlwZXJ2aXNvci5oPgorCitzdGF0aWMgc3RydWN0IGh5cGVydmlzb3Jfb3BzICpob3BzIF9f cmVhZF9tb3N0bHk7CisKK2Jvb2wgaHlwZXJ2aXNvcl9wcm9iZSh2b2lkKQoreworICAgIGlmICgg aG9wcyApCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCisv KgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNE IgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMt bW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv Z3Vlc3QuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3QuaAppbmRleCBhMzhjNmI1YjNmLi44 ZTE2NzE2NWFlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0LmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC5oCkBAIC0yMCw2ICsyMCw3IEBACiAjZGVmaW5lIF9f WDg2X0dVRVNUX0hfXwogCiAjaW5jbHVkZSA8YXNtL2d1ZXN0L2h5cGVyY2FsbC5oPgorI2luY2x1 ZGUgPGFzbS9ndWVzdC9oeXBlcnZpc29yLmg+CiAjaW5jbHVkZSA8YXNtL2d1ZXN0L3B2aC1ib290 Lmg+CiAjaW5jbHVkZSA8YXNtL2d1ZXN0L3hlbi5oPgogI2luY2x1ZGUgPGFzbS9wdi9zaGltLmg+ CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L2h5cGVydmlzb3IuaCBiL3hl bi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3QvaHlwZXJ2aXNvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLjM4MzQ0ZTJlODkKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2d1ZXN0L2h5cGVydmlzb3IuaApAQCAtMCwwICsxLDYxIEBACisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisgKiBhc20teDg2L2d1ZXN0L2h5cGVydmlzb3IuaAorICoKKyAqIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSwgdmVyc2lvbiAyLCBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICoKKyAqIENvcHlyaWdodCAoYykgMjAx OSBNaWNyb3NvZnQuCisgKi8KKworI2lmbmRlZiBfX1g4Nl9IWVBFUlZJU09SX0hfXworI2RlZmlu ZSBfX1g4Nl9IWVBFUlZJU09SX0hfXworCisjaWZkZWYgQ09ORklHX0dVRVNUCisKK3N0cnVjdCBo eXBlcnZpc29yX29wcyB7CisgICAgLyogTmFtZSBvZiB0aGUgaHlwZXJ2aXNvciAqLworICAgIGNv bnN0IGNoYXIgKm5hbWU7CisgICAgLyogTWFpbiBzZXR1cCByb3V0aW5lICovCisgICAgdm9pZCAo KnNldHVwKSh2b2lkKTsKKyAgICAvKiBBUCBzZXR1cCAqLworICAgIHZvaWQgKCphcF9zZXR1cCko dm9pZCk7CisgICAgLyogUmVzdW1lIGZyb20gc3VzcGVuc2lvbiAqLworICAgIHZvaWQgKCpyZXN1 bWUpKHZvaWQpOworfTsKKworYm9vbCBoeXBlcnZpc29yX3Byb2JlKHZvaWQpOwordm9pZCBoeXBl cnZpc29yX3NldHVwKHZvaWQpOwordm9pZCBoeXBlcnZpc29yX2FwX3NldHVwKHZvaWQpOwordm9p ZCBoeXBlcnZpc29yX3Jlc3VtZSh2b2lkKTsKKworI2Vsc2UKKworI2luY2x1ZGUgPHhlbi90eXBl cy5oPgorCitzdGF0aWMgaW5saW5lIGJvb2wgaHlwZXJ2aXNvcl9wcm9iZSh2b2lkKSB7IHJldHVy biBmYWxzZTsgfQorc3RhdGljIGlubGluZSB2b2lkIGh5cGVydmlzb3Jfc2V0dXAodm9pZCkge30K K3N0YXRpYyBpbmxpbmUgdm9pZCBoeXBlcnZpc29yX2FwX3NldHVwKHZvaWQpIHt9CitzdGF0aWMg aW5saW5lIHZvaWQgaHlwZXJ2aXNvcl9yZXN1bWUodm9pZCkge30KKworI2VuZGlmICAvKiBDT05G SUdfR1VFU1QgKi8KKworI2VuZGlmIC8qIF9fWDg2X0hZUEVSVklTT1JfSF9fICovCisKKy8qCisg KiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisg KiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2Rl OiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVz dC94ZW4uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3QveGVuLmgKaW5kZXggYjAxNWVkMTg4 My4uMzE0NWY3NTM2MSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC94ZW4u aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L3hlbi5oCkBAIC0zMywxMSArMzMsOCBA QCBleHRlcm4gYm9vbCBwdl9jb25zb2xlOwogZXh0ZXJuIHVpbnQzMl90IHhlbl9jcHVpZF9iYXNl OwogCiB2b2lkIHByb2JlX2h5cGVydmlzb3Iodm9pZCk7Ci12b2lkIGh5cGVydmlzb3Jfc2V0dXAo dm9pZCk7Ci12b2lkIGh5cGVydmlzb3JfYXBfc2V0dXAodm9pZCk7CiBpbnQgaHlwZXJ2aXNvcl9h bGxvY191bnVzZWRfcGFnZShtZm5fdCAqbWZuKTsKIGludCBoeXBlcnZpc29yX2ZyZWVfdW51c2Vk X3BhZ2UobWZuX3QgbWZuKTsKLXZvaWQgaHlwZXJ2aXNvcl9yZXN1bWUodm9pZCk7CiAKIERFQ0xB UkVfUEVSX0NQVSh1bnNpZ25lZCBpbnQsIHZjcHVfaWQpOwogREVDTEFSRV9QRVJfQ1BVKHN0cnVj dCB2Y3B1X2luZm8gKiwgdmNwdV9pbmZvKTsKQEAgLTQ5LDE1ICs0Niw2IEBAIERFQ0xBUkVfUEVS X0NQVShzdHJ1Y3QgdmNwdV9pbmZvICosIHZjcHVfaW5mbyk7CiAKIHN0YXRpYyBpbmxpbmUgdm9p ZCBwcm9iZV9oeXBlcnZpc29yKHZvaWQpIHt9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBoeXBlcnZp c29yX3NldHVwKHZvaWQpCi17Ci0gICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Ci19Ci1zdGF0aWMg aW5saW5lIHZvaWQgaHlwZXJ2aXNvcl9hcF9zZXR1cCh2b2lkKQotewotICAgIEFTU0VSVF9VTlJF QUNIQUJMRSgpOwotfQotCiAjZW5kaWYgLyogQ09ORklHX1hFTl9HVUVTVCAqLwogI2VuZGlmIC8q IF9fWDg2X0dVRVNUX1hFTl9IX18gKi8KIAotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==