Blob Blame History Raw
diff -up cdiopara/icedax/global.h.wrk cdiopara/icedax/global.h
diff -up cdiopara/icedax/icedax.c.wrk cdiopara/icedax/icedax.c
--- cdiopara/icedax/icedax.c.wrk	2013-05-14 14:53:18.446879592 +0200
+++ cdiopara/icedax/icedax.c	2013-05-20 14:38:29.724047315 +0200
@@ -1149,15 +1149,15 @@ static void paranoia_reset()
 	para_stat->skips = 0;
 }
 
-static void paranoia_callback(long inpos, int function);
+static void paranoia_callback(long inpos, paranoia_cb_mode_t function);
 
-static void paranoia_callback(long inpos, int function)
+static void paranoia_callback(long inpos, paranoia_cb_mode_t function)
 {
 	struct timeval thistime;
 	long	test;
 
 	switch (function) {
-		case	-2:
+/*		case	-2:
 			para_stat->v_sector = inpos / CD_FRAMEWORDS;
 			return;
 		case	-1:
@@ -1165,7 +1165,7 @@ static void paranoia_callback(long inpos
 			para_stat->heartbeat = '*';
 			para_stat->slevel = 0;
 			para_stat->v_sector = inpos / CD_FRAMEWORDS;
-		break;
+		break;*/
 		case	PARANOIA_CB_VERIFY:
 			if (para_stat->stimeout >= 30) {
 				if (para_stat->curoverlap > CD_FRAMEWORDS) {
@@ -1232,6 +1232,12 @@ static void paranoia_callback(long inpos
 			para_stat->slevel = 5;
 			para_stat->fixup_dupeds++;
 		break;
+
+		case PARANOIA_CB_REPAIR:
+		case PARANOIA_CB_BACKOFF:
+		default:
+			fprintf(stderr, "ERROR: Unknown function requested from paranoia_callback. REPORT THIS AS A BUG!/n");
+		break;
 	}
 
 	gettimeofday(&thistime, NULL);
@@ -2895,7 +2901,7 @@ Rate   Divider      Rate   Divider
 		long paranoia_mode;
 		cdrom_drive *tmpdrive;
 		usal_close(get_scsi_p());
-
+//		global.cdp = paranoia_init(get_scsi_p()/*, global.nsectors*/);
 		tmpdrive = cdda_identify(global.dev_name, 0, NULL);
 		if (!tmpdrive)
 		{
@@ -2906,7 +2912,7 @@ Rate   Divider      Rate   Divider
 		if(global.nsectors)
 		{
 		  tmpdrive->nsectors = global.nsectors;
-		  tmpdrive->bigbuff = global.nsectors * CD_FRAMESIZE_RAW;
+//		  tmpdrive->bigbuff = global.nsectors * CD_FRAMESIZE_RAW;
 		}
 		if (cdda_open(tmpdrive) != 0)
 		{
diff -up cdiopara/icedax/icedax.h.wrk cdiopara/icedax/icedax.h
--- cdiopara/icedax/icedax.h.wrk	2013-05-14 14:35:09.646871797 +0200
+++ cdiopara/icedax/icedax.h	2013-05-14 14:35:55.114209747 +0200
@@ -71,7 +71,8 @@ unsigned int get_current_track(void);
 #define CD_XA_SYNC_HEAD   (CD_SYNC_SIZE+CD_XA_HEAD)/* sync bytes + header of XA frame */
 
 #define CD_FRAMESIZE      2048 /* bytes per frame, "cooked" mode */
-#define CD_FRAMESIZE_RAW  2352 /* bytes per frame, "raw" mode */
+//defined in libcdio:
+//#define CD_FRAMESIZE_RAW  2352 /* bytes per frame, "raw" mode */
 /* most drives don't deliver everything: */
 #define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE) /* 2340 */
 #define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE-CD_HEAD_SIZE) /* 2336 */
diff -up cdiopara/icedax/interface.c.wrk cdiopara/icedax/interface.c
--- cdiopara/icedax/interface.c.wrk	2013-05-20 14:54:28.400943735 +0200
+++ cdiopara/icedax/interface.c	2013-06-25 17:31:18.912450933 +0200
@@ -75,15 +75,15 @@
 
 #include "mytype.h"
 #include "byteorder.h"
-#include "interface.h"
 #include "icedax.h"
 #include "semshm.h"
 #include "setuid.h"
+#include "global.h"
 #include "ringbuff.h"
 #include "toc.h"
-#include "global.h"
 #include "ioctl.h"
 #include "exitcodes.h"
+#include "interface.h"
 #include "scsi_cmds.h"
 
 #include <utypes.h>
diff -up cdiopara/icedax/interface.h.wrk cdiopara/icedax/interface.h
--- cdiopara/icedax/interface.h.wrk	2013-05-22 15:24:17.117837738 +0200
+++ cdiopara/icedax/interface.h	2013-06-25 17:23:38.155611522 +0200
@@ -26,7 +26,11 @@
 #define CD_FRAMESIZE_RAW 2352
 #endif
 
+#ifndef _CDDA_INTERFACE_H_
+//#ifndef CD_FRAMESAMPLES
 #define CD_FRAMESAMPLES (CD_FRAMESIZE_RAW / 4)
+//#endif
+#endif
 
 extern unsigned interface;
 
diff -up cdiopara/icedax/ioctl.c.wrk cdiopara/icedax/ioctl.c
--- cdiopara/icedax/ioctl.c.wrk	2013-06-25 17:35:30.494695270 +0200
+++ cdiopara/icedax/ioctl.c	2013-06-25 17:36:21.377147425 +0200
@@ -55,11 +55,11 @@
 
 #include "mytype.h"
 #include "byteorder.h"
+#include "global.h"
 #include "interface.h"
 #include "toc.h"
 #include "icedax.h"
 #include "ioctl.h"
-#include "global.h"
 #include "exitcodes.h"
 
 #include <utypes.h>
diff -up cdiopara/icedax/resample.c.wrk cdiopara/icedax/resample.c
--- cdiopara/icedax/resample.c.wrk	2013-06-25 17:38:40.413456990 +0200
+++ cdiopara/icedax/resample.c	2013-06-25 17:39:00.557653547 +0200
@@ -42,6 +42,7 @@
 
 #include "mytype.h"
 #include "icedax.h"
+#include "global.h"
 #include "interface.h"
 #include "byteorder.h"
 #include "ringbuff.h"
@@ -49,7 +50,6 @@
 #include "toc.h"
 #include "sndfile.h"
 #include "sndconfig.h"
-#include "global.h"
 #include "exitcodes.h"
 
 
diff -up cdiopara/icedax/scsi_cmds.c.wrk cdiopara/icedax/scsi_cmds.c
--- cdiopara/icedax/scsi_cmds.c.wrk	2013-06-25 17:40:24.592486996 +0200
+++ cdiopara/icedax/scsi_cmds.c	2013-06-25 17:40:42.189663871 +0200
@@ -40,9 +40,9 @@
 
 #include "mytype.h"
 #include "icedax.h"
+#include "global.h"
 #include "interface.h"
 #include "byteorder.h"
-#include "global.h"
 #include "wodim.h"
 #include "toc.h"
 #include "scsi_cmds.h"
diff -up cdiopara/icedax/semshm.c.wrk cdiopara/icedax/semshm.c
--- cdiopara/icedax/semshm.c.wrk	2013-06-25 17:59:53.181820740 +0200
+++ cdiopara/icedax/semshm.c	2013-06-25 18:00:35.372272020 +0200
@@ -90,9 +90,9 @@
 #endif
 
 #include "mytype.h"
+#include "global.h"
 #include "interface.h"
 #include "ringbuff.h"
-#include "global.h"
 #include "exitcodes.h"
 #include "semshm.h"
 
diff -up cdiopara/icedax/toc.c.wrk cdiopara/icedax/toc.c
--- cdiopara/icedax/toc.c.wrk	2013-06-25 18:11:05.910961694 +0200
+++ cdiopara/icedax/toc.c	2013-06-25 18:32:39.559603392 +0200
@@ -58,9 +58,9 @@
 
 #include "mytype.h"
 #include "byteorder.h"
+#include "global.h"
 #include "interface.h"
 #include "icedax.h"
-#include "global.h"
 #include "sha.h"
 #include "base64.h"
 #include "toc.h"
@@ -379,7 +379,7 @@ static void emit_cddb_form(char *fname_b
 static void emit_cdindex_form(char *fname_baseval);
 #endif
 
-typedef struct TOC_t {	/* structure of table of contents (cdrom) */
+typedef struct icedax_TOC_t {	/* structure of table of contents (cdrom) */
 	unsigned char reserved1;
 	unsigned char bFlags;
 	unsigned char bTrack;
@@ -390,7 +390,7 @@ typedef struct TOC_t {	/* structure of t
 	int frms;
 	unsigned char ISRC[16];
 	int	SCMS;
-} TOC_t;
+} icedax_TOC_t;
 
 /* Flags contains two fields:
     bits 7-4 (ADR)
@@ -430,7 +430,7 @@ struct iterator {
 	int index;
 	int startindex;
 	void        (*reset)(struct iterator *this);
-	struct TOC_t *(*getNextTrack)(struct iterator *this);
+	struct icedax_TOC_t *(*getNextTrack)(struct iterator *this);
 	int         (*hasNextTrack)(struct iterator *this);
 };
 
@@ -516,7 +516,7 @@ unsigned FixupTOC(unsigned no_tracks)
 		    InitIterator(&i, 1);
 
 	    while (i.hasNextTrack(&i)) {
-		    struct TOC_t *p = i.getNextTrack(&i);
+		    struct icedax_TOC_t *p = i.getNextTrack(&i);
 		    if (IS__AUDIO(p)) count_audio_tracks++;
 	    }
 
@@ -731,7 +731,7 @@ static void emit_cddb_form(char *fname_b
   fprintf( cddb_form, "# Track frame offsets:\n#\n");
 
   while (i.hasNextTrack(&i)) {
-	  struct TOC_t *p = i.getNextTrack(&i);
+	  struct icedax_TOC_t *p = i.getNextTrack(&i);
 	  if (GETTRACK(p) == CDROM_LEADOUT) break;
 	  fprintf( cddb_form,
 		   "# %lu\n", 150 + Get_AudioStartSector(GETTRACK(p)));
@@ -763,7 +763,7 @@ static void emit_cddb_form(char *fname_b
 
   i.reset(&i);
   while (i.hasNextTrack(&i)) {
-	  struct TOC_t *p = i.getNextTrack(&i);
+	  struct icedax_TOC_t *p = i.getNextTrack(&i);
 	  int ii;
 
 	  ii = GETTRACK(p);
@@ -786,7 +786,7 @@ static void emit_cddb_form(char *fname_b
 
   i.reset(&i);
   while (i.hasNextTrack(&i)) {
-	  struct TOC_t *p = i.getNextTrack(&i);
+	  struct icedax_TOC_t *p = i.getNextTrack(&i);
 	  int ii;
 
 	  ii = GETTRACK(p);
@@ -1493,7 +1493,7 @@ static int IsSingleArtist(void)
 	InitIterator(&i, 1);
 
 	while (i.hasNextTrack(&i)) {
-		struct TOC_t *p = i.getNextTrack(&i);
+		struct icedax_TOC_t *p = i.getNextTrack(&i);
 		int ii;
 
 		if (IS__DATA(p) || GETTRACK(p) == CDROM_LEADOUT) continue;
@@ -1679,7 +1679,7 @@ static void emit_cdindex_form(char *fnam
 	 global.creator ? ascii2html(global.creator) : "");
 
     while (i.hasNextTrack(&i)) {
-	    struct TOC_t *p = i.getNextTrack(&i);
+	    struct icedax_TOC_t *p = i.getNextTrack(&i);
 	    int ii = GETTRACK(p);
 
 	    if (ii == CDROM_LEADOUT) break;
@@ -1701,7 +1701,7 @@ static void emit_cdindex_form(char *fnam
     fprintf( cdindex_form, "   <MultipleArtistCD>\n");
 
     while (i.hasNextTrack(&i)) {
-	    struct TOC_t *p = i.getNextTrack(&i);
+	    struct icedax_TOC_t *p = i.getNextTrack(&i);
 	    int ii = GETTRACK(p);
 
 	    if (ii == CDROM_LEADOUT) break;
@@ -1940,9 +1940,9 @@ static void DisplayToc_with_gui(unsigned
 
 	if ((global.verbose & (SHOW_TOC | SHOW_STARTPOSITIONS | SHOW_SUMMARY | SHOW_TITLES)) != 0
 	    && i.hasNextTrack(&i)) {
-		TOC_t *o = i.getNextTrack(&i);
+		icedax_TOC_t *o = i.getNextTrack(&i);
 		while (i.hasNextTrack(&i)) {
-			TOC_t *p = i.getNextTrack(&i);
+			icedax_TOC_t *p = i.getNextTrack(&i);
 			int from;
 			from = GETTRACK(o);
 
@@ -2070,9 +2070,9 @@ static void DisplayToc_no_gui(unsigned l
 	count_audio_trks = 0;
 
 	if (i.hasNextTrack(&i)) {
-		TOC_t *o = i.getNextTrack(&i);
+		icedax_TOC_t *o = i.getNextTrack(&i);
 		while (i.hasNextTrack(&i)) {
-			TOC_t *p = i.getNextTrack(&i);
+			icedax_TOC_t *p = i.getNextTrack(&i);
 			int from;
 			from = GETTRACK(o);
 
@@ -2129,10 +2129,10 @@ static void DisplayToc_no_gui(unsigned l
 	i.reset(&i);
 	if ((global.verbose & SHOW_TOC) != 0 &&
 		i.hasNextTrack(&i)) {
-		TOC_t *o = i.getNextTrack(&i);
+		icedax_TOC_t *o = i.getNextTrack(&i);
 
 		for (; i.hasNextTrack(&i);) {
-			TOC_t *p = i.getNextTrack(&i);
+			icedax_TOC_t *p = i.getNextTrack(&i);
 
 			if ( GETTRACK(o) <= MAXTRK ) {
 				unsigned char brace1, brace2;
@@ -2187,9 +2187,9 @@ static void DisplayToc_no_gui(unsigned l
 		ii = 0;
 		i.reset(&i);
 		if (i.hasNextTrack(&i)) {
-			TOC_t *o = i.getNextTrack(&i);
+			icedax_TOC_t *o = i.getNextTrack(&i);
 			for ( ; i.hasNextTrack(&i);) {
-				TOC_t *p = i.getNextTrack(&i);
+				icedax_TOC_t *p = i.getNextTrack(&i);
 				fprintf ( stderr,
 					  " %2u.(%8u)",
 					  GETTRACK(o),
@@ -2246,7 +2246,7 @@ static void DisplayToc_no_gui(unsigned l
 
 		i.reset(&i);
 		for ( ; i.hasNextTrack(&i);) {
-			TOC_t *p = i.getNextTrack(&i);
+			icedax_TOC_t *p = i.getNextTrack(&i);
 			int jj = GETTRACK(p);
 
 			if ( global.tracktitle[jj] != NULL ) {
@@ -2258,7 +2258,7 @@ static void DisplayToc_no_gui(unsigned l
 		
 		i.reset(&i);
 		for ( ; i.hasNextTrack(&i); ) {
-			TOC_t *p = i.getNextTrack(&i);
+			icedax_TOC_t *p = i.getNextTrack(&i);
 			int jj;
 
 			if (IS__DATA(p))
@@ -2718,7 +2718,7 @@ void Read_MCN_ISRC(void)
 		InitIterator(&i, 1);
 
 		while (i.hasNextTrack(&i)) {
-			struct TOC_t *p = i.getNextTrack(&i);
+			struct icedax_TOC_t *p = i.getNextTrack(&i);
 			unsigned ii = GETTRACK(p);
 			
 			if (ii == CDROM_LEADOUT) break;
@@ -3153,7 +3153,7 @@ unsigned ScanIndices(unsigned track, uns
 
 
   while (i.hasNextTrack(&i)) {
-	  struct TOC_t *p = i.getNextTrack(&i);
+	  struct icedax_TOC_t *p = i.getNextTrack(&i);
 	  unsigned ii = GETTRACK(p);
 
 	  if ( ii < starttrack || IS__DATA(p) )
@@ -3320,7 +3320,7 @@ unsigned char *Get_MCN(void)
 }
 
 
-static TOC_t g_toc [MAXTRK+1]; /* hidden track + 100 regular tracks */
+static icedax_TOC_t g_toc [MAXTRK+1]; /* hidden track + 100 regular tracks */
 
 /*#define IS_AUDIO(i) (!(g_toc[i].bFlags & 0x40))*/
 
@@ -3395,10 +3395,10 @@ static int patch_cd_extra(unsigned track
 
 static int restrict_tracks_illleadout(void)
 {
-	struct TOC_t *o = &g_toc[cdtracks+1];
+	struct icedax_TOC_t *o = &g_toc[cdtracks+1];
 	int i;
 	for (i = cdtracks; i >= 0; i--) {
-		struct TOC_t *p = &g_toc[i];
+		struct icedax_TOC_t *p = &g_toc[i];
 		if (GETSTART(o) > GETSTART(p)) break;
 	}
 	patch_cd_extra(i+1, GETSTART(o));
@@ -3521,7 +3521,7 @@ static void it_reset(struct iterator *th
 
 
 static int it_hasNextTrack(struct iterator *this);
-static struct TOC_t *it_getNextTrack(struct iterator *this);
+static struct icedax_TOC_t *it_getNextTrack(struct iterator *this);
 
 static int it_hasNextTrack(struct iterator *this)
 {
@@ -3530,7 +3530,7 @@ static int it_hasNextTrack(struct iterat
 
 
 
-static struct TOC_t *it_getNextTrack(struct iterator *this)
+static struct icedax_TOC_t *it_getNextTrack(struct iterator *this)
 {
 	/* if ( (*this->hasNextTrack)(this) == 0 ) return NULL; */
 	if ( this->index > (int)cdtracks+1 ) return NULL;
@@ -3581,7 +3581,7 @@ long Get_AudioStartSector(unsigned long
 	if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT;
 
 	while (i.hasNextTrack(&i)) {
-		TOC_t *p = i.getNextTrack(&i);
+		icedax_TOC_t *p = i.getNextTrack(&i);
 
 		if (GETTRACK(p) == p_track) {
 			if (IS__DATA(p)) {
@@ -3611,7 +3611,7 @@ long Get_StartSector(unsigned long p_tra
 	if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT;
 
 	while (i.hasNextTrack(&i)) {
-		TOC_t *p = i.getNextTrack(&i);
+		icedax_TOC_t *p = i.getNextTrack(&i);
 
 		if (GETTRACK(p) == p_track) {
 			return GETSTART(p);
@@ -3635,7 +3635,7 @@ long Get_EndSector(unsigned long p_track
 	if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT;
 
 	while (i.hasNextTrack(&i)) {
-		TOC_t *p = i.getNextTrack(&i);
+		icedax_TOC_t *p = i.getNextTrack(&i);
 		if (GETTRACK(p) == p_track) {
 			p = i.getNextTrack(&i);
 			if (p == NULL) {
@@ -3667,7 +3667,7 @@ long FirstAudioTrack(void)
 	else i.reset(&i);
 
 	while (i.hasNextTrack(&i)) {
-		TOC_t *p = i.getNextTrack(&i);
+		icedax_TOC_t *p = i.getNextTrack(&i);
 		unsigned ii = GETTRACK(p);
 
 		if (ii == CDROM_LEADOUT) break;
@@ -3685,7 +3685,7 @@ long FirstDataTrack(void)
 	else i.reset(&i);
 
 	while (i.hasNextTrack(&i)) {
-		TOC_t *p = i.getNextTrack(&i);
+		icedax_TOC_t *p = i.getNextTrack(&i);
 		if (IS__DATA(p)) {
 			return GETTRACK(p);
 		}
@@ -3706,7 +3706,7 @@ long LastAudioTrack(void)
 	else i.reset(&i);
 
 	while (i.hasNextTrack(&i)) {
-		TOC_t *p = i.getNextTrack(&i);
+		icedax_TOC_t *p = i.getNextTrack(&i);
 		if (IS__AUDIO(p) && (GETTRACK(p) != CDROM_LEADOUT)) {
 			j = GETTRACK(p);
 		}
@@ -3728,7 +3728,7 @@ long Get_LastSectorOnCd(unsigned long p_
 	if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT;
 
 	while (i.hasNextTrack(&i)) {
-		TOC_t *p = i.getNextTrack(&i);
+		icedax_TOC_t *p = i.getNextTrack(&i);
 
 		if (GETTRACK(p) < p_track)
 			continue;
@@ -3747,9 +3747,9 @@ int Get_Track(unsigned long sector)
 	else i.reset(&i);
 
 	if (i.hasNextTrack(&i)) {
-		TOC_t *o = i.getNextTrack(&i);
+		icedax_TOC_t *o = i.getNextTrack(&i);
 		while (i.hasNextTrack(&i)) {
-			TOC_t *p = i.getNextTrack(&i);
+			icedax_TOC_t *p = i.getNextTrack(&i);
 			if ((GETSTART(o) <= sector) && (GETSTART(p) > sector)) {
 				if (IS__DATA(o)) {
 					return -1;
@@ -3770,7 +3770,7 @@ int CheckTrackrange(unsigned long from,
 	else i.reset(&i);
 
 	while (i.hasNextTrack(&i)) {
-		TOC_t *p = i.getNextTrack(&i);
+		icedax_TOC_t *p = i.getNextTrack(&i);
 
 		if (GETTRACK(p) < from)
 			continue;
diff -up cdiopara/icedax/toc.h.wrk cdiopara/icedax/toc.h
--- cdiopara/icedax/toc.h.wrk	2013-05-14 14:41:35.646726988 +0200
+++ cdiopara/icedax/toc.h	2013-05-14 14:42:06.556954562 +0200
@@ -12,7 +12,8 @@
 
 /* @(#)toc.h	1.9 06/02/19 Copyright 1998,1999 Heiko Eissfeldt, Copyright 2006 J. Schilling */
 
-#define	MAXTRK	100	/* maximum of audio tracks (without a hidden track) */
+//defined in libcdio:
+//#define	MAXTRK	100	/* maximum of audio tracks (without a hidden track) */
 
 extern	unsigned cdtracks;
 extern	int	have_multisession;
diff -up cdiopara/readom/readom.c.wrk cdiopara/readom/readom.c
--- cdiopara/readom/readom.c.wrk	2013-06-25 16:13:03.587078284 +0200
+++ cdiopara/readom/readom.c	2013-06-25 16:13:27.466480361 +0200
@@ -1146,7 +1146,7 @@ fread_2448_16(SCSI *usalp, rparm_t *rp,
 {
 
 	if (rp->ismmc) {
-		track_t trackdesc;
+		wodim_track_t trackdesc;
 		int	ret;
 		int	i;
 		char	*p;
diff -up cdiopara/wodim/auinfo.c.wrk cdiopara/wodim/auinfo.c
--- cdiopara/wodim/auinfo.c.wrk	2013-06-25 16:40:14.572918883 +0200
+++ cdiopara/wodim/auinfo.c	2013-06-25 16:40:45.335248444 +0200
@@ -46,16 +46,16 @@
 extern	int	debug;
 extern	int	xdebug;
 
-BOOL			auinfosize(char *name, track_t *trackp);
-void			auinfo(char *name, int track, track_t *trackp);
-textptr_t 	*gettextptr(int track, track_t *trackp);
+BOOL			auinfosize(char *name, wodim_track_t *trackp);
+void			auinfo(char *name, int track, wodim_track_t *trackp);
+textptr_t 	*gettextptr(int track, wodim_track_t *trackp);
 static char *savestr(char *name);
 static char *readtag(char *name);
 static char *readtstr(char *name);
-void			setmcn(char *mcn, track_t *trackp);
+void			setmcn(char *mcn, wodim_track_t *trackp);
 static void	isrc_illchar(char *isrc, int c);
-void			setisrc(char *isrc, track_t *trackp);
-void			setindex(char *tindex, track_t *trackp);
+void			setisrc(char *isrc, wodim_track_t *trackp);
+void			setindex(char *tindex, wodim_track_t *trackp);
 
 #ifdef	XXX
 int 
@@ -68,7 +68,7 @@ main(int argc, char *argv[])
 #endif
 
 BOOL 
-auinfosize(char *name, track_t *trackp)
+auinfosize(char *name, wodim_track_t *trackp)
 {
 	const	char	*p;
 	const	char	*tlp;
@@ -145,11 +145,11 @@ auinfosize(char *name, track_t *trackp)
 }
 
 void 
-auinfo(char *name, int track, track_t *trackp)
+auinfo(char *name, int track, wodim_track_t *trackp)
 {
 	char	infname[1024];
 	char	*p;
-	track_t	*tp = &trackp[track];
+	wodim_track_t	*tp = &trackp[track];
 	textptr_t *txp;
 	long	l;
 	long	tno = -1;
@@ -303,7 +303,7 @@ auinfo(char *name, int track, track_t *t
 }
 
 textptr_t *
-gettextptr(int track, track_t *trackp)
+gettextptr(int track, wodim_track_t *trackp)
 {
 	register textptr_t *txp;
 
@@ -366,7 +366,7 @@ readtstr(char *name)
  * Media catalog number is a 13 digit number.
  */
 void 
-setmcn(char *mcn, track_t *trackp)
+setmcn(char *mcn, wodim_track_t *trackp)
 {
 	register char	*p;
 
@@ -404,7 +404,7 @@ isrc_illchar(char *isrc, int c)
  *	CC-OOO-YY-SSSSS
  */
 void 
-setisrc(char *isrc, track_t *trackp)
+setisrc(char *isrc, wodim_track_t *trackp)
 {
 	char	ibuf[13];
 	char	*ip;
@@ -482,7 +482,7 @@ illchar:
 }
 
 void 
-setindex(char *tindex, track_t *trackp)
+setindex(char *tindex, wodim_track_t *trackp)
 {
 	char	*p;
 	int	i;
diff -up cdiopara/wodim/cd_misc.c.wrk cdiopara/wodim/cd_misc.c
--- cdiopara/wodim/cd_misc.c.wrk	2013-06-25 16:52:56.893056513 +0200
+++ cdiopara/wodim/cd_misc.c	2013-06-25 16:54:56.960519199 +0200
@@ -42,8 +42,8 @@
 int	from_bcd(int b);
 int	to_bcd(int i);
 long	msf_to_lba(int m, int s, int f, BOOL force_positive);
-BOOL	lba_to_msf(long lba, msf_t *mp);
-void	sec_to_msf(long sec, msf_t *mp);
+BOOL	lba_to_msf(long lba, wodim_msf_t *mp);
+void	sec_to_msf(long sec, wodim_msf_t *mp);
 void	print_min_atip(long li, long lo);
 
 int 
@@ -73,7 +73,7 @@ msf_to_lba(int m, int s, int f, BOOL for
 }
 
 BOOL 
-lba_to_msf(long lba, msf_t *mp)
+lba_to_msf(long lba, wodim_msf_t *mp)
 {
 	int	m;
 	int	s;
@@ -110,7 +110,7 @@ lba_to_msf(long lba, msf_t *mp)
 }
 
 void 
-sec_to_msf(long sec, msf_t *mp)
+sec_to_msf(long sec, wodim_msf_t *mp)
 {
 	int	m;
 	int	s;
@@ -128,7 +128,7 @@ sec_to_msf(long sec, msf_t *mp)
 void 
 print_min_atip(long li, long lo)
 {
-	msf_t	msf;
+	wodim_msf_t	msf;
 
 	if (li < 0) {
 		lba_to_msf(li, &msf);
diff -up cdiopara/wodim/cdr_drv.c.wrk cdiopara/wodim/cdr_drv.c
--- cdiopara/wodim/cdr_drv.c.wrk	2013-06-25 16:42:28.603492864 +0200
+++ cdiopara/wodim/cdr_drv.c	2013-06-25 16:43:07.938976575 +0200
@@ -77,7 +77,7 @@ int	format_dummy(SCSI *usalp, cdr_t *, i
 int	drive_getdisktype(SCSI *usalp, cdr_t *dp);
 int	cmd_ill(SCSI *usalp);
 int	cmd_dummy(SCSI *usalp, cdr_t *);
-int	no_sendcue(SCSI *usalp, cdr_t *, track_t *trackp);
+int	no_sendcue(SCSI *usalp, cdr_t *, wodim_track_t *trackp);
 int	buf_dummy(SCSI *usalp, long *sp, long *fp);
 BOOL	set_cdrcmds(char *name, cdr_t **dpp);
 cdr_t	*get_cdrcmds(SCSI *usalp);
@@ -165,7 +165,7 @@ cmd_dummy(SCSI *usalp, cdr_t *dp)
 }
 
 int 
-no_sendcue(SCSI *usalp, cdr_t *dp, track_t *trackp)
+no_sendcue(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	errmsgno(EX_BAD, "SAO writing not available or not implemented for this drive.\n");
 	return (-1);
diff -up cdiopara/wodim/cdtext.c.wrk cdiopara/wodim/cdtext.c
--- cdiopara/wodim/cdtext.c.wrk	2013-06-25 16:44:38.388059921 +0200
+++ cdiopara/wodim/cdtext.c	2013-06-25 16:44:59.599309190 +0200
@@ -119,8 +119,8 @@ int	textlen;
 BOOL			checktextfile(char *fname);
 static void	setuptextdata(Uchar *bp, int len);
 static BOOL	cdtext_crc_ok(struct textpack *p);
-void			packtext(int tracks, track_t *trackp);
-static BOOL	anytext(int pack_type, int tracks, track_t *trackp);
+void			packtext(int tracks, wodim_track_t *trackp);
+static BOOL	anytext(int pack_type, int tracks, wodim_track_t *trackp);
 static void	fillup_pack(txtarg_t *ap);
 static void	fillpacks(txtarg_t *ap, char *from, int len, int track_no, int pack_type);
 int			write_cdtext(SCSI *usalp, cdr_t *dp, long startsec);
@@ -295,7 +295,7 @@ static BOOL cdtext_crc_ok(struct textpac
 }
 
 
-void packtext(int tracks, track_t *trackp)
+void packtext(int tracks, wodim_track_t *trackp)
 {
 	int	type;
 	int	i;
@@ -373,7 +373,7 @@ void packtext(int tracks, track_t *track
 #endif
 }
 
-static BOOL anytext(int pack_type, int tracks, track_t *trackp)
+static BOOL anytext(int pack_type, int tracks, wodim_track_t *trackp)
 {
 	register int	i;
 	register char	*p;
diff -up cdiopara/wodim/clone.c.wrk cdiopara/wodim/clone.c
--- cdiopara/wodim/clone.c.wrk	2013-06-25 17:33:21.013643927 +0200
+++ cdiopara/wodim/clone.c	2013-06-25 17:43:07.932151568 +0200
@@ -52,8 +52,8 @@
 
 /*#define	SAO_RAW*/
 
-void	clone_toc(track_t *trackp);
-void	clone_tracktype(track_t *trackp);
+void	clone_toc(wodim_track_t *trackp);
+void	clone_tracktype(wodim_track_t *trackp);
 
 extern	int	lverbose;
 extern	int	xdebug;
@@ -72,11 +72,11 @@ static	long	loutstart;
 /*
  * Read Clone TOC description from full toc file.
  */
-void clone_toc(track_t *trackp)
+void clone_toc(wodim_track_t *trackp)
 {
 	char	filename[1024];
-	msf_t	m;
-	msf_t	mr;
+	wodim_msf_t	m;
+	wodim_msf_t	mr;
 	struct	tocheader *tp;
 	struct	ftrackdesc *fp;
 	int	f;
@@ -208,7 +208,7 @@ void clone_toc(track_t *trackp)
  * Control 4 = data
  * Control 5 = packet data
  */
-void clone_tracktype(track_t *trackp)
+void clone_tracktype(wodim_track_t *trackp)
 {
 	int	tracks = trackp->tracks;
 	int	sectype;
diff -up cdiopara/wodim/cue.c.wrk cdiopara/wodim/cue.c
--- cdiopara/wodim/cue.c.wrk	2013-06-25 17:44:52.030231911 +0200
+++ cdiopara/wodim/cue.c	2013-06-25 17:46:01.606959365 +0200
@@ -238,22 +238,22 @@ static keyw_t	dtypes[] = {
 };
 
 
-int	parsecue(char *cuefname, track_t trackp[]);
-void	fparsecue(FILE *f, track_t trackp[]);
-static	void	parse_mcn(track_t trackp[], state_t *sp);
-static	void	parse_textfile(track_t trackp[], state_t *sp);
-static	void	parse_file(track_t trackp[], state_t *sp);
-static	void	parse_flags(track_t trackp[], state_t *sp);
-static	void	parse_index(track_t trackp[], state_t *sp);
-static	void	parse_isrc(track_t trackp[], state_t *sp);
-static	void	parse_performer(track_t trackp[], state_t *sp);
-static	void	parse_postgap(track_t trackp[], state_t *sp);
-static	void	parse_pregap(track_t trackp[], state_t *sp);
-static	void	parse_songwriter(track_t trackp[], state_t *sp);
-static	void	parse_title(track_t trackp[], state_t *sp);
-static	void	parse_track(track_t trackp[], state_t *sp);
+int	parsecue(char *cuefname, wodim_track_t trackp[]);
+void	fparsecue(FILE *f, wodim_track_t trackp[]);
+static	void	parse_mcn(wodim_track_t trackp[], state_t *sp);
+static	void	parse_textfile(wodim_track_t trackp[], state_t *sp);
+static	void	parse_file(wodim_track_t trackp[], state_t *sp);
+static	void	parse_flags(wodim_track_t trackp[], state_t *sp);
+static	void	parse_index(wodim_track_t trackp[], state_t *sp);
+static	void	parse_isrc(wodim_track_t trackp[], state_t *sp);
+static	void	parse_performer(wodim_track_t trackp[], state_t *sp);
+static	void	parse_postgap(wodim_track_t trackp[], state_t *sp);
+static	void	parse_pregap(wodim_track_t trackp[], state_t *sp);
+static	void	parse_songwriter(wodim_track_t trackp[], state_t *sp);
+static	void	parse_title(wodim_track_t trackp[], state_t *sp);
+static	void	parse_track(wodim_track_t trackp[], state_t *sp);
 static	void	parse_offset(long *lp);
-static	void	newtrack(track_t trackp[], state_t *sp);
+static	void	newtrack(wodim_track_t trackp[], state_t *sp);
 
 static	keyw_t	*lookup(char *word, keyw_t table[]);
 static	void	wdebug(void);
@@ -286,7 +286,7 @@ int
 main(int argc, char *argv[])
 {
 	int	i;
-	track_t	track[MAX_TRACK+2];	/* Max tracks + track 0 + track AA */
+	wodim_track_t	track[MAX_TRACK+2];	/* Max tracks + track 0 + track AA */
 
 	save_args(argc, argv);
 
@@ -304,7 +304,7 @@ extern	int	xdebug;
 #endif
 
 int 
-parsecue(char *cuefname, track_t trackp[])
+parsecue(char *cuefname, wodim_track_t trackp[])
 {
 	FILE	*f = cueopen(cuefname);
 
@@ -313,7 +313,7 @@ parsecue(char *cuefname, track_t trackp[
 }
 
 void 
-fparsecue(FILE *f, track_t trackp[])
+fparsecue(FILE *f, wodim_track_t trackp[])
 {
 	char	*word;
 	struct keyw *kp;
@@ -402,7 +402,7 @@ fparsecue(FILE *f, track_t trackp[])
 }
 
 static void 
-parse_mcn(track_t trackp[], state_t *sp)
+parse_mcn(wodim_track_t trackp[], state_t *sp)
 {
 	char	*word;
 	textptr_t *txp;
@@ -419,7 +419,7 @@ parse_mcn(track_t trackp[], state_t *sp)
 }
 
 static void 
-parse_textfile(track_t trackp[], state_t *sp)
+parse_textfile(wodim_track_t trackp[], state_t *sp)
 {
 	char	*word;
 
@@ -444,7 +444,7 @@ parse_textfile(track_t trackp[], state_t
 }
 
 static void 
-parse_file(track_t trackp[], state_t *sp)
+parse_file(wodim_track_t trackp[], state_t *sp)
 {
 	char	cname[1024];
 	char	newname[1024];
@@ -543,7 +543,7 @@ parse_file(track_t trackp[], state_t *sp
 }
 
 static void 
-parse_flags(track_t trackp[], state_t *sp)
+parse_flags(wodim_track_t trackp[], state_t *sp)
 {
 	struct keyw *kp;
 	char	*word;
@@ -575,7 +575,7 @@ parse_flags(track_t trackp[], state_t *s
 }
 
 static void 
-parse_index(track_t trackp[], state_t *sp)
+parse_index(wodim_track_t trackp[], state_t *sp)
 {
 	char	*word;
 	long	l;
@@ -634,7 +634,7 @@ parse_index(track_t trackp[], state_t *s
 }
 
 static void 
-parse_isrc(track_t trackp[], state_t *sp)
+parse_isrc(wodim_track_t trackp[], state_t *sp)
 {
 	char	*word;
 	textptr_t *txp;
@@ -657,7 +657,7 @@ parse_isrc(track_t trackp[], state_t *sp
 }
 
 static void 
-parse_performer(track_t trackp[], state_t *sp)
+parse_performer(wodim_track_t trackp[], state_t *sp)
 {
 	char	*word;
 	textptr_t *txp;
@@ -670,7 +670,7 @@ parse_performer(track_t trackp[], state_
 }
 
 static void 
-parse_postgap(track_t trackp[], state_t *sp)
+parse_postgap(wodim_track_t trackp[], state_t *sp)
 {
 	long	l;
 
@@ -685,7 +685,7 @@ parse_postgap(track_t trackp[], state_t
 }
 
 static void 
-parse_pregap(track_t trackp[], state_t *sp)
+parse_pregap(wodim_track_t trackp[], state_t *sp)
 {
 	long	l;
 
@@ -701,7 +701,7 @@ parse_pregap(track_t trackp[], state_t *
 }
 
 static void 
-parse_songwriter(track_t trackp[], state_t *sp)
+parse_songwriter(wodim_track_t trackp[], state_t *sp)
 {
 	char	*word;
 	textptr_t *txp;
@@ -714,7 +714,7 @@ parse_songwriter(track_t trackp[], state
 }
 
 static void 
-parse_title(track_t trackp[], state_t *sp)
+parse_title(wodim_track_t trackp[], state_t *sp)
 {
 	char	*word;
 	textptr_t *txp;
@@ -727,7 +727,7 @@ parse_title(track_t trackp[], state_t *s
 }
 
 static void 
-parse_track(track_t trackp[], state_t *sp)
+parse_track(wodim_track_t trackp[], state_t *sp)
 {
 	struct keyw *kp;
 	char	*word;
@@ -878,7 +878,7 @@ parse_offset(long *lp)
 
 /*--------------------------------------------------------------------------*/
 static void 
-newtrack(track_t trackp[], state_t *sp)
+newtrack(wodim_track_t trackp[], state_t *sp)
 {
 	register int	i;
 	register int	track = sp->track;
diff -up cdiopara/wodim/diskid.c.wrk cdiopara/wodim/diskid.c
--- cdiopara/wodim/diskid.c.wrk	2013-06-25 18:02:27.661472904 +0200
+++ cdiopara/wodim/diskid.c	2013-06-25 18:03:26.453101549 +0200
@@ -39,13 +39,13 @@
 
 #include "wodim.h"
 
-void	pr_manufacturer(msf_t *mp, BOOL rw, BOOL audio);
-static	struct disk_man *man_ptr(msf_t *mp);
-int	manufacturer_id(msf_t *mp);
-long	disk_rcap(msf_t *mp, long maxblock, BOOL rw, BOOL audio);
+void	pr_manufacturer(wodim_msf_t *mp, BOOL rw, BOOL audio);
+static	struct disk_man *man_ptr(wodim_msf_t *mp);
+int	manufacturer_id(wodim_msf_t *mp);
+long	disk_rcap(wodim_msf_t *mp, long maxblock, BOOL rw, BOOL audio);
 
 struct disk_man {
-	msf_t	mi_msf;
+	wodim_msf_t	mi_msf;
 	char	mi_num;
 	char	*mi_name;
 };
@@ -328,7 +328,7 @@ static	struct disk_man dman[] = {
 #define	ndman	(sizeof (dman)/sizeof (dman[0]))
 
 static struct disk_man *
-man_ptr(msf_t *mp)
+man_ptr(wodim_msf_t *mp)
 {
 	struct disk_man * dp;
 	int	frame;
@@ -363,7 +363,7 @@ man_ptr(msf_t *mp)
 	return (NULL);
 }
 
-void pr_manufacturer(msf_t *mp, BOOL rw, BOOL audio)
+void pr_manufacturer(wodim_msf_t *mp, BOOL rw, BOOL audio)
 {
 	struct disk_man * dp;
 	struct disk_man xdman;
@@ -417,7 +417,7 @@ void pr_manufacturer(msf_t *mp, BOOL rw,
 	}
 }
 
-int manufacturer_id(msf_t *mp)
+int manufacturer_id(wodim_msf_t *mp)
 {
 	struct disk_man * dp;
 
@@ -428,7 +428,7 @@ int manufacturer_id(msf_t *mp)
 }
 
 struct disk_rcap {
-	msf_t	ci_msf;				/* Lead in start time	    */
+	wodim_msf_t	ci_msf;				/* Lead in start time	    */
 	long	ci_cap;				/* Lead out start time	    */
 	long	ci_rcap;			/* Abs max lead out start   */
 };
@@ -505,7 +505,7 @@ static	struct disk_rcap rcap[] = {
 };
 
 long 
-disk_rcap(msf_t *mp, long maxblock, BOOL rw, BOOL audio)
+disk_rcap(wodim_msf_t *mp, long maxblock, BOOL rw, BOOL audio)
 {
 	struct disk_rcap * dp;
 
diff -up cdiopara/wodim/drv_7501.c.wrk cdiopara/wodim/drv_7501.c
--- cdiopara/wodim/drv_7501.c.wrk	2013-06-25 18:08:14.575166824 +0200
+++ cdiopara/wodim/drv_7501.c	2013-06-25 18:14:44.030252075 +0200
@@ -225,18 +225,18 @@ static	int	cw7501_attach(SCSI *usalp, cd
 static	int	cw7501_init(SCSI *usalp, cdr_t *dp);
 static	int	cw7501_getdisktype(SCSI *usalp, cdr_t *dp);
 static	int	cw7501_speed_select(SCSI *usalp, cdr_t *dp, int *speedp);
-static	int	cw7501_next_wr_addr(SCSI *usalp, track_t *trackp, long *ap);
+static	int	cw7501_next_wr_addr(SCSI *usalp, wodim_track_t *trackp, long *ap);
 static	int	cw7501_write(SCSI *usalp, caddr_t bp, long sectaddr, long size, 
 									 int blocks, BOOL islast);
-static	int	cw7501_write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	cw7501_open_track(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	cw7501_close_track(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	cw7501_open_session(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	cw7501_gen_cue(track_t *trackp, void *vcuep, BOOL needgap);
+static	int	cw7501_write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	cw7501_open_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	cw7501_close_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	cw7501_open_session(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	cw7501_gen_cue(wodim_track_t *trackp, void *vcuep, BOOL needgap);
 static	void	fillcue(struct cw7501_cue *cp, int ca, int tno, int idx, 
-							  int dataform, int scms, msf_t *mp);
-static	int	cw7501_send_cue(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	cw7501_fixate(SCSI *usalp, cdr_t *dp, track_t *trackp);
+							  int dataform, int scms, wodim_msf_t *mp);
+static	int	cw7501_send_cue(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	cw7501_fixate(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static	int	cw7501_rezero(SCSI *usalp, int reset, int dwreset);
 static	int	cw7501_read_trackinfo(SCSI *usalp, Uchar *bp, int count, 
 												 int track, int mode);
@@ -461,7 +461,7 @@ cw7501_speed_select(SCSI *usalp, cdr_t *
 }
 
 static int 
-cw7501_next_wr_addr(SCSI *usalp, track_t *trackp, long *ap)
+cw7501_next_wr_addr(SCSI *usalp, wodim_track_t *trackp, long *ap)
 {
 	struct cw7501_nwa	*nwa;
 	Uchar	buf[256];
@@ -520,7 +520,7 @@ cw7501_write(SCSI *usalp,
 }
 
 static int 
-cw7501_write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp)
+cw7501_write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	Uint	i;
 	long	startsec = 0L;
@@ -572,7 +572,7 @@ static Uchar	db2phys[] = {
 };
 
 static int 
-cw7501_open_track(SCSI *usalp, cdr_t *dp, track_t *trackp)
+cw7501_open_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	struct	scsi_mode_page_header	*mp;
 	Uchar				mode[256];
@@ -632,7 +632,7 @@ cw7501_open_track(SCSI *usalp, cdr_t *dp
 
 
 static int 
-cw7501_close_track(SCSI *usalp, cdr_t *dp, track_t *trackp)
+cw7501_close_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	if (!is_tao(trackp) && !is_packet(trackp)) {
 		return (0);
@@ -641,7 +641,7 @@ cw7501_close_track(SCSI *usalp, cdr_t *d
 }
 
 static int 
-cw7501_open_session(SCSI *usalp, cdr_t *dp, track_t *trackp)
+cw7501_open_session(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	struct cw7501_mode_data		md;
 	int				count;
@@ -695,7 +695,7 @@ cw7501_open_session(SCSI *usalp, cdr_t *
 }
 
 static int 
-cw7501_fixate(SCSI *usalp, cdr_t *dp, track_t *trackp)
+cw7501_fixate(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	if (!is_tao(trackp) && !is_packet(trackp)) {
 		return (scsi_flush_cache(usalp, FALSE));
@@ -711,7 +711,7 @@ cw7501_fixate(SCSI *usalp, cdr_t *dp, tr
 /*--------------------------------------------------------------------------*/
 
 static int 
-cw7501_gen_cue(track_t *trackp, void *vcuep, BOOL needgap)
+cw7501_gen_cue(wodim_track_t *trackp, void *vcuep, BOOL needgap)
 {
 	int	tracks = trackp->tracks;
 	int	i;
@@ -721,7 +721,7 @@ cw7501_gen_cue(track_t *trackp, void *vc
 	int	ncue = 0;
 	int	icue = 0;
 	int	pgsize;
-	msf_t	m;
+	wodim_msf_t	m;
 	int	ctl;
 	int	df;
 	int	scms;
@@ -820,7 +820,7 @@ fillcue(struct cw7501_cue *cp	/* The tar
         int idx					/* Index for this entry */, 
         int dataform			/* Data format for this entry */, 
         int scms					/* Serial copy management */, 
-        msf_t *mp				/* MSF value for this entry */)
+        wodim_msf_t *mp				/* MSF value for this entry */)
 {
 	cp->cs_ctladr = ca;
 	if (tno <= 99)
@@ -838,7 +838,7 @@ fillcue(struct cw7501_cue *cp	/* The tar
 }
 
 static int 
-cw7501_send_cue(SCSI *usalp, cdr_t *dp, track_t *trackp)
+cw7501_send_cue(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	struct cw7501_cue *cp;
 	int		ncue;
diff -up cdiopara/wodim/drv_jvc.c.wrk cdiopara/wodim/drv_jvc.c
--- cdiopara/wodim/drv_jvc.c.wrk	2013-06-25 18:17:15.654847220 +0200
+++ cdiopara/wodim/drv_jvc.c	2013-06-25 18:20:04.868629843 +0200
@@ -220,15 +220,15 @@ static	int	teac_attach(SCSI *usalp, cdr_
 static	int	teac_init(SCSI *usalp, cdr_t *dp);
 static	int	teac_getdisktype(SCSI *usalp, cdr_t *dp);
 static	int	speed_select_teac(SCSI *usalp, cdr_t *dp, int *speedp);
-static	int	select_secsize_teac(SCSI *usalp, track_t *trackp);
-static	int	next_wr_addr_jvc(SCSI *usalp, track_t *, long *ap);
+static	int	select_secsize_teac(SCSI *usalp, wodim_track_t *trackp);
+static	int	next_wr_addr_jvc(SCSI *usalp, wodim_track_t *, long *ap);
 static	int	write_teac_xg1(SCSI *usalp, caddr_t, long, long, int, BOOL);
 static	int	cdr_write_teac(SCSI *usalp, caddr_t bp, long sectaddr, long size, 
 										int blocks, BOOL islast);
-static	int	open_track_jvc(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	teac_fixation(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	close_track_teac(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	teac_open_session(SCSI *usalp, cdr_t *dp, track_t *trackp);
+static	int	open_track_jvc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	teac_fixation(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	close_track_teac(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	teac_open_session(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static	int	initsub_teac(SCSI *usalp, int toctype, int multi);
 static	int	teac_doopc(SCSI *usalp);
 static	int	teac_opc(SCSI *usalp, caddr_t, int cnt, int doopc);
@@ -278,9 +278,9 @@ cdr_t	cdr_teac_cdr50 = {
 	next_wr_addr_jvc,
 	(int(*)(SCSI *, Ulong))cmd_ill,	/* reserve_track	*/
 	cdr_write_teac,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_jvc,
 	close_track_teac,
 	teac_open_session,
@@ -372,7 +372,7 @@ speed_select_teac(SCSI *usalp, cdr_t *dp
 }
 
 static int 
-select_secsize_teac(SCSI *usalp, track_t *trackp)
+select_secsize_teac(SCSI *usalp, wodim_track_t *trackp)
 {
 	struct scsi_mode_data md;
 	int	count = sizeof (struct scsi_mode_header) +
@@ -403,7 +403,7 @@ select_secsize_teac(SCSI *usalp, track_t
 }
 
 static int 
-next_wr_addr_jvc(SCSI *usalp, track_t *trackp, long *ap)
+next_wr_addr_jvc(SCSI *usalp, wodim_track_t *trackp, long *ap)
 {
 	if (trackp != 0 && trackp->track > 0) {
 		*ap = lba_addr;
@@ -473,7 +473,7 @@ cdr_write_teac(SCSI *usalp,
 }
 
 static int 
-open_track_jvc(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_track_jvc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	int	status;
 	long	blocks;
@@ -601,7 +601,7 @@ if (!is_last(trackp) && trackp[1].pregap
 static	char	sector[3000];
 
 static int 
-close_track_teac(SCSI *usalp, cdr_t *dp, track_t *trackp)
+close_track_teac(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	int	ret = 0;
 
@@ -698,7 +698,7 @@ teac_attach(SCSI *usalp, cdr_t *dp)
 }
 
 static int 
-teac_fixation(SCSI *usalp, cdr_t *dp, track_t *trackp)
+teac_fixation(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	long	lba;
 	int	status;
@@ -811,7 +811,7 @@ extern	char	*buf;
 }
 
 static int 
-teac_open_session(SCSI *usalp, cdr_t *dp, track_t *trackp)
+teac_open_session(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	Uint	i;
 
diff -up cdiopara/wodim/drv_mmc.c.wrk cdiopara/wodim/drv_mmc.c
--- cdiopara/wodim/drv_mmc.c.wrk	2013-06-25 18:24:35.494485316 +0200
+++ cdiopara/wodim/drv_mmc.c	2013-06-25 18:25:57.345350411 +0200
@@ -110,18 +110,18 @@ static	int	speed_select_mmc(SCSI *usalp,
 static  int   speed_select_mdvd(SCSI *usalp, cdr_t *dp, int *speedp);
 static	int	mmc_set_speed(SCSI *usalp, int readspeed, int writespeed, 
 									  int rotctl);
-static	int	next_wr_addr_mmc(SCSI *usalp, track_t *trackp, long *ap);
-static  int   next_wr_addr_mdvd(SCSI *usalp, track_t *trackp, long *ap);
-static	int	write_leadin_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	open_track_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static  int   open_track_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	close_track_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static  int   close_track_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp); 
-static	int	open_session_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static  int   open_session_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp);
+static	int	next_wr_addr_mmc(SCSI *usalp, wodim_track_t *trackp, long *ap);
+static  int   next_wr_addr_mdvd(SCSI *usalp, wodim_track_t *trackp, long *ap);
+static	int	write_leadin_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	open_track_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static  int   open_track_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	close_track_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static  int   close_track_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); 
+static	int	open_session_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static  int   open_session_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static	int	waitfix_mmc(SCSI *usalp, int secs);
-static	int	fixate_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static  int   fixate_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp);
+static	int	fixate_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static  int   fixate_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static	int	blank_mmc(SCSI *usalp, cdr_t *dp, long addr, int blanktype);
 static	int	format_mdvd(SCSI *usalp, cdr_t *dp, int formattype);
 static	int	send_opc_mmc(SCSI *usalp, caddr_t, int cnt, int doopc);
@@ -130,10 +130,10 @@ static	int	opt1_mdvd(SCSI *usalp, cdr_t
 static	int	opt2_mmc(SCSI *usalp, cdr_t *dp);
 static	int	scsi_sony_write(SCSI *usalp, caddr_t bp, long sectaddr, long size, 
 										 int blocks, BOOL islast);
-static	int	gen_cue_mmc(track_t *trackp, void *vcuep, BOOL needgap);
+static	int	gen_cue_mmc(wodim_track_t *trackp, void *vcuep, BOOL needgap);
 static	void	fillcue(struct mmc_cue *cp, int ca, int tno, int idx, int dataform,
-							 int scms, msf_t *mp);
-static	int	send_cue_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp);
+							 int scms, wodim_msf_t *mp);
+static	int	send_cue_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static 	int	stats_mmc(SCSI *usalp, cdr_t *dp);
 static 	BOOL	mmc_isplextor(SCSI *usalp);
 static 	BOOL	mmc_isyamaha(SCSI *usalp);
@@ -251,8 +251,8 @@ cdr_t   cdr_mdvd = {
 	next_wr_addr_mdvd,
 	(int(*)(SCSI *, Ulong))cmd_ill,   /* reserve_track        */
 	scsi_cdr_write,
-	(int(*)__PR((track_t *, void *, BOOL)))cmd_dummy, /* gen_cue */
-	(int(*)__PR((SCSI *usalp, cdr_t *, track_t *)))cmd_dummy, /* send_cue */
+	(int(*)__PR((wodim_track_t *, void *, BOOL)))cmd_dummy, /* gen_cue */
+	(int(*)__PR((SCSI *usalp, cdr_t *, wodim_track_t *)))cmd_dummy, /* send_cue */
 	write_leadin_mmc,
 	open_track_mdvd,
 	close_track_mdvd,
@@ -337,19 +337,19 @@ cdr_t	cdr_cd = {
 	(int(*)(SCSI *, cdr_t *, int))cmd_dummy,	/* recover	*/
 	speed_select_mmc,
 	select_secsize,
-	(int(*)(SCSI *usalp, track_t *, long *))cmd_ill,	/* next_wr_addr		*/
+	(int(*)(SCSI *usalp, wodim_track_t *, long *))cmd_ill,	/* next_wr_addr		*/
 	(int(*)(SCSI *, Ulong))cmd_ill,	/* reserve_track	*/
 	scsi_cdr_write,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_mmc,
 	close_track_mmc,
-	(int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset,
-	(int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy,	/* fixation */
+	(int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy,	/* fixation */
 	cmd_dummy,					/* stats	*/
 	blank_dummy,
 	format_dummy,
@@ -381,19 +381,19 @@ cdr_t	cdr_oldcd = {
 	(int(*)(SCSI *, cdr_t *, int))cmd_dummy,	/* recover	*/
 	speed_select_mmc,
 	select_secsize,
-	(int(*)(SCSI *usal, track_t *, long *))cmd_ill,	/* next_wr_addr		*/
+	(int(*)(SCSI *usal, wodim_track_t *, long *))cmd_ill,	/* next_wr_addr		*/
 	(int(*)(SCSI *, Ulong))cmd_ill,	/* reserve_track	*/
 	scsi_cdr_write,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_mmc,
 	close_track_mmc,
-	(int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
-	(int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy,	/* fixation */
+	(int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy,	/* fixation */
 	cmd_dummy,					/* stats	*/
 	blank_dummy,
 	format_dummy,
@@ -426,19 +426,19 @@ cdr_t	cdr_cd_dvd = {
 	(int(*)(SCSI *, cdr_t *, int))cmd_dummy,	/* recover	*/
 	speed_select_mmc,
 	select_secsize,
-	(int(*)(SCSI *usalp, track_t *, long *))cmd_ill,	/* next_wr_addr		*/
+	(int(*)(SCSI *usalp, wodim_track_t *, long *))cmd_ill,	/* next_wr_addr		*/
 	(int(*)(SCSI *, Ulong))cmd_ill,	/* reserve_track	*/
 	scsi_cdr_write,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_mmc,
 	close_track_mmc,
-	(int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset,
-	(int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy,	/* fixation */
+	(int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy,	/* fixation */
 	cmd_dummy,					/* stats	*/
 	blank_dummy,
 	format_dummy,
@@ -1549,7 +1549,7 @@ extern	char	*buf;
 	dstat_t	*dsp = dp->cdr_dstat;
 	struct disk_info *dip;
 	Uchar	mode[0x100];
-	msf_t	msf;
+	wodim_msf_t	msf;
 	BOOL	did_atip = FALSE;
 	BOOL	did_dummy = FALSE;
 	int 	rplus;
@@ -2116,7 +2116,7 @@ speed_select_mdvd(SCSI *usalp, cdr_t *dp
 }
 
 static int 
-next_wr_addr_mmc(SCSI *usalp, track_t *trackp, long *ap)
+next_wr_addr_mmc(SCSI *usalp, wodim_track_t *trackp, long *ap)
 {
 	struct	track_info	track_info;
 	long	next_addr;
@@ -2157,7 +2157,7 @@ next_wr_addr_mmc(SCSI *usalp, track_t *t
 }
 
 static int 
-write_leadin_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp)
+write_leadin_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	Uint	i;
 	long	startsec = 0L;
@@ -2247,7 +2247,7 @@ int	st2mode[] = {
 };
 
 static int 
-next_wr_addr_mdvd(SCSI *usalp, track_t *trackp, long *ap)
+next_wr_addr_mdvd(SCSI *usalp, wodim_track_t *trackp, long *ap)
 {
 	int     track=0;
 	struct	track_info	track_info;
@@ -2287,7 +2287,7 @@ next_wr_addr_mdvd(SCSI *usalp, track_t *
 }
 
 static int 
-open_track_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_track_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	Uchar	mode[0x100];
 	int	len;
@@ -2364,7 +2364,7 @@ open_track_mmc(SCSI *usalp, cdr_t *dp, t
 }
 
 static int 
-open_track_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_track_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	Uchar	mode[0x100];
 	int	len;
@@ -2400,7 +2400,7 @@ open_track_mdvd(SCSI *usalp, cdr_t *dp,
 }
 
 static int 
-close_track_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp)
+close_track_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	int	ret;
 
@@ -2423,7 +2423,7 @@ close_track_mmc(SCSI *usalp, cdr_t *dp,
 }
 
 static int 
-close_track_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp)
+close_track_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	int	ret;
 	if (!is_packet(trackp))
@@ -2454,7 +2454,7 @@ int	toc2sess[] = {
 };
 
 static int 
-open_session_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_session_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	Uchar	mode[0x100];
 	int	len;
@@ -2523,7 +2523,7 @@ open_session_mmc(SCSI *usalp, cdr_t *dp,
 }
 
 static int 
-open_session_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_session_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	Uchar	mode[0x100];
 	int	tracks = trackp->tracks;
@@ -2633,7 +2633,7 @@ waitfix_mmc(SCSI *usalp, int secs)
 }
 
 static int 
-fixate_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp)
+fixate_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	int	ret = 0;
 	int	key = 0;
@@ -2738,7 +2738,7 @@ fixate_mmc(SCSI *usalp, cdr_t *dp, track
 }
 
 static int 
-fixate_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp)
+fixate_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	int ret;
 	if (scsi_flush_cache(usalp, (dp->cdr_cmdflags&F_IMMED) != 0) < 0) {
@@ -2960,7 +2960,7 @@ opt1_mmc(SCSI *usalp, cdr_t *dp)
 		}
 		dp->cdr_dstat->ds_cdrflags = oflags;
 		if (oflags & RF_PRATIP) {
-			msf_t   msf;
+			wodim_msf_t   msf;
 			lba_to_msf(dp->cdr_dstat->ds_first_leadin, &msf);
 			printf("New start of lead in: %ld (%02d:%02d/%02d)\n",
 				(long)dp->cdr_dstat->ds_first_leadin,
@@ -2998,7 +2998,7 @@ opt1_mmc(SCSI *usalp, cdr_t *dp)
 		else
 			gcode = gigarec_plextor(usalp, 0);
 		if (gcode != 0) {
-			msf_t   msf;
+			wodim_msf_t   msf;
 
 			dp->cdr_dstat->ds_first_leadin =
 					gigarec_mult(gcode, dp->cdr_dstat->ds_first_leadin);
@@ -3126,7 +3126,7 @@ opt1_mdvd(SCSI *usalp, cdr_t *dp)
 		}
 		dp->cdr_dstat->ds_cdrflags = oflags;
 		if (oflags & RF_PRATIP) {
-			msf_t   msf;
+			wodim_msf_t   msf;
 			lba_to_msf(dp->cdr_dstat->ds_first_leadin, &msf);
 			printf("New start of lead in: %ld (%02d:%02d/%02d)\n",
 				(long)dp->cdr_dstat->ds_first_leadin,
@@ -3175,7 +3175,7 @@ Uchar	db2df[] = {
 };
 
 static int 
-gen_cue_mmc(track_t *trackp, void *vcuep, BOOL needgap)
+gen_cue_mmc(wodim_track_t *trackp, void *vcuep, BOOL needgap)
 {
 	int	tracks = trackp->tracks;
 	int	i;
@@ -3185,7 +3185,7 @@ gen_cue_mmc(track_t *trackp, void *vcuep
 	int	ncue = 0;
 	int	icue = 0;
 	int	pgsize;
-	msf_t	m;
+	wodim_msf_t	m;
 	int	ctl;
 	int	df;
 	int	scms;
@@ -3318,7 +3318,7 @@ fillcue(struct mmc_cue *cp  /* The targe
         int idx             /* Index for this entry */, 
         int dataform        /* Data format for this entry */, 
         int scms            /* Serial copy management */, 
-        msf_t *mp           /* MSF value for this entry */)
+        wodim_msf_t *mp           /* MSF value for this entry */)
 {
 	cp->cs_ctladr = ca;		/* XXX wie lead in */
 	cp->cs_tno = tno;
@@ -3331,7 +3331,7 @@ fillcue(struct mmc_cue *cp  /* The targe
 }
 
 static int 
-send_cue_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp)
+send_cue_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	struct mmc_cue	*cp;
 	int		ncue;
diff -up cdiopara/wodim/drv_philips.c.wrk cdiopara/wodim/drv_philips.c
--- cdiopara/wodim/drv_philips.c.wrk	2013-06-25 18:34:35.454829395 +0200
+++ cdiopara/wodim/drv_philips.c	2013-06-25 18:36:03.525761201 +0200
@@ -67,18 +67,18 @@ static	int	philips_getdisktype(SCSI *usa
 static	BOOL	capacity_philips(SCSI *usalp, long *lp);
 static	int	first_writable_addr_philips(SCSI *usalp, long *, int, int, int, 
 														 int);
-static	int	next_wr_addr_philips(SCSI *usalp, track_t *trackp, long *ap);
+static	int	next_wr_addr_philips(SCSI *usalp, wodim_track_t *trackp, long *ap);
 static	int	reserve_track_philips(SCSI *usalp, unsigned long);
 static	int	scsi_cdr_write_philips(SCSI *usalp, caddr_t bp, long sectaddr, 
 												  long size, int blocks, BOOL islast);
 static	int	write_track_info_philips(SCSI *usalp, int);
 static	int	write_track_philips(SCSI *usalp, long, int);
-static	int	open_track_philips(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	open_track_plasmon(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	open_track_oldphilips(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	open_track_yamaha(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	close_track_philips(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	fixation_philips(SCSI *usalp, cdr_t *dp, track_t *trackp);
+static	int	open_track_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	open_track_plasmon(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	open_track_oldphilips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	open_track_yamaha(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	close_track_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	fixation_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 
 static	int	philips_attach(SCSI *usalp, cdr_t *);
 static	int	plasmon_attach(SCSI *usalp, cdr_t *);
@@ -159,12 +159,12 @@ cdr_t	cdr_philips_cdd521O = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_oldphilips,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -200,12 +200,12 @@ cdr_t	cdr_philips_dumb = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_oldphilips,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -241,12 +241,12 @@ cdr_t	cdr_philips_cdd521 = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_philips,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -283,12 +283,12 @@ cdr_t	cdr_philips_cdd522 = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_philips,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -324,12 +324,12 @@ cdr_t	cdr_tyuden_ew50 = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_philips,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -365,12 +365,12 @@ cdr_t	cdr_kodak_pcd600 = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_oldphilips,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -406,12 +406,12 @@ cdr_t	cdr_plasmon_rf4100 = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_plasmon,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -447,13 +447,13 @@ cdr_t	cdr_pioneer_dw_s114x = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 /*	open_track_yamaha,*/
 /*???*/	open_track_oldphilips,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -490,12 +490,12 @@ cdr_t	cdr_yamaha_cdr100 = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_yamaha,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -532,12 +532,12 @@ cdr_t	cdr_ricoh_ro1060 = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_philips,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -574,12 +574,12 @@ cdr_t	cdr_ricoh_ro1420 = {
 	next_wr_addr_philips,
 	reserve_track_philips,
 	scsi_cdr_write_philips,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
 	no_sendcue,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_philips,
 	close_track_philips,
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy,
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy,
 	cmd_dummy,
 	cmd_dummy,					/* abort	*/
 	read_session_offset_philips,
@@ -835,11 +835,11 @@ philips_getdisktype(SCSI *usalp, cdr_t *
 	long	dummy;
 	long	lilen;
 	long	lolen;
-	msf_t	msf;
+	wodim_msf_t	msf;
 	int	audio = -1;
 
 	usalp->silent++;
-	dummy = (*dp->cdr_next_wr_address)(usalp, (track_t *)0, &lilen);
+	dummy = (*dp->cdr_next_wr_address)(usalp, (wodim_track_t *)0, &lilen);
 	usalp->silent--;
 
 	/*
@@ -972,7 +972,7 @@ first_writable_addr_philips(SCSI *usalp,
 }
 
 static int 
-next_wr_addr_philips(SCSI *usalp, track_t *trackp, long *ap)
+next_wr_addr_philips(SCSI *usalp, wodim_track_t *trackp, long *ap)
 {
 
 /*	if (first_writable_addr_philips(usalp, ap, 0, 0, 0, 1) < 0)*/
@@ -1054,7 +1054,7 @@ write_track_philips(SCSI *usalp,
 }
 
 static int 
-open_track_philips(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_track_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	if (select_secsize(usalp, trackp->secsize) < 0)
 		return (-1);
@@ -1069,7 +1069,7 @@ open_track_philips(SCSI *usalp, cdr_t *d
 }
 
 static int 
-open_track_plasmon(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_track_plasmon(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	if (select_secsize(usalp, trackp->secsize) < 0)
 		return (-1);
@@ -1081,7 +1081,7 @@ open_track_plasmon(SCSI *usalp, cdr_t *d
 }
 
 static int 
-open_track_oldphilips(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_track_oldphilips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	if (write_track_philips(usalp, 0, trackp->sectype) < 0)
 		return (-1);
@@ -1090,7 +1090,7 @@ open_track_oldphilips(SCSI *usalp, cdr_t
 }
 
 static int 
-open_track_yamaha(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_track_yamaha(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	if (select_secsize(usalp, trackp->secsize) < 0)
 		return (-1);
@@ -1102,12 +1102,12 @@ open_track_yamaha(SCSI *usalp, cdr_t *dp
 }
 
 static int 
-close_track_philips(SCSI *usalp, cdr_t *dp, track_t *trackp)
+close_track_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	return (scsi_flush_cache(usalp, FALSE));
 }
 
-static int fixation_philips(SCSI *usalp, cdr_t *dp, track_t *trackp)
+static int fixation_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	register struct	usal_cmd	*scmd = usalp->scmd;
 
diff -up cdiopara/wodim/drv_simul.c.wrk cdiopara/wodim/drv_simul.c
--- cdiopara/wodim/drv_simul.c.wrk	2013-06-25 18:37:30.686683498 +0200
+++ cdiopara/wodim/drv_simul.c	2013-06-25 18:38:09.542094684 +0200
@@ -66,13 +66,13 @@ static	cdr_t	*identify_simul(SCSI *usalp
 static	int	init_simul(SCSI *usalp, cdr_t *dp);
 static	int	getdisktype_simul(SCSI *usalp, cdr_t *dp);
 static	int	speed_select_simul(SCSI *usalp, cdr_t *dp, int *speedp);
-static	int	next_wr_addr_simul(SCSI *usalp, track_t *trackp, long *ap);
+static	int	next_wr_addr_simul(SCSI *usalp, wodim_track_t *trackp, long *ap);
 static	int	cdr_write_simul(SCSI *usalp, caddr_t bp, long sectaddr, long size, 
 										 int blocks, BOOL islast);
-static	int	open_track_simul(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	close_track_simul(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	open_session_simul(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	fixate_simul(SCSI *usalp, cdr_t *dp, track_t *trackp);
+static	int	open_track_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	close_track_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	open_session_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	fixate_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static	void	tv_sub(struct timeval *tvp1, struct timeval *tvp2);
 
 static int simul_load(SCSI *usalp, cdr_t *dp)
@@ -108,9 +108,9 @@ cdr_t	cdr_cdr_simul = {
 	next_wr_addr_simul,
 	(int(*)(SCSI *, Ulong))cmd_ill,	/* reserve_track	*/
 	cdr_write_simul,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
-	(int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, /* send_cue */
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, /* send_cue */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_simul,
 	close_track_simul,
 	open_session_simul,
@@ -149,9 +149,9 @@ cdr_t	cdr_dvd_simul = {
 	next_wr_addr_simul,
 	(int(*)(SCSI *, Ulong))cmd_ill,	/* reserve_track	*/
 	cdr_write_simul,
-	(int(*)(track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
-	(int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, /* send_cue */
-	(int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */
+	(int(*)(wodim_track_t *, void *, BOOL))cmd_dummy,	/* gen_cue */
+	(int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, /* send_cue */
+	(int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */
 	open_track_simul,
 	close_track_simul,
 	open_session_simul,
@@ -249,7 +249,7 @@ speed_select_simul(SCSI *usalp, cdr_t *d
 }
 
 static int
-next_wr_addr_simul(SCSI *usalp, track_t *trackp, long *ap)
+next_wr_addr_simul(SCSI *usalp, wodim_track_t *trackp, long *ap)
 {
 	/*
 	 * This will most likely not 100% correct for TAO CDs
@@ -345,14 +345,14 @@ cdr_write_simul(SCSI *usalp, caddr_t bp
 }
 
 static int
-open_track_simul(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_track_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	sleep_min = 999 * 1000000;
 	return (0);
 }
 
 static int
-close_track_simul(SCSI *usalp, cdr_t *dp, track_t *trackp)
+close_track_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	if (lverbose) {
 		printf("Remaining reserve time in drive buffer: %d.%3.3d ms\n",
@@ -368,14 +368,14 @@ close_track_simul(SCSI *usalp, cdr_t *dp
 }
 
 static int
-open_session_simul(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_session_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	simul_nwa = 0L;
 	return (0);
 }
 
 static int
-fixate_simul(SCSI *usalp, cdr_t *dp, track_t *trackp)
+fixate_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	return (0);
 }
diff -up cdiopara/wodim/drv_sony.c.wrk cdiopara/wodim/drv_sony.c
--- cdiopara/wodim/drv_sony.c.wrk	2013-06-25 18:42:41.039821118 +0200
+++ cdiopara/wodim/drv_sony.c	2013-06-25 18:43:35.479307474 +0200
@@ -213,12 +213,12 @@ static	int	write_continue_sony(SCSI *usa
 											  long size, int blocks, BOOL islast);
 static	int	discontinue_sony(SCSI *usalp);
 static	int	write_track_sony(SCSI *usalp, long track, int sectype);
-static	int	close_track_sony(SCSI *usalp, cdr_t *dp, track_t *trackp);
+static	int	close_track_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static	int	flush_sony(SCSI *usalp, int track);
-static	int	finalize_sony(SCSI *usalp, cdr_t *dp, track_t *trackp);
+static	int	finalize_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static	int	recover_sony(SCSI *usalp, cdr_t *dp, int track);
 static	int	set_wr_parameter_sony(SCSI *usalp, caddr_t bp, int size);
-static	int	next_wr_addr_sony(SCSI *usalp, track_t *trackp, long *ap);
+static	int	next_wr_addr_sony(SCSI *usalp, wodim_track_t *trackp, long *ap);
 static	int	reserve_track_sony(SCSI *usalp, unsigned long len);
 static	int	init_sony(SCSI *usalp, cdr_t *dp);
 static	int	getdisktype_sony(SCSI *usalp, cdr_t *dp);
@@ -229,14 +229,14 @@ static	int	next_writable_address_sony(SC
 														int sectype, int tracktype);
 static	int	new_track_sony(SCSI *usalp, int track, int sectype, 
 										int tracktype);
-static	int	open_track_sony(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	open_session_sony(SCSI *usalp, cdr_t *dp, track_t *trackp);
+static	int	open_track_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	open_session_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static	int	abort_session_sony(SCSI *usalp, cdr_t *dp);
 static	int	get_page22_sony(SCSI *usalp, char *mode);
-static	int	gen_cue_sony(track_t *trackp, void *vcuep, BOOL needgap);
-static	void	fillcue(struct sony_cue *cp, int ca, int tno, int idx, int dataform, int scms, msf_t *mp);
-static	int	send_cue_sony(SCSI *usalp, cdr_t *dp, track_t *trackp);
-static	int	write_leadin_sony(SCSI *usalp, cdr_t *dp, track_t *trackp);
+static	int	gen_cue_sony(wodim_track_t *trackp, void *vcuep, BOOL needgap);
+static	void	fillcue(struct sony_cue *cp, int ca, int tno, int idx, int dataform, int scms, wodim_msf_t *mp);
+static	int	send_cue_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+static	int	write_leadin_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 static	int	sony_attach(SCSI *usalp, cdr_t *dp);
 #ifdef	SONY_DEBUG
 static	void	print_sony_mp22(struct sony_924_mode_page_22 *xp, int len);
@@ -383,7 +383,7 @@ write_track_sony(SCSI *usalp,
 
 /* XXX NOCH NICHT FERTIG */
 static int
-close_track_sony(SCSI *usalp, cdr_t *dp, track_t *trackp)
+close_track_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	register struct	usal_cmd	*scmd = usalp->scmd;
 	int	track = 0;
@@ -420,7 +420,7 @@ close_track_sony(SCSI *usalp, cdr_t *dp,
 }
 
 static int
-finalize_sony(SCSI *usalp, cdr_t *dp, track_t *trackp)
+finalize_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	register struct	usal_cmd	*scmd = usalp->scmd;
 	int	dummy = track_base(trackp)->tracktype & TOCF_DUMMY;
@@ -517,7 +517,7 @@ set_wr_parameter_sony(SCSI *usalp, caddr
 }
 
 static int
-next_wr_addr_sony(SCSI *usalp, track_t *trackp, long *ap)
+next_wr_addr_sony(SCSI *usalp, wodim_track_t *trackp, long *ap)
 {
 	if (next_writable_address_sony(usalp, ap, 0, 0, 0) < 0)
 		return (-1);
@@ -559,7 +559,7 @@ getdisktype_sony(SCSI *usalp, cdr_t *dp)
 	dstat_t	*dsp = dp->cdr_dstat;
 	long	dummy;
 	long	lst;
-	msf_t	msf;
+	wodim_msf_t	msf;
 
 	char			mode[256];
 	struct scsi_mode_page_header	*mp;
@@ -626,7 +626,7 @@ getdisktype_sony(SCSI *usalp, cdr_t *dp)
 static void
 di_to_dstat_sony(struct sony_924_mode_page_22 *dip, dstat_t *dsp)
 {
-	msf_t	msf;
+	wodim_msf_t	msf;
 
 	dsp->ds_diskid = a_to_u_4_byte(dip->disk_id_code);
 #ifdef	PROTOTYPES
@@ -841,7 +841,7 @@ new_track_sony(SCSI *usalp, int track, i
 }
 
 static int
-open_track_sony(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_track_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	if (!is_tao(trackp) && !is_packet(trackp)) {
 		if (trackp->pregapsize > 0 && (trackp->flags & TI_PREGAP) == 0) {
@@ -874,7 +874,7 @@ open_track_sony(SCSI *usalp, cdr_t *dp,
 }
 
 static int
-open_session_sony(SCSI *usalp, cdr_t *dp, track_t *trackp)
+open_session_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	struct	scsi_mode_page_header *mp;
 	char			mode[256];
@@ -994,7 +994,7 @@ static Uchar	db2df[] = {
 };
 
 static int
-gen_cue_sony(track_t *trackp, void *vcuep, BOOL needgap)
+gen_cue_sony(wodim_track_t *trackp, void *vcuep, BOOL needgap)
 {
 	int	tracks = trackp->tracks;
 	int	i;
@@ -1004,7 +1004,7 @@ gen_cue_sony(track_t *trackp, void *vcue
 	int	ncue = 0;
 	int	icue = 0;
 	int	pgsize;
-	msf_t	m;
+	wodim_msf_t	m;
 	int	ctl;
 	int	df;
 	int	scms;
@@ -1110,7 +1110,7 @@ fillcue(struct sony_cue *cp     /* The t
         int idx                 /* Index for this entry */, 
         int dataform            /* Data format for this entry */, 
         int scms                /* Serial copy management */, 
-        msf_t *mp               /* MSF value for this entry */)
+        wodim_msf_t *mp               /* MSF value for this entry */)
 {
 	cp->cs_ctladr = ca;
 	if (tno <= 99)
@@ -1126,7 +1126,7 @@ fillcue(struct sony_cue *cp     /* The t
 }
 
 static int
-send_cue_sony(SCSI *usalp, cdr_t *dp, track_t *trackp)
+send_cue_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	struct sony_cue *cp;
 	int		ncue;
@@ -1169,7 +1169,7 @@ send_cue_sony(SCSI *usalp, cdr_t *dp, tr
 }
 
 static int
-write_leadin_sony(SCSI *usalp, cdr_t *dp, track_t *trackp)
+write_leadin_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	Uint	i;
 	long	startsec = 0L;
diff -up cdiopara/wodim/fifo.c.wrk cdiopara/wodim/fifo.c
--- cdiopara/wodim/fifo.c.wrk	2013-06-25 18:47:09.024350983 +0200
+++ cdiopara/wodim/fifo.c	2013-06-25 18:47:35.540614992 +0200
@@ -194,15 +194,15 @@ static	char	*mkbeosshm(int size);
 static	void	beosshm_child(void);
 #endif
 
-BOOL	init_faio(track_t *trackp, int);
+BOOL	init_faio(wodim_track_t *trackp, int);
 BOOL	await_faio(void);
 void	kill_faio(void);
 int	wait_faio(void);
-static	void	faio_reader(track_t *trackp);
-static	void	faio_read_track(track_t *trackp);
+static	void	faio_reader(wodim_track_t *trackp);
+static	void	faio_read_track(wodim_track_t *trackp);
 static	void	faio_wait_on_buffer(faio_t *f, fowner_t s, unsigned long delay,
 											  unsigned long max_wait);
-static	int	faio_read_segment(int fd, faio_t *f, track_t *track, long secno, 
+static	int	faio_read_segment(int fd, faio_t *f, wodim_track_t *track, long secno, 
 											int len);
 static	faio_t	*faio_ref(int n);
 int	faio_read_buf(int f, char *bp, int size);
@@ -425,7 +425,7 @@ static	BOOL	faio_didwait;
 
 
 BOOL
-init_faio(track_t *trackp, int bufsize)
+init_faio(wodim_track_t *trackp, int bufsize)
 {
 	int	n;
 	faio_t	*f;
@@ -582,7 +582,7 @@ wait_faio()
 }
 
 static void
-faio_reader(track_t *trackp)
+faio_reader(wodim_track_t *trackp)
 {
 	/* This function should not return, but _exit. */
 	Uint	trackno;
@@ -623,7 +623,7 @@ faio_ref(int n)
 
 
 static void
-faio_read_track(track_t *trackp)
+faio_read_track(wodim_track_t *trackp)
 {
 	int	fd = -1;
 	int	bytespt = trackp->secsize * trackp->secspt;
@@ -704,7 +704,7 @@ faio_wait_on_buffer(faio_t *f, fowner_t
 }
 
 static int
-faio_read_segment(int fd, faio_t *f, track_t *trackp, long secno, int len)
+faio_read_segment(int fd, faio_t *f, wodim_track_t *trackp, long secno, int len)
 {
 	int l;
 
@@ -821,7 +821,7 @@ fifo_percent(BOOL addone)
 #include "wodim.h"
 
 void	init_fifo(long);
-BOOL	init_faio(track_t *track, int);
+BOOL	init_faio(wodim_track_t *track, int);
 BOOL	await_faio(void);
 void	kill_faio(void);
 int	wait_faio(void);
@@ -836,7 +836,7 @@ void init_fifo(long fs)
 	errmsgno(EX_BAD, "Fifo not supported.\n");
 }
 
-BOOL init_faio(track_t *track, 
+BOOL init_faio(wodim_track_t *track, 
                int bufsize /* The size of a single transfer buffer */)
 {
 	return (FALSE);
diff -up cdiopara/wodim/movesect.c.wrk cdiopara/wodim/movesect.c
--- cdiopara/wodim/movesect.c.wrk	2013-06-25 15:42:48.986166461 +0200
+++ cdiopara/wodim/movesect.c	2013-06-25 15:43:07.045269496 +0200
@@ -37,7 +37,7 @@
 #include "wodim.h"
 #include "movesect.h"
 
-void	scatter_secs(track_t *trackp, char *bp, int nsecs);
+void	scatter_secs(wodim_track_t *trackp, char *bp, int nsecs);
 
 /*
  * Scatter input sector size records over buffer to make them
@@ -69,7 +69,7 @@ void	scatter_secs(track_t *trackp, char
  *	Sector_0 must never be moved.
  */
 void
-scatter_secs(track_t *trackp, char *bp, int nsecs)
+scatter_secs(wodim_track_t *trackp, char *bp, int nsecs)
 {
 	char	*from;
 	char	*to;
diff -up cdiopara/wodim/movesect.h.wrk cdiopara/wodim/movesect.h
--- cdiopara/wodim/movesect.h.wrk	2013-06-25 15:42:19.921000633 +0200
+++ cdiopara/wodim/movesect.h	2013-06-25 15:42:35.156087555 +0200
@@ -40,6 +40,6 @@
 #define	fill2048(p, val)	fillbytes(p, 2048, val)
 #define	fill96(p, val)		fillbytes(p, 96, val)
 
-extern	void	scatter_secs(track_t *trackp, char *bp, int nsecs);
+extern	void	scatter_secs(wodim_track_t *trackp, char *bp, int nsecs);
 
 #endif
diff -up cdiopara/wodim/sector.c.wrk cdiopara/wodim/sector.c
--- cdiopara/wodim/sector.c.wrk	2013-06-25 18:53:58.999549774 +0200
+++ cdiopara/wodim/sector.c	2013-06-25 18:54:25.509826416 +0200
@@ -55,8 +55,8 @@
 #endif
 
 int	encspeed(BOOL be_verbose);
-void	encsectors(track_t *trackp, Uchar *bp, int address, int nsecs);
-void	scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs);
+void	encsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs);
+void	scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs);
 void	encodesector(Uchar *sp, int sectype, int address);
 void	fillsector(Uchar *sp, int sectype, int address);
 
@@ -105,7 +105,7 @@ void	fillsector(Uchar *sp, int sectype,
 int
 encspeed(BOOL be_verbose)
 {
-	track_t	t[1];
+	wodim_track_t	t[1];
 	Uchar	sect[2352];
 	int	i;
 	struct	timeval tv;
@@ -141,7 +141,7 @@ encspeed(BOOL be_verbose)
  * Encode sectors according to trackp->sectype
  */
 void
-encsectors(track_t *trackp, Uchar *bp, int address, int nsecs)
+encsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs)
 {
 	int	sectype = trackp->sectype;
 
@@ -169,7 +169,7 @@ encsectors(track_t *trackp, Uchar *bp, i
  * Scramble data sectors without coding (needed for clone writing)
  */
 void
-scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs)
+scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs)
 {
 	/*
 	 * In Clone write mode, we cannot expect that the sector type
@@ -187,7 +187,7 @@ scrsectors(track_t *trackp, Uchar *bp, i
 }
 #else
 void
-scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs)
+scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs)
 {
 	comerrno(EX_BAD, "Cannot write in clone RAW mode.\n");
 }
diff -up cdiopara/wodim/subchan.c.wrk cdiopara/wodim/subchan.c
--- cdiopara/wodim/subchan.c.wrk	2013-06-27 15:23:49.864130939 +0200
+++ cdiopara/wodim/subchan.c	2013-06-27 15:24:59.699507721 +0200
@@ -43,14 +43,14 @@
 #include "wodim.h"
 #include "crc16.h"
 
-int	do_leadin(track_t *trackp);
-int	write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp, int leadinstart);
-int	write_leadout(SCSI *usalp, cdr_t *dp, track_t *trackp);
-void	fillsubch(track_t *trackp, Uchar *sp, int secno, int nsecs);
-void	filltpoint(Uchar *sub, int ctrl_adr, int point, msf_t *mp);
-void	fillttime(Uchar *sub, msf_t *mp);
-static	void	filldsubq(Uchar *sub, int ca, int t, int i, msf_t *mrp, 
-								 msf_t *mp);
+int	do_leadin(wodim_track_t *trackp);
+int	write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, int leadinstart);
+int	write_leadout(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
+void	fillsubch(wodim_track_t *trackp, Uchar *sp, int secno, int nsecs);
+void	filltpoint(Uchar *sub, int ctrl_adr, int point, wodim_msf_t *mp);
+void	fillttime(Uchar *sub, wodim_msf_t *mp);
+static	void	filldsubq(Uchar *sub, int ca, int t, int i, wodim_msf_t *mrp, 
+								 wodim_msf_t *mp);
 static	void	fillmcn(Uchar *sub, Uchar *mcn);
 static	void	fillisrc(Uchar *sub, Uchar *isrc);
 static	int	ascii2q(int c);
@@ -58,7 +58,7 @@ static	void	qpto16(Uchar *sub, Uchar *su
 void	qpto96(Uchar *sub, Uchar *subq, int dop);
 void	addrw(Uchar *sub, Uchar	*subrwptr);
 void	qwto16(Uchar *subq, Uchar *subptr);
-void	subrecodesecs(track_t *trackp, Uchar *bp, int address, int nsecs);
+void	subrecodesecs(wodim_track_t *trackp, Uchar *bp, int address, int nsecs);
 static	void	subinterleave(Uchar *sub);
 
 /*#define	TEST_CRC*/
@@ -93,10 +93,10 @@ extern	int	xdebug;
  * Prepare master sunchannel data for RAW TOC.
  */
 int
-do_leadin(track_t *trackp)
+do_leadin(wodim_track_t *trackp)
 {
 	int	tracks = trackp->tracks;
-	msf_t	m;
+	wodim_msf_t	m;
 	int	ctrl;
 	int	i;
 	int	toctype = trackp[0].tracktype & TOC_MASK;
@@ -183,9 +183,9 @@ do_leadin(track_t *trackp)
  * subchannel frames for the lead-in.
  */
 int
-write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp, int leadinstart)
+write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, int leadinstart)
 {
-	msf_t	m;
+	wodim_msf_t	m;
 	int	i;
 	Uint	j;
 	Uchar	*bp = usalp->bufptr;
@@ -198,7 +198,7 @@ write_leadin(SCSI *usalp, cdr_t *dp, tra
 	int	startsec;
 	long	bytes = 0L;
 	int	textoff = 0;
-	msf_t	msf;
+	wodim_msf_t	msf;
 
 	secsize = trackp[0].secsize;
 	secspt = trackp[0].secspt;
@@ -292,11 +292,11 @@ write_leadin(SCSI *usalp, cdr_t *dp, tra
  * Write Track 0xAA (lead-out)
  */
 int
-write_leadout(SCSI *usalp, cdr_t *dp, track_t *trackp)
+write_leadout(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	int	tracks = trackp->tracks;
-	msf_t	m;
-	msf_t	mr;
+	wodim_msf_t	m;
+	wodim_msf_t	mr;
 	int	ctrl;
 	int	i;
 	int	j;
@@ -313,7 +313,7 @@ write_leadout(SCSI *usalp, cdr_t *dp, tr
 	int	leadoutstart;
 	Uchar	sub[12];
 	BOOL	p;
-	msf_t	msf;
+	wodim_msf_t	msf;
 
 	fillbytes(sub, 12, '\0');
 
@@ -397,13 +397,13 @@ write_leadout(SCSI *usalp, cdr_t *dp, tr
  * the data part of a CD (bewteen lead-in and lead-out).
  */
 void
-fillsubch(track_t *trackp, 
+fillsubch(wodim_track_t *trackp, 
           Uchar *sp /* Sector data pointer  */, 
           int secno /* Starting sector #    */, 
           int nsecs /* # of sectors to fill */)
 {
-	msf_t	m;
-	msf_t	mr;
+	wodim_msf_t	m;
+	wodim_msf_t	mr;
 	int	ctrl;
 	int	i;
 	int	rsecno;
@@ -563,7 +563,7 @@ static	Uchar	lastindex = 255;
  * Ax Werte einfüllen.
  */
 void
-filltpoint(Uchar *sub, int ctrl_adr, int point, msf_t *mp)
+filltpoint(Uchar *sub, int ctrl_adr, int point, wodim_msf_t *mp)
 {
 	sub[0] = ctrl_adr;
 	sub[2] = point;
@@ -577,7 +577,7 @@ filltpoint(Uchar *sub, int ctrl_adr, int
  * Aktuelle Zeit in TOC Sub-Q einfüllen.
  */
 void
-fillttime(Uchar *sub, msf_t *mp)
+fillttime(Uchar *sub, wodim_msf_t *mp)
 {
 	sub[3] = to_bcd(mp->msf_min);
 	sub[4] = to_bcd(mp->msf_sec);
@@ -588,7 +588,7 @@ fillttime(Uchar *sub, msf_t *mp)
  * Q-Sub in Datenbereich füllen.
  */
 static void
-filldsubq(Uchar *sub, int ca, int t, int i, msf_t *mrp, msf_t *mp)
+filldsubq(Uchar *sub, int ca, int t, int i, wodim_msf_t *mrp, wodim_msf_t *mp)
 {
 	sub[0] = ca;
 	sub[1] = to_bcd(t);
@@ -856,7 +856,7 @@ qwto16(Uchar *subq, Uchar *subptr)
  * Recode subchannels of sectors from 2352 + 96 bytes to 2352 + 16 bytes
  */
 void
-subrecodesecs(track_t *trackp, Uchar *bp, int address, int nsecs)
+subrecodesecs(wodim_track_t *trackp, Uchar *bp, int address, int nsecs)
 {
 	bp += 2352;
 	while (--nsecs >= 0) {
@@ -867,7 +867,7 @@ subrecodesecs(track_t *trackp, Uchar *bp
 
 #ifndef	HAVE_LIB_EDC_ECC
 void
-encsectors(track_t *trackp, Uchar *bp, int address, int nsecs)
+encsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs)
 {
 	int	sectype = trackp->sectype;
 
@@ -878,7 +878,7 @@ encsectors(track_t *trackp, Uchar *bp, i
 }
 
 void
-scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs)
+scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs)
 {
 	comerrno(EX_BAD, "Cannot write in clone RAW mode.\n");
 }
diff -up cdiopara/wodim/wm_packet.c.wrk cdiopara/wodim/wm_packet.c
--- cdiopara/wodim/wm_packet.c.wrk	2013-06-27 15:26:58.973141891 +0200
+++ cdiopara/wodim/wm_packet.c	2013-06-27 15:27:22.066263842 +0200
@@ -51,10 +51,10 @@ extern	int	lverbose;
 
 extern	char	*buf;			/* The transfer buffer */
 
-int	write_packet_data(SCSI *usalp, cdr_t *dp, track_t *trackp);
+int	write_packet_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 
 int
-write_packet_data(SCSI *usalp, cdr_t *dp, track_t *trackp)
+write_packet_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	int	track = trackp->trackno;
 	int	f = -1;
diff -up cdiopara/wodim/wm_session.c.wrk cdiopara/wodim/wm_session.c
--- cdiopara/wodim/wm_session.c.wrk	2013-06-27 15:29:40.932998275 +0200
+++ cdiopara/wodim/wm_session.c	2013-06-27 15:30:03.907119952 +0200
@@ -48,4 +48,4 @@ extern	int	lverbose;
 
 extern	char	*buf;			/* The transfer buffer */
 
-int	write_session_data(SCSI *usalp, cdr_t *dp, track_t *trackp);
+int	write_session_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
diff -up cdiopara/wodim/wm_track.c.wrk cdiopara/wodim/wm_track.c
--- cdiopara/wodim/wm_track.c.wrk	2013-06-27 15:28:45.701705951 +0200
+++ cdiopara/wodim/wm_track.c	2013-06-27 15:29:29.673938661 +0200
@@ -47,4 +47,4 @@ extern	int	lverbose;
 
 extern	char	*buf;			/* The transfer buffer */
 
-int	write_track_data(cdr_t *dp, int track, track_t *trackp);
+int	write_track_data(cdr_t *dp, int track, wodim_track_t *trackp);
diff -up cdiopara/wodim/wodim.c.wrk cdiopara/wodim/wodim.c
--- cdiopara/wodim/wodim.c.wrk	2013-06-25 16:38:32.153811969 +0200
+++ cdiopara/wodim/wodim.c	2013-06-25 16:30:08.636892373 +0200
@@ -205,31 +205,31 @@ static	void	intfifo(int sig);
 static	void	exscsi(int excode, void *arg);
 static	void	excdr(int excode, void *arg);
 int	read_buf(int f, char *bp, int size);
-int	fill_buf(int f, track_t *trackp, long secno, char *bp, int size);
-int	get_buf(int f, track_t *trackp, long secno, char **bpp, int size);
+int	fill_buf(int f, wodim_track_t *trackp, long secno, char *bp, int size);
+int	get_buf(int f, wodim_track_t *trackp, long secno, char **bpp, int size);
 int	write_secs(SCSI *usalp, cdr_t *dp, char *bp, long startsec, int bytespt,
 					  int secspt, BOOL islast);
-static	int	write_track_data(SCSI *usalp, cdr_t *, track_t *);
-int	pad_track(SCSI *usalp, cdr_t *dp, track_t *trackp, long startsec, 
+static	int	write_track_data(SCSI *usalp, cdr_t *, wodim_track_t *);
+int	pad_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, long startsec, 
 					 Llong amt, BOOL dolast, Llong *bytesp);
-int	write_buf(SCSI *usalp, cdr_t *dp, track_t *trackp, char *bp, 
+int	write_buf(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, char *bp, 
 					 long startsec, Llong amt, int secsize, BOOL dolast, 
 					 Llong *bytesp);
-static	void	printdata(int, track_t *);
-static	void	printaudio(int, track_t *);
-static	void	checkfile(int, track_t *);
-static	int	checkfiles(int, track_t *);
-static	void	setleadinout(int, track_t *);
-static	void	setpregaps(int, track_t *);
-static	long	checktsize(int, track_t *);
-static	void	opentracks(track_t *);
-static	void	checksize(track_t *);
+static	void	printdata(int, wodim_track_t *);
+static	void	printaudio(int, wodim_track_t *);
+static	void	checkfile(int, wodim_track_t *);
+static	int	checkfiles(int, wodim_track_t *);
+static	void	setleadinout(int, wodim_track_t *);
+static	void	setpregaps(int, wodim_track_t *);
+static	long	checktsize(int, wodim_track_t *);
+static	void	opentracks(wodim_track_t *);
+static	void	checksize(wodim_track_t *);
 static	BOOL	checkdsize(SCSI *usalp, cdr_t *dp, long tsize, int flags);
 static	void	raise_fdlim(void);
 static	void	raise_memlock(void);
-static	int	gargs(int, char **, int *, track_t *, char **, int *, cdr_t **,
+static	int	gargs(int, char **, int *, wodim_track_t *, char **, int *, cdr_t **,
 							int *, long *, int *, int *);
-static	void	set_trsizes(cdr_t *, int, track_t *);
+static	void	set_trsizes(cdr_t *, int, wodim_track_t *);
 void		load_media(SCSI *usalp, cdr_t *, BOOL);
 void		unload_media(SCSI *usalp, cdr_t *, int);
 void		reload_media(SCSI *usalp, cdr_t *);
@@ -287,7 +287,7 @@ int main(int argc, char *argv[])
 	int	tracks = 0;
 	int	trackno;
 	long	tsize;
-	track_t	track[MAX_TRACK+2];	/* Max tracks + track 0 + track AA */
+	wodim_track_t	track[MAX_TRACK+2];	/* Max tracks + track 0 + track AA */
 	cdr_t	*dp = (cdr_t *)0;
 	long	startsec = 0L;
 	int	errs = 0;
@@ -1860,7 +1860,7 @@ read_buf(int f, char *bp, int size)
 }
 
 int 
-fill_buf(int f, track_t *trackp, long secno, char *bp, int size)
+fill_buf(int f, wodim_track_t *trackp, long secno, char *bp, int size)
 {
 	int	amount = 0;
 	int	nsecs;
@@ -1936,7 +1936,7 @@ fill_buf(int f, track_t *trackp, long se
 }
 
 int 
-get_buf(int f, track_t *trackp, long secno, char **bpp, int size)
+get_buf(int f, wodim_track_t *trackp, long secno, char **bpp, int size)
 {
 	if (fs > 0) {
 /*		return (faio_read_buf(f, *bpp, size));*/
@@ -1987,7 +1987,7 @@ again:
 }
 
 static int 
-write_track_data(SCSI *usalp, cdr_t *dp, track_t *trackp)
+write_track_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp)
 {
 	int	track = trackp->trackno;
 	int	f = -1;
@@ -2270,7 +2270,7 @@ int oper = -1;
 }
 
 int 
-pad_track(SCSI *usalp, cdr_t	*dp, track_t *trackp, long startsec, Llong amt,
+pad_track(SCSI *usalp, cdr_t	*dp, wodim_track_t *trackp, long startsec, Llong amt,
 				BOOL dolast, Llong *bytesp)
 {
 	int	track = trackp->trackno;
@@ -2404,7 +2404,7 @@ int oper = -1;
 
 #ifdef	USE_WRITE_BUF
 int 
-write_buf(SCSI *usalp, cdr_t *dp, track_t *trackp, char *bp, long startsec, 
+write_buf(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, char *bp, long startsec, 
         	  Llong amt, int secsize, BOOL dolast, Llong *bytesp)
 {
 	int	track = trackp->trackno;
@@ -2467,7 +2467,7 @@ write_buf(SCSI *usalp, cdr_t *dp, track_
 #endif	/* USE_WRITE_BUF */
 
 static void 
-printdata(int track, track_t *trackp)
+printdata(int track, wodim_track_t *trackp)
 {
 	if (trackp->itracksize >= 0) {
 		printf("Track %02d: data  %4lld MB        ",
@@ -2494,7 +2494,7 @@ printdata(int track, track_t *trackp)
 }
 
 static void 
-printaudio(int track, track_t *trackp)
+printaudio(int track, wodim_track_t *trackp)
 {
 	if (trackp->itracksize >= 0) {
 		printf("Track %02d: audio %4lld MB (%02d:%02d.%02d) %spreemp%s%s",
@@ -2542,7 +2542,7 @@ printaudio(int track, track_t *trackp)
 }
 
 static void 
-checkfile(int track, track_t *trackp)
+checkfile(int track, wodim_track_t *trackp)
 {
 	if (trackp->itracksize > 0 &&
 			is_audio(trackp) &&
@@ -2571,7 +2571,7 @@ checkfile(int track, track_t *trackp)
 }
 
 static int 
-checkfiles(int tracks, track_t *trackp)
+checkfiles(int tracks, wodim_track_t *trackp)
 {
 	int	i;
 	int	isaudio = 1;
@@ -2596,7 +2596,7 @@ checkfiles(int tracks, track_t *trackp)
 }
 
 static void 
-setleadinout(int tracks, track_t *trackp)
+setleadinout(int tracks, wodim_track_t *trackp)
 {
 	/*
 	 * Set some values for track 0 (the lead-in)
@@ -2631,12 +2631,12 @@ setleadinout(int tracks, track_t *trackp
 }
 
 static void 
-setpregaps(int tracks, track_t *trackp)
+setpregaps(int tracks, wodim_track_t *trackp)
 {
 	int	i;
 	int	sectype;
 	long	pregapsize;
-	track_t	*tp;
+	wodim_track_t	*tp;
 
 	sectype = trackp[1].sectype;
 	sectype &= ST_MASK;
@@ -2674,13 +2674,13 @@ setpregaps(int tracks, track_t *trackp)
  * Check total size of the medium
  */
 static long 
-checktsize(int tracks, track_t *trackp)
+checktsize(int tracks, wodim_track_t *trackp)
 {
 	int	i;
 	Llong	curr;
 	Llong	total = -150;	/* CD track #1 pregap compensation */
 	Ullong	btotal;
-	track_t	*tp;
+	wodim_track_t	*tp;
 
 	if (trackp->flags & TI_DVD)
 		total = 0;
@@ -2751,9 +2751,9 @@ checktsize(int tracks, track_t *trackp)
 }
 
 static void 
-opentracks(track_t *trackp)
+opentracks(wodim_track_t *trackp)
 {
-	track_t	*tp;
+	wodim_track_t	*tp;
 	int	i;
 	int	tracks = trackp[0].tracks;
 
@@ -2825,7 +2825,7 @@ opentracks(track_t *trackp)
 }
 
 static void 
-checksize(track_t *trackp)
+checksize(wodim_track_t *trackp)
 {
 	struct stat	st;
 	Llong		lsize;
@@ -2890,7 +2890,7 @@ checkdsize(SCSI *usalp, cdr_t *dp, long
 	int	profile;
 
 	usalp->silent++;
-	(*dp->cdr_next_wr_address)(usalp, (track_t *)0, &startsec);
+	(*dp->cdr_next_wr_address)(usalp, (wodim_track_t *)0, &startsec);
 	usalp->silent--;
 
 	/*
@@ -3098,7 +3098,7 @@ char	*opts =
 #define	M_RAW		4	/* Raw mode */
 #define	M_PACKET	8	/* Packed mode */
 static int 
-gargs(int ac, char **av, int *tracksp, track_t *trackp, char **devp, 
+gargs(int ac, char **av, int *tracksp, wodim_track_t *trackp, char **devp, 
 		int *timeoutp, cdr_t **dpp, int *speedp, long *flagsp, int *blankp, 
 		int *formatp)
 {
@@ -3809,7 +3809,7 @@ gargs(int ac, char **av, int *tracksp, t
 }
 
 static void 
-set_trsizes(cdr_t *dp, int tracks, track_t *trackp)
+set_trsizes(cdr_t *dp, int tracks, wodim_track_t *trackp)
 {
 	int	i;
 	int	secsize;
@@ -4110,7 +4110,7 @@ print_msinfo(SCSI *usalp, cdr_t *dp)
 	if (lverbose)
 		printf("session offset: %ld\n", off);
 
-	if (dp->cdr_next_wr_address(usalp, (track_t *)0, &fa) < 0) {
+	if (dp->cdr_next_wr_address(usalp, (wodim_track_t *)0, &fa) < 0) {
 		errmsgno(EX_BAD, "Cannot read first writable address\n");
 		return;
 	}
diff -up cdiopara/wodim/wodim.h.wrk cdiopara/wodim/wodim.h
--- cdiopara/wodim/wodim.h.wrk	2013-06-25 15:07:16.550727303 +0200
+++ cdiopara/wodim/wodim.h	2013-06-25 16:57:07.110050011 +0200
@@ -186,7 +186,9 @@ typedef struct track {
 	long	*tindex;	/* Track index descriptor		*/
 	char	*isrc;		/* ISRC code for this track / disk MCN	*/
 	void	*text;		/* Opaque CD-Text data (txtptr_t *)	*/
-} track_t;
+} wodim_track_t;
+
+#define track_t taka_neexistuje
 
 #define	track_base(tp)	((tp) - (tp)->track)
 
@@ -515,8 +517,9 @@ typedef struct msf {
 	char	msf_min;
 	char	msf_sec;
 	char	msf_frame;
-} msf_t;
+} wodim_msf_t;
 
+#define msf_t nahradzuj_msf
 /*
  * Definitions for read TOC/PMA/ATIP command
  */
@@ -673,7 +676,7 @@ struct disk_status {
  *	cdr_open_session()
  *	cdr_fixate()
  *
- * Called with (track_t *) 0 or pointer to current track:
+ * Called with (wodim_track_t *) 0 or pointer to current track:
  *	cdr_next_wr_address()
  *
  * Called with pointer to current track:
@@ -751,23 +754,23 @@ struct cdr_cmd {
 	/* set sector size */
 	int	(*cdr_set_secsize)(SCSI *usalp, int secsize);
 	/* get next writable addr. */
-	int	(*cdr_next_wr_address)(SCSI *usalp, track_t *trackp, long *ap);
+	int	(*cdr_next_wr_address)(SCSI *usalp, wodim_track_t *trackp, long *ap);
 	/* reserve track for future use */
 	int	(*cdr_reserve_track)(SCSI *usalp, Ulong len);
 	int	(*cdr_write_trackdata)(SCSI *usalp, caddr_t buf, long daddr, long bytecnt, 
 										  int seccnt, BOOL islast);
 	/* generate cue sheet */
-	int	(*cdr_gen_cue)(track_t *trackp, void *cuep, BOOL needgap);
+	int	(*cdr_gen_cue)(wodim_track_t *trackp, void *cuep, BOOL needgap);
 	/* send cue sheet */
-	int	(*cdr_send_cue)(SCSI *usalp, cdr_t *, track_t *trackp);
+	int	(*cdr_send_cue)(SCSI *usalp, cdr_t *, wodim_track_t *trackp);
 	/* write leadin */
-	int	(*cdr_write_leadin)(SCSI *usalp, cdr_t *, track_t *trackp);
+	int	(*cdr_write_leadin)(SCSI *usalp, cdr_t *, wodim_track_t *trackp);
 	/* open new track */
-	int	(*cdr_open_track)(SCSI *usalp, cdr_t *, track_t *trackp);
+	int	(*cdr_open_track)(SCSI *usalp, cdr_t *, wodim_track_t *trackp);
 	/* close written track */
-	int	(*cdr_close_track)(SCSI *usalp, cdr_t *, track_t *trackp);
+	int	(*cdr_close_track)(SCSI *usalp, cdr_t *, wodim_track_t *trackp);
 	/* open new session */
-	int	(*cdr_open_session)(SCSI *usalp, cdr_t *, track_t *trackp);
+	int	(*cdr_open_session)(SCSI *usalp, cdr_t *, wodim_track_t *trackp);
 	/* really needed ??? */
 	int	(*cdr_close_session)(SCSI *usalp, cdr_t *);
 	/* abort current write */
@@ -775,7 +778,7 @@ struct cdr_cmd {
 	/* read session offset*/
 	int	(*cdr_session_offset)(SCSI *usalp, long *soff);
 	/* write toc on disk */
-	int	(*cdr_fixate)(SCSI *usalp, cdr_t *, track_t *trackp);
+	int	(*cdr_fixate)(SCSI *usalp, cdr_t *, wodim_track_t *trackp);
 	/* final statistics printing*/
 	int	(*cdr_stats)(SCSI *usalp, cdr_t *);
 	/* blank something */
@@ -849,12 +852,12 @@ struct cdr_cmd {
  * cdrecord.c
  */
 extern	int	read_buf(int f, char *bp, int size);
-extern	int	fill_buf(int f, track_t *trackp, long secno, char *bp, int size);
-extern	int	get_buf(int f, track_t *trackp, long secno, char **bpp, int size);
+extern	int	fill_buf(int f, wodim_track_t *trackp, long secno, char *bp, int size);
+extern	int	get_buf(int f, wodim_track_t *trackp, long secno, char **bpp, int size);
 #ifdef	_SCG_SCSITRANSP_H
 extern	int	write_secs(SCSI *usalp, cdr_t *dp, char *bp, long startsec, 
 								  int bytespt, int secspt, BOOL islast);
-extern	int	pad_track(SCSI *usalp, cdr_t *dp, track_t *trackp,
+extern	int	pad_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp,
 								 long startsec, Llong amt,
 								 BOOL dolast, Llong *bytesp);
 extern	void	load_media(SCSI *usalp, cdr_t *, BOOL);
@@ -870,15 +873,15 @@ extern	int	getnum(char *arg, long *valp)
 extern	int	from_bcd(int b);
 extern	int	to_bcd(int i);
 extern	long	msf_to_lba(int m, int s, int f, BOOL force_positive);
-extern	BOOL	lba_to_msf(long lba, msf_t *mp);
-extern	void	sec_to_msf(long sec, msf_t *mp);
+extern	BOOL	lba_to_msf(long lba, wodim_msf_t *mp);
+extern	void	sec_to_msf(long sec, wodim_msf_t *mp);
 extern	void	print_min_atip(long li, long lo);
 
 /*
  * fifo.c
  */
 extern	void	init_fifo(long);
-extern	BOOL	init_faio(track_t *track, int);
+extern	BOOL	init_faio(wodim_track_t *track, int);
 extern	BOOL	await_faio(void);
 extern	void	kill_faio(void);
 extern	int	wait_faio(void);
@@ -891,21 +894,21 @@ extern	int	fifo_percent(BOOL addone);
  * wm_session.c
  */
 #ifdef	_SCG_SCSITRANSP_H
-extern	int	write_session_data(SCSI *usalp, cdr_t *dp, track_t *trackp);
+extern	int	write_session_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 #endif
 
 /*
  * wm_track.c
  */
 #ifdef	_SCG_SCSITRANSP_H
-/*extern	int	write_track_data __PR((SCSI *usalp, cdr_t *dp, track_t *trackp));*/
+/*extern	int	write_track_data __PR((SCSI *usalp, cdr_t *dp, wodim_track_t *trackp));*/
 #endif
 
 /*
  * wm_packet.c
  */
 #ifdef	_SCG_SCSITRANSP_H
-extern	int	write_packet_data(SCSI *usalp, cdr_t *dp, track_t *trackp);
+extern	int	write_packet_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 #endif
 
 /*
@@ -1103,7 +1106,7 @@ int	format_dummy(SCSI *usalp, cdr_t *, i
 extern	int	drive_getdisktype(SCSI *usalp, cdr_t *dp);
 extern	int	cmd_ill(SCSI *usalp);
 extern	int	cmd_dummy(SCSI *usalp, cdr_t *);
-extern	int	no_sendcue(SCSI *usalp, cdr_t *, track_t *trackp);
+extern	int	no_sendcue(SCSI *usalp, cdr_t *, wodim_track_t *trackp);
 extern	int	buf_dummy(SCSI *usalp, long *sp, long *fp);
 #endif
 extern	BOOL	set_cdrcmds(char *name, cdr_t **dpp);
@@ -1137,68 +1140,68 @@ extern	off_t	wavsize(int f);
 /*
  * auinfo.c
  */
-extern	BOOL	auinfosize(char *name, track_t *trackp);
-extern	void	auinfo(char *name, int track, track_t *trackp);
+extern	BOOL	auinfosize(char *name, wodim_track_t *trackp);
+extern	void	auinfo(char *name, int track, wodim_track_t *trackp);
 #ifdef CDTEXT_H
-extern	textptr_t *gettextptr(int track, track_t *trackp);
+extern	textptr_t *gettextptr(int track, wodim_track_t *trackp);
 #endif
-extern	void	setmcn(char *mcn, track_t *trackp);
-extern	void	setisrc(char *isrc, track_t *trackp);
-extern	void	setindex(char *tindex, track_t *trackp);
+extern	void	setmcn(char *mcn, wodim_track_t *trackp);
+extern	void	setisrc(char *isrc, wodim_track_t *trackp);
+extern	void	setindex(char *tindex, wodim_track_t *trackp);
 
 /*
  * diskid.c
  */
-extern	void	pr_manufacturer(msf_t *mp, BOOL rw, BOOL audio);
-extern	int	manufacturer_id(msf_t *mp);
-extern	long	disk_rcap(msf_t *mp, long maxblock, BOOL rw, BOOL audio);
+extern	void	pr_manufacturer(wodim_msf_t *mp, BOOL rw, BOOL audio);
+extern	int	manufacturer_id(wodim_msf_t *mp);
+extern	long	disk_rcap(wodim_msf_t *mp, long maxblock, BOOL rw, BOOL audio);
 
 /*--------------------------------------------------------------------------*/
 /* Test only								    */
 /*--------------------------------------------------------------------------*/
 #ifdef _SCSIMMC_H
-/*extern	int	do_cue		__PR((track_t *trackp, struct mmc_cue **cuep));*/
+/*extern	int	do_cue		__PR((wodim_track_t *trackp, struct mmc_cue **cuep));*/
 #else
-/*extern	int	do_cue		__PR((track_t *trackp, void *cuep));*/
+/*extern	int	do_cue		__PR((wodim_track_t *trackp, void *cuep));*/
 #endif
 
 /*
  * subchan.c
  */
-extern	int	do_leadin(track_t *trackp);
+extern	int	do_leadin(wodim_track_t *trackp);
 #ifdef	_SCG_SCSITRANSP_H
-extern	int	write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp, 
+extern	int	write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, 
 									 int leadinstart);
-extern	int	write_leadout(SCSI *usalp, cdr_t *dp, track_t *trackp);
+extern	int	write_leadout(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp);
 #endif
-extern	void	fillsubch(track_t *trackp, Uchar *sp, int secno, int nsecs);
-extern	void	filltpoint(Uchar *sub, int ctrl_adr, int point, msf_t *mp);
-extern	void	fillttime(Uchar *sub, msf_t *mp);
+extern	void	fillsubch(wodim_track_t *trackp, Uchar *sp, int secno, int nsecs);
+extern	void	filltpoint(Uchar *sub, int ctrl_adr, int point, wodim_msf_t *mp);
+extern	void	fillttime(Uchar *sub, wodim_msf_t *mp);
 extern	void	qpto96(Uchar *sub, Uchar *subq, int dop);
 extern	void	addrw(Uchar *sub, Uchar	*subrwptr);
 extern	void	qwto16(Uchar *subq, Uchar *subptr);
-extern	void	subrecodesecs(track_t *trackp, Uchar *bp, int address, int nsecs);
+extern	void	subrecodesecs(wodim_track_t *trackp, Uchar *bp, int address, int nsecs);
 
 /*
  * sector.c
  */
 extern	int	encspeed(BOOL be_verbose);
-extern	void	encsectors(track_t *trackp, Uchar *bp, int address, int nsecs);
-extern	void	scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs);
+extern	void	encsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs);
+extern	void	scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs);
 extern	void	encodesector(Uchar *sp, int sectype, int address);
 extern	void	fillsector(Uchar *sp, int sectype, int address);
 
 /*
  * clone.c
  */
-extern	void	clone_toc(track_t *trackp);
-extern	void	clone_tracktype(track_t *trackp);
+extern	void	clone_toc(wodim_track_t *trackp);
+extern	void	clone_tracktype(wodim_track_t *trackp);
 
 /*
  * cdtext.c
  */
 extern	BOOL	checktextfile(char *fname);
-extern	void	packtext(int tracks, track_t *trackp);
+extern	void	packtext(int tracks, wodim_track_t *trackp);
 #ifdef	_SCG_SCSITRANSP_H
 extern	int	write_cdtext(SCSI *usalp, cdr_t *dp, long startsec);
 #endif
@@ -1206,7 +1209,7 @@ extern	int	write_cdtext(SCSI *usalp, cdr
 /*
  * cue.c
  */
-extern	int	parsecue(char *cuefname, track_t trackp[]);
+extern	int	parsecue(char *cuefname, wodim_track_t trackp[]);
 #ifdef	EOF	/* stdio.h has been included */
-extern	void	fparsecue(FILE *f, track_t trackp[]);
+extern	void	fparsecue(FILE *f, wodim_track_t trackp[]);
 #endif