1*5113495bSYour Name 2*5113495bSYour Name /* 3*5113495bSYour Name * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 4*5113495bSYour Name * 5*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 6*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 7*5113495bSYour Name * above copyright notice and this permission notice appear in all 8*5113495bSYour Name * copies. 9*5113495bSYour Name * 10*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 18*5113495bSYour Name */ 19*5113495bSYour Name 20*5113495bSYour Name 21*5113495bSYour Name 22*5113495bSYour Name #ifndef _TLV_HDR_H_ 23*5113495bSYour Name 24*5113495bSYour Name #define _TLV_HDR_H_ 25*5113495bSYour Name 26*5113495bSYour Name #if !defined(__ASSEMBLER__) 27*5113495bSYour Name 28*5113495bSYour Name #endif 29*5113495bSYour Name 30*5113495bSYour Name struct tlv_usr_16_hdr { 31*5113495bSYour Name 32*5113495bSYour Name volatile uint16_t tlv_cflg_reserved : 1, 33*5113495bSYour Name 34*5113495bSYour Name tlv_tag : 5, 35*5113495bSYour Name 36*5113495bSYour Name tlv_len : 4, 37*5113495bSYour Name 38*5113495bSYour Name tlv_usrid : 6; 39*5113495bSYour Name 40*5113495bSYour Name }; 41*5113495bSYour Name 42*5113495bSYour Name struct tlv_16_hdr { 43*5113495bSYour Name 44*5113495bSYour Name volatile uint16_t tlv_cflg_reserved : 1, 45*5113495bSYour Name 46*5113495bSYour Name tlv_tag : 5, 47*5113495bSYour Name 48*5113495bSYour Name tlv_len : 4, 49*5113495bSYour Name 50*5113495bSYour Name tlv_reserved : 6; 51*5113495bSYour Name 52*5113495bSYour Name }; 53*5113495bSYour Name 54*5113495bSYour Name struct tlv_usr_32_hdr { 55*5113495bSYour Name 56*5113495bSYour Name volatile uint32_t tlv_cflg_reserved : 1, 57*5113495bSYour Name 58*5113495bSYour Name tlv_tag : 9, 59*5113495bSYour Name 60*5113495bSYour Name tlv_len : 16, 61*5113495bSYour Name 62*5113495bSYour Name tlv_usrid : 6; 63*5113495bSYour Name 64*5113495bSYour Name }; 65*5113495bSYour Name 66*5113495bSYour Name struct tlv_32_hdr { 67*5113495bSYour Name 68*5113495bSYour Name volatile uint32_t tlv_cflg_reserved : 1, 69*5113495bSYour Name 70*5113495bSYour Name tlv_tag : 9, 71*5113495bSYour Name 72*5113495bSYour Name tlv_len : 16, 73*5113495bSYour Name 74*5113495bSYour Name tlv_reserved : 6; 75*5113495bSYour Name 76*5113495bSYour Name }; 77*5113495bSYour Name 78*5113495bSYour Name struct tlv_usr_42_hdr { 79*5113495bSYour Name 80*5113495bSYour Name volatile uint64_t tlv_compression : 1, 81*5113495bSYour Name 82*5113495bSYour Name tlv_tag : 9, 83*5113495bSYour Name 84*5113495bSYour Name tlv_len : 16, 85*5113495bSYour Name 86*5113495bSYour Name tlv_usrid : 6, 87*5113495bSYour Name 88*5113495bSYour Name tlv_reserved : 10, 89*5113495bSYour Name 90*5113495bSYour Name pad_42to64_bit : 22; 91*5113495bSYour Name 92*5113495bSYour Name }; 93*5113495bSYour Name 94*5113495bSYour Name struct tlv_42_hdr { 95*5113495bSYour Name 96*5113495bSYour Name volatile uint64_t tlv_compression : 1, 97*5113495bSYour Name 98*5113495bSYour Name tlv_tag : 9, 99*5113495bSYour Name 100*5113495bSYour Name tlv_len : 16, 101*5113495bSYour Name 102*5113495bSYour Name tlv_reserved : 16, 103*5113495bSYour Name 104*5113495bSYour Name pad_42to64_bit : 22; 105*5113495bSYour Name 106*5113495bSYour Name }; 107*5113495bSYour Name 108*5113495bSYour Name struct tlv_usr_c_42_hdr { 109*5113495bSYour Name 110*5113495bSYour Name volatile uint64_t tlv_compression : 1, 111*5113495bSYour Name 112*5113495bSYour Name tlv_ctag : 3, 113*5113495bSYour Name 114*5113495bSYour Name tlv_usrid : 6, 115*5113495bSYour Name 116*5113495bSYour Name tlv_cdata : 32, 117*5113495bSYour Name 118*5113495bSYour Name pad_42to64_bit : 22; 119*5113495bSYour Name 120*5113495bSYour Name }; 121*5113495bSYour Name 122*5113495bSYour Name #endif 123*5113495bSYour Name 124