15 #ifndef LLVM_SUPPORT_AMDHSAKERNELDESCRIPTOR_H 16 #define LLVM_SUPPORT_AMDHSAKERNELDESCRIPTOR_H 23 #define offsetof(TYPE, MEMBER) ((size_t)&((TYPE*)0)->MEMBER) 28 #ifndef AMDHSA_BITS_ENUM_ENTRY 29 #define AMDHSA_BITS_ENUM_ENTRY(NAME, SHIFT, WIDTH) \ 30 NAME ## _SHIFT = (SHIFT), \ 31 NAME ## _WIDTH = (WIDTH), \ 32 NAME = (((1 << (WIDTH)) - 1) << (SHIFT)) 33 #endif // AMDHSA_BITS_ENUM_ENTRY 36 #ifndef AMDHSA_BITS_GET 37 #define AMDHSA_BITS_GET(SRC, MSK) ((SRC & MSK) >> MSK ## _SHIFT) 38 #endif // AMDHSA_BITS_GET 41 #ifndef AMDHSA_BITS_SET 42 #define AMDHSA_BITS_SET(DST, MSK, VAL) \ 44 DST |= ((VAL << MSK ## _SHIFT) & MSK) 45 #endif // AMDHSA_BITS_SET 75 #define COMPUTE_PGM_RSRC1(NAME, SHIFT, WIDTH) \ 76 AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_ ## NAME, SHIFT, WIDTH) 97 #undef COMPUTE_PGM_RSRC1 100 #define COMPUTE_PGM_RSRC2(NAME, SHIFT, WIDTH) \ 101 AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC2_ ## NAME, SHIFT, WIDTH) 123 #undef COMPUTE_PGM_RSRC2 126 #define COMPUTE_PGM_RSRC3(NAME, SHIFT, WIDTH) \ 127 AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_ ## NAME, SHIFT, WIDTH) 132 #undef COMPUTE_PGM_RSRC3 135 #define KERNEL_CODE_PROPERTY(NAME, SHIFT, WIDTH) \ 136 AMDHSA_BITS_ENUM_ENTRY(KERNEL_CODE_PROPERTY_ ## NAME, SHIFT, WIDTH) 149 #undef KERNEL_CODE_PROPERTY 167 "invalid size for kernel_descriptor_t");
170 "invalid offset for group_segment_fixed_size");
173 "invalid offset for private_segment_fixed_size");
176 "invalid offset for reserved0");
179 "invalid offset for kernel_code_entry_byte_offset");
182 "invalid offset for reserved1");
185 "invalid offset for compute_pgm_rsrc3");
188 "invalid offset for compute_pgm_rsrc1");
191 "invalid offset for compute_pgm_rsrc2");
194 "invalid offset for kernel_code_properties");
197 "invalid offset for reserved2");
202 #endif // LLVM_SUPPORT_AMDHSAKERNELDESCRIPTOR_H
int64_t kernel_code_entry_byte_offset
This class represents lattice values for constants.
uint32_t compute_pgm_rsrc2
uint32_t private_segment_fixed_size
uint32_t group_segment_fixed_size
uint16_t kernel_code_properties
#define offsetof(TYPE, MEMBER)
uint32_t compute_pgm_rsrc3
uint32_t compute_pgm_rsrc1