|
@@ -80,6 +80,14 @@ struct addr_64_st {
|
80
|
80
|
*/
|
81
|
81
|
#define MT_EXTRACT_ARRAY32(A,O,S) MT_EXTRACT32(((__u32*)A)[O >> 5],(O & MASK32(5)),S)
|
82
|
82
|
|
|
83
|
+/*
|
|
84
|
+ * MT_EXTRACT_ARRAY32_BE macro is similar to EXTRACT but works on an array of (__u32),
|
|
85
|
+ * thus offset may be larger than 32 (but not size).
|
|
86
|
+ *
|
|
87
|
+ * (added by mcb30)
|
|
88
|
+ */
|
|
89
|
+#define MT_EXTRACT_ARRAY32_BE(A,O,S) MT_EXTRACT32(be32_to_cpu(((__u32*)A)[O >> 5]),(O & MASK32(5)),S)
|
|
90
|
+
|
83
|
91
|
/*
|
84
|
92
|
* MT_INSERT_ARRAY32 macro is similar to INSERT but works on an array of (__u32),
|
85
|
93
|
* thus offset may be larger than 32 (but not size).
|
|
@@ -90,6 +98,8 @@ struct addr_64_st {
|
90
|
98
|
|
91
|
99
|
#define EX_FLD(a, st, fld) MT_EXTRACT_ARRAY32(a, MT_BIT_OFFSET(st, fld), MT_BIT_SIZE(st, fld))
|
92
|
100
|
|
|
101
|
+#define EX_FLD_BE(a, st, fld) MT_EXTRACT_ARRAY32_BE(a, MT_BIT_OFFSET(st, fld), MT_BIT_SIZE(st, fld))
|
|
102
|
+
|
93
|
103
|
/* return the address of the dword holding the field
|
94
|
104
|
|
95
|
105
|
buf = pointer to buffer where to place the value
|