1 /* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
3 * lttng/events-internal.h
5 * Copyright (C) 2010-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 #ifndef _LTTNG_EVENTS_INTERNAL_H
9 #define _LTTNG_EVENTS_INTERNAL_H
11 #include <lttng/events.h>
14 const struct lttng_kernel_type_integer
*lttng_kernel_get_type_integer(const struct lttng_kernel_type_common
*type
)
16 if (type
->type
!= lttng_kernel_type_integer
)
18 return container_of(type
, const struct lttng_kernel_type_integer
, parent
);
22 const struct lttng_kernel_type_string
*lttng_kernel_get_type_string(const struct lttng_kernel_type_common
*type
)
24 if (type
->type
!= lttng_kernel_type_string
)
26 return container_of(type
, const struct lttng_kernel_type_string
, parent
);
30 const struct lttng_kernel_type_enum
*lttng_kernel_get_type_enum(const struct lttng_kernel_type_common
*type
)
32 if (type
->type
!= lttng_kernel_type_enum
)
34 return container_of(type
, const struct lttng_kernel_type_enum
, parent
);
38 const struct lttng_kernel_type_array
*lttng_kernel_get_type_array(const struct lttng_kernel_type_common
*type
)
40 if (type
->type
!= lttng_kernel_type_array
)
42 return container_of(type
, const struct lttng_kernel_type_array
, parent
);
46 const struct lttng_kernel_type_sequence
*lttng_kernel_get_type_sequence(const struct lttng_kernel_type_common
*type
)
48 if (type
->type
!= lttng_kernel_type_sequence
)
50 return container_of(type
, const struct lttng_kernel_type_sequence
, parent
);
54 const struct lttng_kernel_type_struct
*lttng_kernel_get_type_struct(const struct lttng_kernel_type_common
*type
)
56 if (type
->type
!= lttng_kernel_type_struct
)
58 return container_of(type
, const struct lttng_kernel_type_struct
, parent
);
62 const struct lttng_kernel_type_variant
*lttng_kernel_get_type_variant(const struct lttng_kernel_type_common
*type
)
64 if (type
->type
!= lttng_kernel_type_variant
)
66 return container_of(type
, const struct lttng_kernel_type_variant
, parent
);
69 static inline bool lttng_kernel_type_is_bytewise_integer(const struct lttng_kernel_type_common
*type
)
71 const struct lttng_kernel_type_integer
*type_integer
= lttng_kernel_get_type_integer(type
);
75 switch (type_integer
->size
) {
76 case 8: /* Fall-through. */
77 case 16: /* Fall-through. */
78 case 32: /* Fall-through. */
87 #endif /* _LTTNG_EVENTS_INTERNAL_H */