15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Automatically generated from ./regress.rpc
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ___REGRESS_RPC_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ___REGRESS_RPC_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <event-config.h>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef _EVENT_HAVE_STDINT_H
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdint.h>
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EVTAG_HAS(msg, member) ((msg)->member##_set == 1)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __GNUC__
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EVTAG_ASSIGN(msg, member, args...) (*(msg)->base->member##_assign)(msg, ## args)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EVTAG_GET(msg, member, args...) (*(msg)->base->member##_get)(msg, ## args)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EVTAG_ASSIGN(msg, member, ...) (*(msg)->base->member##_assign)(msg, ## __VA_ARGS__)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EVTAG_GET(msg, member, ...) (*(msg)->base->member##_get)(msg, ## __VA_ARGS__)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EVTAG_ADD(msg, member) (*(msg)->base->member##_add)(msg)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EVTAG_LEN(msg, member) ((msg)->member##_length)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct msg;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct kill;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct run;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Tag definition for msg */
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum msg_ {
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MSG_FROM_NAME=1,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MSG_TO_NAME=2,
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MSG_ATTACK=3,
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MSG_RUN=4,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MSG_MAX_TAGS
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Structure declaration for msg */
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct msg_access_ {
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*from_name_assign)(struct msg *, const char *);
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*from_name_get)(struct msg *, char * *);
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*to_name_assign)(struct msg *, const char *);
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*to_name_get)(struct msg *, char * *);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*attack_assign)(struct msg *, const struct kill*);
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*attack_get)(struct msg *, struct kill* *);
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*run_assign)(struct msg *, int, const struct run *);
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*run_get)(struct msg *, int, struct run * *);
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  struct run * (*run_add)(struct msg *);
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct msg {
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  struct msg_access_ *base;
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char *from_name_data;
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char *to_name_data;
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  struct kill* attack_data;
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  struct run **run_data;
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int run_length;
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int run_num_allocated;
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t from_name_set;
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t to_name_set;
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t attack_set;
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t run_set;
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct msg *msg_new(void);
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void msg_free(struct msg *);
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void msg_clear(struct msg *);
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void msg_marshal(struct evbuffer *, const struct msg *);
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_unmarshal(struct msg *, struct evbuffer *);
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_complete(struct msg *);
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void evtag_marshal_msg(struct evbuffer *, ev_uint32_t,
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const struct msg *);
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int evtag_unmarshal_msg(struct evbuffer *, ev_uint32_t,
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    struct msg *);
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_from_name_assign(struct msg *, const char *);
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_from_name_get(struct msg *, char * *);
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_to_name_assign(struct msg *, const char *);
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_to_name_get(struct msg *, char * *);
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_attack_assign(struct msg *, const struct kill*);
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_attack_get(struct msg *, struct kill* *);
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_run_assign(struct msg *, int, const struct run *);
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int msg_run_get(struct msg *, int, struct run * *);
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct run * msg_run_add(struct msg *);
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* --- msg done --- */
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Tag definition for kill */
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum kill_ {
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  KILL_WEAPON=65825,
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  KILL_ACTION=2,
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  KILL_HOW_OFTEN=3,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  KILL_MAX_TAGS
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Structure declaration for kill */
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct kill_access_ {
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*weapon_assign)(struct kill *, const char *);
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*weapon_get)(struct kill *, char * *);
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*action_assign)(struct kill *, const char *);
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*action_get)(struct kill *, char * *);
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*how_often_assign)(struct kill *, const ev_uint32_t);
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*how_often_get)(struct kill *, ev_uint32_t *);
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct kill {
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  struct kill_access_ *base;
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char *weapon_data;
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char *action_data;
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint32_t how_often_data;
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t weapon_set;
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t action_set;
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t how_often_set;
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct kill *kill_new(void);
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void kill_free(struct kill *);
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void kill_clear(struct kill *);
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void kill_marshal(struct evbuffer *, const struct kill *);
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int kill_unmarshal(struct kill *, struct evbuffer *);
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int kill_complete(struct kill *);
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void evtag_marshal_kill(struct evbuffer *, ev_uint32_t,
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const struct kill *);
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int evtag_unmarshal_kill(struct evbuffer *, ev_uint32_t,
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    struct kill *);
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int kill_weapon_assign(struct kill *, const char *);
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int kill_weapon_get(struct kill *, char * *);
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int kill_action_assign(struct kill *, const char *);
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int kill_action_get(struct kill *, char * *);
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int kill_how_often_assign(struct kill *, const ev_uint32_t);
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int kill_how_often_get(struct kill *, ev_uint32_t *);
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* --- kill done --- */
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Tag definition for run */
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum run_ {
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RUN_HOW=1,
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RUN_SOME_BYTES=2,
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RUN_FIXED_BYTES=3,
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RUN_MAX_TAGS
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Structure declaration for run */
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct run_access_ {
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*how_assign)(struct run *, const char *);
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*how_get)(struct run *, char * *);
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*some_bytes_assign)(struct run *, const ev_uint8_t *, ev_uint32_t);
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*some_bytes_get)(struct run *, ev_uint8_t * *, ev_uint32_t *);
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*fixed_bytes_assign)(struct run *, const ev_uint8_t *);
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int (*fixed_bytes_get)(struct run *, ev_uint8_t **);
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct run {
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  struct run_access_ *base;
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char *how_data;
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t *some_bytes_data;
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint32_t some_bytes_length;
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t fixed_bytes_data[24];
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t how_set;
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t some_bytes_set;
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ev_uint8_t fixed_bytes_set;
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct run *run_new(void);
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void run_free(struct run *);
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void run_clear(struct run *);
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void run_marshal(struct evbuffer *, const struct run *);
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int run_unmarshal(struct run *, struct evbuffer *);
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int run_complete(struct run *);
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void evtag_marshal_run(struct evbuffer *, ev_uint32_t,
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const struct run *);
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int evtag_unmarshal_run(struct evbuffer *, ev_uint32_t,
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    struct run *);
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int run_how_assign(struct run *, const char *);
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int run_how_get(struct run *, char * *);
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int run_some_bytes_assign(struct run *, const ev_uint8_t *, ev_uint32_t);
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int run_some_bytes_get(struct run *, ev_uint8_t * *, ev_uint32_t *);
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int run_fixed_bytes_assign(struct run *, const ev_uint8_t *);
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int run_fixed_bytes_get(struct run *, ev_uint8_t **);
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* --- run done --- */
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  /* ___REGRESS_RPC_ */
184