pkgsrc/sysutils/gnometoaster/patches/patch-aa

144 lines
3.8 KiB
Text

$NetBSD: patch-aa,v 1.1.1.1 2002/03/25 11:24:28 drochner Exp $
--- cdromlow.c.orig Sat Mar 23 19:48:00 2002
+++ cdromlow.c Sat Mar 23 20:10:30 2002
@@ -9,7 +9,7 @@
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>
-#if !defined( __FreeBSD__) && !defined(__svr4__ )
+#if !defined( __FreeBSD__) && !defined(__svr4__ ) && !defined(__NetBSD__)
# include <linux/cdrom.h>
#else
# include <sys/cdio.h>
@@ -37,7 +37,7 @@
/* we provide some macro mappings here. FreeBSD structs are a bit
* different to those used by Linux so we will use macros to compensate that */
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
/* Needed by FreeBSD */
# define CDROM_DATA_TRACK 4
@@ -46,19 +46,35 @@
# define CD_FRAMESIZE_RAW 2352
# define CDROM_LBA CD_LBA_FORMAT
# define CDROMREADTOCHDR CDIOREADTOCHEADER
+#ifdef __NetBSD__
+# define CDROMREADTOCENTRY CDIOREADTOCENTRIES
+#else
# define CDROMREADTOCENTRY CDIOREADTOCENTRY
+#endif
# define cdromlow_definecdromheader struct ioc_toc_header
+#ifdef __NetBSD__
+# define cdromlow_definecdromhentry struct ioc_read_toc_entry
+#else
# define cdromlow_definecdromhentry struct ioc_read_toc_single_entry
+#endif
/* referencing the TOC header */
# define cdromlow_tochdr_firstt starting_track
# define cdromlow_tochdr_lastt ending_track
/* referencing TOC entries */
+#ifdef __NetBSD__
+# define cdromlow_tocent_track starting_track
+#else
# define cdromlow_tocent_track track
+#endif
# define cdromlow_tocent_format address_format
+#ifdef __NetBSD__
+# define cdromlow_tocent_addr data->addr
+#else
# define cdromlow_tocent_addr entry.addr
+#endif
#elif __svr4__
# define CD_FRAMESIZE 2048
# define CD_FRAMESIZE_RAW 2352
@@ -138,6 +154,11 @@
int x;
int hasdatatrack=-1;
+#ifdef __NetBSD__
+ struct cd_toc_entry entrydata;
+ entry.data = &entrydata;
+ entry.data_len = sizeof(entrydata);
+#endif
if (info->filedescriptor!=-1)
{
@@ -148,7 +169,11 @@
entry.cdromlow_tocent_format=CDROM_LBA;
ioctl(info->filedescriptor,CDROMREADTOCENTRY,&entry);
#ifndef __FreeBSD__
+#ifdef __NetBSD__
+ if (entry.data->control & CDROM_DATA_TRACK)
+#else
if (entry.cdte_ctrl&CDROM_DATA_TRACK)
+#endif
#else
if (entry.entry.control & CDROM_DATA_TRACK)
#endif
@@ -191,6 +216,11 @@
cdromlow_tochandle *info=(cdromlow_tochandle*)handle;
cdromlow_definecdromhentry entry;
int offset=-1;
+#ifdef __NetBSD__
+ struct cd_toc_entry entrydata;
+ entry.data = &entrydata;
+ entry.data_len = sizeof(entrydata);
+#endif
if (info->filedescriptor!=-1)
{
@@ -223,6 +253,13 @@
cdromlow_definecdromhentry tracknext;
int tracksize;
int ok=1;
+#ifdef __NetBSD__
+ struct cd_toc_entry trackdata, tracknextdata;
+ track.data = &trackdata;
+ track.data_len = sizeof(trackdata);
+ tracknext.data = &tracknextdata;
+ tracknext.data_len = sizeof(tracknextdata);
+#endif
tracksize=0;
if (info->filedescriptor!=-1)
@@ -278,6 +315,11 @@
cdromlow_definecdromhentry entry;
int x,secs;
int cddbnum=0;
+#ifdef __NetBSD__
+ struct cd_toc_entry entrydata;
+ entry.data = &entrydata;
+ entry.data_len = sizeof(entrydata);
+#endif
cddbnum=0;
if (info->filedescriptor!=-1)
@@ -317,6 +359,11 @@
cdromlow_definecdromhentry track;
int ok=1;
cdromlow_tracktype result=TRACKTYPE_UNKNOWN;
+#ifdef __NetBSD__
+ struct cd_toc_entry trackdata;
+ track.data = &trackdata;
+ track.data_len = sizeof(trackdata);
+#endif
if (info->filedescriptor!=-1)
{
@@ -325,7 +372,11 @@
if (ioctl(info->filedescriptor,CDROMREADTOCENTRY,&track)==-1)
ok=0;
#ifndef __FreeBSD__
+#ifdef __NetBSD__
+ if (track.data->control & CDROM_DATA_TRACK)
+#else
if (track.cdte_ctrl&CDROM_DATA_TRACK)
+#endif
#else
if (track.entry.control & CDROM_DATA_TRACK)
#endif