[media] dvbdev: document most of the functions/data structs
Document the most relevant functions and data structs for developers that are working with the DVB subsystem. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Acked-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
@@ -237,6 +237,7 @@ X!Isound/sound_firmware.c
|
|||||||
!Idrivers/media/dvb-core/dvb_frontend.h
|
!Idrivers/media/dvb-core/dvb_frontend.h
|
||||||
!Idrivers/media/dvb-core/dvb_math.h
|
!Idrivers/media/dvb-core/dvb_math.h
|
||||||
!Idrivers/media/dvb-core/dvb_ringbuffer.h
|
!Idrivers/media/dvb-core/dvb_ringbuffer.h
|
||||||
|
!Idrivers/media/dvb-core/dvbdev.h
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1><title>Remote Controller devices</title>
|
<sect1><title>Remote Controller devices</title>
|
||||||
!Iinclude/media/rc-core.h
|
!Iinclude/media/rc-core.h
|
||||||
|
|||||||
@@ -57,6 +57,25 @@
|
|||||||
|
|
||||||
struct dvb_frontend;
|
struct dvb_frontend;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct dvb_adapter - represents a Digital TV adapter using Linux DVB API
|
||||||
|
*
|
||||||
|
* @num: Number of the adapter
|
||||||
|
* @list_head: List with the DVB adapters
|
||||||
|
* @device_list: List with the DVB devices
|
||||||
|
* @name: Name of the adapter
|
||||||
|
* @proposed_mac: proposed MAC address for the adapter
|
||||||
|
* @priv: private data
|
||||||
|
* @device: pointer to struct device
|
||||||
|
* @module: pointer to struct module
|
||||||
|
* @mfe_shared: mfe shared: indicates mutually exclusive frontends
|
||||||
|
* Thie usage of this flag is currently deprecated
|
||||||
|
* @mfe_dvbdev: Frontend device in use, in the case of MFE
|
||||||
|
* @mfe_lock: Lock to prevent using the other frontends when MFE is
|
||||||
|
* used.
|
||||||
|
* @mdev: pointer to struct media_device, used when the media
|
||||||
|
* controller is used.
|
||||||
|
*/
|
||||||
struct dvb_adapter {
|
struct dvb_adapter {
|
||||||
int num;
|
int num;
|
||||||
struct list_head list_head;
|
struct list_head list_head;
|
||||||
@@ -78,7 +97,34 @@ struct dvb_adapter {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct dvb_device - represents a DVB device node
|
||||||
|
*
|
||||||
|
* @list_head: List head with all DVB devices
|
||||||
|
* @fops: pointer to struct file_operations
|
||||||
|
* @adapter: pointer to the adapter that holds this device node
|
||||||
|
* @type: type of the device: DVB_DEVICE_SEC, DVB_DEVICE_FRONTEND,
|
||||||
|
* DVB_DEVICE_DEMUX, DVB_DEVICE_DVR, DVB_DEVICE_CA, DVB_DEVICE_NET
|
||||||
|
* @minor: devnode minor number. Major number is always DVB_MAJOR.
|
||||||
|
* @id: device ID number, inside the adapter
|
||||||
|
* @readers: Initialized by the caller. Each call to open() in Read Only mode
|
||||||
|
* decreases this counter by one.
|
||||||
|
* @writers: Initialized by the caller. Each call to open() in Read/Write
|
||||||
|
* mode decreases this counter by one.
|
||||||
|
* @users: Initialized by the caller. Each call to open() in any mode
|
||||||
|
* decreases this counter by one.
|
||||||
|
* @wait_queue: wait queue, used to wait for certain events inside one of
|
||||||
|
* the DVB API callers
|
||||||
|
* @kernel_ioctl: callback function used to handle ioctl calls from userspace.
|
||||||
|
* @name: Name to be used for the device at the Media Controller
|
||||||
|
* @entity: pointer to struct media_entity associated with the device node
|
||||||
|
* @pads: pointer to struct media_pad associated with @entity;
|
||||||
|
* @priv: private data
|
||||||
|
*
|
||||||
|
* This structure is used by the DVB core (frontend, CA, net, demux) in
|
||||||
|
* order to create the device nodes. Usually, driver should not initialize
|
||||||
|
* this struct diretly.
|
||||||
|
*/
|
||||||
struct dvb_device {
|
struct dvb_device {
|
||||||
struct list_head list_head;
|
struct list_head list_head;
|
||||||
const struct file_operations *fops;
|
const struct file_operations *fops;
|
||||||
@@ -109,19 +155,55 @@ struct dvb_device {
|
|||||||
void *priv;
|
void *priv;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
extern int dvb_register_adapter(struct dvb_adapter *adap, const char *name,
|
* dvb_register_adapter - Registers a new DVB adapter
|
||||||
|
*
|
||||||
|
* @adap: pointer to struct dvb_adapter
|
||||||
|
* @name: Adapter's name
|
||||||
|
* @module: initialized with THIS_MODULE at the caller
|
||||||
|
* @device: pointer to struct device that corresponds to the device driver
|
||||||
|
* @adapter_nums: Array with a list of the numbers for @dvb_register_adapter;
|
||||||
|
* to select among them. Typically, initialized with:
|
||||||
|
* DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nums)
|
||||||
|
*/
|
||||||
|
int dvb_register_adapter(struct dvb_adapter *adap, const char *name,
|
||||||
struct module *module, struct device *device,
|
struct module *module, struct device *device,
|
||||||
short *adapter_nums);
|
short *adapter_nums);
|
||||||
extern int dvb_unregister_adapter (struct dvb_adapter *adap);
|
|
||||||
|
|
||||||
extern int dvb_register_device (struct dvb_adapter *adap,
|
/**
|
||||||
|
* dvb_unregister_adapter - Unregisters a DVB adapter
|
||||||
|
*
|
||||||
|
* @adap: pointer to struct dvb_adapter
|
||||||
|
*/
|
||||||
|
int dvb_unregister_adapter(struct dvb_adapter *adap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dvb_register_device - Registers a new DVB device
|
||||||
|
*
|
||||||
|
* @adap: pointer to struct dvb_adapter
|
||||||
|
* @pdvbdev: pointer to the place where the new struct dvb_device will be
|
||||||
|
* stored
|
||||||
|
* @template: Template used to create &pdvbdev;
|
||||||
|
* @device: pointer to struct device that corresponds to the device driver
|
||||||
|
* @adapter_nums: Array with a list of the numbers for @dvb_register_adapter;
|
||||||
|
* to select among them. Typically, initialized with:
|
||||||
|
* DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nums)
|
||||||
|
* @priv: private data
|
||||||
|
* @type: type of the device: DVB_DEVICE_SEC, DVB_DEVICE_FRONTEND,
|
||||||
|
* DVB_DEVICE_DEMUX, DVB_DEVICE_DVR, DVB_DEVICE_CA, DVB_DEVICE_NET
|
||||||
|
*/
|
||||||
|
int dvb_register_device(struct dvb_adapter *adap,
|
||||||
struct dvb_device **pdvbdev,
|
struct dvb_device **pdvbdev,
|
||||||
const struct dvb_device *template,
|
const struct dvb_device *template,
|
||||||
void *priv,
|
void *priv,
|
||||||
int type);
|
int type);
|
||||||
|
|
||||||
extern void dvb_unregister_device (struct dvb_device *dvbdev);
|
/**
|
||||||
|
* dvb_unregister_device - Unregisters a DVB device
|
||||||
|
*
|
||||||
|
* @dvbdev: pointer to struct dvb_device
|
||||||
|
*/
|
||||||
|
void dvb_unregister_device(struct dvb_device *dvbdev);
|
||||||
|
|
||||||
#ifdef CONFIG_MEDIA_CONTROLLER_DVB
|
#ifdef CONFIG_MEDIA_CONTROLLER_DVB
|
||||||
void dvb_create_media_graph(struct dvb_adapter *adap);
|
void dvb_create_media_graph(struct dvb_adapter *adap);
|
||||||
@@ -136,16 +218,16 @@ static inline void dvb_create_media_graph(struct dvb_adapter *adap) {}
|
|||||||
#define dvb_register_media_controller(a, b) {}
|
#define dvb_register_media_controller(a, b) {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern int dvb_generic_open (struct inode *inode, struct file *file);
|
int dvb_generic_open (struct inode *inode, struct file *file);
|
||||||
extern int dvb_generic_release (struct inode *inode, struct file *file);
|
int dvb_generic_release (struct inode *inode, struct file *file);
|
||||||
extern long dvb_generic_ioctl (struct file *file,
|
long dvb_generic_ioctl (struct file *file,
|
||||||
unsigned int cmd, unsigned long arg);
|
unsigned int cmd, unsigned long arg);
|
||||||
|
|
||||||
/* we don't mess with video_usercopy() any more,
|
/* we don't mess with video_usercopy() any more,
|
||||||
we simply define out own dvb_usercopy(), which will hopefully become
|
we simply define out own dvb_usercopy(), which will hopefully become
|
||||||
generic_usercopy() someday... */
|
generic_usercopy() someday... */
|
||||||
|
|
||||||
extern int dvb_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
|
int dvb_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
|
||||||
int (*func)(struct file *file, unsigned int cmd, void *arg));
|
int (*func)(struct file *file, unsigned int cmd, void *arg));
|
||||||
|
|
||||||
/** generic DVB attach function. */
|
/** generic DVB attach function. */
|
||||||
|
|||||||
Reference in New Issue
Block a user