diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng
index e43b17decb551da101f4af52d5c0eff41a5bad07..5830421f7d241cf0a4af1e7d675ea879078c8edd 100644
--- a/docs/schemas/domain.rng
+++ b/docs/schemas/domain.rng
@@ -910,6 +910,15 @@
lsilogic
lsisas1068
vmpvscsi
+ piix3-uhci
+ piix4-uhci
+ ehci
+ ich9-ehci1
+ ich9-uhci1
+ ich9-uhci2
+ ich9-uhci3
+ vt82c686b-uhci
+ pci-ohci
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index a8b7d8392f724e7b780c42e6d5bc73f48b798e29..8c04a32fd87fabdb4aee5df2c84314159dd18ff7 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -203,6 +203,17 @@ VIR_ENUM_IMPL(virDomainControllerModelSCSI, VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAS
"lsisas1068",
"vmpvscsi")
+VIR_ENUM_IMPL(virDomainControllerModelUSB, VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST,
+ "piix3-uhci",
+ "piix4-uhci",
+ "ehci",
+ "ich9-ehci1",
+ "ich9-uhci1",
+ "ich9-uhci2",
+ "ich9-uhci3",
+ "vt82c686b-uhci",
+ "pci-ohci")
+
VIR_ENUM_IMPL(virDomainFS, VIR_DOMAIN_FS_TYPE_LAST,
"mount",
"block",
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 39bb999cc6dbc6922edf22a0c8d4e6cb4f2e3d59..5396f7ae1459144031d7990bf519737534ae5d74 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -268,6 +268,20 @@ enum virDomainControllerModelSCSI {
VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST
};
+enum virDomainControllerModelUSB {
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_PIIX3_UHCI,
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_PIIX4_UHCI,
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_EHCI,
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_EHCI1,
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_UHCI1,
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_UHCI2,
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_UHCI3,
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_VT82C686B_UHCI,
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI,
+
+ VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST
+};
+
typedef struct _virDomainVirtioSerialOpts virDomainVirtioSerialOpts;
typedef virDomainVirtioSerialOpts *virDomainVirtioSerialOptsPtr;
struct _virDomainVirtioSerialOpts {
@@ -1677,6 +1691,7 @@ VIR_ENUM_DECL(virDomainIoEventFd)
VIR_ENUM_DECL(virDomainVirtioEventIdx)
VIR_ENUM_DECL(virDomainController)
VIR_ENUM_DECL(virDomainControllerModelSCSI)
+VIR_ENUM_DECL(virDomainControllerModelUSB)
VIR_ENUM_DECL(virDomainFS)
VIR_ENUM_DECL(virDomainFSAccessMode)
VIR_ENUM_DECL(virDomainNet)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index c2ce32f022a94ed03ff807c09e73ba80cc86f465..1a238ce872f435b60b618021b52ebcf36e97a3d2 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -248,6 +248,8 @@ virDomainConfigFile;
virDomainControllerDefFree;
virDomainControllerInsert;
virDomainControllerInsertPreAlloced;
+virDomainControllerModelUSBTypeFromString;
+virDomainControllerModelUSBTypeToString;
virDomainControllerModelSCSITypeFromString;
virDomainControllerModelSCSITypeToString;
virDomainControllerTypeToString;