|
@@ -211,9 +211,32 @@ int dvb_register_device(struct dvb_adapter *adap,
|
|
|
int type,
|
|
|
int demux_sink_pads);
|
|
|
|
|
|
+/**
|
|
|
+ * dvb_remove_device - Remove a registered DVB device
|
|
|
+ *
|
|
|
+ * This does not free memory. To do that, call dvb_free_device().
|
|
|
+ *
|
|
|
+ * @dvbdev: pointer to struct dvb_device
|
|
|
+ */
|
|
|
+void dvb_remove_device(struct dvb_device *dvbdev);
|
|
|
+
|
|
|
+/**
|
|
|
+ * dvb_free_device - Free memory occupied by a DVB device.
|
|
|
+ *
|
|
|
+ * Call dvb_unregister_device() before calling this function.
|
|
|
+ *
|
|
|
+ * @dvbdev: pointer to struct dvb_device
|
|
|
+ */
|
|
|
+void dvb_free_device(struct dvb_device *dvbdev);
|
|
|
+
|
|
|
/**
|
|
|
* dvb_unregister_device - Unregisters a DVB device
|
|
|
*
|
|
|
+ * This is a combination of dvb_remove_device() and dvb_free_device().
|
|
|
+ * Using this function is usually a mistake, and is often an indicator
|
|
|
+ * for a use-after-free bug (when a userspace process keeps a file
|
|
|
+ * handle to a detached device).
|
|
|
+ *
|
|
|
* @dvbdev: pointer to struct dvb_device
|
|
|
*/
|
|
|
void dvb_unregister_device(struct dvb_device *dvbdev);
|