xref: /openbmc/libmctp/utils/mctp-in.c (revision ac1cd9dc)
1 /* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
2 
3 #include <assert.h>
4 #include <err.h>
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <unistd.h>
8 #include <sys/poll.h>
9 #include <sys/socket.h>
10 
11 #include "libmctp.h"
12 #include "libmctp-serial.h"
13 
14 static void rx_message(uint8_t eid, void *data, void *msg, size_t len)
15 {
16 	(void)eid;
17 	(void)data;
18 	write(STDOUT_FILENO, msg, len);
19 }
20 
21 int main(void)
22 {
23 	struct mctp_binding_serial *serial;
24 	struct mctp *mctp;
25 	int rc;
26 
27 	mctp = mctp_init();
28 	assert(mctp);
29 
30 	serial = mctp_serial_init();
31 	assert(serial);
32 
33 	mctp_serial_open_fd(serial, STDIN_FILENO);
34 
35 	mctp_serial_register_bus(serial, mctp, 8);
36 
37 	mctp_set_rx_all(mctp, rx_message, NULL);
38 
39 	for (;;) {
40 		rc = mctp_serial_read(serial);
41 		if (rc)
42 			break;
43 	}
44 
45 	return EXIT_SUCCESS;
46 
47 }
48