blob: c2792b6d29afdae9d0242e3883483c669429d4ed [file] [log] [blame]
Jeremy Kerr3d36ee22019-05-30 11:15:37 +08001/* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
Jeremy Kerr4cdc2002019-02-07 16:49:12 +08002
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
14static void rx_message(uint8_t eid, void *data, void *msg, size_t len)
15{
Andrew Jefferyf967c702022-02-17 17:41:35 +103016 ssize_t rc;
Jeremy Kerr4cdc2002019-02-07 16:49:12 +080017 (void)eid;
18 (void)data;
Andrew Jefferyf967c702022-02-17 17:41:35 +103019
20 rc = write(STDOUT_FILENO, msg, len);
21 if (rc < 0)
22 warn("Write failed");
23 else if ((size_t)rc < len)
24 warnx("Short write of length %zd, requested %zd", rc, len);
Jeremy Kerr4cdc2002019-02-07 16:49:12 +080025}
26
27int main(void)
28{
29 struct mctp_binding_serial *serial;
30 struct mctp *mctp;
31 int rc;
32
33 mctp = mctp_init();
34 assert(mctp);
35
36 serial = mctp_serial_init();
37 assert(serial);
38
39 mctp_serial_open_fd(serial, STDIN_FILENO);
40
Brad Bishope4d84562021-11-30 14:04:10 -050041 mctp_register_bus(mctp, mctp_binding_serial_core(serial), 8);
Jeremy Kerr4cdc2002019-02-07 16:49:12 +080042
43 mctp_set_rx_all(mctp, rx_message, NULL);
44
45 for (;;) {
46 rc = mctp_serial_read(serial);
47 if (rc)
48 break;
49 }
50
51 return EXIT_SUCCESS;
52
53}