root/include/linux/trace_remote_event.h
/* SPDX-License-Identifier: GPL-2.0 */

#ifndef _LINUX_TRACE_REMOTE_EVENTS_H
#define _LINUX_TRACE_REMOTE_EVENTS_H

struct trace_remote;
struct trace_event_fields;
struct trace_seq;

struct remote_event_hdr {
        unsigned short  id;
};

#define REMOTE_EVENT_NAME_MAX 30
struct remote_event {
        char                            name[REMOTE_EVENT_NAME_MAX];
        unsigned short                  id;
        bool                            enabled;
        struct trace_remote             *remote;
        struct trace_event_fields       *fields;
        char                            *print_fmt;
        void                            (*print)(void *evt, struct trace_seq *seq);
};

#define RE_STRUCT(__args...) __args
#define re_field(__type, __field) __type __field;

#define REMOTE_EVENT_FORMAT(__name, __struct)   \
        struct remote_event_format_##__name {   \
                struct remote_event_hdr hdr;    \
                __struct                        \
        }
#endif