1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* 2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott * Automatically generated from ./regress.rpc 3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott */ 4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#ifndef ___REGRESS_RPC_ 6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define ___REGRESS_RPC_ 7c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include <event-config.h> 9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#ifdef _EVENT_HAVE_STDINT_H 10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include <stdint.h> 11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif 12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define EVTAG_HAS(msg, member) ((msg)->member##_set == 1) 13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#ifdef __GNUC__ 14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define EVTAG_ASSIGN(msg, member, args...) (*(msg)->base->member##_assign)(msg, ## args) 15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define EVTAG_GET(msg, member, args...) (*(msg)->base->member##_get)(msg, ## args) 16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#else 17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define EVTAG_ASSIGN(msg, member, ...) (*(msg)->base->member##_assign)(msg, ## __VA_ARGS__) 18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define EVTAG_GET(msg, member, ...) (*(msg)->base->member##_get)(msg, ## __VA_ARGS__) 19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif 20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define EVTAG_ADD(msg, member) (*(msg)->base->member##_add)(msg) 21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define EVTAG_LEN(msg, member) ((msg)->member##_length) 22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct msg; 24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct kill; 25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct run; 26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* Tag definition for msg */ 28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottenum msg_ { 29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott MSG_FROM_NAME=1, 30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott MSG_TO_NAME=2, 31c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott MSG_ATTACK=3, 32c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott MSG_RUN=4, 33c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott MSG_MAX_TAGS 34c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 35c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 36c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* Structure declaration for msg */ 37c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct msg_access_ { 38c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*from_name_assign)(struct msg *, const char *); 39c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*from_name_get)(struct msg *, char * *); 40c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*to_name_assign)(struct msg *, const char *); 41c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*to_name_get)(struct msg *, char * *); 42c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*attack_assign)(struct msg *, const struct kill*); 43c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*attack_get)(struct msg *, struct kill* *); 44c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*run_assign)(struct msg *, int, const struct run *); 45c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*run_get)(struct msg *, int, struct run * *); 46c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott struct run * (*run_add)(struct msg *); 47c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 48c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 49c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct msg { 50c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott struct msg_access_ *base; 51c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 52c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott char *from_name_data; 53c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott char *to_name_data; 54c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott struct kill* attack_data; 55c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott struct run **run_data; 56c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int run_length; 57c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int run_num_allocated; 58c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 59c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t from_name_set; 60c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t to_name_set; 61c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t attack_set; 62c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t run_set; 63c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 64c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 65c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct msg *msg_new(void); 66c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid msg_free(struct msg *); 67c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid msg_clear(struct msg *); 68c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid msg_marshal(struct evbuffer *, const struct msg *); 69c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_unmarshal(struct msg *, struct evbuffer *); 70c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_complete(struct msg *); 71c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid evtag_marshal_msg(struct evbuffer *, ev_uint32_t, 72c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott const struct msg *); 73c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint evtag_unmarshal_msg(struct evbuffer *, ev_uint32_t, 74c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott struct msg *); 75c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_from_name_assign(struct msg *, const char *); 76c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_from_name_get(struct msg *, char * *); 77c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_to_name_assign(struct msg *, const char *); 78c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_to_name_get(struct msg *, char * *); 79c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_attack_assign(struct msg *, const struct kill*); 80c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_attack_get(struct msg *, struct kill* *); 81c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_run_assign(struct msg *, int, const struct run *); 82c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint msg_run_get(struct msg *, int, struct run * *); 83c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct run * msg_run_add(struct msg *); 84c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* --- msg done --- */ 85c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 86c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* Tag definition for kill */ 87c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottenum kill_ { 88c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott KILL_WEAPON=65825, 89c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott KILL_ACTION=2, 90c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott KILL_HOW_OFTEN=3, 91c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott KILL_MAX_TAGS 92c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 93c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 94c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* Structure declaration for kill */ 95c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct kill_access_ { 96c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*weapon_assign)(struct kill *, const char *); 97c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*weapon_get)(struct kill *, char * *); 98c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*action_assign)(struct kill *, const char *); 99c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*action_get)(struct kill *, char * *); 100c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*how_often_assign)(struct kill *, const ev_uint32_t); 101c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*how_often_get)(struct kill *, ev_uint32_t *); 102c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 103c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 104c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct kill { 105c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott struct kill_access_ *base; 106c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 107c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott char *weapon_data; 108c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott char *action_data; 109c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint32_t how_often_data; 110c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 111c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t weapon_set; 112c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t action_set; 113c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t how_often_set; 114c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 115c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 116c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct kill *kill_new(void); 117c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid kill_free(struct kill *); 118c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid kill_clear(struct kill *); 119c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid kill_marshal(struct evbuffer *, const struct kill *); 120c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint kill_unmarshal(struct kill *, struct evbuffer *); 121c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint kill_complete(struct kill *); 122c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid evtag_marshal_kill(struct evbuffer *, ev_uint32_t, 123c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott const struct kill *); 124c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint evtag_unmarshal_kill(struct evbuffer *, ev_uint32_t, 125c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott struct kill *); 126c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint kill_weapon_assign(struct kill *, const char *); 127c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint kill_weapon_get(struct kill *, char * *); 128c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint kill_action_assign(struct kill *, const char *); 129c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint kill_action_get(struct kill *, char * *); 130c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint kill_how_often_assign(struct kill *, const ev_uint32_t); 131c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint kill_how_often_get(struct kill *, ev_uint32_t *); 132c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* --- kill done --- */ 133c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 134c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* Tag definition for run */ 135c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottenum run_ { 136c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott RUN_HOW=1, 137c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott RUN_SOME_BYTES=2, 138c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott RUN_FIXED_BYTES=3, 139c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott RUN_MAX_TAGS 140c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 141c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 142c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* Structure declaration for run */ 143c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct run_access_ { 144c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*how_assign)(struct run *, const char *); 145c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*how_get)(struct run *, char * *); 146c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*some_bytes_assign)(struct run *, const ev_uint8_t *, ev_uint32_t); 147c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*some_bytes_get)(struct run *, ev_uint8_t * *, ev_uint32_t *); 148c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*fixed_bytes_assign)(struct run *, const ev_uint8_t *); 149c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int (*fixed_bytes_get)(struct run *, ev_uint8_t **); 150c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 151c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 152c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct run { 153c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott struct run_access_ *base; 154c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 155c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott char *how_data; 156c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t *some_bytes_data; 157c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint32_t some_bytes_length; 158c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t fixed_bytes_data[24]; 159c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 160c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t how_set; 161c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t some_bytes_set; 162c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ev_uint8_t fixed_bytes_set; 163c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 164c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 165c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstruct run *run_new(void); 166c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid run_free(struct run *); 167c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid run_clear(struct run *); 168c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid run_marshal(struct evbuffer *, const struct run *); 169c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint run_unmarshal(struct run *, struct evbuffer *); 170c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint run_complete(struct run *); 171c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid evtag_marshal_run(struct evbuffer *, ev_uint32_t, 172c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott const struct run *); 173c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint evtag_unmarshal_run(struct evbuffer *, ev_uint32_t, 174c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott struct run *); 175c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint run_how_assign(struct run *, const char *); 176c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint run_how_get(struct run *, char * *); 177c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint run_some_bytes_assign(struct run *, const ev_uint8_t *, ev_uint32_t); 178c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint run_some_bytes_get(struct run *, ev_uint8_t * *, ev_uint32_t *); 179c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint run_fixed_bytes_assign(struct run *, const ev_uint8_t *); 180c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint run_fixed_bytes_get(struct run *, ev_uint8_t **); 181c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* --- run done --- */ 182c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 183c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif /* ___REGRESS_RPC_ */ 184