diff options
| author | Maxime Henrion <mux@FreeBSD.org> | 2003-03-22 12:18:20 +0000 |
|---|---|---|
| committer | Maxime Henrion <mux@FreeBSD.org> | 2003-03-22 12:18:20 +0000 |
| commit | 0a50de79cb11755dab26a5bc3076c0e11404038b (patch) | |
| tree | bf4321914b31ede56d450445be309e2854f4c107 /sbin | |
| parent | 66996f7a880ed28409e46380026c29f76dbe2571 (diff) | |
Notes
Diffstat (limited to 'sbin')
| -rw-r--r-- | sbin/atacontrol/atacontrol.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sbin/atacontrol/atacontrol.c b/sbin/atacontrol/atacontrol.c index d7b6995eff701..c55e3994d4dc0 100644 --- a/sbin/atacontrol/atacontrol.c +++ b/sbin/atacontrol/atacontrol.c @@ -249,7 +249,7 @@ int main(int argc, char **argv) { struct ata_cmd iocmd; - int fd; + int fd, maxunit, unit; if ((fd = open("/dev/ata", O_RDWR)) < 0) err(1, "control device not found"); @@ -278,9 +278,12 @@ main(int argc, char **argv) } if (!strcmp(argv[1], "list") && argc == 2) { - int unit = 0; - - while (info_print(fd, unit++, 1) != ENXIO); + iocmd.cmd = ATAGMAXCHANNEL; + if (ioctl(fd, IOCATA, &iocmd) < 0) + err(1, "ioctl(ATAGMAXCHANNEL)"); + maxunit = iocmd.u.maxchan; + for (unit = 0; unit < maxunit; unit++) + info_print(fd, unit, 1); } else if (!strcmp(argv[1], "info") && argc == 3) { info_print(fd, iocmd.channel, 0); |
