Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp39674pxj; Tue, 1 Jun 2021 14:35:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxVD1rUrr+OulMODGgS86nhlIgMDAjs7uxxKDqT6Wlljjmo4uRY3ZbKccAe4GUxVjPSOIk1 X-Received: by 2002:aa7:d898:: with SMTP id u24mr15552553edq.172.1622583329701; Tue, 01 Jun 2021 14:35:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622583329; cv=none; d=google.com; s=arc-20160816; b=a/USdGM4Wv7MOQ3FpWPz4n47xfQMd2sW8vLyi+RWpxm1AsQx0Esys/1s5cYTZxk7Yc oSi4CzmZ95J/yvGGPqIaYaSxtCf519obO0ony1lGP5pHlBPK7p7wFSLk1upup5iWS7Hw cPTXNTdyLaexQgSJCxCiVmFKlTGAd+on+kpPeX5PaSOqEaYNBHhil10tEt+4i68yiWhj n/wdrsapncFFgvzKOy3CsfQojENMvbzTqOwwgdPW14LWbnz7hyKDgcG4fVcQ35HcDzZ4 FF9Saxl0Hg7Xdm7Ue0cYPPPnsuKxpUHQlBSFG762zSgd5PnabkeTS0jqjpuZzRZipuBk FM7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=G4pWzTN4TNJ0rse/CTOXr+6pW+idlodbVPNIm5a9wPE=; b=VvVILGxV7+/lOF5dgohjolFngxbM2nHUskGTLHZfYJ6lvzHvwwrhrsY68i1+S83QEp Y84L0Usbe52aeJLVTaIAg/iDME8qKfqb+KX6Iz3K3hgvdTlR5wZM9qVshOMJSv6ItfYe mZ4Yc3+5c9aVxssZtoiSIDhxWuT09i7VbYVUWT7xmrCW020FaZ+aHUwZ37cWbN+Yzvcx GqD7f+P8FlydYlPmQgGtyIZFESTNtDU5f8wC0YfgLrFv++WBm9T1vRWB7MAGpB7pxKIE h9twNJZcp/If8+LHNKv28EJ2fkBDscC9BoneRnCYXGPHDBJYEIYl0RXg9Aa0Wnqe31Fu /o3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UYejXAk2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gw16si17151251ejb.250.2021.06.01.14.35.00; Tue, 01 Jun 2021 14:35:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UYejXAk2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234698AbhFAVdb (ORCPT + 99 others); Tue, 1 Jun 2021 17:33:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:54072 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234513AbhFAVda (ORCPT ); Tue, 1 Jun 2021 17:33:30 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9105F60FE3; Tue, 1 Jun 2021 21:31:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1622583108; bh=kvGZ/iThdsHX6lx/mK//0fCXDu5p9x4gQqJ8bXxQPCc=; h=From:To:Cc:Subject:Date:From; b=UYejXAk2vgPs1tJWdtNdXHMidre/gIvpL8bXkx8+f7ZLKSLtmZ/mKb9mN08h/klQL YxsBeYf+VW3IjpKS842i6d3/yRfroBKDrfOeNjh1Q5zM7KUVqrW8L94DRav73uQE1l RdvmGrQ2wj4h8P9k31xxkaIYCu4i/VfjS7wKZlElp/59MDjuG/fr04yH1kb4WRl2pN 5vvC8AvbhSwn5WXCuZjlv0clBKrj+jbtb6tZwJidKvikVSq0Sby478S2g6C7gCkoyk orNy+FWHr5wb3mT+CfXgNG8U5/w+4p5IG3nuz08bmRMXq6/53dKQDr/olpv1l7jHOQ XTPmsvtDrGq5A== From: Bjorn Helgaas To: linux-kernel@vger.kernel.org Cc: Masahiro Yamada , Kees Cook , Linus Walleij , Arnd Bergmann , Paul Cercueil , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Bjorn Helgaas Subject: [PATCH] kconfig.h: explain IS_MODULE(), IS_ENABLED() Date: Tue, 1 Jun 2021 16:31:43 -0500 Message-Id: <20210601213143.1973770-1-helgaas@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bjorn Helgaas Extend IS_MODULE() and IS_ENABLED comments to explain why one might use "#if IS_ENABLED(CONFIG_FOO)" instead of "#ifdef CONFIG_FOO". To wit, "#ifdef CONFIG_FOO" is true only for CONFIG_FOO=y, while "#if IS_ENABLED(CONFIG_FOO)" is true for both CONFIG_FOO=y and CONFIG_FOO=m. This is because "CONFIG_FOO=m" in .config does not result in "CONFIG_FOO" being defined. The actual definitions are in autoconf.h, where: CONFIG_FOO=y results in #define CONFIG_FOO 1 CONFIG_FOO=m results in #define CONFIG_FOO_MODULE 1 Signed-off-by: Bjorn Helgaas --- include/linux/kconfig.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/linux/kconfig.h b/include/linux/kconfig.h index cc8fa109cfa3..20d1079e92b4 100644 --- a/include/linux/kconfig.h +++ b/include/linux/kconfig.h @@ -51,7 +51,8 @@ /* * IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'm', 0 - * otherwise. + * otherwise. CONFIG_FOO=m results in "#define CONFIG_FOO_MODULE 1" in + * autoconf.h. */ #define IS_MODULE(option) __is_defined(option##_MODULE) @@ -66,7 +67,8 @@ /* * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm', - * 0 otherwise. + * 0 otherwise. Note that CONFIG_FOO=y results in "#define CONFIG_FOO 1" in + * autoconf.h, while CONFIG_FOO=m results in "#define CONFIG_FOO_MODULE 1". */ #define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option)) -- 2.25.1