diff options
author | wiz <wiz> | 2006-11-05 13:45:37 +0000 |
---|---|---|
committer | wiz <wiz> | 2006-11-05 13:45:37 +0000 |
commit | 23db47e9cc7c9edba6036574a5d9faf4012df2f1 (patch) | |
tree | c9717ddffef135dfcfafeaf8473f8db6a2eb7d7c /audio/cdparanoia/patches | |
parent | cc14954be6e929a402bc7681dbfd1e9a19318ed6 (diff) | |
download | pkgsrc-23db47e9cc7c9edba6036574a5d9faf4012df2f1.tar.gz |
Add patch for FreeBSD-5.x, from Peter Schuller in PR 33719.
Untested on FreeBSD, still compiles on NetBSD.
Diffstat (limited to 'audio/cdparanoia/patches')
-rw-r--r-- | audio/cdparanoia/patches/patch-ce | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/audio/cdparanoia/patches/patch-ce b/audio/cdparanoia/patches/patch-ce index 54099737410..ae5820d2f17 100644 --- a/audio/cdparanoia/patches/patch-ce +++ b/audio/cdparanoia/patches/patch-ce @@ -1,6 +1,6 @@ -$NetBSD: patch-ce,v 1.3 2006/03/07 06:29:03 joerg Exp $ +$NetBSD: patch-ce,v 1.4 2006/11/05 13:45:37 wiz Exp $ ---- interface/cooked_interface.c.orig 2000-04-20 08:41:04.000000000 +1000 +--- interface/cooked_interface.c.orig Thu Apr 20 00:41:04 2000 +++ interface/cooked_interface.c @@ -10,9 +10,11 @@ #include "common_interface.h" @@ -84,7 +84,7 @@ $NetBSD: patch-ce,v 1.3 2006/03/07 06:29:03 joerg Exp $ int retry_count,err; struct cdrom_read_audio arg; char *buffer=(char *)p; -@@ -127,7 +174,133 @@ static long cooked_read (cdrom_drive *d, +@@ -127,7 +174,147 @@ static long cooked_read (cdrom_drive *d, } while (err); return(sectors); @@ -92,7 +92,7 @@ $NetBSD: patch-ce,v 1.3 2006/03/07 06:29:03 joerg Exp $ +#ifdef __NetBSD__ + errx(1, "cooked_read: not implemented"); +#endif -+} + } +#elif defined(__FreeBSD__) || defined(__DragonFly__) +static int +cooked_readtoc(cdrom_drive *d) @@ -162,6 +162,10 @@ $NetBSD: patch-ce,v 1.3 2006/03/07 06:29:03 joerg Exp $ +cooked_read(cdrom_drive *d, void *p, long begin, long sectors) +{ + int retry_count = 0; ++/* CDIOCREADAUDIO has been removed in FreeBSD 5.1-CURRENT */ ++#if __FreeBSD_version >= 501106 ++ int bsize = CD_FRAMESIZE_RAW; ++#else + struct ioc_read_audio arg; + + if (sectors > d->nsectors) @@ -170,10 +174,20 @@ $NetBSD: patch-ce,v 1.3 2006/03/07 06:29:03 joerg Exp $ + arg.address_format = CD_LBA_FORMAT; + arg.address.lba = begin; + arg.buffer = p; ++#endif + ++#if __FreeBSD_version >= 501106 ++ if (ioctl(d->ioctl_fd, CDRIOCSETBLOCKSIZE, &bsize) == -1) { ++ return -7; ++ } ++#endif + for (;;) { ++#if __FreeBSD_version >= 501106 ++ if (pread(d->ioctl_fd, p, sectors*bsize, begin*bsize) != sectors*bsize) { ++#else + arg.nframes = sectors; + if (ioctl(d->ioctl_fd, CDIOCREADAUDIO, &arg) == -1) { ++#endif + if (!d->error_retry) + return -7; + @@ -212,13 +226,13 @@ $NetBSD: patch-ce,v 1.3 2006/03/07 06:29:03 joerg Exp $ + } + + return sectors; - } ++} +#endif + /* hook */ static int Dummy (cdrom_drive *d,int Switch){ -@@ -191,8 +364,11 @@ static void check_exceptions(cdrom_drive +@@ -191,8 +378,11 @@ static void check_exceptions(cdrom_drive /* set function pointers to use the ioctl routines */ int cooked_init_drive (cdrom_drive *d){ @@ -231,7 +245,7 @@ $NetBSD: patch-ce,v 1.3 2006/03/07 06:29:03 joerg Exp $ switch(d->drive_type){ case MATSUSHITA_CDROM_MAJOR: /* sbpcd 1 */ case MATSUSHITA_CDROM2_MAJOR: /* sbpcd 2 */ -@@ -243,6 +419,9 @@ int cooked_init_drive (cdrom_drive *d){ +@@ -243,6 +433,9 @@ int cooked_init_drive (cdrom_drive *d){ default: d->nsectors=40; } @@ -241,7 +255,7 @@ $NetBSD: patch-ce,v 1.3 2006/03/07 06:29:03 joerg Exp $ d->enable_cdda = Dummy; d->read_audio = cooked_read; d->set_speed = cooked_setspeed; -@@ -255,5 +434,6 @@ int cooked_init_drive (cdrom_drive *d){ +@@ -255,5 +448,6 @@ int cooked_init_drive (cdrom_drive *d){ if((ret=verify_read_command(d)))return(ret); d->error_retry=1; return(0); |