1 diff -ru cdparanoia-III-10.2/interface/cdda_interface.h cdparanoia-III-10.2-mod/interface/cdda_interface.h
2 --- cdparanoia-III-10.2/interface/cdda_interface.h 2008-09-11 11:43:52.000000000 +0100
3 +++ cdparanoia-III-10.2-mod/interface/cdda_interface.h 2009-09-08 16:08:37.000000000 +0100
8 - cdda_private_data_t *private;
9 + cdda_private_data_t *impl;
11 unsigned char inqbytes[4];
13 diff -ru cdparanoia-III-10.2/interface/cooked_interface.c cdparanoia-III-10.2-mod/interface/cooked_interface.c
14 --- cdparanoia-III-10.2/interface/cooked_interface.c 2008-08-26 10:55:22.000000000 +0100
15 +++ cdparanoia-III-10.2-mod/interface/cooked_interface.c 2009-09-08 16:09:35.000000000 +0100
17 static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
20 - int ret1=clock_gettime(d->private->clock,&tv1);
21 + int ret1=clock_gettime(d->impl->clock,&tv1);
22 int ret2=ioctl(fd, command,arg);
23 - int ret3=clock_gettime(d->private->clock,&tv2);
24 + int ret3=clock_gettime(d->impl->clock,&tv2);
26 - d->private->last_milliseconds=-1;
27 + d->impl->last_milliseconds=-1;
29 - d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
30 + d->impl->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
34 diff -ru cdparanoia-III-10.2/interface/interface.c cdparanoia-III-10.2-mod/interface/interface.c
35 --- cdparanoia-III-10.2/interface/interface.c 2008-09-11 11:43:52.000000000 +0100
36 +++ cdparanoia-III-10.2-mod/interface/interface.c 2009-09-08 16:09:50.000000000 +0100
38 if(d->drive_model)free(d->drive_model);
39 if(d->cdda_fd!=-1)close(d->cdda_fd);
40 if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd);
42 - if(d->private->sg_hd)free(d->private->sg_hd);
45 + if(d->impl->sg_hd)free(d->impl->sg_hd);
54 - if(ms)*ms=d->private->last_milliseconds;
55 + if(ms)*ms=d->impl->last_milliseconds;
59 diff -ru cdparanoia-III-10.2/interface/scan_devices.c cdparanoia-III-10.2-mod/interface/scan_devices.c
60 --- cdparanoia-III-10.2/interface/scan_devices.c 2008-08-26 10:55:22.000000000 +0100
61 +++ cdparanoia-III-10.2-mod/interface/scan_devices.c 2009-09-08 16:09:17.000000000 +0100
63 d->interface=COOKED_IOCTL;
64 d->bigendianp=-1; /* We don't know yet... */
66 - d->private=calloc(1,sizeof(*d->private));
67 + d->impl=calloc(1,sizeof(*d->impl));
71 - d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
72 + d->impl->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
74 idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
77 d->bigendianp=-1; /* We don't know yet... */
79 d->messagedest = messagedest;
80 - d->private=calloc(1,sizeof(*d->private));
81 + d->impl=calloc(1,sizeof(*d->impl));
85 - d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
86 + d->impl->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
89 d->interface=SGIO_SCSI;
90 - d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
91 + d->impl->sg_buffer=(unsigned char *)(d->impl->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
92 g_fd=d->cdda_fd=dup(d->ioctl_fd);
94 version=verify_SG_version(d,messagedest,messages);
98 /* malloc our big buffer for scsi commands */
99 - d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
100 - d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
101 + d->impl->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
102 + d->impl->sg_buffer=((unsigned char *)d->impl->sg_hd)+SG_OFF;
107 if(i_fd!=-1)close(i_fd);
108 if(g_fd!=-1)close(g_fd);
111 - if(d->private->sg_hd)free(d->private->sg_hd);
114 + if(d->impl->sg_hd)free(d->impl->sg_hd);
120 d->interface=TEST_INTERFACE;
121 d->bigendianp=-1; /* We don't know yet... */
123 - d->private=calloc(1,sizeof(*d->private));
124 + d->impl=calloc(1,sizeof(*d->impl));
125 d->drive_model=copystring("File based test interface");
126 idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model);
128 diff -ru cdparanoia-III-10.2/interface/scsi_interface.c cdparanoia-III-10.2-mod/interface/scsi_interface.c
129 --- cdparanoia-III-10.2/interface/scsi_interface.c 2008-09-11 21:33:30.000000000 +0100
130 +++ cdparanoia-III-10.2-mod/interface/scsi_interface.c 2009-09-08 16:10:30.000000000 +0100
132 static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
135 - int ret1=clock_gettime(d->private->clock,&tv1);
136 + int ret1=clock_gettime(d->impl->clock,&tv1);
137 int ret2=ioctl(fd, command,arg);
138 - int ret3=clock_gettime(d->private->clock,&tv2);
139 + int ret3=clock_gettime(d->impl->clock,&tv2);
140 if(ret1<0 || ret3<0){
141 - d->private->last_milliseconds=-1;
142 + d->impl->last_milliseconds=-1;
144 - d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
145 + d->impl->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
150 static void clear_garbage(cdrom_drive *d){
153 - struct sg_header *sg_hd=d->private->sg_hd;
154 + struct sg_header *sg_hd=d->impl->sg_hd;
157 /* clear out any possibly preexisting garbage */
162 - struct sg_header *sg_hd=d->private->sg_hd;
163 + struct sg_header *sg_hd=d->impl->sg_hd;
164 long writebytes=SG_OFF+cmd_len+in_size;
166 /* generic scsi device services */
169 memset(sg_hd,0,sizeof(sg_hd));
170 memset(sense_buffer,0,SG_MAX_SENSE);
171 - memcpy(d->private->sg_buffer,cmd,cmd_len+in_size);
172 + memcpy(d->impl->sg_buffer,cmd,cmd_len+in_size);
173 sg_hd->twelve_byte = cmd_len == 12;
175 sg_hd->reply_len = SG_OFF + out_size;
177 tell if the command failed. Scared yet? */
179 if(bytecheck && out_size>in_size){
180 - memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
181 + memset(d->impl->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
182 /* the size does not remove cmd_len due to the way the kernel
183 driver copies buffers */
184 writebytes+=(out_size-in_size);
188 sigprocmask (SIG_BLOCK, &(d->sigset), NULL );
189 - tret1=clock_gettime(d->private->clock,&tv1);
190 + tret1=clock_gettime(d->impl->clock,&tv1);
192 status = write(d->cdda_fd, sg_hd, writebytes );
198 - tret2=clock_gettime(d->private->clock,&tv2);
199 + tret2=clock_gettime(d->impl->clock,&tv2);
201 status = read(d->cdda_fd, sg_hd, SG_OFF + out_size);
202 sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL );
204 if(bytecheck && in_size+cmd_len<out_size){
206 for(i=in_size;i<out_size;i++)
207 - if(d->private->sg_buffer[i]!=bytefill){
208 + if(d->impl->sg_buffer[i]!=bytefill){
215 if(tret1<0 || tret2<0){
216 - d->private->last_milliseconds=-1;
217 + d->impl->last_milliseconds=-1;
219 - d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
220 + d->impl->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
226 memset(&hdr,0,sizeof(hdr));
227 memset(sense,0,sizeof(sense));
228 - memcpy(d->private->sg_buffer,cmd+cmd_len,in_size);
229 + memcpy(d->impl->sg_buffer,cmd+cmd_len,in_size);
232 hdr.cmd_len = cmd_len;
234 hdr.mx_sb_len = SG_MAX_SENSE;
236 hdr.interface_id = 'S';
237 - hdr.dxferp = d->private->sg_buffer;
238 + hdr.dxferp = d->impl->sg_buffer;
239 hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */
241 /* scary buffer fill hack */
243 if(bytecheck && in_size<out_size){
245 for(i=in_size;i<out_size;i++)
246 - if(d->private->sg_buffer[i]!=bytefill){
247 + if(d->impl->sg_buffer[i]!=bytefill){
254 /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */
255 - /* d->private->last_milliseconds = hdr.duration; */
256 + /* d->impl->last_milliseconds = hdr.duration; */
262 handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense);
264 - key = d->private->sg_buffer[2] & 0xf;
265 - ASC = d->private->sg_buffer[12];
266 - ASCQ = d->private->sg_buffer[13];
267 + key = d->impl->sg_buffer[2] & 0xf;
268 + ASC = d->impl->sg_buffer[12];
269 + ASCQ = d->impl->sg_buffer[13];
271 if(key == 2 && ASC == 4 && ASCQ == 1) return 0;
274 if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1);
277 - unsigned char *b=d->private->sg_buffer;
278 + unsigned char *b=d->impl->sg_buffer;
279 if(b[0])return(1); /* Handles only up to 256 bytes */
280 if(b[6])return(1); /* Handles only up to 256 bytes */
283 static unsigned int get_orig_sectorsize(cdrom_drive *d){
284 if(mode_sense(d,12,0x01))return(-1);
286 - d->orgdens = d->private->sg_buffer[4];
287 - return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]);
288 + d->orgdens = d->impl->sg_buffer[4];
289 + return(d->orgsize = ((int)(d->impl->sg_buffer[10])<<8)+d->impl->sg_buffer[11]);
292 /* switch CDROM scsi drives to given sector size */
297 - first=d->private->sg_buffer[2];
298 - last=d->private->sg_buffer[3];
299 + first=d->impl->sg_buffer[2];
300 + last=d->impl->sg_buffer[3];
303 if (last > MAXTRK || first > MAXTRK || last<0 || first<0) {
308 - scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
309 + scsi_TOC *toc=(scsi_TOC *)(d->impl->sg_buffer+4);
311 d->disc_toc[i-first].bFlags=toc->bFlags;
312 d->disc_toc[i-first].bTrack=i;
317 - scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
318 + scsi_TOC *toc=(scsi_TOC *)(d->impl->sg_buffer+4);
320 d->disc_toc[i-first].bFlags=toc->bFlags;
321 d->disc_toc[i-first].bTrack=0xAA;
325 /* copy to our structure and convert start sector */
326 - tracks = d->private->sg_buffer[1];
327 + tracks = d->impl->sg_buffer[1];
328 if (tracks > MAXTRK) {
329 cderror(d,"003: CDROM reporting illegal number of tracks\n");
331 @@ -754,33 +754,33 @@
335 - d->disc_toc[i].bFlags = d->private->sg_buffer[10];
336 + d->disc_toc[i].bFlags = d->impl->sg_buffer[10];
337 d->disc_toc[i].bTrack = i + 1;
339 d->disc_toc[i].dwStartSector= d->adjust_ssize *
340 - (((signed char)(d->private->sg_buffer[2])<<24) |
341 - (d->private->sg_buffer[3]<<16)|
342 - (d->private->sg_buffer[4]<<8)|
343 - (d->private->sg_buffer[5]));
344 + (((signed char)(d->impl->sg_buffer[2])<<24) |
345 + (d->impl->sg_buffer[3]<<16)|
346 + (d->impl->sg_buffer[4]<<8)|
347 + (d->impl->sg_buffer[5]));
350 d->disc_toc[i].bFlags = 0;
351 d->disc_toc[i].bTrack = i + 1;
352 - memcpy (&foo, d->private->sg_buffer+2, 4);
353 - memcpy (&bar, d->private->sg_buffer+6, 4);
354 + memcpy (&foo, d->impl->sg_buffer+2, 4);
355 + memcpy (&bar, d->impl->sg_buffer+6, 4);
356 d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) +
359 d->disc_toc[i].dwStartSector= d->adjust_ssize *
360 - ((((signed char)(d->private->sg_buffer[2])<<24) |
361 - (d->private->sg_buffer[3]<<16)|
362 - (d->private->sg_buffer[4]<<8)|
363 - (d->private->sg_buffer[5]))+
364 + ((((signed char)(d->impl->sg_buffer[2])<<24) |
365 + (d->impl->sg_buffer[3]<<16)|
366 + (d->impl->sg_buffer[4]<<8)|
367 + (d->impl->sg_buffer[5]))+
369 - ((((signed char)(d->private->sg_buffer[6])<<24) |
370 - (d->private->sg_buffer[7]<<16)|
371 - (d->private->sg_buffer[8]<<8)|
372 - (d->private->sg_buffer[9]))));
373 + ((((signed char)(d->impl->sg_buffer[6])<<24) |
374 + (d->impl->sg_buffer[7]<<16)|
375 + (d->impl->sg_buffer[8]<<8)|
376 + (d->impl->sg_buffer[9]))));
379 d->cd_extra = FixupTOC(d,tracks+1);
382 if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
384 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
385 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
391 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
393 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
394 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
400 if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
402 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
403 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
409 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
411 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
412 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
418 if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
420 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
421 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
427 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
429 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
430 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
436 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
438 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
439 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
445 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
447 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
448 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
454 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
456 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
457 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
463 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
465 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
466 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
472 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
474 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
475 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
481 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
483 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
484 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
488 @@ -1026,7 +1026,7 @@
490 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
492 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
493 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
497 @@ -1039,7 +1039,7 @@
499 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
501 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
502 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
506 @@ -1052,7 +1052,7 @@
508 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
510 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
511 + if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
515 @@ -1275,7 +1275,7 @@
516 static int count_2352_bytes(cdrom_drive *d){
519 - if(d->private->sg_buffer[i]!=(unsigned char)'\177')
520 + if(d->impl->sg_buffer[i]!=(unsigned char)'\177')
521 return(((i+3)>>2)<<2);
524 @@ -1284,7 +1284,7 @@
525 static int verify_nonzero(cdrom_drive *d){
528 - if(d->private->sg_buffer[i]!=0){
529 + if(d->impl->sg_buffer[i]!=0){
533 @@ -1625,7 +1625,7 @@
535 if(mode_sense(d,22,0x2A)==0){
537 - b=d->private->sg_buffer;
538 + b=d->impl->sg_buffer;
541 if((b[0]&0x3F)==0x2A){
542 @@ -1673,7 +1673,7 @@
543 cderror(d,"008: Unable to identify CDROM model\n");
546 - return (d->private->sg_buffer);
547 + return (d->impl->sg_buffer);
550 int scsi_init_drive(cdrom_drive *d){
551 @@ -1742,8 +1742,8 @@
555 - d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
556 - d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
557 + d->impl->sg_hd=realloc(d->impl->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
558 + d->impl->sg_buffer=((unsigned char *)d->impl->sg_hd)+SG_OFF;