Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit c0cd32d

Browse files
committed
Add ARM32 support by Andrew McMurry
1 parent a01dfe7 commit c0cd32d

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/include/port/bsd.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@
2424
#define HAS_TEST_AND_SET
2525
#endif
2626

27+
#if defined(__arm32__)
28+
#define HAS_TEST_AND_SET
29+
#endif
30+
2731
#if defined(__powerpc__)
2832
#define HAS_TEST_AND_SET
2933
typedef unsigned int slock_t;

src/include/storage/s_lock.h

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.58 1999/02/13 23:22:09 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.59 1999/04/13 17:42:26 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -124,6 +124,22 @@ __asm__("lock; xchgb %0,%1": "=q"(_res), "=m"(*lock):"0"(_res));
124124

125125

126126

127+
#if defined(__arm32__)
128+
#define TAS(lock) tas(lock)
129+
130+
static __inline__ int
131+
tas(volatile slock_t *lock)
132+
{
133+
register slock_t _res = 1;
134+
135+
__asm__("swpb %0, %0, [%3]": "=r"(_res), "=m"(*lock):"0"(_res), "r" (lock));
136+
return (int) _res;
137+
}
138+
139+
#endif /* __arm32__ */
140+
141+
142+
127143
#if defined(sparc)
128144
#define TAS(lock) tas(lock)
129145

0 commit comments

Comments
 (0)