13a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/****************************************************************************
23a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ****************************************************************************
33a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***
43a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   This header was automatically generated from a Linux kernel header
53a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   of the same name, to make information necessary for userspace to
63a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   call into the kernel available to libc.  It contains only constants,
73a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   structures, and macros generated from the original header, and thus,
83a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***   contains no copyrightable information.
93a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ***
103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ****************************************************************************
113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount ****************************************************************************/
123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#ifndef __LINUX_SEQLOCK_H
133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define __LINUX_SEQLOCK_H
143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#include <linux/spinlock.h>
163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#include <linux/preempt.h>
173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef struct {
193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount unsigned sequence;
203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount spinlock_t lock;
213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} seqlock_t;
223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define __SEQLOCK_UNLOCKED(lockname)   { 0, __SPIN_LOCK_UNLOCKED(lockname) }
243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define SEQLOCK_UNLOCKED   __SEQLOCK_UNLOCKED(old_style_seqlock_init)
263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define seqlock_init(x)   do { *(x) = (seqlock_t) __SEQLOCK_UNLOCKED(x); } while (0)
283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define DEFINE_SEQLOCK(x)   seqlock_t x = __SEQLOCK_UNLOCKED(x)
303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define SEQCNT_ZERO { 0 }
323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define seqcount_init(x) do { *(x) = (seqcount_t) SEQCNT_ZERO; } while (0)
333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define write_seqlock_irqsave(lock, flags)   do { local_irq_save(flags); write_seqlock(lock); } while (0)
353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define write_seqlock_irq(lock)   do { local_irq_disable(); write_seqlock(lock); } while (0)
363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define write_seqlock_bh(lock)   do { local_bh_disable(); write_seqlock(lock); } while (0)
373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define write_sequnlock_irqrestore(lock, flags)   do { write_sequnlock(lock); local_irq_restore(flags); } while(0)
383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define write_sequnlock_irq(lock)   do { write_sequnlock(lock); local_irq_enable(); } while(0)
393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define write_sequnlock_bh(lock)   do { write_sequnlock(lock); local_bh_enable(); } while(0)
403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define read_seqbegin_irqsave(lock, flags)   ({ local_irq_save(flags); read_seqbegin(lock); })
413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define read_seqretry_irqrestore(lock, iv, flags)   ({   int ret = read_seqretry(lock, iv);   local_irq_restore(flags);   ret;   })
423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif
43