/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: core.proto */

#ifndef PROTOBUF_C_core_2eproto__INCLUDED
#define PROTOBUF_C_core_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1003000
# error This file was generated by a newer version of protobuf-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1005002 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protobuf-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protobuf-c.
#endif

#include "core-x86.pb-c.h"
#include "core-arm.pb-c.h"
#include "core-aarch64.pb-c.h"
#include "core-ppc64.pb-c.h"
#include "core-s390.pb-c.h"
#include "core-mips.pb-c.h"
#include "core-loongarch64.pb-c.h"
#include "core-riscv64.pb-c.h"
#include "rlimit.pb-c.h"
#include "timer.pb-c.h"
#include "creds.pb-c.h"
#include "sa.pb-c.h"
#include "siginfo.pb-c.h"
#include "rseq.pb-c.h"
#include "opts.pb-c.h"

typedef struct TaskCoreEntry TaskCoreEntry;
typedef struct TaskKobjIdsEntry TaskKobjIdsEntry;
typedef struct ThreadSasEntry ThreadSasEntry;
typedef struct ThreadCoreEntry ThreadCoreEntry;
typedef struct TaskRlimitsEntry TaskRlimitsEntry;
typedef struct CoreEntry CoreEntry;


/* --- enums --- */

typedef enum _CoreEntry__March {
  CORE_ENTRY__MARCH__UNKNOWN = 0,
  CORE_ENTRY__MARCH__X86_64 = 1,
  CORE_ENTRY__MARCH__ARM = 2,
  CORE_ENTRY__MARCH__AARCH64 = 3,
  CORE_ENTRY__MARCH__PPC64 = 4,
  CORE_ENTRY__MARCH__S390 = 5,
  CORE_ENTRY__MARCH__MIPS = 6,
  CORE_ENTRY__MARCH__LOONGARCH64 = 7,
  CORE_ENTRY__MARCH__RISCV64 = 8
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(CORE_ENTRY__MARCH)
} CoreEntry__March;
/*
 * These match the SECCOMP_MODE_* flags from <linux/seccomp.h>.
 */
typedef enum _SeccompMode {
  SECCOMP_MODE__disabled = 0,
  SECCOMP_MODE__strict = 1,
  SECCOMP_MODE__filter = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SECCOMP_MODE)
} SeccompMode;

/* --- messages --- */

struct  TaskCoreEntry
{
  ProtobufCMessage base;
  uint32_t task_state;
  uint32_t exit_code;
  uint32_t personality;
  uint32_t flags;
  uint64_t blk_sigset;
  char *comm;
  TaskTimersEntry *timers;
  TaskRlimitsEntry *rlimits;
  /*
   * This is deprecated, should be per-thread 
   */
  protobuf_c_boolean has_cg_set;
  uint32_t cg_set;
  SignalQueueEntry *signals_s;
  /*
   * These two are deprecated, should be per-thread 
   */
  protobuf_c_boolean has_old_seccomp_mode;
  SeccompMode old_seccomp_mode;
  protobuf_c_boolean has_old_seccomp_filter;
  uint32_t old_seccomp_filter;
  protobuf_c_boolean has_loginuid;
  uint32_t loginuid;
  protobuf_c_boolean has_oom_score_adj;
  int32_t oom_score_adj;
  /*
   * Reserved for tty inheritance
   *optional int32		tty_nr		= 16;
   *optional int32		tty_pgrp	= 17;
   */
  size_t n_sigactions;
  SaEntry **sigactions;
  protobuf_c_boolean has_child_subreaper;
  protobuf_c_boolean child_subreaper;
  /*
   * Reserved for container relative start time
   *optional uint64		start_time	= 19;
   */
  protobuf_c_boolean has_blk_sigset_extended;
  uint64_t blk_sigset_extended;
  protobuf_c_boolean has_stop_signo;
  uint32_t stop_signo;
  protobuf_c_boolean has_membarrier_registration_mask;
  uint32_t membarrier_registration_mask;
};
#define TASK_CORE_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&task_core_entry__descriptor) \
, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, NULL, 0, SECCOMP_MODE__disabled, 0, 0, 0, 0, 0, 0, 0,NULL, 0, 0, 0, 0, 0, 0, 0, 0 }


