Lines Matching defs:*
0 #include <stdio.h>
2 #include <stdlib.h>
3 #include <fcntl.h>
4 #include <string.h>
5 #include <unistd.h>
6 #include <sys/ioctl.h>
7 #include <linux/cdrom.h>
8 #include "hdparm.h"
10 * dvdspeed - use SET STREAMING command to set the speed of DVD-drives
12 * Copyright (c) 2004 Thomas Fritzsche <tf@noto.de>
13 * A bit mangled in 2006 and 2008 by Thomas Orgis <thomas@orgis.org>
17 int set_dvdspeed(int fd, int speed)
19 struct cdrom_generic_command cgc;
20 struct request_sense sense;
21 unsigned char buffer[28];
22 unsigned long rwsize = 177 * speed;
24 memset(&cgc, 0, sizeof(cgc));
25 memset(&sense, 0, sizeof(sense));
26 memset(&buffer, 0, sizeof(buffer));
28 cgc.cmd[0] = 0xb6; // SET_STREAMING
30 cgc.cmd[10] = 28; // parameter list length (28 bytes)
31 cgc.sense = &sense;
32 cgc.buffer = buffer;
33 cgc.buflen = sizeof(buffer);
34 cgc.data_direction = CGC_DATA_WRITE;
36 if (speed == 0) // reset to default speed?
37 buffer[0] = 4;
39 buffer[ 8] = 0xff;
40 buffer[ 9] = 0xff;
41 buffer[10] = 0xff;
42 buffer[11] = 0xff;
44 // read size:
45 buffer[12] = rwsize >> 24;
46 buffer[13] = rwsize >> 16;
47 buffer[14] = rwsize >> 8;
48 buffer[15] = rwsize;
50 // read time = 1 second:
51 buffer[18] = 0x03;
52 buffer[19] = 0xE8;
54 // write size:
55 buffer[20] = rwsize >> 24;
56 buffer[21] = rwsize >> 16;
57 buffer[22] = rwsize >> 8;
58 buffer[23] = rwsize;
60 // write time = 1 second:
61 buffer[26] = 0x03;
62 buffer[27] = 0xE8;
64 return ioctl(fd, CDROM_SEND_PACKET, &cgc);