code: func (l VirtualDeviceList) CreateSerialPort() (*types.VirtualSerialPort, error) {
  	device := &types.VirtualSerialPort{
  		YieldOnPoll: true,
  	}
  
  	c := l.PickController((*types.VirtualSIOController)(nil))
  	if c == nil {
  		return nil, errors.New("no available SIO controller")
  	}
  
  	l.AssignController(device, c)
  
  	l.setDefaultSerialPortBacking(device)
  
  	return device, nil
  }
docs: // CreateSerialPort creates a new VirtualSerialPort device which can be added to a VM.