1 # http://bugs.gentoo.org/show_bug.cgi?id=238378
2 # https://trac.xiph.org/changeset/15338
4 Index: interface/test_interface.c
5 ===================================================================
6 --- interface/test_interface.c (revision 15337)
7 +++ interface/test_interface.c (revision 15338)
9 if(!fd)fd=fdopen(d->cdda_fd,"r");
12 - d->private->last_milliseconds=20;
13 + d->private_data->last_milliseconds=20;
15 - d->private->last_milliseconds=sectors;
16 + d->private_data->last_milliseconds=sectors;
18 #ifdef CDDA_TEST_UNDERRUN
20 Index: interface/cdda_interface.h
21 ===================================================================
22 --- interface/cdda_interface.h (revision 15337)
23 +++ interface/cdda_interface.h (revision 15338)
28 - cdda_private_data_t *private;
29 + cdda_private_data_t *private_data;
31 unsigned char inqbytes[4];
33 Index: interface/interface.c
34 ===================================================================
35 --- interface/interface.c (revision 15337)
36 +++ interface/interface.c (revision 15338)
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);
44 + if(d->private_data){
45 + if(d->private_data->sg_hd)free(d->private_data->sg_hd);
46 + free(d->private_data);
54 - if(ms)*ms=d->private->last_milliseconds;
55 + if(ms)*ms=d->private_data->last_milliseconds;
59 Index: interface/scsi_interface.c
60 ===================================================================
61 --- interface/scsi_interface.c (revision 15337)
62 +++ interface/scsi_interface.c (revision 15338)
64 static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
67 - int ret1=clock_gettime(d->private->clock,&tv1);
68 + int ret1=clock_gettime(d->private_data->clock,&tv1);
69 int ret2=ioctl(fd, command,arg);
70 - int ret3=clock_gettime(d->private->clock,&tv2);
71 + int ret3=clock_gettime(d->private_data->clock,&tv2);
73 - d->private->last_milliseconds=-1;
74 + d->private_data->last_milliseconds=-1;
76 - d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
77 + d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
82 static void clear_garbage(cdrom_drive *d){
85 - struct sg_header *sg_hd=d->private->sg_hd;
86 + struct sg_header *sg_hd=d->private_data->sg_hd;
89 /* clear out any possibly preexisting garbage */
94 - struct sg_header *sg_hd=d->private->sg_hd;
95 + struct sg_header *sg_hd=d->private_data->sg_hd;
96 long writebytes=SG_OFF+cmd_len+in_size;
98 /* generic scsi device services */
101 memset(sg_hd,0,sizeof(sg_hd));
102 memset(sense_buffer,0,SG_MAX_SENSE);
103 - memcpy(d->private->sg_buffer,cmd,cmd_len+in_size);
104 + memcpy(d->private_data->sg_buffer,cmd,cmd_len+in_size);
105 sg_hd->twelve_byte = cmd_len == 12;
107 sg_hd->reply_len = SG_OFF + out_size;
109 tell if the command failed. Scared yet? */
111 if(bytecheck && out_size>in_size){
112 - memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
113 + memset(d->private_data->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
114 /* the size does not remove cmd_len due to the way the kernel
115 driver copies buffers */
116 writebytes+=(out_size-in_size);
120 sigprocmask (SIG_BLOCK, &(d->sigset), NULL );
121 - tret1=clock_gettime(d->private->clock,&tv1);
122 + tret1=clock_gettime(d->private_data->clock,&tv1);
124 status = write(d->cdda_fd, sg_hd, writebytes );
130 - tret2=clock_gettime(d->private->clock,&tv2);
131 + tret2=clock_gettime(d->private_data->clock,&tv2);
133 status = read(d->cdda_fd, sg_hd, SG_OFF + out_size);
134 sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL );
136 if(bytecheck && in_size+cmd_len<out_size){
138 for(i=in_size;i<out_size;i++)
139 - if(d->private->sg_buffer[i]!=bytefill){
140 + if(d->private_data->sg_buffer[i]!=bytefill){
147 if(tret1<0 || tret2<0){
148 - d->private->last_milliseconds=-1;
149 + d->private_data->last_milliseconds=-1;
151 - d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
152 + d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
158 memset(&hdr,0,sizeof(hdr));
159 memset(sense,0,sizeof(sense));
160 - memcpy(d->private->sg_buffer,cmd+cmd_len,in_size);
161 + memcpy(d->private_data->sg_buffer,cmd+cmd_len,in_size);
164 hdr.cmd_len = cmd_len;
166 hdr.mx_sb_len = SG_MAX_SENSE;
168 hdr.interface_id = 'S';
169 - hdr.dxferp = d->private->sg_buffer;
170 + hdr.dxferp = d->private_data->sg_buffer;
171 hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */
173 /* scary buffer fill hack */
175 if(bytecheck && in_size<out_size){
177 for(i=in_size;i<out_size;i++)
178 - if(d->private->sg_buffer[i]!=bytefill){
179 + if(d->private_data->sg_buffer[i]!=bytefill){
186 /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */
187 - /* d->private->last_milliseconds = hdr.duration; */
188 + /* d->private_data->last_milliseconds = hdr.duration; */
194 handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense);
196 - key = d->private->sg_buffer[2] & 0xf;
197 - ASC = d->private->sg_buffer[12];
198 - ASCQ = d->private->sg_buffer[13];
199 + key = d->private_data->sg_buffer[2] & 0xf;
200 + ASC = d->private_data->sg_buffer[12];
201 + ASCQ = d->private_data->sg_buffer[13];
203 if(key == 2 && ASC == 4 && ASCQ == 1) return 0;
206 if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1);
209 - unsigned char *b=d->private->sg_buffer;
210 + unsigned char *b=d->private_data->sg_buffer;
211 if(b[0])return(1); /* Handles only up to 256 bytes */
212 if(b[6])return(1); /* Handles only up to 256 bytes */
215 static unsigned int get_orig_sectorsize(cdrom_drive *d){
216 if(mode_sense(d,12,0x01))return(-1);
218 - d->orgdens = d->private->sg_buffer[4];
219 - return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]);
220 + d->orgdens = d->private_data->sg_buffer[4];
221 + return(d->orgsize = ((int)(d->private_data->sg_buffer[10])<<8)+d->private_data->sg_buffer[11]);
224 /* switch CDROM scsi drives to given sector size */
229 - first=d->private->sg_buffer[2];
230 - last=d->private->sg_buffer[3];
231 + first=d->private_data->sg_buffer[2];
232 + last=d->private_data->sg_buffer[3];
235 if (last > MAXTRK || first > MAXTRK || last<0 || first<0) {
240 - scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
241 + scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
243 d->disc_toc[i-first].bFlags=toc->bFlags;
244 d->disc_toc[i-first].bTrack=i;
249 - scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
250 + scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
252 d->disc_toc[i-first].bFlags=toc->bFlags;
253 d->disc_toc[i-first].bTrack=0xAA;
257 /* copy to our structure and convert start sector */
258 - tracks = d->private->sg_buffer[1];
259 + tracks = d->private_data->sg_buffer[1];
260 if (tracks > MAXTRK) {
261 cderror(d,"003: CDROM reporting illegal number of tracks\n");
263 @@ -754,33 +754,33 @@
267 - d->disc_toc[i].bFlags = d->private->sg_buffer[10];
268 + d->disc_toc[i].bFlags = d->private_data->sg_buffer[10];
269 d->disc_toc[i].bTrack = i + 1;
271 d->disc_toc[i].dwStartSector= d->adjust_ssize *
272 - (((signed char)(d->private->sg_buffer[2])<<24) |
273 - (d->private->sg_buffer[3]<<16)|
274 - (d->private->sg_buffer[4]<<8)|
275 - (d->private->sg_buffer[5]));
276 + (((signed char)(d->private_data->sg_buffer[2])<<24) |
277 + (d->private_data->sg_buffer[3]<<16)|
278 + (d->private_data->sg_buffer[4]<<8)|
279 + (d->private_data->sg_buffer[5]));
282 d->disc_toc[i].bFlags = 0;
283 d->disc_toc[i].bTrack = i + 1;
284 - memcpy (&foo, d->private->sg_buffer+2, 4);
285 - memcpy (&bar, d->private->sg_buffer+6, 4);
286 + memcpy (&foo, d->private_data->sg_buffer+2, 4);
287 + memcpy (&bar, d->private_data->sg_buffer+6, 4);
288 d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) +
291 d->disc_toc[i].dwStartSector= d->adjust_ssize *
292 - ((((signed char)(d->private->sg_buffer[2])<<24) |
293 - (d->private->sg_buffer[3]<<16)|
294 - (d->private->sg_buffer[4]<<8)|
295 - (d->private->sg_buffer[5]))+
296 + ((((signed char)(d->private_data->sg_buffer[2])<<24) |
297 + (d->private_data->sg_buffer[3]<<16)|
298 + (d->private_data->sg_buffer[4]<<8)|
299 + (d->private_data->sg_buffer[5]))+
301 - ((((signed char)(d->private->sg_buffer[6])<<24) |
302 - (d->private->sg_buffer[7]<<16)|
303 - (d->private->sg_buffer[8]<<8)|
304 - (d->private->sg_buffer[9]))));
305 + ((((signed char)(d->private_data->sg_buffer[6])<<24) |
306 + (d->private_data->sg_buffer[7]<<16)|
307 + (d->private_data->sg_buffer[8]<<8)|
308 + (d->private_data->sg_buffer[9]))));
311 d->cd_extra = FixupTOC(d,tracks+1);
314 if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
316 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
317 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
323 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
325 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
326 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
332 if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
334 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
335 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
341 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
343 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
344 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
350 if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
352 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
353 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
359 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
361 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
362 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
368 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
370 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
371 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
377 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
379 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
380 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
386 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
388 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
389 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
395 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
397 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
398 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
404 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
406 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
407 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
413 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
415 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
416 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
420 @@ -1026,7 +1026,7 @@
422 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
424 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
425 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
429 @@ -1039,7 +1039,7 @@
431 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
433 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
434 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
438 @@ -1052,7 +1052,7 @@
440 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
442 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
443 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
447 @@ -1275,7 +1275,7 @@
448 static int count_2352_bytes(cdrom_drive *d){
451 - if(d->private->sg_buffer[i]!=(unsigned char)'\177')
452 + if(d->private_data->sg_buffer[i]!=(unsigned char)'\177')
453 return(((i+3)>>2)<<2);
456 @@ -1284,7 +1284,7 @@
457 static int verify_nonzero(cdrom_drive *d){
460 - if(d->private->sg_buffer[i]!=0){
461 + if(d->private_data->sg_buffer[i]!=0){
465 @@ -1621,7 +1621,7 @@
467 if(mode_sense(d,22,0x2A)==0){
469 - b=d->private->sg_buffer;
470 + b=d->private_data->sg_buffer;
473 if((b[0]&0x3F)==0x2A){
474 @@ -1669,7 +1669,7 @@
475 cderror(d,"008: Unable to identify CDROM model\n");
478 - return (d->private->sg_buffer);
479 + return (d->private_data->sg_buffer);
482 int scsi_init_drive(cdrom_drive *d){
483 @@ -1725,8 +1725,8 @@
487 - d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
488 - d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
489 + d->private_data->sg_hd=realloc(d->private_data->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
490 + d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
494 Index: interface/cooked_interface.c
495 ===================================================================
496 --- interface/cooked_interface.c (revision 15337)
497 +++ interface/cooked_interface.c (revision 15338)
499 static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
502 - int ret1=clock_gettime(d->private->clock,&tv1);
503 + int ret1=clock_gettime(d->private_data->clock,&tv1);
504 int ret2=ioctl(fd, command,arg);
505 - int ret3=clock_gettime(d->private->clock,&tv2);
506 + int ret3=clock_gettime(d->private_data->clock,&tv2);
507 if(ret1<0 || ret3<0){
508 - d->private->last_milliseconds=-1;
509 + d->private_data->last_milliseconds=-1;
511 - d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
512 + d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
516 Index: interface/scan_devices.c
517 ===================================================================
518 --- interface/scan_devices.c (revision 15337)
519 +++ interface/scan_devices.c (revision 15338)
520 @@ -264,11 +264,11 @@
521 d->interface=COOKED_IOCTL;
522 d->bigendianp=-1; /* We don't know yet... */
524 - d->private=calloc(1,sizeof(*d->private));
525 + d->private_data=calloc(1,sizeof(*d->private_data));
529 - d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
530 + d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
532 idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
534 @@ -674,15 +674,15 @@
535 d->bigendianp=-1; /* We don't know yet... */
537 d->messagedest = messagedest;
538 - d->private=calloc(1,sizeof(*d->private));
539 + d->private_data=calloc(1,sizeof(*d->private_data));
543 - d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
544 + d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
547 d->interface=SGIO_SCSI;
548 - d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
549 + d->private_data->sg_buffer=(unsigned char *)(d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
550 g_fd=d->cdda_fd=dup(d->ioctl_fd);
552 version=verify_SG_version(d,messagedest,messages);
556 /* malloc our big buffer for scsi commands */
557 - d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
558 - d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
559 + d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
560 + d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
565 if(i_fd!=-1)close(i_fd);
566 if(g_fd!=-1)close(g_fd);
569 - if(d->private->sg_hd)free(d->private->sg_hd);
571 + if(d->private_data){
572 + if(d->private_data->sg_hd)free(d->private_data->sg_hd);
573 + free(d->private_data);
578 d->interface=TEST_INTERFACE;
579 d->bigendianp=-1; /* We don't know yet... */
581 - d->private=calloc(1,sizeof(*d->private));
582 + d->private_data=calloc(1,sizeof(*d->private_data));
583 d->drive_model=copystring("File based test interface");
584 idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model);