1 /* 2 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #ifndef _VHT_SIG_B_SU160_INFO_H_ 18 #define _VHT_SIG_B_SU160_INFO_H_ 19 #if !defined(__ASSEMBLER__) 20 #endif 21 22 #define NUM_OF_DWORDS_VHT_SIG_B_SU160_INFO 8 23 24 25 struct vht_sig_b_su160_info { 26 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 27 uint32_t length : 21, // [20:0] 28 vhtb_reserved : 2, // [22:21] 29 tail : 6, // [28:23] 30 reserved_0 : 2, // [30:29] 31 rx_ndp : 1; // [31:31] 32 uint32_t length_copy_a : 21, // [20:0] 33 vhtb_reserved_copy_a : 2, // [22:21] 34 tail_copy_a : 6, // [28:23] 35 reserved_1 : 2, // [30:29] 36 rx_ndp_copy_a : 1; // [31:31] 37 uint32_t length_copy_b : 21, // [20:0] 38 vhtb_reserved_copy_b : 2, // [22:21] 39 tail_copy_b : 6, // [28:23] 40 reserved_2 : 2, // [30:29] 41 rx_ndp_copy_b : 1; // [31:31] 42 uint32_t length_copy_c : 21, // [20:0] 43 vhtb_reserved_copy_c : 2, // [22:21] 44 tail_copy_c : 6, // [28:23] 45 reserved_3 : 2, // [30:29] 46 rx_ndp_copy_c : 1; // [31:31] 47 uint32_t length_copy_d : 21, // [20:0] 48 vhtb_reserved_copy_d : 2, // [22:21] 49 tail_copy_d : 6, // [28:23] 50 reserved_4 : 2, // [30:29] 51 rx_ndp_copy_d : 1; // [31:31] 52 uint32_t length_copy_e : 21, // [20:0] 53 vhtb_reserved_copy_e : 2, // [22:21] 54 tail_copy_e : 6, // [28:23] 55 reserved_5 : 2, // [30:29] 56 rx_ndp_copy_e : 1; // [31:31] 57 uint32_t length_copy_f : 21, // [20:0] 58 vhtb_reserved_copy_f : 2, // [22:21] 59 tail_copy_f : 6, // [28:23] 60 reserved_6 : 2, // [30:29] 61 rx_ndp_copy_f : 1; // [31:31] 62 uint32_t length_copy_g : 21, // [20:0] 63 vhtb_reserved_copy_g : 2, // [22:21] 64 tail_copy_g : 6, // [28:23] 65 reserved_7 : 2, // [30:29] 66 rx_ndp_copy_g : 1; // [31:31] 67 #else 68 uint32_t rx_ndp : 1, // [31:31] 69 reserved_0 : 2, // [30:29] 70 tail : 6, // [28:23] 71 vhtb_reserved : 2, // [22:21] 72 length : 21; // [20:0] 73 uint32_t rx_ndp_copy_a : 1, // [31:31] 74 reserved_1 : 2, // [30:29] 75 tail_copy_a : 6, // [28:23] 76 vhtb_reserved_copy_a : 2, // [22:21] 77 length_copy_a : 21; // [20:0] 78 uint32_t rx_ndp_copy_b : 1, // [31:31] 79 reserved_2 : 2, // [30:29] 80 tail_copy_b : 6, // [28:23] 81 vhtb_reserved_copy_b : 2, // [22:21] 82 length_copy_b : 21; // [20:0] 83 uint32_t rx_ndp_copy_c : 1, // [31:31] 84 reserved_3 : 2, // [30:29] 85 tail_copy_c : 6, // [28:23] 86 vhtb_reserved_copy_c : 2, // [22:21] 87 length_copy_c : 21; // [20:0] 88 uint32_t rx_ndp_copy_d : 1, // [31:31] 89 reserved_4 : 2, // [30:29] 90 tail_copy_d : 6, // [28:23] 91 vhtb_reserved_copy_d : 2, // [22:21] 92 length_copy_d : 21; // [20:0] 93 uint32_t rx_ndp_copy_e : 1, // [31:31] 94 reserved_5 : 2, // [30:29] 95 tail_copy_e : 6, // [28:23] 96 vhtb_reserved_copy_e : 2, // [22:21] 97 length_copy_e : 21; // [20:0] 98 uint32_t rx_ndp_copy_f : 1, // [31:31] 99 reserved_6 : 2, // [30:29] 100 tail_copy_f : 6, // [28:23] 101 vhtb_reserved_copy_f : 2, // [22:21] 102 length_copy_f : 21; // [20:0] 103 uint32_t rx_ndp_copy_g : 1, // [31:31] 104 reserved_7 : 2, // [30:29] 105 tail_copy_g : 6, // [28:23] 106 vhtb_reserved_copy_g : 2, // [22:21] 107 length_copy_g : 21; // [20:0] 108 #endif 109 }; 110 111 112 /* Description LENGTH 113 114 VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) 115 116 <legal all> 117 */ 118 119 #define VHT_SIG_B_SU160_INFO_LENGTH_OFFSET 0x00000000 120 #define VHT_SIG_B_SU160_INFO_LENGTH_LSB 0 121 #define VHT_SIG_B_SU160_INFO_LENGTH_MSB 20 122 #define VHT_SIG_B_SU160_INFO_LENGTH_MASK 0x001fffff 123 124 125 /* Description VHTB_RESERVED 126 127 Reserved: Set to all ones for non-NDP frames and ignored 128 on receive <legal 1,3> 129 */ 130 131 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_OFFSET 0x00000000 132 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_LSB 21 133 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_MSB 22 134 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_MASK 0x00600000 135 136 137 /* Description TAIL 138 139 Used to terminate the trellis of the convolutional decoder. 140 141 Set to 0. <legal 0> 142 */ 143 144 #define VHT_SIG_B_SU160_INFO_TAIL_OFFSET 0x00000000 145 #define VHT_SIG_B_SU160_INFO_TAIL_LSB 23 146 #define VHT_SIG_B_SU160_INFO_TAIL_MSB 28 147 #define VHT_SIG_B_SU160_INFO_TAIL_MASK 0x1f800000 148 149 150 /* Description RESERVED_0 151 152 Not part of VHT-SIG-B. 153 Reserved: Set to 0 and ignored on receive <legal 0> 154 */ 155 156 #define VHT_SIG_B_SU160_INFO_RESERVED_0_OFFSET 0x00000000 157 #define VHT_SIG_B_SU160_INFO_RESERVED_0_LSB 29 158 #define VHT_SIG_B_SU160_INFO_RESERVED_0_MSB 30 159 #define VHT_SIG_B_SU160_INFO_RESERVED_0_MASK 0x60000000 160 161 162 /* Description RX_NDP 163 164 Not part of VHT-SIG-B. 165 Used to identify received NDP frame 166 <legal 0,1> 167 */ 168 169 #define VHT_SIG_B_SU160_INFO_RX_NDP_OFFSET 0x00000000 170 #define VHT_SIG_B_SU160_INFO_RX_NDP_LSB 31 171 #define VHT_SIG_B_SU160_INFO_RX_NDP_MSB 31 172 #define VHT_SIG_B_SU160_INFO_RX_NDP_MASK 0x80000000 173 174 175 /* Description LENGTH_COPY_A 176 177 Same as "length" <legal all> 178 */ 179 180 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_OFFSET 0x00000004 181 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_LSB 0 182 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_MSB 20 183 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_MASK 0x001fffff 184 185 186 /* Description VHTB_RESERVED_COPY_A 187 188 Same as "vhtb_reserved" <legal 1,3> 189 */ 190 191 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_OFFSET 0x00000004 192 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_LSB 21 193 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_MSB 22 194 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_MASK 0x00600000 195 196 197 /* Description TAIL_COPY_A 198 199 Same as "tail" <legal 0> 200 */ 201 202 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_OFFSET 0x00000004 203 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_LSB 23 204 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_MSB 28 205 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_MASK 0x1f800000 206 207 208 /* Description RESERVED_1 209 210 Reserved: Set to 0 and ignored on receive <legal 0> 211 */ 212 213 #define VHT_SIG_B_SU160_INFO_RESERVED_1_OFFSET 0x00000004 214 #define VHT_SIG_B_SU160_INFO_RESERVED_1_LSB 29 215 #define VHT_SIG_B_SU160_INFO_RESERVED_1_MSB 30 216 #define VHT_SIG_B_SU160_INFO_RESERVED_1_MASK 0x60000000 217 218 219 /* Description RX_NDP_COPY_A 220 221 Not part of VHT-SIG-B. 222 Used to identify received NDP frame 223 <legal 0,1> 224 */ 225 226 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_OFFSET 0x00000004 227 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_LSB 31 228 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_MSB 31 229 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_MASK 0x80000000 230 231 232 /* Description LENGTH_COPY_B 233 234 Same as "length" <legal all> 235 */ 236 237 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_OFFSET 0x00000008 238 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_LSB 0 239 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_MSB 20 240 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_MASK 0x001fffff 241 242 243 /* Description VHTB_RESERVED_COPY_B 244 245 Same as "vhtb_reserved" <legal 1,3> 246 */ 247 248 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_OFFSET 0x00000008 249 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_LSB 21 250 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_MSB 22 251 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_MASK 0x00600000 252 253 254 /* Description TAIL_COPY_B 255 256 Same as "tail" <legal 0> 257 */ 258 259 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_OFFSET 0x00000008 260 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_LSB 23 261 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_MSB 28 262 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_MASK 0x1f800000 263 264 265 /* Description RESERVED_2 266 267 Reserved: Set to 0 and ignored on receive <legal 0> 268 */ 269 270 #define VHT_SIG_B_SU160_INFO_RESERVED_2_OFFSET 0x00000008 271 #define VHT_SIG_B_SU160_INFO_RESERVED_2_LSB 29 272 #define VHT_SIG_B_SU160_INFO_RESERVED_2_MSB 30 273 #define VHT_SIG_B_SU160_INFO_RESERVED_2_MASK 0x60000000 274 275 276 /* Description RX_NDP_COPY_B 277 278 Not part of VHT-SIG-B. 279 Used to identify received NDP frame 280 <legal 0,1> 281 */ 282 283 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_OFFSET 0x00000008 284 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_LSB 31 285 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_MSB 31 286 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_MASK 0x80000000 287 288 289 /* Description LENGTH_COPY_C 290 291 Same as "length" <legal all> 292 */ 293 294 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_OFFSET 0x0000000c 295 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_LSB 0 296 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_MSB 20 297 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_MASK 0x001fffff 298 299 300 /* Description VHTB_RESERVED_COPY_C 301 302 Same as "vhtb_reserved" <legal 1,3> 303 */ 304 305 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_OFFSET 0x0000000c 306 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_LSB 21 307 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_MSB 22 308 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_MASK 0x00600000 309 310 311 /* Description TAIL_COPY_C 312 313 Same as "tail" <legal 0> 314 */ 315 316 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_OFFSET 0x0000000c 317 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_LSB 23 318 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_MSB 28 319 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_MASK 0x1f800000 320 321 322 /* Description RESERVED_3 323 324 Reserved: Set to 0 and ignored on receive <legal 0> 325 */ 326 327 #define VHT_SIG_B_SU160_INFO_RESERVED_3_OFFSET 0x0000000c 328 #define VHT_SIG_B_SU160_INFO_RESERVED_3_LSB 29 329 #define VHT_SIG_B_SU160_INFO_RESERVED_3_MSB 30 330 #define VHT_SIG_B_SU160_INFO_RESERVED_3_MASK 0x60000000 331 332 333 /* Description RX_NDP_COPY_C 334 335 Not part of VHT-SIG-B. 336 Used to identify received NDP frame 337 <legal 0,1> 338 */ 339 340 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_OFFSET 0x0000000c 341 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_LSB 31 342 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_MSB 31 343 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_MASK 0x80000000 344 345 346 /* Description LENGTH_COPY_D 347 348 Same as "length" <legal all> 349 */ 350 351 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_OFFSET 0x00000010 352 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_LSB 0 353 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_MSB 20 354 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_MASK 0x001fffff 355 356 357 /* Description VHTB_RESERVED_COPY_D 358 359 Same as "vhtb_reserved" <legal 1,3> 360 */ 361 362 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_OFFSET 0x00000010 363 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_LSB 21 364 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_MSB 22 365 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_MASK 0x00600000 366 367 368 /* Description TAIL_COPY_D 369 370 Same as "tail" <legal 0> 371 */ 372 373 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_OFFSET 0x00000010 374 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_LSB 23 375 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_MSB 28 376 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_MASK 0x1f800000 377 378 379 /* Description RESERVED_4 380 381 Reserved: Set to 0 and ignored on receive <legal 0> 382 */ 383 384 #define VHT_SIG_B_SU160_INFO_RESERVED_4_OFFSET 0x00000010 385 #define VHT_SIG_B_SU160_INFO_RESERVED_4_LSB 29 386 #define VHT_SIG_B_SU160_INFO_RESERVED_4_MSB 30 387 #define VHT_SIG_B_SU160_INFO_RESERVED_4_MASK 0x60000000 388 389 390 /* Description RX_NDP_COPY_D 391 392 Not part of VHT-SIG-B. 393 Used to identify received NDP frame 394 <legal 0,1> 395 */ 396 397 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_OFFSET 0x00000010 398 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_LSB 31 399 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_MSB 31 400 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_MASK 0x80000000 401 402 403 /* Description LENGTH_COPY_E 404 405 Same as "length" <legal all> 406 */ 407 408 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_OFFSET 0x00000014 409 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_LSB 0 410 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_MSB 20 411 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_MASK 0x001fffff 412 413 414 /* Description VHTB_RESERVED_COPY_E 415 416 Same as "vhtb_reserved" <legal 1,3> 417 */ 418 419 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_OFFSET 0x00000014 420 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_LSB 21 421 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_MSB 22 422 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_MASK 0x00600000 423 424 425 /* Description TAIL_COPY_E 426 427 Same as "tail" <legal 0> 428 */ 429 430 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_OFFSET 0x00000014 431 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_LSB 23 432 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_MSB 28 433 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_MASK 0x1f800000 434 435 436 /* Description RESERVED_5 437 438 Reserved: Set to 0 and ignored on receive <legal 0> 439 */ 440 441 #define VHT_SIG_B_SU160_INFO_RESERVED_5_OFFSET 0x00000014 442 #define VHT_SIG_B_SU160_INFO_RESERVED_5_LSB 29 443 #define VHT_SIG_B_SU160_INFO_RESERVED_5_MSB 30 444 #define VHT_SIG_B_SU160_INFO_RESERVED_5_MASK 0x60000000 445 446 447 /* Description RX_NDP_COPY_E 448 449 Not part of VHT-SIG-B. 450 Used to identify received NDP frame 451 <legal 0,1> 452 */ 453 454 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_OFFSET 0x00000014 455 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_LSB 31 456 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_MSB 31 457 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_MASK 0x80000000 458 459 460 /* Description LENGTH_COPY_F 461 462 Same as "length" <legal all> 463 */ 464 465 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_OFFSET 0x00000018 466 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_LSB 0 467 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_MSB 20 468 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_MASK 0x001fffff 469 470 471 /* Description VHTB_RESERVED_COPY_F 472 473 Same as "vhtb_reserved" <legal 1,3> 474 */ 475 476 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_OFFSET 0x00000018 477 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_LSB 21 478 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_MSB 22 479 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_MASK 0x00600000 480 481 482 /* Description TAIL_COPY_F 483 484 Same as "tail" <legal 0> 485 */ 486 487 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_OFFSET 0x00000018 488 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_LSB 23 489 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_MSB 28 490 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_MASK 0x1f800000 491 492 493 /* Description RESERVED_6 494 495 Reserved: Set to 0 and ignored on receive <legal 0> 496 */ 497 498 #define VHT_SIG_B_SU160_INFO_RESERVED_6_OFFSET 0x00000018 499 #define VHT_SIG_B_SU160_INFO_RESERVED_6_LSB 29 500 #define VHT_SIG_B_SU160_INFO_RESERVED_6_MSB 30 501 #define VHT_SIG_B_SU160_INFO_RESERVED_6_MASK 0x60000000 502 503 504 /* Description RX_NDP_COPY_F 505 506 Not part of VHT-SIG-B. 507 Used to identify received NDP frame 508 <legal 0,1> 509 */ 510 511 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_OFFSET 0x00000018 512 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_LSB 31 513 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_MSB 31 514 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_MASK 0x80000000 515 516 517 /* Description LENGTH_COPY_G 518 519 Same as "length" <legal all> 520 */ 521 522 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_OFFSET 0x0000001c 523 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_LSB 0 524 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_MSB 20 525 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_MASK 0x001fffff 526 527 528 /* Description VHTB_RESERVED_COPY_G 529 530 Same as "vhtb_reserved" <legal 1,3> 531 */ 532 533 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_OFFSET 0x0000001c 534 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_LSB 21 535 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_MSB 22 536 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_MASK 0x00600000 537 538 539 /* Description TAIL_COPY_G 540 541 Same as "tail" <legal 0> 542 */ 543 544 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_OFFSET 0x0000001c 545 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_LSB 23 546 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_MSB 28 547 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_MASK 0x1f800000 548 549 550 /* Description RESERVED_7 551 552 Reserved: Set to 0 and ignored on receive <legal 0> 553 */ 554 555 #define VHT_SIG_B_SU160_INFO_RESERVED_7_OFFSET 0x0000001c 556 #define VHT_SIG_B_SU160_INFO_RESERVED_7_LSB 29 557 #define VHT_SIG_B_SU160_INFO_RESERVED_7_MSB 30 558 #define VHT_SIG_B_SU160_INFO_RESERVED_7_MASK 0x60000000 559 560 561 /* Description RX_NDP_COPY_G 562 563 Not part of VHT-SIG-B. 564 Used to identify received NDP frame 565 <legal 0,1> 566 */ 567 568 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_OFFSET 0x0000001c 569 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_LSB 31 570 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_MSB 31 571 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_MASK 0x80000000 572 573 574 575 #endif // VHT_SIG_B_SU160_INFO 576