diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-07-27 22:07:53 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-07-27 22:07:53 +0000 |
commit | 4fbe7358c7747a9165f776eb19addbb9baf7def2 (patch) | |
tree | bc7076b4f6d10c2cc2942539bb666e50f0b66954 /libdde_linux26/include/linux/percpu_counter.h | |
parent | 21adb5284111190057db245cfc2b54091920c373 (diff) |
rename libdde_linux26 into libdde-linux26 to make dpkg-source happy
Diffstat (limited to 'libdde_linux26/include/linux/percpu_counter.h')
-rw-r--r-- | libdde_linux26/include/linux/percpu_counter.h | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/libdde_linux26/include/linux/percpu_counter.h b/libdde_linux26/include/linux/percpu_counter.h deleted file mode 100644 index c1f9482f..00000000 --- a/libdde_linux26/include/linux/percpu_counter.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef _LINUX_PERCPU_COUNTER_H -#define _LINUX_PERCPU_COUNTER_H -/* - * A simple "approximate counter" for use in ext2 and ext3 superblocks. - * - * WARNING: these things are HUGE. 4 kbytes per counter on 32-way P4. - */ - -#include <linux/spinlock.h> -#include <linux/smp.h> -#include <linux/list.h> -#include <linux/threads.h> -#include <linux/percpu.h> -#include <linux/types.h> - -#if defined(CONFIG_SMP) && !defined(DDE_LINUX) - -struct percpu_counter { - spinlock_t lock; - s64 count; -#ifdef CONFIG_HOTPLUG_CPU - struct list_head list; /* All percpu_counters are on a list */ -#endif - s32 *counters; -}; - -extern int percpu_counter_batch; - -int __percpu_counter_init(struct percpu_counter *fbc, s64 amount, - struct lock_class_key *key); - -#define percpu_counter_init(fbc, value) \ - ({ \ - static struct lock_class_key __key; \ - \ - __percpu_counter_init(fbc, value, &__key); \ - }) - -void percpu_counter_destroy(struct percpu_counter *fbc); -void percpu_counter_set(struct percpu_counter *fbc, s64 amount); -void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch); -s64 __percpu_counter_sum(struct percpu_counter *fbc); - -static inline void percpu_counter_add(struct percpu_counter *fbc, s64 amount) -{ - __percpu_counter_add(fbc, amount, percpu_counter_batch); -} - -static inline s64 percpu_counter_sum_positive(struct percpu_counter *fbc) -{ - s64 ret = __percpu_counter_sum(fbc); - return ret < 0 ? 0 : ret; -} - -static inline s64 percpu_counter_sum(struct percpu_counter *fbc) -{ - return __percpu_counter_sum(fbc); -} - -static inline s64 percpu_counter_read(struct percpu_counter *fbc) -{ - return fbc->count; -} - -/* - * It is possible for the percpu_counter_read() to return a small negative - * number for some counter which should never be negative. - * - */ -static inline s64 percpu_counter_read_positive(struct percpu_counter *fbc) -{ - s64 ret = fbc->count; - - barrier(); /* Prevent reloads of fbc->count */ - if (ret >= 0) - return ret; - return 1; -} - -#else - -struct percpu_counter { - s64 count; -}; - -static inline int percpu_counter_init(struct percpu_counter *fbc, s64 amount) -{ - fbc->count = amount; - return 0; -} - -static inline void percpu_counter_destroy(struct percpu_counter *fbc) -{ -} - -static inline void percpu_counter_set(struct percpu_counter *fbc, s64 amount) -{ - fbc->count = amount; -} - -#define __percpu_counter_add(fbc, amount, batch) \ - percpu_counter_add(fbc, amount) - -static inline void -percpu_counter_add(struct percpu_counter *fbc, s64 amount) -{ - preempt_disable(); - fbc->count += amount; - preempt_enable(); -} - -static inline s64 percpu_counter_read(struct percpu_counter *fbc) -{ - return fbc->count; -} - -static inline s64 percpu_counter_read_positive(struct percpu_counter *fbc) -{ - return fbc->count; -} - -static inline s64 percpu_counter_sum_positive(struct percpu_counter *fbc) -{ - return percpu_counter_read_positive(fbc); -} - -static inline s64 percpu_counter_sum(struct percpu_counter *fbc) -{ - return percpu_counter_read(fbc); -} - -#endif /* CONFIG_SMP */ - -static inline void percpu_counter_inc(struct percpu_counter *fbc) -{ - percpu_counter_add(fbc, 1); -} - -static inline void percpu_counter_dec(struct percpu_counter *fbc) -{ - percpu_counter_add(fbc, -1); -} - -static inline void percpu_counter_sub(struct percpu_counter *fbc, s64 amount) -{ - percpu_counter_add(fbc, -amount); -} - -#endif /* _LINUX_PERCPU_COUNTER_H */ |