13d36ee2eSJeremy Kerr /* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */ 23d36ee2eSJeremy Kerr 318925116SJeremy Kerr #ifndef _MCTP_TESTS_TEST_UTILS_H 418925116SJeremy Kerr #define _MCTP_TESTS_TEST_UTILS_H 518925116SJeremy Kerr 618925116SJeremy Kerr #include <libmctp.h> 718925116SJeremy Kerr 8*1a4ec3cdSJeremy Kerr #ifndef container_of 9*1a4ec3cdSJeremy Kerr #define container_of(ptr, type, member) \ 10*1a4ec3cdSJeremy Kerr (type *)((char *)(ptr) - (char *)&((type *)0)->member) 11*1a4ec3cdSJeremy Kerr #endif 12*1a4ec3cdSJeremy Kerr 1318925116SJeremy Kerr /* test binding implementation */ 1418925116SJeremy Kerr 1518925116SJeremy Kerr /* standard binding interface */ 1618925116SJeremy Kerr struct mctp_binding_test *mctp_binding_test_init(void); 1718925116SJeremy Kerr void mctp_binding_test_register_bus(struct mctp_binding_test *binding, 1818925116SJeremy Kerr struct mctp *mctp, mctp_eid_t eid); 1918925116SJeremy Kerr 2018925116SJeremy Kerr /* internal test binding interface */ 2118925116SJeremy Kerr void mctp_binding_test_rx_raw(struct mctp_binding_test *test, 2218925116SJeremy Kerr void *buf, size_t len); 2318925116SJeremy Kerr 2418925116SJeremy Kerr /* gerneral utility functions */ 2518925116SJeremy Kerr 2618925116SJeremy Kerr /* create a MCTP stack, and add a test binding, using the specified EID */ 2718925116SJeremy Kerr void mctp_test_stack_init(struct mctp **mctp, 2818925116SJeremy Kerr struct mctp_binding_test **binding, 2918925116SJeremy Kerr mctp_eid_t eid); 3018925116SJeremy Kerr 3118925116SJeremy Kerr #endif /* _MCTP_TESTS_TEST_UTILS_H */ 32