NFSv4: Warn once about servers that incorrectly apply open mode to setattr
[platform/adaptation/renesas_rcar/renesas_kernel.git] / arch / arm / include / asm / xen / events.h
1 #ifndef _ASM_ARM_XEN_EVENTS_H
2 #define _ASM_ARM_XEN_EVENTS_H
3
4 #include <asm/ptrace.h>
5
6 enum ipi_vector {
7         XEN_PLACEHOLDER_VECTOR,
8
9         /* Xen IPIs go here */
10         XEN_NR_IPIS,
11 };
12
13 static inline int xen_irqs_disabled(struct pt_regs *regs)
14 {
15         return raw_irqs_disabled_flags(regs->ARM_cpsr);
16 }
17
18 /*
19  * We cannot use xchg because it does not support 8-byte
20  * values. However it is safe to use {ldr,dtd}exd directly because all
21  * platforms which Xen can run on support those instructions.
22  */
23 static inline xen_ulong_t xchg_xen_ulong(xen_ulong_t *ptr, xen_ulong_t val)
24 {
25         xen_ulong_t oldval;
26         unsigned int tmp;
27
28         wmb();
29         asm volatile("@ xchg_xen_ulong\n"
30                 "1:     ldrexd  %0, %H0, [%3]\n"
31                 "       strexd  %1, %2, %H2, [%3]\n"
32                 "       teq     %1, #0\n"
33                 "       bne     1b"
34                 : "=&r" (oldval), "=&r" (tmp)
35                 : "r" (val), "r" (ptr)
36                 : "memory", "cc");
37         return oldval;
38 }
39
40 #endif /* _ASM_ARM_XEN_EVENTS_H */