Date: Fri, 5 Apr 2002 15:10:39 +0400 (MSD) From: Maxim Konovalov <maxim@macomnet.ru> To: hackers@freebsd.org Subject: cdcontrol(1) speed command Message-ID: <20020405145853.O45449-100000@news1.macomnet.ru>
next in thread | raw e-mail | index | archive | help
Hello,
Here is a patch for cdcontrol(1) to allow set maximum CD drive speed.
It comes from kern/35512. Are there any comments/objections?
Index: cdcontrol.1
===================================================================
RCS file: /home/ncvs/src/usr.sbin/cdcontrol/cdcontrol.1,v
retrieving revision 1.32
diff -u -r1.32 cdcontrol.1
--- cdcontrol.1 15 Jul 2001 08:01:46 -0000 1.32
+++ cdcontrol.1 27 Mar 2002 10:57:34 -0000
@@ -154,6 +154,9 @@
Set minute-second-frame ioctl mode (default).
.It Cm set Ar lba
Set LBA ioctl mode.
+.It Cm speed Ar s
+Set the highest speed that the drive should use. This command is currently
+only supported on ATAPI drives.
.It Cm quit
Quit the program.
.El
Index: cdcontrol.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/cdcontrol/cdcontrol.c,v
retrieving revision 1.37
diff -u -r1.37 cdcontrol.c
--- cdcontrol.c 18 Feb 2002 20:35:27 -0000 1.37
+++ cdcontrol.c 27 Mar 2002 10:58:12 -0000
@@ -24,6 +24,7 @@
#endif /* not lint */
#include <sys/cdio.h>
+#include <sys/cdrio.h>
#include <sys/file.h>
#include <sys/ioctl.h>
#include <sys/param.h>
@@ -32,6 +33,7 @@
#include <err.h>
#include <errno.h>
#include <histedit.h>
+#include <limits.h>
#include <paths.h>
#include <stdio.h>
#include <stdlib.h>
@@ -73,6 +75,7 @@
#define CMD_CDID 15
#define CMD_NEXT 16
#define CMD_PREVIOUS 17
+#define CMD_SPEED 18
#define STATUS_AUDIO 0x1
#define STATUS_MEDIA 0x2
#define STATUS_VOLUME 0x4
@@ -105,6 +108,7 @@
{ CMD_VOLUME, "volume", 1,
"<l> <r> | left | right | mute | mono | stereo" },
{ CMD_CDID, "cdid", 2, "" },
+{ CMD_SPEED, "speed", 2, "speed" },
{ 0, NULL, 0, NULL }
};
@@ -277,7 +281,9 @@
int run (int cmd, char *arg)
{
+ long speed;
int l, r, rc;
+ char *ep;
switch (cmd) {
@@ -424,6 +430,19 @@
}
return setvol (l, r);
+
+ case CMD_SPEED:
+ if (fd < 0 && ! open_cd ())
+ return (0);
+
+ errno = 0;
+ speed = strtol(arg, &ep, 0);
+ if (*ep || ep == arg || speed < 0 || speed > INT_MAX ||
+ errno != 0) {
+ warnx("invalid command arguments %s", arg);
+ return (0);
+ }
+ return ioctl(fd, CDRIOCREADSPEED, &speed);
default:
case CMD_HELP:
%%%
--
Maxim Konovalov, MAcomnet, Internet-Intranet Dept., system engineer
phone: +7 (095) 796-9079, mailto:maxim@macomnet.ru
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020405145853.O45449-100000>
