code: def add_usb_controller(self, name, type_p):
          
          if not isinstance(name, basestring):
              raise TypeError("name can only be an instance of type basestring")
          if not isinstance(type_p, USBControllerType):
              raise TypeError("type_p can only be an instance of type USBControllerType")
          controller = self._call("addUSBController",
                       in_p=[name, type_p])
          controller = IUSBController(controller)
          return controller
docs: Adds a new USB controller to the machine and returns it as an instance of
          :py:class:`IUSBController` .
  
          in name of type str
  
          in type_p of type :class:`USBControllerType`
  
          return controller of type :class:`IUSBController`
  
          raises :class:`VBoxErrorObjectInUse`
              A USB controller with given type exists already.
          
          raises :class:`OleErrorInvalidarg`
              Invalid @a controllerType.