at v2.6.26 31 lines 514 B view raw
1#ifndef _SPARC64_BACKOFF_H 2#define _SPARC64_BACKOFF_H 3 4#define BACKOFF_LIMIT (4 * 1024) 5 6#ifdef CONFIG_SMP 7 8#define BACKOFF_SETUP(reg) \ 9 mov 1, reg 10 11#define BACKOFF_SPIN(reg, tmp, label) \ 12 mov reg, tmp; \ 1388: brnz,pt tmp, 88b; \ 14 sub tmp, 1, tmp; \ 15 set BACKOFF_LIMIT, tmp; \ 16 cmp reg, tmp; \ 17 bg,pn %xcc, label; \ 18 nop; \ 19 ba,pt %xcc, label; \ 20 sllx reg, 1, reg; 21 22#else 23 24#define BACKOFF_SETUP(reg) 25#define BACKOFF_SPIN(reg, tmp, label) \ 26 ba,pt %xcc, label; \ 27 nop; 28 29#endif 30 31#endif /* _SPARC64_BACKOFF_H */