summaryrefslogtreecommitdiff
path: root/miscutils
diff options
context:
space:
mode:
Diffstat (limited to 'miscutils')
-rw-r--r--miscutils/hdparm.c179
1 files changed, 89 insertions, 90 deletions
diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c
index 0138eed..8bfe916 100644
--- a/miscutils/hdparm.c
+++ b/miscutils/hdparm.c
@@ -483,7 +483,7 @@ static void bb_ioctl_on_off(int fd, int request, void *argp, const char *string,
#if ENABLE_FEATURE_HDPARM_GET_IDENTITY
static void print_ascii(uint16_t *p, uint8_t length);
-static void xprint_ascii(uint16_t *val ,int i, const char *string, int n)
+static void xprint_ascii(uint16_t *val, int i, const char *string, int n)
{
if (val[i]) {
printf("\t%-20s", string);
@@ -501,12 +501,12 @@ static uint8_t mode_loop(uint16_t mode_sup, uint16_t mode_sel, int cc, uint8_t *
for (ii = 0; ii <= MODE_MAX; ii++) {
if (mode_sel & 0x0001) {
- printf("*%cdma%u ",cc,ii);
+ printf("*%cdma%u ", cc, ii);
if (*have_mode)
err_dma = 1;
*have_mode = 1;
} else if (mode_sup & 0x0001)
- printf("%cdma%u ",cc,ii);
+ printf("%cdma%u ", cc, ii);
mode_sup >>= 1;
mode_sel >>= 1;
@@ -616,7 +616,7 @@ static void identify(uint16_t *id_supplied)
if (val[MINOR] && (val[MINOR] <= MINOR_MAX)) {
if (like_std < 3) like_std = 3;
std = actual_ver[val[MINOR]];
- if (std) printf("\n\tUsed: %s ",minor_str[val[MINOR]]);
+ if (std) printf("\n\tUsed: %s ", minor_str[val[MINOR]]);
}
/* looks like when they up-issue the std, they obsolete one;
@@ -714,7 +714,7 @@ static void identify(uint16_t *id_supplied)
if ((eqpt != CDROM) && (like_std == 1)) {
jj = val[GEN_CONFIG] >> 1;
for (ii = 1; ii < 15; ii++) {
- if (jj & 0x0001) printf("\t%s\n",ata1_cfg_str[ii]);
+ if (jj & 0x0001) printf("\t%s\n", ata1_cfg_str[ii]);
jj >>=1;
}
}
@@ -748,7 +748,7 @@ static void identify(uint16_t *id_supplied)
val[LCYLS],jj?val[LCYLS_CUR]:0, val[LHEADS],jj?val[LHEADS_CUR]:0, val[LSECTS],jj?val[LSECTS_CUR]:0);
if ((min_std == 1) && (val[TRACK_BYTES] || val[SECT_BYTES]))
- printf("\tbytes/track: %u\tbytes/sector: %u\n",val[TRACK_BYTES], val[SECT_BYTES]);
+ printf("\tbytes/track: %u\tbytes/sector: %u\n", val[TRACK_BYTES], val[SECT_BYTES]);
if (jj) {
mm = (uint32_t)val[CAPACITY_MSB] << 16 | val[CAPACITY_LSB];
@@ -759,11 +759,11 @@ static void identify(uint16_t *id_supplied)
if (abs(mm - nn) > abs(oo - nn))
mm = oo;
}
- printf("\tCHS current addressable sectors:%11u\n",mm);
+ printf("\tCHS current addressable sectors:%11u\n", mm);
}
}
/* LBA addressing */
- printf("\tLBA user addressable sectors:%11u\n",ll);
+ printf("\tLBA user addressable sectors:%11u\n", ll);
if (((val[CMDS_SUPP_1] & VALID) == VALID_VAL)
&& (val[CMDS_SUPP_1] & SUPPORT_48_BIT)
) {
@@ -771,14 +771,14 @@ static void identify(uint16_t *id_supplied)
(uint64_t)val[LBA_48_MSB] << 32 |
(uint64_t)val[LBA_MID] << 16 |
val[LBA_LSB] ;
- printf("\tLBA48 user addressable sectors:%11"PRIu64"\n",bbbig);
+ printf("\tLBA48 user addressable sectors:%11"PRIu64"\n", bbbig);
}
if (!bbbig)
bbbig = (uint64_t)(ll>mm ? ll : mm); /* # 512 byte blocks */
- printf("\tdevice size with M = 1024*1024: %11"PRIu64" MBytes\n",bbbig>>11);
- bbbig = (bbbig<<9)/1000000;
- printf("\tdevice size with M = 1000*1000: %11"PRIu64" MBytes ",bbbig);
+ printf("\tdevice size with M = 1024*1024: %11"PRIu64" MBytes\n", bbbig>>11);
+ bbbig = (bbbig << 9) / 1000000;
+ printf("\tdevice size with M = 1000*1000: %11"PRIu64" MBytes ", bbbig);
if (bbbig > 1000)
printf("(%"PRIu64" GB)\n", bbbig/1000);
@@ -809,22 +809,22 @@ static void identify(uint16_t *id_supplied)
}
if ((min_std == 1) && (val[BUFFER__SIZE] && (val[BUFFER__SIZE] != NOVAL_1))) {
- printf("\tBuffer size: %.1fkB\n",(float)val[BUFFER__SIZE]/2);
+ printf("\tBuffer size: %.1fkB\n", (float)val[BUFFER__SIZE]/2);
}
if ((min_std < 4) && (val[RW_LONG])) {
- printf("\tbytes avail on r/w long: %u\n",val[RW_LONG]);
+ printf("\tbytes avail on r/w long: %u\n", val[RW_LONG]);
}
if ((eqpt != CDROM) && (like_std > 3)) {
- printf("\tQueue depth: %u\n",(val[QUEUE_DEPTH] & DEPTH_BITS)+1);
+ printf("\tQueue depth: %u\n", (val[QUEUE_DEPTH] & DEPTH_BITS) + 1);
}
if (dev == ATA_DEV) {
if (like_std == 1)
- printf("\tCan%s perform double-word IO\n",(!val[DWORD_IO]) ?"not":"");
+ printf("\tCan%s perform double-word IO\n", (!val[DWORD_IO]) ? "not" : "");
else {
printf("\tStandby timer values: spec'd by %s", (val[CAPAB_0] & STD_STBY) ? "Standard" : "Vendor");
if ((like_std > 3) && ((val[CAPAB_1] & VALID) == VALID_VAL))
- printf(", %s device specific minimum\n",(val[CAPAB_1] & MIN_STANDBY_TIMER)?"with":"no");
+ printf(", %s device specific minimum\n", (val[CAPAB_1] & MIN_STANDBY_TIMER) ? "with" : "no");
else
puts("");
}
@@ -832,7 +832,7 @@ static void identify(uint16_t *id_supplied)
if ((like_std < 3) && !(val[SECTOR_XFER_MAX] & SECTOR_XFER))
printf("not supported\n");
else {
- printf("Max = %u\tCurrent = ",val[SECTOR_XFER_MAX] & SECTOR_XFER);
+ printf("Max = %u\tCurrent = ", val[SECTOR_XFER_MAX] & SECTOR_XFER);
if (val[SECTOR_XFER_CUR] & MULTIPLE_SETTING_VALID)
printf("%u\n", val[SECTOR_XFER_CUR] & SECTOR_XFER);
else
@@ -852,7 +852,7 @@ static void identify(uint16_t *id_supplied)
}
if (like_std > 5 && val[ACOUSTIC]) {
printf("\tRecommended acoustic management value: %u, current value: %u\n",
- (val[ACOUSTIC] >> 8) & 0x00ff, val[ACOUSTIC] & 0x00ff);
+ (val[ACOUSTIC] >> 8) & 0x00ff, val[ACOUSTIC] & 0x00ff);
}
} else {
/* ATAPI */
@@ -861,8 +861,8 @@ static void identify(uint16_t *id_supplied)
if (val[PKT_REL] || val[SVC_NBSY]) {
printf("\tOverlap support:");
- if (val[PKT_REL]) printf(" %uus to release bus.",val[PKT_REL]);
- if (val[SVC_NBSY]) printf(" %uus to clear BSY after SERVICE cmd.",val[SVC_NBSY]);
+ if (val[PKT_REL]) printf(" %uus to release bus.", val[PKT_REL]);
+ if (val[SVC_NBSY]) printf(" %uus to clear BSY after SERVICE cmd.", val[SVC_NBSY]);
puts("");
}
}
@@ -873,21 +873,21 @@ static void identify(uint16_t *id_supplied)
printf("not supported\n");
else {
if (val[DMA_MODE] && !val[SINGLE_DMA] && !val[MULTI_DMA])
- printf(" sdma%u\n",(val[DMA_MODE] & MODE) >> 8);
+ printf(" sdma%u\n", (val[DMA_MODE] & MODE) >> 8);
if (val[SINGLE_DMA]) {
jj = val[SINGLE_DMA];
kk = val[SINGLE_DMA] >> 8;
- err_dma += mode_loop(jj,kk,'s',&have_mode);
+ err_dma += mode_loop(jj, kk, 's', &have_mode);
}
if (val[MULTI_DMA]) {
jj = val[MULTI_DMA];
kk = val[MULTI_DMA] >> 8;
- err_dma += mode_loop(jj,kk,'m',&have_mode);
+ err_dma += mode_loop(jj, kk, 'm', &have_mode);
}
if ((val[WHATS_VALID] & OK_W88) && val[ULTRA_DMA]) {
jj = val[ULTRA_DMA];
kk = val[ULTRA_DMA] >> 8;
- err_dma += mode_loop(jj,kk,'u',&have_mode);
+ err_dma += mode_loop(jj, kk, 'u', &have_mode);
}
if (err_dma || !have_mode) printf("(?)");
puts("");
@@ -899,8 +899,8 @@ static void identify(uint16_t *id_supplied)
&& (val[DMA_TIME_MIN] || val[DMA_TIME_NORM])
) {
printf("\t\tCycle time:");
- if (val[DMA_TIME_MIN]) printf(" min=%uns",val[DMA_TIME_MIN]);
- if (val[DMA_TIME_NORM]) printf(" recommended=%uns",val[DMA_TIME_NORM]);
+ if (val[DMA_TIME_MIN]) printf(" min=%uns", val[DMA_TIME_MIN]);
+ if (val[DMA_TIME_NORM]) printf(" recommended=%uns", val[DMA_TIME_NORM]);
puts("");
}
}
@@ -912,13 +912,13 @@ static void identify(uint16_t *id_supplied)
if ((val[WHATS_VALID] & OK_W64_70) && (val[ADV_PIO_MODES] & PIO_SUP)) {
jj = ((val[ADV_PIO_MODES] & PIO_SUP) << 3) | 0x0007;
for (ii = 0; ii <= PIO_MODE_MAX ; ii++) {
- if (jj & 0x0001) printf("pio%d ",ii);
+ if (jj & 0x0001) printf("pio%d ", ii);
jj >>=1;
}
puts("");
} else if (((min_std < 5) || (eqpt == CDROM)) && (val[PIO_MODE] & MODE)) {
for (ii = 0; ii <= val[PIO_MODE]>>8; ii++)
- printf("pio%d ",ii);
+ printf("pio%d ", ii);
puts("");
} else
printf("unknown\n");
@@ -962,7 +962,7 @@ static void identify(uint16_t *id_supplied)
) {
printf("Security:\n");
if (val[PSWD_CODE] && (val[PSWD_CODE] != NOVAL_1))
- printf("\tMaster password revision code = %u\n",val[PSWD_CODE]);
+ printf("\tMaster password revision code = %u\n", val[PSWD_CODE]);
jj = val[SECU_STATUS];
if (jj) {
for (ii = 0; ii < NUM_SECU_STR; ii++) {
@@ -1005,7 +1005,7 @@ static void identify(uint16_t *id_supplied)
(val[CFA_PWR_MODE] & PWR_MODE_REQ) ? " and required by some commands" : "");
if (val[CFA_PWR_MODE] & MAX_AMPS)
- printf("\tMaximum current = %uma\n",val[CFA_PWR_MODE] & MAX_AMPS);
+ printf("\tMaximum current = %uma\n", val[CFA_PWR_MODE] & MAX_AMPS);
}
if ((val[INTEGRITY] & SIG) == SIG_VAL) {
printf("Checksum: %scorrect\n", chksum ? "in" : "");
@@ -1125,7 +1125,7 @@ static void dump_identity(const struct hd_driveid *id)
if (!(id->field_valid & 1))
printf(" (maybe):");
- printf(" CurCHS=%u/%u/%u, CurSects=%lu, LBA=%s",id->cur_cyls, id->cur_heads,
+ printf(" CurCHS=%u/%u/%u, CurSects=%lu, LBA=%s", id->cur_cyls, id->cur_heads,
id->cur_sectors,
(BB_BIG_ENDIAN) ?
(long unsigned int)(id->cur_capacity0 << 16) | id->cur_capacity1 :
@@ -1200,17 +1200,17 @@ static void dump_identity(const struct hd_driveid *id)
if (id->dma_ultra & 0x0080) printf("udma7 ");
}
}
- printf("\n AdvancedPM=%s",((id_regs[83]&8)==0)?"no":"yes");
+ printf("\n AdvancedPM=%s", (!(id_regs[83] & 8)) ? "no" : "yes");
if (id_regs[83] & 8) {
if (!(id_regs[86] & 8))
printf(": disabled (255)");
else if ((id_regs[91] & 0xFF00) != 0x4000)
printf(": unknown setting");
else
- printf(": mode=0x%02X (%u)",id_regs[91]&0xFF,id_regs[91]&0xFF);
+ printf(": mode=0x%02X (%u)", id_regs[91] & 0xFF, id_regs[91] & 0xFF);
}
if (id_regs[82] & 0x20)
- printf(" WriteCache=%s",(id_regs[85]&0x20) ? "enabled" : "disabled");
+ printf(" WriteCache=%s", (id_regs[85] & 0x20) ? "enabled" : "disabled");
#ifdef __NEW_HD_DRIVE_ID
if ((id->minor_rev_num && id->minor_rev_num <= 31)
|| (id->major_rev_num && id->minor_rev_num <= 31)
@@ -1232,7 +1232,7 @@ static void dump_identity(const struct hd_driveid *id)
static void flush_buffer_cache(int fd)
{
fsync(fd); /* flush buffers */
- bb_ioctl(fd, BLKFLSBUF, NULL,"BLKFLSBUF" ) ;/* do it again, big time */
+ bb_ioctl(fd, BLKFLSBUF, NULL, "BLKFLSBUF") ;/* do it again, big time */
#ifdef HDIO_DRIVE_CMD
sleep(1);
if (ioctl(fd, HDIO_DRIVE_CMD, NULL) && errno != EINVAL) /* await completion */
@@ -1292,6 +1292,8 @@ static void do_time(int flag, int fd)
flag = 1 time_device
*/
{
+ static const struct itimerval thousand = {{1000, 0}, {1000, 0}};
+
struct itimerval e1, e2;
double elapsed, elapsed2;
unsigned int max_iterations = 1024, total_MB, iterations;
@@ -1311,13 +1313,13 @@ static void do_time(int flag, int fd)
sync();
sleep(3);
- setitimer(ITIMER_REAL, &(struct itimerval){{1000,0},{1000,0}}, NULL);
+ setitimer(ITIMER_REAL, &thousand, NULL);
if (flag == 0) {
/* Time cache */
- if (seek_to_zero (fd)) return;
- if (read_big_block (fd, buf)) return;
+ if (seek_to_zero(fd)) return;
+ if (read_big_block(fd, buf)) return;
printf(" Timing cached reads: ");
fflush(stdout);
@@ -1521,20 +1523,20 @@ static void process_dev(char *devname)
#endif
/* Please restore args[n] to these values after each ioctl
except for args[2] */
- unsigned char args[4] = {WIN_SETFEATURES,0,0,0};
+ unsigned char args[4] = { WIN_SETFEATURES, 0, 0, 0 };
const char *fmt = " %s\t= %2ld";
fd = xopen(devname, O_RDONLY|O_NONBLOCK);
printf("\n%s:\n", devname);
if (set_readahead) {
- print_flag(get_readahead,"fs readahead", Xreadahead);
- bb_ioctl(fd, BLKRASET,(int *)Xreadahead,"BLKRASET");
+ print_flag(get_readahead, "fs readahead", Xreadahead);
+ bb_ioctl(fd, BLKRASET, (int *)Xreadahead, "BLKRASET");
}
#if ENABLE_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
if (unregister_hwif) {
printf(" attempting to unregister hwif#%lu\n", hwif);
- bb_ioctl(fd, HDIO_UNREGISTER_HWIF,(int *)(unsigned long)hwif,"HDIO_UNREGISTER_HWIF");
+ bb_ioctl(fd, HDIO_UNREGISTER_HWIF, (int *)(unsigned long)hwif, "HDIO_UNREGISTER_HWIF");
}
#endif
#if ENABLE_FEATURE_HDPARM_HDIO_SCAN_HWIF
@@ -1563,7 +1565,7 @@ static void process_dev(char *devname)
bb_ioctl(fd, HDIO_SET_PIO_MODE, (int *)(unsigned long)piomode, "HDIO_SET_PIO_MODE");
}
if (set_io32bit) {
- print_flag(get_io32bit,"32-bit IO_support flag", io32bit);
+ print_flag(get_io32bit, "32-bit IO_support flag", io32bit);
bb_ioctl(fd, HDIO_SET_32BIT, (int *)io32bit, "HDIO_SET_32BIT");
}
if (set_mult) {
@@ -1575,11 +1577,11 @@ static void process_dev(char *devname)
#endif
}
if (set_readonly) {
- print_flag_on_off(get_readonly,"readonly", readonly);
+ print_flag_on_off(get_readonly, "readonly", readonly);
bb_ioctl(fd, BLKROSET, &readonly, "BLKROSET");
}
if (set_unmask) {
- print_flag_on_off(get_unmask,"unmaskirq", unmask);
+ print_flag_on_off(get_unmask, "unmaskirq", unmask);
bb_ioctl(fd, HDIO_SET_UNMASKINTR, (int *)unmask, "HDIO_SET_UNMASKINTR");
}
#if ENABLE_FEATURE_HDPARM_HDIO_GETSET_DMA
@@ -1589,40 +1591,40 @@ static void process_dev(char *devname)
}
#endif /* FEATURE_HDPARM_HDIO_GETSET_DMA */
if (set_dma_q) {
- print_flag_on_off(get_dma_q,"DMA queue_depth", dma_q);
+ print_flag_on_off(get_dma_q, "DMA queue_depth", dma_q);
bb_ioctl(fd, HDIO_SET_QDMA, (int *)dma_q, "HDIO_SET_QDMA");
}
if (set_nowerr) {
- print_flag_on_off(get_nowerr,"nowerr", nowerr);
- bb_ioctl(fd, HDIO_SET_NOWERR, (int *)nowerr,"HDIO_SET_NOWERR");
+ print_flag_on_off(get_nowerr, "nowerr", nowerr);
+ bb_ioctl(fd, HDIO_SET_NOWERR, (int *)nowerr, "HDIO_SET_NOWERR");
}
if (set_keep) {
- print_flag_on_off(get_keep,"keep_settings", keep);
- bb_ioctl(fd, HDIO_SET_KEEPSETTINGS, (int *)keep,"HDIO_SET_KEEPSETTINGS");
+ print_flag_on_off(get_keep, "keep_settings", keep);
+ bb_ioctl(fd, HDIO_SET_KEEPSETTINGS, (int *)keep, "HDIO_SET_KEEPSETTINGS");
}
#ifdef HDIO_DRIVE_CMD
if (set_doorlock) {
args[0] = doorlock ? WIN_DOORLOCK : WIN_DOORUNLOCK;
args[2] = 0;
- print_flag_on_off(get_doorlock,"drive doorlock", doorlock);
- bb_ioctl(fd, HDIO_DRIVE_CMD, &args,"HDIO_DRIVE_CMD(doorlock)");
+ print_flag_on_off(get_doorlock, "drive doorlock", doorlock);
+ bb_ioctl(fd, HDIO_DRIVE_CMD, &args, "HDIO_DRIVE_CMD(doorlock)");
args[0] = WIN_SETFEATURES;
}
if (set_dkeep) {
/* lock/unlock the drive's "feature" settings */
- print_flag_on_off(get_dkeep,"drive keep features", dkeep);
+ print_flag_on_off(get_dkeep, "drive keep features", dkeep);
args[2] = dkeep ? 0x66 : 0xcc;
- bb_ioctl(fd, HDIO_DRIVE_CMD, &args,"HDIO_DRIVE_CMD(keepsettings)");
+ bb_ioctl(fd, HDIO_DRIVE_CMD, &args, "HDIO_DRIVE_CMD(keepsettings)");
}
if (set_defects) {
args[2] = defects ? 0x04 : 0x84;
- print_flag(get_defects,"drive defect-mgmt", defects);
- bb_ioctl(fd, HDIO_DRIVE_CMD, &args,"HDIO_DRIVE_CMD(defectmgmt)");
+ print_flag(get_defects, "drive defect-mgmt", defects);
+ bb_ioctl(fd, HDIO_DRIVE_CMD, &args, "HDIO_DRIVE_CMD(defectmgmt)");
}
if (set_prefetch) {
args[1] = prefetch;
args[2] = 0xab;
- print_flag(get_prefetch,"drive prefetch", prefetch);
+ print_flag(get_prefetch, "drive prefetch", prefetch);
bb_ioctl(fd, HDIO_DRIVE_CMD, &args, "HDIO_DRIVE_CMD(setprefetch)");
args[1] = 0;
}
@@ -1631,15 +1633,15 @@ static void process_dev(char *devname)
args[2] = 3;
if (get_xfermode)
{
- print_flag(1,"xfermode", xfermode_requested);
+ print_flag(1, "xfermode", xfermode_requested);
interpret_xfermode(xfermode_requested);
}
- bb_ioctl(fd, HDIO_DRIVE_CMD, &args,"HDIO_DRIVE_CMD(setxfermode)");
+ bb_ioctl(fd, HDIO_DRIVE_CMD, &args, "HDIO_DRIVE_CMD(setxfermode)");
args[1] = 0;
}
if (set_lookahead) {
args[2] = lookahead ? 0xaa : 0x55;
- print_flag_on_off(get_lookahead,"drive read-lookahead", lookahead);
+ print_flag_on_off(get_lookahead, "drive read-lookahead", lookahead);
bb_ioctl(fd, HDIO_DRIVE_CMD, &args, "HDIO_DRIVE_CMD(setreadahead)");
}
if (set_apmmode) {
@@ -1647,7 +1649,7 @@ static void process_dev(char *devname)
args[1] = apmmode; /* sector count register 1-255 */
if (get_apmmode)
printf(" setting APM level to %s 0x%02lX (%ld)\n", (apmmode == 255) ? "disabled" : "", apmmode, apmmode);
- bb_ioctl(fd, HDIO_DRIVE_CMD, &args,"HDIO_DRIVE_CMD");
+ bb_ioctl(fd, HDIO_DRIVE_CMD, &args, "HDIO_DRIVE_CMD");
args[1] = 0;
}
if (set_wcache) {
@@ -1655,10 +1657,10 @@ static void process_dev(char *devname)
#ifndef WIN_FLUSHCACHE
#define WIN_FLUSHCACHE 0xe7
#endif
- static unsigned char flushcache[4] = {WIN_FLUSHCACHE,0,0,0};
+ static unsigned char flushcache[4] = { WIN_FLUSHCACHE, 0, 0, 0 };
#endif /* DO_FLUSHCACHE */
args[2] = wcache ? 0x02 : 0x82;
- print_flag_on_off(get_wcache,"drive write-caching", wcache);
+ print_flag_on_off(get_wcache, "drive write-caching", wcache);
#ifdef DO_FLUSHCACHE
if (!wcache)
bb_ioctl(fd, HDIO_DRIVE_CMD, &flushcache, "HDIO_DRIVE_CMD(flushcache)");
@@ -1705,7 +1707,7 @@ static void process_dev(char *devname)
args[0] = WIN_SETIDLE1;
args[1] = standby_requested;
if (get_standby) {
- print_flag(1,"standby", standby_requested);
+ print_flag(1, "standby", standby_requested);
interpret_standby(standby_requested);
}
bb_ioctl(fd, HDIO_DRIVE_CMD, &args, "HDIO_DRIVE_CMD(setidle1)");
@@ -1748,15 +1750,14 @@ static void process_dev(char *devname)
}
}
if (get_unmask) {
- bb_ioctl_on_off(fd, HDIO_GET_UNMASKINTR,(unsigned long *)parm,
- "HDIO_GET_UNMASKINTR","unmaskirq");
+ bb_ioctl_on_off(fd, HDIO_GET_UNMASKINTR, (unsigned long *)parm,
+ "HDIO_GET_UNMASKINTR", "unmaskirq");
}
#if ENABLE_FEATURE_HDPARM_HDIO_GETSET_DMA
if (get_dma) {
- if (!bb_ioctl(fd, HDIO_GET_DMA, &parm, "HDIO_GET_DMA"))
- {
+ if (!bb_ioctl(fd, HDIO_GET_DMA, &parm, "HDIO_GET_DMA")) {
printf(fmt, "using_dma", parm);
if (parm == 8)
printf(" (DMA-Assisted-PIO)\n");
@@ -1766,25 +1767,25 @@ static void process_dev(char *devname)
}
#endif
if (get_dma_q) {
- bb_ioctl_on_off (fd, HDIO_GET_QDMA,(unsigned long *)parm,
- "HDIO_GET_QDMA","queue_depth");
+ bb_ioctl_on_off(fd, HDIO_GET_QDMA, (unsigned long *)parm,
+ "HDIO_GET_QDMA", "queue_depth");
}
if (get_keep) {
- bb_ioctl_on_off (fd, HDIO_GET_KEEPSETTINGS,(unsigned long *)parm,
- "HDIO_GET_KEEPSETTINGS","keepsettings");
+ bb_ioctl_on_off(fd, HDIO_GET_KEEPSETTINGS, (unsigned long *)parm,
+ "HDIO_GET_KEEPSETTINGS", "keepsettings");
}
if (get_nowerr) {
- bb_ioctl_on_off (fd, HDIO_GET_NOWERR,(unsigned long *)&parm,
- "HDIO_GET_NOWERR","nowerr");
+ bb_ioctl_on_off(fd, HDIO_GET_NOWERR, (unsigned long *)&parm,
+ "HDIO_GET_NOWERR", "nowerr");
}
if (get_readonly) {
- bb_ioctl_on_off(fd, BLKROGET,(unsigned long *)parm,
- "BLKROGET","readonly");
+ bb_ioctl_on_off(fd, BLKROGET, (unsigned long *)parm,
+ "BLKROGET", "readonly");
}
if (get_readahead) {
- bb_ioctl_on_off (fd, BLKRAGET, (unsigned long *) parm,
- "BLKRAGET","readahead");
+ bb_ioctl_on_off(fd, BLKRAGET, (unsigned long *) parm,
+ "BLKRAGET", "readahead");
}
if (get_geom) {
if (!bb_ioctl(fd, BLKGETSIZE, &parm, "BLKGETSIZE")) {
@@ -1934,7 +1935,8 @@ static void parse_xfermode(int flag, unsigned long *get, unsigned long *set, int
if (flag) {
*get = 1;
if (optarg) {
- *set = ((*value = translate_xfermode(optarg)) > -1);
+ *value = translate_xfermode(optarg);
+ *set = (*value > -1);
}
}
}
@@ -1960,8 +1962,6 @@ static const char hdparm_options[] = "gfu::n::p:r::m::c::k::a::B:tTh"
/*-------------------------------------*/
/* our main() routine: */
-int hdparm_main(int argc, char **argv) ATTRIBUTE_NORETURN;;
-int hdparm_main(int argc, char **argv) ATTRIBUTE_NORETURN;
int hdparm_main(int argc, char **argv);
int hdparm_main(int argc, char **argv)
{
@@ -1978,7 +1978,7 @@ int hdparm_main(int argc, char **argv)
if (c == 'u') parse_opts(&get_unmask, &set_unmask, &unmask, 0, 1);
USE_FEATURE_HDPARM_HDIO_GETSET_DMA(if (c == 'd') parse_opts(&get_dma, &set_dma, &dma, 0, 9));
if (c == 'n') parse_opts(&get_nowerr, &set_nowerr, &nowerr, 0, 1);
- parse_xfermode((c == 'p'),&noisy_piomode, &set_piomode, &piomode);
+ parse_xfermode((c == 'p'), &noisy_piomode, &set_piomode, &piomode);
if (c == 'r') parse_opts(&get_readonly, &set_readonly, &readonly, 0, 1);
if (c == 'm') parse_opts(&get_mult, &set_mult, &mult, 0, INT_MAX /*32*/);
if (c == 'c') parse_opts(&get_io32bit, &set_io32bit, &io32bit, 0, INT_MAX /*8*/);
@@ -2031,18 +2031,17 @@ int hdparm_main(int argc, char **argv)
get_mult = get_io32bit = get_unmask = get_keep = get_readonly = get_readahead = get_geom = 1;
USE_FEATURE_HDPARM_HDIO_GETSET_DMA(get_dma = 1);
}
- argc -= optind;
argv += optind;
- if (argc < 1) {
+ if (!*argv) {
if (ENABLE_FEATURE_HDPARM_GET_IDENTITY && !isatty(STDIN_FILENO))
identify_from_stdin(); /* EXIT */
else bb_show_usage();
}
- while (argc--) {
- process_dev(*argv);
- argv++;
- }
- exit(EXIT_SUCCESS);
+ do {
+ process_dev(*argv++);
+ } while (*argv);
+
+ return EXIT_SUCCESS;
}