diff options
Diffstat (limited to 'mcast/dvbloop/.svn/text-base/dvblo_ioctl.h.svn-base')
-rw-r--r-- | mcast/dvbloop/.svn/text-base/dvblo_ioctl.h.svn-base | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/mcast/dvbloop/.svn/text-base/dvblo_ioctl.h.svn-base b/mcast/dvbloop/.svn/text-base/dvblo_ioctl.h.svn-base new file mode 100644 index 0000000..08e737c --- /dev/null +++ b/mcast/dvbloop/.svn/text-base/dvblo_ioctl.h.svn-base @@ -0,0 +1,203 @@ +/* dvbloop - A DVB Loopback Device + * Copyright (C) 2006 Christian Praehauser, Deti Fliegl + ----------------------------------------- + * File: dvblo_char.h + * Desc: Char device support for dvblo + * Date: October 2006 + * Author: Christian Praehauser <cpreahaus@cosy.sbg.ac.at>, Deti Fliegl <deti@fliegl.de> + * + * This file is released under the GPLv2. + */ + +#ifndef _DVBLO_IOCTL_H_ +#define _DVBLO_IOCTL_H_ + +#ifndef WIN32 +#include <linux/ioctl.h> +#endif +/** + * Maximum number of devices + */ +#define DVBLO_IOC_MAGIC 'd' +#define PRIV_DATA_SIZE 4096 +typedef struct +{ + u_int16_t pid[256]; + int num; +} dvblo_pids_t; +typedef struct dvblo_sec +{ + struct dvb_diseqc_master_cmd diseqc_cmd; + fe_sec_mini_cmd_t mini_cmd; + fe_sec_tone_mode_t tone_mode; + fe_sec_voltage_t voltage; +} dvblo_sec_t; +typedef struct dvblo_festatus +{ + fe_status_t st; + u_int32_t ber; + u_int16_t strength; + u_int16_t snr; + u_int32_t ucblocks; +} dvblo_festatus_t; +typedef unsigned char dvblo_private_t[PRIV_DATA_SIZE]; + +#define CA_MAX_SLOTS 16 +typedef struct { + ca_caps_t cap; + ca_slot_info_t info[CA_MAX_SLOTS]; +} dvblo_cacaps_t; + +#define CA_TPDU_MAX 2048 +typedef struct { + u_int16_t len; + u_int8_t data[CA_TPDU_MAX]; +} dvblo_tpdu_t; + +#define EV_MASK_FE 0x0000000f +#define EV_MASK_PID 0x000000f0 +#define EV_MASK_SEC 0x00000f00 +#define EV_MASK_PRIV 0x0000f000 +#define EV_MASK_CA 0x000f0000 + +#define EV_FRONTEND 0x00000001 +#define EV_TUNER 0x00000002 +#define EV_FREQUENCY 0x00000004 +#define EV_BANDWIDTH 0x00000008 + +#define EV_PIDFILTER 0x00000010 + +#define EV_TONE 0x00000100 +#define EV_VOLTAGE 0x00000200 +#define EV_DISEC_MSG 0x00000400 +#define EV_DISEC_BURST 0x00000800 + +#define EV_PRIV_READ 0x00001000 +#define EV_PRIV_WRITE 0x00002000 + +#define EV_CA_RESET 0x00010000 +#define EV_CA_WRITE 0x00020000 +#define EV_CA_PID 0x00040000 +#define EV_CA_DESCR 0x00080000 + +struct dvblo_ioc_dev +{ + + /// The MAC address of the virtual DVB adapter + u_int8_t mac[6]; + + /** + * This is set to the number of the new device when ioctl(DVBLO_IOCADDDEV) + * was successful. + * @note This corresponds to the minor device number. + */ + int num; +}; + +/** + * @brief Add a new DVBLoop adapter device + */ +#define DVBLO_IOCADDDEV _IO(DVBLO_IOC_MAGIC, 1) +/** + * @brief Remove the DVBLoop adapter device with the specified number + */ +#define DVBLO_IOCDELDEV _IO(DVBLO_IOC_MAGIC, 2) +/** + * @brief Check if DVBLoop adapter has a corresponding dvb device + */ +#define DVBLO_IOCCHECKDEV _IO(DVBLO_IOC_MAGIC, 30) +/** + * @brief Get event mask + */ +#define DVBLO_GET_EVENT_MASK _IOR(DVBLO_IOC_MAGIC, 3, unsigned int) +/** + * @brief Get FE parameters + */ +#define DVBLO_GET_FRONTEND_PARAMETERS _IOR(DVBLO_IOC_MAGIC, 4, struct dvb_frontend_parameters) +/** + * @brief Set FE parameters + */ +#define DVBLO_SET_FRONTEND_PARAMETERS _IOW(DVBLO_IOC_MAGIC, 4, struct dvb_frontend_parameters) +/** + * @brief Get tuner parameters + */ +#define DVBLO_GET_TUNER_PARAMETERS _IOR(DVBLO_IOC_MAGIC, 5, struct dvb_frontend_parameters) +/** + * @brief Set tuner parameters + */ +#define DVBLO_SET_TUNER_PARAMETERS _IOW(DVBLO_IOC_MAGIC, 5, struct dvb_frontend_parameters) +/** + * @brief Get SEC parameters + */ +#define DVBLO_GET_SEC_PARAMETERS _IOR(DVBLO_IOC_MAGIC, 6, struct dvblo_sec) +/** + * @brief Get SEC parameters + */ +#define DVBLO_SET_SEC_PARAMETERS _IOW(DVBLO_IOC_MAGIC, 6, struct dvblo_sec) +/** + * @brief Set FE-Status parameters + */ +#define DVBLO_GET_FRONTEND_STATUS _IOR(DVBLO_IOC_MAGIC, 7, struct dvblo_festatus) +/** + * @brief Set Tuner-Status parameters + */ +#define DVBLO_SET_FRONTEND_STATUS _IOW(DVBLO_IOC_MAGIC, 7, struct dvblo_festatus) +/** + * @brief Get Tuner-Status parameters + */ +#define DVBLO_GET_TUNER_STATUS _IOR(DVBLO_IOC_MAGIC, 8, u_int32_t) +/** + * @brief Set Tuner-Status parameters + */ +#define DVBLO_SET_TUNER_STATUS _IOW(DVBLO_IOC_MAGIC, 8, u_int32_t) +/** + * @brief Set FE-Info + */ +#define DVBLO_GET_FRONTEND_INFO _IOR(DVBLO_IOC_MAGIC, 9, struct dvb_frontend_info) +/** + * @brief Set FE-Info + */ +#define DVBLO_SET_FRONTEND_INFO _IOW(DVBLO_IOC_MAGIC, 9, struct dvb_frontend_info) + +#ifndef WIN32 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) +/** + * @brief Set Tuner-Info + */ +#define DVBLO_GET_TUNER_INFO _IOR(DVBLO_IOC_MAGIC, 10, struct dvb_tuner_info) +/** + * @brief Set Tuner-Info + */ +#define DVBLO_SET_TUNER_INFO _IOW(DVBLO_IOC_MAGIC, 10, struct dvb_tuner_info) +#endif /* */ +/** + * @brief Get list of PIDS + */ +#define DVBLO_GET_PIDLIST _IOR(DVBLO_IOC_MAGIC, 20, dvblo_pids_t) +/** + * @brief Pass through of private data + */ +#define DVBLO_GET_PRIVATE _IOR(DVBLO_IOC_MAGIC, 40, dvblo_private_t) +/** + * @brief Pass through of private data + */ +#define DVBLO_SET_PRIVATE _IOW(DVBLO_IOC_MAGIC, 40, dvblo_private_t) +/** + * @brief Get CA_CAPS including slot_info + */ +#define DVBLO_GET_CA_CAPS _IOR(DVBLO_IOC_MAGIC, 80, dvblo_cacaps_t) +/** + * @brief Set CA_CAPS including slot_info + */ +#define DVBLO_SET_CA_CAPS _IOW(DVBLO_IOC_MAGIC, 80, dvblo_cacaps_t) +/** + * @brief Get TPDU + */ +#define DVBLO_GET_TPDU _IOR(DVBLO_IOC_MAGIC, 81, dvblo_tpdu_t) +/** + * @brief Send TPDU + */ +#define DVBLO_SET_TPDU _IOW(DVBLO_IOC_MAGIC, 81, dvblo_tpdu_t) + +#endif /* _DVBLO_IOCTL_H_ */ +#endif |