| /** |
| * Loopback Protocol (Implementation) |
| */ |
| |
| #include <linux/kernel.h> |
| #include <linux/module.h> |
| |
| #include <hydra/trace.h> |
| |
| #include "scsc_loopback.h" |
| |
| /*****************************************************************************/ |
| |
| /** |
| * Handle data received on port by sending it back. |
| */ |
| static void scsc_loopback_port_recv( |
| struct scsc_mport *port, |
| const unsigned char *data, |
| size_t count) |
| { |
| os_trace_dbg("%s: @%p, count %zu", __func__, port, count); |
| |
| scsc_mport_emit(port, data, count); |
| } |
| |
| static const struct scsc_mport_ops scsc_loopback_port_ops = { |
| scsc_loopback_port_recv |
| }; |
| |
| /*****************************************************************************/ |
| |
| void scsc_loopback_init(struct scsc_loopback *loopback) |
| { |
| os_trace_dbg("%s: @%p", __func__, loopback); |
| |
| scsc_mport_init(&loopback->port, &scsc_loopback_port_ops); |
| } |
| |
| void scsc_loopback_deinit(struct scsc_loopback *loopback) |
| { |
| } |
| |
| struct scsc_mport *scsc_loopback_get_port( |
| struct scsc_loopback *loopback) |
| { |
| return &loopback->port; |
| } |