Add reference to bus from binding
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
diff --git a/core.c b/core.c
index c6896d1..c11564a 100644
--- a/core.c
+++ b/core.c
@@ -229,20 +229,22 @@
return &mctp->busses[0];
}
-unsigned long mctp_register_bus(struct mctp *mctp,
+int mctp_register_bus(struct mctp *mctp,
struct mctp_binding *binding,
mctp_eid_t eid)
{
+ /* todo: multiple busses */
assert(!mctp->busses[0].binding);
mctp->busses[0].binding = binding;
mctp->busses[0].eid = eid;
+ binding->bus = &mctp->busses[0];
return 0;
}
-void mctp_bus_rx(struct mctp *mctp, unsigned long bus_id,
+void mctp_bus_rx(struct mctp *mctp, struct mctp_binding *binding,
struct mctp_pktbuf *pkt)
{
- struct mctp_bus *bus = &mctp->busses[bus_id];
+ struct mctp_bus *bus = binding->bus;
struct mctp_msg_ctx *ctx;
struct mctp_hdr *hdr;
uint8_t flags, seq, tag;
@@ -250,6 +252,8 @@
void *p;
int rc;
+ assert(bus);
+
hdr = mctp_pktbuf_hdr(pkt);
if (hdr->dest != bus->eid)