xref: /openbmc/libmctp/tests/test-utils.h (revision 1a4ec3cd)
1 /* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
2 
3 #ifndef _MCTP_TESTS_TEST_UTILS_H
4 #define _MCTP_TESTS_TEST_UTILS_H
5 
6 #include <libmctp.h>
7 
8 #ifndef container_of
9 #define container_of(ptr, type, member) \
10     (type *)((char *)(ptr) - (char *)&((type *)0)->member)
11 #endif
12 
13 /* test binding implementation */
14 
15 /* standard binding interface */
16 struct mctp_binding_test *mctp_binding_test_init(void);
17 void mctp_binding_test_register_bus(struct mctp_binding_test *binding,
18 		struct mctp *mctp, mctp_eid_t eid);
19 
20 /* internal test binding interface */
21 void mctp_binding_test_rx_raw(struct mctp_binding_test *test,
22 		void *buf, size_t len);
23 
24 /* gerneral utility functions */
25 
26 /* create a MCTP stack, and add a test binding, using the specified EID */
27 void mctp_test_stack_init(struct mctp **mctp,
28 		struct mctp_binding_test **binding,
29 		mctp_eid_t eid);
30 
31 #endif /* _MCTP_TESTS_TEST_UTILS_H */
32