diff --git a/libc/kernel/uapi/linux/dvb/audio.h b/libc/kernel/uapi/linux/dvb/audio.h
index 5e1b1a4..66c2eee 100644
--- a/libc/kernel/uapi/linux/dvb/audio.h
+++ b/libc/kernel/uapi/linux/dvb/audio.h
@@ -21,84 +21,83 @@
 #include <linux/types.h>
 typedef enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- AUDIO_SOURCE_DEMUX,
- AUDIO_SOURCE_MEMORY
+  AUDIO_SOURCE_DEMUX,
+  AUDIO_SOURCE_MEMORY
 } audio_stream_source_t;
 typedef enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- AUDIO_STOPPED,
- AUDIO_PLAYING,
- AUDIO_PAUSED
+  AUDIO_STOPPED,
+  AUDIO_PLAYING,
+  AUDIO_PAUSED
 } audio_play_state_t;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef enum {
- AUDIO_STEREO,
- AUDIO_MONO_LEFT,
- AUDIO_MONO_RIGHT,
+  AUDIO_STEREO,
+  AUDIO_MONO_LEFT,
+  AUDIO_MONO_RIGHT,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- AUDIO_MONO,
- AUDIO_STEREO_SWAPPED
+  AUDIO_MONO,
+  AUDIO_STEREO_SWAPPED
 } audio_channel_select_t;
 typedef struct audio_mixer {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int volume_left;
- unsigned int volume_right;
+  unsigned int volume_left;
+  unsigned int volume_right;
 } audio_mixer_t;
 typedef struct audio_status {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int AV_sync_state;
- int mute_state;
- audio_play_state_t play_state;
- audio_stream_source_t stream_source;
+  int AV_sync_state;
+  int mute_state;
+  audio_play_state_t play_state;
+  audio_stream_source_t stream_source;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- audio_channel_select_t channel_select;
- int bypass_mode;
- audio_mixer_t mixer_state;
+  audio_channel_select_t channel_select;
+  int bypass_mode;
+  audio_mixer_t mixer_state;
 } audio_status_t;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-typedef
