From nobody Sun Feb 8 05:42:23 2026 Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 13E3C331A5D for ; Mon, 12 Jan 2026 07:31:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.194 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768203104; cv=none; b=uz60Cb3P8D8saBz+sbm1gLv0HOv3z6Pv7VhdAyca6VN5znThR5D5zY1IgIuTQTAhVJpkf82hbE6jjR1G6h7fCj2xSvRF8ZjHZtVJlezVBJ2nwGcjMIX+q4uSSKnNMMJbphXxwoWs2WU9w2X4LHeA0CLZ1PswDDyYzVlExElEYpA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768203104; c=relaxed/simple; bh=tYtQxBgUqKR92NbcYX76PhLlJU93RkKFpHKXGXIMEl8=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=Xiu1bQDApRhY9TtzMVcWXwWe9pxXgRkLzXXTG7OMkTYmMXE92HpGXYUFz/2tZZqvEww/hlFSft70mF2R2lbrfVm4vHj8RqtI6VuoETwWshlYtmMLzlrFMD7X4jq6nyKw5JESjv3NnQxzT8zPooytuO0k+SaqIVZBCfxIek8kFgo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TMv/DcX/; arc=none smtp.client-ip=209.85.215.194 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TMv/DcX/" Received: by mail-pg1-f194.google.com with SMTP id 41be03b00d2f7-c46d68f2b4eso3779724a12.2 for ; Sun, 11 Jan 2026 23:31:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768203098; x=1768807898; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=EjuUi0QUA6RJxii/d5muuv3zhVxVzqbMxj6gCIp3Xjo=; b=TMv/DcX/9H5Zj7F4oGJzA5Zot5vGozuZ2Aa9yL6rjECZ1ZuhcYqDbZKmHSB+BAA31X Tuu7m8nRW2Evu1MUs4qbICZGqXcpvllQkevh3eIkAjYxOo4XFUGeMBUzj3u6RVy6Zk9X HVeBrcFEVze48Fo7HrbDf4cz3irJi+AElU5Bq7Q0etUf9mEMIATsNJr9yM57FT7sz9zw l5TExde9Sa8xKfjues99AeFZOOvp2LTeAyLmavqT546154dlm0Ve2X214pmRavdpzxXI czAivndFH932QqWyFez1gk4LXu03JnBw2ElR48GpOT7WVHzsilR0MFHyRsNxzxy8CqV0 zIcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768203098; x=1768807898; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=EjuUi0QUA6RJxii/d5muuv3zhVxVzqbMxj6gCIp3Xjo=; b=uNGDDb2WxadTVj5FCm/xVRUGtzh1JOpGqTQkYIbH28OSYoGPaAG2/tSMtULS1DRIZD 0DIx5BMlIZ5TvwWvOQb9V1c6FTL3JacmVXBiRuet/PiTuzkGrFpyQIm9mYMthNsqQAch yM+2QCH+eihcrkIxZ9IJ2/uIisLSNRt3RmZyEZ4nONiI6TIdPERcDZn/CJdmgbaGajxt u6eAJZggGpKAMPRpNWtevFdYTTpScwiuj5LG6b7AXGTpxexV9AcJ9KQgMTj9Gr3JiaVY WxRy6MZHzPiq8taPewHbuEHv3Q0L8xru7loBCDfqbfNcWArJcPwM+vyXNkMKG6UgMF/D 2R3A== X-Forwarded-Encrypted: i=1; AJvYcCWG/XhkxZBQvPfC0ArVBSFzmqKfO0P07R9gsPSUxO/0fml8Egy28Fjz6x4u+UkyXu+j4Ull2BI+yNZzdPQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yxf8xUunsyhU2VQ+dw9iggL0VKeJ2gMrNGWQ43vpEfqd/w0awYV qd/+hy8q7ZZRNsNykguLt1rLlAXeJT8soFmRt7eUKe4mAWpZzyAzQ1Kk X-Gm-Gg: AY/fxX4EqH3BKgWvIbXYLERkKenV3d0ytZZSFQUzY+SfiSie5av04bRDTZTnHky06Gr SsdlERU+thNx6AiKg5WxJt3We4quzXcShruRqit6zH8nHRW87dGe2dQAOIFYYOsSqNC8IwQIQZ3 8Mv69KxcS+RYkzSop4A2F4i7JzaV2taXbZQtVW8qqKl351CiaUkbZrveLMBIyRUMzLIDWbAePv7 LaEp05+qFmUWJ9lDUIeK/SSaREA4ofm9K0f4iutvLZ8fdrAwAAAd10RPUCo3XuQ1As1CK98ExXa PLSAdZbu7qzQpNq97oG7uZcrgK5vs8jz6BHINITMbUb7FuR1vDaE/1npDQNsNouIf3msvH+vNnt nVo7B2zLmKSL9VDpxqGXG0z4EQO1+GBbWyTQSaap1EIn7Jm+oL8bcHJxWF46dCrCMmPY7+kECw5 3x0ajoW0iubWwSUnEp1tbHkCUWDBPa X-Google-Smtp-Source: AGHT+IHBPvUsY13KtoTRsogdm/bRlWq0gO1v0k4y7rzb1fO/rxnKYPUBI6NqEG0WWU38DlPQik1nWA== X-Received: by 2002:a17:90b:4b85:b0:34c:fbf0:fa55 with SMTP id 98e67ed59e1d1-34f68c4d727mr15921794a91.21.1768203098011; Sun, 11 Jan 2026 23:31:38 -0800 (PST) Received: from PC-YLX55712.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34f6af4e14asm6732798a91.1.2026.01.11.23.31.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jan 2026 23:31:37 -0800 (PST) From: Wang Xiang To: acme@kernel.org, namhyung@kernel.org Cc: peterz@infradead.org, mingo@redhat.com, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, james.clark@linaro.org, yangsonghua@lixiang.com, wangxiang3@lixiang.com, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] tools headers: Sync UAPI linux/openat2.h with the kernel sources Date: Mon, 12 Jan 2026 15:31:25 +0800 Message-Id: <20260112073125.4115607-1-xiangw985@gmail.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wang Xiang Since commit 3d6cfbaf279d ("perf beauty: Introduce scrape script for various fs syscalls 'flags' arguments"), the file tools/perf/trace/beauty/include/uapi/linux/fcntl.h includes , but openat2.h was never synced to the tools/perf/trace/beauty/include/uapi/linux/ directory, even though it was added to the BEAUTY_FILES check list in tools/perf/check-headers.sh. This causes a compilation failure: $ aarch64-linux-gnu-gcc -E tools/perf/trace/beauty/include/uapi/linux/fcntl.h \ -I./tools/perf/trace/beauty/include/uapi tools/perf/trace/beauty/include/uapi/linux/fcntl.h:6:10: fatal error: linux/openat2.h: No such file or directory 6 | #include So, now we need sync openat2.h from include/uapi/linux/openat2.h to fix this dependency. Signed-off-by: Wang Xiang --- tools/perf/check-headers.sh | 1 + .../trace/beauty/include/uapi/linux/openat2.h | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 tools/perf/trace/beauty/include/uapi/linux/openat2.h diff --git a/tools/perf/check-headers.sh b/tools/perf/check-headers.sh index e0537f275da2..411a45d8f9f6 100755 --- a/tools/perf/check-headers.sh +++ b/tools/perf/check-headers.sh @@ -95,6 +95,7 @@ declare -a BEAUTY_FILES=3D( "include/uapi/linux/fcntl.h" "include/uapi/linux/fs.h" "include/uapi/linux/mount.h" + "include/uapi/linux/openat2.h" "include/uapi/linux/prctl.h" "include/uapi/linux/sched.h" "include/uapi/linux/stat.h" diff --git a/tools/perf/trace/beauty/include/uapi/linux/openat2.h b/tools/p= erf/trace/beauty/include/uapi/linux/openat2.h new file mode 100644 index 000000000000..a5feb7604948 --- /dev/null +++ b/tools/perf/trace/beauty/include/uapi/linux/openat2.h @@ -0,0 +1,43 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _UAPI_LINUX_OPENAT2_H +#define _UAPI_LINUX_OPENAT2_H + +#include + +/* + * Arguments for how openat2(2) should open the target path. If only @flag= s and + * @mode are non-zero, then openat2(2) operates very similarly to openat(2= ). + * + * However, unlike openat(2), unknown or invalid bits in @flags result in + * -EINVAL rather than being silently ignored. @mode must be zero unless o= ne of + * {O_CREAT, O_TMPFILE} are set. + * + * @flags: O_* flags. + * @mode: O_CREAT/O_TMPFILE file mode. + * @resolve: RESOLVE_* flags. + */ +struct open_how { + __u64 flags; + __u64 mode; + __u64 resolve; +}; + +/* how->resolve flags for openat2(2). */ +#define RESOLVE_NO_XDEV 0x01 /* Block mount-point crossings + (includes bind-mounts). */ +#define RESOLVE_NO_MAGICLINKS 0x02 /* Block traversal through procfs-style + "magic-links". */ +#define RESOLVE_NO_SYMLINKS 0x04 /* Block traversal through all symlinks + (implies OEXT_NO_MAGICLINKS) */ +#define RESOLVE_BENEATH 0x08 /* Block "lexical" trickery like + "..", symlinks, and absolute + paths which escape the dirfd. */ +#define RESOLVE_IN_ROOT 0x10 /* Make all jumps to "/" and ".." + be scoped inside the dirfd + (similar to chroot(2)). */ +#define RESOLVE_CACHED 0x20 /* Only complete if resolution can be + completed through cached lookup. May + return -EAGAIN if that's not + possible. */ + +#endif /* _UAPI_LINUX_OPENAT2_H */ --=20 2.25.1