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

#ifndef PROTOBUF_C_core_2darm_2eproto__INCLUDED
#define PROTOBUF_C_core_2darm_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 "opts.pb-c.h"

typedef struct UserArmRegsEntry UserArmRegsEntry;
typedef struct UserArmVfpstateEntry UserArmVfpstateEntry;
typedef struct ThreadInfoArm ThreadInfoArm;


/* --- enums --- */


/* --- messages --- */

struct  UserArmRegsEntry
{
  ProtobufCMessage base;
  uint32_t r0;
  uint32_t r1;
  uint32_t r2;
  uint32_t r3;
  uint32_t r4;
  uint32_t r5;
  uint32_t r6;
  uint32_t r7;
  uint32_t r8;
  uint32_t r9;
  uint32_t r10;
  uint32_t fp;
  uint32_t ip;
  uint32_t sp;
  uint32_t lr;
  uint32_t pc;
  uint32_t cpsr;
  uint32_t orig_r0;
};
#define USER_ARM_REGS_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&user_arm_regs_entry__descriptor) \
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }


struct  UserArmVfpstateEntry
{
  ProtobufCMessage base;
  size_t n_vfp_regs;
  uint64_t *vfp_regs;
  uint32_t fpscr;
  uint32_t fpexc;
  uint32_t fpinst;
  uint32_t fpinst2;
};
#define USER_ARM_VFPSTATE_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&user_arm_vfpstate_entry__descriptor) \
, 0,NULL, 0, 0, 0, 0 }


struct  ThreadInfoArm
{
  ProtobufCMessage base;
  uint64_t clear_tid_addr;
  uint32_t tls;
  UserArmRegsEntry *gpregs;
  UserArmVfpstateEntry *fpstate;
};
#define THREAD_INFO_ARM__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&thread_info_arm__descriptor) \
, 0, 0, NULL, NULL }


/* UserArmRegsEntry methods */
void   user_arm_regs_entry__init
                     (UserArmRegsEntry         *message);
size_t user_arm_regs_entry__get_packed_size
                     (const UserArmRegsEntry   *message);
size_t user_arm_regs_entry__pack
                     (const UserArmRegsEntry   *message,
                      uint8_t             *out);
size_t user_arm_regs_entry__pack_to_buffer
                     (const UserArmRegsEntry   *message,
                      ProtobufCBuffer     *buffer);
UserArmRegsEntry *
       user_arm_regs_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   user_arm_regs_entry__free_unpacked
                     (UserArmRegsEntry *message,
                      ProtobufCAllocator *allocator);
/* UserArmVfpstateEntry methods */
void   user_arm_vfpstate_entry__init
                     (UserArmVfpstateEntry         *message);
size_t user_arm_vfpstate_entry__get_packed_size
                     (const UserArmVfpstateEntry   *message);
size_t user_arm_vfpstate_entry__pack
                     (const UserArmVfpstateEntry   *message,
                      uint8_t             *out);
size_t user_arm_vfpstate_entry__pack_to_buffer
                     (const UserArmVfpstateEntry   *message,
                      ProtobufCBuffer     *buffer);
UserArmVfpstateEntry *
       user_arm_vfpstate_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   user_arm_vfpstate_entry__free_unpacked
                     (UserArmVfpstateEntry *message,
                      ProtobufCAllocator *allocator);
/* ThreadInfoArm methods */
void   thread_info_arm__init
                     (ThreadInfoArm         *message);
size_t thread_info_arm__get_packed_size
                     (const ThreadInfoArm   *message);
size_t thread_info_arm__pack
                     (const ThreadInfoArm   *message,
                      uint8_t             *out);
size_t thread_info_arm__pack_to_buffer
                     (const ThreadInfoArm   *message,
                      ProtobufCBuffer     *buffer);
ThreadInfoArm *
       thread_info_arm__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   thread_info_arm__free_unpacked
                     (ThreadInfoArm *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*UserArmRegsEntry_Closure)
                 (const UserArmRegsEntry *message,
                  void *closure_data);
typedef void (*UserArmVfpstateEntry_Closure)
                 (const UserArmVfpstateEntry *message,
                  void *closure_data);
typedef void (*ThreadInfoArm_Closure)
                 (const ThreadInfoArm *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor user_arm_regs_entry__descriptor;
extern const ProtobufCMessageDescriptor user_arm_vfpstate_entry__descriptor;
extern const ProtobufCMessageDescriptor thread_info_arm__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_core_2darm_2eproto__INCLUDED */