struct  TaskKobjIdsEntry
{
  ProtobufCMessage base;
  uint32_t vm_id;
  uint32_t files_id;
  uint32_t fs_id;
  uint32_t sighand_id;
  protobuf_c_boolean has_pid_ns_id;
  uint32_t pid_ns_id;
  protobuf_c_boolean has_net_ns_id;
  uint32_t net_ns_id;
  protobuf_c_boolean has_ipc_ns_id;
  uint32_t ipc_ns_id;
  protobuf_c_boolean has_uts_ns_id;
  uint32_t uts_ns_id;
  protobuf_c_boolean has_mnt_ns_id;
  uint32_t mnt_ns_id;
  protobuf_c_boolean has_user_ns_id;
  uint32_t user_ns_id;
  protobuf_c_boolean has_cgroup_ns_id;
  uint32_t cgroup_ns_id;
  protobuf_c_boolean has_time_ns_id;
  uint32_t time_ns_id;
};
#define TASK_KOBJ_IDS_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&task_kobj_ids_entry__descriptor) \
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }


struct  ThreadSasEntry
{
  ProtobufCMessage base;
  uint64_t ss_sp;
  uint64_t ss_size;
  uint32_t ss_flags;
};
#define THREAD_SAS_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&thread_sas_entry__descriptor) \
, 0, 0, 0 }


struct  ThreadCoreEntry
{
  ProtobufCMessage base;
  uint64_t futex_rla;
  uint32_t futex_rla_len;
  protobuf_c_boolean has_sched_nice;
  int32_t sched_nice;
  protobuf_c_boolean has_sched_policy;
  uint32_t sched_policy;
  protobuf_c_boolean has_sched_prio;
  uint32_t sched_prio;
  protobuf_c_boolean has_blk_sigset;
  uint64_t blk_sigset;
  ThreadSasEntry *sas;
  protobuf_c_boolean has_pdeath_sig;
  uint32_t pdeath_sig;
  SignalQueueEntry *signals_p;
  CredsEntry *creds;
  protobuf_c_boolean has_seccomp_mode;
  SeccompMode seccomp_mode;
  protobuf_c_boolean has_seccomp_filter;
  uint32_t seccomp_filter;
  char *comm;
  protobuf_c_boolean has_blk_sigset_extended;
  uint64_t blk_sigset_extended;
  RseqEntry *rseq_entry;
  protobuf_c_boolean has_cg_set;
  uint32_t cg_set;
};
#define THREAD_CORE_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&thread_core_entry__descriptor) \
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0, 0, NULL, NULL, 0, SECCOMP_MODE__disabled, 0, 0, NULL, 0, 0, NULL, 0, 0 }


struct  TaskRlimitsEntry
{
  ProtobufCMessage base;
  size_t n_rlimits;
  RlimitEntry **rlimits;
};
#define TASK_RLIMITS_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&task_rlimits_entry__descriptor) \
, 0,NULL }


struct  CoreEntry
{
  ProtobufCMessage base;
  CoreEntry__March mtype;
  ThreadInfoX86 *thread_info;
  ThreadInfoArm *ti_arm;
  ThreadInfoAarch64 *ti_aarch64;
  ThreadInfoPpc64 *ti_ppc64;
  ThreadInfoS390 *ti_s390;
  ThreadInfoMips *ti_mips;
  ThreadInfoLoongarch64 *ti_loongarch64;
  ThreadInfoRiscv64 *ti_riscv64;
  TaskCoreEntry *tc;
  TaskKobjIdsEntry *ids;
  ThreadCoreEntry *thread_core;
};
#define CORE_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&core_entry__descriptor) \
, CORE_ENTRY__MARCH__UNKNOWN, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }


/* TaskCoreEntry methods */
void   task_core_entry__init
                     (TaskCoreEntry         *message);
size_t task_core_entry__get_packed_size
                     (const TaskCoreEntry   *message);
size_t task_core_entry__pack
                     (const TaskCoreEntry   *message,
                      uint8_t             *out);
size_t task_core_entry__pack_to_buffer
                     (const TaskCoreEntry   *message,
                      ProtobufCBuffer     *buffer);
TaskCoreEntry *
       task_core_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   task_core_entry__free_unpacked
                     (TaskCoreEntry *message,
                      ProtobufCAllocator *allocator);
/* TaskKobjIdsEntry methods */
void   task_kobj_ids_entry__init
                     (TaskKobjIdsEntry         *message);
