Alexandre Julliard : ntdll: Define dvd_struct ourselves since it' s not consistent across platforms.
Alexandre Julliard
julliard at winehq.org
Wed Apr 1 10:11:27 CDT 2009
Module: wine
Branch: master
Commit: c5dadf4739ed92d4839029078e0ef2c12d7e81b7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c5dadf4739ed92d4839029078e0ef2c12d7e81b7
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Apr 1 12:37:32 2009 +0200
ntdll: Define dvd_struct ourselves since it's not consistent across platforms.
---
dlls/ntdll/cdrom.c | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/dlls/ntdll/cdrom.c b/dlls/ntdll/cdrom.c
index a967f9c..574f737 100644
--- a/dlls/ntdll/cdrom.c
+++ b/dlls/ntdll/cdrom.c
@@ -1939,7 +1939,15 @@ static NTSTATUS DVD_GetRegion(int dev, PDVD_REGION region)
static NTSTATUS DVD_ReadStructure(int dev, const DVD_READ_STRUCTURE *structure, PDVD_LAYER_DESCRIPTOR layer)
{
#ifdef DVD_READ_STRUCT
- dvd_struct s;
+ /* dvd_struct is not defined consistently across platforms */
+ union
+ {
+ struct dvd_physical physical;
+ struct dvd_copyright copyright;
+ struct dvd_disckey disckey;
+ struct dvd_bca bca;
+ struct dvd_manufact manufact;
+ } s;
if (structure->BlockByteOffset.u.HighPart || structure->BlockByteOffset.u.LowPart)
FIXME(": BlockByteOffset is not handled\n");
@@ -1947,26 +1955,26 @@ static NTSTATUS DVD_ReadStructure(int dev, const DVD_READ_STRUCTURE *structure,
switch (structure->Format)
{
case DvdPhysicalDescriptor:
- s.type = DVD_STRUCT_PHYSICAL;
+ s.physical.type = DVD_STRUCT_PHYSICAL;
s.physical.layer_num = structure->LayerNumber;
break;
case DvdCopyrightDescriptor:
- s.type = DVD_STRUCT_COPYRIGHT;
+ s.copyright.type = DVD_STRUCT_COPYRIGHT;
s.copyright.layer_num = structure->LayerNumber;
break;
case DvdDiskKeyDescriptor:
- s.type = DVD_STRUCT_DISCKEY;
+ s.disckey.type = DVD_STRUCT_DISCKEY;
s.disckey.agid = structure->SessionId;
break;
case DvdBCADescriptor:
- s.type = DVD_STRUCT_BCA;
+ s.bca.type = DVD_STRUCT_BCA;
break;
case DvdManufacturerDescriptor:
- s.type = DVD_STRUCT_MANUFACT;
+ s.manufact.type = DVD_STRUCT_MANUFACT;
s.manufact.layer_num = structure->LayerNumber;
break;
More information about the wine-cvs
mailing list