/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/fs.h>
+#include <linux/magic.h>
#include <signal.h>
#include <stdlib.h>
#include <sys/xattr.h>
#include "fs-util.h"
#include "log.h"
#include "login-util.h"
-#include "missing_fs.h"
-#include "missing_magic.h"
#include "parse-util.h"
#include "path-util.h"
#include "pidref.h"
set -eu
set -o pipefail
-cpp="$1"
-filesystems_gperf="$2"
+cpp="${1:?}"
+filesystems_gperf="${2:?}"
shift 2
-includes=""
-for i in "$@"; do
- includes="$includes -include $i"
-done
-
error=false
# shellcheck disable=SC2086
-for fs in $($cpp -dM $includes - </dev/null | \
+for fs in $($cpp -dM -include linux/magic.h "$@" - </dev/null | \
grep -E '_MAGIC' | \
grep -vE 'LINUX_MAGIC' | \
awk '/^#define[ \t]+[A-Z0-9_]+MAGIC[ \t]+/ { print $2; }'); do
#include <linux/magic.h>
#include "filesystems.h"
-#include "missing_magic.h"
#include "stat-util.h"
struct FilesystemMagic {
sources += basic_sources
-missing_audit_h = files('missing_audit.h')
-
generated_gperf_headers = []
foreach item : [
# name, source, struct name, prefix, headers
############################################################
-filesystem_includes = files(
- '../include/uapi/linux/magic.h',
- 'missing_magic.h',
-)
-
check_filesystems = find_program('check-filesystems.sh')
r = run_command(
[
'env', '--chdir', meson.project_build_root(),
- check_filesystems, cpp, files('filesystems-gperf.gperf')
- ] + filesystem_includes,
+ check_filesystems, cpp, files('filesystems-gperf.gperf'),
+ system_include_args,
+ ],
check: false,
)
if r.returncode() != 0
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
+#include <linux/magic.h>
+#include <linux/nsfs.h>
#include <sched.h>
#include <sys/ioctl.h>
#include <sys/mount.h>
#include "fd-util.h"
#include "fileio.h"
#include "log.h"
-#include "missing_magic.h"
-#include "missing_namespace.h"
#include "mountpoint-util.h"
#include "namespace-util.h"
#include "parse-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/fs.h>
+#include <linux/magic.h>
#include <sys/ioctl.h>
#include <threads.h>
#include <unistd.h>
#include "errno-util.h"
#include "fd-util.h"
#include "fileio.h"
-#include "missing_fs.h"
-#include "missing_magic.h"
#include "mountpoint-util.h"
#include "parse-util.h"
#include "pidfd-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
+#include <linux/magic.h>
#include <sys/statvfs.h>
#include <unistd.h>
#include "fs-util.h"
#include "hash-funcs.h"
#include "log.h"
-#include "missing_magic.h"
#include "mountpoint-util.h"
#include "path-util.h"
#include "siphash24.h"
#include <fcntl.h>
#include <linux/kd.h>
+#include <linux/magic.h>
#include <linux/tiocl.h>
#include <linux/vt.h>
#include <poll.h>
#include "inotify-util.h"
#include "io-util.h"
#include "log.h"
-#include "missing_magic.h"
#include "namespace-util.h"
#include "parse-util.h"
#include "path-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/bpf.h>
+#include <linux/magic.h>
#include "alloc-util.h"
#include "bpf-foreign.h"
#include "cgroup.h"
#include "hash-funcs.h"
#include "hashmap.h"
-#include "missing_magic.h"
#include "siphash24.h"
#include "stat-util.h"
#include "unit.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/loop.h>
+#include <linux/magic.h>
#include <sched.h>
#include <stdio.h>
#include <stdlib.h>
#include "log.h"
#include "loop-util.h"
#include "loopback-setup.h"
-#include "missing_magic.h"
#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/audit.h>
#include <math.h>
#include <sys/stat.h>
#include <unistd.h>
#include "image-policy.h"
#include "log.h"
#include "manager.h"
-#include "missing_audit.h"
#include "mount-util.h"
#include "namespace.h"
#include "open-file.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
+#include <linux/magic.h>
#include <unistd.h>
#include "sd-json.h"
#include "log.h"
#include "main-func.h"
#include "memory-util.h"
-#include "missing_magic.h"
#include "pager.h"
#include "parse-argument.h"
#include "parse-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/loop.h>
+#include <linux/magic.h>
#include <poll.h>
#include <sys/file.h>
#include <sys/ioctl.h>
#include "keyring-util.h"
#include "loop-util.h"
#include "memory-util.h"
-#include "missing_magic.h"
#include "mkdir.h"
#include "mkfs-util.h"
#include "openssl-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
+
#include "btrfs-util.h"
#include "errno-util.h"
#include "fd-util.h"
#include "homework-quota.h"
#include "log.h"
#include "memory-util.h"
-#include "missing_magic.h"
#include "quota-util.h"
#include "stat-util.h"
#include "user-record.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
#include <stdlib.h>
#include <sys/mount.h>
#include <unistd.h>
#include "loop-util.h"
#include "main-func.h"
#include "memory-util.h"
-#include "missing_magic.h"
#include "mount-util.h"
#include "path-util.h"
#include "recovery-key.h"
'uapi/linux/in.h',
)
+# Source files that provides AUDIT_XYZ
+audit_sources = files(
+ 'override/linux/audit.h',
+)
+
# Source files that provides KEY_XYZ
keyboard_sources = files(
'uapi/linux/input.h',
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <linux/audit.h> /* IWYU pragma: export */
+#include_next <linux/audit.h> /* IWYU pragma: export */
#if HAVE_AUDIT
# include <libaudit.h> /* IWYU pragma: export */
#endif
-/* We use _Static_assert() directly here instead of assert_cc()
+#include <assert.h>
+
+/* We use static_assert() directly here instead of assert_cc()
* because if we include macro.h in this header, the invocation
* of generate-audit_type-list.sh becomes more complex.
*/
#ifndef AUDIT_SERVICE_START
# define AUDIT_SERVICE_START 1130 /* Service (daemon) start */
#else
-_Static_assert(AUDIT_SERVICE_START == 1130, "");
+static_assert(AUDIT_SERVICE_START == 1130, "");
#endif
#ifndef AUDIT_SERVICE_STOP
# define AUDIT_SERVICE_STOP 1131 /* Service (daemon) stop */
#else
-_Static_assert(AUDIT_SERVICE_STOP == 1131, "");
+static_assert(AUDIT_SERVICE_STOP == 1131, "");
#endif
#ifndef MAX_AUDIT_MESSAGE_LENGTH
# define MAX_AUDIT_MESSAGE_LENGTH 8970
#else
-_Static_assert(MAX_AUDIT_MESSAGE_LENGTH == 8970, "");
+static_assert(MAX_AUDIT_MESSAGE_LENGTH == 8970, "");
#endif
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <linux/fs.h> /* IWYU pragma: export */
+#include_next <linux/fs.h> /* IWYU pragma: export */
/* Not exposed yet. Defined at fs/ext4/ext4.h */
#ifndef EXT4_IOC_RESIZE_FS
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <linux/magic.h> /* IWYU pragma: export */
+#include_next <linux/magic.h> /* IWYU pragma: export */
+
+#include <assert.h>
/* Not exposed yet (4.20). Defined at ipc/mqueue.c */
#ifndef MQUEUE_MAGIC
# define MQUEUE_MAGIC 0x19800202
#else
-assert_cc(MQUEUE_MAGIC == 0x19800202);
+static_assert(MQUEUE_MAGIC == 0x19800202, "");
#endif
/* b1123ea6d3b3da25af5c8a9d843bd07ab63213f4 (4.8), dropped by 68f2736a858324c3ec852f6c2cddd9d1c777357d (v6.0) */
#ifndef BALLOON_KVM_MAGIC
# define BALLOON_KVM_MAGIC 0x13661366
#else
-assert_cc(BALLOON_KVM_MAGIC == 0x13661366);
+static_assert(BALLOON_KVM_MAGIC == 0x13661366, "");
#endif
/* 48b4800a1c6af2cdda344ea4e2c843dcc1f6afc9 (4.8), dropped by 68f2736a858324c3ec852f6c2cddd9d1c777357d (v6.0) */
#ifndef ZSMALLOC_MAGIC
# define ZSMALLOC_MAGIC 0x58295829
#else
-assert_cc(ZSMALLOC_MAGIC == 0x58295829);
+static_assert(ZSMALLOC_MAGIC == 0x58295829, "");
#endif
/* ea8157ab2ae5e914dd427e5cfab533b6da3819cd (5.3), dropped by 68f2736a858324c3ec852f6c2cddd9d1c777357d (v6.0) */
#ifndef Z3FOLD_MAGIC
# define Z3FOLD_MAGIC 0x33
#else
-assert_cc(Z3FOLD_MAGIC == 0x33);
+static_assert(Z3FOLD_MAGIC == 0x33, "");
#endif
/* fe030c9b85e6783bc52fe86449c0a4b8aa16c753 (5.5), dropped by 68f2736a858324c3ec852f6c2cddd9d1c777357d (v6.0) */
#ifndef PPC_CMM_MAGIC
# define PPC_CMM_MAGIC 0xc7571590
#else
-assert_cc(PPC_CMM_MAGIC == 0xc7571590);
+static_assert(PPC_CMM_MAGIC == 0xc7571590, "");
#endif
/* Not in mainline but included in Ubuntu */
#ifndef SHIFTFS_MAGIC
# define SHIFTFS_MAGIC 0x6a656a62
#else
-assert_cc(SHIFTFS_MAGIC == 0x6a656a62);
+static_assert(SHIFTFS_MAGIC == 0x6a656a62, "");
#endif
/* Not exposed yet. Defined at fs/fuse/control.c */
#ifndef FUSE_CTL_SUPER_MAGIC
# define FUSE_CTL_SUPER_MAGIC 0x65735543
#else
-assert_cc(FUSE_CTL_SUPER_MAGIC == 0x65735543);
+static_assert(FUSE_CTL_SUPER_MAGIC == 0x65735543, "");
#endif
/* Not exposed yet. Defined at fs/orangefs/orangefs-kernel.h */
#ifndef ORANGEFS_DEVREQ_MAGIC
# define ORANGEFS_DEVREQ_MAGIC 0x20030529
#else
-assert_cc(ORANGEFS_DEVREQ_MAGIC == 0x20030529);
+static_assert(ORANGEFS_DEVREQ_MAGIC == 0x20030529, "");
#endif
/* linux/gfs2_ondisk.h */
#ifndef GFS2_MAGIC
# define GFS2_MAGIC 0x01161970
#else
-assert_cc(GFS2_MAGIC == 0x01161970);
+static_assert(GFS2_MAGIC == 0x01161970, "");
#endif
/* Not exposed yet. Defined at fs/configfs/mount.c */
#ifndef CONFIGFS_MAGIC
# define CONFIGFS_MAGIC 0x62656570
#else
-assert_cc(CONFIGFS_MAGIC == 0x62656570);
+static_assert(CONFIGFS_MAGIC == 0x62656570, "");
#endif
/* Not exposed yet. Defined at fs/vboxsf/super.c */
#ifndef VBOXSF_SUPER_MAGIC
# define VBOXSF_SUPER_MAGIC 0x786f4256
#else
-assert_cc(VBOXSF_SUPER_MAGIC == 0x786f4256);
+static_assert(VBOXSF_SUPER_MAGIC == 0x786f4256, "");
#endif
/* Not exposed yet, internally actually called RPCAUTH_GSSMAGIC. Defined in net/sunrpc/rpc_pipe.c */
#ifndef RPC_PIPEFS_SUPER_MAGIC
# define RPC_PIPEFS_SUPER_MAGIC 0x67596969
#else
-assert_cc(RPC_PIPEFS_SUPER_MAGIC == 0x67596969);
+static_assert(RPC_PIPEFS_SUPER_MAGIC == 0x67596969, "");
#endif
/* Not exposed yet, defined at fs/ntfs/ntfs.h */
#ifndef NTFS_SB_MAGIC
# define NTFS_SB_MAGIC 0x5346544e
#else
-assert_cc(NTFS_SB_MAGIC == 0x5346544e);
+static_assert(NTFS_SB_MAGIC == 0x5346544e, "");
#endif
/* Not exposed yet, encoded literally in fs/ntfs3/super.c. */
#ifndef NTFS3_SUPER_MAGIC
# define NTFS3_SUPER_MAGIC 0x7366746e
#else
-assert_cc(NTFS3_SUPER_MAGIC == 0x7366746e);
+static_assert(NTFS3_SUPER_MAGIC == 0x7366746e, "");
#endif
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <linux/nsfs.h> /* IWYU pragma: export */
-#include <linux/types.h>
+#include_next <linux/nsfs.h> /* IWYU pragma: export */
/* Root namespace inode numbers, as per include/linux/proc_ns.h in the kernel source tree, since v3.8:
* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=98f842e675f96ffac96e6c50315790912b2812be */
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include "forward.h"
+#include <linux/ioctl.h>
+#include <stdint.h>
/* This is currently not exported in the public kernel headers, but the libxfs library code part of xfsprogs
* defines it as public header */
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/audit.h>
+
#include "sd-event.h"
#include "alloc-util.h"
#include "journald-manager.h"
#include "log.h"
#include "log-ratelimit.h"
-#include "missing_audit.h"
#include "stdio-util.h"
#include "string-util.h"
#include "time-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/audit.h>
#include <linux/sockios.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include "log.h"
#include "log-ratelimit.h"
#include "memory-util.h"
-#include "missing_audit.h"
#include "mkdir.h"
#include "parse-util.h"
#include "path-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
#include <mqueue.h>
#include <netinet/in.h>
#include <poll.h>
#include "io-util.h"
#include "iovec-util.h"
#include "log.h"
-#include "missing_magic.h"
#include "parse-util.h"
#include "path-util.h"
#include "pidfd-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
#include <unistd.h>
#include "sd-device.h"
#include "fileio.h"
#include "fs-util.h"
#include "hashmap.h"
-#include "missing_magic.h"
#include "netlink-util.h"
#include "parse-util.h"
#include "path-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
#include <malloc.h>
#include <stdlib.h>
#include <sys/timerfd.h>
#include "log.h"
#include "logarithm.h"
#include "memory-util.h"
-#include "missing_magic.h"
#include "origin-id.h"
#include "path-util.h"
#include "pidfd-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/audit.h>
+
#include "audit-type.h"
-#include "missing_audit.h"
#include "audit_type-to-name.inc"
CC="${1:?}"
shift
-HEADER="${1:?}"
-shift
-
-$CC -dM -include "$HEADER" "$@" - </dev/null | \
+$CC -dM -include linux/audit.h "$@" - </dev/null | \
grep -vE 'AUDIT_.*(FIRST|LAST)_' | \
sed -r -n 's/^#define\s+AUDIT_(\w+)\s+([0-9]{4})\s*$$/\1\t\2/p' | \
sort -k2
generate_audit_type_list = files('generate-audit_type-list.sh')
audit_type_list_txt = custom_target(
- input : [generate_audit_type_list, missing_audit_h],
+ input : [generate_audit_type_list, audit_sources],
output : 'audit_type-list.txt',
- command : [env, 'bash', generate_audit_type_list, cpp, missing_audit_h, system_include_args],
+ command : [env, 'bash', generate_audit_type_list, cpp, system_include_args],
capture : true)
audit_type_to_name = custom_target(
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
#include <sys/mount.h>
#include "sd-bus.h"
#include "limits-util.h"
#include "log.h"
#include "main-func.h"
-#include "missing_magic.h"
#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include <fcntl.h>
#include <linux/if_tun.h>
+#include <linux/magic.h>
#include <linux/nsfs.h>
#include <linux/veth.h>
#include <net/if.h>
#include "io-util.h"
#include "json-util.h"
#include "main-func.h"
-#include "missing_magic.h"
#include "mountpoint-util.h"
#include "namespace-util.h"
#include "netlink-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
#include <unistd.h>
#include "sd-json.h"
#include "format-util.h"
#include "fs-util.h"
#include "json-util.h"
-#include "missing_magic.h"
#include "path-util.h"
#include "recurse-dir.h"
#include "rm-rf.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
#include <sys/vfs.h>
#include "binfmt-util.h"
#include "fileio.h"
#include "fs-util.h"
#include "log.h"
-#include "missing_magic.h"
#include "stat-util.h"
int binfmt_mounted_and_writable(void) {
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
#include <unistd.h>
#include "cgroup-setup.h"
#include "format-util.h"
#include "fs-util.h"
#include "log.h"
-#include "missing_magic.h"
#include "mkdir.h"
#include "parse-util.h"
#include "path-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
+
#include "sd-bus.h"
#include "btrfs-util.h"
#include "label-util.h"
#include "log.h"
#include "machine-pool.h"
-#include "missing_magic.h"
#include "stat-util.h"
static int check_btrfs(void) {
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/btrfs.h>
+#include <linux/fs.h>
#include <linux/magic.h>
+#include <linux/xfs.h>
#include <sys/ioctl.h>
#include <sys/vfs.h>
-#include "missing_fs.h"
-#include "missing_magic.h"
-#include "missing_xfs.h"
#include "resize-fs.h"
#include "stat-util.h"
#include "stdio-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
+#include <linux/magic.h>
#include <unistd.h>
#include "alloc-util.h"
#include "fd-util.h"
#include "fs-util.h"
#include "log.h"
-#include "missing_magic.h"
#include "mountpoint-util.h"
#include "path-util.h"
#include "rm-rf.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/magic.h>
#include <sys/statvfs.h>
#include <unistd.h>
#include "fileio.h"
#include "fs-util.h"
#include "log.h"
-#include "missing_magic.h"
#include "shift-uid.h"
#include "stat-util.h"
#include "string-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
+#include <linux/magic.h>
#include <sys/stat.h>
#include <unistd.h>
#include "gpt.h"
#include "hexdecoct.h"
#include "import-util.h"
-#include "missing_magic.h"
#include "process-util.h"
#include "sort-util.h"
#include "stat-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <ftw.h>
+#include <linux/magic.h>
#include "fd-util.h"
#include "log.h"
-#include "missing_magic.h"
#include "recurse-dir.h"
#include "stat-util.h"
#include "strv.h"