-struct audio_karaoke {
- int vocal1;
- int vocal2;
+typedef struct audio_karaoke {
+  int vocal1;
+  int vocal2;
+  int melody;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int melody;
 } audio_karaoke_t;
 typedef __u16 audio_attributes_t;
 #define AUDIO_CAP_DTS 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_CAP_LPCM 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_CAP_MP1 4
 #define AUDIO_CAP_MP2 8
 #define AUDIO_CAP_MP3 16
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_CAP_AAC 32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_CAP_OGG 64
 #define AUDIO_CAP_SDDS 128
 #define AUDIO_CAP_AC3 256
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_STOP _IO('o', 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_PLAY _IO('o', 2)
 #define AUDIO_PAUSE _IO('o', 3)
 #define AUDIO_CONTINUE _IO('o', 4)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_SELECT_SOURCE _IO('o', 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_SET_MUTE _IO('o', 6)
 #define AUDIO_SET_AV_SYNC _IO('o', 7)
 #define AUDIO_SET_BYPASS_MODE _IO('o', 8)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_CHANNEL_SELECT _IO('o', 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_GET_STATUS _IOR('o', 10, audio_status_t)
 #define AUDIO_GET_CAPABILITIES _IOR('o', 11, unsigned int)
 #define AUDIO_CLEAR_BUFFER _IO('o', 12)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_SET_ID _IO('o', 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t)
 #define AUDIO_SET_STREAMTYPE _IO('o', 15)
 #define AUDIO_SET_EXT_ID _IO('o', 16)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t)
 #define AUDIO_GET_PTS _IOR('o', 19, __u64)
 #define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/libc/kernel/uapi/linux/dvb/ca.h b/libc/kernel/uapi/linux/dvb/ca.h
index 139bd2d..2eed656 100644
--- a/libc/kernel/uapi/linux/dvb/ca.h
+++ b/libc/kernel/uapi/linux/dvb/ca.h
@@ -19,54 +19,54 @@
 #ifndef _DVBCA_H_
 #define _DVBCA_H_
 typedef struct ca_slot_info {
- int num;
+  int num;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int type;
+  int type;
 #define CA_CI 1
 #define CA_CI_LINK 2
 #define CA_CI_PHYS 4
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CA_DESCR 8
 #define CA_SC 128
- unsigned int flags;
+  unsigned int flags;
 #define CA_CI_MODULE_PRESENT 1
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CA_CI_MODULE_READY 2
 } ca_slot_info_t;
 typedef struct ca_descr_info {
- unsigned int num;
+  unsigned int num;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int type;
+  unsigned int type;
 #define CA_ECD 1
 #define CA_NDS 2
 #define CA_DSS 4
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } ca_descr_info_t;
 typedef struct ca_caps {
- unsigned int slot_num;
- unsigned int slot_type;
+  unsigned int slot_num;
+  unsigned int slot_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int descr_num;
- unsigned int descr_type;
+  unsigned int descr_num;
+  unsigned int descr_type;
 } ca_caps_t;
 typedef struct ca_msg {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int index;
- unsigned int type;
- unsigned int length;
- unsigned char msg[256];
+  unsigned int index;
+  unsigned int type;
+  unsigned int length;
+  unsigned char msg[256];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } ca_msg_t;
 typedef struct ca_descr {
- unsigned int index;
- unsigned int parity;
+  unsigned int index;
+  unsigned int parity;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned char cw[8];
+  unsigned char cw[8];
 } ca_descr_t;
 typedef struct ca_pid {
- unsigned int pid;
+  unsigned int pid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int index;
+  int index;
 } ca_pid_t;
 #define CA_RESET _IO('o', 128)
 #define CA_GET_CAP _IOR('o', 129, ca_caps_t)
diff --git a/libc/kernel/uapi/linux/dvb/dmx.h b/libc/kernel/uapi/linux/dvb/dmx.h
index b93782a..8e1d718 100644
--- a/libc/kernel/uapi/linux/dvb/dmx.h
+++ b/libc/kernel/uapi/linux/dvb/dmx.h
@@ -22,124 +22,117 @@
 #include <time.h>
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMX_FILTER_SIZE 16
-typedef enum
-{
- DMX_OUT_DECODER,
+typedef enum {
+  DMX_OUT_DECODER,
+  DMX_OUT_TAP,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DMX_OUT_TAP,
- DMX_OUT_TS_TAP,
- DMX_OUT_TSDEMUX_TAP
+  DMX_OUT_TS_TAP,
+  DMX_OUT_TSDEMUX_TAP
 } dmx_output_t;
+typedef enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-typedef enum
-{
- DMX_IN_FRONTEND,
- DMX_IN_DVR
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  DMX_IN_FRONTEND,
+  DMX_IN_DVR
 } dmx_input_t;
-typedef enum dmx_ts_pes
-{
- DMX_PES_AUDIO0,
+typedef enum dmx_ts_pes {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DMX_PES_VIDEO0,
- DMX_PES_TELETEXT0,
- DMX_PES_SUBTITLE0,
- DMX_PES_PCR0,
+  DMX_PES_AUDIO0,
+  DMX_PES_VIDEO0,
+  DMX_PES_TELETEXT0,
+  DMX_PES_SUBTITLE0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DMX_PES_AUDIO1,
- DMX_PES_VIDEO1,
- DMX_PES_TELETEXT1,
- DMX_PES_SUBTITLE1,
+  DMX_PES_PCR0,
+  DMX_PES_AUDIO1,
+  DMX_PES_VIDEO1,
+  DMX_PES_TELETEXT1,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DMX_PES_PCR1,
- DMX_PES_AUDIO2,
- DMX_PES_VIDEO2,
- DMX_PES_TELETEXT2,
+  DMX_PES_SUBTITLE1,
+  DMX_PES_PCR1,
+  DMX_PES_AUDIO2,
+  DMX_PES_VIDEO2,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DMX_PES_SUBTITLE2,
- DMX_PES_PCR2,
- DMX_PES_AUDIO3,
- DMX_PES_VIDEO3,
+  DMX_PES_TELETEXT2,
+  DMX_PES_SUBTITLE2,
+  DMX_PES_PCR2,
+  DMX_PES_AUDIO3,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DMX_PES_TELETEXT3,
- DMX_PES_SUBTITLE3,
- DMX_PES_PCR3,
- DMX_PES_OTHER
+  DMX_PES_VIDEO3,
+  DMX_PES_TELETEXT3,
+  DMX_PES_SUBTITLE3,
+  DMX_PES_PCR3,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  DMX_PES_OTHER
 } dmx_pes_type_t;
 #define DMX_PES_AUDIO DMX_PES_AUDIO0
 #define DMX_PES_VIDEO DMX_PES_VIDEO0
-#define DMX_PES_TELETEXT DMX_PES_TELETEXT0
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMX_PES_TELETEXT DMX_PES_TELETEXT0
 #define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0
 #define DMX_PES_PCR DMX_PES_PCR0
-typedef struct dmx_filter
-{
+typedef struct dmx_filter {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 filter[DMX_FILTER_SIZE];
- __u8 mask[DMX_FILTER_SIZE];
- __u8 mode[DMX_FILTER_SIZE];
+  __u8 filter[DMX_FILTER_SIZE];
+  __u8 mask[DMX_FILTER_SIZE];
+  __u8 mode[DMX_FILTER_SIZE];
 } dmx_filter_t;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct dmx_sct_filter_params
-{
- __u16 pid;
- dmx_filter_t filter;
+struct dmx_sct_filter_params {
+  __u16 pid;
+  dmx_filter_t filter;
+  __u32 timeout;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 timeout;
- __u32 flags;
+  __u32 flags;
 #define DMX_CHECK_CRC 1
 #define DMX_ONESHOT 2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMX_IMMEDIATE_START 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMX_KERNEL_CLIENT 0x8000
 };
-struct dmx_pes_filter_params
+struct dmx_pes_filter_params {
+  __u16 pid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-{
- __u16 pid;
- dmx_input_t input;
- dmx_output_t output;
+  dmx_input_t input;
+  dmx_output_t output;
+  dmx_pes_type_t pes_type;
+  __u32 flags;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- dmx_pes_type_t pes_type;
- __u32 flags;
 };
 typedef struct dmx_caps {
+  __u32 caps;
+  int num_decoders;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 caps;
- int num_decoders;
 } dmx_caps_t;
 typedef enum {
+  DMX_SOURCE_FRONT0 = 0,
+  DMX_SOURCE_FRONT1,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DMX_SOURCE_FRONT0 = 0,
- DMX_SOURCE_FRONT1,
- DMX_SOURCE_FRONT2,
- DMX_SOURCE_FRONT3,
+  DMX_SOURCE_FRONT2,
+  DMX_SOURCE_FRONT3,
+  DMX_SOURCE_DVR0 = 16,
+  DMX_SOURCE_DVR1,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DMX_SOURCE_DVR0 = 16,
- DMX_SOURCE_DVR1,
- DMX_SOURCE_DVR2,
- DMX_SOURCE_DVR3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  DMX_SOURCE_DVR2,
+  DMX_SOURCE_DVR3
 } dmx_source_t;
 struct dmx_stc {
- unsigned int num;
- unsigned int base;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 stc;
+  unsigned int num;
+  unsigned int base;
+  __u64 stc;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMX_START _IO('o', 41)
 #define DMX_STOP _IO('o', 42)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params)
 #define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMX_SET_BUFFER_SIZE _IO('o', 45)
 #define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5])
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMX_GET_CAPS _IOR('o', 48, dmx_caps_t)
 #define DMX_SET_SOURCE _IOW('o', 49, dmx_source_t)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMX_GET_STC _IOWR('o', 50, struct dmx_stc)
 #define DMX_ADD_PID _IOW('o', 51, __u16)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMX_REMOVE_PID _IOW('o', 52, __u16)
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/libc/kernel/uapi/linux/dvb/frontend.h b/libc/kernel/uapi/linux/dvb/frontend.h
index 3d71733..a97d5e7 100644
--- a/libc/kernel/uapi/linux/dvb/frontend.h
+++ b/libc/kernel/uapi/linux/dvb/frontend.h
@@ -21,253 +21,253 @@
 #include <linux/types.h>
 typedef enum fe_type {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_QPSK,
- FE_QAM,
- FE_OFDM,
- FE_ATSC
+  FE_QPSK,
+  FE_QAM,
+  FE_OFDM,
+  FE_ATSC
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } fe_type_t;
 typedef enum fe_caps {
- FE_IS_STUPID = 0,
- FE_CAN_INVERSION_AUTO = 0x1,
+  FE_IS_STUPID = 0,
+  FE_CAN_INVERSION_AUTO = 0x1,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_CAN_FEC_1_2 = 0x2,
- FE_CAN_FEC_2_3 = 0x4,
- FE_CAN_FEC_3_4 = 0x8,
- FE_CAN_FEC_4_5 = 0x10,
+  FE_CAN_FEC_1_2 = 0x2,
+  FE_CAN_FEC_2_3 = 0x4,
+  FE_CAN_FEC_3_4 = 0x8,
+  FE_CAN_FEC_4_5 = 0x10,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_CAN_FEC_5_6 = 0x20,
- FE_CAN_FEC_6_7 = 0x40,
- FE_CAN_FEC_7_8 = 0x80,
- FE_CAN_FEC_8_9 = 0x100,
+  FE_CAN_FEC_5_6 = 0x20,
+  FE_CAN_FEC_6_7 = 0x40,
+  FE_CAN_FEC_7_8 = 0x80,
+  FE_CAN_FEC_8_9 = 0x100,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_CAN_FEC_AUTO = 0x200,
- FE_CAN_QPSK = 0x400,
- FE_CAN_QAM_16 = 0x800,
- FE_CAN_QAM_32 = 0x1000,
+  FE_CAN_FEC_AUTO = 0x200,
+  FE_CAN_QPSK = 0x400,
+  FE_CAN_QAM_16 = 0x800,
+  FE_CAN_QAM_32 = 0x1000,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_CAN_QAM_64 = 0x2000,
- FE_CAN_QAM_128 = 0x4000,
- FE_CAN_QAM_256 = 0x8000,
- FE_CAN_QAM_AUTO = 0x10000,
+  FE_CAN_QAM_64 = 0x2000,
+  FE_CAN_QAM_128 = 0x4000,
+  FE_CAN_QAM_256 = 0x8000,
+  FE_CAN_QAM_AUTO = 0x10000,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
- FE_CAN_BANDWIDTH_AUTO = 0x40000,
- FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
- FE_CAN_HIERARCHY_AUTO = 0x100000,
+  FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
+  FE_CAN_BANDWIDTH_AUTO = 0x40000,
+  FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
+  FE_CAN_HIERARCHY_AUTO = 0x100000,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_CAN_8VSB = 0x200000,
- FE_CAN_16VSB = 0x400000,
- FE_HAS_EXTENDED_CAPS = 0x800000,
- FE_CAN_MULTISTREAM = 0x4000000,
+  FE_CAN_8VSB = 0x200000,
+  FE_CAN_16VSB = 0x400000,
+  FE_HAS_EXTENDED_CAPS = 0x800000,
+  FE_CAN_MULTISTREAM = 0x4000000,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_CAN_TURBO_FEC = 0x8000000,
- FE_CAN_2G_MODULATION = 0x10000000,
- FE_NEEDS_BENDING = 0x20000000,
- FE_CAN_RECOVER = 0x40000000,
+  FE_CAN_TURBO_FEC = 0x8000000,
+  FE_CAN_2G_MODULATION = 0x10000000,
+  FE_NEEDS_BENDING = 0x20000000,
+  FE_CAN_RECOVER = 0x40000000,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_CAN_MUTE_TS = 0x80000000
+  FE_CAN_MUTE_TS = 0x80000000
 } fe_caps_t;
 struct dvb_frontend_info {
- char name[128];
+  char name[128];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- fe_type_t type;
- __u32 frequency_min;
- __u32 frequency_max;
- __u32 frequency_stepsize;
+  fe_type_t type;
+  __u32 frequency_min;
+  __u32 frequency_max;
+  __u32 frequency_stepsize;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 frequency_tolerance;
- __u32 symbol_rate_min;
- __u32 symbol_rate_max;
- __u32 symbol_rate_tolerance;
+  __u32 frequency_tolerance;
+  __u32 symbol_rate_min;
+  __u32 symbol_rate_max;
+  __u32 symbol_rate_tolerance;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 notifier_delay;
- fe_caps_t caps;
+  __u32 notifier_delay;
+  fe_caps_t caps;
 };
 struct dvb_diseqc_master_cmd {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 msg [6];
- __u8 msg_len;
+  __u8 msg[6];
+  __u8 msg_len;
 };
 struct dvb_diseqc_slave_reply {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 msg [4];
- __u8 msg_len;
- int timeout;
+  __u8 msg[4];
+  __u8 msg_len;
+  int timeout;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef enum fe_sec_voltage {
- SEC_VOLTAGE_13,
- SEC_VOLTAGE_18,
- SEC_VOLTAGE_OFF
+  SEC_VOLTAGE_13,
+  SEC_VOLTAGE_18,
+  SEC_VOLTAGE_OFF
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } fe_sec_voltage_t;
 typedef enum fe_sec_tone_mode {
- SEC_TONE_ON,
- SEC_TONE_OFF
+  SEC_TONE_ON,
+  SEC_TONE_OFF
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } fe_sec_tone_mode_t;
 typedef enum fe_sec_mini_cmd {
- SEC_MINI_A,
- SEC_MINI_B
+  SEC_MINI_A,
+  SEC_MINI_B
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } fe_sec_mini_cmd_t;
 typedef enum fe_status {
- FE_HAS_SIGNAL = 0x01,
- FE_HAS_CARRIER = 0x02,
+  FE_HAS_SIGNAL = 0x01,
+  FE_HAS_CARRIER = 0x02,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_HAS_VITERBI = 0x04,
- FE_HAS_SYNC = 0x08,
- FE_HAS_LOCK = 0x10,
- FE_TIMEDOUT = 0x20,
+  FE_HAS_VITERBI = 0x04,
+  FE_HAS_SYNC = 0x08,
+  FE_HAS_LOCK = 0x10,
+  FE_TIMEDOUT = 0x20,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_REINIT = 0x40,
+  FE_REINIT = 0x40,
 } fe_status_t;
 typedef enum fe_spectral_inversion {
- INVERSION_OFF,
+  INVERSION_OFF,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- INVERSION_ON,
- INVERSION_AUTO
+  INVERSION_ON,
+  INVERSION_AUTO
 } fe_spectral_inversion_t;
 typedef enum fe_code_rate {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FEC_NONE = 0,
- FEC_1_2,
- FEC_2_3,
- FEC_3_4,
+  FEC_NONE = 0,
+  FEC_1_2,
+  FEC_2_3,
+  FEC_3_4,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FEC_4_5,
- FEC_5_6,
- FEC_6_7,
- FEC_7_8,
+  FEC_4_5,
+  FEC_5_6,
+  FEC_6_7,
+  FEC_7_8,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FEC_8_9,
- FEC_AUTO,
- FEC_3_5,
- FEC_9_10,
+  FEC_8_9,
+  FEC_AUTO,
+  FEC_3_5,
+  FEC_9_10,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FEC_2_5,
+  FEC_2_5,
 } fe_code_rate_t;
 typedef enum fe_modulation {
- QPSK,
+  QPSK,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- QAM_16,
- QAM_32,
- QAM_64,
- QAM_128,
+  QAM_16,
+  QAM_32,
+  QAM_64,
+  QAM_128,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- QAM_256,
- QAM_AUTO,
- VSB_8,
- VSB_16,
+  QAM_256,
+  QAM_AUTO,
+  VSB_8,
+  VSB_16,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- PSK_8,
- APSK_16,
- APSK_32,
- DQPSK,
+  PSK_8,
+  APSK_16,
+  APSK_32,
+  DQPSK,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- QAM_4_NR,
+  QAM_4_NR,
 } fe_modulation_t;
 typedef enum fe_transmit_mode {
- TRANSMISSION_MODE_2K,
+  TRANSMISSION_MODE_2K,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TRANSMISSION_MODE_8K,
- TRANSMISSION_MODE_AUTO,
- TRANSMISSION_MODE_4K,
- TRANSMISSION_MODE_1K,
+  TRANSMISSION_MODE_8K,
+  TRANSMISSION_MODE_AUTO,
+  TRANSMISSION_MODE_4K,
+  TRANSMISSION_MODE_1K,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TRANSMISSION_MODE_16K,
- TRANSMISSION_MODE_32K,
- TRANSMISSION_MODE_C1,
- TRANSMISSION_MODE_C3780,
+  TRANSMISSION_MODE_16K,
+  TRANSMISSION_MODE_32K,
+  TRANSMISSION_MODE_C1,
+  TRANSMISSION_MODE_C3780,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } fe_transmit_mode_t;
 typedef enum fe_bandwidth {
- BANDWIDTH_8_MHZ,
- BANDWIDTH_7_MHZ,
+  BANDWIDTH_8_MHZ,
+  BANDWIDTH_7_MHZ,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- BANDWIDTH_6_MHZ,
- BANDWIDTH_AUTO,
- BANDWIDTH_5_MHZ,
- BANDWIDTH_10_MHZ,
+  BANDWIDTH_6_MHZ,
+  BANDWIDTH_AUTO,
+  BANDWIDTH_5_MHZ,
+  BANDWIDTH_10_MHZ,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- BANDWIDTH_1_712_MHZ,
+  BANDWIDTH_1_712_MHZ,
 } fe_bandwidth_t;
 typedef enum fe_guard_interval {
- GUARD_INTERVAL_1_32,
+  GUARD_INTERVAL_1_32,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- GUARD_INTERVAL_1_16,
- GUARD_INTERVAL_1_8,
- GUARD_INTERVAL_1_4,
- GUARD_INTERVAL_AUTO,
+  GUARD_INTERVAL_1_16,
+  GUARD_INTERVAL_1_8,
+  GUARD_INTERVAL_1_4,
+  GUARD_INTERVAL_AUTO,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- GUARD_INTERVAL_1_128,
- GUARD_INTERVAL_19_128,
- GUARD_INTERVAL_19_256,
- GUARD_INTERVAL_PN420,
+  GUARD_INTERVAL_1_128,
+  GUARD_INTERVAL_19_128,
+  GUARD_INTERVAL_19_256,
+  GUARD_INTERVAL_PN420,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- GUARD_INTERVAL_PN595,
- GUARD_INTERVAL_PN945,
+  GUARD_INTERVAL_PN595,
+  GUARD_INTERVAL_PN945,
 } fe_guard_interval_t;
 typedef enum fe_hierarchy {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- HIERARCHY_NONE,
- HIERARCHY_1,
- HIERARCHY_2,
- HIERARCHY_4,
+  HIERARCHY_NONE,
+  HIERARCHY_1,
+  HIERARCHY_2,
+  HIERARCHY_4,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- HIERARCHY_AUTO
+  HIERARCHY_AUTO
 } fe_hierarchy_t;
 enum fe_interleaving {
- INTERLEAVING_NONE,
+  INTERLEAVING_NONE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- INTERLEAVING_AUTO,
- INTERLEAVING_240,
- INTERLEAVING_720,
+  INTERLEAVING_AUTO,
+  INTERLEAVING_240,
+  INTERLEAVING_720,
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct dvb_qpsk_parameters {
- __u32 symbol_rate;
- fe_code_rate_t fec_inner;
+  __u32 symbol_rate;
+  fe_code_rate_t fec_inner;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct dvb_qam_parameters {
- __u32 symbol_rate;
- fe_code_rate_t fec_inner;
- fe_modulation_t modulation;
+  __u32 symbol_rate;
+  fe_code_rate_t fec_inner;
+  fe_modulation_t modulation;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct dvb_vsb_parameters {
- fe_modulation_t modulation;
+  fe_modulation_t modulation;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct dvb_ofdm_parameters {
- fe_bandwidth_t bandwidth;
- fe_code_rate_t code_rate_HP;
- fe_code_rate_t code_rate_LP;
+  fe_bandwidth_t bandwidth;
+  fe_code_rate_t code_rate_HP;
+  fe_code_rate_t code_rate_LP;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- fe_modulation_t constellation;
- fe_transmit_mode_t transmission_mode;
- fe_guard_interval_t guard_interval;
- fe_hierarchy_t hierarchy_information;
+  fe_modulation_t constellation;
+  fe_transmit_mode_t transmission_mode;
+  fe_guard_interval_t guard_interval;
+  fe_hierarchy_t hierarchy_information;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct dvb_frontend_parameters {
- __u32 frequency;
- fe_spectral_inversion_t inversion;
+  __u32 frequency;
+  fe_spectral_inversion_t inversion;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- union {
- struct dvb_qpsk_parameters qpsk;
- struct dvb_qam_parameters qam;
- struct dvb_ofdm_parameters ofdm;
+  union {
+    struct dvb_qpsk_parameters qpsk;
+    struct dvb_qam_parameters qam;
+    struct dvb_ofdm_parameters ofdm;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct dvb_vsb_parameters vsb;
- } u;
+    struct dvb_vsb_parameters vsb;
+  } u;
 };
 struct dvb_frontend_event {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- fe_status_t status;
- struct dvb_frontend_parameters parameters;
+  fe_status_t status;
+  struct dvb_frontend_parameters parameters;
 };
 #define DTV_UNDEFINED 0
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -361,135 +361,135 @@
 #define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT
 typedef enum fe_pilot {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- PILOT_ON,
- PILOT_OFF,
- PILOT_AUTO,
+  PILOT_ON,
+  PILOT_OFF,
+  PILOT_AUTO,
 } fe_pilot_t;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef enum fe_rolloff {
- ROLLOFF_35,
- ROLLOFF_20,
- ROLLOFF_25,
+  ROLLOFF_35,
+  ROLLOFF_20,
+  ROLLOFF_25,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ROLLOFF_AUTO,
+  ROLLOFF_AUTO,
 } fe_rolloff_t;
 typedef enum fe_delivery_system {
- SYS_UNDEFINED,
+  SYS_UNDEFINED,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- SYS_DVBC_ANNEX_A,
- SYS_DVBC_ANNEX_B,
- SYS_DVBT,
- SYS_DSS,
+  SYS_DVBC_ANNEX_A,
+  SYS_DVBC_ANNEX_B,
+  SYS_DVBT,
+  SYS_DSS,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- SYS_DVBS,
- SYS_DVBS2,
- SYS_DVBH,
- SYS_ISDBT,
+  SYS_DVBS,
+  SYS_DVBS2,
+  SYS_DVBH,
+  SYS_ISDBT,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- SYS_ISDBS,
- SYS_ISDBC,
- SYS_ATSC,
- SYS_ATSCMH,
+  SYS_ISDBS,
+  SYS_ISDBC,
+  SYS_ATSC,
+  SYS_ATSCMH,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- SYS_DTMB,
- SYS_CMMB,
- SYS_DAB,
- SYS_DVBT2,
+  SYS_DTMB,
+  SYS_CMMB,
+  SYS_DAB,
+  SYS_DVBT2,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- SYS_TURBO,
- SYS_DVBC_ANNEX_C,
+  SYS_TURBO,
+  SYS_DVBC_ANNEX_C,
 } fe_delivery_system_t;
 #define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SYS_DMBTH SYS_DTMB
 enum atscmh_sccc_block_mode {
- ATSCMH_SCCC_BLK_SEP = 0,
- ATSCMH_SCCC_BLK_COMB = 1,
+  ATSCMH_SCCC_BLK_SEP = 0,
+  ATSCMH_SCCC_BLK_COMB = 1,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ATSCMH_SCCC_BLK_RES = 2,
+  ATSCMH_SCCC_BLK_RES = 2,
 };
 enum atscmh_sccc_code_mode {
- ATSCMH_SCCC_CODE_HLF = 0,
+  ATSCMH_SCCC_CODE_HLF = 0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ATSCMH_SCCC_CODE_QTR = 1,
- ATSCMH_SCCC_CODE_RES = 2,
+  ATSCMH_SCCC_CODE_QTR = 1,
+  ATSCMH_SCCC_CODE_RES = 2,
 };
 enum atscmh_rs_frame_ensemble {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ATSCMH_RSFRAME_ENS_PRI = 0,
- ATSCMH_RSFRAME_ENS_SEC = 1,
+  ATSCMH_RSFRAME_ENS_PRI = 0,
+  ATSCMH_RSFRAME_ENS_SEC = 1,
 };
 enum atscmh_rs_frame_mode {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ATSCMH_RSFRAME_PRI_ONLY = 0,
- ATSCMH_RSFRAME_PRI_SEC = 1,
- ATSCMH_RSFRAME_RES = 2,
+  ATSCMH_RSFRAME_PRI_ONLY = 0,
+  ATSCMH_RSFRAME_PRI_SEC = 1,
+  ATSCMH_RSFRAME_RES = 2,
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum atscmh_rs_code_mode {
- ATSCMH_RSCODE_211_187 = 0,
- ATSCMH_RSCODE_223_187 = 1,
- ATSCMH_RSCODE_235_187 = 2,
+  ATSCMH_RSCODE_211_187 = 0,
+  ATSCMH_RSCODE_223_187 = 1,
+  ATSCMH_RSCODE_235_187 = 2,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ATSCMH_RSCODE_RES = 3,
+  ATSCMH_RSCODE_RES = 3,
 };
 #define NO_STREAM_ID_FILTER (~0U)
 #define LNA_AUTO (~0U)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct dtv_cmds_h {
- char *name;
- __u32 cmd;
- __u32 set:1;
+  char * name;
+  __u32 cmd;
+  __u32 set : 1;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 buffer:1;
- __u32 reserved:30;
+  __u32 buffer : 1;
+  __u32 reserved : 30;
 };
 enum fecap_scale_params {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FE_SCALE_NOT_AVAILABLE = 0,
- FE_SCALE_DECIBEL,
- FE_SCALE_RELATIVE,
- FE_SCALE_COUNTER
+  FE_SCALE_NOT_AVAILABLE = 0,
+  FE_SCALE_DECIBEL,
+  FE_SCALE_RELATIVE,
+  FE_SCALE_COUNTER
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct dtv_stats {
- __u8 scale;
- union {
+  __u8 scale;
+  union {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 uvalue;
- __s64 svalue;
- };
-} __attribute__ ((packed));
+    __u64 uvalue;
+    __s64 svalue;
+  };
+} __attribute__((packed));
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MAX_DTV_STATS 4
 struct dtv_fe_stats {
- __u8 len;
- struct dtv_stats stat[MAX_DTV_STATS];
+  __u8 len;
+  struct dtv_stats stat[MAX_DTV_STATS];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-} __attribute__ ((packed));
+} __attribute__((packed));
 struct dtv_property {
- __u32 cmd;
- __u32 reserved[3];
+  __u32 cmd;
+  __u32 reserved[3];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- union {
- __u32 data;
- struct dtv_fe_stats st;
- struct {
+  union {
+    __u32 data;
+    struct dtv_fe_stats st;
+    struct {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 data[32];
- __u32 len;
- __u32 reserved1[3];
- void *reserved2;
+      __u8 data[32];
+      __u32 len;
+      __u32 reserved1[3];
+      void * reserved2;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- } buffer;
- } u;
- int result;
-} __attribute__ ((packed));
+    } buffer;
+  } u;
+  int result;
+} __attribute__((packed));
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DTV_IOCTL_MAX_MSGS 64
 struct dtv_properties {
- __u32 num;
- struct dtv_property *props;
+  __u32 num;
+  struct dtv_property * props;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
diff --git a/libc/kernel/uapi/linux/dvb/net.h b/libc/kernel/uapi/linux/dvb/net.h
index 48308d7..f085dc3 100644
--- a/libc/kernel/uapi/linux/dvb/net.h
+++ b/libc/kernel/uapi/linux/dvb/net.h
@@ -21,9 +21,9 @@
 #include <linux/types.h>
 struct dvb_net_if {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 pid;
- __u16 if_num;
- __u8 feedtype;
+  __u16 pid;
+  __u16 if_num;
+  __u8 feedtype;
 #define DVB_NET_FEEDTYPE_MPE 0
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DVB_NET_FEEDTYPE_ULE 1
@@ -33,8 +33,8 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NET_GET_IF _IOWR('o', 54, struct dvb_net_if)
 struct __dvb_net_if_old {
- __u16 pid;
- __u16 if_num;
+  __u16 pid;
+  __u16 if_num;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #define __NET_ADD_IF_OLD _IOWR('o', 52, struct __dvb_net_if_old)
diff --git a/libc/kernel/uapi/linux/dvb/osd.h b/libc/kernel/uapi/linux/dvb/osd.h
index 04d673d..9aab98f 100644
--- a/libc/kernel/uapi/linux/dvb/osd.h
+++ b/libc/kernel/uapi/linux/dvb/osd.h
@@ -21,78 +21,78 @@
 #include <linux/compiler.h>
 typedef enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_Close=1,
- OSD_Open,
- OSD_Show,
- OSD_Hide,
+  OSD_Close = 1,
+  OSD_Open,
+  OSD_Show,
+  OSD_Hide,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_Clear,
- OSD_Fill,
- OSD_SetColor,
- OSD_SetPalette,
+  OSD_Clear,
+  OSD_Fill,
+  OSD_SetColor,
+  OSD_SetPalette,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_SetTrans,
- OSD_SetPixel,
- OSD_GetPixel,
- OSD_SetRow,
+  OSD_SetTrans,
+  OSD_SetPixel,
+  OSD_GetPixel,
+  OSD_SetRow,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_SetBlock,
- OSD_FillRow,
- OSD_FillBlock,
- OSD_Line,
+  OSD_SetBlock,
+  OSD_FillRow,
+  OSD_FillBlock,
+  OSD_Line,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_Query,
- OSD_Test,
- OSD_Text,
- OSD_SetWindow,
+  OSD_Query,
+  OSD_Test,
+  OSD_Text,
+  OSD_SetWindow,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_MoveWindow,
- OSD_OpenRaw,
+  OSD_MoveWindow,
+  OSD_OpenRaw,
 } OSD_Command;
 typedef struct osd_cmd_s {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_Command cmd;
- int x0;
- int y0;
- int x1;
+  OSD_Command cmd;
+  int x0;
+  int y0;
+  int x1;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int y1;
- int color;
- void __user *data;
+  int y1;
+  int color;
+  void __user * data;
 } osd_cmd_t;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef enum {
- OSD_BITMAP1,
- OSD_BITMAP2,
- OSD_BITMAP4,
+  OSD_BITMAP1,
+  OSD_BITMAP2,
+  OSD_BITMAP4,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_BITMAP8,
- OSD_BITMAP1HR,
- OSD_BITMAP2HR,
- OSD_BITMAP4HR,
+  OSD_BITMAP8,
+  OSD_BITMAP1HR,
+  OSD_BITMAP2HR,
+  OSD_BITMAP4HR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_BITMAP8HR,
- OSD_YCRCB422,
- OSD_YCRCB444,
- OSD_YCRCB444HR,
+  OSD_BITMAP8HR,
+  OSD_YCRCB422,
+  OSD_YCRCB444,
+  OSD_YCRCB444HR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_VIDEOTSIZE,
- OSD_VIDEOHSIZE,
- OSD_VIDEOQSIZE,
- OSD_VIDEODSIZE,
+  OSD_VIDEOTSIZE,
+  OSD_VIDEOHSIZE,
+  OSD_VIDEOQSIZE,
+  OSD_VIDEODSIZE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_VIDEOTHSIZE,
- OSD_VIDEOTQSIZE,
- OSD_VIDEOTDSIZE,
- OSD_VIDEONSIZE,
+  OSD_VIDEOTHSIZE,
+  OSD_VIDEOTQSIZE,
+  OSD_VIDEOTDSIZE,
+  OSD_VIDEONSIZE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- OSD_CURSOR
+  OSD_CURSOR
 } osd_raw_window_t;
 typedef struct osd_cap_s {
- int cmd;
+  int cmd;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define OSD_CAP_MEMSIZE 1
- long val;
+  long val;
 } osd_cap_t;
 #define OSD_SEND_CMD _IOW('o', 160, osd_cmd_t)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/libc/kernel/uapi/linux/dvb/video.h b/libc/kernel/uapi/linux/dvb/video.h
index 7f6d109..c8910bd 100644
--- a/libc/kernel/uapi/linux/dvb/video.h
+++ b/libc/kernel/uapi/linux/dvb/video.h
@@ -23,46 +23,46 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <time.h>
 typedef enum {
- VIDEO_FORMAT_4_3,
- VIDEO_FORMAT_16_9,
+  VIDEO_FORMAT_4_3,
+  VIDEO_FORMAT_16_9,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VIDEO_FORMAT_221_1
+  VIDEO_FORMAT_221_1
 } video_format_t;
 typedef enum {
- VIDEO_SYSTEM_PAL,
+  VIDEO_SYSTEM_PAL,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VIDEO_SYSTEM_NTSC,
- VIDEO_SYSTEM_PALN,
- VIDEO_SYSTEM_PALNc,
- VIDEO_SYSTEM_PALM,
+  VIDEO_SYSTEM_NTSC,
+  VIDEO_SYSTEM_PALN,
+  VIDEO_SYSTEM_PALNc,
+  VIDEO_SYSTEM_PALM,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VIDEO_SYSTEM_NTSC60,
- VIDEO_SYSTEM_PAL60,
- VIDEO_SYSTEM_PALM60
+  VIDEO_SYSTEM_NTSC60,
+  VIDEO_SYSTEM_PAL60,
+  VIDEO_SYSTEM_PALM60
 } video_system_t;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef enum {
- VIDEO_PAN_SCAN,
- VIDEO_LETTER_BOX,
- VIDEO_CENTER_CUT_OUT
+  VIDEO_PAN_SCAN,
+  VIDEO_LETTER_BOX,
+  VIDEO_CENTER_CUT_OUT
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } video_displayformat_t;
 typedef struct {
- int w;
- int h;
+  int w;
+  int h;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- video_format_t aspect_ratio;
+  video_format_t aspect_ratio;
 } video_size_t;
 typedef enum {
- VIDEO_SOURCE_DEMUX,
+  VIDEO_SOURCE_DEMUX,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VIDEO_SOURCE_MEMORY
+  VIDEO_SOURCE_MEMORY
 } video_stream_source_t;
 typedef enum {
- VIDEO_STOPPED,
+  VIDEO_STOPPED,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VIDEO_PLAYING,
- VIDEO_FREEZED
+  VIDEO_PLAYING,
+  VIDEO_FREEZED
 } video_play_state_t;
 #define VIDEO_CMD_PLAY (0)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -77,23 +77,23 @@
 #define VIDEO_PLAY_FMT_GOP (1)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct video_command {
- __u32 cmd;
- __u32 flags;
- union {
+  __u32 cmd;
+  __u32 flags;
+  union {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct {
- __u64 pts;
- } stop;
- struct {
+    struct {
+      __u64 pts;
+    } stop;
+    struct {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __s32 speed;
- __u32 format;
- } play;
- struct {
+      __s32 speed;
+      __u32 format;
+    } play;
+    struct {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 data[16];
- } raw;
- };
+      __u32 data[16];
+    } raw;
+  };
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_VSYNC_FIELD_UNKNOWN (0)
@@ -102,107 +102,105 @@
 #define VIDEO_VSYNC_FIELD_PROGRESSIVE (3)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct video_event {
- __s32 type;
+  __s32 type;
 #define VIDEO_EVENT_SIZE_CHANGED 1
 #define VIDEO_EVENT_FRAME_RATE_CHANGED 2
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_EVENT_DECODER_STOPPED 3
 #define VIDEO_EVENT_VSYNC 4
- __kernel_time_t timestamp;
- union {
+  __kernel_time_t timestamp;
+  union {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- video_size_t size;
- unsigned int frame_rate;
- unsigned char vsync_field;
- } u;
+    video_size_t size;
+    unsigned int frame_rate;
+    unsigned char vsync_field;
+  } u;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct video_status {
- int video_blank;
- video_play_state_t play_state;
+  int video_blank;
+  video_play_state_t play_state;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- video_stream_source_t stream_source;
- video_format_t video_format;
- video_displayformat_t display_format;
+  video_stream_source_t stream_source;
+  video_format_t video_format;
+  video_displayformat_t display_format;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct video_still_picture {
- char __user *iFrame;
- __s32 size;
+  char __user * iFrame;
+  __s32 size;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-typedef
-struct video_highlight {
- int active;
- __u8 contrast1;
+typedef struct video_highlight {
+  int active;
+  __u8 contrast1;
+  __u8 contrast2;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 contrast2;
- __u8 color1;
- __u8 color2;
- __u32 ypos;
+  __u8 color1;
+  __u8 color2;
+  __u32 ypos;
+  __u32 xpos;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 xpos;
 } video_highlight_t;
 typedef struct video_spu {
- int active;
+  int active;
+  int stream_id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int stream_id;
 } video_spu_t;
 typedef struct video_spu_palette {
- int length;
+  int length;
+  __u8 __user * palette;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 __user *palette;
 } video_spu_palette_t;
 typedef struct video_navi_pack {
- int length;
+  int length;
+  __u8 data[1024];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 data[1024];
 } video_navi_pack_t;
 typedef __u16 video_attributes_t;
 #define VIDEO_CAP_MPEG1 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_CAP_MPEG2 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_CAP_SYS 4
 #define VIDEO_CAP_PROG 8
 #define VIDEO_CAP_SPU 16
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_CAP_NAVI 32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_CAP_CSS 64
 #define VIDEO_STOP _IO('o', 21)
 #define VIDEO_PLAY _IO('o', 22)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_FREEZE _IO('o', 23)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_CONTINUE _IO('o', 24)
 #define VIDEO_SELECT_SOURCE _IO('o', 25)
 #define VIDEO_SET_BLANK _IO('o', 26)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_GET_STATUS _IOR('o', 27, struct video_status)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_GET_EVENT _IOR('o', 28, struct video_event)
 #define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29)
 #define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_FAST_FORWARD _IO('o', 31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_SLOWMOTION _IO('o', 32)
 #define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int)
 #define VIDEO_CLEAR_BUFFER _IO('o', 34)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_SET_ID _IO('o', 35)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_SET_STREAMTYPE _IO('o', 36)
 #define VIDEO_SET_FORMAT _IO('o', 37)
 #define VIDEO_SET_SYSTEM _IO('o', 38)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_SET_SPU _IOW('o', 50, video_spu_t)
 #define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t)
 #define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_SET_ATTRIBUTES _IO('o', 53)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_GET_SIZE _IOR('o', 55, video_size_t)
 #define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int)
 #define VIDEO_GET_PTS _IOR('o', 57, __u64)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIDEO_COMMAND _IOWR('o', 59, struct video_command)
 #define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command)
 #endif
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
