From a26e00c0b520782bfc178ac77f2822c85167167b Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Wed, 6 Aug 2014 18:49:28 +0000
Subject: haiku patch


diff --git a/Makefile.am b/Makefile.am
index 15002e9..327c134 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,12 +6,6 @@ dist_doc_DATA = AUTHORS COPYING NEWS README ChangeLog
 
 MAINTAINERCLEANFILES = ChangeLog
 
-ChangeLog: $(wildcard $(srcdir)/.git/logs/HEAD)
-	-cd $(srcdir) && git log > $(abs_builddir)/$(@)-tmp
-	test -s $(@)-tmp && mv $(@)-tmp $(@)
-	-rm -f $(@)-tmp
-	test -e $(@) || touch $(@)
-
 lib_LTLIBRARIES = libdvdcss.la
 EXTRA_PROGRAMS = csstest dvd_region
 
diff --git a/src/ioctl.c b/src/ioctl.c
index 5221c97..ebc2650 100644
--- a/src/ioctl.c
+++ b/src/ioctl.c
@@ -64,7 +64,7 @@
 #ifdef DVD_STRUCT_IN_DVD_H
 #   include <dvd.h>
 #endif
-#ifdef __BEOS__
+#if defined( __BEOS__ ) || defined( __HAIKU__ )
 #   include <malloc.h>
 #   include <scsi.h>
 #endif
@@ -93,7 +93,7 @@
 /*****************************************************************************
  * Local prototypes, BeOS specific
  *****************************************************************************/
-#if defined( __BEOS__ )
+#if defined( __BEOS__ ) || defined( __HAIKU__ )
 static void BeInitRDC ( raw_device_command *, int );
 #endif
 
@@ -162,7 +162,7 @@ int ioctl_ReadCopyright( int i_fd, int i_layer, int *pi_copyright )
 
     *pi_copyright = dvd.cpst;
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_READ_DVD_STRUCTURE, 8 );
 
     rdc.command[ 6 ] = i_layer;
@@ -307,7 +307,7 @@ int ioctl_ReadDiscKey( int i_fd, int *pi_agid, uint8_t *p_key )
 
     memcpy( p_key, dvd.data, DVD_DISCKEY_SIZE );
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_READ_DVD_STRUCTURE, DVD_DISCKEY_SIZE + 4 );
 
     rdc.command[ 7 ]  = DVD_STRUCT_DISCKEY;
@@ -466,7 +466,7 @@ int ioctl_ReadTitleKey( int i_fd, int *pi_agid, int i_pos, uint8_t *p_key )
 
     memcpy( p_key, auth_info.keychal, DVD_KEY_SIZE );
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 12 );
 
     rdc.command[ 2 ] = ( i_pos >> 24 ) & 0xff;
@@ -626,7 +626,7 @@ int ioctl_ReportAgid( int i_fd, int *pi_agid )
 
     *pi_agid = auth_info.agid;
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 8 );
 
     rdc.command[ 10 ] = DVD_REPORT_AGID | (*pi_agid << 6);
@@ -746,7 +746,7 @@ int ioctl_ReportChallenge( int i_fd, int *pi_agid, uint8_t *p_challenge )
 
     memcpy( p_challenge, auth_info.keychal, DVD_CHALLENGE_SIZE );
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 16 );
 
     rdc.command[ 10 ] = DVD_REPORT_CHALLENGE | (*pi_agid << 6);
@@ -876,7 +876,7 @@ int ioctl_ReportASF( int i_fd, int *pi_remove_me, int *pi_asf )
 
     *pi_asf = auth_info.asf;
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 8 );
 
     rdc.command[ 10 ] = DVD_REPORT_ASF;
@@ -1008,7 +1008,7 @@ int ioctl_ReportKey1( int i_fd, int *pi_agid, uint8_t *p_key )
 
     memcpy( p_key, auth_info.keychal, DVD_KEY_SIZE );
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 12 );
 
     rdc.command[ 10 ] = DVD_REPORT_KEY1 | (*pi_agid << 6);
@@ -1129,7 +1129,7 @@ int ioctl_InvalidateAgid( int i_fd, int *pi_agid )
 
     i_ret = ioctl( i_fd, DVDIOCREPORTKEY, &auth_info );
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 0 );
 
     rdc.command[ 10 ] = DVDCSS_INVALIDATE_AGID | (*pi_agid << 6);
@@ -1242,7 +1242,7 @@ int ioctl_SendChallenge( int i_fd, int *pi_agid, uint8_t *p_challenge )
 
     i_ret = ioctl( i_fd, DVDIOCSENDKEY, &auth_info );
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_SEND_KEY, 16 );
 
     rdc.command[ 10 ] = DVD_SEND_CHALLENGE | (*pi_agid << 6);
@@ -1375,7 +1375,7 @@ int ioctl_SendKey2( int i_fd, int *pi_agid, uint8_t *p_key )
 
     i_ret = ioctl( i_fd, DVDIOCSENDKEY, &auth_info );
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_SEND_KEY, 12 );
 
     rdc.command[ 10 ] = DVD_SEND_KEY2 | (*pi_agid << 6);
@@ -1514,7 +1514,7 @@ int ioctl_ReportRPC( int i_fd, int *p_type, int *p_mask, int *p_scheme )
     *p_mask = auth_info.region; // ??
     *p_scheme = auth_info.rpc_scheme;
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 8 );
 
     rdc.command[ 10 ] = DVD_REPORT_RPC;
@@ -1636,7 +1636,7 @@ int ioctl_ReportRPC( int i_fd, int *p_type, int *p_mask, int *p_scheme )
 
 /* Local prototypes */
 
-#if defined( __BEOS__ )
+#if defined( __BEOS__ ) || defined( __HAIKU__ )
 /*****************************************************************************
  * BeInitRDC: initialize a RDC structure for the BeOS kernel
  *****************************************************************************
diff --git a/src/ioctl.h b/src/ioctl.h
index 8533833..966f81b 100644
--- a/src/ioctl.h
+++ b/src/ioctl.h
@@ -42,7 +42,7 @@ int ioctl_ReportRPC         ( int, int *, int *, int * );
 /*****************************************************************************
  * Common macro, BeOS specific
  *****************************************************************************/
-#if defined( __BEOS__ )
+#if defined( __BEOS__ ) || defined( __HAIKU__ )
 #define INIT_RDC( TYPE, SIZE ) \
     raw_device_command rdc = { 0 }; \
     uint8_t p_buffer[ (SIZE)+1 ]; \
diff --git a/test/dvd_region.c b/test/dvd_region.c
index 47abea8..cc949fd 100644
--- a/test/dvd_region.c
+++ b/test/dvd_region.c
@@ -51,7 +51,7 @@ static int ioctl_SendRPC( int i_fd, int i_pdrc )
 
     i_ret = ioctl( i_fd, DVDIOCSENDKEY, &auth_info );
 
-#elif defined( __BEOS__ )
+#elif defined( __BEOS__ ) || defined( __HAIKU__ )
     INIT_RDC( GPCMD_SEND_KEY, 8 );
 
     rdc.command[ 10 ] = DVD_SEND_RPC;
-- 
1.8.3.4

