Correct assorted 64-bit issues.

Signed-off-by: Paul Donohue <[email protected]>

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/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericConsole.c
 
b/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericConsole.c
index 69cab00..abc22e5 100644
--- 
a/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericConsole.c
+++ 
b/InfraStack/OSDependent/Linux/InfraStackModules/Skeletons/AppSrv/GenericConsole.c
@@ -118,8 +118,13 @@ void print_callstack_to_file(int sig, siginfo_t *info, 
void *secret)
        }
        strcat(gcLogFilePathName, "/callstack.log");
        if(OSAL_fopen(&fp, gcLogFilePathName, "a", 0) < 0) {
+#ifdef __x86_64__
+               syslog(LOG_ERR, "Got signal %d, faulty address is %p, from %p", 
+                      sig, info->si_addr, uc->uc_mcontext.gregs[REG_RIP]);
+#else
                syslog(LOG_ERR, "Got signal %d, faulty address is %p, from %p", 
                       sig, info->si_addr, uc->uc_mcontext.gregs[REG_EIP]);
+#endif
                syslog(LOG_ERR, "Could not open a file %s to log call stack");
                // printf("Came here %d\n", __LINE__);
                return;
@@ -137,13 +142,22 @@ void print_callstack_to_file(int sig, siginfo_t *info, 
void *secret)
        fprintf(fp, "Use the function name and offset to function and search 
file above for the line no \n");
        fprintf(fp, 
"==================================================================================\n\n");
        
+#ifdef __x86_64__
+       fprintf(fp, "Got signal %d, faulty address is %p, from %p\n", 
+               sig, info->si_addr, uc->uc_mcontext.gregs[REG_RIP]);
+#else
        fprintf(fp, "Got signal %d, faulty address is %p, from %p\n", 
                sig, info->si_addr, uc->uc_mcontext.gregs[REG_EIP]);
+#endif
        // printf("Came here %d\n", __LINE__);
        
        trace_size = backtrace(trace, 16);
        /* overwrite sigaction with caller's address */
+#ifdef __x86_64__
+       trace[1] = (void *) uc->uc_mcontext.gregs[REG_RIP];
+#else
        trace[1] = (void *) uc->uc_mcontext.gregs[REG_EIP];
+#endif
        
        messages = backtrace_symbols(trace, trace_size);
        /* skip first stack frame (points here) */
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;
 
_______________________________________________
wimax mailing list
[email protected]
http://lists.linuxwimax.org/listinfo/wimax

Reply via email to