diff --git a/libc/kernel/uapi/linux/lightnvm.h b/libc/kernel/uapi/linux/lightnvm.h
index a3430f3..9238113 100644
--- a/libc/kernel/uapi/linux/lightnvm.h
+++ b/libc/kernel/uapi/linux/lightnvm.h
@@ -27,68 +27,88 @@
 #define NVM_TTYPE_NAME_MAX 48
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NVM_TTYPE_MAX 63
+#define NVM_MMTYPE_LEN 8
 #define NVM_CTRL_FILE "/dev/lightnvm/control"
 struct nvm_ioctl_info_tgt {
-  __u32 version[3];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __u32 version[3];
   __u32 reserved;
   char tgtname[NVM_TTYPE_NAME_MAX];
 };
-struct nvm_ioctl_info {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct nvm_ioctl_info {
   __u32 version[3];
   __u16 tgtsize;
   __u16 reserved16;
-  __u32 reserved[12];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __u32 reserved[12];
   struct nvm_ioctl_info_tgt tgts[NVM_TTYPE_MAX];
 };
 enum {
-  NVM_DEVICE_ACTIVE = 1 << 0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  NVM_DEVICE_ACTIVE = 1 << 0,
 };
 struct nvm_ioctl_device_info {
   char devname[DISK_NAME_LEN];
-  char bmname[NVM_TTYPE_NAME_MAX];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  char bmname[NVM_TTYPE_NAME_MAX];
   __u32 bmversion[3];
   __u32 flags;
   __u32 reserved[8];
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
 struct nvm_ioctl_get_devices {
   __u32 nr_devices;
   __u32 reserved[31];
-  struct nvm_ioctl_device_info info[31];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct nvm_ioctl_device_info info[31];
 };
 struct nvm_ioctl_create_simple {
   __u32 lun_begin;
-  __u32 lun_end;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __u32 lun_end;
 };
 enum {
   NVM_CONFIG_TYPE_SIMPLE = 0,
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
 struct nvm_ioctl_create_conf {
   __u32 type;
   union {
-    struct nvm_ioctl_create_simple s;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+    struct nvm_ioctl_create_simple s;
   };
 };
 struct nvm_ioctl_create {
-  char dev[DISK_NAME_LEN];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  char dev[DISK_NAME_LEN];
   char tgttype[NVM_TTYPE_NAME_MAX];
   char tgtname[DISK_NAME_LEN];
   __u32 flags;
-  struct nvm_ioctl_create_conf conf;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct nvm_ioctl_create_conf conf;
 };
 struct nvm_ioctl_remove {
   char tgtname[DISK_NAME_LEN];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __u32 flags;
+};
+struct nvm_ioctl_dev_init {
+  char dev[DISK_NAME_LEN];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  char mmtype[NVM_MMTYPE_LEN];
+  __u32 flags;
+};
+enum {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  NVM_FACTORY_ERASE_ONLY_USER = 1 << 0,
+  NVM_FACTORY_RESET_HOST_BLKS = 1 << 1,
+  NVM_FACTORY_RESET_GRWN_BBLKS = 1 << 2,
+  NVM_FACTORY_NR_BITS = 1 << 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct nvm_ioctl_dev_factory {
+  char dev[DISK_NAME_LEN];
   __u32 flags;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
@@ -98,13 +118,18 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   NVM_DEV_CREATE_CMD,
   NVM_DEV_REMOVE_CMD,
+  NVM_DEV_INIT_CMD,
+  NVM_DEV_FACTORY_CMD,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #define NVM_IOCTL 'L'
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NVM_INFO _IOWR(NVM_IOCTL, NVM_INFO_CMD, struct nvm_ioctl_info)
 #define NVM_GET_DEVICES _IOR(NVM_IOCTL, NVM_GET_DEVICES_CMD, struct nvm_ioctl_get_devices)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NVM_DEV_CREATE _IOW(NVM_IOCTL, NVM_DEV_CREATE_CMD, struct nvm_ioctl_create)
 #define NVM_DEV_REMOVE _IOW(NVM_IOCTL, NVM_DEV_REMOVE_CMD, struct nvm_ioctl_remove)
+#define NVM_DEV_INIT _IOW(NVM_IOCTL, NVM_DEV_INIT_CMD, struct nvm_ioctl_dev_init)
+#define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, struct nvm_ioctl_dev_factory)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NVM_VERSION_MAJOR 1
 #define NVM_VERSION_MINOR 0
