/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
/*
|
*
|
* (C) COPYRIGHT 2010-2021 ARM Limited. All rights reserved.
|
*
|
* This program is free software and is provided to you under the terms of the
|
* GNU General Public License version 2 as published by the Free Software
|
* Foundation, and any use by you of this program is subject to the terms
|
* of such GNU license.
|
*
|
* This program is distributed in the hope that it will be useful,
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* GNU General Public License for more details.
|
*
|
* You should have received a copy of the GNU General Public License
|
* along with this program; if not, you can access it online at
|
* http://www.gnu.org/licenses/gpl-2.0.html.
|
*
|
*/
|
|
/* THIS FILE IS AUTOGENERATED BY mali_trace_generator.py.
|
* DO NOT EDIT.
|
*/
|
|
/* clang-format off */
|
|
#include "mali_kbase_mipe_proto.h"
|
|
/*
|
* This header generates MIPE tracepoint declaration BLOB at
|
* compile time.
|
*
|
* It is intentional that there is no header guard.
|
* The header could be included multiple times for
|
* different blobs compilation.
|
*
|
* Before including this header MIPE_HEADER_* parameters must be
|
* defined. See documentation below:
|
*/
|
|
/*
|
* The name of the variable where the result BLOB will be stored.
|
*/
|
#if !defined(MIPE_HEADER_BLOB_VAR_NAME)
|
#error "MIPE_HEADER_BLOB_VAR_NAME must be defined!"
|
#endif
|
|
/*
|
* A compiler attribute for the BLOB variable.
|
*
|
* e.g. __attribute__((section("my_section")))
|
*
|
* Default value is no attribute.
|
*/
|
#if !defined(MIPE_HEADER_BLOB_VAR_ATTRIBUTE)
|
#define MIPE_HEADER_BLOB_VAR_ATTRIBUTE
|
#endif
|
|
/*
|
* A compiler attribute for packing structures
|
*
|
* e.g. __packed
|
*
|
* Default value is __attribute__((__packed__))
|
*/
|
#if !defined(MIPE_HEADER_PACKED_ATTRIBUTE)
|
#define MIPE_HEADER_PACKED_ATTRIBUTE __attribute__((__packed__))
|
#endif
|
|
/*
|
* MIPE stream id.
|
*
|
* See enum tl_stream_id.
|
*/
|
#if !defined(MIPE_HEADER_STREAM_ID)
|
#error "MIPE_HEADER_STREAM_ID must be defined!"
|
#endif
|
|
/*
|
* MIPE packet class.
|
*
|
* See enum tl_packet_class.
|
*/
|
#if !defined(MIPE_HEADER_PKT_CLASS)
|
#error "MIPE_HEADER_PKT_CLASS must be defined!"
|
#endif
|
|
/*
|
* The list of tracepoints to process.
|
*
|
* It should be defined as follows:
|
*
|
* #define MIPE_HEADER_TRACEPOINT_LIST \
|
* TRACEPOINT_DESC(FIRST_TRACEPOINT, "Some description", "@II", "first_arg,second_arg") \
|
* TRACEPOINT_DESC(SECOND_TRACEPOINT, "Some description", "@II", "first_arg,second_arg") \
|
* etc.
|
*
|
* Where the first argument is tracepoints name, the second
|
* argument is a short tracepoint description, the third argument
|
* types (see MIPE documentation), and the fourth argument
|
* is comma separated argument names.
|
*/
|
#if !defined(MIPE_HEADER_TRACEPOINT_LIST)
|
#error "MIPE_HEADER_TRACEPOINT_LIST must be defined!"
|
#endif
|
|
/*
|
* The number of entries in MIPE_HEADER_TRACEPOINT_LIST.
|
*/
|
#if !defined(MIPE_HEADER_TRACEPOINT_LIST_SIZE)
|
#error "MIPE_HEADER_TRACEPOINT_LIST_SIZE must be defined!"
|
#endif
|
|
/*
|
* The list of enums to process.
|
*
|
* It should be defined as follows:
|
*
|
* #define MIPE_HEADER_ENUM_LIST \
|
* ENUM_DESC(enum_arg_name, enum_value) \
|
* ENUM_DESC(enum_arg_name, enum_value) \
|
* etc.
|
*
|
* Where enum_arg_name is the name of a tracepoint argument being used with
|
* this enum. enum_value is a valid C enum value.
|
*
|
* Default value is an empty list.
|
*/
|
#if defined(MIPE_HEADER_ENUM_LIST)
|
|
/*
|
* Tracepoint message ID used for enums declaration.
|
*/
|
#if !defined(MIPE_HEADER_ENUM_MSG_ID)
|
#error "MIPE_HEADER_ENUM_MSG_ID must be defined!"
|
#endif
|
|
#else
|
#define MIPE_HEADER_ENUM_LIST
|
#endif
|
|
/*
|
* The MIPE tracepoint declaration BLOB.
|
*/
|
const struct
|
{
|
u32 _mipe_w0;
|
u32 _mipe_w1;
|
u8 _protocol_version;
|
u8 _pointer_size;
|
u32 _tp_count;
|
#define TRACEPOINT_DESC(name, desc, arg_types, arg_names) \
|
struct { \
|
u32 _name; \
|
u32 _size_string_name; \
|
char _string_name[sizeof(#name)]; \
|
u32 _size_desc; \
|
char _desc[sizeof(desc)]; \
|
u32 _size_arg_types; \
|
char _arg_types[sizeof(arg_types)]; \
|
u32 _size_arg_names; \
|
char _arg_names[sizeof(arg_names)]; \
|
} MIPE_HEADER_PACKED_ATTRIBUTE __ ## name;
|
|
#define ENUM_DESC(arg_name, value) \
|
struct { \
|
u32 _msg_id; \
|
u32 _arg_name_len; \
|
char _arg_name[sizeof(#arg_name)]; \
|
u32 _value; \
|
u32 _value_str_len; \
|
char _value_str[sizeof(#value)]; \
|
} MIPE_HEADER_PACKED_ATTRIBUTE __ ## arg_name ## _ ## value;
|
|
MIPE_HEADER_TRACEPOINT_LIST
|
MIPE_HEADER_ENUM_LIST
|
#undef TRACEPOINT_DESC
|
#undef ENUM_DESC
|
} MIPE_HEADER_PACKED_ATTRIBUTE MIPE_HEADER_BLOB_VAR_NAME MIPE_HEADER_BLOB_VAR_ATTRIBUTE = {
|
._mipe_w0 = MIPE_PACKET_HEADER_W0(
|
TL_PACKET_FAMILY_TL,
|
MIPE_HEADER_PKT_CLASS,
|
TL_PACKET_TYPE_HEADER,
|
MIPE_HEADER_STREAM_ID),
|
._mipe_w1 = MIPE_PACKET_HEADER_W1(
|
sizeof(MIPE_HEADER_BLOB_VAR_NAME) - PACKET_HEADER_SIZE,
|
0),
|
._protocol_version = SWTRACE_VERSION,
|
._pointer_size = sizeof(void *),
|
._tp_count = MIPE_HEADER_TRACEPOINT_LIST_SIZE,
|
#define TRACEPOINT_DESC(name, desc, arg_types, arg_names) \
|
.__ ## name = { \
|
._name = name, \
|
._size_string_name = sizeof(#name), \
|
._string_name = #name, \
|
._size_desc = sizeof(desc), \
|
._desc = desc, \
|
._size_arg_types = sizeof(arg_types), \
|
._arg_types = arg_types, \
|
._size_arg_names = sizeof(arg_names), \
|
._arg_names = arg_names \
|
},
|
#define ENUM_DESC(arg_name, value) \
|
.__ ## arg_name ## _ ## value = { \
|
._msg_id = MIPE_HEADER_ENUM_MSG_ID, \
|
._arg_name_len = sizeof(#arg_name), \
|
._arg_name = #arg_name, \
|
._value = value, \
|
._value_str_len = sizeof(#value), \
|
._value_str = #value \
|
},
|
|
MIPE_HEADER_TRACEPOINT_LIST
|
MIPE_HEADER_ENUM_LIST
|
#undef TRACEPOINT_DESC
|
#undef ENUM_DESC
|
};
|
|
#undef MIPE_HEADER_BLOB_VAR_NAME
|
#undef MIPE_HEADER_BLOB_VAR_ATTRIBUTE
|
#undef MIPE_HEADER_STREAM_ID
|
#undef MIPE_HEADER_PKT_CLASS
|
#undef MIPE_HEADER_TRACEPOINT_LIST
|
#undef MIPE_HEADER_TRACEPOINT_LIST_SIZE
|
#undef MIPE_HEADER_ENUM_LIST
|
#undef MIPE_HEADER_ENUM_MSG_ID
|
|
/* clang-format on */
|