diff options
Diffstat (limited to 'libdvdcss')
-rw-r--r-- | libdvdcss/common.h | 6 | ||||
-rw-r--r-- | libdvdcss/css.c | 68 | ||||
-rw-r--r-- | libdvdcss/css.h | 6 | ||||
-rw-r--r-- | libdvdcss/csstables.h | 6 | ||||
-rw-r--r-- | libdvdcss/device.c | 131 | ||||
-rw-r--r-- | libdvdcss/device.h | 8 | ||||
-rw-r--r-- | libdvdcss/dvdcss/dvdcss.h | 6 | ||||
-rw-r--r-- | libdvdcss/error.c | 10 | ||||
-rw-r--r-- | libdvdcss/ioctl.c | 10 | ||||
-rw-r--r-- | libdvdcss/ioctl.h | 6 | ||||
-rw-r--r-- | libdvdcss/libdvdcss.c | 51 | ||||
-rw-r--r-- | libdvdcss/libdvdcss.h | 8 |
12 files changed, 251 insertions, 65 deletions
diff --git a/libdvdcss/common.h b/libdvdcss/common.h index aff5ccbaa7..931413fb15 100644 --- a/libdvdcss/common.h +++ b/libdvdcss/common.h @@ -19,9 +19,9 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with libdvdcss; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ /***************************************************************************** diff --git a/libdvdcss/css.c b/libdvdcss/css.c index 23d186ab73..2bb4f18833 100644 --- a/libdvdcss/css.c +++ b/libdvdcss/css.c @@ -16,19 +16,19 @@ * - DecVOB * see http://www.lemuria.org/DeCSS/ by Tom Vogt for more information. * - * This program is free software; you can redistribute it and/or modify + * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with this library; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ /***************************************************************************** @@ -89,10 +89,19 @@ static int AttackPadding ( uint8_t const[], int, uint8_t * ); /***************************************************************************** * _dvdcss_test: check if the disc is encrypted or not + ***************************************************************************** + * Return values: + * 1: DVD is scrambled but can be read + * 0: DVD is not scrambled and can be read + * -1: could not get "copyright" information + * -2: could not get RPC information (reading the disc might be possible) + * -3: drive is RPC-II, region is not set, and DVD is scrambled: the RPC + * scheme will prevent us from reading the scrambled data *****************************************************************************/ int _dvdcss_test( dvdcss_t dvdcss ) { - int i_ret, i_copyright; + char const *psz_type, *psz_rpc; + int i_ret, i_copyright, i_type, i_mask, i_rpc; i_ret = ioctl_ReadCopyright( dvdcss->i_fd, 0 /* i_layer */, &i_copyright ); @@ -115,14 +124,51 @@ int _dvdcss_test( dvdcss_t dvdcss ) if( i_ret < 0 ) { /* Since it's the first ioctl we try to issue, we add a notice */ - print_error( dvdcss, "css error: ioctl_ReadCopyright failed, " - "make sure there is a DVD in the drive, and that " - "you have used the correct device node." ); + print_error( dvdcss, "css error: could not get \"copyright\"" + " information, make sure there is a DVD in the drive," + " and that you have used the correct device node." ); + + return -1; + } + + print_debug( dvdcss, "disc reports copyright information 0x%x", + i_copyright ); + + i_ret = ioctl_ReportRPC( dvdcss->i_fd, &i_type, &i_mask, &i_rpc); + + if( i_ret < 0 ) + { + print_error( dvdcss, "css error: could not get RPC status" ); + return -2; + } - return i_ret; + switch( i_rpc ) + { + case 0: psz_rpc = "RPC-I"; break; + case 1: psz_rpc = "RPC-II"; break; + default: psz_rpc = "unknown RPC scheme"; break; + } + + switch( i_type ) + { + case 0: psz_type = "no region code set"; break; + case 1: psz_type = "region code set"; break; + case 2: psz_type = "one region change remaining"; break; + case 3: psz_type = "region code set permanently"; break; + default: psz_type = "unknown status"; break; + } + + print_debug( dvdcss, "drive region mask %x, %s, %s", + i_mask, psz_rpc, psz_type ); + + if( i_copyright && i_rpc == 1 && i_type == 0 ) + { + print_error( dvdcss, "css error: drive will prevent access to " + "scrambled data" ); + return -3; } - return i_copyright; + return i_copyright ? 1 : 0; } /***************************************************************************** diff --git a/libdvdcss/css.h b/libdvdcss/css.h index 03becda17c..a97fa4a193 100644 --- a/libdvdcss/css.h +++ b/libdvdcss/css.h @@ -22,9 +22,9 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with libdvdcss; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ #define KEY_SIZE 5 diff --git a/libdvdcss/csstables.h b/libdvdcss/csstables.h index bd0fc3a706..1c00685bcc 100644 --- a/libdvdcss/csstables.h +++ b/libdvdcss/csstables.h @@ -24,9 +24,9 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with libdvdcss; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ diff --git a/libdvdcss/device.c b/libdvdcss/device.c index 0d8e4a06ee..98507f4ea5 100644 --- a/libdvdcss/device.c +++ b/libdvdcss/device.c @@ -8,19 +8,19 @@ * Sam Hocevar <sam@zoy.org> * HÃ¥kan Hjort <d95hjort@dtek.chalmers.se> * - * This program is free software; you can redistribute it and/or modify + * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with this library; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ /***************************************************************************** @@ -65,6 +65,14 @@ # include <IOKit/storage/IODVDMedia.h> #endif +#ifdef SYS_OS2 +# define INCL_DOS +# define INCL_DOSDEVIOCTL +# include <os2.h> +# include <io.h> /* setmode() */ +# include <fcntl.h> /* O_BINARY */ +#endif + #include "dvdcss/dvdcss.h" #include "common.h" @@ -91,6 +99,12 @@ static int aspi_read ( dvdcss_t, void *, int ); static int win_readv ( dvdcss_t, struct iovec *, int ); static int aspi_read_internal ( int, void *, int ); +#elif defined( SYS_OS2 ) +static int os2_open ( dvdcss_t, char const * ); +/* just use macros for libc */ +# define os2_seek libc_seek +# define os2_read libc_read +# define os2_readv libc_readv #endif int _dvdcss_use_ioctls( dvdcss_t dvdcss ) @@ -110,6 +124,16 @@ int _dvdcss_use_ioctls( dvdcss_t dvdcss ) { return 1; } +#elif defined( SYS_OS2 ) + ULONG ulMode; + + if( DosQueryFHState( dvdcss->i_fd, &ulMode ) != 0 ) + return 1; /* What to do? Be conservative and try to use the ioctls */ + + if( ulMode & OPEN_FLAGS_DASD ) + return 1; + + return 0; #else struct stat fileinfo; int ret; @@ -157,6 +181,28 @@ void _dvdcss_check ( dvdcss_t dvdcss ) kern_return_t kern_result; io_iterator_t media_iterator; CFMutableDictionaryRef classes_to_match; +#elif defined( SYS_OS2 ) +#pragma pack( 1 ) + struct + { + BYTE bCmdInfo; + BYTE bDrive; + } param; + + struct + { + BYTE abEBPB[31]; + USHORT usCylinders; + BYTE bDevType; + USHORT usDevAttr; + } data; +#pragma pack() + + ULONG ulParamLen; + ULONG ulDataLen; + ULONG rc; + + int i; #else char *ppsz_devices[] = { "/dev/dvd", "/dev/cdrom", "/dev/hdc", NULL }; int i, i_fd; @@ -270,6 +316,32 @@ void _dvdcss_check ( dvdcss_t dvdcss ) } IOObjectRelease( media_iterator ); +#elif defined( SYS_OS2 ) + for( i = 0; i < 26; i++ ) + { + param.bCmdInfo = 0; + param.bDrive = i; + + rc = DosDevIOCtl( ( HFILE )-1, IOCTL_DISK, DSK_GETDEVICEPARAMS, + ¶m, sizeof( param ), &ulParamLen, + &data, sizeof( data ), &ulDataLen ); + + if( rc == 0 ) + { + /* Check for removable and for cylinders */ + if( ( data.usDevAttr & 1 ) == 0 && data.usCylinders == 0xFFFF ) + { + char psz_dvd[] = "A:"; + + psz_dvd[0] += i; + + print_debug( dvdcss, "defaulting to drive `%s'", psz_dvd ); + free( dvdcss->psz_device ); + dvdcss->psz_device = strdup( psz_dvd ); + return; + } + } + } #else for( i = 0; ppsz_devices[i]; i++ ) { @@ -322,6 +394,18 @@ int _dvdcss_open ( dvdcss_t dvdcss ) return aspi_open( dvdcss, psz_device ); } else +#elif defined( SYS_OS2 ) + /* If device is "X:" or "X:\", we are not actually opening a file. */ + if( psz_device[0] && psz_device[1] == ':' && + ( !psz_device[2] || ( psz_device[2] == '\\' && !psz_device[3] ) ) ) + { + print_debug( dvdcss, "using OS2 API for access" ); + dvdcss->pf_seek = os2_seek; + dvdcss->pf_read = os2_read; + dvdcss->pf_readv = os2_readv; + return os2_open( dvdcss, psz_device ); + } + else #endif { print_debug( dvdcss, "using libc for access" ); @@ -332,7 +416,7 @@ int _dvdcss_open ( dvdcss_t dvdcss ) } } -#ifndef WIN32 +#if !defined(WIN32) && !defined(SYS_OS2) int _dvdcss_raw_open ( dvdcss_t dvdcss, char const *psz_device ) { dvdcss->i_raw_fd = open( psz_device, 0 ); @@ -385,11 +469,13 @@ int _dvdcss_close ( dvdcss_t dvdcss ) #else close( dvdcss->i_fd ); +#ifndef SYS_OS2 if( dvdcss->i_raw_fd >= 0 ) { close( dvdcss->i_raw_fd ); dvdcss->i_raw_fd = -1; } +#endif return 0; #endif @@ -402,7 +488,7 @@ int _dvdcss_close ( dvdcss_t dvdcss ) *****************************************************************************/ static int libc_open ( dvdcss_t dvdcss, char const *psz_device ) { -#if !defined( WIN32 ) +#if !defined( WIN32 ) && !defined( SYS_OS2 ) dvdcss->i_fd = dvdcss->i_read_fd = open( psz_device, 0 ); #else dvdcss->i_fd = dvdcss->i_read_fd = open( psz_device, O_BINARY ); @@ -578,6 +664,37 @@ static int aspi_open( dvdcss_t dvdcss, char const * psz_device ) } #endif +#ifdef SYS_OS2 +static int os2_open ( dvdcss_t dvdcss, char const *psz_device ) +{ + char psz_dvd[] = "X:"; + HFILE hfile; + ULONG ulAction; + ULONG rc; + + psz_dvd[0] = psz_device[0]; + + rc = DosOpenL( ( PSZ )psz_dvd, &hfile, &ulAction, 0, FILE_NORMAL, + OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW, + OPEN_ACCESS_READONLY | OPEN_SHARE_DENYNONE | OPEN_FLAGS_DASD, + NULL ); + + if( rc ) + { + print_error( dvdcss, "failed to open device" ); + return -1; + } + + setmode( hfile, O_BINARY ); + + dvdcss->i_fd = dvdcss->i_read_fd = hfile; + + dvdcss->i_pos = 0; + + return 0; +} +#endif + /***************************************************************************** * Seek commands. *****************************************************************************/ diff --git a/libdvdcss/device.h b/libdvdcss/device.h index d8a73f0d4e..33c53ac64f 100644 --- a/libdvdcss/device.h +++ b/libdvdcss/device.h @@ -18,9 +18,9 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with libdvdcss; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ /***************************************************************************** @@ -52,7 +52,7 @@ int _dvdcss_close ( dvdcss_t ); /***************************************************************************** * Device reading prototypes, raw-device specific *****************************************************************************/ -#ifndef WIN32 +#if !defined(WIN32) && !defined(SYS_OS2) int _dvdcss_raw_open ( dvdcss_t, char const * ); #endif diff --git a/libdvdcss/dvdcss/dvdcss.h b/libdvdcss/dvdcss/dvdcss.h index c97f996824..8ef98f6e77 100644 --- a/libdvdcss/dvdcss/dvdcss.h +++ b/libdvdcss/dvdcss/dvdcss.h @@ -22,9 +22,9 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with libdvdcss; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef DVDCSS_DVDCSS_H diff --git a/libdvdcss/error.c b/libdvdcss/error.c index 66d2b67ad4..794f4841ac 100644 --- a/libdvdcss/error.c +++ b/libdvdcss/error.c @@ -6,19 +6,19 @@ * * Author: Sam Hocevar <sam@zoy.org> * - * This program is free software; you can redistribute it and/or modify + * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with this library; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ #include "config.h" diff --git a/libdvdcss/ioctl.c b/libdvdcss/ioctl.c index d0903994c7..5c7e615327 100644 --- a/libdvdcss/ioctl.c +++ b/libdvdcss/ioctl.c @@ -13,19 +13,19 @@ * Alex Strelnikov <lelik@os2.ru> * Gildas Bazin <gbazin@netcourrier.com> * - * This program is free software; you can redistribute it and/or modify + * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with this library; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ /***************************************************************************** diff --git a/libdvdcss/ioctl.h b/libdvdcss/ioctl.h index 16f51d251b..ef6ae8a9d4 100644 --- a/libdvdcss/ioctl.h +++ b/libdvdcss/ioctl.h @@ -16,9 +16,9 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with libdvdcss; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ int ioctl_ReadCopyright ( int, int, int * ); diff --git a/libdvdcss/libdvdcss.c b/libdvdcss/libdvdcss.c index 1be814f838..f39d7025d4 100644 --- a/libdvdcss/libdvdcss.c +++ b/libdvdcss/libdvdcss.c @@ -7,19 +7,19 @@ * Copyright (C) 1998-2008 VideoLAN * $Id$ * - * This program is free software; you can redistribute it and/or modify + * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with this library; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /** @@ -166,7 +166,7 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target ) char *psz_method = getenv( "DVDCSS_METHOD" ); char *psz_verbose = getenv( "DVDCSS_VERBOSE" ); char *psz_cache = getenv( "DVDCSS_CACHE" ); -#ifndef WIN32 +#if !defined(WIN32) && !defined(SYS_OS2) char *psz_raw_device = getenv( "DVDCSS_RAW_DEVICE" ); #endif @@ -184,7 +184,7 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target ) /* * Initialize structure with default values */ -#ifndef WIN32 +#if !defined(WIN32) && !defined(SYS_OS2) dvdcss->i_raw_fd = -1; #endif dvdcss->p_titles = NULL; @@ -306,7 +306,25 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target ) /* Cache our keys in ${HOME}/.dvdcss/ */ if( psz_home ) { - snprintf( psz_buffer, PATH_MAX, "%s/.dvdcss", psz_home ); + int home_pos = 0; + +#ifdef SYS_OS2 + if( *psz_home == '/' || *psz_home == '\\') + { + char *psz_unixroot = getenv("UNIXROOT"); + + if( psz_unixroot && + psz_unixroot[0] && + psz_unixroot[1] == ':' && + psz_unixroot[2] == '\0') + { + strcpy( psz_buffer, psz_unixroot ); + home_pos = 2; + } + } +#endif + snprintf( psz_buffer + home_pos, PATH_MAX - home_pos, + "%s/.dvdcss", psz_home ); psz_buffer[PATH_MAX-1] = '\0'; psz_cache = psz_buffer; } @@ -349,7 +367,14 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target ) if( dvdcss->b_ioctls ) { i_ret = _dvdcss_test( dvdcss ); - if( i_ret < 0 ) + if( i_ret == -2 ) + { + /* Scrambled disk, RPC-II drive, no region set: bail out */ + free( dvdcss->psz_device ); + free( dvdcss ); + return NULL; + } + else if( i_ret < 0 ) { /* Disable the CSS ioctls and hope that it works? */ print_debug( dvdcss, @@ -402,7 +427,6 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target ) if( psz_cache ) { uint8_t p_sector[DVDCSS_BLOCK_SIZE]; - char psz_debug[PATH_MAX + 30]; char psz_key[1 + KEY_SIZE * 2 + 1]; char *psz_title; uint8_t *psz_serial; @@ -530,13 +554,12 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target ) /* Pointer to the filename we will use. */ dvdcss->psz_block = dvdcss->psz_cachefile + i; - sprintf( psz_debug, "using CSS key cache dir: %s", - dvdcss->psz_cachefile ); - print_debug( dvdcss, psz_debug ); + print_debug( dvdcss, "using CSS key cache dir: %s", + dvdcss->psz_cachefile ); } nocache: -#ifndef WIN32 +#if !defined(WIN32) && !defined(SYS_OS2) if( psz_raw_device != NULL ) { _dvdcss_raw_open( dvdcss, psz_raw_device ); diff --git a/libdvdcss/libdvdcss.h b/libdvdcss/libdvdcss.h index 80f78c3062..35ffc9b9de 100644 --- a/libdvdcss/libdvdcss.h +++ b/libdvdcss/libdvdcss.h @@ -17,9 +17,9 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * You should have received a copy of the GNU General Public License along + * with libdvdcss; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *****************************************************************************/ struct iovec; @@ -62,7 +62,7 @@ struct dvdcss_s int i_readv_buf_size; #endif -#ifndef WIN32 +#if !defined(WIN32) && !defined(SYS_OS2) int i_raw_fd; #endif }; |