[PATCH] missing onditionals for GET/SET QDMA
Joe Krahn
krahn at niehs.nih.gov
Wed Mar 5 17:02:44 UTC 2008
There are some conditionals to check for QDMA definitions in miscutils/hdparm.c, but they are
incomplete. This is needed to get DMA controls when one or both QDMA features are absent from the
target OS. Like the existing conditionals, I assume that SET_QDMA only exists if GET_QDMA does, but
the latter can be available by itself.
*** busybox-1.9.1.orig/miscutils/hdparm.c 2008-02-12
11:03:10.000000000 -0500
--- busybox-1.9.1/miscutils/hdparm.c 2008-03-04 12:38:00.000000000 -0500
***************
*** 245,251 ****
smallint set_readonly, get_readonly;
smallint set_unmask, get_unmask;
smallint set_mult, get_mult;
- smallint set_dma_q, get_dma_q;
smallint set_nowerr, get_nowerr;
smallint set_keep, get_keep;
smallint set_io32bit, get_io32bit;
--- 245,250 ----
***************
*** 254,263 ****
unsigned long readonly;
unsigned long unmask;
unsigned long mult;
- unsigned long dma_q;
unsigned long nowerr;
unsigned long keep;
unsigned long io32bit;
#if ENABLE_FEATURE_HDPARM_HDIO_GETSET_DMA
unsigned long dma;
smallint set_dma, get_dma;
--- 253,268 ----
unsigned long readonly;
unsigned long unmask;
unsigned long mult;
unsigned long nowerr;
unsigned long keep;
unsigned long io32bit;
+ #ifdef HDIO_GET_QDMA
+ smallint get_dma_q;
+ #ifdef HDIO_SET_QDMA
+ smallint set_dma_q;
+ unsigned long dma_q;
+ #endif
+ #endif
#if ENABLE_FEATURE_HDPARM_HDIO_GETSET_DMA
unsigned long dma;
smallint set_dma, get_dma;
***************
*** 1604,1613 ****
--- 1609,1620 ----
ioctl_or_warn(fd, HDIO_SET_DMA, (int *)dma);
}
#endif /* FEATURE_HDPARM_HDIO_GETSET_DMA */
+ #ifdef HDIO_SET_QDMA
if (set_dma_q) {
print_flag_on_off(get_dma_q, "DMA queue_depth", dma_q);
ioctl_or_warn(fd, HDIO_SET_QDMA, (int *)dma_q);
}
+ #endif
if (set_nowerr) {
print_flag_on_off(get_nowerr, "nowerr", nowerr);
ioctl_or_warn(fd, HDIO_SET_NOWERR, (int *)nowerr);
***************
*** 1780,1789 ****
--- 1787,1798 ----
}
}
#endif
+ #ifdef HDIO_GET_QDMA
if (get_dma_q) {
if(!ioctl_or_warn(fd, HDIO_GET_QDMA, &parm))
print_value_on_off("queue_depth", parm);
}
+ #endif
if (get_keep) {
if(!ioctl_or_warn(fd, HDIO_GET_KEEPSETTINGS, &parm))
print_value_on_off("keepsettings", parm);
More information about the busybox
mailing list