Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp3737106iog; Tue, 21 Jun 2022 05:05:07 -0700 (PDT) X-Google-Smtp-Source: AGRyM1stjzzxWusy+vH89Gr+sl+K/Q0ninF8BElitTPnTgwkjtGY19qBMLNPAIkhZKK0W5OCnN+A X-Received: by 2002:a17:90a:6a86:b0:1ec:976f:8bd7 with SMTP id u6-20020a17090a6a8600b001ec976f8bd7mr15692544pjj.176.1655813107377; Tue, 21 Jun 2022 05:05:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655813107; cv=none; d=google.com; s=arc-20160816; b=htOMKrlpYUSCj8sgia5lXNktUsW62VvreaGS39u8qSMJe7TP5f6iCaUgbIIowjFW7/ 9O1BKypFFtX5BPzdEBTn958Rlm9DH6BeGZg024Y/GdqAcOLl0KhA8BYp3PYEXo9HWZsF wGl9TmwoC0cTuLcD06CitbXWbrGz4SWyfLzP+plHgEWL9wxCF1xg2Dcna9XmE+OwZogD EE5r2zzhG79JJED9HomHfSEWR++ZCTlnPy5oXl2VUGt4+QV8WKagKes2BiRhRSiteDkY ezdg7nG8Iw5XufNSujic2swGSy3NgoQVadQzf8vrLyyShtKHJGo0qlQsziVQWyiLiieP xjqg== 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:dkim-signature; bh=uU2jiNk6Ug60ZbuSPO6zGopTbMqjO7aR6mTRO4CzwJg=; b=Qa3mRoTIBsYnCnaDG7AYEqEbpZd2+L3itU9+irQMS0HJN/TgKjkCenQDdYgFRcz/du BgcfOvd1mPfQjbCE/VC0adIZwJpTMlMaP3lIQz4Pc1NYceWfUXUregMiFJ5X7mhX3DvL gvYocQSH5Ao4gKipYW0oBDvJ76BFbAV/qiRuFbckCWhTpVlBOiHwXD5x7YglS9FXzEdt qKDkRGgfL6eIbLRpI/iJoDTsyeonedjrDurBzptMMCX4sdm9Bir5m4NycbplhKOviXSJ A1fyc38PE/vBes+tvzOhzi0YIDZ7jLeayLhfEVdl37yVSXXognt9dMO+lmfviEefoWWq +zfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.cz header.s=susede2_rsa header.b=j60xuo3m; dkim=neutral (no key) header.i=@suse.cz header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id iw7-20020a170903044700b00163bad6ec7bsi12540341plb.613.2022.06.21.05.04.53; Tue, 21 Jun 2022 05:05:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.cz header.s=susede2_rsa header.b=j60xuo3m; dkim=neutral (no key) header.i=@suse.cz header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349742AbiFUMCG (ORCPT + 99 others); Tue, 21 Jun 2022 08:02:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43334 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231252AbiFUMCE (ORCPT ); Tue, 21 Jun 2022 08:02:04 -0400 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 667BD2B1B1; Tue, 21 Jun 2022 05:02:03 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 2140D1F8A3; Tue, 21 Jun 2022 12:02:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1655812922; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=uU2jiNk6Ug60ZbuSPO6zGopTbMqjO7aR6mTRO4CzwJg=; b=j60xuo3mlUkeVlZ0C46eHEJwpKdE9M7ag0GKfxhoJoPWEyBl/IshNczI8+QXPnbalYIc48 64gC+gHfpUNhd9KaS/SD44DIvReFkLqiBFPURtWLpvOsJGmD5Q+je1k5KwCVkRHUJaG2t1 RJMTSTGe4/Qcc/hPG4fSXKvTJCsRnvI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1655812922; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=uU2jiNk6Ug60ZbuSPO6zGopTbMqjO7aR6mTRO4CzwJg=; b=l6PIt3b/6fWF1z3LBUP/Ez7zJNMHL1V2ZccxhDw7dVRnN2O8rKAH9kHDoeExpdUPSTHM8m ZcBq+h5bHnXNZuDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 046E913638; Tue, 21 Jun 2022 12:02:01 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id vTmVOjmzsWJ7ewAAMHmgww (envelope-from ); Tue, 21 Jun 2022 12:02:01 +0000 From: Cyril Hrubis To: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-api@vger.kernel.org, libc-alpha@sourceware.org, arnd@arndb.de, ltp@lists.linux.it, David.Laight@aculab.com, zack@owlfolio.org, dhowells@redhat.com, Cyril Hrubis Subject: [PATCH v3] uapi: Make __{u,s}64 match {u,}int64_t in userspace Date: Tue, 21 Jun 2022 14:03:55 +0200 Message-Id: <20220621120355.2903-1-chrubis@suse.cz> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This changes the __u64 and __s64 in userspace on 64bit platforms from long long (unsigned) int to just long (unsigned) int in order to match the uint64_t and int64_t size in userspace for C code. We cannot make the change for C++ since that would be non-backwards compatible change and may cause possible regressions and even compilation failures, e.g. overloaded function may no longer find a correct match. This allows us to use the kernel structure definitions in userspace in C code. For example we can use PRIu64 and PRId64 modifiers in printf() to print structure membere. Morever with this there would be no need to redefine these structures in an libc implementations as it is done now. Consider for example the newly added statx() syscall. If we use the header from uapi we will get warnings when attempting to print it's members as: printf("%" PRIu64 "\n", stx.stx_size); We get: warning: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type '__u64' {aka 'long long unsigned int'} Signed-off-by: Cyril Hrubis --- include/uapi/asm-generic/types.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) v2: Make sure we do not break C++ applications v3: Update commit message to explain C++ exclusion diff --git a/include/uapi/asm-generic/types.h b/include/uapi/asm-generic/types.h index dfaa50d99d8f..11e468a39d1e 100644 --- a/include/uapi/asm-generic/types.h +++ b/include/uapi/asm-generic/types.h @@ -1,9 +1,16 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _ASM_GENERIC_TYPES_H #define _ASM_GENERIC_TYPES_H + +#include + /* - * int-ll64 is used everywhere now. + * int-ll64 is used everywhere in kernel now. */ -#include +#if !defined(__KERNEL__) && !defined(__cplusplus) && __BITSPERLONG == 64 +# include +#else +# include +#endif #endif /* _ASM_GENERIC_TYPES_H */ -- 2.35.1