diff --git a/libc/kernel/uapi/video/adf.h b/libc/kernel/uapi/video/adf.h
index fe23e01..77203a5 100644
--- a/libc/kernel/uapi/video/adf.h
+++ b/libc/kernel/uapi/video/adf.h
@@ -27,137 +27,137 @@
 #define ADF_MAX_CUSTOM_DATA_SIZE 4096
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum adf_interface_type {
- ADF_INTF_DSI = 0,
- ADF_INTF_eDP = 1,
- ADF_INTF_DPI = 2,
+  ADF_INTF_DSI = 0,
+  ADF_INTF_eDP = 1,
+  ADF_INTF_DPI = 2,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ADF_INTF_VGA = 3,
- ADF_INTF_DVI = 4,
- ADF_INTF_HDMI = 5,
- ADF_INTF_MEMORY = 6,
+  ADF_INTF_VGA = 3,
+  ADF_INTF_DVI = 4,
+  ADF_INTF_HDMI = 5,
+  ADF_INTF_MEMORY = 6,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ADF_INTF_TYPE_DEVICE_CUSTOM = 128,
- ADF_INTF_TYPE_MAX = (~(__u32)0),
+  ADF_INTF_TYPE_DEVICE_CUSTOM = 128,
+  ADF_INTF_TYPE_MAX = (~(__u32) 0),
 };
 #define ADF_INTF_FLAG_PRIMARY (1 << 0)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ADF_INTF_FLAG_EXTERNAL (1 << 1)
 enum adf_event_type {
- ADF_EVENT_VSYNC = 0,
- ADF_EVENT_HOTPLUG = 1,
+  ADF_EVENT_VSYNC = 0,
+  ADF_EVENT_HOTPLUG = 1,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ADF_EVENT_DEVICE_CUSTOM = 128,
- ADF_EVENT_TYPE_MAX = 255,
+  ADF_EVENT_DEVICE_CUSTOM = 128,
+  ADF_EVENT_TYPE_MAX = 255,
 };
 struct adf_set_event {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 type;
- __u8 enabled;
+  __u8 type;
+  __u8 enabled;
 };
 struct adf_event {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 type;
- __u32 length;
+  __u8 type;
+  __u32 length;
 };
 struct adf_vsync_event {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct adf_event base;
- __aligned_u64 timestamp;
+  struct adf_event base;
+  __aligned_u64 timestamp;
 };
 struct adf_hotplug_event {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct adf_event base;
- __u8 connected;
+  struct adf_event base;
+  __u8 connected;
 };
 #define ADF_MAX_PLANES 4
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct adf_buffer_config {
- __u32 overlay_engine;
- __u32 w;
- __u32 h;
+  __u32 overlay_engine;
+  __u32 w;
+  __u32 h;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 format;
- __s32 fd[ADF_MAX_PLANES];
- __u32 offset[ADF_MAX_PLANES];
- __u32 pitch[ADF_MAX_PLANES];
+  __u32 format;
+  __s32 fd[ADF_MAX_PLANES];
+  __u32 offset[ADF_MAX_PLANES];
+  __u32 pitch[ADF_MAX_PLANES];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 n_planes;
- __s32 acquire_fence;
+  __u8 n_planes;
+  __s32 acquire_fence;
 };
 #define ADF_MAX_BUFFERS (4096 / sizeof(struct adf_buffer_config))
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct adf_post_config {
- size_t n_interfaces;
- __u32 __user *interfaces;
- size_t n_bufs;
+  size_t n_interfaces;
+  __u32 __user * interfaces;
+  size_t n_bufs;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct adf_buffer_config __user *bufs;
- size_t custom_data_size;
- void __user *custom_data;
- __s32 complete_fence;
+  struct adf_buffer_config __user * bufs;
+  size_t custom_data_size;
+  void __user * custom_data;
+  __s32 complete_fence;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #define ADF_MAX_INTERFACES (4096 / sizeof(__u32))
 struct adf_simple_buffer_alloc {
- __u16 w;
+  __u16 w;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 h;
- __u32 format;
- __s32 fd;
- __u32 offset;
+  __u16 h;
+  __u32 format;
+  __s32 fd;
+  __u32 offset;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 pitch;
+  __u32 pitch;
 };
 struct adf_simple_post_config {
- struct adf_buffer_config buf;
+  struct adf_buffer_config buf;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __s32 complete_fence;
+  __s32 complete_fence;
 };
 struct adf_attachment_config {
- __u32 overlay_engine;
+  __u32 overlay_engine;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 interface;
+  __u32 interface;
 };
 struct adf_device_data {
- char name[ADF_NAME_LEN];
+  char name[ADF_NAME_LEN];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t n_attachments;
- struct adf_attachment_config __user *attachments;
- size_t n_allowed_attachments;
- struct adf_attachment_config __user *allowed_attachments;
+  size_t n_attachments;
+  struct adf_attachment_config __user * attachments;
+  size_t n_allowed_attachments;
+  struct adf_attachment_config __user * allowed_attachments;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t custom_data_size;
- void __user *custom_data;
+  size_t custom_data_size;
+  void __user * custom_data;
 };
 #define ADF_MAX_ATTACHMENTS (4096 / sizeof(struct adf_attachment_config))
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct adf_interface_data {
- char name[ADF_NAME_LEN];
- __u32 type;
- __u32 id;
+  char name[ADF_NAME_LEN];
+  __u32 type;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 flags;
- __u8 dpms_state;
- __u8 hotplug_detect;
- __u16 width_mm;
+  __u32 flags;
+  __u8 dpms_state;
+  __u8 hotplug_detect;
+  __u16 width_mm;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 height_mm;
- struct drm_mode_modeinfo current_mode;
- size_t n_available_modes;
- struct drm_mode_modeinfo __user *available_modes;
+  __u16 height_mm;
+  struct drm_mode_modeinfo current_mode;
+  size_t n_available_modes;
+  struct drm_mode_modeinfo __user * available_modes;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t custom_data_size;
- void __user *custom_data;
+  size_t custom_data_size;
+  void __user * custom_data;
 };
 #define ADF_MAX_MODES (4096 / sizeof(struct drm_mode_modeinfo))
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct adf_overlay_engine_data {
- char name[ADF_NAME_LEN];
- size_t n_supported_formats;
- __u32 __user *supported_formats;
+  char name[ADF_NAME_LEN];
+  size_t n_supported_formats;
+  __u32 __user * supported_formats;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t custom_data_size;
- void __user *custom_data;
+  size_t custom_data_size;
+  void __user * custom_data;
 };
 #define ADF_MAX_SUPPORTED_FORMATS (4096 / sizeof(__u32))
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -167,14 +167,14 @@
 #define ADF_BLANK _IOW(ADF_IOCTL_TYPE, 1, __u8)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ADF_POST_CONFIG _IOW(ADF_IOCTL_TYPE, 2, struct adf_post_config)
-#define ADF_SET_MODE _IOW(ADF_IOCTL_TYPE, 3,   struct drm_mode_modeinfo)
+#define ADF_SET_MODE _IOW(ADF_IOCTL_TYPE, 3, struct drm_mode_modeinfo)
 #define ADF_GET_DEVICE_DATA _IOR(ADF_IOCTL_TYPE, 4, struct adf_device_data)
-#define ADF_GET_INTERFACE_DATA _IOR(ADF_IOCTL_TYPE, 5,   struct adf_interface_data)
+#define ADF_GET_INTERFACE_DATA _IOR(ADF_IOCTL_TYPE, 5, struct adf_interface_data)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ADF_GET_OVERLAY_ENGINE_DATA   _IOR(ADF_IOCTL_TYPE, 6,   struct adf_overlay_engine_data)
-#define ADF_SIMPLE_POST_CONFIG _IOW(ADF_IOCTL_TYPE, 7,   struct adf_simple_post_config)
-#define ADF_SIMPLE_BUFFER_ALLOC _IOW(ADF_IOCTL_TYPE, 8,   struct adf_simple_buffer_alloc)
-#define ADF_ATTACH _IOW(ADF_IOCTL_TYPE, 9,   struct adf_attachment_config)
+#define ADF_GET_OVERLAY_ENGINE_DATA _IOR(ADF_IOCTL_TYPE, 6, struct adf_overlay_engine_data)
+#define ADF_SIMPLE_POST_CONFIG _IOW(ADF_IOCTL_TYPE, 7, struct adf_simple_post_config)
+#define ADF_SIMPLE_BUFFER_ALLOC _IOW(ADF_IOCTL_TYPE, 8, struct adf_simple_buffer_alloc)
+#define ADF_ATTACH _IOW(ADF_IOCTL_TYPE, 9, struct adf_attachment_config)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ADF_DETACH _IOW(ADF_IOCTL_TYPE, 10,   struct adf_attachment_config)
+#define ADF_DETACH _IOW(ADF_IOCTL_TYPE, 10, struct adf_attachment_config)
 #endif
diff --git a/libc/kernel/uapi/video/edid.h b/libc/kernel/uapi/video/edid.h
index 6855c5e..2ab2b62 100644
--- a/libc/kernel/uapi/video/edid.h
+++ b/libc/kernel/uapi/video/edid.h
@@ -19,7 +19,7 @@
 #ifndef _UAPI__linux_video_edid_h__
 #define _UAPI__linux_video_edid_h__
 struct edid_info {
- unsigned char dummy[128];
+  unsigned char dummy[128];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #endif
diff --git a/libc/kernel/uapi/video/sisfb.h b/libc/kernel/uapi/video/sisfb.h
index a464530..29cdae0 100644
--- a/libc/kernel/uapi/video/sisfb.h
+++ b/libc/kernel/uapi/video/sisfb.h
@@ -52,7 +52,7 @@
 #define CRT2_ENABLE (CRT2_LCD | CRT2_TV | CRT2_VGA)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TV_STANDARD (TV_NTSC | TV_PAL | TV_PALM | TV_PALN | TV_NTSCJ)
-#define TV_INTERFACE (TV_AVIDEO|TV_SVIDEO|TV_SCART|TV_HIVISION|TV_YPBPR|TV_CHSCART|TV_CHYPBPR525I)
+#define TV_INTERFACE (TV_AVIDEO | TV_SVIDEO | TV_SCART | TV_HIVISION | TV_YPBPR | TV_CHSCART | TV_CHYPBPR525I)
 #define TV_YPBPR525I TV_NTSC
 #define TV_YPBPR525P TV_PAL
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -69,52 +69,52 @@
 #define VB_DISPMODE_DUAL VB_DUALVIEW_MODE
 #define VB_DISPLAY_MODE (SINGLE_MODE | MIRROR_MODE | DUALVIEW_MODE)
 struct sisfb_info {
- __u32 sisfb_id;
+  __u32 sisfb_id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #ifndef SISFB_ID
 #define SISFB_ID 0x53495346
 #endif
- __u32 chip_id;
+  __u32 chip_id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 memory;
- __u32 heapstart;
- __u8 fbvidmode;
- __u8 sisfb_version;
+  __u32 memory;
+  __u32 heapstart;
+  __u8 fbvidmode;
+  __u8 sisfb_version;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 sisfb_revision;
- __u8 sisfb_patchlevel;
- __u8 sisfb_caps;
- __u32 sisfb_tqlen;
+  __u8 sisfb_revision;
+  __u8 sisfb_patchlevel;
+  __u8 sisfb_caps;
+  __u32 sisfb_tqlen;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sisfb_pcibus;
- __u32 sisfb_pcislot;
- __u32 sisfb_pcifunc;
- __u8 sisfb_lcdpdc;
+  __u32 sisfb_pcibus;
+  __u32 sisfb_pcislot;
+  __u32 sisfb_pcifunc;
+  __u8 sisfb_lcdpdc;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 sisfb_lcda;
- __u32 sisfb_vbflags;
- __u32 sisfb_currentvbflags;
- __u32 sisfb_scalelcd;
+  __u8 sisfb_lcda;
+  __u32 sisfb_vbflags;
+  __u32 sisfb_currentvbflags;
+  __u32 sisfb_scalelcd;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sisfb_specialtiming;
- __u8 sisfb_haveemi;
- __u8 sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33;
- __u8 sisfb_haveemilcd;
+  __u32 sisfb_specialtiming;
+  __u8 sisfb_haveemi;
+  __u8 sisfb_emi30, sisfb_emi31, sisfb_emi32, sisfb_emi33;
+  __u8 sisfb_haveemilcd;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 sisfb_lcdpdca;
- __u16 sisfb_tvxpos, sisfb_tvypos;
- __u32 sisfb_heapsize;
- __u32 sisfb_videooffset;
+  __u8 sisfb_lcdpdca;
+  __u16 sisfb_tvxpos, sisfb_tvypos;
+  __u32 sisfb_heapsize;
+  __u32 sisfb_videooffset;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sisfb_curfstn;
- __u32 sisfb_curdstn;
- __u16 sisfb_pci_vendor;
- __u32 sisfb_vbflags2;
+  __u32 sisfb_curfstn;
+  __u32 sisfb_curdstn;
+  __u16 sisfb_pci_vendor;
+  __u32 sisfb_vbflags2;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 sisfb_can_post;
- __u8 sisfb_card_posted;
- __u8 sisfb_was_boot_device;
- __u8 reserved[183];
+  __u8 sisfb_can_post;
+  __u8 sisfb_card_posted;
+  __u8 sisfb_was_boot_device;
+  __u8 reserved[183];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #define SISFB_CMD_GETVBFLAGS 0x55AA0001
@@ -129,31 +129,31 @@
 #define SISFB_CMD_ERR_UNKNOWN 0x8000ffff
 #define SISFB_CMD_ERR_OTHER 0x80010000
 struct sisfb_cmd {
- __u32 sisfb_cmd;
+  __u32 sisfb_cmd;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sisfb_arg[16];
- __u32 sisfb_result[4];
+  __u32 sisfb_arg[16];
+  __u32 sisfb_result[4];
 };
-#define SISFB_GET_INFO_SIZE _IOR(0xF3,0x00,__u32)
+#define SISFB_GET_INFO_SIZE _IOR(0xF3, 0x00, __u32)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SISFB_GET_INFO _IOR(0xF3,0x01,struct sisfb_info)
-#define SISFB_GET_VBRSTATUS _IOR(0xF3,0x02,__u32)
-#define SISFB_GET_AUTOMAXIMIZE _IOR(0xF3,0x03,__u32)
-#define SISFB_SET_AUTOMAXIMIZE _IOW(0xF3,0x03,__u32)
+#define SISFB_GET_INFO _IOR(0xF3, 0x01, struct sisfb_info)
+#define SISFB_GET_VBRSTATUS _IOR(0xF3, 0x02, __u32)
+#define SISFB_GET_AUTOMAXIMIZE _IOR(0xF3, 0x03, __u32)
+#define SISFB_SET_AUTOMAXIMIZE _IOW(0xF3, 0x03, __u32)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SISFB_GET_TVPOSOFFSET _IOR(0xF3,0x04,__u32)
-#define SISFB_SET_TVPOSOFFSET _IOW(0xF3,0x04,__u32)
-#define SISFB_COMMAND _IOWR(0xF3,0x05,struct sisfb_cmd)
-#define SISFB_SET_LOCK _IOW(0xF3,0x06,__u32)
+#define SISFB_GET_TVPOSOFFSET _IOR(0xF3, 0x04, __u32)
+#define SISFB_SET_TVPOSOFFSET _IOW(0xF3, 0x04, __u32)
+#define SISFB_COMMAND _IOWR(0xF3, 0x05, struct sisfb_cmd)
+#define SISFB_SET_LOCK _IOW(0xF3, 0x06, __u32)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SISFB_GET_INFO_OLD _IOR('n',0xF8,__u32)
-#define SISFB_GET_VBRSTATUS_OLD _IOR('n',0xF9,__u32)
-#define SISFB_GET_AUTOMAXIMIZE_OLD _IOR('n',0xFA,__u32)
-#define SISFB_SET_AUTOMAXIMIZE_OLD _IOW('n',0xFA,__u32)
+#define SISFB_GET_INFO_OLD _IOR('n', 0xF8, __u32)
+#define SISFB_GET_VBRSTATUS_OLD _IOR('n', 0xF9, __u32)
+#define SISFB_GET_AUTOMAXIMIZE_OLD _IOR('n', 0xFA, __u32)
+#define SISFB_SET_AUTOMAXIMIZE_OLD _IOW('n', 0xFA, __u32)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct sis_memreq {
- __u32 offset;
- __u32 size;
+  __u32 offset;
+  __u32 size;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/libc/kernel/uapi/video/uvesafb.h b/libc/kernel/uapi/video/uvesafb.h
index ac33064..2240785 100644
--- a/libc/kernel/uapi/video/uvesafb.h
+++ b/libc/kernel/uapi/video/uvesafb.h
@@ -21,25 +21,25 @@
 #include <linux/types.h>
 struct v86_regs {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 ebx;
- __u32 ecx;
- __u32 edx;
- __u32 esi;
+  __u32 ebx;
+  __u32 ecx;
+  __u32 edx;
+  __u32 esi;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 edi;
- __u32 ebp;
- __u32 eax;
- __u32 eip;
+  __u32 edi;
+  __u32 ebp;
+  __u32 eax;
+  __u32 eip;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 eflags;
- __u32 esp;
- __u16 cs;
- __u16 ss;
+  __u32 eflags;
+  __u32 esp;
+  __u16 cs;
+  __u16 ss;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 es;
- __u16 ds;
- __u16 fs;
- __u16 gs;
+  __u16 es;
+  __u16 ds;
+  __u16 fs;
+  __u16 gs;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #define TF_VBEIB 0x01
@@ -49,31 +49,31 @@
 #define TF_BUF_RET 0x08
 #define TF_EXIT 0x10
 struct uvesafb_task {
- __u8 flags;
+  __u8 flags;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int buf_len;
- struct v86_regs regs;
+  int buf_len;
+  struct v86_regs regs;
 };
 #define VBE_CAP_CAN_SWITCH_DAC 0x01
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VBE_CAP_VGACOMPAT 0x02
 struct vbe_ib {
- char vbe_signature[4];
- __u16 vbe_version;
+  char vbe_signature[4];
+  __u16 vbe_version;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 oem_string_ptr;
- __u32 capabilities;
- __u32 mode_list_ptr;
- __u16 total_memory;
+  __u32 oem_string_ptr;
+  __u32 capabilities;
+  __u32 mode_list_ptr;
+  __u16 total_memory;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 oem_software_rev;
- __u32 oem_vendor_name_ptr;
- __u32 oem_product_name_ptr;
- __u32 oem_product_rev_ptr;
+  __u16 oem_software_rev;
+  __u32 oem_vendor_name_ptr;
+  __u32 oem_product_name_ptr;
+  __u32 oem_product_rev_ptr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[222];
- char oem_data[256];
- char misc_data[512];
-} __attribute__ ((packed));
+  __u8 reserved[222];
+  char oem_data[256];
+  char misc_data[512];
+} __attribute__((packed));
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
