This source file includes following definitions.
- read_aux_reg
- write_aux_reg
1
2
3
4
5
6 #ifndef __SOC_ARC_AUX_H__
7 #define __SOC_ARC_AUX_H__
8
9 #ifdef CONFIG_ARC
10
11 #define read_aux_reg(r) __builtin_arc_lr(r)
12
13
14 #define write_aux_reg(r, v) __builtin_arc_sr((unsigned int)(v), r)
15
16 #else
17
18 static inline int read_aux_reg(u32 r)
19 {
20 return 0;
21 }
22
23
24
25
26
27 static inline void write_aux_reg(u32 r, u32 v)
28 {
29 ;
30 }
31
32 #endif
33
34 #define READ_BCR(reg, into) \
35 { \
36 unsigned int tmp; \
37 tmp = read_aux_reg(reg); \
38 if (sizeof(tmp) == sizeof(into)) { \
39 into = *((typeof(into) *)&tmp); \
40 } else { \
41 extern void bogus_undefined(void); \
42 bogus_undefined(); \
43 } \
44 }
45
46 #define WRITE_AUX(reg, into) \
47 { \
48 unsigned int tmp; \
49 if (sizeof(tmp) == sizeof(into)) { \
50 tmp = (*(unsigned int *)&(into)); \
51 write_aux_reg(reg, tmp); \
52 } else { \
53 extern void bogus_undefined(void); \
54 bogus_undefined(); \
55 } \
56 }
57
58
59 #endif