docs: def dedicate(rh):
      """
      Dedicate device.
  
      Input:
         Request Handle with the following properties:
            function    - 'CHANGEVM'
            subfunction - 'DEDICATEDM'
            userid      - userid of the virtual machine
            parms['vaddr']      - Virtual address
            parms['raddr']      - Real address
            parms['mode']       - Read only mode or not.
  
      Output:
         Request Handle updated with the results.
         Return code - 0: ok, non-zero: error
      """
      rh.printSysLog("Enter changeVM.dedicate")
  
      parms = [
          "-T", rh.userid,
          "-v", rh.parms['vaddr'],
          "-r", rh.parms['raddr'],
          "-R", rh.parms['mode']]
  
      hideList = []
      results = invokeSMCLI(rh,
                            "Image_Device_Dedicate_DM",
                            parms,
                            hideInLog=hideList)
  
      if results['overallRC'] != 0:
          # SMAPI API failed.
          rh.printLn("ES", results['response'])
          rh.updateResults(results)    # Use results from invokeSMCLI
  
      if results['overallRC'] == 0:
          results = isLoggedOn(rh, rh.userid)
          if (results['overallRC'] == 0 and results['rs'] == 0):
              # Dedicate device to active configuration.
              parms = [
                  "-T", rh.userid,
                  "-v", rh.parms['vaddr'],
                  "-r", rh.parms['raddr'],
                  "-R", rh.parms['mode']]
  
              results = invokeSMCLI(rh, "Image_Device_Dedicate", parms)
              if results['overallRC'] == 0:
                  rh.printLn("N", "Dedicated device " + rh.parms['vaddr'] +
                      " to the active configuration.")
              else:
                  # SMAPI API failed.
                  rh.printLn("ES", results['response'])
                  rh.updateResults(results)    # Use results from invokeSMCLI
  
      rh.printSysLog("Exit changeVM.dedicate, rc: " +
                     str(rh.results['overallRC']))
      return rh.results['overallRC']