blob: d8f23ca8e00cbdc5a2465ccd8ddd941cb797c8c8 [file] [log] [blame]
#include <stdint.h>
#include "libmctp.h"
struct mctp_binding_i2c;
typedef int (*mctp_i2c_tx_fn)(const void *buf, size_t len, void *ctx);
/* Configures the i2c binding. */
int mctp_i2c_setup(struct mctp_binding_i2c *i2c, uint8_t own_addr,
mctp_i2c_tx_fn tx_fn, void *tx_ctx);
void mctp_i2c_cleanup(struct mctp_binding_i2c *i2c);
int mctp_i2c_set_address(struct mctp_binding_i2c *i2c, uint8_t own_addr);
struct mctp_binding *mctp_binding_i2c_core(struct mctp_binding_i2c *i2c);
int mctp_i2c_set_neighbour(struct mctp_binding_i2c *i2c, uint8_t eid,
uint8_t addr);
void mctp_i2c_rx(struct mctp_binding_i2c *i2c, const void *data, size_t len);
int mctp_i2c_parse_hdr(const void *data, size_t len, uint8_t *src_addr,
uint8_t *dest_addr, uint8_t *bytecount);
void mctp_i2c_tx_poll(struct mctp_binding_i2c *i2c);
/* Can be customised if needed */
#ifndef I2C_BTU
#define I2C_BTU MCTP_BTU
#endif
#define MCTP_I2C_PACKET_SIZE (MCTP_PACKET_SIZE(I2C_BTU) + 4)