18#include "../asrtl/chann.h"
26 ASRT_MSG_PROTO_VERSION = 0x01,
28 ASRT_MSG_TEST_COUNT = 0x03,
29 ASRT_MSG_TEST_INFO = 0x04,
30 ASRT_MSG_TEST_START = 0x05,
31 ASRT_MSG_TEST_RESULT = 0x06,
34typedef uint16_t asrt_message_id;
38 uint8_t* p = msg->buff;
39 asrt_add_u16( &p, val );
42 .e = msg->buff +
sizeof msg->buff,
49static inline struct asrt_send_req* asrt_msg_rtoc_proto_version(
55 uint8_t* p = msg->buff;
56 asrt_add_u16( &p, ASRT_MSG_PROTO_VERSION );
57 asrt_add_u16( &p, major );
58 asrt_add_u16( &p, minor );
59 asrt_add_u16( &p, patch );
62 .e = msg->buff +
sizeof msg->buff,
70 return asrt_msg_u16( msg, ASRT_MSG_PROTO_VERSION );
85 uint8_t* h = msg->hdr;
86 asrt_add_u16( &h, ASRT_MSG_DESC );
88 (
struct asrt_span ){ .
b = (uint8_t*) desc, .
e = (uint8_t*) desc + desc_size };
91 .e = msg->hdr +
sizeof msg->hdr,
92 .rest = &msg->str_span,
100 return asrt_msg_u16( msg, ASRT_MSG_DESC );
107 uint8_t* p = msg->buff;
108 asrt_add_u16( &p, ASRT_MSG_TEST_COUNT );
109 asrt_add_u16( &p, count );
113 .e = msg->buff +
sizeof msg->buff,
122 return asrt_msg_u16( msg, ASRT_MSG_TEST_COUNT );
125enum asrt_test_info_result_e
127 ASRT_TEST_INFO_SUCCESS = 0x01,
128 ASRT_TEST_INFO_MISSING_TEST_ERR = 0x02,
130typedef uint8_t asrt_test_info_result;
142 asrt_test_info_result res,
146 uint8_t* h = msg->hdr;
147 asrt_add_u16( &h, ASRT_MSG_TEST_INFO );
148 asrt_add_u16( &h,
id );
149 *h++ = (uint8_t) res;
151 (
struct asrt_span ){ .
b = (uint8_t*) desc, .
e = (uint8_t*) desc + desc_size };
154 .e = msg->hdr +
sizeof msg->hdr,
155 .rest = &msg->str_span,
163 uint8_t* p = msg->buff;
164 asrt_add_u16( &p, ASRT_MSG_TEST_INFO );
165 asrt_add_u16( &p,
id );
168 .e = msg->buff +
sizeof msg->buff,
181 uint8_t* p = msg->buff;
182 asrt_add_u16( &p, ASRT_MSG_TEST_START );
183 asrt_add_u16( &p, test_id );
184 asrt_add_u32( &p, run_id );
187 .e = msg->buff +
sizeof msg->buff,
199 uint8_t* p = msg->buff;
200 asrt_add_u16( &p, ASRT_MSG_TEST_START );
201 asrt_add_u16( &p, test_id );
202 asrt_add_u32( &p, run_id );
205 .e = msg->buff +
sizeof msg->buff,
212enum asrt_test_result_e
214 ASRT_TEST_RESULT_SUCCESS = 0x01,
215 ASRT_TEST_RESULT_ERROR =
218 ASRT_TEST_RESULT_FAILURE = 0x03,
220typedef uint16_t asrt_test_result;
222static inline struct asrt_send_req* asrt_msg_rtoc_test_result(
225 asrt_test_result res )
227 uint8_t* p = msg->buff;
228 asrt_add_u16( &p, ASRT_MSG_TEST_RESULT );
229 asrt_add_u32( &p, run_id );
230 asrt_add_u16( &p, res );
233 .e = msg->buff +
sizeof msg->buff,
Definition: core_proto.h:74
Definition: core_proto.h:133
An outgoing message request placed in a module's send queue.
Definition: chann.h:64
struct asrt_span_span buff
Message payload (scatter-gather).
Definition: chann.h:65
Scatter-gather buffer: a primary byte range [b, e) followed by rest_count additional spans.
Definition: span.h:37
uint8_t * b
Primary buffer start.
Definition: span.h:38
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee ...
Definition: span.h:23
uint8_t * b
Pointer to the first byte.
Definition: span.h:24
uint8_t * e
One-past-the-end pointer.
Definition: span.h:25