Line
Link Here
|
0 |
-- setcd.c |
0 |
++ setcd.c |
Lines 1-5
Link Here
|
1 |
/* Setcd.c: Set various flags to control the behaviour of your cdrom device. |
1 |
/* Setcd.c: Set various flags to control the behaviour of your cdrom device. |
2 |
(c) 1997 David A. van Leeuwen |
2 |
(c) 1997 David A. van Leeuwen |
|
|
3 |
(c) 2004 Thomas Fritzsche <tf@noto.de> |
3 |
|
4 |
|
4 |
$Id: setcd.c,v 1.4 1999/08/24 19:07:34 david Exp $ |
5 |
$Id: setcd.c,v 1.4 1999/08/24 19:07:34 david Exp $ |
5 |
|
6 |
|
Lines 23-29
Link Here
|
23 |
#include <fcntl.h> |
24 |
#include <fcntl.h> |
24 |
#include <ctype.h> /* tolower */ |
25 |
#include <ctype.h> /* tolower */ |
25 |
#include <unistd.h> /* lseek, read */ |
26 |
#include <unistd.h> /* lseek, read */ |
26 |
#include <string.h> /* strncmp */ |
27 |
#include <string.h> /* strncmp, memset */ |
27 |
#include <sys/ioctl.h> /* ioctl */ |
28 |
#include <sys/ioctl.h> /* ioctl */ |
28 |
#include <linux/cdrom.h> |
29 |
#include <linux/cdrom.h> |
29 |
#ifndef CDC_CLOSE_TRAY /* moved into cdrom.h... */ |
30 |
#ifndef CDC_CLOSE_TRAY /* moved into cdrom.h... */ |
Lines 248-254
Link Here
|
248 |
if (set || clear || status) |
249 |
if (set || clear || status) |
249 |
print_options(flags, set | clear | ~0 * status); |
250 |
print_options(flags, set | clear | ~0 * status); |
250 |
if (speed>=0) { |
251 |
if (speed>=0) { |
251 |
if (ioctl(fd, CDROM_SELECT_SPEED, speed)<0) { |
252 |
struct cdrom_generic_command cgc; |
|
|
253 |
struct request_sense sense; |
254 |
unsigned char buffer[28]; |
255 |
unsigned long rw_size; |
256 |
memset(&cgc, 0, sizeof(cgc)); |
257 |
memset(&sense, 0, sizeof(sense)); |
258 |
memset(&buffer, 0, sizeof(buffer)); |
259 |
/* SET STREAMING command */ |
260 |
cgc.cmd[0] = 0xb6; |
261 |
/* 28 byte parameter list length */ |
262 |
cgc.cmd[10] = 28; |
263 |
cgc.sense = &sense; |
264 |
cgc.buffer = buffer; |
265 |
cgc.buflen = sizeof(buffer); |
266 |
cgc.data_direction = CGC_DATA_WRITE; |
267 |
cgc.quiet = 1; |
268 |
if(speed == 0) { |
269 |
/* set Restore Drive Defaults */ |
270 |
buffer[0] = 4; |
271 |
} |
272 |
buffer[8] = 0xff; |
273 |
buffer[9] = 0xff; |
274 |
buffer[10] = 0xff; |
275 |
buffer[11] = 0xff; |
276 |
rw_size = 177 * speed; |
277 |
/* read size */ |
278 |
buffer[12] = (rw_size >> 24) & 0xff; |
279 |
buffer[13] = (rw_size >> 16) & 0xff; |
280 |
buffer[14] = (rw_size >> 8) & 0xff; |
281 |
buffer[15] = rw_size & 0xff; |
282 |
/* read time 1 sec. */ |
283 |
buffer[18] = 0x03; |
284 |
buffer[19] = 0xE8; |
285 |
/* write size */ |
286 |
buffer[20] = (rw_size >> 24) & 0xff; |
287 |
buffer[21] = (rw_size >> 16) & 0xff; |
288 |
buffer[22] = (rw_size >> 8) & 0xff; |
289 |
buffer[23] = rw_size & 0xff; |
290 |
/* write time 1 sec. */ |
291 |
buffer[26] = 0x03; |
292 |
buffer[27] = 0xE8; |
293 |
if ((ioctl(fd, CDROM_SEND_PACKET, &cgc) != 0) |
294 |
&& (ioctl(fd, CDROM_SELECT_SPEED, speed) < 0)) { |
252 |
perror("can't set speed"); |
295 |
perror("can't set speed"); |
253 |
exit(-6); |
296 |
exit(-6); |
254 |
} else { |
297 |
} else { |
255 |
-- Makefile |
298 |
++ Makefile |
Lines 2-21
Link Here
|
2 |
|
2 |
|
3 |
# rely on default rules of GNU make |
3 |
# rely on default rules of GNU make |
4 |
|
4 |
|
5 |
prefix=/usr/local |
5 |
prefix=/usr |
6 |
source=$(HOME)/cdrom |
6 |
source=$(HOME)/cdrom |
7 |
revision=1.4 |
7 |
revision=1.4 |
8 |
|
8 |
|
9 |
CC=gcc |
9 |
CC=gcc |
10 |
CFLAGS=-g -Wall |
10 |
CFLAGS=-g -Wall -O2 |
11 |
INSTALL=install |
11 |
INSTALL=install |
12 |
|
12 |
|
13 |
default: setcd cdrom-standard.ps |
13 |
default: setcd |
14 |
|
14 |
|
15 |
install: setcd cdrom-standard.ps |
15 |
install: setcd |
16 |
$(INSTALL) -s -m 0755 setcd $(prefix)/bin/setcd |
16 |
$(INSTALL) -s -m 0755 setcd $(prefix)/bin/setcd |
17 |
$(INSTALL) -m 0644 setcd.1 $(prefix)/man/man1 |
17 |
$(INSTALL) -m 0644 setcd.1 $(prefix)/man/man1 |
18 |
$(INSTALL) -m 0644 cdrom-standard.ps $(prefix)/doc/setcd |
|
|
19 |
|
18 |
|
20 |
cdrom-standard.ps: /usr/src/linux/Documentation/cdrom/cdrom-standard.tex |
19 |
cdrom-standard.ps: /usr/src/linux/Documentation/cdrom/cdrom-standard.tex |
21 |
ln -sf /usr/src/linux/Documentation/cdrom/cdrom-standard.tex . |
20 |
ln -sf /usr/src/linux/Documentation/cdrom/cdrom-standard.tex . |