summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shvetsov <alexxy@gentoo.org>2011-02-23 11:12:08 +0000
committerAlexey Shvetsov <alexxy@gentoo.org>2011-02-23 11:12:08 +0000
commit67d66c4cbcc027efb36a9afb08fd97ef3d1e3749 (patch)
tree798c6e9bef3330de368c9eef8034f5d88a4c45c9 /net-wireless
parentVersion bump, remove old versions (which are not compatible with latest pcsc-... (diff)
downloadgentoo-2-67d66c4cbcc027efb36a9afb08fd97ef3d1e3749.tar.gz
gentoo-2-67d66c4cbcc027efb36a9afb08fd97ef3d1e3749.tar.bz2
gentoo-2-67d66c4cbcc027efb36a9afb08fd97ef3d1e3749.zip
[net-wireless/wimax] Add updates from git. Also fix bug #356121
(Portage version: 2.2.0_alpha25/cvs/Linux x86_64)
Diffstat (limited to 'net-wireless')
-rw-r--r--net-wireless/wimax/ChangeLog29
-rw-r--r--net-wireless/wimax/files/updates/0001-wimax-network-service-64-bit-fixes.patch113
-rw-r--r--net-wireless/wimax/files/updates/0002-cleanup-fix-struct-packing-and-type-casting-issues.patch449
-rw-r--r--net-wireless/wimax/files/updates/0003-Fix-pthread_mutex_unlock-duplicate-call-in-OSALTrace.patch89
-rw-r--r--net-wireless/wimax/files/updates/0004-Fix-a-lot-of-warnings-about-undefined-malloc-free.patch117
-rw-r--r--net-wireless/wimax/files/updates/0005-remove-duplicate-typedef-for-u8.patch28
-rw-r--r--net-wireless/wimax/files/updates/0006-wimaxcu-fix-array-size.patch30
-rw-r--r--net-wireless/wimax/files/updates/0007-supplicant-fix-invocation-of-eap_peer_sm_init.patch44
-rw-r--r--net-wireless/wimax/files/updates/0008-supplicant-Fix-eap_methods-array-setup-and-declarati.patch49
-rw-r--r--net-wireless/wimax/files/updates/0009-daemon-don-t-mask-SEGV-just-crash-and-dump-core.patch140
-rw-r--r--net-wireless/wimax/files/updates/0010-OSAL-fix-OSAL_wcsmp-for-Linux-environments.patch37
-rw-r--r--net-wireless/wimax/files/updates/0011-configure-remove-O2-by-default.patch40
-rw-r--r--net-wireless/wimax/files/updates/0012-Allow-IP-handling-script-to-be-configurable-at-runti.patch155
-rw-r--r--net-wireless/wimax/files/updates/0013-Fix-typo-in-logrotate-script.patch26
-rw-r--r--net-wireless/wimax/files/updates/0014-KDapi-Big-endian-support.patch290
-rw-r--r--net-wireless/wimax/files/updates/0015-Wrappers-wmx_Preambles_t-alignment.patch40
-rw-r--r--net-wireless/wimax/files/updates/0016-Wrappers-wmx_SystemStateUpdate-alignment.patch29
-rw-r--r--net-wireless/wimax/files/updates/0017-L4_INTEL_80216_INDICATION-typedef-redefinition.patch32
-rw-r--r--net-wireless/wimax/files/updates/0018-L5Common-Big-endian-support.patch79
-rw-r--r--net-wireless/wimax/files/updates/0019-Supplicant-Big-endian-support.patch118
-rw-r--r--net-wireless/wimax/files/updates/0020-endianess-use-endian.h-to-determine-endianess-vs-sta.patch95
-rw-r--r--net-wireless/wimax/files/wimax6
-rw-r--r--net-wireless/wimax/wimax-1.5.1-r1.ebuild68
23 files changed, 2099 insertions, 4 deletions
diff --git a/net-wireless/wimax/ChangeLog b/net-wireless/wimax/ChangeLog
index 88ae7b0a171c..0f070e3d57b5 100644
--- a/net-wireless/wimax/ChangeLog
+++ b/net-wireless/wimax/ChangeLog
@@ -1,6 +1,33 @@
# ChangeLog for net-wireless/wimax
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/wimax/ChangeLog,v 1.6 2011/01/02 14:37:39 alexxy Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/wimax/ChangeLog,v 1.7 2011/02/23 11:12:08 alexxy Exp $
+
+*wimax-1.5.1-r1 (23 Feb 2011)
+
+ 23 Feb 2011; Alexey Shvetsov <alexxy@gentoo.org>
+ +files/updates/0001-wimax-network-service-64-bit-fixes.patch,
+ +files/updates/0002-cleanup-fix-struct-packing-and-type-casting-issues.patch,
+ +files/updates/0003-Fix-pthread_mutex_unlock-duplicate-call-in-OSALTrace.patch,
+ +files/updates/0004-Fix-a-lot-of-warnings-about-undefined-malloc-free.patch,
+ +files/updates/0005-remove-duplicate-typedef-for-u8.patch,
+ +files/updates/0006-wimaxcu-fix-array-size.patch,
+ +files/updates/0007-supplicant-fix-invocation-of-eap_peer_sm_init.patch,
+ +files/updates/0008-supplicant-Fix-eap_methods-array-setup-and-declarati.patch,
+ +files/updates/0009-daemon-don-t-mask-SEGV-just-crash-and-dump-core.patch,
+ +files/updates/0010-OSAL-fix-OSAL_wcsmp-for-Linux-environments.patch,
+ +files/updates/0011-configure-remove-O2-by-default.patch,
+ +files/updates/0012-Allow-IP-handling-script-to-be-configurable-at-runti.patch,
+ +files/updates/0013-Fix-typo-in-logrotate-script.patch,
+ +files/updates/0014-KDapi-Big-endian-support.patch,
+ +files/updates/0015-Wrappers-wmx_Preambles_t-alignment.patch,
+ +files/updates/0016-Wrappers-wmx_SystemStateUpdate-alignment.patch,
+ +files/updates/0017-L4_INTEL_80216_INDICATION-typedef-redefinition.patch,
+ +files/updates/0018-L5Common-Big-endian-support.patch,
+ +files/updates/0019-Supplicant-Big-endian-support.patch,
+ +files/updates/0020-endianess-use-endian.h-to-determine-endianess-vs-sta.patch,
+ +wimax-1.5.1-r1.ebuild,
+ files/wimax:
+ Add updates from git. Also fix bug #356121
02 Jan 2011; Alexey Shvetsov <alexxy@gentoo.org> wimax-1.5.1.ebuild:
Fix bug #331289
diff --git a/net-wireless/wimax/files/updates/0001-wimax-network-service-64-bit-fixes.patch b/net-wireless/wimax/files/updates/0001-wimax-network-service-64-bit-fixes.patch
new file mode 100644
index 000000000000..644c90a6c3ec
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0001-wimax-network-service-64-bit-fixes.patch
@@ -0,0 +1,113 @@
+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 01/20] 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.4.1
+
diff --git a/net-wireless/wimax/files/updates/0002-cleanup-fix-struct-packing-and-type-casting-issues.patch b/net-wireless/wimax/files/updates/0002-cleanup-fix-struct-packing-and-type-casting-issues.patch
new file mode 100644
index 000000000000..25dc45c7a765
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0002-cleanup-fix-struct-packing-and-type-casting-issues.patch
@@ -0,0 +1,449 @@
+From bb496da3c393e415ae85917d66e3bf0610303c11 Mon Sep 17 00:00:00 2001
+From: Paul Donohue <wimax@PaulSD.com>
+Date: Tue, 5 Oct 2010 16:40:55 -0400
+Subject: [PATCH 02/20] cleanup: fix struct packing and type casting issues
+
+cleanup: fix struct packing and type casting issues
+
+Signed-off-by: Paul Donohue <wimax@PaulSD.com>
+---
+ .../Common/CommonServices/VersionUtils.h | 4 +++-
+ .../Common/L5Common/IndicatorsSubscribers.c | 10 +++++-----
+ InfraStack/OSAgnostic/Common/L5Common/L5Common.h | 1 +
+ .../Product/AppSrvInfra/L5SocketsDispatcher.c | 2 +-
+ .../WiMax/Agents/NDnS/APDO/NDnSAgent_APDO_CBs.c | 4 ++--
+ .../WiMax/Agents/NDnS/Source/NDnSAgent_Internals.h | 4 ++--
+ .../Agents/Supplicant/Source/SupplicantAgent.c | 2 +-
+ .../Agents/Supplicant/Source/ds/driver_broadcom.h | 8 ++++----
+ .../WiMax/Wrappers/Include/wmxSDK_Msc_2.h | 9 ++++++++-
+ .../WiMax/Wrappers/Include/wmxSDK_Nds_1.h | 3 ++-
+ .../WiMax/Wrappers/Include/wmxSDK_Nds_3.h | 6 ++++++
+ .../WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h | 4 ++++
+ .../OSAgnostic/WiMax/Wrappers/NDnS/wmxSDK_Coex_1.c | 2 +-
+ .../InfraStackModules/CommonAPIHeaders/WiMaxType.h | 4 +++-
+ .../Linux/OSAL/Primitives/wimax_osal_linux_types.h | 2 +-
+ .../Linux/OSAL/Primitives/wimax_osal_trace.c | 2 +-
+ .../OSDependent/Linux/wimaxcu/wimaxcu_scan_op.c | 4 ++--
+ 17 files changed, 47 insertions(+), 24 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/Common/CommonServices/VersionUtils.h b/InfraStack/OSAgnostic/Common/CommonServices/VersionUtils.h
+index 2b881eb..526f8f4 100644
+--- a/InfraStack/OSAgnostic/Common/CommonServices/VersionUtils.h
++++ b/InfraStack/OSAgnostic/Common/CommonServices/VersionUtils.h
+@@ -51,6 +51,7 @@ typedef struct _wmx_Version_t
+ UINT32 revision;
+ UINT32 branch;
+ } wmx_Version_t, *wmx_pVersion_t;
++#pragma pack( pop )
+
+ typedef char* wmx_ModuleName_t;
+ typedef char* wmx_pVersionStr_t;
+@@ -62,6 +63,7 @@ typedef struct _wmx_VersionEntry_t
+ wmx_ModuleName_t moduleName;
+ wmx_Version_t version;
+ } wmx_VersionEntry_t, *wmx_pVersionEntry_t;
++#pragma pack( pop )
+
+
+ BOOL VersionUtils_Init();
+@@ -73,4 +75,4 @@ EXPORT void GetFullVersionString(char *str, wmx_Version_t version);
+ EXTERN_C EXPORT VERSION_RESULT ValidateVersion(wmx_ModuleName_t moduleName, wmx_Version_t actualVersion, wmx_Version_t expectedVersion);
+
+
+-#endif // _VERSION_UTILS_H
+\ No newline at end of file
++#endif // _VERSION_UTILS_H
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+index 41bb044..53559af 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
++++ b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+@@ -153,7 +153,7 @@ EXPORT void SendIndicationToSubscribers( UINT32 internalRequestID, void *_buffer
+ SendIndData *buffer = _buffer;
+ ListItem* handle;
+ L5_TARGET_ID targetID;
+- ULONG_PTR data;
++ L5_TARGET_ID data;
+ L5_RESULT res;
+ IndicatorSubscribers *indSubscribers;
+ List tempList;
+@@ -174,12 +174,12 @@ EXPORT void SendIndicationToSubscribers( UINT32 internalRequestID, void *_buffer
+ handle = CreateIterator(&(indSubscribers->subscribersList));
+ // handle = Iterator_GetNext(&(indSubscribers->subscribersList), handle, (void**)&targetID);
+ handle = Iterator_GetNext(&(indSubscribers->subscribersList), handle, (void**)(&data));
+- targetID = (int) data;
++ targetID = data;
+ while (handle != NULL)
+ {
+ List_AddItem(&tempList, (void *)targetID);
+ handle = Iterator_GetNext(&(indSubscribers->subscribersList), handle, (void**)(&data));
+- targetID = (int)data; ////
++ targetID = data; ////
+
+ // handle = Iterator_GetNext(&(indSubscribers->subscribersList), handle, (void**)&targetID);
+ }
+@@ -189,7 +189,7 @@ EXPORT void SendIndicationToSubscribers( UINT32 internalRequestID, void *_buffer
+ //iterate the temp list and send the targets indication:
+ handle = CreateIterator(&tempList);
+ handle = Iterator_GetNext(&tempList, handle, (void**)(&data));
+- targetID = (int) data;
++ targetID = data;
+
+ // handle = Iterator_GetNext(&tempList, handle, (void**)&targetID);
+ while (handle != NULL)
+@@ -219,7 +219,7 @@ EXPORT void SendIndicationToSubscribers( UINT32 internalRequestID, void *_buffer
+ // handle = Iterator_GetNext(&tempList, handle, (void**)&targetID);
+
+ handle = Iterator_GetNext(&tempList, handle, (void**)(&data));
+- targetID = (int) data;
++ targetID = data;
+
+
+ // TODO - XXX - check L5_COMMON_UTILS_IsTargetNotExist
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/L5Common.h b/InfraStack/OSAgnostic/Common/L5Common/L5Common.h
+index 037ccd5..6050052 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/L5Common.h
++++ b/InfraStack/OSAgnostic/Common/L5Common/L5Common.h
+@@ -282,5 +282,6 @@ typedef struct _tL5DispatcherFunctions
+ extern tL5DispatcherFunctions *GetL5Funcs();
+ extern tUtilityFunctions *GetUtilsFuncs();
+
++#pragma pack(pop)
+
+ #endif
+diff --git a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
+index 33618cc..a7346a3 100644
+--- a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
++++ b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
+@@ -61,7 +61,7 @@ typedef struct
+ L5_CONNECTION L5Conn; // Can be NULL before handshake
+
+ // Is this an active slot?
+- // Updated using OSAL_atomic_exchange, so this must be a LONG not a BOOL
++ // Updated using OSAL_atomic_exchange(), so this must be a LONG not a BOOL
+ LONG bActive;
+
+ // Connections from both sides
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/NDnS/APDO/NDnSAgent_APDO_CBs.c b/InfraStack/OSAgnostic/WiMax/Agents/NDnS/APDO/NDnSAgent_APDO_CBs.c
+index 5e9fcbc..75d5786 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/NDnS/APDO/NDnSAgent_APDO_CBs.c
++++ b/InfraStack/OSAgnostic/WiMax/Agents/NDnS/APDO/NDnSAgent_APDO_CBs.c
+@@ -487,8 +487,8 @@ void NDnSAgent_HandleApdoLinkStatus(wmx_ApdoLinkStatus_t linkStatus)
+ lastConnectedStatus = Ndns_GetLastConnectedState();
+
+ // Check if the link status has changed
+- if (linkStatus == APDO_linkUp && lastConnectedStatus == FALSE ||
+- linkStatus == APDO_linkDown && lastConnectedStatus == TRUE)
++ if ((linkStatus == APDO_linkUp && lastConnectedStatus == FALSE) ||
++ (linkStatus == APDO_linkDown && lastConnectedStatus == TRUE))
+ {
+ return; // No change in the link status
+ }
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/NDnS/Source/NDnSAgent_Internals.h b/InfraStack/OSAgnostic/WiMax/Agents/NDnS/Source/NDnSAgent_Internals.h
+index e247d28..da7a344 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/NDnS/Source/NDnSAgent_Internals.h
++++ b/InfraStack/OSAgnostic/WiMax/Agents/NDnS/Source/NDnSAgent_Internals.h
+@@ -200,8 +200,8 @@ typedef struct _wmx_NDnS_Context_t
+ wmx_ConnectStatus_t connectStatus;
+ int DummyForCompilerHappy3;
+ TinyFSM_t fsm;
+- L4C_Task scheduledTask;
+- wmx_ScheduledTaskData_t scheduledTaskData;
++ LONG scheduledTask; // Updated using OSAL_atomic_exchange(), so this must be a LONG not an L4C_Task
++ wmx_ScheduledTaskData_t scheduledTaskData;
+ wmx_Status_t scanStatus;
+ wmx_LinkLossType_t linkLossType;
+ wmx_ScanType_t currentScanType;
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
+index 1eeae5b..3948615 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
++++ b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
+@@ -482,7 +482,7 @@ wmx_Status_t InitSupplicantLibrary(VOID)
+ eap_ctx.eap_config.password_len = 8;
+ eap_ctx.eap_config.ca_cert = (u8 *) os_strdup("ca.pem");
+ eap_ctx.eap_config.fragment_size = TLS_MAX_SIZE;
+- eap_ctx.eap_config.eap_methods = eap_methods;
++ eap_ctx.eap_config.eap_methods = &eap_methods;
+
+ memset(&eap_cb, 0, sizeof(eap_cb));
+ eap_cb.get_config = peer_get_config;
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/ds/driver_broadcom.h b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/ds/driver_broadcom.h
+index 8973978..72f6384 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/ds/driver_broadcom.h
++++ b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/ds/driver_broadcom.h
+@@ -20,15 +20,15 @@ typedef s8 int8;
+ typedef unsigned char bool; /* consistent w/BOOL */
+
+ /* require default structure packing */
+-#if !defined(__GNUC__)
+-#pragma pack(push,8)
+-#endif
++//#if !defined(__GNUC__)
++//#pragma pack(push,8)
++//#endif
+
+ /* enable structure packing */
+ #if defined(__GNUC__)
+ #define PACKED __attribute__((packed))
+ #else
+-#pragma pack(1)
++#pragma pack(push,1)
+ #define PACKED
+ #endif
+
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Msc_2.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Msc_2.h
+index 33b3336..236217d 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Msc_2.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Msc_2.h
+@@ -87,6 +87,7 @@ typedef struct _wmx_ModelType_t
+ UINT32 modelTypeID;
+ char modelTypeName[WMX_MODEL_TYPE_NAME_MAX_LENGTH];
+ } wmx_ModelType_t, *wmx_pModelType_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A constant specifying the maximal length of the manufacturer string.
+@@ -102,6 +103,7 @@ typedef struct _wmx_Manufacturer_t
+ UINT32 manufacturerID;
+ char manufacturerName[WMX_MANUFACTURER_NAME_MAX_LENGTH];
+ } wmx_Manufacturer_t, *wmx_pManufacturer_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// Definition of a struct that holds the manufacturer ID and string.
+@@ -111,6 +113,7 @@ typedef struct _wmx_DevicePID_t
+ {
+ UINT32 productID;
+ } wmx_DevicePID_t, *wmx_pDevicePID_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A constant specifying the maximal length of the serial number string.
+@@ -125,6 +128,7 @@ typedef struct _wmx_SerialNumber_t
+ {
+ char serialNumber[WMX_SERIAL_NUMBER_MAX_LENGTH];
+ } wmx_SerialNumber_t, *wmx_pSerialNumber_t;
++#pragma pack( pop )
+
+
+
+@@ -140,6 +144,7 @@ typedef struct _wmx_SerialNumber_t
+ // UINT32 TotalTxBytes;
+ // UINT32 TotalTxPackets;
+ //} wmx_Statistics_t, *wmx_pStatistics_t;
++//#pragma pack( pop )
+
+
+ /// <summary>
+@@ -153,6 +158,7 @@ typedef struct _wmx_SfStatistics_t
+ UINT32 noReceivedBytes;
+ UINT32 noTransmittedBytes;
+ } wmx_SfStatistics_t, *wmx_pSfStatistics_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A constant specifying the maximal length of the strings in the wmx_DeviceVersion_t struct.
+@@ -171,6 +177,7 @@ typedef struct _wmx_DeviceVersion_t
+ char BoardName[WMX_DEVICE_VERSION_MAX_LENGTH];
+ char Software[WMX_DEVICE_VERSION_MAX_LENGTH];
+ } wmx_DeviceVersion_t, *wmx_pDeviceVersion_t;
++#pragma pack( pop )
+
+
+
+@@ -230,4 +237,4 @@ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_GetDeviceDetailsEx( wmx_MacAd
+ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_GetDeviceVersion( wmx_pDeviceVersion_t pDeviceVersion );
+
+ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_ResetDevice( );
+-#endif // _WMX_SDK_MSC_2_H
+\ No newline at end of file
++#endif // _WMX_SDK_MSC_2_H
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h
+index 9a7863f..7fb5817 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h
+@@ -235,6 +235,7 @@ typedef struct _wmx_Statistics_t
+ UINT32 TotalTxBytes;
+ UINT32 TotalTxPackets;
+ } wmx_Statistics_t, *wmx_pStatistics_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// Type definition for a structure giving a detailed info on a system state.
+@@ -671,4 +672,4 @@ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_IsAssociated(wmx_pAssociate_t
+ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_GetSpLockStatus(wmx_pSpLock_t pSpLockStatus);
+ wmx_Status_t wmx_CmdSpLockUnLock(wmx_SpLockCode_t SpLockCode);
+
+-#endif // _WMX_SDK_NDS_1_H
+\ No newline at end of file
++#endif // _WMX_SDK_NDS_1_H
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_3.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_3.h
+index 05fc677..2bb463d 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_3.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_3.h
+@@ -110,6 +110,7 @@ typedef struct _wmx_SLA_t
+ wmx_LinkSpeed_t downLinkSpeed;
+ UINT32 agreementLevel;
+ } wmx_SLA_t, *wmx_pSLA_t;
++#pragma pack( pop )
+
+ #define WMX_SUBSCRIBER_NAME_MAX_SIZE 100
+ #define WMX_SUBSCRIBER_ID_MAX_SIZE 256
+@@ -125,6 +126,7 @@ typedef struct _wmx_SubscriberInfo_t
+ BOOL userCredRequired;
+ //////////////////
+ } wmx_SubscriberInfo_t, *wmx_pSubscriberInfo_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// Type definition for a struct containing information of a specific NSP.
+@@ -149,6 +151,7 @@ typedef struct _wmx_NSP_t
+ wmx_SubscriberInfo_t subscribers[WMX_NSP_SUBSCRIBERS_MAX_NUM]; // The list of subscribers associated with this NSP on this device.
+ UINT32 numOfSubscribers;
+ } wmx_NSP_t, *wmx_pNSP_t;
++#pragma pack( pop )
+
+ // TODO: Add description
+ #pragma pack( push, 1 )
+@@ -158,6 +161,7 @@ typedef struct _wmx_ContactInformation_t
+ UINT32 uriType; //TODO - don't forget to validate the values 0-255
+ char text[MAX_SIZE_OF_STRING_BUFFER];
+ } wmx_ContactInformation_t, *wmx_pContactInformation_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// Type definition for an enum specifying the possible outcomes of a scan cycle.
+@@ -224,6 +228,7 @@ typedef struct _wmx_UserLinkStatus_t
+ wmx_LinkSpeed_t downLinkSpeed;
+ wmx_BSid_t bsId;
+ } wmx_UserLinkStatus_t, *wmx_pUserLinkStatus_t;
++#pragma pack( pop )
+
+ #pragma pack( push, 1 )
+ typedef struct _wmx_UserStatistics_t
+@@ -234,6 +239,7 @@ typedef struct _wmx_UserStatistics_t
+ UINT32 TotalTxBytes;
+ UINT32 TotalTxPackets;
+ } wmx_UserStatistics_t, *wmx_pUserStatistics_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A constant specifying the maximal length of a NSPs structs vector (in terms of the number of wmx_NSP_t structs the vector can contain).
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h
+index 2dc5f37..21fdf62 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h
+@@ -435,6 +435,7 @@ typedef struct _wmx_RfSwitchesStatus_t
+ wmx_RfStatus_t swRfStatus;
+ wmx_RfStatus_t hwRfStatus;
+ }wmx_RfSwitchesStatus_t, *wmx_pRfSwitchesStatus_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A struct in which the API will place information (such as URLs, VoIP numbers, �) that are relevant to the
+@@ -446,6 +447,7 @@ typedef struct _wmx_APDOContactInfo_t
+ {
+ char contactDetails[MAX_CONTACT_DETAILS_SIZE];
+ } wmx_APDOContactInfo_t, *wmx_pAPDOContactInfo_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A struct in which the API will place information which is needed in the package update process.
+@@ -460,6 +462,7 @@ typedef struct _wmx_PackageInfo_t
+ BOOL mandatoryUpdate; /**< (TRUE = mandatory FALSE, optional) */
+ BOOL warnUser; /**< (TRUE = warn user, FALSE = no user warning */
+ } wmx_PackageInfo_t, *wmx_pPackageInfo_t;
++#pragma pack( pop )
+
+ typedef enum _wmx_SPLockStatus_t
+ {
+@@ -507,5 +510,6 @@ typedef struct _wmx_InstallationInfo_t
+ char fwVersion[MAX_INSTALLAION_VERSION_SIZE];
+ char hwVersion[MAX_INSTALLAION_VERSION_SIZE];
+ } wmx_InstallationInfo_t, *wmx_pInstallationInfo_t;
++#pragma pack( pop )
+
+ #endif // _WMX_SDK_NDS_CMN_H
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/NDnS/wmxSDK_Coex_1.c b/InfraStack/OSAgnostic/WiMax/Wrappers/NDnS/wmxSDK_Coex_1.c
+index 97bd45c..beac961 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/NDnS/wmxSDK_Coex_1.c
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/NDnS/wmxSDK_Coex_1.c
+@@ -64,7 +64,7 @@ wmx_Status_t wmx_SetCoexistenceMode(wmx_CoexistenceMode_t coexMode)
+ if (coexMode == WMX_MODE_CM && UserCall){
+ TRACE(TR_MOD_NDNS_AGENT, TR_SEV_NOTICE, "SetCoexistanceMode recieved set CM mode in CM mode.");
+ if (act_thread_coexHandler!=NULL){
+- OSAL_kill_thread(&act_thread_coexHandler);
++ OSAL_kill_thread(act_thread_coexHandler);
+ retStatus = WMX_ST_OK;
+ }
+ // setting fall to xor key to zero so we never fall to xor even when driver falls and brings itself up
+diff --git a/InfraStack/OSDependent/Linux/InfraStackModules/CommonAPIHeaders/WiMaxType.h b/InfraStack/OSDependent/Linux/InfraStackModules/CommonAPIHeaders/WiMaxType.h
+index 9afb111..4c56ab9 100644
+--- a/InfraStack/OSDependent/Linux/InfraStackModules/CommonAPIHeaders/WiMaxType.h
++++ b/InfraStack/OSDependent/Linux/InfraStackModules/CommonAPIHeaders/WiMaxType.h
+@@ -305,7 +305,7 @@ typedef struct _WIMAX_API_RF_SWITCHES_STATUS
+ {
+ UINT32 structureSize; /**< size of this structure. */
+ WIMAX_API_PROFILE_ID profileID; /**< profile ID. Profile id 0 is reserve to connection without specifying a user account. */
+- char profileName[MAX_SIZE_OF_STRING_BUFFER]; /**< profile name. */
++ WIMAX_CHAR profileName[MAX_SIZE_OF_STRING_BUFFER]; /**< profile name. */
+ } WIMAX_API_PROFILE_INFO, *WIMAX_API_PROFILE_INFO_P;
+
+ /// Device version
+@@ -467,6 +467,8 @@ typedef struct _WIMAX_API_RF_SWITCHES_STATUS
+ } WIMAX_API_INTERFACE_INFO, *WIMAX_API_INTERFACE_INFO_P;
+ #endif
+
++#pragma pack( pop )
++
+ /// The statuses provided by this API can generally be mapped to movements along the SDK common state machine. The indications may provide further detailed information using the API�s arguments when relevant.
+ /// \param[in] pDeviceId - Pointer to Device Identifier passed on open of device.
+ /// \param[in] deviceStatus - The device Status value
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_linux_types.h b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_linux_types.h
+index 99b01f6..364c511 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_linux_types.h
++++ b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_linux_types.h
+@@ -105,7 +105,7 @@ typedef unsigned long long UINT64;
+
+ typedef unsigned int DWORD;
+
+-typedef int INT_PTR;
++typedef int * INT_PTR;
+
+
+ typedef char INT8;
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
+index 26e2a91..6ced165 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
++++ b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
+@@ -173,7 +173,7 @@ void osallog(char *ch, int flush)
+ }
+ }
+ // write into file
+- fprintf(log, ch);
++ fprintf(log, "%s", ch);
+ // put extra to log next line to build
+ //fprintf(log,"\n");
+ if (flush == 1)
+diff --git a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_scan_op.c b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_scan_op.c
+index 2f438ab..7d7b0a5 100644
+--- a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_scan_op.c
++++ b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_scan_op.c
+@@ -468,7 +468,7 @@ int wimaxcu_get_network_list(WIMAX_API_DEVICE_ID_P p_device_id, CMD_ARGS scan_mo
+
+ } else if (scan_mode == CMD_SCAN_ARG_WIDE) {
+ // Get User Connect Mode
+- int userConnectMode;
++ WIMAX_API_CONNECTION_MODE userConnectMode;
+ wmxStatus = GetConnectionMode(p_device_id, &userConnectMode);
+ if (WIMAX_API_RET_SUCCESS != wmxStatus) {
+ PrintWmxStatus(wmxStatus);
+@@ -904,4 +904,4 @@ int wimaxcu_stop_scan(WIMAX_API_DEVICE_ID_P p_device_id)
+ }
+
+ }
+-}
+\ No newline at end of file
++}
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0003-Fix-pthread_mutex_unlock-duplicate-call-in-OSALTrace.patch b/net-wireless/wimax/files/updates/0003-Fix-pthread_mutex_unlock-duplicate-call-in-OSALTrace.patch
new file mode 100644
index 000000000000..bf7d54985306
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0003-Fix-pthread_mutex_unlock-duplicate-call-in-OSALTrace.patch
@@ -0,0 +1,89 @@
+From 3bf826a20047b1d5071369ec0b8bdbc4efe30a22 Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Tue, 5 Oct 2010 15:55:33 -0700
+Subject: [PATCH 03/20] Fix pthread_mutex_unlock duplicate call in OSALTrace()
+
+Fix pthread_mutex_unlock duplicate call in OSALTrace(), i.e. second
+pthread_mutex_unlock() called against already unlocked mutex. glibc
+tolerant to this inconsistency, but uClibc not.
+
+Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ .../Linux/OSAL/Primitives/wimax_osal_trace.c | 24 ++++++++-----------
+ 1 files changed, 10 insertions(+), 14 deletions(-)
+
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
+index 6ced165..cbdd24f 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
++++ b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
+@@ -53,7 +53,7 @@ int g_iloglevel = 2;
+ int g_iloglevelreadflag = 0;
+
+ // to avoid multi tread environment to log the thread
+-pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
++static pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+ /*
+ *
+@@ -97,23 +97,19 @@ pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+ void OSALTrace(char *szformat, ...)
+ {
+- time_t currTime;
+- struct tm timeinfo;
+-
+ // log type should be 0 to 4 default value will assign info
+ if (g_OsalTraceInfo.loglevel > g_iloglevel
+ || g_OsalTraceInfo.loglevel < 0) {
+- // release the lock if get any errors
+- pthread_mutex_unlock(&g_mutex);
+- return;
++ goto out;
+ }
+ // if argument path null....
+ if (szformat == NULL) {
+- // release the lock if get any errors
+- pthread_mutex_unlock(&g_mutex);
+- return;
++ goto out;
+ }
+
++ time_t currTime;
++ struct tm timeinfo;
++
+ va_list args;
+ static char Buffer[EGIHT_X_BUFFER] = { 0 };
+ static char outBuffer[EGIHT_X_BUFFER] = { 0 };
+@@ -137,6 +133,10 @@ void OSALTrace(char *szformat, ...)
+ sprintf(outBuffer, "%s\n", Buffer);
+
+ osallog(outBuffer, 1);
++
++out:
++ // release the lock once done
++ pthread_mutex_unlock(&g_mutex);
+ }
+
+ /*
+@@ -167,8 +167,6 @@ void osallog(char *ch, int flush)
+ log = fopen(OSALTRACE_FILE, "wt");
+ if (!log) {
+ syslog(LOG_ERR, "wimaxd[osal] - can not open logfile (%s) for writing.\n", OSALTRACE_FILE);
+- // release the lock if get any errors
+- pthread_mutex_unlock(&g_mutex);
+ return; // bail out if we can't log
+ }
+ }
+@@ -182,8 +180,6 @@ void osallog(char *ch, int flush)
+ #ifdef OSAL_CONSOLE
+ printf(ch);
+ #endif
+- // release the lock once done with log
+- pthread_mutex_unlock(&g_mutex);
+
+ // fclose(log);
+ }
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0004-Fix-a-lot-of-warnings-about-undefined-malloc-free.patch b/net-wireless/wimax/files/updates/0004-Fix-a-lot-of-warnings-about-undefined-malloc-free.patch
new file mode 100644
index 000000000000..081ef41834af
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0004-Fix-a-lot-of-warnings-about-undefined-malloc-free.patch
@@ -0,0 +1,117 @@
+From 763bfcc760083c2f2731f97578e053a945d5e19d Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Tue, 5 Oct 2010 15:58:06 -0700
+Subject: [PATCH 04/20] Fix a lot of warnings about undefined malloc/free
+
+Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ .../OSAgnostic/Common/CommonServices/Messenger.c | 1 +
+ .../OSAgnostic/Common/CommonServices/Queue.c | 1 +
+ .../Common/CommonServices/VersionHandshake.c | 1 +
+ .../OSAgnostic/Common/L5Common/EventSubscribers.c | 1 +
+ .../Common/L5Common/IndicatorsSubscribers.c | 1 +
+ .../Common/WrappersCommon/WrappersUtils.c | 1 +
+ .../OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c | 1 +
+ .../OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c | 1 +
+ 8 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/Common/CommonServices/Messenger.c b/InfraStack/OSAgnostic/Common/CommonServices/Messenger.c
+index 54c920e..20168bb 100644
+--- a/InfraStack/OSAgnostic/Common/CommonServices/Messenger.c
++++ b/InfraStack/OSAgnostic/Common/CommonServices/Messenger.c
+@@ -29,6 +29,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ ***************************************************************************/
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "wimax_osal_primitives.h"
+
+ #include "Messenger.h"
+diff --git a/InfraStack/OSAgnostic/Common/CommonServices/Queue.c b/InfraStack/OSAgnostic/Common/CommonServices/Queue.c
+index b5f27f1..5323001 100644
+--- a/InfraStack/OSAgnostic/Common/CommonServices/Queue.c
++++ b/InfraStack/OSAgnostic/Common/CommonServices/Queue.c
+@@ -29,6 +29,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ ***************************************************************************/
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "wimax_osal_primitives.h"
+ #include "Queue.h"
+ #include "CommonServices.h"
+diff --git a/InfraStack/OSAgnostic/Common/CommonServices/VersionHandshake.c b/InfraStack/OSAgnostic/Common/CommonServices/VersionHandshake.c
+index bc53cf9..1c49cea 100644
+--- a/InfraStack/OSAgnostic/Common/CommonServices/VersionHandshake.c
++++ b/InfraStack/OSAgnostic/Common/CommonServices/VersionHandshake.c
+@@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ ***************************************************************************/
+ // Project
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "PipeHandlerInternal.h"
+ #include "VersionUtils.h"
+ #include "L5OpCodes.h"
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/EventSubscribers.c b/InfraStack/OSAgnostic/Common/L5Common/EventSubscribers.c
+index 9262520..d6fa160 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/EventSubscribers.c
++++ b/InfraStack/OSAgnostic/Common/L5Common/EventSubscribers.c
+@@ -29,6 +29,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ ***************************************************************************/
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "EventSubscribers.h"
+
+ #include "CommonServices.h"
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+index 53559af..97e7b8e 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
++++ b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+@@ -29,6 +29,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ ***************************************************************************/
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "IndicatorsSubscribers.h"
+
+ #include "CommonServices.h"
+diff --git a/InfraStack/OSAgnostic/Common/WrappersCommon/WrappersUtils.c b/InfraStack/OSAgnostic/Common/WrappersCommon/WrappersUtils.c
+index c0a40e3..6df4dcd 100644
+--- a/InfraStack/OSAgnostic/Common/WrappersCommon/WrappersUtils.c
++++ b/InfraStack/OSAgnostic/Common/WrappersCommon/WrappersUtils.c
+@@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ ***************************************************************************/
+ #include "wimax_osal_primitives.h"
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "Services_Ctrl.h"
+ #include "WrappersUtils.h"
+ #include "WrappersCommon.h"
+diff --git a/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c b/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c
+index 2ca1915..cfd965c 100644
+--- a/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c
++++ b/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c
+@@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ ***************************************************************************/
+ //#pragma warning(disable : 4201) // warning C4201: nonstandard extension used : nameless struct/union
+ #include <unistd.h>
++#include <stdlib.h>
+
+ #include "Services_Ctrl.h"
+ #include "L5Common.h"
+diff --git a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c
+index acf6e58..8ce4c9a 100644
+--- a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c
++++ b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c
+@@ -32,6 +32,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ // OSAL
+ #include "wimax_osal_primitives.h"
+ #include <unistd.h>
++#include <stdlib.h>
+
+ // Project
+ #include "L5Dispatcher.h"
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0005-remove-duplicate-typedef-for-u8.patch b/net-wireless/wimax/files/updates/0005-remove-duplicate-typedef-for-u8.patch
new file mode 100644
index 000000000000..a993e5eb84a7
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0005-remove-duplicate-typedef-for-u8.patch
@@ -0,0 +1,28 @@
+From f901c5c17b15ae979cca5a3da7247404ffc8995e Mon Sep 17 00:00:00 2001
+From: Alexander Gordeev <lasaine@lvk.cs.msu.su>
+Date: Wed, 6 Oct 2010 14:53:22 +0400
+Subject: [PATCH 05/20] remove duplicate typedef for u8
+
+This typedef is already in eap_peer/util/common.h, no need to declare
+it one more time.
+
+Signed-off-by: Alexander Gordeev <lasaine@lvk.cs.msu.su>
+---
+ .../WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c b/InfraStack/OSAgnostic/WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c
+index a33680c..8f55917 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c
+@@ -47,7 +47,6 @@
+ #include "NDnSAgent.h"
+
+
+-typedef unsigned char u8;
+ #define TLS_IMPLEMENTATION Arm1
+
+ /* the supplicant calls the tls_ methods, so we make sure the declarations match to what it expects. */
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0006-wimaxcu-fix-array-size.patch b/net-wireless/wimax/files/updates/0006-wimaxcu-fix-array-size.patch
new file mode 100644
index 000000000000..9167b3bfaa33
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0006-wimaxcu-fix-array-size.patch
@@ -0,0 +1,30 @@
+From c23d28bd5e8adf7186bc393a50ec784fc3b2528c Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Tue, 23 Nov 2010 15:52:18 -0800
+Subject: [PATCH 06/20] wimaxcu: fix array size
+
+Array size declaration for 'cmd_args' was of the wrong size, thus
+throwing a warning.
+
+Reported-by: Andrey Kononov <kononov@zarya-k.ru>
+Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
+---
+ .../OSDependent/Linux/wimaxcu/wimaxcu_defs.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_defs.h b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_defs.h
+index aa6df57..534848b 100644
+--- a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_defs.h
++++ b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_defs.h
+@@ -210,7 +210,7 @@ struct cu_cmd_specs
+
+ char *default_arg; // eg. scan [preferred]
+
+- cmd_arg_map cmd_args[6]; // Maximum number of arguments any of cmds can accept (un-used ones will be either NULL or empty strings)
++ cmd_arg_map cmd_args[7]; // Maximum number of arguments any of cmds can accept (un-used ones will be either NULL or empty strings)
+
+ size_3_string_array scan_connect_mode_options[2];
+ char *cmd_mode_options[2];
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0007-supplicant-fix-invocation-of-eap_peer_sm_init.patch b/net-wireless/wimax/files/updates/0007-supplicant-fix-invocation-of-eap_peer_sm_init.patch
new file mode 100644
index 000000000000..f1592634e42d
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0007-supplicant-fix-invocation-of-eap_peer_sm_init.patch
@@ -0,0 +1,44 @@
+From fc06cfd00b80e54fb178ffae51050675f42501b9 Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Tue, 23 Nov 2010 15:55:37 -0800
+Subject: [PATCH 07/20] supplicant: fix invocation of eap_peer_sm_init()
+
+Fourth argument was being pass with wrong typing (and luckily it is
+not really being used, so it wasn't pulling garbage). Fixed by
+creating a null 'struct eap_config' that is passed to
+eap_peer_sm_init().
+
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ .../Agents/Supplicant/Source/SupplicantAgent.c | 8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
+index 3948615..742c57b 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
++++ b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
+@@ -466,6 +466,12 @@ wmx_Status_t InitSupplicantLibrary(VOID)
+ char answer[MAX_ANSWER_SIZE];
+ void *ft;
+ #endif
++ struct eap_config eap_config_null = {
++ .opensc_engine_path = NULL,
++ .pkcs11_engine_path = NULL,
++ .pkcs11_module_path = NULL,
++ .wps = NULL,
++ };
+
+ TRACE(TR_MOD_SUPPLICANT_AGENT, TR_SEV_INFO,"Supplicant: InitSupplicantLibrary (IN)");
+ // init DS status variable
+@@ -496,7 +502,7 @@ wmx_Status_t InitSupplicantLibrary(VOID)
+ eap_cb.notify_pending = peer_notify_pending;
+
+ eap_peer_register_methods();
+- eap_ctx.eap = eap_peer_sm_init(&eap_ctx, &eap_cb, &eap_ctx, &eap_ctx.eap_config);
++ eap_ctx.eap = eap_peer_sm_init(&eap_ctx, &eap_cb, &eap_ctx, &eap_config_null);
+ if (eap_ctx.eap == NULL)
+ return WMX_ST_FAIL;
+
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0008-supplicant-Fix-eap_methods-array-setup-and-declarati.patch b/net-wireless/wimax/files/updates/0008-supplicant-Fix-eap_methods-array-setup-and-declarati.patch
new file mode 100644
index 000000000000..78e26d37b136
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0008-supplicant-Fix-eap_methods-array-setup-and-declarati.patch
@@ -0,0 +1,49 @@
+From 339c280e7dea7f0a590b9637bdacaae791c25b06 Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Tue, 23 Nov 2010 15:56:37 -0800
+Subject: [PATCH 08/20] supplicant: Fix eap_methods array setup and declaration
+
+The eap_methods array has to be EAP_VENDOR_IETF:EAP_TYPE_NONE
+terminated, thus it has to be one slot bigger than 2. As well, the
+proper pointer wasn't set to eap_ctx.eap_config.eap_methods. All
+fixed.
+
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ .../Agents/Supplicant/Source/SupplicantAgent.c | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
+index 742c57b..7cb5196 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
++++ b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
+@@ -174,7 +174,7 @@ SupplicantData g_SuppData1; //[findme][amirs] buffer for 64bit
+
+ SupplicantConfig g_SuppConfig1; //[findme][amirs] buffer for 64bit
+ #endif
+-static struct eap_method_type eap_methods[2];
++static struct eap_method_type eap_methods[3];
+ SupplicantConfig g_SuppConfig;
+
+ OSAL_dynlib_t g_DSlib = NULL;
+@@ -480,6 +480,8 @@ wmx_Status_t InitSupplicantLibrary(VOID)
+
+ #if defined(WPA_OPEN_SOURCE)
+ memset(&eap_methods, 0, sizeof(eap_methods));
++ eap_methods[2].vendor = EAP_VENDOR_IETF;
++ eap_methods[2].method = EAP_TYPE_NONE;
+ memset(&eap_ctx, 0, sizeof(eap_ctx));
+
+ eap_ctx.eap_config.identity = (u8 *) os_strdup("user");
+@@ -488,7 +490,7 @@ wmx_Status_t InitSupplicantLibrary(VOID)
+ eap_ctx.eap_config.password_len = 8;
+ eap_ctx.eap_config.ca_cert = (u8 *) os_strdup("ca.pem");
+ eap_ctx.eap_config.fragment_size = TLS_MAX_SIZE;
+- eap_ctx.eap_config.eap_methods = &eap_methods;
++ eap_ctx.eap_config.eap_methods = eap_methods;
+
+ memset(&eap_cb, 0, sizeof(eap_cb));
+ eap_cb.get_config = peer_get_config;
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0009-daemon-don-t-mask-SEGV-just-crash-and-dump-core.patch b/net-wireless/wimax/files/updates/0009-daemon-don-t-mask-SEGV-just-crash-and-dump-core.patch
new file mode 100644
index 000000000000..8efd54efa482
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0009-daemon-don-t-mask-SEGV-just-crash-and-dump-core.patch
@@ -0,0 +1,140 @@
+From cd0435d6ec9a721188900a811f61d3ea19b58932 Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Tue, 23 Nov 2010 16:17:56 -0800
+Subject: [PATCH 09/20] daemon: don't mask SEGV, just crash and dump core
+
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ .../Skeletons/AppSrv/GenericConsole.c | 5 +--
+ .../Skeletons/AppSrv/GenericDaemon.c | 1 -
+ InfraStack/OSDependent/Linux/wimaxcu/wimaxcu.c | 17 +--------------
+ .../OSDependent/Linux/wimaxcu/wimaxcu_main.c | 22 --------------------
+ 4 files changed, 3 insertions(+), 42 deletions(-)
+
+diff --git a/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericConsole.c b/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericConsole.c
+index 63e8e90..b07b8e0 100644
+--- a/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericConsole.c
++++ b/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericConsole.c
+@@ -104,7 +104,7 @@ void print_callstack_to_file(int sig, siginfo_t *info, void *secret)
+ // printf("Came here %d\n", __LINE__);
+ char command[MAX_STR_LEN + MAX_FILENAME_LEN];
+ /* Do something useful with siginfo_t */
+- if ((sig != SIGSEGV) && (sig != SIGINT)) {
++ if (sig != SIGINT) {
+ syslog(LOG_ERR,"Got signal %d#92", sig);
+ // printf("Came here %d\n", __LINE__);
+ return;
+@@ -167,7 +167,7 @@ void console_signal_handler(int sig, siginfo_t *info, void *secret)
+ // printf("First ctrl +c recieived \n");
+ no_of_signals++;
+
+- if ((sig == SIGSEGV) && (sig == SIGINT)) {
++ if (sig == SIGINT) {
+ syslog(LOG_ERR,"Got signal %d", sig);
+ print_callstack_to_file(sig, info, secret);
+ }
+@@ -201,7 +201,6 @@ int main_console(void)
+ sigemptyset (&sa.sa_mask);
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+
+- sigaction(SIGSEGV, &sa, NULL);
+ sigaction(SIGUSR1, &sa, NULL); // install our handler
+ sigaction(SIGINT, &sa, NULL);
+ sigaction(SIGTERM, &sa, NULL); // install our handler
+diff --git a/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericDaemon.c b/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericDaemon.c
+index bdf6e22..0637790 100644
+--- a/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericDaemon.c
++++ b/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericDaemon.c
+@@ -254,7 +254,6 @@ int main_daemon(void)
+ sigemptyset (&sa.sa_mask);
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+
+- sigaction(SIGSEGV, &sa, NULL);
+ sigaction(SIGUSR1, &sa, NULL);
+
+ signal(SIGINT, stop_signal_handler);
+diff --git a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu.c b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu.c
+index ad187c4..dfa94db 100644
+--- a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu.c
++++ b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu.c
+@@ -3055,7 +3055,7 @@ void print_callstack_to_file(int sig, siginfo_t *info,
+ // printf("Came here %d\n", __LINE__);
+ char command[MAX_STR_LEN + MAX_FILENAME_LEN];
+ /* Do something useful with siginfo_t */
+- if ((sig != SIGSEGV) && (sig != SIGINT)) {
++ if (sig != SIGINT) {
+ syslog(LOG_ERR,"Got signal %d#92", sig);
+ // printf("Came here %d\n", __LINE__);
+ return;
+@@ -3136,20 +3136,6 @@ void wimaxcu_signal_handler(int sig, siginfo_t *info,
+ printf("Please check /var/log/wimax folder \n");
+
+ print_callstack_to_file(sig, info, secret);
+-
+-
+- // kalyan
+- // If wimaxcu recieved segmentation fault
+- // Stack might be corrupted
+- // So it is good idea to just exit
+- // This may recives some system resources hanging
+-
+- if(sig == SIGSEGV) {
+- printf("Exit \n");
+- exit(0);
+- }
+-
+-
+ wimaxcu_stop_signal_handler(sig);
+
+ }
+@@ -3191,7 +3177,6 @@ int main(int argc, char *argv[])
+ sigemptyset (&sa.sa_mask);
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+
+- sigaction(SIGSEGV, &sa, NULL);
+ sigaction(SIGUSR1, &sa, NULL);
+
+ signal(SIGINT, wimaxcu_stop_signal_handler);
+diff --git a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_main.c b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_main.c
+index faf0f36..d14a2ae 100644
+--- a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_main.c
++++ b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_main.c
+@@ -330,27 +330,6 @@ void wimaxcu_stop_signal_handler(int sig)
+
+ }
+
+-
+-void handler(int sig)
+-{
+- void *array[10];
+- size_t size;
+- size_t i;
+- char **strings;
+- size = backtrace(array,10);
+- fprintf(stderr,"Error: signal %d: \n",sig);
+- strings = backtrace_symbols (array, size);
+-
+- printf ("Obtained %zd stack frames.\n", size);
+-
+- for (i = 0; i < size; i++)
+- printf ("%s\n", strings[i]);
+-
+- free (strings);
+-
+-// backtrace_symbols_fd(array,size,2);
+- exit(1);
+-}
+ /*
+ * Function: main
+ * Description: main function calls functions for intialization and
+@@ -402,7 +381,6 @@ int main(int argc, char *argv[])
+ // sleep(1);
+ // Execute the command
+ ret = cmd_handler(&gbl_device_id, &out_cmd);
+- signal(SIGSEGV,handler);
+ // Finalize the SDK
+ wimaxcu_finalize(&gbl_device_id);
+
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0010-OSAL-fix-OSAL_wcsmp-for-Linux-environments.patch b/net-wireless/wimax/files/updates/0010-OSAL-fix-OSAL_wcsmp-for-Linux-environments.patch
new file mode 100644
index 000000000000..139d24e8d200
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0010-OSAL-fix-OSAL_wcsmp-for-Linux-environments.patch
@@ -0,0 +1,37 @@
+From 1718d11005da4bd288aaf84ac3965dc490e16278 Mon Sep 17 00:00:00 2001
+From: Alexander Khryukin <alexander@mezon.ru>
+Date: Thu, 16 Dec 2010 09:57:58 -0800
+Subject: [PATCH 10/20] OSAL: fix OSAL_wcsmp() for Linux environments
+
+Good day, Inaky. This is patch for wimaxd that allow connect to wimax
+network Yota from Carrick (part of connmand).
+
+in InfraStack/OSAgnostic/WiMax/Wrappers/CommonAPI/wimaxapi.c in
+function CmdConnectToNetwork() call to OSAL_wcscmp() with
+nspName="Yota" and nspsEx[0].NSPName="Yota" returns -1246756864
+---
+ .../Linux/OSAL/Primitives/wimax_osal_strings.c | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_strings.c b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_strings.c
+index f97119a..6a71b11 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_strings.c
++++ b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_strings.c
+@@ -1653,9 +1653,13 @@ int OSAL_CAPI_wmemcpy_s(OSAL_WIMAX_API_WSTRING dest, size_t sizeInWords, const O
+ }
+ // TODO::OSAL-WORK::IMPORTANT - OSAL_wcscmp, OSAL_wcslen - What happens when these methods are fed with ansi strings???
+
+-int OSAL_wcscmp(const wchar_t * string1, const wchar_t * string2)
++int OSAL_wcscmp(OSAL_WIMAX_API_WSTRING string1, OSAL_WIMAX_API_WSTRING string2)
+ {
++#ifdef NATIVE_LINUX
++ return strcmp(string1, string2);
++#else
+ return wcscmp(string1, string2);
++#endif
+ }
+
+
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0011-configure-remove-O2-by-default.patch b/net-wireless/wimax/files/updates/0011-configure-remove-O2-by-default.patch
new file mode 100644
index 000000000000..66d9d3b540e5
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0011-configure-remove-O2-by-default.patch
@@ -0,0 +1,40 @@
+From 0e192859b07bdb06fa81eb8af7c28286ca9c6614 Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Mon, 20 Dec 2010 13:53:31 -0800
+Subject: [PATCH 11/20] configure: remove -O2 by default
+
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ configure | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index aa5baa4..35ea926 100755
+--- a/configure
++++ b/configure
+@@ -11223,7 +11223,7 @@ program_suffix=$cooked_program_suffix
+
+
+ #if (test "${CFLAGS}" = ""); then
+-CFLAGS="-O2 -g -Wall -D _USE_TRACE -ldl -lm"
++CFLAGS="-g -Wall -D _USE_TRACE -ldl -lm"
+ #fi
+
+ # Check whether --enable-debug was given.
+diff --git a/configure.ac b/configure.ac
+index e684bfa..69916eb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -23,7 +23,7 @@ AC_SUBST(program_suffix, $cooked_program_suffix)
+
+
+ #if (test "${CFLAGS}" = ""); then
+-CFLAGS="-O2 -g -Wall -D _USE_TRACE -ldl -lm"
++CFLAGS="-g -Wall -D _USE_TRACE -ldl -lm"
+ #fi
+
+ AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0012-Allow-IP-handling-script-to-be-configurable-at-runti.patch b/net-wireless/wimax/files/updates/0012-Allow-IP-handling-script-to-be-configurable-at-runti.patch
new file mode 100644
index 000000000000..bec870de0702
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0012-Allow-IP-handling-script-to-be-configurable-at-runti.patch
@@ -0,0 +1,155 @@
+From 616a37c88c7a70008d8fc24d763e6b40bbd2d2d1 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Mon, 20 Dec 2010 17:51:16 -0600
+Subject: [PATCH 12/20] Allow IP handling script to be configurable at runtime
+
+Instead of hard-coding a script that unconditionally runs something,
+allow an alternate script to be given. This can allow connection
+managers that handle the IP details themselves to better integrate
+with the wimax daemon.
+---
+ .../Skeletons/AppSrv/GenericMain.c | 35 +++++++++++++++++---
+ .../Linux/OSAL/Services/wimax_osal_services.c | 25 +++++++++-----
+ 2 files changed, 46 insertions(+), 14 deletions(-)
+
+diff --git a/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericMain.c b/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericMain.c
+index bdd2bc7..9c2a161 100644
+--- a/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericMain.c
++++ b/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericMain.c
+@@ -34,6 +34,8 @@ POSSIBILITY OF SUCH DAMAGE.
+ #include <libgen.h>
+ #include <unistd.h>
+ #include <sys/types.h>
++#include <sys/stat.h>
++#include <unistd.h>
+
+ #include "wimax_osal_primitives.h"
+ #include "wimax_osal_config_controler.h"
+@@ -45,6 +47,7 @@ extern char *g_ifacename;
+ static char *progname;
+ int g_kill = 0;
+ int g_daemon = -1;
++extern char *g_script;
+
+ static
+ void do_help(FILE *f)
+@@ -58,6 +61,7 @@ void do_help(FILE *f)
+ "-k Kill existing instance (requires -i)\n"
+ "-d Debug mode, work in console and don't become a daemon\n"
+ "-b Force working in background and become a daemon\n"
++ "-s SCRIPT Script to run on network interface IP change events\n"
+ "-h This help\n", progname);
+ }
+
+@@ -65,18 +69,15 @@ int main(int argc, char *argv[])
+ {
+ BOOL res;
+ char target[MAX_TARGET_NAME] = {0};
+- if (geteuid() != (uid_t) 0) {
+- fprintf(stderr, "ERROR: You do not possess sufficient privileges to perform this action.\n");
+- return 1;
+- }
+ int c;
+ int ret;
+ int pid;
++ struct stat st;
+
+ opterr = 0;
+ progname = basename(argv[0]);
+
+- while ((c = getopt(argc, argv, "i:kdbk")) != -1)
++ while ((c = getopt(argc, argv, "i:s:kdbk")) != -1)
+ switch (c)
+ {
+ case 'i':
+@@ -91,6 +92,9 @@ int main(int argc, char *argv[])
+ case 'b':
+ g_daemon = 1;
+ break;
++ case 's':
++ g_script = optarg;
++ break;
+ case 'h':
+ do_help(stdout);
+ return 1;
+@@ -112,6 +116,27 @@ int main(int argc, char *argv[])
+ "ERROR: You do not possess sufficient privileges to perform this action.\n");
+ return 1;
+ }
++
++ // check the script file
++ if (g_script) {
++ if (stat (g_script, &st) != 0) {
++ fprintf(stderr,
++ "ERROR: Script '%s' is not accessible.\n", g_script);
++ return 1;
++ }
++
++ if (st.st_uid != 0) {
++ fprintf(stderr,
++ "ERROR: Script '%s' not owned by root.\n", g_script);
++ return 1;
++ }
++
++ if ((st.st_mode & S_IXUSR) == 0) {
++ fprintf(stderr,
++ "ERROR: Script '%s' is not executable.\n", g_script);
++ return 1;
++ }
++ }
+
+ pid = IsDaemonRunning();
+ if (g_kill) {
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Services/wimax_osal_services.c b/InfraStack/OSDependent/Linux/OSAL/Services/wimax_osal_services.c
+index 4f15620..27d35e4 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Services/wimax_osal_services.c
++++ b/InfraStack/OSDependent/Linux/OSAL/Services/wimax_osal_services.c
+@@ -56,6 +56,7 @@
+
+ int linkup_redundant = 0;
+ char * g_ifacename = NULL;
++char * g_script = NULL;
+
+ #define TRACE(x, y, z, ...)
+
+@@ -284,7 +285,7 @@ UINT32 OSAL_RenewIP( UINT32 mediaStatus )
+
+ void *ManageIPThread(void *param)
+ {
+-#define DHCP_RENEW_FILE_NAME "dhcp_renew.sh"
++#define DEFAULT_DHCP_RENEW_FILE_NAME "dhcp_renew.sh"
+
+ char file_name[MAX_FILENAME_LEN + 10]; // 10 more chacters to add interface name
+ int len = 0;
+@@ -294,14 +295,20 @@ void *ManageIPThread(void *param)
+
+ OSALTRACE(OSAL_ERROR, ("Enter"));
+
+- strcpy(file_name, PKG_DATA_DIR);
+- len = strlen(file_name);
+-
+- if(file_name[len-1] != '/') {
+- strcat(file_name,"/");
+- }
+-
+- strcat(file_name, DHCP_RENEW_FILE_NAME);
++ if (g_script == NULL)
++ {
++ strcpy(file_name, PKG_DATA_DIR);
++ len = strlen(file_name);
++
++ if(file_name[len-1] != '/')
++ strcat(file_name,"/");
++
++ strcat(file_name, DEFAULT_DHCP_RENEW_FILE_NAME);
++ }
++ else
++ {
++ strcpy(file_name, g_script);
++ }
+
+ interface_name[0] = '\0';
+
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0013-Fix-typo-in-logrotate-script.patch b/net-wireless/wimax/files/updates/0013-Fix-typo-in-logrotate-script.patch
new file mode 100644
index 000000000000..95a14e9dbb72
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0013-Fix-typo-in-logrotate-script.patch
@@ -0,0 +1,26 @@
+From 79a60814470c37c832210626cfea7dcd02bc7c26 Mon Sep 17 00:00:00 2001
+From: Alexey I. Froloff <raorn@altlinux.org>
+Date: Mon, 10 Jan 2011 06:10:00 -0800
+Subject: [PATCH 13/20] Fix typo in logrotate script
+
+Signed-off-by: Alexey I. Froloff <raorn@altlinux.org>
+---
+ InfraStack/OSDependent/Linux/OSAL/logrotate.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/InfraStack/OSDependent/Linux/OSAL/logrotate.in b/InfraStack/OSDependent/Linux/OSAL/logrotate.in
+index 6407044..b6d2cb4 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/logrotate.in
++++ b/InfraStack/OSDependent/Linux/OSAL/logrotate.in
+@@ -2,7 +2,7 @@
+ daily
+ delaycompress
+ copytruncate
+- externsion log
++ extension log
+ missingok
+ rotate 9
+ }
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0014-KDapi-Big-endian-support.patch b/net-wireless/wimax/files/updates/0014-KDapi-Big-endian-support.patch
new file mode 100644
index 000000000000..4b25c2dc4577
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0014-KDapi-Big-endian-support.patch
@@ -0,0 +1,290 @@
+From baecb142a4f57faee480e5622ad45b17c154469c Mon Sep 17 00:00:00 2001
+From: Doug Kehn <rdkehn@yahoo.com>
+Date: Wed, 26 Jan 2011 14:26:05 -0800
+Subject: [PATCH 14/20] KDapi: Big-endian support
+
+Add byte swap calls where needed.
+
+Signed-off-by: Doug Kehn <rdkehn@yahoo.com>
+---
+ .../Linux/InfraStackModules/KDapi/KDapi.c | 88 ++++++++++----------
+ 1 files changed, 44 insertions(+), 44 deletions(-)
+
+diff --git a/InfraStack/OSDependent/Linux/InfraStackModules/KDapi/KDapi.c b/InfraStack/OSDependent/Linux/InfraStackModules/KDapi/KDapi.c
+index 27c8abc..6db2e11 100644
+--- a/InfraStack/OSDependent/Linux/InfraStackModules/KDapi/KDapi.c
++++ b/InfraStack/OSDependent/Linux/InfraStackModules/KDapi/KDapi.c
+@@ -58,6 +58,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ #include "KDapiForLinuxNlsock.h"
+ #include "L4BufMan_L3L4Structs_Desc.h"
+ #include "L4BufMan_L3L4Structs.h"
++#include "Services_Ctrl.h"
+
+ #define MAX_DATA_SIZE_SET_NORMAL 100
+
+@@ -264,12 +265,12 @@ static int send_recieve_message_to_driver(IN UINT32 Command,
+ // the flag so that next LINK_UP is accepted for dhcp req
+ // This will be useful in fast reconnect scenario where firmware is
+ // failing to send LINK_DOWN before sending a LINK_UP
+- if(wmx_in_buffer->type == L4_L3_OPCODE_CMD_CONNECT)
++ if(wmx_in_buffer->type == wimaxll_cpu_to_le16(L4_L3_OPCODE_CMD_CONNECT))
+ {
+ linkup_redundant = 0;
+ }
+
+- if (*((UINT16 *) pInBuffer) == 0x4604) // enable raw logging during connect
++ if (*((UINT16 *) pInBuffer) == wimaxll_cpu_to_le16(0x4604)) // enable raw logging during connect
+ {
+ bEnableRawTracing = 1;
+ //g_Connected = 0;
+@@ -281,7 +282,7 @@ static int send_recieve_message_to_driver(IN UINT32 Command,
+
+
+
+- if ((bEnableRawTracing) || (*((UINT16 *) pInBuffer) == 0x6201)) {
++ if ((bEnableRawTracing) || (*((UINT16 *) pInBuffer) == wimaxll_cpu_to_le16(0x6201))) {
+ #ifdef _DEBUG1
+ if (inBufSize == 2088) {
+ // Probe to check if the device has already rebooted before sending this large packet down
+@@ -289,7 +290,7 @@ static int send_recieve_message_to_driver(IN UINT32 Command,
+ inBufSize = sizeof(GET_STATE_L4L3_MSG);
+ }
+ #endif
+- if (*((UINT16 *) pInBuffer) == 0x6201)
++ if (*((UINT16 *) pInBuffer) == wimaxll_cpu_to_le16(0x6201))
+ DumpHexString("Gatekeeper (TLS Out): ", pInBuffer, inBufSize);
+ else {
+ DumpHexString("Gatekeeper (out) : ", pInBuffer, inBufSize);
+@@ -328,22 +329,23 @@ static int send_recieve_message_to_driver(IN UINT32 Command,
+ if (send_rcv_msg->type != *(unsigned short *)pInBuffer) {
+ TRACE(TR_MOD_KDAPI, TR_SEV_ERR,
+ "Incorrect response recieved %x expected %x\n",
+- send_rcv_msg->type, *(unsigned short *)pInBuffer);
++ wimaxll_le16_to_cpu(send_rcv_msg->type),
++ wimaxll_le16_to_cpu(*(unsigned short *)pInBuffer));
+ printk("Incorrect response recieved %x expected %x\n",
+- send_rcv_msg->type,
+- *(unsigned short *)pInBuffer);
++ wimaxll_le16_to_cpu(send_rcv_msg->type),
++ wimaxll_le16_to_cpu(*(unsigned short *)pInBuffer));
+ free(send_rcv_msg);
+ send_rcv_msg = NULL;
+ goto error_msg_send_command;
+ }
+ memcpy(pOutBuffer, send_rcv_msg, rcv_msg_size);
+ *pWrittenOutBufSize = rcv_msg_size;
+- printk("Response recieved: size(%d) status(%x)\n", rcv_msg_size, send_rcv_msg->status);
++ printk("Response recieved: size(%d) status(%x)\n", rcv_msg_size, wimaxll_le16_to_cpu(send_rcv_msg->status));
+
+ #ifndef DEBUG_DEVELOPER
+ if(g_enable_driver_msg == TRUE) {
+ printf("<<< [RSP 0x%x][%d]\n", Command, rcv_msg_size);
+- print_hex(send_rcv_msg, rcv_msg_size);
++ print_hex((unsigned char *)send_rcv_msg, rcv_msg_size);
+ }
+ #endif
+ // free the memory allocated by send_msg_response_to_l4
+@@ -351,13 +353,13 @@ static int send_recieve_message_to_driver(IN UINT32 Command,
+ send_rcv_msg = NULL;
+
+ if (bEnableRawTracing) {
+- if (*((UINT16 *) pInBuffer) == 0x6201)
++ if (*((UINT16 *) pInBuffer) == wimaxll_cpu_to_le16(0x6201))
+ DumpHexString("Gatekeeper (TLS IN): ", pOutBuffer, rcv_msg_size);
+ else
+ DumpHexString("Gatekeeper (in): ", pOutBuffer, rcv_msg_size);
+ }
+ // #if 1
+-// if ( *((UINT16 *)pInBuffer) == 0xd002 )
++// if ( *((UINT16 *)pInBuffer) == wimaxll_cpu_to_le16(0xd002) )
+ // {
+ // UINT16 *pTmp = pInBuffer;
+
+@@ -367,7 +369,7 @@ static int send_recieve_message_to_driver(IN UINT32 Command,
+ // }
+ // #endif // 1
+ #ifdef INTERNAL_SUPPLICANT_DONT_SEND_KEY_SECONDTIME_IF_ALREADY_CONNECTED
+- if (*((UINT16 *) pInBuffer) == 0xd002) {
++ if (*((UINT16 *) pInBuffer) == wimaxll_cpu_to_le16(0xd002)) {
+ UINT16 *pTmp = pInBuffer;
+ // Set the global system state
+ if (*(pTmp + 12) == 8) {
+@@ -407,8 +409,8 @@ static int get_L4M_version()
+ UINT32 tempByteWritten = 30;
+
+ memset(&cmd, 0, sizeof(cmd));
+- cmd.type = I2400M_MT_GET_LM_VERSION;
+- cmd.version = I2400M_L3L4_VERSION;
++ cmd.type = wimaxll_cpu_to_le16(I2400M_MT_GET_LM_VERSION);
++ cmd.version = wimaxll_cpu_to_le16(I2400M_L3L4_VERSION);
+
+ res =
+ send_recieve_message_to_driver(0, &cmd, sizeof(cmd), response_from_driver,
+@@ -515,7 +517,7 @@ static KDAPI_RESULT KDAPI_send_io_control(IN void *pInBuffer,
+
+ //printk("*");
+
+- type = *(unsigned short *)pInBuffer;
++ type = wimaxll_le16_to_cpu(*(unsigned short *)pInBuffer);
+ printk("KK Ioctl Sending L4 Message type %d\n", type);
+
+ TRACE(TR_MOD_KDAPI, TR_SEV_DEBUG, "Sending DeviceIoControl with ioctl");
+@@ -550,14 +552,14 @@ static KDAPI_RESULT KDAPI_send_io_control(IN void *pInBuffer,
+ #endif
+
+ /*
+- if(header->Opcode == L4_L3_OPCODE_SET_SCAN_PARAM)
++ if(header->Opcode == wimaxll_cpu_to_le16(L4_L3_OPCODE_SET_SCAN_PARAM))
+ {
+ //memset((char *)pInBuffer + 28, 0xff, 16);
+ }
+ */
+
+ ioctlRes =
+- send_recieve_message_to_driver(*(unsigned short *)pInBuffer, pInBuffer,
++ send_recieve_message_to_driver(wimaxll_le16_to_cpu(*(unsigned short *)pInBuffer), pInBuffer,
+ inBufSize, pOutBuffer, &BytesWritten);
+ if (ioctlRes != 0) {
+ TRACE(TR_MOD_KDAPI, TR_SEV_ERR,
+@@ -602,14 +604,14 @@ static int set_device_mode_to_normal()
+ }
+ //assemble radio-on message
+ //setup header
+- header.Opcode = L4_L3_OPCODE_CMD_MODE_OF_OPERATION; //setup message type
+- header.Length = sizeof(struct ModeOfOperationCommand); //setup message length. rest of the fields are irrelevant
++ header.Opcode = wimaxll_cpu_to_le16(L4_L3_OPCODE_CMD_MODE_OF_OPERATION); //setup message type
++ header.Length = wimaxll_cpu_to_le16(sizeof(struct ModeOfOperationCommand)); //setup message length. rest of the fields are irrelevant
+ memcpy(message, (char *)&header, sizeof(header));
+
+ //setup message body
+- modeCommand.type = L3L4_TLV_TYPE_MODE_OF_OPERATION; //setup rf operatig_wmx_handleon TLV type
+- modeCommand.length = sizeof(struct RfControl) - 4; //setup rf operation TLV length
+- modeCommand.modeCommand = E_MODE_OF_OPERATION_NORMAL; //setup rf operation to ON
++ modeCommand.type = wimaxll_cpu_to_le16(L3L4_TLV_TYPE_MODE_OF_OPERATION); //setup rf operatig_wmx_handleon TLV type
++ modeCommand.length = wimaxll_cpu_to_le16(sizeof(struct RfControl) - 4); //setup rf operation TLV length
++ modeCommand.modeCommand = wimaxll_cpu_to_le32(E_MODE_OF_OPERATION_NORMAL); //setup rf operation to ON
+ memcpy(message + sizeof(header), (char *)&modeCommand,
+ sizeof(modeCommand));
+
+@@ -626,8 +628,8 @@ static int set_device_mode_to_normal()
+
+ free(message);
+ header = *(struct L3L4Header *)retMsg;
+- if ((header.Status != L3L4_RESPONSE_STATUS_SUCCESS_DONE)
+- && (header.Status != L3L4_RESPONSE_STATUS_SUCCESS_IN_PROCESS)) {
++ if ((header.Status != wimaxll_cpu_to_le16(L3L4_RESPONSE_STATUS_SUCCESS_DONE))
++ && (header.Status != wimaxll_cpu_to_le16(L3L4_RESPONSE_STATUS_SUCCESS_IN_PROCESS))) {
+ retStatus = 0;
+ printk
+ ("Got status response other than SUCCESS_DONE or SUCCESS_IN_PROCESS\n");
+@@ -649,8 +651,8 @@ static void prepare_nl_iface()
+
+ /* open command: Send a raw request */
+ memset(&cmd, 0, sizeof(cmd));
+- cmd.type = (I2400M_MT_OPEN);
+- cmd.version = (I2400M_L3L4_VERSION);
++ cmd.type = wimaxll_cpu_to_le16(I2400M_MT_OPEN);
++ cmd.version = wimaxll_cpu_to_le16(I2400M_L3L4_VERSION);
+ result = wimaxll_msg_write(g_wmx_write_handle,NULL ,&cmd, sizeof(cmd));
+ if (result < 0) {
+ printk(stderr, "E: libwimax: can't send open message: %d\n",
+@@ -661,7 +663,7 @@ static void prepare_nl_iface()
+ /* open command: get the ack */
+ result = wimax_msg_read(g_wmx_read_handle, (void **)&ack);
+
+- if ((ack->type) != I2400M_MT_OPEN) {
++ if (wimaxll_le16_to_cpu(ack->type) != I2400M_MT_OPEN) {
+ printk(stderr,
+ "E: libwimax: wrong reply 0x%04x to OPEN command\n",
+ (ack->type));
+@@ -687,8 +689,8 @@ static int get_L4M_version_no_thread()
+ /* get l4m version: Send a raw request */
+ printk("get l4m version: Send a raw request \n");
+ memset(&cmd, 0, sizeof(cmd));
+- cmd.type = I2400M_MT_GET_LM_VERSION;
+- cmd.version = I2400M_L3L4_VERSION;
++ cmd.type = wimaxll_cpu_to_le16(I2400M_MT_GET_LM_VERSION);
++ cmd.version = wimaxll_cpu_to_le16(I2400M_L3L4_VERSION);
+
+ CHECK_NL_HANDLE();
+
+@@ -711,7 +713,7 @@ static int get_L4M_version_no_thread()
+ "Error wimax read messsage: %d\n", result);
+ return -1;
+ }
+- if ((ack->type) == I2400M_MT_GET_LM_VERSION) {
++ if (wimaxll_le16_to_cpu(ack->type) == I2400M_MT_GET_LM_VERSION) {
+ printk
+ ("Nlsock: correct reply 0x%04x to get l4m version command\n",
+ (ack->type));
+@@ -789,8 +791,8 @@ use_EL3RST:
+ * get a -EL3RST back.
+ */
+ memset(&cmd, 0, sizeof(cmd));
+- cmd.type = L4_L3_OPCODE_GET_STATE;
+- cmd.version = I2400M_L3L4_VERSION;
++ cmd.type = wimaxll_cpu_to_le16(L4_L3_OPCODE_GET_STATE);
++ cmd.version = wimaxll_cpu_to_le16(I2400M_L3L4_VERSION);
+
+ retry_count = 10;
+ while(--retry_count) {
+@@ -839,8 +841,8 @@ static int init_device()
+
+ /* init device: Send a raw request */
+ memset(&cmd, 0, sizeof(cmd));
+- cmd.type = (L4_L3_OPCODE_CMD_INIT);
+- cmd.version = (I2400M_L3L4_VERSION);
++ cmd.type = wimaxll_cpu_to_le16(L4_L3_OPCODE_CMD_INIT);
++ cmd.version = wimaxll_cpu_to_le16(I2400M_L3L4_VERSION);
+
+ CHECK_NL_HANDLE();
+
+@@ -870,7 +872,7 @@ static int init_device()
+ printk("Error wimax read message \n");
+ }
+
+- if ((ack->type) == L4_L3_OPCODE_CMD_INIT) {
++ if ((ack->type) == wimaxll_cpu_to_le16(L4_L3_OPCODE_CMD_INIT)) {
+ wimaxll_msg_free(ack);
+ break;
+ }
+@@ -970,7 +972,7 @@ static int preinit_device()
+ return -1;
+ }
+
+- if ((ack->type) == L4_L3_OPCODE_SET_PREINIT_CONFIG) {
++ if ((ack->type) == wimaxll_cpu_to_le16(L4_L3_OPCODE_SET_PREINIT_CONFIG)) {
+ wimaxll_msg_free(ack);
+ break;
+ }
+@@ -1003,13 +1005,11 @@ static int stop_trace()
+ /* stop trace: Send a raw request */
+ printk("stop trace: Send a raw request \n");
+ memset(&cmd, 0, sizeof(cmd));
+- // warning FIXME: need conversion to little endian
+- // Don't worry if we are running on X86 platform as X86 platform is already little endian
+- cmd.hdr.type = I2400M_MT_CMD_MONITOR_CONTROL;
+- cmd.hdr.length = sizeof(cmd) - sizeof(cmd.hdr);
+- cmd.hdr.version = I2400M_L3L4_VERSION;
+- cmd.tlv.type = 0x4002;
+- cmd.tlv.length = 1;
++ cmd.hdr.type = wimaxll_cpu_to_le16(I2400M_MT_CMD_MONITOR_CONTROL);
++ cmd.hdr.length = wimaxll_cpu_to_le16(sizeof(cmd) - sizeof(cmd.hdr));
++ cmd.hdr.version = wimaxll_cpu_to_le16(I2400M_L3L4_VERSION);
++ cmd.tlv.type = wimaxll_cpu_to_le16(0x4002);
++ cmd.tlv.length = wimaxll_cpu_to_le16(1);
+ cmd.val = 1;
+
+ CHECK_NL_HANDLE();
+@@ -1187,7 +1187,7 @@ void send_msg_response_to_l4(const struct i2400m_l3l4_hdr *l3l4, size_t size)
+ #else
+ if(g_enable_driver_msg == TRUE) {
+ printf("<<< [IND 0x%x][%d]\n", type, size);
+- print_hex(l3l4, size);
++ print_hex((unsigned char *)l3l4, size);
+ }
+ #endif
+
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0015-Wrappers-wmx_Preambles_t-alignment.patch b/net-wireless/wimax/files/updates/0015-Wrappers-wmx_Preambles_t-alignment.patch
new file mode 100644
index 000000000000..a99c4c29eb7f
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0015-Wrappers-wmx_Preambles_t-alignment.patch
@@ -0,0 +1,40 @@
+From c300707009417e45ab50bafc74cd4b9488e9f365 Mon Sep 17 00:00:00 2001
+From: Doug Kehn <rdkehn@yahoo.com>
+Date: Wed, 26 Jan 2011 14:26:57 -0800
+Subject: [PATCH 15/20] Wrappers: wmx_Preambles_t alignment
+
+Update the size of wmx_Preambles_t to be a power of 2. This change
+resolved alignment problems on ARM XSCALE (big-endian) processor.
+
+The PREAMBLES_LENGTH define, used extensively throughout the code, was
+not altered.
+
+Signed-off-by: Doug Kehn <rdkehn@yahoo.com>
+---
+ .../WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h
+index 21fdf62..457a25c 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h
+@@ -41,6 +41,7 @@
+ #define MAX_VERBOSE_NSP_NAME_SIZE 256
+ #define MAX_SP_LOCK_CODE_SIZE 32
+ #define PREAMBLES_LENGTH 15
++#define PREAMBLES_SIZE 16
+ #define WMX_CHANNELS_MAX_NUM 64
+ #define MAX_INSTALLAION_VERSION_SIZE 50
+
+@@ -75,7 +76,7 @@ typedef UINT8 wmx_BSidMask_t[6], *wmx_pBSidMask_t;
+ /// </summary>
+ typedef UINT16 wmx_ChannelID_t, *wmx_pChannelID_t;
+ typedef UINT32 wmx_PPMFreqError_t, *wmx_pPPMFreqError_t;
+-typedef UINT8 wmx_Preambles_t[PREAMBLES_LENGTH], *wmx_pPreambles_t;
++typedef UINT8 wmx_Preambles_t[PREAMBLES_SIZE], *wmx_pPreambles_t;
+
+ /// <summary>
+ /// Type definition for a variable containing the ID of a NSP.
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0016-Wrappers-wmx_SystemStateUpdate-alignment.patch b/net-wireless/wimax/files/updates/0016-Wrappers-wmx_SystemStateUpdate-alignment.patch
new file mode 100644
index 000000000000..fc5f01411571
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0016-Wrappers-wmx_SystemStateUpdate-alignment.patch
@@ -0,0 +1,29 @@
+From dc866f55d03daf36dc018418dee2f99cc330a284 Mon Sep 17 00:00:00 2001
+From: Doug Kehn <rdkehn@yahoo.com>
+Date: Wed, 26 Jan 2011 14:27:44 -0800
+Subject: [PATCH 16/20] Wrappers: wmx_SystemStateUpdate alignment
+
+Commented out dummyCompilerHappy[3] from wmx_SystemStateUpdate. This
+change resolved alignment problems on ARM XSCALE (big-endian) processor.
+
+Signed-off-by: Doug Kehn <rdkehn@yahoo.com>
+---
+ .../WiMax/Wrappers/Include/wmxSDK_Nds_1.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h
+index 7fb5817..e7bd050 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h
+@@ -248,7 +248,7 @@ typedef struct _wmx_SystemStateUpdate
+ wmx_LinkStatus_t linkStatus;
+ wmx_MediaStatus_t MediaStatus;
+ wmx_ChannedInfo_t channelInfo;
+- UINT8 dummyCompilerHappy[3];
++// UINT8 dummyCompilerHappy[3];
+ wmx_RfSwitchesStatus_t rfSwitchesStatus;
+ } wmx_SystemStateUpdate, *wmx_pSystemStateUpdate;
+
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0017-L4_INTEL_80216_INDICATION-typedef-redefinition.patch b/net-wireless/wimax/files/updates/0017-L4_INTEL_80216_INDICATION-typedef-redefinition.patch
new file mode 100644
index 000000000000..706122bccad8
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0017-L4_INTEL_80216_INDICATION-typedef-redefinition.patch
@@ -0,0 +1,32 @@
+From 648897ebad3718ed52432fa39c8de80b30d7c1d9 Mon Sep 17 00:00:00 2001
+From: Doug Kehn <rdkehn@yahoo.com>
+Date: Wed, 26 Jan 2011 14:29:14 -0800
+Subject: [PATCH 17/20] L4_INTEL_80216_INDICATION typedef redefinition
+
+The variable holding L3_L4_OPCODE_* value undergoes various typecasting
+changes as it moves along the call stack. The end result, on big-endian
+machines, is that the variable holding the opcode (indication_id) will
+always equal 0. Changing the typedef from UINT16 to UINT32 resolves
+this problem.
+
+Signed-off-by: Doug Kehn <rdkehn@yahoo.com>
+---
+ .../OSAgnostic/Product/AppSrvInfra/L4MsgProxy.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.h b/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.h
+index 5f8753e..178d319 100644
+--- a/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.h
++++ b/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.h
+@@ -57,7 +57,7 @@ extern L5_CONNECTION l4Proxy_Connection;
+ extern tL5DispatcherFunctions *l4Proxy_pFuncs;
+
+
+-typedef UINT16 L4_INTEL_80216_INDICATION;
++typedef UINT32 L4_INTEL_80216_INDICATION;
+
+
+ // AppSrv Agent Interface:
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0018-L5Common-Big-endian-support.patch b/net-wireless/wimax/files/updates/0018-L5Common-Big-endian-support.patch
new file mode 100644
index 000000000000..435180a0eae5
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0018-L5Common-Big-endian-support.patch
@@ -0,0 +1,79 @@
+From 0a065f6386b285e211dcc0444847469cba9071ef Mon Sep 17 00:00:00 2001
+From: Doug Kehn <rdkehn@yahoo.com>
+Date: Wed, 26 Jan 2011 14:30:11 -0800
+Subject: [PATCH 18/20] L5Common: Big-endian support
+
+Add byte swap calls where needed.
+
+Signed-off-by: Doug Kehn <rdkehn@yahoo.com>
+---
+ .../Common/L5Common/IndicatorsSubscribers.c | 5 +++--
+ .../OSAgnostic/Product/PipeHandler/Makefile.am | 7 +++++--
+ .../OSAgnostic/Product/PipeHandler/Makefile.in | 6 +++++-
+ 3 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+index 97e7b8e..f920509 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
++++ b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+@@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ ***************************************************************************/
+ #include <unistd.h>
+ #include <stdlib.h>
++#include <wimaxll.h>
+ #include "IndicatorsSubscribers.h"
+
+ #include "CommonServices.h"
+@@ -197,8 +198,8 @@ EXPORT void SendIndicationToSubscribers( UINT32 internalRequestID, void *_buffer
+ {
+ //in case we are working with remote DnD, we want to send the trace and monitor indications
+ //only to the DnD agent
+- if(((L3_L4_OPCODE_REPORT_MONITOR_EVACUATE != *((UINT16 *)buffer->indication_buffer)) &&
+- (L3_L4_OPCODE_REPORT_TRACE_EVACUATE != *((UINT16 *)buffer->indication_buffer))) ||
++ if(((L3_L4_OPCODE_REPORT_MONITOR_EVACUATE != wimaxll_le16_to_cpu(*((UINT16 *)buffer->indication_buffer))) &&
++ (L3_L4_OPCODE_REPORT_TRACE_EVACUATE != wimaxll_le16_to_cpu(*((UINT16 *)buffer->indication_buffer)))) ||
+ (L5_TARGET_DND_AGENT == targetID))
+ {
+ TRACE(TR_MOD_WRAPPER_LOGS, TR_SEV_DEBUG,"SendIndicationToSubscribers - senderL5Conn=0x%x, targetID=%d, internalRequestID=%d",
+diff --git a/InfraStack/OSAgnostic/Product/PipeHandler/Makefile.am b/InfraStack/OSAgnostic/Product/PipeHandler/Makefile.am
+index ea69a28..5969a48 100644
+--- a/InfraStack/OSAgnostic/Product/PipeHandler/Makefile.am
++++ b/InfraStack/OSAgnostic/Product/PipeHandler/Makefile.am
+@@ -56,10 +56,13 @@ libPipeHandler_la_CFLAGS = -I "$(top_srcdir)/InfraStack/OSAgnostic/Common/Commo
+ -I "$(top_srcdir)/InfraStack/OSDependent/Linux/InfraStackModules/TraceModule/" \
+ -D _GNU_SOURCE \
+ -D "L5_USE_CLIENT_SOCKETS" -D "_USE_TRACE" \
++ @LIBWIMAX_CFLAGS@ \
+ -D "BMI_MACHINE_ENDIANNESS_LITTLE" -D "_LINUX"
+
+-libPipeHandler_la_LIBADD = $(top_builddir)/InfraStack/OSDependent/Linux/InfraStackModules/IPCs/libSockets.la
++libPipeHandler_la_LIBADD = \
++ $(top_builddir)/InfraStack/OSDependent/Linux/InfraStackModules/IPCs/libSockets.la \
++ @LIBWIMAX_LIBS@
++
+
+-
+
+
+diff --git a/InfraStack/OSAgnostic/Product/PipeHandler/Makefile.in b/InfraStack/OSAgnostic/Product/PipeHandler/Makefile.in
+index c35402c..f3571a7 100644
+--- a/InfraStack/OSAgnostic/Product/PipeHandler/Makefile.in
++++ b/InfraStack/OSAgnostic/Product/PipeHandler/Makefile.in
+@@ -260,9 +260,13 @@ libPipeHandler_la_CFLAGS = -I "$(top_srcdir)/InfraStack/OSAgnostic/Common/Common
+ -I "$(top_srcdir)/InfraStack/OSDependent/Linux/InfraStackModules/TraceModule/" \
+ -D _GNU_SOURCE \
+ -D "L5_USE_CLIENT_SOCKETS" -D "_USE_TRACE" \
++ @LIBWIMAX_CFLAGS@ \
+ -D "BMI_MACHINE_ENDIANNESS_LITTLE" -D "_LINUX"
+
+-libPipeHandler_la_LIBADD = $(top_builddir)/InfraStack/OSDependent/Linux/InfraStackModules/IPCs/libSockets.la
++libPipeHandler_la_LIBADD = \
++ $(top_builddir)/InfraStack/OSDependent/Linux/InfraStackModules/IPCs/libSockets.la \
++ @LIBWIMAX_LIBS@
++
+ all: all-am
+
+ .SUFFIXES:
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0019-Supplicant-Big-endian-support.patch b/net-wireless/wimax/files/updates/0019-Supplicant-Big-endian-support.patch
new file mode 100644
index 000000000000..8ec38ed822d0
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0019-Supplicant-Big-endian-support.patch
@@ -0,0 +1,118 @@
+From 0cf64cffc9a8bf4e67af09aa1e84540f4969016a Mon Sep 17 00:00:00 2001
+From: Doug Kehn <rdkehn@yahoo.com>
+Date: Wed, 26 Jan 2011 14:32:06 -0800
+Subject: [PATCH 19/20] Supplicant: Big-endian support
+
+Add byte swap calls where needed.
+
+Signed-off-by: Doug Kehn <rdkehn@yahoo.com>
+---
+ .../OSAgnostic/WiMax/Agents/Supplicant/Makefile.am | 4 ++--
+ .../OSAgnostic/WiMax/Agents/Supplicant/Makefile.in | 8 ++++----
+ .../WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c | 14 ++++++++++----
+ 3 files changed, 16 insertions(+), 10 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Makefile.am b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Makefile.am
+index ac8169f..b6d2222 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Makefile.am
++++ b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Makefile.am
+@@ -124,7 +124,7 @@ libSupplicantAgent_la_CFLAGS = -I "$(top_srcdir)/InfraStack/OSAgnostic/Product/
+ -I "$(srcdir)/../../Wrappers/NDnS" \
+ -I "$(srcdir)/../../Wrappers/Apdo" \
+ -I "$(srcdir)/Source/ds" \
+- -D _GNU_SOURCE \
++ -D _GNU_SOURCE @LIBWIMAX_CFLAGS@ \
+ -D "_USE_TRACE" -D "BMI_MACHINE_ENDIANNESS_LITTLE" \
+ -D "IEEE8021X_EAPOL" -D "_OS_WIN32SIM" -D "_LINUX"
+
+@@ -133,7 +133,7 @@ libSupplicantAgent_la_CFLAGS = -I "$(top_srcdir)/InfraStack/OSAgnostic/Product/
+ if WPA_SUP_ENABLE
+ libSupplicantAgent_la_SOURCES += $(WPA_SUP_SOURCES)
+ libSupplicantAgent_la_CFLAGS += $(WPA_SUP_CFLAGS)
+-libSupplicantAgent_la_LIBS = $(WPA_SUP_LIBS)
++libSupplicantAgent_la_LIBS = $(WPA_SUP_LIBS) @LIBWIMAX_LIBS@
+ EXTRA_DIST += $(DS_SUP_SOURCES)
+ else
+ libSupplicantAgent_la_SOURCES += $(DS_SUP_SOURCES)
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Makefile.in b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Makefile.in
+index 1118c3e..6078349 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Makefile.in
++++ b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Makefile.in
+@@ -396,10 +396,10 @@ libSupplicantAgent_la_CFLAGS = -I \
+ "$(top_srcdir)/InfraStack/OSAgnostic/Product/Instrumantation/MOCHandler/UDapiL5" \
+ -I "$(srcdir)/../NDnS/APDO" -I "$(srcdir)/../../Wrappers/NDnS" \
+ -I "$(srcdir)/../../Wrappers/Apdo" -I "$(srcdir)/Source/ds" -D \
+- _GNU_SOURCE -D "_USE_TRACE" -D "BMI_MACHINE_ENDIANNESS_LITTLE" \
+- -D "IEEE8021X_EAPOL" -D "_OS_WIN32SIM" -D "_LINUX" \
+- $(am__append_2)
+-@WPA_SUP_ENABLE_TRUE@libSupplicantAgent_la_LIBS = $(WPA_SUP_LIBS)
++ _GNU_SOURCE @LIBWIMAX_CFLAGS@ -D "_USE_TRACE" -D \
++ "BMI_MACHINE_ENDIANNESS_LITTLE" -D "IEEE8021X_EAPOL" -D \
++ "_OS_WIN32SIM" -D "_LINUX" $(am__append_2)
++@WPA_SUP_ENABLE_TRUE@libSupplicantAgent_la_LIBS = $(WPA_SUP_LIBS) @LIBWIMAX_LIBS@
+ all: all-am
+
+ .SUFFIXES:
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c b/InfraStack/OSAgnostic/WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c
+index 8f55917..ad592e0 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Supplicant/wmxSDK_Sup_Impl.c
+@@ -53,6 +53,8 @@
+ #include <eap_peer/util/common.h>
+ #include <eap_peer/crypto/tls.h>
+
++#include <wimaxll.h>
++
+
+ #ifndef WPA_OPEN_SOURCE
+ /* temporary, remove*/
+@@ -211,8 +213,12 @@ void wmxSup_MessagesHandler(L5_CONNECTION Conn,
+ void *pvReserved )
+ {
+ L3L4CompleteHeader_type *l3L4CompleteHeader;
++ UINT16 length;
++ UINT16 type;
+
+ l3L4CompleteHeader = (L3L4CompleteHeader_type*)pvSentBuffer;
++ type = wimaxll_le16_to_cpu(l3L4CompleteHeader->Type);
++ length = wimaxll_le16_to_cpu(l3L4CompleteHeader->Length);
+
+ UNREFERENCED_PARAMETER(pvReserved);
+ UNREFERENCED_PARAMETER(pvUserContext);
+@@ -227,7 +233,7 @@ void wmxSup_MessagesHandler(L5_CONNECTION Conn,
+ //GOLD, SILVER
+ case L4_PROXY_OPCODE_STATUS_INDICATION_ARRIVED:
+ case L4_PROXY_OPCODE_L4_INDICATION_ARRIVED:
+- switch (l3L4CompleteHeader->Type)
++ switch (type)
+ {
+ case L3_L4_OPCODE_REPORT_EAP_REQUEST:
+ pUtils->tpfnPostRequest( MEDIUM,
+@@ -240,13 +246,13 @@ void wmxSup_MessagesHandler(L5_CONNECTION Conn,
+ case L3_L4_OPCODE_REPORT_ALT_ACCEPT:
+ case L3_L4_OPCODE_REPORT_KEY_REQUEST:
+ pUtils->tpfnPostRequest( MEDIUM,
+- l3L4CompleteHeader->Type,
++ type,
+ NULL,
+ 0,
+ wmxSup_InternalHandler );
+ break;
+ case L3_L4_OPCODE_REPORT_EMSK_RELATED_KEYS:
+- TRACE(TR_MOD_SUPPLICANT_WRAPPER, TR_SEV_INFO, "Received BEK (%d bytes)", l3L4CompleteHeader->Length);
++ TRACE(TR_MOD_SUPPLICANT_WRAPPER, TR_SEV_INFO, "Received BEK (%d bytes)", length);
+ break;
+ default:
+ TRACE(TR_MOD_SUPPLICANT_WRAPPER, TR_SEV_ERR,"Unknown message arrived");
+@@ -255,7 +261,7 @@ void wmxSup_MessagesHandler(L5_CONNECTION Conn,
+ break;
+ //PVC
+ case SUP_OPCODE_INDICATION_ARRIVED:
+- switch (((pSUP_MESSAGE_HEADER)pvSentBuffer)->opcode)
++ switch (wimaxll_le32_to_cpu(((pSUP_MESSAGE_HEADER)pvSentBuffer)->opcode))
+ {
+ case SUP_OPCODE_IND_EVENT:
+ EventReportCB(*(wmx_pSupEvent_t)(((pSUP_MESSAGE)pvSentBuffer)->buf));
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/updates/0020-endianess-use-endian.h-to-determine-endianess-vs-sta.patch b/net-wireless/wimax/files/updates/0020-endianess-use-endian.h-to-determine-endianess-vs-sta.patch
new file mode 100644
index 000000000000..6240500b83ee
--- /dev/null
+++ b/net-wireless/wimax/files/updates/0020-endianess-use-endian.h-to-determine-endianess-vs-sta.patch
@@ -0,0 +1,95 @@
+From befcae11af55ab8987548a01344ee994a83964e6 Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Fri, 4 Feb 2011 14:27:34 -0800
+Subject: [PATCH 20/20] endianess: use <endian.h> to determine endianess vs static Makefile definitions
+
+Reported-by: Doug Kehn <rdkehn@yahoo.com>
+
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ .../Common/L4Common/SourceControl/BitmanCommon.h | 6 ++++--
+ .../Instrumantation/MocMsgProxy/Makefile.am | 2 +-
+ .../Instrumantation/MocMsgProxy/Makefile.in | 2 +-
+ .../OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.am | 2 +-
+ .../OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.in | 2 +-
+ 5 files changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h
+index 874df35..11ff75f 100644
+--- a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h
++++ b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h
+@@ -12,6 +12,8 @@
+ #ifndef _BITMAN_COMMON_H_
+ #define _BITMAN_COMMON_H_
+
++#include <endian.h>
++
+ #if defined __ARMCC_VERSION
+ #ifndef __arm
+ #define __arm
+@@ -29,9 +31,9 @@
+ #define BMI_MACHINE_INTEL_LITTLE (3)
+
+ // New definitions for machine endianness
+-#if defined BMI_MACHINE_ENDIANNESS_LITTLE
++#if BYTE_ORDER == LITTLE_ENDIAN
+ #define BMI_ENDIANNESS_LITTLE
+-#elif defined BMI_MACHINE_ENDIANNESS_BIG
++#elif BYTE_ORDER == BIG_ENDIAN
+ #define BMI_ENDIANNESS_BIG
+ #endif
+
+diff --git a/InfraStack/OSAgnostic/Product/Instrumantation/MocMsgProxy/Makefile.am b/InfraStack/OSAgnostic/Product/Instrumantation/MocMsgProxy/Makefile.am
+index ff557d1..02bbf28 100644
+--- a/InfraStack/OSAgnostic/Product/Instrumantation/MocMsgProxy/Makefile.am
++++ b/InfraStack/OSAgnostic/Product/Instrumantation/MocMsgProxy/Makefile.am
+@@ -24,6 +24,6 @@ libMocMsgProxy_la_CFLAGS = \
+ -I "$(top_srcdir)/InfraStack/OSAgnostic/Common/L4Common/SourceControl" \
+ -I "$(top_srcdir)/InfraStack/OSDependent/Linux/L4Generated" \
+ -I "$(top_srcdir)/InfraStack/OSAgnostic/OSInterface/InfraStackModules" \
+- -D "_USE_TRACE" -D "BMI_ENDIANNESS_LITTLE" -D "_LINUX" -D "_OS_WIN32SIM"
++ -D "_USE_TRACE" -D "_LINUX" -D "_OS_WIN32SIM"
+
+
+diff --git a/InfraStack/OSAgnostic/Product/Instrumantation/MocMsgProxy/Makefile.in b/InfraStack/OSAgnostic/Product/Instrumantation/MocMsgProxy/Makefile.in
+index 287ebc6..0704a3d 100644
+--- a/InfraStack/OSAgnostic/Product/Instrumantation/MocMsgProxy/Makefile.in
++++ b/InfraStack/OSAgnostic/Product/Instrumantation/MocMsgProxy/Makefile.in
+@@ -218,7 +218,7 @@ libMocMsgProxy_la_CFLAGS = \
+ -I "$(top_srcdir)/InfraStack/OSAgnostic/Common/L4Common/SourceControl" \
+ -I "$(top_srcdir)/InfraStack/OSDependent/Linux/L4Generated" \
+ -I "$(top_srcdir)/InfraStack/OSAgnostic/OSInterface/InfraStackModules" \
+- -D "_USE_TRACE" -D "BMI_ENDIANNESS_LITTLE" -D "_LINUX" -D "_OS_WIN32SIM"
++ -D "_USE_TRACE" -D "_LINUX" -D "_OS_WIN32SIM"
+
+ all: all-am
+
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.am b/InfraStack/OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.am
+index 57c08c6..e66d576 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.am
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.am
+@@ -98,7 +98,7 @@ libiWmxSdk_la_CFLAGS = \
+ -I "$(srcdir)/../../Agents/NDnS/Source" \
+ -I "$(srcdir)/../../Agents/NDnS/APDO/" \
+ -I "$(srcdir)/../../Agents/Supplicant/Source/ds" \
+- -D "_USE_TRACE" -D "BMI_ENDIANNESS_LITTLE" \
++ -D "_USE_TRACE" \
+ -D "_OS_WIN32SIM" -D "OMADM_CLIENT_SIMULATOR" \
+ -D _GNU_SOURCE \
+ -D "_LINUX" -D "_WIMAX_SDK_" \
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.in b/InfraStack/OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.in
+index 893ec4c..743d355 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.in
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/iWmxSDK/Makefile.in
+@@ -333,7 +333,7 @@ libiWmxSdk_la_CFLAGS = \
+ -I "$(srcdir)/../../Agents/NDnS/Source" \
+ -I "$(srcdir)/../../Agents/NDnS/APDO/" \
+ -I "$(srcdir)/../../Agents/Supplicant/Source/ds" \
+- -D "_USE_TRACE" -D "BMI_ENDIANNESS_LITTLE" \
++ -D "_USE_TRACE" \
+ -D "_OS_WIN32SIM" -D "OMADM_CLIENT_SIMULATOR" \
+ -D _GNU_SOURCE \
+ -D "_LINUX" -D "_WIMAX_SDK_" \
+--
+1.7.4.1
+
diff --git a/net-wireless/wimax/files/wimax b/net-wireless/wimax/files/wimax
index 7b3bd8f5cb07..6a18f3d5b92d 100644
--- a/net-wireless/wimax/files/wimax
+++ b/net-wireless/wimax/files/wimax
@@ -1,7 +1,7 @@
#!/sbin/runscript
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/wimax/files/wimax,v 1.3 2010/11/08 18:04:00 alexxy Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/wimax/files/wimax,v 1.4 2011/02/23 11:12:08 alexxy Exp $
description="WiMAX Network Service"
@@ -13,7 +13,7 @@ depend() {
start() {
ebegin "Starting WiMAX Network Service"
[ -e /var/run/wimaxd.wmx0.pid ] && rm -f /var/run/wimaxd.wmx0.pid
- start-stop-daemon --start --quiet --pidfile /var/run/wimaxd.wmx0.pid --exec /usr/bin/wimaxd -b
+ start-stop-daemon --start --quiet --pidfile /var/run/wimaxd.wmx0.pid --exec /usr/bin/wimaxd -- -b
eend $?
}
diff --git a/net-wireless/wimax/wimax-1.5.1-r1.ebuild b/net-wireless/wimax/wimax-1.5.1-r1.ebuild
new file mode 100644
index 000000000000..de2a2eb5bfca
--- /dev/null
+++ b/net-wireless/wimax/wimax-1.5.1-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/wimax/wimax-1.5.1-r1.ebuild,v 1.1 2011/02/23 11:12:08 alexxy Exp $
+
+EAPI="3"
+
+inherit linux-info base
+
+DESCRIPTION="Intel WiMAX daemon used to interface to the hardware"
+HOMEPAGE="http://www.linuxwimax.org/"
+SRC_URI="http://www.linuxwimax.org/Download?action=AttachFile&do=get&target=${P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-libs/libnl-1.1
+ >=sys-kernel/linux-headers-2.6.34"
+RDEPEND="${DEPEND}
+ net-wireless/wimax-tools
+ net-wireless/wpa_supplicant[wimax]"
+
+PATCHES=(
+ "${FILESDIR}/updates/0001-wimax-network-service-64-bit-fixes.patch"
+ "${FILESDIR}/updates/0002-cleanup-fix-struct-packing-and-type-casting-issues.patch"
+ "${FILESDIR}/updates/0003-Fix-pthread_mutex_unlock-duplicate-call-in-OSALTrace.patch"
+ "${FILESDIR}/updates/0004-Fix-a-lot-of-warnings-about-undefined-malloc-free.patch"
+ "${FILESDIR}/updates/0005-remove-duplicate-typedef-for-u8.patch"
+ "${FILESDIR}/updates/0006-wimaxcu-fix-array-size.patch"
+ "${FILESDIR}/updates/0007-supplicant-fix-invocation-of-eap_peer_sm_init.patch"
+ "${FILESDIR}/updates/0008-supplicant-Fix-eap_methods-array-setup-and-declarati.patch"
+ "${FILESDIR}/updates/0009-daemon-don-t-mask-SEGV-just-crash-and-dump-core.patch"
+ "${FILESDIR}/updates/0010-OSAL-fix-OSAL_wcsmp-for-Linux-environments.patch"
+ "${FILESDIR}/updates/0011-configure-remove-O2-by-default.patch"
+ "${FILESDIR}/updates/0012-Allow-IP-handling-script-to-be-configurable-at-runti.patch"
+ "${FILESDIR}/updates/0013-Fix-typo-in-logrotate-script.patch"
+ "${FILESDIR}/updates/0014-KDapi-Big-endian-support.patch"
+ "${FILESDIR}/updates/0015-Wrappers-wmx_Preambles_t-alignment.patch"
+ "${FILESDIR}/updates/0016-Wrappers-wmx_SystemStateUpdate-alignment.patch"
+ "${FILESDIR}/updates/0017-L4_INTEL_80216_INDICATION-typedef-redefinition.patch"
+ "${FILESDIR}/updates/0018-L5Common-Big-endian-support.patch"
+ "${FILESDIR}/updates/0019-Supplicant-Big-endian-support.patch"
+ "${FILESDIR}/updates/0020-endianess-use-endian.h-to-determine-endianess-vs-sta.patch"
+)
+
+pkg_setup() {
+ linux-info_pkg_setup
+}
+
+src_configure() {
+ econf \
+ --with-libwimaxll=/usr/$(get_libdir) \
+ --localstatedir=/var \
+ --with-i2400m=/usr || die "econf failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "Install failed"
+ doinitd "${FILESDIR}"/wimax || die "failed to place the init daemon"
+ sed -e "s:/usr/lib/libeap.so.0:/usr/$(get_libdir)/libeap.so.0:g" \
+ -e "s:<GetDeviceTraces>3</GetDeviceTraces>:<GetDeviceTraces>0</GetDeviceTraces>:g" \
+ -e "s:<OutputTarget>console</OutputTarget>:<OutputTarget>daemon</OutputTarget>:g" \
+ -e "s:<IPRenew>1</IPRenew>:<IPRenew>0</IPRenew>:g" \
+ -i "${D}/etc/wimax/config.xml" || die "Fixing config failed"
+ # Drop udev rusles for now
+ rm -rf "${D}/etc/udev"
+}