summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-wireless/wimax/files/wimax-1.5.1-64bit-fixes.patch')
-rw-r--r--net-wireless/wimax/files/wimax-1.5.1-64bit-fixes.patch114
1 files changed, 114 insertions, 0 deletions
diff --git a/net-wireless/wimax/files/wimax-1.5.1-64bit-fixes.patch b/net-wireless/wimax/files/wimax-1.5.1-64bit-fixes.patch
new file mode 100644
index 000000000000..82f6c2c6269b
--- /dev/null
+++ b/net-wireless/wimax/files/wimax-1.5.1-64bit-fixes.patch
@@ -0,0 +1,114 @@
+From 6435becb440cd66098adf9424f99a5099935bbea Mon Sep 17 00:00:00 2001
+From: Paul Donohue <wimax@PaulSD.com>
+Date: Tue, 5 Oct 2010 11:38:52 -0700
+Subject: [PATCH] wimax-network-service: 64-bit fixes
+
+Correct assorted 64-bit issues.
+
+Signed-off-by: Paul Donohue <wimax@PaulSD.com>
+---
+ .../Common/L4Common/SourceControl/BitmanCommon.h | 4 ++++
+ .../Common/L4Common/SourceControl/CommonTypes.h | 2 ++
+ .../OSAgnostic/Common/L5Common/L5CommonUtils.c | 2 +-
+ .../Product/AppSrvInfra/L5SocketsDispatcher.c | 7 ++++---
+ .../Linux/OSAL/Primitives/wimax_osal_basictypes.h | 3 ++-
+ 5 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h
+index bdb48dc..874df35 100644
+--- a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h
++++ b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h
+@@ -67,6 +67,10 @@
+ #define MASK_1 (0xFFFFFFFFFFFFFFFF)
+ #define MASK_2 (0xFFFFFFFFFFFFFFFE)
+ #define MASK_4 (0xFFFFFFFFFFFFFFFC)
++#elif __x86_64__
++#define MASK_1 (0xFFFFFFFFFFFFFFFF)
++#define MASK_2 (0xFFFFFFFFFFFFFFFE)
++#define MASK_4 (0xFFFFFFFFFFFFFFFC)
+ #else
+ #define MASK_1 (0xFFFFFFFF)
+ #define MASK_2 (0xFFFFFFFE)
+diff --git a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/CommonTypes.h b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/CommonTypes.h
+index b410c38..f8aba19 100644
+--- a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/CommonTypes.h
++++ b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/CommonTypes.h
+@@ -91,6 +91,8 @@ typedef const char* PCSTR;
+ /// when you need to hold both a pointer and a number
+ #ifdef WIN64
+ typedef UINT64 POINTER_AND_UINT;
++#elif __x86_64__
++typedef UINT64 POINTER_AND_UINT;
+ #else
+ typedef UINT POINTER_AND_UINT;
+ #endif
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/L5CommonUtils.c b/InfraStack/OSAgnostic/Common/L5Common/L5CommonUtils.c
+index 840a89c..229a2e1 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/L5CommonUtils.c
++++ b/InfraStack/OSAgnostic/Common/L5Common/L5CommonUtils.c
+@@ -182,7 +182,7 @@ L5_RESULT L5_COMMON_UTILS_SendControlMessage(
+
+ result = l5_common_utils_ActuallySendMessage( Socket, pMessage );
+
+- TRACE(TR_MOD_SERVICE, TR_SEV_NOTICE, "Result of ActuallySendMessage is %d %d", result);
++ TRACE(TR_MOD_SERVICE, TR_SEV_NOTICE, "Result of ActuallySendMessage is %d", result);
+
+ return result;
+ }
+diff --git a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
+index aa3a58c..33618cc 100644
+--- a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
++++ b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
+@@ -61,7 +61,8 @@ typedef struct
+ L5_CONNECTION L5Conn; // Can be NULL before handshake
+
+ // Is this an active slot?
+- BOOL bActive;
++ // Updated using OSAL_atomic_exchange, so this must be a LONG not a BOOL
++ LONG bActive;
+
+ // Connections from both sides
+ SOCKETS_CLIENT_ID Socket;
+@@ -702,7 +703,7 @@ void l5_sockets_dispatcher_HandleNewConnection( SOCKETS_CLIENT_ID Socket, void**
+ // XXX SEH error handling
+ OSAL_init_critical_section( &(pConn->csSendReceive) );
+ OSAL_init_critical_section( &(pConn->csHandlingRequest) );
+- OSAL_atomic_exchange( (LPLONG)&(pConn->bActive), TRUE );
++ OSAL_atomic_exchange( &(pConn->bActive), TRUE );
+
+ *context = pConn;
+
+@@ -1034,7 +1035,7 @@ void l5_sockets_dispatcher_DisconnectClient( tL5SocketsDispatcherConnection *pCo
+ L5_DISPATCHER_Disconnect( pConn->L5Conn );
+ }
+
+- OSAL_atomic_exchange( (LPLONG)&(pConn->bActive), FALSE );
++ OSAL_atomic_exchange( &(pConn->bActive), FALSE );
+
+ OSAL_exit_critical_section( &(pConn->csHandlingRequest) );
+ OSAL_delete_critical_section(&pConn->csSendReceive);
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_basictypes.h b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_basictypes.h
+index 1085c4b..f13fade 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_basictypes.h
++++ b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_basictypes.h
+@@ -39,6 +39,7 @@
+ #include <string.h>
+ #include <ctype.h>
+ #include <sys/stat.h>
++#include <pthread.h>
+
+ #if 0
+ #include <sys/socket.h>
+@@ -90,7 +91,7 @@ typedef void* OSAL_critical_section;
+
+ typedef int pid_t;
+
+-typedef int OSAL_thread_t;
++typedef pthread_t OSAL_thread_t;
+
+ typedef void * OSAL_event_t;
+
+--
+1.7.3.1
+
+