ioctl FE_GET_INFO

&manvol;

FE_GET_INFO

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

    	int ioctl
    	int fd
    	int request
    	struct dvb_frontend_info *argp

## Arguments

`fd`

- &fe_fd;

`request`

- FE_GET_INFO

`argp`

- pointer to struct &dvb-frontend-info;

## 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.

&return-value-dvb;

## struct dvb_frontend_info

&cs-str;
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.
&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

## frontend capabilities

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

## enum fe_caps

&cs-def;
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