2.5.3. ioctl FE_GET_INFO

2.5.3.1. Name

FE_GET_INFO - Query DVB frontend capabilities and returns information about the - front-end. This call only requires read-only access to the device

2.5.3.2. Synopsis

int ioctl(int fd, FE_GET_INFO, struct dvb_frontend_info *argp)

2.5.3.3. Arguments

fd
File descriptor returned by open().
argp
pointer to struct struct dvb_frontend_info

2.5.3.4. Description

All DVB frontend devices support the FE_GET_INFO ioctl. It is used to identify kernel devices compatible with this specification and to obtain information about driver and hardware capabilities. The ioctl takes a pointer to dvb_frontend_info which is filled by the driver. When the driver is not compatible with this specification the ioctl returns an error.

dvb_frontend_info
struct dvb_frontend_info
char name[128] Name of the frontend
fe_type_t type DEPRECATED. DVBv3 type. Should not be used on modern programs, as a frontend may have more than one type. So, the DVBv5 API should be used instead to enumerate and select the frontend type.
uint32_t frequency_min Minimal frequency supported by the frontend
uint32_t frequency_max Maximal frequency supported by the frontend
uint32_t frequency_stepsize Frequency step - all frequencies are multiple of this value
uint32_t frequency_tolerance Tolerance of the frequency
uint32_t symbol_rate_min Minimal symbol rate (for Cable/Satellite systems), in bauds
uint32_t symbol_rate_max Maximal symbol rate (for Cable/Satellite systems), in bauds
uint32_t symbol_rate_tolerance Maximal symbol rate tolerance, in ppm
uint32_t notifier_delay DEPRECATED. Not used by any driver.
enum fe_caps caps Capabilities supported by the frontend

Note

The frequencies are specified in Hz for Terrestrial and Cable systems. They’re specified in kHz for Satellite systems

2.5.3.5. frontend capabilities

Capabilities describe what a frontend can do. Some capabilities are supported only on some specific frontend types.

fe_caps
enum fe_caps
ID Description

FE_IS_STUPID

There’s something wrong at the frontend, and it can’t report its capabilities

FE_CAN_INVERSION_AUTO

The frontend is capable of auto-detecting inversion

FE_CAN_FEC_1_2

The frontend supports FEC 1/2

FE_CAN_FEC_2_3

The frontend supports FEC 2/3

FE_CAN_FEC_3_4

The frontend supports FEC 3/4

FE_CAN_FEC_4_5

The frontend supports FEC 4/5

FE_CAN_FEC_5_6

The frontend supports FEC 5/6

FE_CAN_FEC_6_7

The frontend supports FEC 6/7

FE_CAN_FEC_7_8

The frontend supports FEC 7/8

FE_CAN_FEC_8_9

The frontend supports FEC 8/9

FE_CAN_FEC_AUTO

The frontend can autodetect FEC.

FE_CAN_QPSK

The frontend supports QPSK modulation

FE_CAN_QAM_16

The frontend supports 16-QAM modulation

FE_CAN_QAM_32

The frontend supports 32-QAM modulation

FE_CAN_QAM_64

The frontend supports 64-QAM modulation

FE_CAN_QAM_128

The frontend supports 128-QAM modulation

FE_CAN_QAM_256

The frontend supports 256-QAM modulation

FE_CAN_QAM_AUTO

The frontend can autodetect modulation

FE_CAN_TRANSMISSION_MODE_AUTO

The frontend can autodetect the transmission mode

FE_CAN_BANDWIDTH_AUTO

The frontend can autodetect the bandwidth

FE_CAN_GUARD_INTERVAL_AUTO

The frontend can autodetect the guard interval

FE_CAN_HIERARCHY_AUTO

The frontend can autodetect hierarch

FE_CAN_8VSB

The frontend supports 8-VSB modulation

FE_CAN_16VSB

The frontend supports 16-VSB modulation

FE_HAS_EXTENDED_CAPS

Currently, unused

FE_CAN_MULTISTREAM

The frontend supports multistream filtering

FE_CAN_TURBO_FEC

The frontend supports turbo FEC modulation

FE_CAN_2G_MODULATION

The frontend supports “2nd generation modulation” (DVB-S2/T2)>

FE_NEEDS_BENDING

Not supported anymore, don’t use it

FE_CAN_RECOVER

The frontend can recover from a cable unplug automatically

FE_CAN_MUTE_TS

The frontend can stop spurious TS data output

2.5.3.6. Return Value

On success 0 is returned, on error -1 and the errno variable is set appropriately. The generic error codes are described at the Generic Error Codes chapter.