#ifndef __DVB_ADAPTER_H #define __DVB_ADAPTER_H #include "dvbdev.h" enum dvb_adaptor_type { DVB_ADAPTOR_SIMPLE = (1 << 0), DVB_ADAPTOR_HYBRID = (1 << 1), DVB_ADAPTOR_FTA = (1 << 2), DVB_ADAPTOR_CI = (1 << 3), DVB_ADAPTOR_PCI = (1 << 4), DVB_ADAPTOR_USB = (1 << 5), DVB_ADAPTOR_FIREWIRE = (1 << 6), DVB_ADAPTOR_PCIE = (1 << 7), DVB_ADAPTOR_MINIPCI = (1 << 8), DVB_ADAPTOR_CARDBUS = (1 << 9), DVB_ADAPTOR_PLATFORM = (1 << 10), DVB_ADAPTOR_DUMMY = (1 << 31) }; enum dvb_adaptor_obj_type { DVB_ADAPTOR_OBJ_DEMOD = (1 << 0), DVB_ADAPTOR_OBJ_TUNER = (1 << 1), DVB_ADAPTOR_OBJ_SEC = (1 << 2), DVB_ADAPTOR_OBJ_DECODER = (1 << 3), DVB_ADAPTOR_OBJ_DUMMY = (1 << 31) }; struct dvb_adaptor_info { char adaptor_model[64]; char adaptor_name[64]; u16 adaptor_rev; enum dvb_adaptor_type adaptor_type; }; struct dvb_adaptor; struct dvb_adaptor_ops { struct dvb_adaptor_info info; int (*reset_adaptor)(struct dvb_adaptor *adaptor); }; struct dvb_adaptor_obj { struct list_head list; char object_name[64]; enum dvb_adaptor_obj_type object_type; struct dvb_adaptor *dvb; }; struct dvb_adaptor { struct list_head list; struct dvb_adaptor_obj *obj; struct dvb_adaptor_ops ops; struct dvb_adapter *dvb; void *adaptor_priv; }; extern int dvb_register_adaptor(struct dvb_adapter *dvb, struct dvb_adaptor *adaptor); #endif //__DVB_ADAPTER_H