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