struct access_ipmask_queue ae_ipmasks;
} access_entry_t;
+LIST_HEAD(access_entry_list, access_entry);
+
extern const idclass_t access_entry_class;
typedef struct access {
{
idnode_t ch_id;
- RB_ENTRY(channel) ch_link;
+ RB_ENTRY(channel) ch_link;
int ch_refcount;
int ch_load;
int ch_dvr_extra_time_pre;
int ch_dvr_extra_time_post;
int ch_epg_running;
- struct dvr_entry_list ch_dvrs;
- struct dvr_autorec_entry_list ch_autorecs;
- struct dvr_timerec_entry_list ch_timerecs;
+ LIST_HEAD(, dvr_entry) ch_dvrs;
+ LIST_HEAD(, dvr_autorec_entry) ch_autorecs;
+ LIST_HEAD(, dvr_timerec_entry) ch_timerecs;
} channel_t;
idnode_list_head_t ct_ctms;
- struct dvr_autorec_entry_list ct_autorecs;
+ LIST_HEAD(, dvr_autorec_entry) ct_autorecs;
idnode_list_head_t ct_accesses;
#include "tvheadend.h"
#include "idnode.h"
+struct service;
struct mpegts_mux;
extern const idclass_t caclient_class;
#include "lang_str.h"
#include "tvhvfs.h"
+/**
+ *
+ */
+LIST_HEAD(dvr_config_list, dvr_config);
+LIST_HEAD(dvr_entry_list, dvr_entry);
+
+LIST_HEAD(dvr_autorec_entry_list, dvr_autorec_entry);
+LIST_HEAD(dvr_timerec_entry_list, dvr_timerec_entry);
+
+TAILQ_HEAD(dvr_autorec_entry_queue, dvr_autorec_entry);
+TAILQ_HEAD(dvr_timerec_entry_queue, dvr_timerec_entry);
+
+LIST_HEAD(dvr_vfs_list, dvr_vfs);
+
+/**
+ *
+ */
#define DVR_MAX_DATA_ERRORS (10000)
#define DVR_FILESIZE_UPDATE (1<<0)
} dvr_autorec_entry_t;
-TAILQ_HEAD(dvr_autorec_entry_queue, dvr_autorec_entry);
-
extern struct dvr_autorec_entry_queue autorec_entries;
/**
uint32_t dte_removal;
} dvr_timerec_entry_t;
-TAILQ_HEAD(dvr_timerec_entry_queue, dvr_timerec_entry);
-
extern struct dvr_timerec_entry_queue timerec_entries;
/**
void dvr_done(void);
-
#endif /* DVR_H */
int64_t my_peak_count;
} memoryinfo_t;
+LIST_HEAD(memoryinfo_list, memoryinfo);
+
extern struct memoryinfo_list memoryinfo_entries;
extern const idclass_t memoryinfo_class;
/**
* Packet buffer
*/
-
typedef struct pktbuf {
int pb_refcount;
int pb_err;
} th_pkt_t;
-
/**
* A packet reference
*/
th_pkt_t *pr_pkt;
} th_pktref_t;
+TAILQ_HEAD(th_pktref_queue, th_pktref);
/**
*
/**
*
*/
+LIST_HEAD(th_descrambler_list, th_descrambler);
typedef TAILQ_HEAD(service_instance_list, service_instance) service_instance_list_t;
+LIST_HEAD(service_list, service);
+RB_HEAD(service_tree, service);
+TAILQ_HEAD(service_queue, service);
/**
*
} th_subscription_t;
+LIST_HEAD(th_subscription_list, th_subscription);
/**
* Prototypes
void tasklet_arm(tasklet_t *tsk, tsk_callback_t *callback, void *opaque);
void tasklet_disarm(tasklet_t *gti);
-
-/*
- * List / Queue header declarations
- */
-LIST_HEAD(memoryinfo_list, memoryinfo);
-LIST_HEAD(access_entry_list, access_entry);
-LIST_HEAD(th_subscription_list, th_subscription);
-LIST_HEAD(dvr_vfs_list, dvr_vfs);
-LIST_HEAD(dvr_config_list, dvr_config);
-LIST_HEAD(dvr_entry_list, dvr_entry);
-TAILQ_HEAD(ref_update_queue, ref_update);
-LIST_HEAD(service_list, service);
-RB_HEAD(service_tree, service);
-TAILQ_HEAD(service_queue, service);
-LIST_HEAD(th_muxer_list, th_muxer);
-LIST_HEAD(th_muxstream_list, th_muxstream);
-LIST_HEAD(th_descrambler_list, th_descrambler);
-TAILQ_HEAD(th_refpkt_queue, th_refpkt);
-TAILQ_HEAD(th_muxpkt_queue, th_muxpkt);
-LIST_HEAD(dvr_autorec_entry_list, dvr_autorec_entry);
-LIST_HEAD(dvr_timerec_entry_list, dvr_timerec_entry);
-TAILQ_HEAD(th_pktref_queue, th_pktref);
-
/**
*
*/