From 9730755fc7ee675e345744a7afa49024748ddd32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Mon, 7 Jun 2010 16:23:21 +0000 Subject: [PATCH] Remove CORELOCK_SWAP (unused since r16981) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26664 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/config.h | 5 ----- firmware/export/thread.h | 44 ---------------------------------------- 2 files changed, 49 deletions(-) diff --git a/firmware/export/config.h b/firmware/export/config.h index e64ca4127f..9a5aa73ed9 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -793,7 +793,6 @@ Lyre prototype 1 */ #define CORELOCK_NONE 0 #define SW_CORELOCK 1 /* Mutual exclusion provided by a software algorithm and not a special semaphore instruction */ -#define CORELOCK_SWAP 2 /* A swap (exchange) instruction */ #if defined(CPU_PP) #define IDLE_STACK_SIZE 0x80 @@ -818,11 +817,7 @@ Lyre prototype 1 */ #define IF_COP_VOID(...) __VA_ARGS__ #define IF_COP_CORE(core) core -#ifdef CPU_PP #define CONFIG_CORELOCK SW_CORELOCK /* SWP(B) is broken */ -#else -#define CONFIG_CORELOCK CORELOCK_SWAP -#endif #endif /* !defined(BOOTLOADER) && CONFIG_CPU != PP5002 */ diff --git a/firmware/export/thread.h b/firmware/export/thread.h index 9678c0434f..f27557b3d4 100644 --- a/firmware/export/thread.h +++ b/firmware/export/thread.h @@ -175,21 +175,6 @@ void corelock_init(struct corelock *cl); void corelock_lock(struct corelock *cl); int corelock_try_lock(struct corelock *cl); void corelock_unlock(struct corelock *cl); -#elif CONFIG_CORELOCK == CORELOCK_SWAP -/* Use native atomic swap/exchange instruction */ -struct corelock -{ - volatile unsigned char locked; -} __attribute__((packed)); - -#define corelock_init(cl) \ - ({ (cl)->locked = 0; }) -#define corelock_lock(cl) \ - ({ while (test_and_set(&(cl)->locked, 1)); }) -#define corelock_try_lock(cl) \ - ({ test_and_set(&(cl)->locked, 1) ? 0 : 1; }) -#define corelock_unlock(cl) \ - ({ (cl)->locked = 0; }) #else /* No atomic corelock op needed or just none defined */ #define corelock_init(cl) @@ -384,35 +369,6 @@ struct core_entry *(a) = (v); \ corelock_unlock(cl); \ o; }) -#elif CONFIG_CORELOCK == CORELOCK_SWAP -/* atomic */ -#define test_and_set(a, v, ...) \ - xchg8((a), (v)) -#define xchg8(a, v, ...) \ -({ uint32_t o; \ - asm volatile( \ - "swpb %0, %1, [%2]" \ - : "=&r"(o) \ - : "r"(v), \ - "r"((uint8_t*)(a))); \ - o; }) -/* atomic */ -#define xchg32(a, v, ...) \ -({ uint32_t o; \ - asm volatile( \ - "swp %0, %1, [%2]" \ - : "=&r"(o) \ - : "r"((uint32_t)(v)), \ - "r"((uint32_t*)(a))); \ - o; }) -/* atomic */ -#define xchgptr(a, v, ...) \ -({ typeof (*(a)) o; \ - asm volatile( \ - "swp %0, %1, [%2]" \ - : "=&r"(o) \ - : "r"(v), "r"(a)); \ - o; }) #endif /* locking selection */ #elif defined (CPU_COLDFIRE) /* atomic */