Commit 586bb800 authored by Diego Biurrun's avatar Diego Biurrun
Browse files

Remove HP-UX support.

HP-UX is a legacy proprietary Unix with no real-world usage.
parent fe317f76
......@@ -8,6 +8,7 @@ Changes between 1.2.13 and 1.3.0:
* Drop support for Windows 98 and Windows NT 4.0.
Windows 98 SE with IE 5.0 and Windows NT 4.0 SP4 with IE 5.0 are required.
* Support for Android
* Drop support for HP-UX.
Changes between 1.2.12 and 1.2.13:
......
......@@ -181,14 +181,6 @@ AC_CHECK_HEADERS(sys/ioctl.h,[
AC_DEFINE(SOLARIS_USCSI, 1, Have userspace SCSI headers.)
])
dnl
dnl HP-UX: sys/scsi.h
dnl
AC_CHECK_HEADER(sys/scsi.h,[
AC_EGREP_HEADER(sctl_io,sys/scsi.h,[
AC_DEFINE(HPUX_SCTL_IO, 1, Define if <sys/scsi.h> defines sctl_io.)
])
])
dnl
dnl Darwin
dnl
AC_CHECK_HEADER(IOKit/storage/IODVDMediaBSDClient.h,[
......
......@@ -32,8 +32,8 @@ Conflicts: libdvdcss0.0.1, libdvdcss0.0.2
libdvdcss is a simple library designed for accessing DVDs like a block device
without having to bother about the decryption. The important features are:
* Portability: Currently supported platforms are GNU/Linux, FreeBSD, NetBSD,
OpenBSD, BeOS, Mac OS X, Solaris, HP-UX, OS/2, Windows 98 SE
(with IE 5.0) or later, and Windows NT 4.0 (with IE 5.0) or later.
OpenBSD, BeOS, Mac OS X, Solaris, OS/2, Windows 98 SE (with IE 5.0) or
later, and Windows NT 4.0 (with IE 5.0) or later.
* Adaptability: Unlike most similar projects, libdvdcss does not require the
region of your drive to be set and will try its best to read from the disc
even in the case of a region mismatch.
......@@ -49,8 +49,8 @@ Provides: %name = %version-%release
libdvdcss is a simple library designed for accessing DVDs like a block device
without having to bother about the decryption. The important features are:
* Portability: Currently supported platforms are GNU/Linux, FreeBSD, NetBSD,
OpenBSD, BeOS, Mac OS X, Solaris, HP-UX, OS/2, Windows 98 SE
(with IE 5.0) or later, and Windows NT 4.0 (with IE 5.0) or later.
OpenBSD, BeOS, Mac OS X, Solaris, OS/2, Windows 98 SE (with IE 5.0) or
later, and Windows NT 4.0 (with IE 5.0) or later.
* Adaptability: Unlike most similar projects, libdvdcss does not require the
region of your drive to be set and will try its best to read from the disc
even in the case of a region mismatch.
......
......@@ -27,7 +27,6 @@
#define HAVE_WINDOWS_H 1
#define HAVE_WINIOCTL_H 1
/* #undef HAVE__SYS_DEV_SCSI_SCSI_IOCTL_H */
/* #undef HPUX_SCTL_IO */
#define PACKAGE "libdvdcss"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_NAME "libdvdcss"
......
......@@ -68,9 +68,6 @@
# include <malloc.h>
# include <scsi.h>
#endif
#ifdef HPUX_SCTL_IO
# include <sys/scsi.h>
#endif
#ifdef SOLARIS_USCSI
# include <dlfcn.h>
# include <unistd.h>
......@@ -97,13 +94,6 @@
static void BeInitRDC ( raw_device_command *, int );
#endif
/*****************************************************************************
* Local prototypes, HP-UX specific
*****************************************************************************/
#if defined( HPUX_SCTL_IO )
static void HPUXInitSCTL ( struct sctl_io *sctl_io, int i_type );
#endif
/*****************************************************************************
* Local prototypes, Solaris specific
*****************************************************************************/
......@@ -172,16 +162,6 @@ int ioctl_ReadCopyright( int i_fd, int i_layer, int *pi_copyright )
*pi_copyright = p_buffer[ 4 ];
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_READ_DVD_STRUCTURE, 8 );
sctl_io.cdb[ 6 ] = i_layer;
sctl_io.cdb[ 7 ] = DVD_STRUCT_COPYRIGHT;
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
*pi_copyright = p_buffer[ 4 ];
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_READ_DVD_STRUCTURE, 8 );
......@@ -322,21 +302,6 @@ int ioctl_ReadDiscKey( int i_fd, int *pi_agid, uint8_t *p_key )
memcpy( p_key, p_buffer + 4, DVD_DISCKEY_SIZE );
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_READ_DVD_STRUCTURE, DVD_DISCKEY_SIZE + 4 );
sctl_io.cdb[ 7 ] = DVD_STRUCT_DISCKEY;
sctl_io.cdb[ 10 ] = *pi_agid << 6;
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
if( i_ret < 0 )
{
return i_ret;
}
memcpy( p_key, p_buffer + 4, DVD_DISCKEY_SIZE );
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_READ_DVD_STRUCTURE, DVD_DISCKEY_SIZE + 4 );
......@@ -479,19 +444,6 @@ int ioctl_ReadTitleKey( int i_fd, int *pi_agid, int i_pos, uint8_t *p_key )
memcpy( p_key, p_buffer + 5, DVD_KEY_SIZE );
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_REPORT_KEY, 12 );
sctl_io.cdb[ 2 ] = ( i_pos >> 24 ) & 0xff;
sctl_io.cdb[ 3 ] = ( i_pos >> 16 ) & 0xff;
sctl_io.cdb[ 4 ] = ( i_pos >> 8 ) & 0xff;
sctl_io.cdb[ 5 ] = ( i_pos ) & 0xff;
sctl_io.cdb[ 10 ] = DVD_REPORT_TITLE_KEY | (*pi_agid << 6);
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
memcpy( p_key, p_buffer + 5, DVD_KEY_SIZE );
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_REPORT_KEY, 12 );
......@@ -635,15 +587,6 @@ int ioctl_ReportAgid( int i_fd, int *pi_agid )
*pi_agid = p_buffer[ 7 ] >> 6;
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_REPORT_KEY, 8 );
sctl_io.cdb[ 10 ] = DVD_REPORT_AGID | (*pi_agid << 6);
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
*pi_agid = p_buffer[ 7 ] >> 6;
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_REPORT_KEY, 8 );
......@@ -755,15 +698,6 @@ int ioctl_ReportChallenge( int i_fd, int *pi_agid, uint8_t *p_challenge )
memcpy( p_challenge, p_buffer + 4, DVD_CHALLENGE_SIZE );
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_REPORT_KEY, 16 );
sctl_io.cdb[ 10 ] = DVD_REPORT_CHALLENGE | (*pi_agid << 6);
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
memcpy( p_challenge, p_buffer + 4, DVD_CHALLENGE_SIZE );
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_REPORT_KEY, 16 );
......@@ -885,15 +819,6 @@ int ioctl_ReportASF( int i_fd, int *pi_asf )
*pi_asf = p_buffer[ 7 ] & 1;
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_REPORT_KEY, 8 );
sctl_io.cdb[ 10 ] = DVD_REPORT_ASF;
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
*pi_asf = p_buffer[ 7 ] & 1;
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_REPORT_KEY, 8 );
......@@ -1017,15 +942,6 @@ int ioctl_ReportKey1( int i_fd, int *pi_agid, uint8_t *p_key )
memcpy( p_key, p_buffer + 4, DVD_KEY_SIZE );
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_REPORT_KEY, 12 );
sctl_io.cdb[ 10 ] = DVD_REPORT_KEY1 | (*pi_agid << 6);
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
memcpy( p_key, p_buffer + 4, DVD_KEY_SIZE );
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_REPORT_KEY, 12 );
......@@ -1136,13 +1052,6 @@ int ioctl_InvalidateAgid( int i_fd, int *pi_agid )
i_ret = ioctl( i_fd, B_RAW_DEVICE_COMMAND, &rdc, sizeof(rdc) );
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_REPORT_KEY, 0 );
sctl_io.cdb[ 10 ] = DVDCSS_INVALIDATE_AGID | (*pi_agid << 6);
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_REPORT_KEY, 0 );
......@@ -1252,16 +1161,6 @@ int ioctl_SendChallenge( int i_fd, int *pi_agid, uint8_t *p_challenge )
i_ret = ioctl( i_fd, B_RAW_DEVICE_COMMAND, &rdc, sizeof(rdc) );
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_SEND_KEY, 16 );
sctl_io.cdb[ 10 ] = DVD_SEND_CHALLENGE | (*pi_agid << 6);
p_buffer[ 1 ] = 0xe;
memcpy( p_buffer + 4, p_challenge, DVD_CHALLENGE_SIZE );
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_SEND_KEY, 16 );
......@@ -1385,16 +1284,6 @@ int ioctl_SendKey2( int i_fd, int *pi_agid, uint8_t *p_key )
i_ret = ioctl( i_fd, B_RAW_DEVICE_COMMAND, &rdc, sizeof(rdc) );
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_SEND_KEY, 12 );
sctl_io.cdb[ 10 ] = DVD_SEND_KEY2 | (*pi_agid << 6);
p_buffer[ 1 ] = 0xa;
memcpy( p_buffer + 4, p_key, DVD_KEY_SIZE );
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_SEND_KEY, 12 );
......@@ -1525,17 +1414,6 @@ int ioctl_ReportRPC( int i_fd, int *p_type, int *p_mask, int *p_scheme )
*p_mask = p_buffer[ 5 ];
*p_scheme = p_buffer[ 6 ];
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_REPORT_KEY, 8 );
sctl_io.cdb[ 10 ] = DVD_REPORT_RPC;
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
*p_type = p_buffer[ 4 ] >> 6;
*p_mask = p_buffer[ 5 ];
*p_scheme = p_buffer[ 6 ];
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_REPORT_KEY, 8 );
......@@ -1669,39 +1547,6 @@ static void BeInitRDC( raw_device_command *p_rdc, int i_type )
}
#endif
#if defined( HPUX_SCTL_IO )
/*****************************************************************************
* HPUXInitSCTL: initialize a sctl_io structure for the HP-UX kernel
*****************************************************************************
* This function initializes a HP-UX command structure for future
* use, either a read command or a write command.
*****************************************************************************/
static void HPUXInitSCTL( struct sctl_io *sctl_io, int i_type )
{
memset( sctl_io->data, 0, sctl_io->data_length );
switch( i_type )
{
case GPCMD_SEND_KEY:
/* leave the flags to 0 */
break;
case GPCMD_READ_DVD_STRUCTURE:
case GPCMD_REPORT_KEY:
sctl_io->flags = SCTL_READ;
break;
}
sctl_io->cdb[ 0 ] = i_type;
sctl_io->cdb[ 8 ] = (sctl_io->data_length >> 8) & 0xff;
sctl_io->cdb[ 9 ] = sctl_io->data_length & 0xff;
sctl_io->cdb_length = 12;
sctl_io->max_msecs = 1000000;
}
#endif
#if defined( SOLARIS_USCSI )
/*****************************************************************************
* SolarisInitUSCSI: initialize a USCSICMD structure for the Solaris kernel
......
......@@ -53,18 +53,6 @@ int ioctl_ReportRPC ( int, int *, int *, int * );
BeInitRDC( &rdc, (TYPE) );
#endif
/*****************************************************************************
* Common macro, HP-UX specific
*****************************************************************************/
#if defined( HPUX_SCTL_IO )
#define INIT_SCTL_IO( TYPE, SIZE ) \
struct sctl_io sctl_io = { 0 }; \
uint8_t p_buffer[ (SIZE)+1 ]; \
sctl_io.data = (void *)p_buffer; \
sctl_io.data_length = (SIZE); \
HPUXInitSCTL( &sctl_io, (TYPE) );
#endif
/*****************************************************************************
* Common macro, Solaris specific
*****************************************************************************/
......
......@@ -30,7 +30,7 @@
* device without having to bother about the decryption. The important features
* are:
* \li portability: Currently supported platforms are GNU/Linux, FreeBSD,
* NetBSD, OpenBSD, BeOS, Mac OS X, Solaris, HP-UX, OS/2, Windows 98 SE
* NetBSD, OpenBSD, BeOS, Mac OS X, Solaris, OS/2, Windows 98 SE
* (with IE 5.0) or later, and Windows NT 4.0 (with IE 5.0) or later.
* \li adaptability: Unlike most similar projects, libdvdcss does not require
* the region of your drive to be set and will try its best to read from
......
......@@ -65,16 +65,6 @@ static int ioctl_SendRPC( int i_fd, int i_pdrc )
i_ret = ioctl( i_fd, B_RAW_DEVICE_COMMAND, &rdc, sizeof(rdc) );
#elif defined( HPUX_SCTL_IO )
INIT_SCTL_IO( GPCMD_SEND_KEY, 8 );
sctl_io.cdb[ 10 ] = DVD_SEND_RPC;
p_buffer[ 1 ] = 6;
p_buffer[ 4 ] = i_pdrc;
i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
#elif defined( SOLARIS_USCSI )
INIT_USCSI( GPCMD_SEND_KEY, 8 );
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment