tgcom_obj
struct tgcom_obj dad_com; /* com object for flowctrl */
int (*com_free)(struct tgcom_obj *);
#define TGCOM_INIT(X) (*((struct tgcom_obj *)(X))->com_ops->com_init)\
(((struct tgcom_obj *)(X))->com_data)
#define TGCOM_FREE(X) (*((struct tgcom_obj *)(X))->com_ops->com_free) ((X))
(*((struct tgcom_obj *)(X))->com_ops->com_pkt) \
(((struct tgcom_obj *)(X))->com_data, (bp), (cb), (arg))
(*((struct tgcom_obj *)(X))->com_ops->com_transport) \
(((struct tgcom_obj *)(X))->com_data, (bp))