diff options
author | Eric Andersen <andersen@codepoet.org> | 2003-08-06 08:57:35 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2003-08-06 08:57:35 +0000 |
commit | 0a57a79e387060e790d99e7d186be919dee3f92f (patch) | |
tree | aa5a9cb452a81f7226a55d6554adce918fcb64c0 | |
parent | 4b4e09854c55b060fb36ffc17b7dc08b98a9f387 (diff) | |
download | busybox-w32-0a57a79e387060e790d99e7d186be919dee3f92f.tar.gz busybox-w32-0a57a79e387060e790d99e7d186be919dee3f92f.tar.bz2 busybox-w32-0a57a79e387060e790d99e7d186be919dee3f92f.zip |
Patch from Steven Scholz:
should we rename the define into CONFIG_FEATURE_HDPARM_HDIO_DMA and
use it for "set" and "get" ???
Since although CONFIG_FEATURE_HDPARM_HDIO_GET_DMA is _not_ set I still
can use "hdparm -d 1 /dev/hda" to switch the DMA on.
Is this desireable or meant to be like that?
So how about the applied patch?
-rw-r--r-- | include/usage.h | 8 | ||||
-rw-r--r-- | miscutils/Config.in | 8 | ||||
-rw-r--r-- | miscutils/hdparm.c | 6 |
3 files changed, 20 insertions, 2 deletions
diff --git a/include/usage.h b/include/usage.h index 60a9f99f2..1e489a5c6 100644 --- a/include/usage.h +++ b/include/usage.h | |||
@@ -835,6 +835,12 @@ | |||
835 | #define USAGE_TRISTATE_HWIF(a) | 835 | #define USAGE_TRISTATE_HWIF(a) |
836 | #endif | 836 | #endif |
837 | 837 | ||
838 | #ifdef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA | ||
839 | #define USAGE_GETSET_DMA(a) a | ||
840 | #else | ||
841 | #define USAGE_GETSET_DMA(a) | ||
842 | #endif | ||
843 | |||
838 | #define hdparm_trivial_usage \ | 844 | #define hdparm_trivial_usage \ |
839 | "[options] [device] .." | 845 | "[options] [device] .." |
840 | #define hdparm_full_usage \ | 846 | #define hdparm_full_usage \ |
@@ -845,7 +851,7 @@ | |||
845 | " -B set Advanced Power Management setting (1-255)\n" \ | 851 | " -B set Advanced Power Management setting (1-255)\n" \ |
846 | " -c get/set IDE 32-bit IO setting\n" \ | 852 | " -c get/set IDE 32-bit IO setting\n" \ |
847 | " -C check IDE power mode status\n" \ | 853 | " -C check IDE power mode status\n" \ |
848 | " -d get/set using_dma flag\n" \ | 854 | USAGE_GETSET_DMA(" -d get/set using_dma flag\n") \ |
849 | " -D enable/disable drive defect-mgmt\n" \ | 855 | " -D enable/disable drive defect-mgmt\n" \ |
850 | " -f flush buffer cache for device on exit\n" \ | 856 | " -f flush buffer cache for device on exit\n" \ |
851 | " -g display drive geometry\n" \ | 857 | " -g display drive geometry\n" \ |
diff --git a/miscutils/Config.in b/miscutils/Config.in index 0c56f0ee9..a994c5096 100644 --- a/miscutils/Config.in +++ b/miscutils/Config.in | |||
@@ -100,6 +100,14 @@ config CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF | |||
100 | and the '-b' option to get/set bus state. This is dangerous | 100 | and the '-b' option to get/set bus state. This is dangerous |
101 | stuff, so you should probably say N. | 101 | stuff, so you should probably say N. |
102 | 102 | ||
103 | config CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA | ||
104 | bool " get/set using_dma flag (DANGEROUS)" | ||
105 | default n | ||
106 | depends on CONFIG_HDPARM | ||
107 | help | ||
108 | Enables the 'hdparm -d' option to get/set using_dma flag. | ||
109 | This is dangerous stuff, so you should probably say N. | ||
110 | |||
103 | config CONFIG_MAKEDEVS | 111 | config CONFIG_MAKEDEVS |
104 | bool "makedevs" | 112 | bool "makedevs" |
105 | default n | 113 | default n |
diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c index eb4991ef3..0263f2893 100644 --- a/miscutils/hdparm.c +++ b/miscutils/hdparm.c | |||
@@ -1820,6 +1820,7 @@ static void process_dev (char *devname) | |||
1820 | if (ioctl(fd, HDIO_SET_UNMASKINTR, unmask)) | 1820 | if (ioctl(fd, HDIO_SET_UNMASKINTR, unmask)) |
1821 | bb_perror_msg(" HDIO_SET_UNMASKINTR failed"); | 1821 | bb_perror_msg(" HDIO_SET_UNMASKINTR failed"); |
1822 | } | 1822 | } |
1823 | #ifdef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA | ||
1823 | if (set_dma) { | 1824 | if (set_dma) { |
1824 | no_scsi(); | 1825 | no_scsi(); |
1825 | if (get_dma) { | 1826 | if (get_dma) { |
@@ -1829,6 +1830,7 @@ static void process_dev (char *devname) | |||
1829 | if (ioctl(fd, HDIO_SET_DMA, dma)) | 1830 | if (ioctl(fd, HDIO_SET_DMA, dma)) |
1830 | bb_perror_msg(" HDIO_SET_DMA failed"); | 1831 | bb_perror_msg(" HDIO_SET_DMA failed"); |
1831 | } | 1832 | } |
1833 | #endif /* CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA */ | ||
1832 | if (set_dma_q) { | 1834 | if (set_dma_q) { |
1833 | no_scsi(); | 1835 | no_scsi(); |
1834 | if (get_dma_q) { | 1836 | if (get_dma_q) { |
@@ -2080,7 +2082,7 @@ static void process_dev (char *devname) | |||
2080 | } | 2082 | } |
2081 | } | 2083 | } |
2082 | 2084 | ||
2083 | #ifdef CONFIG_FEATURE_HDPARM_HDIO_GET_DMA | 2085 | #ifdef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA |
2084 | if ((verbose && !is_scsi_hd) || get_dma) { | 2086 | if ((verbose && !is_scsi_hd) || get_dma) { |
2085 | no_scsi(); | 2087 | no_scsi(); |
2086 | if (ioctl(fd, HDIO_GET_DMA, &parm)) | 2088 | if (ioctl(fd, HDIO_GET_DMA, &parm)) |
@@ -2382,6 +2384,7 @@ int hdparm_main(int argc, char **argv) | |||
2382 | unmask = *p++ - '0'; | 2384 | unmask = *p++ - '0'; |
2383 | } | 2385 | } |
2384 | break; | 2386 | break; |
2387 | #ifdef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA | ||
2385 | case 'd': | 2388 | case 'd': |
2386 | get_dma = noisy; | 2389 | get_dma = noisy; |
2387 | noisy = 1; | 2390 | noisy = 1; |
@@ -2392,6 +2395,7 @@ int hdparm_main(int argc, char **argv) | |||
2392 | dma = *p++ - '0'; | 2395 | dma = *p++ - '0'; |
2393 | } | 2396 | } |
2394 | break; | 2397 | break; |
2398 | #endif /* CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA */ | ||
2395 | case 'n': | 2399 | case 'n': |
2396 | get_nowerr = noisy; | 2400 | get_nowerr = noisy; |
2397 | noisy = 1; | 2401 | noisy = 1; |