diff options
author | H. Nikolaus Schaller <hns@goldelico.com> | 2012-04-20 14:13:13 +0200 |
---|---|---|
committer | H. Nikolaus Schaller <hns@goldelico.com> | 2012-04-20 14:13:13 +0200 |
commit | 8a096e250cd4eafa42cc44ec40a4f76d336f8616 (patch) | |
tree | eb78d44f840c4d31f2883f0c35b71b89d0ee47e7 /uart-monitor/include/asm/atomic.h | |
parent | 819e36b8ceadb1d67db1ffe91b99c5282bfc6159 (diff) | |
download | bootable_bootloader_goldelico_gta04_x-loader-8a096e250cd4eafa42cc44ec40a4f76d336f8616.zip bootable_bootloader_goldelico_gta04_x-loader-8a096e250cd4eafa42cc44ec40a4f76d336f8616.tar.gz bootable_bootloader_goldelico_gta04_x-loader-8a096e250cd4eafa42cc44ec40a4f76d336f8616.tar.bz2 |
cleaned old uart-monitor and uart-loader which have become part of x-loader
Diffstat (limited to 'uart-monitor/include/asm/atomic.h')
-rw-r--r-- | uart-monitor/include/asm/atomic.h | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/uart-monitor/include/asm/atomic.h b/uart-monitor/include/asm/atomic.h deleted file mode 100644 index ba9e4b7..0000000 --- a/uart-monitor/include/asm/atomic.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * linux/include/asm-arm/atomic.h - * - * Copyright (c) 1996 Russell King. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Changelog: - * 27-06-1996 RMK Created - * 13-04-1997 RMK Made functions atomic! - * 07-12-1997 RMK Upgraded for v2.1. - * 26-08-1998 PJB Added #ifdef __KERNEL__ - */ -#ifndef __ASM_ARM_ATOMIC_H -#define __ASM_ARM_ATOMIC_H - -#include <linux/config.h> - -#ifdef CONFIG_SMP -#error SMP not supported -#endif - -typedef struct { volatile int counter; } atomic_t; - -#define ATOMIC_INIT(i) { (i) } - -#ifdef __KERNEL__ -#include <asm/proc/system.h> - -#define atomic_read(v) ((v)->counter) -#define atomic_set(v,i) (((v)->counter) = (i)) - -static inline void atomic_add(int i, volatile atomic_t *v) -{ - unsigned long flags; - - local_irq_save(flags); - v->counter += i; - local_irq_restore(flags); -} - -static inline void atomic_sub(int i, volatile atomic_t *v) -{ - unsigned long flags; - - local_irq_save(flags); - v->counter -= i; - local_irq_restore(flags); -} - -static inline void atomic_inc(volatile atomic_t *v) -{ - unsigned long flags; - - local_irq_save(flags); - v->counter += 1; - local_irq_restore(flags); -} - -static inline void atomic_dec(volatile atomic_t *v) -{ - unsigned long flags; - - local_irq_save(flags); - v->counter -= 1; - local_irq_restore(flags); -} - -static inline int atomic_dec_and_test(volatile atomic_t *v) -{ - unsigned long flags; - int val; - - local_irq_save(flags); - val = v->counter; - v->counter = val -= 1; - local_irq_restore(flags); - - return val == 0; -} - -static inline int atomic_add_negative(int i, volatile atomic_t *v) -{ - unsigned long flags; - int val; - - local_irq_save(flags); - val = v->counter; - v->counter = val += i; - local_irq_restore(flags); - - return val < 0; -} - -static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr) -{ - unsigned long flags; - - local_irq_save(flags); - *addr &= ~mask; - local_irq_restore(flags); -} - -/* Atomic operations are already serializing on ARM */ -#define smp_mb__before_atomic_dec() barrier() -#define smp_mb__after_atomic_dec() barrier() -#define smp_mb__before_atomic_inc() barrier() -#define smp_mb__after_atomic_inc() barrier() - -#endif -#endif |