Lines Matching full:low
45 /* Low bit number of the specified field */
108 * Extract bit field portion [low,high) from the native-endian element
120 * [0,high-low), with garbage in bits [high-low+1,...).
122 #define EFX_EXTRACT_NATIVE(native_element, min, max, low, high) \ argument
123 (((low > max) || (high < min)) ? 0 : \
124 ((low > min) ? \
125 ((native_element) >> (low - min)) : \
126 ((native_element) << (min - low))))
129 * Extract bit field portion [low,high) from the 64-bit little-endian
132 #define EFX_EXTRACT64(element, min, max, low, high) \ argument
133 EFX_EXTRACT_NATIVE(le64_to_cpu(element), min, max, low, high)
136 * Extract bit field portion [low,high) from the 32-bit little-endian
139 #define EFX_EXTRACT32(element, min, max, low, high) \ argument
140 EFX_EXTRACT_NATIVE(le32_to_cpu(element), min, max, low, high)
142 #define EFX_EXTRACT_OWORD64(oword, low, high) \ argument
143 ((EFX_EXTRACT64((oword).u64[0], 0, 63, low, high) | \
144 EFX_EXTRACT64((oword).u64[1], 64, 127, low, high)) & \
145 EFX_MASK64(high + 1 - low))
147 #define EFX_EXTRACT_QWORD64(qword, low, high) \ argument
148 (EFX_EXTRACT64((qword).u64[0], 0, 63, low, high) & \
149 EFX_MASK64(high + 1 - low))
151 #define EFX_EXTRACT_OWORD32(oword, low, high) \ argument
152 ((EFX_EXTRACT32((oword).u32[0], 0, 31, low, high) | \
153 EFX_EXTRACT32((oword).u32[1], 32, 63, low, high) | \
154 EFX_EXTRACT32((oword).u32[2], 64, 95, low, high) | \
155 EFX_EXTRACT32((oword).u32[3], 96, 127, low, high)) & \
156 EFX_MASK32(high + 1 - low))
158 #define EFX_EXTRACT_QWORD32(qword, low, high) \ argument
159 ((EFX_EXTRACT32((qword).u32[0], 0, 31, low, high) | \
160 EFX_EXTRACT32((qword).u32[1], 32, 63, low, high)) & \
161 EFX_MASK32(high + 1 - low))
163 #define EFX_EXTRACT_DWORD(dword, low, high) \ argument
164 (EFX_EXTRACT32((dword).u32[0], 0, 31, low, high) & \
165 EFX_MASK32(high + 1 - low))
238 * Creates the portion of the bit field [low,high) that lies within
241 #define EFX_INSERT_NATIVE64(min, max, low, high, value) \ argument
242 (((low > max) || (high < min)) ? 0 : \
243 ((low > min) ? \
244 (((u64) (value)) << (low - min)) : \
245 (((u64) (value)) >> (min - low))))
247 #define EFX_INSERT_NATIVE32(min, max, low, high, value) \ argument
248 (((low > max) || (high < min)) ? 0 : \
249 ((low > min) ? \
250 (((u32) (value)) << (low - min)) : \
251 (((u32) (value)) >> (min - low))))
253 #define EFX_INSERT_NATIVE(min, max, low, high, value) \ argument
254 ((((max - min) >= 32) || ((high - low) >= 32)) ? \
255 EFX_INSERT_NATIVE64(min, max, low, high, value) : \
256 EFX_INSERT_NATIVE32(min, max, low, high, value))
438 #define EFX_INSERT64(min, max, low, high, value) \ argument
439 cpu_to_le64(EFX_INSERT_NATIVE(min, max, low, high, value))
441 #define EFX_INSERT32(min, max, low, high, value) \ argument
442 cpu_to_le32(EFX_INSERT_NATIVE(min, max, low, high, value))
444 #define EFX_INPLACE_MASK64(min, max, low, high) \ argument
445 EFX_INSERT64(min, max, low, high, EFX_MASK64(high + 1 - low))
447 #define EFX_INPLACE_MASK32(min, max, low, high) \ argument
448 EFX_INSERT32(min, max, low, high, EFX_MASK32(high + 1 - low))
450 #define EFX_SET_OWORD64(oword, low, high, value) do { \ argument
452 & ~EFX_INPLACE_MASK64(0, 63, low, high)) \
453 | EFX_INSERT64(0, 63, low, high, value)); \
455 & ~EFX_INPLACE_MASK64(64, 127, low, high)) \
456 | EFX_INSERT64(64, 127, low, high, value)); \
459 #define EFX_SET_QWORD64(qword, low, high, value) do { \ argument
461 & ~EFX_INPLACE_MASK64(0, 63, low, high)) \
462 | EFX_INSERT64(0, 63, low, high, value)); \
465 #define EFX_SET_OWORD32(oword, low, high, value) do { \ argument
467 & ~EFX_INPLACE_MASK32(0, 31, low, high)) \
468 | EFX_INSERT32(0, 31, low, high, value)); \
470 & ~EFX_INPLACE_MASK32(32, 63, low, high)) \
471 | EFX_INSERT32(32, 63, low, high, value)); \
473 & ~EFX_INPLACE_MASK32(64, 95, low, high)) \
474 | EFX_INSERT32(64, 95, low, high, value)); \
476 & ~EFX_INPLACE_MASK32(96, 127, low, high)) \
477 | EFX_INSERT32(96, 127, low, high, value)); \
480 #define EFX_SET_QWORD32(qword, low, high, value) do { \ argument
482 & ~EFX_INPLACE_MASK32(0, 31, low, high)) \
483 | EFX_INSERT32(0, 31, low, high, value)); \
485 & ~EFX_INPLACE_MASK32(32, 63, low, high)) \
486 | EFX_INSERT32(32, 63, low, high, value)); \
489 #define EFX_SET_DWORD32(dword, low, high, value) do { \ argument
491 & ~EFX_INPLACE_MASK32(0, 31, low, high)) \
492 | EFX_INSERT32(0, 31, low, high, value)); \