home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / share / YaST2 / include / idedma / cmdline.ycp next >
Text File  |  2006-11-29  |  3KB  |  102 lines

  1. /**
  2.  * File:
  3.  *   include/idedma/cmdline.ycp
  4.  *
  5.  * Package:
  6.  *   Configuration of IDE DMA mode
  7.  *
  8.  * Summary:
  9.  *   Command line interface functions.
  10.  *
  11.  * Authors:
  12.  *   Ladislav Slezak <lslezak@suse.cz>
  13.  *
  14.  * $Id: cmdline.ycp 23468 2005-05-18 15:14:37Z lslezak $
  15.  *
  16.  * All command line interface functions.
  17.  *
  18.  */
  19.  
  20. {
  21.     import "Idedma";
  22.     import "CommandLine";
  23.  
  24.     textdomain "tune";
  25.  
  26.     /**
  27.      * Command line interface - handler for list command
  28.      * @param options command options
  29.      * @return boolean Returns true (succeess)
  30.      */
  31.     define boolean listHandler(map options) ``{
  32.     boolean all = !haskey(options, "configured");
  33.  
  34.     // set plain text output
  35.     CommandLine::Print(Idedma::Summary(all, false));
  36.  
  37.     return true;
  38.     }
  39.  
  40.     /**
  41.      * Command line interface - handler for set command
  42.      * @param options command options
  43.      * @return boolean True on success
  44.      */
  45.     define boolean setHandler(map<string, any> options) ``{
  46.  
  47.     if (haskey(options, "device") && haskey(options, "mode"))
  48.     {
  49.         string device = (string) (options["device"]:nil);
  50.         string mode = (string) (options["mode"]:nil);
  51.  
  52.         boolean result = Idedma::set_dma((string) (options["device"]:nil), (string) (options["mode"]:nil));
  53.         // status message - %1 is device name (/dev/hdc), %2 is mode name (udma2), %3 is result (Success/Failed)
  54.         CommandLine::Print(sformat(_("\nSetting Device '%1' to Mode '%2': %3"), device, mode,
  55.         // result string
  56.         (result == true) ? _("Succeeded") : _("Failed")));
  57.  
  58.         return result;
  59.     }
  60.  
  61.     return false;
  62.     }
  63.  
  64.  
  65.     /**
  66.      * Command line interface - handler for details command
  67.      * @param options command options
  68.      * @return boolean Returns true (succeess)
  69.      */
  70.     define boolean detailsHandler(map<string, any> options) ``{
  71.     string device = (string) (options["device"]:nil);
  72.     list idedevs = Idedma::get_ide_devices();
  73.  
  74.     if (size(idedevs) > 0)
  75.     {
  76.         foreach(map dev, Idedma::get_ide_devices(), ``{
  77.             if (device == nil || device == dev["dev_name"]:"")
  78.             {
  79.             // details about the selected hardware - %1 is device name (e.g. /dev/hda)
  80.             // %2 is model name (vendor string), %3 is device type (cdrom, disk,...)
  81.             // %4 is current DMA mode (udma2, mdma2,...), %5 is requested mode,
  82.             // %6 is list of supported DMA modes by device,
  83.             // %7 and %8 is full DMA mode name (UltraDMA/100)
  84.             string info = sformat(_("Device: %1\nModel: %2\nType: %3\nCurrent DMA Mode: %4 (%8)\nConfigured DMA Mode: %5 (%7)\nSupported DMA Modes: %6\n"),
  85.                 dev["dev_name"]:"", dev["device"]:"", dev["device_type"]:"",
  86.                 dev["current_dma"]:"", dev["dma_setting"]:"",
  87.                 mergestring(dev["dma_modes"]:[], ", "),
  88.                 Idedma::mode_names[dev["dma_setting"]:""]:"",
  89.                 Idedma::mode_names[dev["current_dma"]:""]:""
  90.             );
  91.  
  92.             CommandLine::Print(info);
  93.             }
  94.         }
  95.         );
  96.     }
  97.  
  98.     return true;
  99.     }
  100.  
  101. }
  102.