diff options
author | Alexey Shvetsov <alexxy@gentoo.org> | 2011-02-23 11:12:08 +0000 |
---|---|---|
committer | Alexey Shvetsov <alexxy@gentoo.org> | 2011-02-23 11:12:08 +0000 |
commit | 67d66c4cbcc027efb36a9afb08fd97ef3d1e3749 (patch) | |
tree | 798c6e9bef3330de368c9eef8034f5d88a4c45c9 /net-wireless | |
parent | Version bump, remove old versions (which are not compatible with latest pcsc-... (diff) | |
download | gentoo-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')
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" +} |