The i2c_master_funcs_t structure is a table of pointers to functions that you can provide for your hardware. The higher-level code calls these functions.
typedef struct { size_t size; /* size of this structure */ int (*version_info)(i2c_libversion_t *version); void *(*init)(int argc, char *argv[]); void (*fini)(void *hdl); i2c_status_t (*send)(void *hdl, void *buf, unsigned int len, unsigned int stop); i2c_status_t (*recv)(void *hdl, void *buf, unsigned int len, unsigned int stop); int (*abort)(void *hdl, int rcvid); int (*set_slave_addr)(void *hdl, unsigned int addr, i2c_addrfmt_t fmt); int (*set_bus_speed)(void *hdl, unsigned int speed, unsigned int *ospeed); int (*driver_info)(void *hdl, i2c_driver_info_t *info); int (*ctl)(void *hdl, int cmd, void *msg, int msglen, int *nbytes, int *info); } i2c_master_funcs_t;