local.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 51 行

H
51
字号
#ifndef _ASM_IA64_LOCAL_H#define _ASM_IA64_LOCAL_H/* * Copyright (C) 2003 Hewlett-Packard Co *	David Mosberger-Tang <davidm@hpl.hp.com> */#include <linux/percpu.h>typedef struct {	atomic64_t val;} local_t;#define LOCAL_INIT(i)	((local_t) { { (i) } })#define local_read(l)	atomic64_read(&(l)->val)#define local_set(l, i)	atomic64_set(&(l)->val, i)#define local_inc(l)	atomic64_inc(&(l)->val)#define local_dec(l)	atomic64_dec(&(l)->val)#define local_add(l)	atomic64_add(&(l)->val)#define local_sub(l)	atomic64_sub(&(l)->val)/* Non-atomic variants, i.e., preemption disabled and won't be touched in interrupt, etc.  */#define __local_inc(l)		(++(l)->val.counter)#define __local_dec(l)		(--(l)->val.counter)#define __local_add(i,l)	((l)->val.counter += (i))#define __local_sub(i,l)	((l)->val.counter -= (i))/* * Use these for per-cpu local_t variables.  Note they take a variable (eg. mystruct.foo), * not an address. */#define cpu_local_read(v)	local_read(&__ia64_per_cpu_var(v))#define cpu_local_set(v, i)	local_set(&__ia64_per_cpu_var(v), (i))#define cpu_local_inc(v)	local_inc(&__ia64_per_cpu_var(v))#define cpu_local_dec(v)	local_dec(&__ia64_per_cpu_var(v))#define cpu_local_add(i, v)	local_add((i), &__ia64_per_cpu_var(v))#define cpu_local_sub(i, v)	local_sub((i), &__ia64_per_cpu_var(v))/* * Non-atomic increments, i.e., preemption disabled and won't be touched in interrupt, * etc. */#define __cpu_local_inc(v)	__local_inc(&__ia64_per_cpu_var(v))#define __cpu_local_dec(v)	__local_dec(&__ia64_per_cpu_var(v))#define __cpu_local_add(i, v)	__local_add((i), &__ia64_per_cpu_var(v))#define __cpu_local_sub(i, v)	__local_sub((i), &__ia64_per_cpu_var(v))#endif /* _ASM_IA64_LOCAL_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?