#ifndef CREATE_SYSCALL_TABLE
+#ifdef CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM
+
/*
* The `flags` argument of the mmap syscall is split in two parts:
* - The type of mapping is described by the four least significant bits of the 4
TP_ENUM_VALUES(
ctf_enum_value("MAP_SHARED", MAP_SHARED)
ctf_enum_value("MAP_PRIVATE", MAP_PRIVATE)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0))
ctf_enum_value("MAP_SHARED_VALIDATE", MAP_SHARED_VALIDATE)
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) */
+#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0)) */
)
)
ctf_enum_value("MAP_EXECUTABLE", LTTNG_MMAP_FLAGS_TO_CTF(MAP_EXECUTABLE))
ctf_enum_value("MAP_FIXED", LTTNG_MMAP_FLAGS_TO_CTF(MAP_FIXED))
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
ctf_enum_value("MAP_FIXED_NOREPLACE", LTTNG_MMAP_FLAGS_TO_CTF(MAP_FIXED_NOREPLACE))
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0)) */
+#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0)) */
ctf_enum_value("MAP_GROWSDOWN", LTTNG_MMAP_FLAGS_TO_CTF(MAP_GROWSDOWN))
ctf_enum_value("MAP_HUGETLB", LTTNG_MMAP_FLAGS_TO_CTF(MAP_HUGETLB))
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
#if defined (MAP_HUGE_2MB) && MAP_HUGE_2MB != 0
ctf_enum_value("MAP_HUGE_2MB", LTTNG_MMAP_FLAGS_TO_CTF(MAP_HUGE_2MB))
ctf_enum_value("MAP_HUGE_1GB", LTTNG_MMAP_FLAGS_TO_CTF(MAP_HUGE_1GB))
#endif /* defined (MAP_HUGE_1GB) && MAP_HUGE_1GB != 0 */
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
+#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
ctf_enum_value("MAP_LOCKED", LTTNG_MMAP_FLAGS_TO_CTF(MAP_LOCKED))
ctf_enum_value("MAP_NONBLOCK", LTTNG_MMAP_FLAGS_TO_CTF(MAP_NONBLOCK))
ctf_enum_value("MAP_POPULATE", LTTNG_MMAP_FLAGS_TO_CTF(MAP_POPULATE))
ctf_enum_value("MAP_STACK", LTTNG_MMAP_FLAGS_TO_CTF(MAP_STACK))
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0))
ctf_enum_value("MAP_SYNC", LTTNG_MMAP_FLAGS_TO_CTF(MAP_SYNC))
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) */
+#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0)) */
#if defined (MAP_UNINITIALIZED) && MAP_UNINITIALIZED != 0
ctf_enum_value("MAP_UNINITIALIZED", LTTNG_MMAP_FLAGS_TO_CTF(MAP_UNINITIALIZED))
)
#define LTTNG_MMAP_FLAGS_TYPE \
-{ \
- .name = "type", \
- .type = { \
- .atype = atype_enum_nestable, \
- .u = { \
- .enum_nestable = { \
- .desc = &__enum_lttng_mmap_flags_mapping_type, \
- .container_type = __LTTNG_COMPOUND_LITERAL( \
- struct lttng_type, __type_integer(uint32_t, \
- 4, 1, -1, __BYTE_ORDER, 16, none)), \
- }, \
- }, \
- }, \
-}
+ lttng_kernel_static_event_field("type", \
+ lttng_kernel_static_type_enum(&__enum_lttng_mmap_flags_mapping_type, \
+ lttng_kernel_static_type_integer(4, 1, 0, __BYTE_ORDER, 16)), \
+ false, false)
#define LTTNG_MMAP_FLAGS_OPTIONS \
-{ \
- .name = "options", \
- .type = { \
- .atype = atype_enum_nestable, \
- .u = { \
- .enum_nestable = { \
- .desc = &__enum_lttng_mmap_flags_options, \
- .container_type = __LTTNG_COMPOUND_LITERAL( \
- struct lttng_type, __type_integer(uint32_t, \
- 28, 1, -1, __BYTE_ORDER, 16, none)),\
- }, \
- }, \
- }, \
-}
+ lttng_kernel_static_event_field("options", \
+ lttng_kernel_static_type_enum(&__enum_lttng_mmap_flags_options, \
+ lttng_kernel_static_type_integer(28, 1, 0, __BYTE_ORDER, 16)), \
+ false, false)
#if (__BYTE_ORDER == __LITTLE_ENDIAN)
#define LTTNG_MMAP_FLAGS \
+lttng_kernel_static_event_field_array( \
[0] = LTTNG_MMAP_FLAGS_TYPE, \
- [1] = LTTNG_MMAP_FLAGS_OPTIONS,
-
+ [1] = LTTNG_MMAP_FLAGS_OPTIONS, \
+)
#else
#define LTTNG_MMAP_FLAGS \
+lttng_kernel_static_event_field_array( \
[0] = LTTNG_MMAP_FLAGS_OPTIONS, \
- [1] = LTTNG_MMAP_FLAGS_TYPE,
+ [1] = LTTNG_MMAP_FLAGS_TYPE, \
+)
#endif
-/*
- * Use a custom field here so that tracer writes a single integer and the
- * work of splitting it up in two fields is left to the trace reader.
- */
+#endif /* CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM */
+
#define OVERRIDE_32_mmap
#define OVERRIDE_64_mmap
SC_LTTNG_TRACEPOINT_EVENT(mmap,
TP_FIELDS(sc_exit(ctf_integer_hex(unsigned long, ret, ret))
sc_in(ctf_integer_hex(unsigned long, addr, addr))
sc_in(ctf_integer(size_t, len, len))
+#ifdef CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM
+ /*
+ * Use a custom field here so that tracer writes a single
+ * integer and the work of splitting it up in two fields is
+ * left to the trace reader.
+ */
sc_in(ctf_enum(lttng_mmap_protection, int, prot, prot))
sc_in(
ctf_custom_field(
ctf_custom_type(
- {
- .atype = atype_struct_nestable,
- .u.struct_nestable.nr_fields = 2,
- .u.struct_nestable.fields =
- __LTTNG_COMPOUND_LITERAL(struct lttng_event_field,
- LTTNG_MMAP_FLAGS
- ),
- .u.struct_nestable.alignment = lttng_alignof(uint32_t) * CHAR_BIT,
- }
+ lttng_kernel_static_type_struct(2, LTTNG_MMAP_FLAGS, lttng_alignof(uint32_t) * CHAR_BIT)
),
flags,
ctf_custom_code(
)
)
)
+#else
+ sc_in(ctf_integer(int, prot, prot))
+ sc_in(ctf_integer(int, flags, flags))
+#endif /* CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM */
sc_in(ctf_integer(int, fd, fd))
sc_in(ctf_integer(off_t, offset, off))
)
)
+#ifdef CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM
/*
* Enumeration of the open flags, as described in the 'open'
* system call man page.
#endif /* #if !defined(CONFIG_64BIT) || defined(CONFIG_COMPAT) */
ctf_enum_value("F_SETOWN_EX", F_SETOWN_EX)
ctf_enum_value("F_GETOWN_EX", F_GETOWN_EX)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,6,0))
ctf_enum_value("F_GETOWNER_UIDS", F_GETOWNER_UIDS)
-#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
+#endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,6,0)) */
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0))
ctf_enum_value("F_OFD_GETLK", F_OFD_GETLK)
ctf_enum_value("F_OFD_SETLK", F_OFD_SETLK)
ctf_enum_value("F_OFD_SETLKW", F_OFD_SETLKW)
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
+#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
ctf_enum_value("F_SETLEASE", F_SETLEASE)
ctf_enum_value("F_GETLEASE", F_GETLEASE)
ctf_enum_value("F_NOTIFY", F_NOTIFY)
ctf_enum_value("F_DUPFD_CLOEXEC", F_DUPFD_CLOEXEC)
ctf_enum_value("F_SETPIPE_SZ", F_SETPIPE_SZ)
ctf_enum_value("F_GETPIPE_SZ", F_GETPIPE_SZ)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,17,0))
ctf_enum_value("F_ADD_SEALS", F_ADD_SEALS)
ctf_enum_value("F_GET_SEALS", F_GET_SEALS)
-#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)) */
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
+#endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,17,0)) */
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
ctf_enum_value("F_GET_RW_HINT", F_GET_RW_HINT)
ctf_enum_value("F_SET_RW_HINT", F_SET_RW_HINT)
ctf_enum_value("F_GET_FILE_RW_HINT", F_GET_FILE_RW_HINT)
ctf_enum_value("F_SET_FILE_RW_HINT", F_SET_FILE_RW_HINT)
-#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) */
+#endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0)) */
)
)
sc_in(ctf_enum(lttng_fcntl_cmd_flags, unsigned int, cmd, cmd))
sc_inout(ctf_integer(unsigned long, arg, arg)))
)
+#endif /* CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM */
#endif /* CREATE_SYSCALL_TABLE */