Patch from Tito to remove long options from hdparm.

This commit is contained in:
Rob Landley 2006-05-31 22:52:57 +00:00
parent c8b360ebb7
commit 0620841758
3 changed files with 14 additions and 28 deletions

View File

@ -994,7 +994,8 @@ USE_FEATURE_DATE_ISOFMT( \
#define hdparm_trivial_usage \ #define hdparm_trivial_usage \
"[options] [device] .." "[options] [device] .."
#define hdparm_full_usage \ #define hdparm_full_usage \
"Options:" \ USE_FEATURE_HDPARM_GET_IDENTITY("\tIf no device name is specified read from stdin.\n") \
"\nOptions:\n" \
"\t-a get/set fs readahead\n" \ "\t-a get/set fs readahead\n" \
"\t-A set drive read-lookahead flag (0/1)\n" \ "\t-A set drive read-lookahead flag (0/1)\n" \
"\t-b get/set bus state (0 == off, 1 == on, 2 == tristate)\n" \ "\t-b get/set bus state (0 == off, 1 == on, 2 == tristate)\n" \
@ -1006,9 +1007,8 @@ USE_FEATURE_DATE_ISOFMT( \
"\t-f flush buffer cache for device on exit\n" \ "\t-f flush buffer cache for device on exit\n" \
"\t-g display drive geometry\n" \ "\t-g display drive geometry\n" \
"\t-h display terse usage information\n" \ "\t-h display terse usage information\n" \
"\t-i display drive identification\n" \ USE_FEATURE_HDPARM_GET_IDENTITY("\t-i display drive identification\n") \
USE_FEATURE_HDPARM_GET_IDENTITY("\t-I detailed/current information directly from drive\n") \ USE_FEATURE_HDPARM_GET_IDENTITY("\t-I detailed/current information directly from drive\n") \
USE_FEATURE_HDPARM_GET_IDENTITY("\t-Istdin similar to -I, but wants /proc/ide/" "*" "/hd?/identify as input\n") \
"\t-k get/set keep_settings_over_reset flag (0/1)\n" \ "\t-k get/set keep_settings_over_reset flag (0/1)\n" \
"\t-K set drive keep_features_over_reset flag (0/1)\n" \ "\t-K set drive keep_features_over_reset flag (0/1)\n" \
"\t-L set drive doorlock (0/1) (removable harddisks only)\n" \ "\t-L set drive doorlock (0/1) (removable harddisks only)\n" \

View File

@ -169,11 +169,12 @@ config CONFIG_HDPARM
config CONFIG_FEATURE_HDPARM_GET_IDENTITY config CONFIG_FEATURE_HDPARM_GET_IDENTITY
bool "Support obtaining detailed information directly from drives" bool "Support obtaining detailed information directly from drives"
default y default y
depends on CONFIG_HDPARM && CONFIG_GETOPT_LONG depends on CONFIG_HDPARM
help help
Enables the -I and -Istdin options to obtain detailed information Enables the -I and -i options to obtain detailed information
directly from drives about their capabilities and supported ATA directly from drives about their capabilities and supported ATA
feature set. Enabling this option will add about 16k... feature set. If no device name is specified, hdparm will read
identify data from stdin. Enabling this option will add about 16k...
config CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF config CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF
bool "Register an IDE interface (DANGEROUS)" bool "Register an IDE interface (DANGEROUS)"

View File

@ -23,7 +23,6 @@
#include <sys/times.h> #include <sys/times.h>
#include <sys/mount.h> #include <sys/mount.h>
#include <sys/mman.h> #include <sys/mman.h>
#include <getopt.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/hdreg.h> #include <linux/hdreg.h>
@ -2095,21 +2094,9 @@ static void parse_xfermode(int flag, unsigned long *get, unsigned long *set, int
} }
} }
/*-------------------------------------*/ /*------- getopt short options --------*/
/* getopt long options */
#if ENABLE_FEATURE_HDPARM_GET_IDENTITY
static const struct option HDPARM_LONG_OPT[] =
{
{"Istdin", 0, NULL, '\256'},
{NULL, 0, NULL, 0}
};
#else
#define HDPARM_LONG_OPT NULL
#endif
/*-------------------------------------*/
/* getopt short options */
static const char hdparm_options[]= "gfu::n::p:r::m::c::k::a::B:tTh"\ static const char hdparm_options[]= "gfu::n::p:r::m::c::k::a::B:tTh"\
USE_FEATURE_HDPARM_GET_IDENTITY("\256iI") USE_FEATURE_HDPARM_GET_IDENTITY("iI")
USE_FEATURE_HDPARM_HDIO_GETSET_DMA("d::") USE_FEATURE_HDPARM_HDIO_GETSET_DMA("d::")
#ifdef HDIO_DRIVE_CMD #ifdef HDIO_DRIVE_CMD
"S::D::P::X::K::A::L::W::CyYzZ" "S::D::P::X::K::A::L::W::CyYzZ"
@ -2134,13 +2121,9 @@ int hdparm_main(int argc, char **argv)
int c; int c;
int flagcount = 0; int flagcount = 0;
while ((c = getopt_long (argc, argv, hdparm_options, HDPARM_LONG_OPT , NULL)) >= 0) { while ((c = getopt(argc, argv, hdparm_options)) >= 0) {
flagcount++; flagcount++;
#if ENABLE_FEATURE_HDPARM_GET_IDENTITY if (c == 'h') bb_show_usage(); /* EXIT */
if (c == '\256') {
identify_from_stdin(); /* EXIT */
}
#endif
USE_FEATURE_HDPARM_GET_IDENTITY(get_IDentity = (c == 'I')); USE_FEATURE_HDPARM_GET_IDENTITY(get_IDentity = (c == 'I'));
USE_FEATURE_HDPARM_GET_IDENTITY(get_identity = (c == 'i')); USE_FEATURE_HDPARM_GET_IDENTITY(get_identity = (c == 'i'));
get_geom |= (c == 'g'); get_geom |= (c == 'g');
@ -2204,9 +2187,11 @@ int hdparm_main(int argc, char **argv)
argc -= optind; argc -= optind;
argv += optind; argv += optind;
#if ENABLE_FEATURE_HDPARM_GET_IDENTITY
if (argc < 1) { if (argc < 1) {
bb_show_usage(); identify_from_stdin(); /* EXIT */
} }
#endif
while (argc--) { while (argc--) {
process_dev(*argv); process_dev(*argv);