[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    Re: [BusyBox] hdparm and CONFIG_FEATURE_HDPARM_HDIO_GET_DMA ?
From:       Steven Scholz <steven.scholz () imc-berlin ! de>
Date:       2003-07-31 10:20:58
[Download RAW message or body]

I wrote:

> And 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?

It changes the define CONFIG_FEATURE_HDPARM_HDIO_GET_DMA to 
CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA and the behaviour appropriate.

Cheers,

Steven

["HDPARM_HDIO_GETSET_DMA.patch" (text/plain)]

? busybox.kdevprj
Index: include/usage.h
===================================================================
RCS file: /var/cvs/busybox/include/usage.h,v
retrieving revision 1.162
diff -p -u -r1.162 usage.h
--- include/usage.h	28 Jul 2003 09:59:05 -0000	1.162
+++ include/usage.h	31 Jul 2003 10:24:38 -0000
@@ -835,6 +835,12 @@
 #define USAGE_TRISTATE_HWIF(a)
 #endif
 
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
+#define USAGE_GETSET_DMA(a) a
+#else
+#define USAGE_GETSET_DMA(a)
+#endif
+
 #define hdparm_trivial_usage \
 	"[options] [device] .."
 #define hdparm_full_usage \
@@ -845,7 +851,7 @@
 	" -B   set Advanced Power Management setting (1-255)\n" \
 	" -c   get/set IDE 32-bit IO setting\n" \
 	" -C   check IDE power mode status\n" \
-	" -d   get/set using_dma flag\n" \
+	USAGE_GETSET_DMA(" -d   get/set using_dma flag\n") \
 	" -D   enable/disable drive defect-mgmt\n" \
 	" -f   flush buffer cache for device on exit\n" \
 	" -g   display drive geometry\n" \
Index: miscutils/Config.in
===================================================================
RCS file: /var/cvs/busybox/miscutils/Config.in,v
retrieving revision 1.6
diff -p -u -r1.6 Config.in
--- miscutils/Config.in	28 Jul 2003 07:40:36 -0000	1.6
+++ miscutils/Config.in	31 Jul 2003 10:24:38 -0000
@@ -100,6 +100,14 @@ config CONFIG_FEATURE_HDPARM_HDIO_TRISTA
 	  and the '-b' option to get/set bus state.  This is dangerous
 	  stuff, so you should probably say N.
 
+config CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
+	bool "  get/set using_dma flag (DANGEROUS)"
+	default n
+	depends on CONFIG_HDPARM
+	help
+	  Enables the 'hdparm -d' option to get/set using_dma flag.
+	  This is dangerous stuff, so you should probably say N.
+
 config CONFIG_MAKEDEVS
 	bool "makedevs"
 	default n
Index: miscutils/hdparm.c
===================================================================
RCS file: /var/cvs/busybox/miscutils/hdparm.c,v
retrieving revision 1.1
diff -p -u -r1.1 hdparm.c
--- miscutils/hdparm.c	22 Jul 2003 07:30:35 -0000	1.1
+++ miscutils/hdparm.c	31 Jul 2003 10:24:38 -0000
@@ -1817,6 +1817,7 @@ static void process_dev (char *devname)
 		if (ioctl(fd, HDIO_SET_UNMASKINTR, unmask))
 			bb_perror_msg(" HDIO_SET_UNMASKINTR failed");
 	}
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
 	if (set_dma) {
 		no_scsi();
 		if (get_dma) {
@@ -1826,6 +1827,7 @@ static void process_dev (char *devname)
 		if (ioctl(fd, HDIO_SET_DMA, dma))
 			bb_perror_msg(" HDIO_SET_DMA failed");
 	}
+#endif /* CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA */
 	if (set_dma_q) {
 		no_scsi();
 		if (get_dma_q) {
@@ -2077,7 +2079,7 @@ static void process_dev (char *devname)
 		}
 	}
 
-#ifdef CONFIG_FEATURE_HDPARM_HDIO_GET_DMA
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
 	if ((verbose && !is_scsi_hd) || get_dma) {
 		no_scsi();
 		if (ioctl(fd, HDIO_GET_DMA, &parm))
@@ -2379,6 +2381,7 @@ int hdparm_main(int argc, char **argv)
 							unmask = *p++ - '0';
 						}
 						break;
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
 					case 'd':
 						get_dma = noisy;
 						noisy = 1;
@@ -2389,6 +2392,7 @@ int hdparm_main(int argc, char **argv)
 							dma = *p++ - '0';
 						}
 						break;
+#endif /* CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA */
 					case 'n':
 						get_nowerr = noisy;
 						noisy = 1;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic