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