You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2014/04/02 18:42:50 UTC
[2/2] git commit: TS-2687 Support for MIPS paltform
TS-2687 Support for MIPS paltform
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/2f817905
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/2f817905
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/2f817905
Branch: refs/heads/master
Commit: 2f8179056402694ac7df828a264b4aa92ec964ea
Parents: 823b187
Author: Dejan Latinovic <De...@rt-rk.com>
Authored: Wed Apr 2 10:40:50 2014 -0600
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Wed Apr 2 10:42:35 2014 -0600
----------------------------------------------------------------------
lib/ts/ink_atomic.h | 2 +-
lib/ts/ink_queue.h | 4 ++--
lib/ts/ink_queue_utils.cc | 2 +-
plugins/experimental/geoip_acl/lulu.h | 6 +++++-
plugins/header_rewrite/lulu.h | 10 +++++++++-
5 files changed, 18 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f817905/lib/ts/ink_atomic.h
----------------------------------------------------------------------
diff --git a/lib/ts/ink_atomic.h b/lib/ts/ink_atomic.h
index 47fb65b..9615ea5 100644
--- a/lib/ts/ink_atomic.h
+++ b/lib/ts/ink_atomic.h
@@ -170,7 +170,7 @@ ink_atomic_decrement(volatile Type * mem, Amount count) {
}
// Special hacks for ARM 32-bit
-#if defined(__arm__) && (SIZEOF_VOIDP == 4)
+#if (defined(__arm__) || defined(__mips__)) && (SIZEOF_VOIDP == 4)
extern ink_mutex __global_death;
template<>
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f817905/lib/ts/ink_queue.h
----------------------------------------------------------------------
diff --git a/lib/ts/ink_queue.h b/lib/ts/ink_queue.h
index 41195c6..de9a0fb 100644
--- a/lib/ts/ink_queue.h
+++ b/lib/ts/ink_queue.h
@@ -85,7 +85,7 @@ extern "C"
// lock, use INK_QUEUE_LD to read safely.
typedef union
{
-#if (defined(__i386__) || defined(__arm__)) && (SIZEOF_VOIDP == 4)
+#if (defined(__i386__) || defined(__arm__) || defined(__mips__)) && (SIZEOF_VOIDP == 4)
struct
{
void *pointer;
@@ -124,7 +124,7 @@ extern "C"
#define TO_PTR(_x) ((void*)(_x))
#endif
-#if (defined(__i386__) || defined(__arm__)) && (SIZEOF_VOIDP == 4)
+#if (defined(__i386__) || defined(__arm__) || defined(__mips__)) && (SIZEOF_VOIDP == 4)
#define FREELIST_POINTER(_x) (_x).s.pointer
#define FREELIST_VERSION(_x) (_x).s.version
#define SET_FREELIST_POINTER_VERSION(_x,_p,_v) \
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f817905/lib/ts/ink_queue_utils.cc
----------------------------------------------------------------------
diff --git a/lib/ts/ink_queue_utils.cc b/lib/ts/ink_queue_utils.cc
index 4fa9dff..f93898b 100644
--- a/lib/ts/ink_queue_utils.cc
+++ b/lib/ts/ink_queue_utils.cc
@@ -68,7 +68,7 @@
void
ink_queue_load_64(void *dst, void *src)
{
-#if (defined(__i386__) || defined(__arm__)) && (SIZEOF_VOIDP == 4)
+#if (defined(__i386__) || defined(__arm__) || defined(__mips__)) && (SIZEOF_VOIDP == 4)
volatile int32_t src_version = (*(head_p *) src).s.version;
void *src_pointer = (*(head_p *) src).s.pointer;
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f817905/plugins/experimental/geoip_acl/lulu.h
----------------------------------------------------------------------
diff --git a/plugins/experimental/geoip_acl/lulu.h b/plugins/experimental/geoip_acl/lulu.h
index acb154f..8641bf0 100644
--- a/plugins/experimental/geoip_acl/lulu.h
+++ b/plugins/experimental/geoip_acl/lulu.h
@@ -29,7 +29,7 @@
#include "ink_defs.h"
#include "ink_atomic.h"
-// Memory barriers on i386 / linux / gcc
+// Memory barriers
#if defined(__i386__)
#define mb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" )
#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" )
@@ -42,6 +42,10 @@
#define mb() __asm__ __volatile__ ( "dmb" : : : "memory")
#define rmb() __asm__ __volatile__ ( "dmb" : : : "memory")
#define wmb() __asm__ __volatile__ ( "" : : : "memory")
+#elif defined(__mips__)
+#define mb() __asm__ __volatile__ ( "sync" : : : "memory")
+#define rmb() __asm__ __volatile__ ( "sync" : : : "memory")
+#define wmb() __asm__ __volatile__ ( "" : : : "memory")
#else
#error "Define barriers"
#endif
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f817905/plugins/header_rewrite/lulu.h
----------------------------------------------------------------------
diff --git a/plugins/header_rewrite/lulu.h b/plugins/header_rewrite/lulu.h
index eb89031..28b2e1b 100644
--- a/plugins/header_rewrite/lulu.h
+++ b/plugins/header_rewrite/lulu.h
@@ -26,7 +26,7 @@
#include "ink_defs.h"
-// Memory barriers on i386 / linux / gcc
+// Memory barriers
#if defined(__i386__)
#define mb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" )
#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" )
@@ -35,10 +35,18 @@
#define mb() __asm__ __volatile__ ( "mfence" : : : "memory")
#define rmb() __asm__ __volatile__ ( "lfence" : : : "memory")
#define wmb() __asm__ __volatile__ ( "" : : : "memory")
+#elif defined(__mips__)
+#define mb() __asm__ __volatile__ ( "sync" : : : "memory")
+#define rmb() __asm__ __volatile__ ( "sync" : : : "memory")
+#define wmb() __asm__ __volatile__ ( "" : : : "memory")
#elif defined(__arm__)
#define mb() __asm__ __volatile__ ( "dmb" : : : "memory")
#define rmb() __asm__ __volatile__ ( "dmb" : : : "memory")
#define wmb() __asm__ __volatile__ ( "" : : : "memory")
+#elif defined(__mips__)
+#define mb() __asm__ __volatile__ ( "sync" : : : "memory")
+#define rmb() __asm__ __volatile__ ( "sync" : : : "memory")
+#define wmb() __asm__ __volatile__ ( "" : : : "memory")
#else
#error "Define barriers"
#endif