162 lines
6.5 KiB
Plaintext
162 lines
6.5 KiB
Plaintext
$NetBSD: patch-ab,v 1.2 2012/05/23 17:48:54 marino Exp $
|
|
|
|
--- dlls/ntdll/cdrom.c.orig 2008-06-27 16:24:42.000000000 +0200
|
|
+++ dlls/ntdll/cdrom.c
|
|
@@ -65,6 +65,16 @@
|
|
#endif
|
|
#ifdef HAVE_LINUX_CDROM_H
|
|
# include <linux/cdrom.h>
|
|
+#else
|
|
+# ifndef CD_FRAMES
|
|
+# define CD_FRAMES 75
|
|
+# endif
|
|
+# ifndef CDROM_MSF
|
|
+# define CDROM_MSF 0x02
|
|
+# endif
|
|
+# ifndef CD_SECS
|
|
+# define CD_SECS 60
|
|
+# endif
|
|
#endif
|
|
#ifdef HAVE_LINUX_UCDROM_H
|
|
# include <linux/ucdrom.h>
|
|
@@ -473,7 +483,8 @@ static NTSTATUS CDROM_SyncCache(int dev,
|
|
cdrom_cache[dev].toc_good = 1;
|
|
return STATUS_SUCCESS;
|
|
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
|
|
int i, tsz;
|
|
struct ioc_toc_header hdr;
|
|
@@ -784,7 +795,8 @@ static NTSTATUS CDROM_ResetAudio(int fd)
|
|
{
|
|
#if defined(linux)
|
|
return CDROM_GetStatusCode(ioctl(fd, CDROMRESET));
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
return CDROM_GetStatusCode(ioctl(fd, CDIOCRESET, NULL));
|
|
#else
|
|
FIXME("not supported on this O/S\n");
|
|
@@ -801,7 +813,8 @@ static NTSTATUS CDROM_SetTray(int fd, BO
|
|
{
|
|
#if defined(linux)
|
|
return CDROM_GetStatusCode(ioctl(fd, doEject ? CDROMEJECT : CDROMCLOSETRAY));
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
return CDROM_GetStatusCode((ioctl(fd, CDIOCALLOW, NULL)) ||
|
|
(ioctl(fd, doEject ? CDIOCEJECT : CDIOCCLOSE, NULL)) ||
|
|
(ioctl(fd, CDIOCPREVENT, NULL)));
|
|
@@ -823,7 +836,8 @@ static NTSTATUS CDROM_ControlEjection(in
|
|
{
|
|
#if defined(linux)
|
|
return CDROM_GetStatusCode(ioctl(fd, CDROM_LOCKDOOR, rmv->PreventMediaRemoval));
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
return CDROM_GetStatusCode(ioctl(fd, (rmv->PreventMediaRemoval) ? CDIOCPREVENT : CDIOCALLOW, NULL));
|
|
#else
|
|
FIXME("not supported on this O/S\n");
|
|
@@ -978,7 +992,8 @@ static NTSTATUS CDROM_ReadQChannel(int d
|
|
|
|
end:
|
|
ret = CDROM_GetStatusCode(io);
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
SUB_Q_HEADER* hdr = (SUB_Q_HEADER*)data;
|
|
int io;
|
|
struct ioc_read_subchannel read_sc;
|
|
@@ -1134,7 +1149,8 @@ static NTSTATUS CDROM_Verify(int dev, in
|
|
return STATUS_SUCCESS;
|
|
else
|
|
return STATUS_NO_MEDIA_IN_DEVICE;
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__DragonFly__)
|
|
int ret;
|
|
ret = ioctl(fd, CDIOCSTART, NULL);
|
|
if(ret == 0)
|
|
@@ -1187,7 +1203,8 @@ static NTSTATUS CDROM_PlayAudioMSF(int f
|
|
msf.cdmsf_min1, msf.cdmsf_sec1, msf.cdmsf_frame1);
|
|
end:
|
|
ret = CDROM_GetStatusCode(io);
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
struct ioc_play_msf msf;
|
|
int io;
|
|
|
|
@@ -1232,7 +1249,8 @@ static NTSTATUS CDROM_SeekAudioMSF(int d
|
|
#if defined(linux)
|
|
struct cdrom_msf0 msf;
|
|
struct cdrom_subchnl sc;
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
struct ioc_play_msf msf;
|
|
struct ioc_read_subchannel read_sc;
|
|
struct cd_sub_channel_info sc;
|
|
@@ -1285,7 +1303,8 @@ static NTSTATUS CDROM_SeekAudioMSF(int d
|
|
return CDROM_GetStatusCode(ioctl(fd, CDROMSEEK, &msf));
|
|
}
|
|
return STATUS_SUCCESS;
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
read_sc.address_format = CD_MSF_FORMAT;
|
|
read_sc.track = 0;
|
|
read_sc.data_len = sizeof(sc);
|
|
@@ -1326,7 +1345,8 @@ static NTSTATUS CDROM_PauseAudio(int fd)
|
|
{
|
|
#if defined(linux)
|
|
return CDROM_GetStatusCode(ioctl(fd, CDROMPAUSE));
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
return CDROM_GetStatusCode(ioctl(fd, CDIOCPAUSE, NULL));
|
|
#else
|
|
FIXME(": not supported on this O/S\n");
|
|
@@ -1343,7 +1363,8 @@ static NTSTATUS CDROM_ResumeAudio(int fd
|
|
{
|
|
#if defined(linux)
|
|
return CDROM_GetStatusCode(ioctl(fd, CDROMRESUME));
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
return CDROM_GetStatusCode(ioctl(fd, CDIOCRESUME, NULL));
|
|
#else
|
|
FIXME("not supported on this O/S\n");
|
|
@@ -1360,7 +1381,8 @@ static NTSTATUS CDROM_StopAudio(int fd)
|
|
{
|
|
#if defined(linux)
|
|
return CDROM_GetStatusCode(ioctl(fd, CDROMSTOP));
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
return CDROM_GetStatusCode(ioctl(fd, CDIOCSTOP, NULL));
|
|
#else
|
|
FIXME("not supported on this O/S\n");
|
|
@@ -1388,7 +1410,8 @@ static NTSTATUS CDROM_GetVolume(int fd,
|
|
vc->PortVolume[3] = volc.channel3;
|
|
}
|
|
return CDROM_GetStatusCode(io);
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
struct ioc_vol volc;
|
|
int io;
|
|
|
|
@@ -1423,7 +1446,8 @@ static NTSTATUS CDROM_SetVolume(int fd,
|
|
volc.channel3 = vc->PortVolume[3];
|
|
|
|
return CDROM_GetStatusCode(ioctl(fd, CDROMVOLCTRL, &volc));
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
|
+ || defined(__NetBSD__) || defined(__DragonFly__)
|
|
struct ioc_vol volc;
|
|
|
|
volc.vol[0] = vc->PortVolume[0];
|