size_t task_kobj_ids_entry__get_packed_size
                     (const TaskKobjIdsEntry   *message);
size_t task_kobj_ids_entry__pack
                     (const TaskKobjIdsEntry   *message,
                      uint8_t             *out);
size_t task_kobj_ids_entry__pack_to_buffer
                     (const TaskKobjIdsEntry   *message,
                      ProtobufCBuffer     *buffer);
TaskKobjIdsEntry *
       task_kobj_ids_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   task_kobj_ids_entry__free_unpacked
                     (TaskKobjIdsEntry *message,
                      ProtobufCAllocator *allocator);
/* ThreadSasEntry methods */
void   thread_sas_entry__init
                     (ThreadSasEntry         *message);
size_t thread_sas_entry__get_packed_size
                     (const ThreadSasEntry   *message);
size_t thread_sas_entry__pack
                     (const ThreadSasEntry   *message,
                      uint8_t             *out);
size_t thread_sas_entry__pack_to_buffer
                     (const ThreadSasEntry   *message,
                      ProtobufCBuffer     *buffer);
ThreadSasEntry *
       thread_sas_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   thread_sas_entry__free_unpacked
                     (ThreadSasEntry *message,
                      ProtobufCAllocator *allocator);
/* ThreadCoreEntry methods */
void   thread_core_entry__init
                     (ThreadCoreEntry         *message);
size_t thread_core_entry__get_packed_size
                     (const ThreadCoreEntry   *message);
size_t thread_core_entry__pack
                     (const ThreadCoreEntry   *message,
                      uint8_t             *out);
size_t thread_core_entry__pack_to_buffer
                     (const ThreadCoreEntry   *message,
                      ProtobufCBuffer     *buffer);
ThreadCoreEntry *
       thread_core_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   thread_core_entry__free_unpacked
                     (ThreadCoreEntry *message,
                      ProtobufCAllocator *allocator);
/* TaskRlimitsEntry methods */
void   task_rlimits_entry__init
                     (TaskRlimitsEntry         *message);
size_t task_rlimits_entry__get_packed_size
                     (const TaskRlimitsEntry   *message);
size_t task_rlimits_entry__pack
                     (const TaskRlimitsEntry   *message,
                      uint8_t             *out);
size_t task_rlimits_entry__pack_to_buffer
                     (const TaskRlimitsEntry   *message,
                      ProtobufCBuffer     *buffer);
TaskRlimitsEntry *
       task_rlimits_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   task_rlimits_entry__free_unpacked
                     (TaskRlimitsEntry *message,
                      ProtobufCAllocator *allocator);
/* CoreEntry methods */
void   core_entry__init
                     (CoreEntry         *message);
size_t core_entry__get_packed_size
                     (const CoreEntry   *message);
size_t core_entry__pack
                     (const CoreEntry   *message,
                      uint8_t             *out);
size_t core_entry__pack_to_buffer
                     (const CoreEntry   *message,
                      ProtobufCBuffer     *buffer);
CoreEntry *
       core_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   core_entry__free_unpacked
                     (CoreEntry *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*TaskCoreEntry_Closure)
                 (const TaskCoreEntry *message,
                  void *closure_data);
typedef void (*TaskKobjIdsEntry_Closure)
                 (const TaskKobjIdsEntry *message,
                  void *closure_data);
typedef void (*ThreadSasEntry_Closure)
                 (const ThreadSasEntry *message,
                  void *closure_data);
typedef void (*ThreadCoreEntry_Closure)
                 (const ThreadCoreEntry *message,
                  void *closure_data);
typedef void (*TaskRlimitsEntry_Closure)
                 (const TaskRlimitsEntry *message,
                  void *closure_data);
typedef void (*CoreEntry_Closure)
                 (const CoreEntry *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCEnumDescriptor    seccomp_mode__descriptor;
extern const ProtobufCMessageDescriptor task_core_entry__descriptor;
extern const ProtobufCMessageDescriptor task_kobj_ids_entry__descriptor;
extern const ProtobufCMessageDescriptor thread_sas_entry__descriptor;
extern const ProtobufCMessageDescriptor thread_core_entry__descriptor;
extern const ProtobufCMessageDescriptor task_rlimits_entry__descriptor;
extern const ProtobufCMessageDescriptor core_entry__descriptor;
extern const ProtobufCEnumDescriptor    core_entry__march__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_core_2eproto__INCLUDED */
