Go to the documentation of this file. 1 #ifndef __PARISC_LDCW_H
2 #define __PARISC_LDCW_H
13 #define __PA_LDCW_ALIGNMENT 16
14 #define __ldcw_align(a) ({ \
15 unsigned long __ret = (unsigned long) &(a)->lock[0]; \
16 __ret = (__ret + __PA_LDCW_ALIGNMENT - 1) \
17 & ~(__PA_LDCW_ALIGNMENT - 1); \
18 (volatile unsigned int *) __ret; \
30 #define __PA_LDCW_ALIGNMENT 4
31 #define __ldcw_align(a) (&(a)->slock)
32 #define __LDCW "ldcw,co"
37 #define __ldcw(a) ({ \
39 __asm__ __volatile__(__LDCW " 0(%2),%0" \
40 : "=r" (__ret), "+m" (*(a)) : "r" (a)); \
45 # define __lock_aligned __attribute__((__section__(".data..lock_aligned")))