diff --git a/gen/Project.toml b/gen/Project.toml index a16d8a6a9..d5a90b387 100644 --- a/gen/Project.toml +++ b/gen/Project.toml @@ -1,3 +1,6 @@ [deps] Clang = "40e3b903-d033-50b4-a0cc-940c62c95e31" JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899" + +[sources] +Clang = {path = "/home/simeon/.julia/dev/Clang"} diff --git a/gen/rocprof/generator.jl b/gen/rocprof/generator.jl new file mode 100644 index 000000000..4c3795a9b --- /dev/null +++ b/gen/rocprof/generator.jl @@ -0,0 +1,24 @@ +using Clang.Generators +using JuliaFormatter + +include_dir = normpath("/home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include") +rocprof_dir = joinpath(include_dir, "rocprofiler-sdk") +options = load_options("rocprof/rocprof-generator.toml") + +args = get_default_args() +push!(args, "-I$include_dir") +push!(args, "-D__HIP_PLATFORM_AMD__") + +headers = [ + joinpath(rocprof_dir, header) + # for header in readdir(rocprof_dir) + # if endswith(header, ".h") + for header in ("rocprofiler.h",) +] +#push!(headers, joinpath(include_dir, "hip/driver_types.h")) + +ctx = create_context(headers, args, options) +build!(ctx) + +path = options["general"]["output_file_path"] +format_file(path, YASStyle()) diff --git a/gen/rocprof/rocprof-generator.toml b/gen/rocprof/rocprof-generator.toml new file mode 100644 index 000000000..fe8dd93dd --- /dev/null +++ b/gen/rocprof/rocprof-generator.toml @@ -0,0 +1,37 @@ +[general] +library_name = "librocprofiler_sdk_tool" +output_file_path = "./librocprof.jl" +export_symbol_prefixes = [] +output_ignorelist = [ + "ROCPROFILER_PUBLIC_API", + "ROCPROFILER_HIDDEN_API", + "ROCPROFILER_EXPORT_DECORATOR", + "ROCPROFILER_EXPORT", + "ROCPROFILER_IMPORT", + "ROCPROFILER_API", + "ROCPROFILER_SDK_DEPRECATED_WARNINGS", + "ROCPROFILER_SDK_EXPERIMENTAL_WARNINGS", + "ROCPROFILER_SDK_EXPERIMENTAL_MESSAGE", + "ROCPROFILER_CONTEXT_NONE", + + "__HOST_DEVICE__", + + "hipCpuDeviceId", + "hipInvalidDeviceId", + + "HSA_API_EXPORT", + "HSA_API_IMPORT", + "HSA_API", + + "ROCTX_PUBLIC_API", + "ROCTX_HIDDEN_API", + "ROCTX_EXPORT_DECORATOR", + "ROCTX_EXPORT", + "ROCTX_IMPORT", + "ROCTX_API", + + "ompt_data_none", +] + +[codegen] +use_ccall_macro = true diff --git a/prof.jl b/prof.jl new file mode 100644 index 000000000..01a4045f6 --- /dev/null +++ b/prof.jl @@ -0,0 +1,155 @@ +# ENV["HSA_TOOLS_LIB"] = "/opt/rocm/lib/librocprofiler64v2.so" +# ENV["ROCPROFILER_METRICS_PATH"] = "/opt/rocm/libexec/rocprofiler/counters/derived_counters.xml" + +using AMDGPU +import AMDGPU: Profiler, @check + +@show Profiler.version() + +# Application tracing + +const ctx = Ref(Profiler.rocprofiler_context_id_t(0)) +const buff = Ref(Profiler.rocprofiler_buffer_id_t(0)); + +@check Profiler.rocprofiler_create_context(ctx) +#@check Profiler.rocprofiler_create_buffer(ctx[], 8192, 2048, Profiler.ROCPROFILER_BUFFER_POLICY_LOSSLESS, + +### Initialize tools +#@check Profiler.rocprofiler_initialize() +# +### create session with replay mode +#r_id = Ref{Profiler.rocprofiler_session_id_t}() +#@check Profiler.rocprofiler_create_session(Profiler.ROCPROFILER_NONE_REPLAY_MODE, r_id) +#id = r_id[] +# +### Create output buffer for the data +#function output_callback(record, end_record, session_id, buffer_id) +# @info "Output callback" record, end_record, session_id, buffer_id +# return nothing +#end +# +#r_buffer_id = Ref{Profiler.rocprofiler_buffer_id_t}() +#@check Profiler.rocprofiler_create_buffer( +# id, +# @cfunction(output_callback, Cvoid, ( +# Ptr{Profiler.rocprofiler_record_header_t}, +# Ptr{Profiler.rocprofiler_record_header_t}, +# Profiler.rocprofiler_session_id_t, +# Profiler.rocprofiler_buffer_id_t)), +# 0x9999, r_buffer_id +# ) +#buffer_id = r_buffer_id[] +# +## Specifying the APIs to be traced in a vector +#apis_requested = Vector{Profiler.rocprofiler_tracer_activity_domain_t}(undef, 0) +#push!(apis_requested, Profiler.ACTIVITY_DOMAIN_HIP_API) +#push!(apis_requested, Profiler.ACTIVITY_DOMAIN_HIP_OPS) +#push!(apis_requested, Profiler.ACTIVITY_DOMAIN_HSA_API) +#push!(apis_requested, Profiler.ACTIVITY_DOMAIN_HSA_OPS) +#push!(apis_requested, Profiler.ACTIVITY_DOMAIN_ROCTX) +# +#GC.@preserve apis_requested begin +# # Looking at the code we can release the pointer after rocprofiler_create_filter +# filter_data = Ref{Profiler.rocprofiler_filter_data_t}() +# GC.@preserve filter_data begin +# ptr = Base.unsafe_convert(Ptr{Profiler.rocprofiler_filter_data_t}, filter_data) +# Base.memset(ptr, UInt8(0), sizeof(Profiler.rocprofiler_filter_data_t)) +# +# ptr.trace_apis = pointer(apis_requested) +# end +# +# r_api_tracing_filter_id = Ref{Profiler.rocprofiler_filter_id_t}() +# filter_property = Ref{Profiler.rocprofiler_filter_property_t}() +# GC.@preserve filter_property begin +# ptr = Base.unsafe_convert(Ptr{Profiler.rocprofiler_filter_property_t}, filter_property) +# Base.memset(ptr, UInt8(0), sizeof(Profiler.rocprofiler_filter_property_t)) +# end +# +# # Creating filter for tracing APIs +# @check Profiler.rocprofiler_create_filter( +# id, Profiler.ROCPROFILER_API_TRACE, +# filter_data[], length(apis_requested), +# r_api_tracing_filter_id, filter_property[] +# ) +# api_tracing_filter_id = r_api_tracing_filter_id[] +#end +#api_tracing_filter_id +# +#function timestamp() +# r = Ref{Profiler.rocprofiler_timestamp_t}() +# Profiler.rocprofiler_get_timestamp(r) +# return r[].value +#end +# +#function trace_sync_callback(record::Profiler.rocprofiler_record_tracer_t, session_id) +# if record.domain == Profiler.ACTIVITY_DOMAIN_HSA_API || +# record.domain == Profiler.ACTIVITY_DOMAIN_HIP_API +# r_fn_name = Ref{Ptr{Cchar}}() +# +# @check Profiler.rocprofiler_query_tracer_operation_name( +# record.domain, record.operation_id, r_fn_name +# ) +# fn_name = Base.unsafe_string(r_fn_name[]) +# else +# fn_name = nothing +# end +# +# if record.phase == Profiler.ROCPROFILER_PHASE_ENTER +# ts_begin = timestamp() +# ts_end = nothing +# elseif record.phase == Profiler.ROCPROFILER_PHASE_EXIT +# ts_begin = nothing +# ts_end = timestamp() +# else +# ts_begin = record.timestamps._begin.value +# ts_end = record.timestamps._end.value +# end +# +# if record.name != C_NULL +# name = Base.unsafe_string(record.name) +# else +# name = nothing +# end +# +# @info "trace_sync" domain=record.domain phase=record.phase correlation=record.correlation_id.value ts_begin ts_end fn_name record.name +# return nothing +#end +# +#@check Profiler.rocprofiler_set_filter_buffer(id, api_tracing_filter_id, buffer_id) +#@check Profiler.rocprofiler_set_api_trace_sync_callback( +# id, api_tracing_filter_id, +# @cfunction(trace_sync_callback, Cvoid, ( +# Profiler.rocprofiler_record_tracer_t, +# Profiler.rocprofiler_session_id_t, +# )), +#) +# +## Kernel tracing +#filter_data = Ref{Profiler.rocprofiler_filter_data_t}() +#GC.@preserve filter_data begin +# ptr = Base.unsafe_convert(Ptr{Profiler.rocprofiler_filter_data_t}, filter_data) +# Base.memset(ptr, UInt8(0), sizeof(Profiler.rocprofiler_filter_data_t)) +#end +# +#r_kernel_tracing_filter_id = Ref{Profiler.rocprofiler_filter_id_t}() +#@check Profiler.rocprofiler_create_filter( +# id, Profiler.ROCPROFILER_DISPATCH_TIMESTAMPS_COLLECTION, +# filter_data[], 0, r_kernel_tracing_filter_id, filter_property[] +#) +#kernel_tracing_filter_id = r_kernel_tracing_filter_id[] +# +#function kernel() +# return nothing +#end +# +#@roc kernel() +# +#Profiler.rocprofiler_start_session(id) +# +#@roc kernel() +#AMDGPU.synchronize() +# +#Profiler.rocprofiler_terminate_session(id) +#Profiler.rocprofiler_flush_data(id, buffer_id) +#Profiler.rocprofiler_destroy_session(id) +#Profiler.rocprofiler_finalize() diff --git a/src/AMDGPU.jl b/src/AMDGPU.jl index e69075f78..180230c4b 100644 --- a/src/AMDGPU.jl +++ b/src/AMDGPU.jl @@ -145,6 +145,9 @@ include("ROCKernels.jl") import .ROCKernels: ROCBackend export ROCBackend +include("profiler/profiler.jl") + + function __init__() # Used to shutdown hostcalls if any is running. atexit(() -> begin Runtime.RT_EXITING[] = true end) diff --git a/src/discovery/discovery.jl b/src/discovery/discovery.jl index a9574940f..17f07734d 100644 --- a/src/discovery/discovery.jl +++ b/src/discovery/discovery.jl @@ -2,7 +2,7 @@ module ROCmDiscovery export lld_artifact, lld_path, libhsaruntime, libdevice_libs, libhip export librocblas, librocsparse, librocsolver -export librocrand, librocfft, libMIOpen_path +export librocrand, librocfft, libMIOpen_path, librocprofiler_sdk_tool using LLD_jll using ROCmDeviceLibs_jll @@ -56,6 +56,7 @@ global librocsolver::String = "" global librocrand::String = "" global librocfft::String = "" global libMIOpen_path::String = "" +global librocprofiler_sdk_tool::String = "" function __init__() @@ -97,6 +98,7 @@ function __init__() global librocrand = find_rocm_library(lib_prefix * "rocrand"; rocm_path) global librocfft = find_rocm_library(lib_prefix * "rocfft"; rocm_path) global libMIOpen_path = find_rocm_library(lib_prefix * "MIOpen"; rocm_path) + global librocprofiler_sdk_tool = "/home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/lib/rocprofiler-sdk/librocprofiler-sdk-tool.so" catch err @error """ROCm discovery failed! Discovered ROCm path: $rocm_path. diff --git a/src/dnn/MIOpen.jl b/src/dnn/MIOpen.jl index b593ff0e8..145e93a01 100644 --- a/src/dnn/MIOpen.jl +++ b/src/dnn/MIOpen.jl @@ -49,7 +49,7 @@ function Base.showerror(io::IO, exception::MIOpenException) """) end -function check(status) +function check(status::miopenStatus_t) if status != miopenStatusSuccess throw(MIOpenException(status)) end diff --git a/src/profiler/librocprof.jl b/src/profiler/librocprof.jl new file mode 100644 index 000000000..a457562bd --- /dev/null +++ b/src/profiler/librocprof.jl @@ -0,0 +1,45077 @@ +using CEnum: CEnum, @cenum + +const HSAuint32 = UInt32 + +const HSAuint16 = UInt16 + +const HSAuint8 = UInt8 + +struct _HSA_UUID + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{_HSA_UUID}, f::Symbol) + f === :Data1 && return Ptr{HSAuint32}(x + 0) + f === :Data2 && return Ptr{HSAuint16}(x + 4) + f === :Data3 && return Ptr{HSAuint16}(x + 6) + f === :Data4 && return Ptr{NTuple{8,HSAuint8}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::_HSA_UUID, f::Symbol) + r = Ref{_HSA_UUID}(x) + ptr = Base.unsafe_convert(Ptr{_HSA_UUID}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HSA_UUID}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HSA_UUID, private::Bool=false) + return (:Data1, :Data2, :Data3, :Data4, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HSA_UUID = _HSA_UUID + +struct hipUUID_t + bytes::NTuple{16,Cchar} +end + +const hipUUID = hipUUID_t + +struct hipDeviceArch_t + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{hipDeviceArch_t}, f::Symbol) + f === :hasGlobalInt32Atomics && return (Ptr{Cuint}(x + 0), 0, 1) + f === :hasGlobalFloatAtomicExch && return (Ptr{Cuint}(x + 0), 1, 1) + f === :hasSharedInt32Atomics && return (Ptr{Cuint}(x + 0), 2, 1) + f === :hasSharedFloatAtomicExch && return (Ptr{Cuint}(x + 0), 3, 1) + f === :hasFloatAtomicAdd && return (Ptr{Cuint}(x + 0), 4, 1) + f === :hasGlobalInt64Atomics && return (Ptr{Cuint}(x + 0), 5, 1) + f === :hasSharedInt64Atomics && return (Ptr{Cuint}(x + 0), 6, 1) + f === :hasDoubles && return (Ptr{Cuint}(x + 0), 7, 1) + f === :hasWarpVote && return (Ptr{Cuint}(x + 0), 8, 1) + f === :hasWarpBallot && return (Ptr{Cuint}(x + 0), 9, 1) + f === :hasWarpShuffle && return (Ptr{Cuint}(x + 0), 10, 1) + f === :hasFunnelShift && return (Ptr{Cuint}(x + 0), 11, 1) + f === :hasThreadFenceSystem && return (Ptr{Cuint}(x + 0), 12, 1) + f === :hasSyncThreadsExt && return (Ptr{Cuint}(x + 0), 13, 1) + f === :hasSurfaceFuncs && return (Ptr{Cuint}(x + 0), 14, 1) + f === :has3dGrid && return (Ptr{Cuint}(x + 0), 15, 1) + f === :hasDynamicParallelism && return (Ptr{Cuint}(x + 0), 16, 1) + return getfield(x, f) +end + +function Base.getproperty(x::hipDeviceArch_t, f::Symbol) + r = Ref{hipDeviceArch_t}(x) + ptr = Base.unsafe_convert(Ptr{hipDeviceArch_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{hipDeviceArch_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::hipDeviceArch_t, private::Bool=false) + return (:hasGlobalInt32Atomics, :hasGlobalFloatAtomicExch, :hasSharedInt32Atomics, + :hasSharedFloatAtomicExch, :hasFloatAtomicAdd, :hasGlobalInt64Atomics, + :hasSharedInt64Atomics, :hasDoubles, :hasWarpVote, :hasWarpBallot, + :hasWarpShuffle, :hasFunnelShift, :hasThreadFenceSystem, :hasSyncThreadsExt, + :hasSurfaceFuncs, :has3dGrid, :hasDynamicParallelism, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipDeviceProp_tR0600 + data::NTuple{1472,UInt8} +end + +function Base.getproperty(x::Ptr{hipDeviceProp_tR0600}, f::Symbol) + f === :name && return Ptr{NTuple{256,Cchar}}(x + 0) + f === :uuid && return Ptr{hipUUID}(x + 256) + f === :luid && return Ptr{NTuple{8,Cchar}}(x + 272) + f === :luidDeviceNodeMask && return Ptr{Cuint}(x + 280) + f === :totalGlobalMem && return Ptr{Csize_t}(x + 288) + f === :sharedMemPerBlock && return Ptr{Csize_t}(x + 296) + f === :regsPerBlock && return Ptr{Cint}(x + 304) + f === :warpSize && return Ptr{Cint}(x + 308) + f === :memPitch && return Ptr{Csize_t}(x + 312) + f === :maxThreadsPerBlock && return Ptr{Cint}(x + 320) + f === :maxThreadsDim && return Ptr{NTuple{3,Cint}}(x + 324) + f === :maxGridSize && return Ptr{NTuple{3,Cint}}(x + 336) + f === :clockRate && return Ptr{Cint}(x + 348) + f === :totalConstMem && return Ptr{Csize_t}(x + 352) + f === :major && return Ptr{Cint}(x + 360) + f === :minor && return Ptr{Cint}(x + 364) + f === :textureAlignment && return Ptr{Csize_t}(x + 368) + f === :texturePitchAlignment && return Ptr{Csize_t}(x + 376) + f === :deviceOverlap && return Ptr{Cint}(x + 384) + f === :multiProcessorCount && return Ptr{Cint}(x + 388) + f === :kernelExecTimeoutEnabled && return Ptr{Cint}(x + 392) + f === :integrated && return Ptr{Cint}(x + 396) + f === :canMapHostMemory && return Ptr{Cint}(x + 400) + f === :computeMode && return Ptr{Cint}(x + 404) + f === :maxTexture1D && return Ptr{Cint}(x + 408) + f === :maxTexture1DMipmap && return Ptr{Cint}(x + 412) + f === :maxTexture1DLinear && return Ptr{Cint}(x + 416) + f === :maxTexture2D && return Ptr{NTuple{2,Cint}}(x + 420) + f === :maxTexture2DMipmap && return Ptr{NTuple{2,Cint}}(x + 428) + f === :maxTexture2DLinear && return Ptr{NTuple{3,Cint}}(x + 436) + f === :maxTexture2DGather && return Ptr{NTuple{2,Cint}}(x + 448) + f === :maxTexture3D && return Ptr{NTuple{3,Cint}}(x + 456) + f === :maxTexture3DAlt && return Ptr{NTuple{3,Cint}}(x + 468) + f === :maxTextureCubemap && return Ptr{Cint}(x + 480) + f === :maxTexture1DLayered && return Ptr{NTuple{2,Cint}}(x + 484) + f === :maxTexture2DLayered && return Ptr{NTuple{3,Cint}}(x + 492) + f === :maxTextureCubemapLayered && return Ptr{NTuple{2,Cint}}(x + 504) + f === :maxSurface1D && return Ptr{Cint}(x + 512) + f === :maxSurface2D && return Ptr{NTuple{2,Cint}}(x + 516) + f === :maxSurface3D && return Ptr{NTuple{3,Cint}}(x + 524) + f === :maxSurface1DLayered && return Ptr{NTuple{2,Cint}}(x + 536) + f === :maxSurface2DLayered && return Ptr{NTuple{3,Cint}}(x + 544) + f === :maxSurfaceCubemap && return Ptr{Cint}(x + 556) + f === :maxSurfaceCubemapLayered && return Ptr{NTuple{2,Cint}}(x + 560) + f === :surfaceAlignment && return Ptr{Csize_t}(x + 568) + f === :concurrentKernels && return Ptr{Cint}(x + 576) + f === :ECCEnabled && return Ptr{Cint}(x + 580) + f === :pciBusID && return Ptr{Cint}(x + 584) + f === :pciDeviceID && return Ptr{Cint}(x + 588) + f === :pciDomainID && return Ptr{Cint}(x + 592) + f === :tccDriver && return Ptr{Cint}(x + 596) + f === :asyncEngineCount && return Ptr{Cint}(x + 600) + f === :unifiedAddressing && return Ptr{Cint}(x + 604) + f === :memoryClockRate && return Ptr{Cint}(x + 608) + f === :memoryBusWidth && return Ptr{Cint}(x + 612) + f === :l2CacheSize && return Ptr{Cint}(x + 616) + f === :persistingL2CacheMaxSize && return Ptr{Cint}(x + 620) + f === :maxThreadsPerMultiProcessor && return Ptr{Cint}(x + 624) + f === :streamPrioritiesSupported && return Ptr{Cint}(x + 628) + f === :globalL1CacheSupported && return Ptr{Cint}(x + 632) + f === :localL1CacheSupported && return Ptr{Cint}(x + 636) + f === :sharedMemPerMultiprocessor && return Ptr{Csize_t}(x + 640) + f === :regsPerMultiprocessor && return Ptr{Cint}(x + 648) + f === :managedMemory && return Ptr{Cint}(x + 652) + f === :isMultiGpuBoard && return Ptr{Cint}(x + 656) + f === :multiGpuBoardGroupID && return Ptr{Cint}(x + 660) + f === :hostNativeAtomicSupported && return Ptr{Cint}(x + 664) + f === :singleToDoublePrecisionPerfRatio && return Ptr{Cint}(x + 668) + f === :pageableMemoryAccess && return Ptr{Cint}(x + 672) + f === :concurrentManagedAccess && return Ptr{Cint}(x + 676) + f === :computePreemptionSupported && return Ptr{Cint}(x + 680) + f === :canUseHostPointerForRegisteredMem && return Ptr{Cint}(x + 684) + f === :cooperativeLaunch && return Ptr{Cint}(x + 688) + f === :cooperativeMultiDeviceLaunch && return Ptr{Cint}(x + 692) + f === :sharedMemPerBlockOptin && return Ptr{Csize_t}(x + 696) + f === :pageableMemoryAccessUsesHostPageTables && return Ptr{Cint}(x + 704) + f === :directManagedMemAccessFromHost && return Ptr{Cint}(x + 708) + f === :maxBlocksPerMultiProcessor && return Ptr{Cint}(x + 712) + f === :accessPolicyMaxWindowSize && return Ptr{Cint}(x + 716) + f === :reservedSharedMemPerBlock && return Ptr{Csize_t}(x + 720) + f === :hostRegisterSupported && return Ptr{Cint}(x + 728) + f === :sparseHipArraySupported && return Ptr{Cint}(x + 732) + f === :hostRegisterReadOnlySupported && return Ptr{Cint}(x + 736) + f === :timelineSemaphoreInteropSupported && return Ptr{Cint}(x + 740) + f === :memoryPoolsSupported && return Ptr{Cint}(x + 744) + f === :gpuDirectRDMASupported && return Ptr{Cint}(x + 748) + f === :gpuDirectRDMAFlushWritesOptions && return Ptr{Cuint}(x + 752) + f === :gpuDirectRDMAWritesOrdering && return Ptr{Cint}(x + 756) + f === :memoryPoolSupportedHandleTypes && return Ptr{Cuint}(x + 760) + f === :deferredMappingHipArraySupported && return Ptr{Cint}(x + 764) + f === :ipcEventSupported && return Ptr{Cint}(x + 768) + f === :clusterLaunch && return Ptr{Cint}(x + 772) + f === :unifiedFunctionPointers && return Ptr{Cint}(x + 776) + f === :reserved && return Ptr{NTuple{63,Cint}}(x + 780) + f === :hipReserved && return Ptr{NTuple{32,Cint}}(x + 1032) + f === :gcnArchName && return Ptr{NTuple{256,Cchar}}(x + 1160) + f === :maxSharedMemoryPerMultiProcessor && return Ptr{Csize_t}(x + 1416) + f === :clockInstructionRate && return Ptr{Cint}(x + 1424) + f === :arch && return Ptr{hipDeviceArch_t}(x + 1428) + f === :hdpMemFlushCntl && return Ptr{Ptr{Cuint}}(x + 1432) + f === :hdpRegFlushCntl && return Ptr{Ptr{Cuint}}(x + 1440) + f === :cooperativeMultiDeviceUnmatchedFunc && return Ptr{Cint}(x + 1448) + f === :cooperativeMultiDeviceUnmatchedGridDim && return Ptr{Cint}(x + 1452) + f === :cooperativeMultiDeviceUnmatchedBlockDim && return Ptr{Cint}(x + 1456) + f === :cooperativeMultiDeviceUnmatchedSharedMem && return Ptr{Cint}(x + 1460) + f === :isLargeBar && return Ptr{Cint}(x + 1464) + f === :asicRevision && return Ptr{Cint}(x + 1468) + return getfield(x, f) +end + +function Base.getproperty(x::hipDeviceProp_tR0600, f::Symbol) + r = Ref{hipDeviceProp_tR0600}(x) + ptr = Base.unsafe_convert(Ptr{hipDeviceProp_tR0600}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipDeviceProp_tR0600}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipDeviceProp_tR0600, private::Bool=false) + return (:name, :uuid, :luid, :luidDeviceNodeMask, :totalGlobalMem, :sharedMemPerBlock, + :regsPerBlock, :warpSize, :memPitch, :maxThreadsPerBlock, :maxThreadsDim, + :maxGridSize, :clockRate, :totalConstMem, :major, :minor, :textureAlignment, + :texturePitchAlignment, :deviceOverlap, :multiProcessorCount, + :kernelExecTimeoutEnabled, :integrated, :canMapHostMemory, :computeMode, + :maxTexture1D, :maxTexture1DMipmap, :maxTexture1DLinear, :maxTexture2D, + :maxTexture2DMipmap, :maxTexture2DLinear, :maxTexture2DGather, :maxTexture3D, + :maxTexture3DAlt, :maxTextureCubemap, :maxTexture1DLayered, + :maxTexture2DLayered, :maxTextureCubemapLayered, :maxSurface1D, :maxSurface2D, + :maxSurface3D, :maxSurface1DLayered, :maxSurface2DLayered, :maxSurfaceCubemap, + :maxSurfaceCubemapLayered, :surfaceAlignment, :concurrentKernels, :ECCEnabled, + :pciBusID, :pciDeviceID, :pciDomainID, :tccDriver, :asyncEngineCount, + :unifiedAddressing, :memoryClockRate, :memoryBusWidth, :l2CacheSize, + :persistingL2CacheMaxSize, :maxThreadsPerMultiProcessor, + :streamPrioritiesSupported, :globalL1CacheSupported, :localL1CacheSupported, + :sharedMemPerMultiprocessor, :regsPerMultiprocessor, :managedMemory, + :isMultiGpuBoard, :multiGpuBoardGroupID, :hostNativeAtomicSupported, + :singleToDoublePrecisionPerfRatio, :pageableMemoryAccess, + :concurrentManagedAccess, :computePreemptionSupported, + :canUseHostPointerForRegisteredMem, :cooperativeLaunch, + :cooperativeMultiDeviceLaunch, :sharedMemPerBlockOptin, + :pageableMemoryAccessUsesHostPageTables, :directManagedMemAccessFromHost, + :maxBlocksPerMultiProcessor, :accessPolicyMaxWindowSize, + :reservedSharedMemPerBlock, :hostRegisterSupported, :sparseHipArraySupported, + :hostRegisterReadOnlySupported, :timelineSemaphoreInteropSupported, + :memoryPoolsSupported, :gpuDirectRDMASupported, + :gpuDirectRDMAFlushWritesOptions, :gpuDirectRDMAWritesOrdering, + :memoryPoolSupportedHandleTypes, :deferredMappingHipArraySupported, + :ipcEventSupported, :clusterLaunch, :unifiedFunctionPointers, :reserved, + :hipReserved, :gcnArchName, :maxSharedMemoryPerMultiProcessor, + :clockInstructionRate, :arch, :hdpMemFlushCntl, :hdpRegFlushCntl, + :cooperativeMultiDeviceUnmatchedFunc, :cooperativeMultiDeviceUnmatchedGridDim, + :cooperativeMultiDeviceUnmatchedBlockDim, + :cooperativeMultiDeviceUnmatchedSharedMem, :isLargeBar, :asicRevision, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hipError_t::UInt32 begin + hipSuccess = 0 + hipErrorInvalidValue = 1 + hipErrorOutOfMemory = 2 + hipErrorMemoryAllocation = 2 + hipErrorNotInitialized = 3 + hipErrorInitializationError = 3 + hipErrorDeinitialized = 4 + hipErrorProfilerDisabled = 5 + hipErrorProfilerNotInitialized = 6 + hipErrorProfilerAlreadyStarted = 7 + hipErrorProfilerAlreadyStopped = 8 + hipErrorInvalidConfiguration = 9 + hipErrorInvalidPitchValue = 12 + hipErrorInvalidSymbol = 13 + hipErrorInvalidDevicePointer = 17 + hipErrorInvalidMemcpyDirection = 21 + hipErrorInsufficientDriver = 35 + hipErrorMissingConfiguration = 52 + hipErrorPriorLaunchFailure = 53 + hipErrorInvalidDeviceFunction = 98 + hipErrorNoDevice = 100 + hipErrorInvalidDevice = 101 + hipErrorInvalidImage = 200 + hipErrorInvalidContext = 201 + hipErrorContextAlreadyCurrent = 202 + hipErrorMapFailed = 205 + hipErrorMapBufferObjectFailed = 205 + hipErrorUnmapFailed = 206 + hipErrorArrayIsMapped = 207 + hipErrorAlreadyMapped = 208 + hipErrorNoBinaryForGpu = 209 + hipErrorAlreadyAcquired = 210 + hipErrorNotMapped = 211 + hipErrorNotMappedAsArray = 212 + hipErrorNotMappedAsPointer = 213 + hipErrorECCNotCorrectable = 214 + hipErrorUnsupportedLimit = 215 + hipErrorContextAlreadyInUse = 216 + hipErrorPeerAccessUnsupported = 217 + hipErrorInvalidKernelFile = 218 + hipErrorInvalidGraphicsContext = 219 + hipErrorInvalidSource = 300 + hipErrorFileNotFound = 301 + hipErrorSharedObjectSymbolNotFound = 302 + hipErrorSharedObjectInitFailed = 303 + hipErrorOperatingSystem = 304 + hipErrorInvalidHandle = 400 + hipErrorInvalidResourceHandle = 400 + hipErrorIllegalState = 401 + hipErrorNotFound = 500 + hipErrorNotReady = 600 + hipErrorIllegalAddress = 700 + hipErrorLaunchOutOfResources = 701 + hipErrorLaunchTimeOut = 702 + hipErrorPeerAccessAlreadyEnabled = 704 + hipErrorPeerAccessNotEnabled = 705 + hipErrorSetOnActiveProcess = 708 + hipErrorContextIsDestroyed = 709 + hipErrorAssert = 710 + hipErrorHostMemoryAlreadyRegistered = 712 + hipErrorHostMemoryNotRegistered = 713 + hipErrorLaunchFailure = 719 + hipErrorCooperativeLaunchTooLarge = 720 + hipErrorNotSupported = 801 + hipErrorStreamCaptureUnsupported = 900 + hipErrorStreamCaptureInvalidated = 901 + hipErrorStreamCaptureMerge = 902 + hipErrorStreamCaptureUnmatched = 903 + hipErrorStreamCaptureUnjoined = 904 + hipErrorStreamCaptureIsolation = 905 + hipErrorStreamCaptureImplicit = 906 + hipErrorCapturedEvent = 907 + hipErrorStreamCaptureWrongThread = 908 + hipErrorGraphExecUpdateFailure = 910 + hipErrorInvalidChannelDescriptor = 911 + hipErrorInvalidTexture = 912 + hipErrorUnknown = 999 + hipErrorRuntimeMemory = 1052 + hipErrorRuntimeOther = 1053 + hipErrorTbd = 1054 +end + +function hipGetDevicePropertiesR0600(prop, deviceId) + @ccall librocprofiler_sdk_tool.hipGetDevicePropertiesR0600(prop::Ptr{hipDeviceProp_tR0600}, + deviceId::Cint)::hipError_t +end + +function hipChooseDeviceR0600(device, prop) + @ccall librocprofiler_sdk_tool.hipChooseDeviceR0600(device::Ptr{Cint}, + prop::Ptr{hipDeviceProp_tR0600})::hipError_t +end + +mutable struct ihipStream_t end + +const hipStream_t = Ptr{ihipStream_t} + +@cenum hipLaunchAttributeID::UInt32 begin + hipLaunchAttributeAccessPolicyWindow = 1 + hipLaunchAttributeCooperative = 2 + hipLaunchAttributePriority = 8 + hipLaunchAttributeMax = 9 +end + +struct hipLaunchAttributeValue + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{hipLaunchAttributeValue}, f::Symbol) + f === :pad && return Ptr{NTuple{64,Cchar}}(x + 0) + f === :accessPolicyWindow && return Ptr{hipAccessPolicyWindow}(x + 0) + f === :cooperative && return Ptr{Cint}(x + 0) + f === :priority && return Ptr{Cint}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipLaunchAttributeValue, f::Symbol) + r = Ref{hipLaunchAttributeValue}(x) + ptr = Base.unsafe_convert(Ptr{hipLaunchAttributeValue}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipLaunchAttributeValue}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipLaunchAttributeValue, private::Bool=false) + return (:pad, :accessPolicyWindow, :cooperative, :priority, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipLaunchAttribute_st + data::NTuple{72,UInt8} +end + +function Base.getproperty(x::Ptr{hipLaunchAttribute_st}, f::Symbol) + f === :id && return Ptr{hipLaunchAttributeID}(x + 0) + f === :pad && return Ptr{NTuple{4,Cchar}}(x + 4) + f === + Symbol("union hipLaunchAttribute_st::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:1822:3)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipLaunchAttribute_st, f::Symbol) + r = Ref{hipLaunchAttribute_st}(x) + ptr = Base.unsafe_convert(Ptr{hipLaunchAttribute_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipLaunchAttribute_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipLaunchAttribute_st, private::Bool=false) + return (:id, :pad, + Symbol("union hipLaunchAttribute_st::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:1822:3)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipLaunchAttribute = hipLaunchAttribute_st + +# typedef void ( * ompt_callback_thread_begin_t ) ( ompt_thread_t thread_type , ompt_data_t * thread_data ) +const ompt_callback_thread_begin_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_thread_end_t ) ( ompt_data_t * thread_data ) +const ompt_callback_thread_end_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_parallel_begin_t ) ( ompt_data_t * encountering_task_data , const ompt_frame_t * encountering_task_frame , ompt_data_t * parallel_data , unsigned int requested_parallelism , int flags , const void * codeptr_ra ) +const ompt_callback_parallel_begin_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_parallel_end_t ) ( ompt_data_t * parallel_data , ompt_data_t * encountering_task_data , int flags , const void * codeptr_ra ) +const ompt_callback_parallel_end_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_task_create_t ) ( ompt_data_t * encountering_task_data , const ompt_frame_t * encountering_task_frame , ompt_data_t * new_task_data , int flags , int has_dependences , const void * codeptr_ra ) +const ompt_callback_task_create_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_task_schedule_t ) ( ompt_data_t * prior_task_data , ompt_task_status_t prior_task_status , ompt_data_t * next_task_data ) +const ompt_callback_task_schedule_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_implicit_task_t ) ( ompt_scope_endpoint_t endpoint , ompt_data_t * parallel_data , ompt_data_t * task_data , unsigned int actual_parallelism , unsigned int index , int flags ) +const ompt_callback_implicit_task_t = Ptr{Cvoid} + +# typedef int ( * ompt_callback_control_tool_t ) ( uint64_t command , uint64_t modifier , void * arg , const void * codeptr_ra ) +const ompt_callback_control_tool_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_sync_region_t ) ( ompt_sync_region_t kind , ompt_scope_endpoint_t endpoint , ompt_data_t * parallel_data , ompt_data_t * task_data , const void * codeptr_ra ) +const ompt_callback_sync_region_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_mutex_t ) ( ompt_mutex_t kind , ompt_wait_id_t wait_id , const void * codeptr_ra ) +const ompt_callback_mutex_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_dependences_t ) ( ompt_data_t * task_data , const ompt_dependence_t * deps , int ndeps ) +const ompt_callback_dependences_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_task_dependence_t ) ( ompt_data_t * src_task_data , ompt_data_t * sink_task_data ) +const ompt_callback_task_dependence_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_work_t ) ( ompt_work_t work_type , ompt_scope_endpoint_t endpoint , ompt_data_t * parallel_data , ompt_data_t * task_data , uint64_t count , const void * codeptr_ra ) +const ompt_callback_work_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_masked_t ) ( ompt_scope_endpoint_t endpoint , ompt_data_t * parallel_data , ompt_data_t * task_data , const void * codeptr_ra ) +const ompt_callback_masked_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_mutex_acquire_t ) ( ompt_mutex_t kind , unsigned int hint , unsigned int impl , ompt_wait_id_t wait_id , const void * codeptr_ra ) +const ompt_callback_mutex_acquire_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_nest_lock_t ) ( ompt_scope_endpoint_t endpoint , ompt_wait_id_t wait_id , const void * codeptr_ra ) +const ompt_callback_nest_lock_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_flush_t ) ( ompt_data_t * thread_data , const void * codeptr_ra ) +const ompt_callback_flush_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_cancel_t ) ( ompt_data_t * task_data , int flags , const void * codeptr_ra ) +const ompt_callback_cancel_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_dispatch_t ) ( ompt_data_t * parallel_data , ompt_data_t * task_data , ompt_dispatch_t kind , ompt_data_t instance ) +const ompt_callback_dispatch_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_error_t ) ( ompt_severity_t severity , const char * message , size_t length , const void * codeptr_ra ) +const ompt_callback_error_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_device_initialize_t ) ( int device_num , const char * type , ompt_device_t * device , ompt_function_lookup_t lookup , const char * documentation ) +const ompt_callback_device_initialize_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_device_finalize_t ) ( int device_num ) +const ompt_callback_device_finalize_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_device_load_t ) ( int device_num , const char * filename , int64_t offset_in_file , void * vma_in_file , size_t bytes , void * host_addr , void * device_addr , uint64_t module_id ) +const ompt_callback_device_load_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_device_unload_t ) ( int device_num , uint64_t module_id ) +const ompt_callback_device_unload_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_target_t ) ( ompt_target_t kind , ompt_scope_endpoint_t endpoint , int device_num , ompt_data_t * task_data , ompt_id_t target_id , const void * codeptr_ra ) +const ompt_callback_target_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_target_data_op_t ) ( ompt_id_t target_id , ompt_id_t host_op_id , ompt_target_data_op_t optype , void * src_addr , int src_device_num , void * dest_addr , int dest_device_num , size_t bytes , const void * codeptr_ra ) +const ompt_callback_target_data_op_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_target_submit_t ) ( ompt_id_t target_id , ompt_id_t host_op_id , unsigned int requested_num_teams ) +const ompt_callback_target_submit_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_target_map_t ) ( ompt_id_t target_id , unsigned int nitems , void * * host_addr , void * * device_addr , size_t * bytes , unsigned int * mapping_flags , const void * codeptr_ra ) +const ompt_callback_target_map_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_target_emi_t ) ( ompt_target_t kind , ompt_scope_endpoint_t endpoint , int device_num , ompt_data_t * task_data , ompt_data_t * target_task_data , ompt_data_t * target_data , const void * codeptr_ra ) +const ompt_callback_target_emi_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_target_data_op_emi_t ) ( ompt_scope_endpoint_t endpoint , ompt_data_t * target_task_data , ompt_data_t * target_data , ompt_id_t * host_op_id , ompt_target_data_op_t optype , void * src_addr , int src_device_num , void * dest_addr , int dest_device_num , size_t bytes , const void * codeptr_ra ) +const ompt_callback_target_data_op_emi_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_target_submit_emi_t ) ( ompt_scope_endpoint_t endpoint , ompt_data_t * target_data , ompt_id_t * host_op_id , unsigned int requested_num_teams ) +const ompt_callback_target_submit_emi_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_target_map_emi_t ) ( ompt_data_t * target_data , unsigned int nitems , void * * host_addr , void * * device_addr , size_t * bytes , unsigned int * mapping_flags , const void * codeptr_ra ) +const ompt_callback_target_map_emi_t = Ptr{Cvoid} + +struct ncclConfig_v21700 + size::Csize_t + magic::Cuint + version::Cuint + blocking::Cint + cgaClusterSize::Cint + minCTAs::Cint + maxCTAs::Cint + netName::Ptr{Cchar} + splitShare::Cint +end + +const ncclConfig_t = ncclConfig_v21700 + +struct rocprofiler_context_id_t + handle::UInt64 +end + +@cenum rocprofiler_status_t::UInt32 begin + ROCPROFILER_STATUS_SUCCESS = 0 + ROCPROFILER_STATUS_ERROR = 1 + ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND = 2 + ROCPROFILER_STATUS_ERROR_BUFFER_NOT_FOUND = 3 + ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND = 4 + ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND = 5 + ROCPROFILER_STATUS_ERROR_THREAD_NOT_FOUND = 6 + ROCPROFILER_STATUS_ERROR_AGENT_NOT_FOUND = 7 + ROCPROFILER_STATUS_ERROR_COUNTER_NOT_FOUND = 8 + ROCPROFILER_STATUS_ERROR_CONTEXT_ERROR = 9 + ROCPROFILER_STATUS_ERROR_CONTEXT_INVALID = 10 + ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_STARTED = 11 + ROCPROFILER_STATUS_ERROR_CONTEXT_CONFLICT = 12 + ROCPROFILER_STATUS_ERROR_CONTEXT_ID_NOT_ZERO = 13 + ROCPROFILER_STATUS_ERROR_BUFFER_BUSY = 14 + ROCPROFILER_STATUS_ERROR_SERVICE_ALREADY_CONFIGURED = 15 + ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED = 16 + ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED = 17 + ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_ABI = 18 + ROCPROFILER_STATUS_ERROR_INVALID_ARGUMENT = 19 + ROCPROFILER_STATUS_ERROR_METRIC_NOT_VALID_FOR_AGENT = 20 + ROCPROFILER_STATUS_ERROR_FINALIZED = 21 + ROCPROFILER_STATUS_ERROR_HSA_NOT_LOADED = 22 + ROCPROFILER_STATUS_ERROR_DIM_NOT_FOUND = 23 + ROCPROFILER_STATUS_ERROR_PROFILE_COUNTER_NOT_FOUND = 24 + ROCPROFILER_STATUS_ERROR_AST_GENERATION_FAILED = 25 + ROCPROFILER_STATUS_ERROR_AST_NOT_FOUND = 26 + ROCPROFILER_STATUS_ERROR_AQL_NO_EVENT_COORD = 27 + ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_KERNEL = 28 + ROCPROFILER_STATUS_ERROR_OUT_OF_RESOURCES = 29 + ROCPROFILER_STATUS_ERROR_PROFILE_NOT_FOUND = 30 + ROCPROFILER_STATUS_ERROR_AGENT_DISPATCH_CONFLICT = 31 + ROCPROFILER_STATUS_INTERNAL_NO_AGENT_CONTEXT = 32 + ROCPROFILER_STATUS_ERROR_SAMPLE_RATE_EXCEEDED = 33 + ROCPROFILER_STATUS_ERROR_NO_PROFILE_QUEUE = 34 + ROCPROFILER_STATUS_ERROR_NO_HARDWARE_COUNTERS = 35 + ROCPROFILER_STATUS_ERROR_AGENT_MISMATCH = 36 + ROCPROFILER_STATUS_ERROR_NOT_AVAILABLE = 37 + ROCPROFILER_STATUS_ERROR_EXCEEDS_HW_LIMIT = 38 + ROCPROFILER_STATUS_ERROR_AGENT_ARCH_NOT_SUPPORTED = 39 + ROCPROFILER_STATUS_ERROR_PERMISSION_DENIED = 40 + ROCPROFILER_STATUS_LAST = 41 +end + +@cenum rocprofiler_buffer_category_t::UInt32 begin + ROCPROFILER_BUFFER_CATEGORY_NONE = 0 + ROCPROFILER_BUFFER_CATEGORY_TRACING = 1 + ROCPROFILER_BUFFER_CATEGORY_PC_SAMPLING = 2 + ROCPROFILER_BUFFER_CATEGORY_COUNTERS = 3 + ROCPROFILER_BUFFER_CATEGORY_LAST = 4 +end + +@cenum rocprofiler_agent_type_t::UInt32 begin + ROCPROFILER_AGENT_TYPE_NONE = 0 + ROCPROFILER_AGENT_TYPE_CPU = 1 + ROCPROFILER_AGENT_TYPE_GPU = 2 + ROCPROFILER_AGENT_TYPE_LAST = 3 +end + +@cenum rocprofiler_callback_phase_t::UInt32 begin + ROCPROFILER_CALLBACK_PHASE_NONE = 0 + ROCPROFILER_CALLBACK_PHASE_ENTER = 1 + ROCPROFILER_CALLBACK_PHASE_LOAD = 1 + ROCPROFILER_CALLBACK_PHASE_EXIT = 2 + ROCPROFILER_CALLBACK_PHASE_UNLOAD = 2 + ROCPROFILER_CALLBACK_PHASE_LAST = 3 +end + +@cenum rocprofiler_callback_tracing_kind_t::UInt32 begin + ROCPROFILER_CALLBACK_TRACING_NONE = 0 + ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API = 1 + ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API = 2 + ROCPROFILER_CALLBACK_TRACING_HSA_IMAGE_EXT_API = 3 + ROCPROFILER_CALLBACK_TRACING_HSA_FINALIZE_EXT_API = 4 + ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API = 5 + ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API = 6 + ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API = 7 + ROCPROFILER_CALLBACK_TRACING_MARKER_CONTROL_API = 8 + ROCPROFILER_CALLBACK_TRACING_MARKER_NAME_API = 9 + ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT = 10 + ROCPROFILER_CALLBACK_TRACING_SCRATCH_MEMORY = 11 + ROCPROFILER_CALLBACK_TRACING_KERNEL_DISPATCH = 12 + ROCPROFILER_CALLBACK_TRACING_MEMORY_COPY = 13 + ROCPROFILER_CALLBACK_TRACING_RCCL_API = 14 + ROCPROFILER_CALLBACK_TRACING_OMPT = 15 + ROCPROFILER_CALLBACK_TRACING_MEMORY_ALLOCATION = 16 + ROCPROFILER_CALLBACK_TRACING_RUNTIME_INITIALIZATION = 17 + ROCPROFILER_CALLBACK_TRACING_ROCDECODE_API = 18 + ROCPROFILER_CALLBACK_TRACING_ROCJPEG_API = 19 + ROCPROFILER_CALLBACK_TRACING_HIP_STREAM = 20 + ROCPROFILER_CALLBACK_TRACING_LAST = 21 +end + +@cenum rocprofiler_buffer_tracing_kind_t::UInt32 begin + ROCPROFILER_BUFFER_TRACING_NONE = 0 + ROCPROFILER_BUFFER_TRACING_HSA_CORE_API = 1 + ROCPROFILER_BUFFER_TRACING_HSA_AMD_EXT_API = 2 + ROCPROFILER_BUFFER_TRACING_HSA_IMAGE_EXT_API = 3 + ROCPROFILER_BUFFER_TRACING_HSA_FINALIZE_EXT_API = 4 + ROCPROFILER_BUFFER_TRACING_HIP_RUNTIME_API = 5 + ROCPROFILER_BUFFER_TRACING_HIP_COMPILER_API = 6 + ROCPROFILER_BUFFER_TRACING_MARKER_CORE_API = 7 + ROCPROFILER_BUFFER_TRACING_MARKER_CONTROL_API = 8 + ROCPROFILER_BUFFER_TRACING_MARKER_NAME_API = 9 + ROCPROFILER_BUFFER_TRACING_MEMORY_COPY = 10 + ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH = 11 + ROCPROFILER_BUFFER_TRACING_PAGE_MIGRATION = 12 + ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY = 13 + ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT = 14 + ROCPROFILER_BUFFER_TRACING_RCCL_API = 15 + ROCPROFILER_BUFFER_TRACING_OMPT = 16 + ROCPROFILER_BUFFER_TRACING_MEMORY_ALLOCATION = 17 + ROCPROFILER_BUFFER_TRACING_RUNTIME_INITIALIZATION = 18 + ROCPROFILER_BUFFER_TRACING_ROCDECODE_API = 19 + ROCPROFILER_BUFFER_TRACING_ROCJPEG_API = 20 + ROCPROFILER_BUFFER_TRACING_HIP_STREAM = 21 + ROCPROFILER_BUFFER_TRACING_HIP_RUNTIME_API_EXT = 22 + ROCPROFILER_BUFFER_TRACING_HIP_COMPILER_API_EXT = 23 + ROCPROFILER_BUFFER_TRACING_ROCDECODE_API_EXT = 24 + ROCPROFILER_BUFFER_TRACING_LAST = 25 +end + +@cenum rocprofiler_code_object_operation_t::UInt32 begin + ROCPROFILER_CODE_OBJECT_NONE = 0 + ROCPROFILER_CODE_OBJECT_LOAD = 1 + ROCPROFILER_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER = 2 + ROCPROFILER_CODE_OBJECT_HOST_KERNEL_SYMBOL_REGISTER = 3 + ROCPROFILER_CODE_OBJECT_LAST = 4 +end + +@cenum rocprofiler_hip_stream_operation_t::UInt32 begin + ROCPROFILER_HIP_STREAM_NONE = 0 + ROCPROFILER_HIP_STREAM_CREATE = 1 + ROCPROFILER_HIP_STREAM_DESTROY = 2 + ROCPROFILER_HIP_STREAM_SET = 3 + ROCPROFILER_HIP_STREAM_LAST = 4 +end + +@cenum rocprofiler_memory_copy_operation_t::UInt32 begin + ROCPROFILER_MEMORY_COPY_NONE = 0 + ROCPROFILER_MEMORY_COPY_HOST_TO_HOST = 1 + ROCPROFILER_MEMORY_COPY_HOST_TO_DEVICE = 2 + ROCPROFILER_MEMORY_COPY_DEVICE_TO_HOST = 3 + ROCPROFILER_MEMORY_COPY_DEVICE_TO_DEVICE = 4 + ROCPROFILER_MEMORY_COPY_LAST = 5 +end + +@cenum rocprofiler_memory_allocation_operation_t::UInt32 begin + ROCPROFILER_MEMORY_ALLOCATION_NONE = 0 + ROCPROFILER_MEMORY_ALLOCATION_ALLOCATE = 1 + ROCPROFILER_MEMORY_ALLOCATION_VMEM_ALLOCATE = 2 + ROCPROFILER_MEMORY_ALLOCATION_FREE = 3 + ROCPROFILER_MEMORY_ALLOCATION_VMEM_FREE = 4 + ROCPROFILER_MEMORY_ALLOCATION_LAST = 5 +end + +@cenum rocprofiler_kernel_dispatch_operation_t::UInt32 begin + ROCPROFILER_KERNEL_DISPATCH_NONE = 0 + ROCPROFILER_KERNEL_DISPATCH_ENQUEUE = 1 + ROCPROFILER_KERNEL_DISPATCH_COMPLETE = 2 + ROCPROFILER_KERNEL_DISPATCH_LAST = 3 +end + +@cenum rocprofiler_pc_sampling_method_t::UInt32 begin + ROCPROFILER_PC_SAMPLING_METHOD_NONE = 0 + ROCPROFILER_PC_SAMPLING_METHOD_STOCHASTIC = 1 + ROCPROFILER_PC_SAMPLING_METHOD_HOST_TRAP = 2 + ROCPROFILER_PC_SAMPLING_METHOD_LAST = 3 +end + +@cenum rocprofiler_pc_sampling_unit_t::UInt32 begin + ROCPROFILER_PC_SAMPLING_UNIT_NONE = 0 + ROCPROFILER_PC_SAMPLING_UNIT_INSTRUCTIONS = 1 + ROCPROFILER_PC_SAMPLING_UNIT_CYCLES = 2 + ROCPROFILER_PC_SAMPLING_UNIT_TIME = 3 + ROCPROFILER_PC_SAMPLING_UNIT_LAST = 4 +end + +@cenum rocprofiler_buffer_policy_t::UInt32 begin + ROCPROFILER_BUFFER_POLICY_NONE = 0 + ROCPROFILER_BUFFER_POLICY_DISCARD = 1 + ROCPROFILER_BUFFER_POLICY_LOSSLESS = 2 + ROCPROFILER_BUFFER_POLICY_LAST = 3 +end + +@cenum rocprofiler_page_migration_operation_t::UInt32 begin + ROCPROFILER_PAGE_MIGRATION_NONE = 0 + ROCPROFILER_PAGE_MIGRATION_PAGE_MIGRATE_START = 1 + ROCPROFILER_PAGE_MIGRATION_PAGE_MIGRATE_END = 2 + ROCPROFILER_PAGE_MIGRATION_PAGE_FAULT_START = 3 + ROCPROFILER_PAGE_MIGRATION_PAGE_FAULT_END = 4 + ROCPROFILER_PAGE_MIGRATION_QUEUE_EVICTION = 5 + ROCPROFILER_PAGE_MIGRATION_QUEUE_RESTORE = 6 + ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU = 7 + ROCPROFILER_PAGE_MIGRATION_DROPPED_EVENT = 8 + ROCPROFILER_PAGE_MIGRATION_LAST = 9 +end + +@cenum rocprofiler_scratch_memory_operation_t::UInt32 begin + ROCPROFILER_SCRATCH_MEMORY_NONE = 0 + ROCPROFILER_SCRATCH_MEMORY_ALLOC = 1 + ROCPROFILER_SCRATCH_MEMORY_FREE = 2 + ROCPROFILER_SCRATCH_MEMORY_ASYNC_RECLAIM = 3 + ROCPROFILER_SCRATCH_MEMORY_LAST = 4 +end + +@cenum rocprofiler_runtime_library_t::UInt32 begin + ROCPROFILER_LIBRARY = 1 + ROCPROFILER_HSA_LIBRARY = 2 + ROCPROFILER_HIP_LIBRARY = 4 + ROCPROFILER_MARKER_LIBRARY = 8 + ROCPROFILER_RCCL_LIBRARY = 16 + ROCPROFILER_ROCDECODE_LIBRARY = 32 + ROCPROFILER_ROCJPEG_LIBRARY = 64 + ROCPROFILER_LIBRARY_LAST = 64 +end + +@cenum rocprofiler_intercept_table_t::UInt32 begin + ROCPROFILER_HSA_TABLE = 1 + ROCPROFILER_HIP_RUNTIME_TABLE = 2 + ROCPROFILER_HIP_COMPILER_TABLE = 4 + ROCPROFILER_MARKER_CORE_TABLE = 8 + ROCPROFILER_MARKER_CONTROL_TABLE = 16 + ROCPROFILER_MARKER_NAME_TABLE = 32 + ROCPROFILER_RCCL_TABLE = 64 + ROCPROFILER_ROCDECODE_TABLE = 128 + ROCPROFILER_ROCJPEG_TABLE = 256 + ROCPROFILER_TABLE_LAST = 256 +end + +@cenum rocprofiler_runtime_initialization_operation_t::UInt32 begin + ROCPROFILER_RUNTIME_INITIALIZATION_NONE = 0 + ROCPROFILER_RUNTIME_INITIALIZATION_HSA = 1 + ROCPROFILER_RUNTIME_INITIALIZATION_HIP = 2 + ROCPROFILER_RUNTIME_INITIALIZATION_MARKER = 3 + ROCPROFILER_RUNTIME_INITIALIZATION_RCCL = 4 + ROCPROFILER_RUNTIME_INITIALIZATION_ROCDECODE = 5 + ROCPROFILER_RUNTIME_INITIALIZATION_ROCJPEG = 6 + ROCPROFILER_RUNTIME_INITIALIZATION_LAST = 7 +end + +@cenum rocprofiler_counter_info_version_id_t::UInt32 begin + ROCPROFILER_COUNTER_INFO_VERSION_NONE = 0 + ROCPROFILER_COUNTER_INFO_VERSION_0 = 1 + ROCPROFILER_COUNTER_INFO_VERSION_1 = 2 + ROCPROFILER_COUNTER_INFO_VERSION_LAST = 3 +end + +@cenum rocprofiler_counter_record_kind_t::UInt32 begin + ROCPROFILER_COUNTER_RECORD_NONE = 0 + ROCPROFILER_COUNTER_RECORD_PROFILE_COUNTING_DISPATCH_HEADER = 1 + ROCPROFILER_COUNTER_RECORD_VALUE = 2 + ROCPROFILER_COUNTER_RECORD_LAST = 3 +end + +@cenum rocprofiler_counter_flag_t::UInt32 begin + ROCPROFILER_COUNTER_FLAG_NONE = 0 + ROCPROFILER_COUNTER_FLAG_ASYNC = 1 + ROCPROFILER_COUNTER_FLAG_APPEND_DEFINITION = 2 + ROCPROFILER_COUNTER_FLAG_LAST = 3 +end + +@cenum rocprofiler_pc_sampling_record_kind_t::UInt32 begin + ROCPROFILER_PC_SAMPLING_RECORD_NONE = 0 + ROCPROFILER_PC_SAMPLING_RECORD_INVALID_SAMPLE = 1 + ROCPROFILER_PC_SAMPLING_RECORD_HOST_TRAP_V0_SAMPLE = 2 + ROCPROFILER_PC_SAMPLING_RECORD_STOCHASTIC_V0_SAMPLE = 3 + ROCPROFILER_PC_SAMPLING_RECORD_LAST = 4 +end + +const rocprofiler_timestamp_t = UInt64 + +const rocprofiler_thread_id_t = UInt64 + +const rocprofiler_tracing_operation_t = Int32 + +const rocprofiler_kernel_id_t = UInt64 + +const rocprofiler_dispatch_id_t = UInt64 + +const rocprofiler_counter_instance_id_t = UInt64 + +const rocprofiler_counter_dimension_id_t = UInt64 + +struct rocprofiler_user_data_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_user_data_t}, f::Symbol) + f === :value && return Ptr{UInt64}(x + 0) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_user_data_t, f::Symbol) + r = Ref{rocprofiler_user_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_user_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_user_data_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_user_data_t, private::Bool=false) + return (:value, :ptr, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_address_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_address_t}, f::Symbol) + f === :handle && return Ptr{UInt64}(x + 0) + f === :value && return Ptr{UInt64}(x + 0) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_address_t, f::Symbol) + r = Ref{rocprofiler_address_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_address_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_address_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_address_t, private::Bool=false) + return (:handle, :value, :ptr, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_uuid_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_uuid_t}, f::Symbol) + f === :value && return Ptr{UInt64}(x + 0) + f === :bytes && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_uuid_t, f::Symbol) + r = Ref{rocprofiler_uuid_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_uuid_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_uuid_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_uuid_t, private::Bool=false) + return (:value, :bytes, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_version_triplet_t + major::UInt32 + minor::UInt32 + patch::UInt32 +end + +struct rocprofiler_queue_id_t + handle::UInt64 +end + +struct rocprofiler_stream_id_t + handle::UInt64 +end + +struct rocprofiler_correlation_id_t + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_correlation_id_t}, f::Symbol) + f === :internal && return Ptr{UInt64}(x + 0) + f === :external && return Ptr{rocprofiler_user_data_t}(x + 8) + f === :ancestor && return Ptr{UInt64}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_correlation_id_t, f::Symbol) + r = Ref{rocprofiler_correlation_id_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_correlation_id_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_correlation_id_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_correlation_id_t, private::Bool=false) + return (:internal, :external, :ancestor, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_async_correlation_id_t + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_async_correlation_id_t}, f::Symbol) + f === :internal && return Ptr{UInt64}(x + 0) + f === :external && return Ptr{rocprofiler_user_data_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_async_correlation_id_t, f::Symbol) + r = Ref{rocprofiler_async_correlation_id_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_async_correlation_id_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_async_correlation_id_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_async_correlation_id_t, private::Bool=false) + return (:internal, :external, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_id_t + handle::UInt64 +end + +struct rocprofiler_agent_id_t + handle::UInt64 +end + +struct rocprofiler_counter_id_t + handle::UInt64 +end + +struct rocprofiler_counter_config_id_t + handle::UInt64 +end + +struct rocprofiler_dim3_t + x::UInt32 + y::UInt32 + z::UInt32 +end + +struct rocprofiler_callback_tracing_record_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_record_t}, f::Symbol) + f === :context_id && return Ptr{rocprofiler_context_id_t}(x + 0) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 8) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :kind && return Ptr{rocprofiler_callback_tracing_kind_t}(x + 40) + f === :operation && return Ptr{rocprofiler_tracing_operation_t}(x + 44) + f === :phase && return Ptr{rocprofiler_callback_phase_t}(x + 48) + f === :payload && return Ptr{Ptr{Cvoid}}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_record_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_record_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_record_t, private::Bool=false) + return (:context_id, :thread_id, :correlation_id, :kind, :operation, :phase, :payload, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_record_header_t + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_record_header_t}, f::Symbol) + f === + Symbol("union rocprofiler_record_header_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/fwd.h:756:5)") && + return Ptr{Cvoid}(x + 0) + f === :payload && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_record_header_t, f::Symbol) + r = Ref{rocprofiler_record_header_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_record_header_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_record_header_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_record_header_t, private::Bool=false) + return (Symbol("union rocprofiler_record_header_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/fwd.h:756:5)"), + :payload, if private + fieldnames(typeof(x)) + else + () + end...) +end + +function rocprofiler_record_header_compute_hash(category, kind) + @ccall librocprofiler_sdk_tool.rocprofiler_record_header_compute_hash(category::UInt32, + kind::UInt32)::UInt64 +end + +struct rocprofiler_kernel_dispatch_info_t + size::UInt64 + agent_id::rocprofiler_agent_id_t + queue_id::rocprofiler_queue_id_t + kernel_id::rocprofiler_kernel_id_t + dispatch_id::rocprofiler_dispatch_id_t + private_segment_size::UInt32 + group_segment_size::UInt32 + workgroup_size::rocprofiler_dim3_t + grid_size::rocprofiler_dim3_t + reserved_padding::NTuple{56,UInt8} +end + +struct rocprofiler_counter_record_dimension_info_t + name::Ptr{Cchar} + instance_size::Csize_t + id::rocprofiler_counter_dimension_id_t +end + +const rocprofiler_record_dimension_info_t = rocprofiler_counter_record_dimension_info_t + +struct rocprofiler_counter_record_t + data::NTuple{40,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_counter_record_t}, f::Symbol) + f === :id && return Ptr{rocprofiler_counter_instance_id_t}(x + 0) + f === :counter_value && return Ptr{Cdouble}(x + 8) + f === :dispatch_id && return Ptr{rocprofiler_dispatch_id_t}(x + 16) + f === :user_data && return Ptr{rocprofiler_user_data_t}(x + 24) + f === :agent_id && return Ptr{rocprofiler_agent_id_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_counter_record_t, f::Symbol) + r = Ref{rocprofiler_counter_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_counter_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_counter_record_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_counter_record_t, private::Bool=false) + return (:id, :counter_value, :dispatch_id, :user_data, :agent_id, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const rocprofiler_record_counter_t = rocprofiler_counter_record_t + +const rocprofiler_profile_config_id_t = rocprofiler_counter_config_id_t + +function rocprofiler_get_version(major, minor, patch) + @ccall librocprofiler_sdk_tool.rocprofiler_get_version(major::Ptr{UInt32}, + minor::Ptr{UInt32}, + patch::Ptr{UInt32})::rocprofiler_status_t +end + +function rocprofiler_get_version_triplet(info) + @ccall librocprofiler_sdk_tool.rocprofiler_get_version_triplet(info::Ptr{rocprofiler_version_triplet_t})::rocprofiler_status_t +end + +const HSAint8 = Int8 + +const HSAint16 = Int16 + +const HSAint32 = Int32 + +const HSAint64 = Int64 + +const HSAuint64 = UInt64 + +const HSA_HANDLE = Ptr{Cvoid} + +const HSA_QUEUEID = HSAuint64 + +@cenum _HSAKMT_STATUS::UInt32 begin + HSAKMT_STATUS_SUCCESS = 0 + HSAKMT_STATUS_ERROR = 1 + HSAKMT_STATUS_DRIVER_MISMATCH = 2 + HSAKMT_STATUS_INVALID_PARAMETER = 3 + HSAKMT_STATUS_INVALID_HANDLE = 4 + HSAKMT_STATUS_INVALID_NODE_UNIT = 5 + HSAKMT_STATUS_NO_MEMORY = 6 + HSAKMT_STATUS_BUFFER_TOO_SMALL = 7 + HSAKMT_STATUS_NOT_IMPLEMENTED = 10 + HSAKMT_STATUS_NOT_SUPPORTED = 11 + HSAKMT_STATUS_UNAVAILABLE = 12 + HSAKMT_STATUS_OUT_OF_RESOURCES = 13 + HSAKMT_STATUS_KERNEL_IO_CHANNEL_NOT_OPENED = 20 + HSAKMT_STATUS_KERNEL_COMMUNICATION_ERROR = 21 + HSAKMT_STATUS_KERNEL_ALREADY_OPENED = 22 + HSAKMT_STATUS_HSAMMU_UNAVAILABLE = 23 + HSAKMT_STATUS_WAIT_FAILURE = 30 + HSAKMT_STATUS_WAIT_TIMEOUT = 31 + HSAKMT_STATUS_MEMORY_ALREADY_REGISTERED = 35 + HSAKMT_STATUS_MEMORY_NOT_REGISTERED = 36 + HSAKMT_STATUS_MEMORY_ALIGNMENT = 37 +end + +const HSAKMT_STATUS = _HSAKMT_STATUS + +struct _HsaVersionInfo + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaVersionInfo}, f::Symbol) + f === :KernelInterfaceMajorVersion && return Ptr{HSAuint32}(x + 0) + f === :KernelInterfaceMinorVersion && return Ptr{HSAuint32}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaVersionInfo, f::Symbol) + r = Ref{_HsaVersionInfo}(x) + ptr = Base.unsafe_convert(Ptr{_HsaVersionInfo}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaVersionInfo}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaVersionInfo, private::Bool=false) + return (:KernelInterfaceMajorVersion, :KernelInterfaceMinorVersion, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaVersionInfo = _HsaVersionInfo + +struct _HsaSystemProperties + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaSystemProperties}, f::Symbol) + f === :NumNodes && return Ptr{HSAuint32}(x + 0) + f === :PlatformOem && return Ptr{HSAuint32}(x + 4) + f === :PlatformId && return Ptr{HSAuint32}(x + 8) + f === :PlatformRev && return Ptr{HSAuint32}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaSystemProperties, f::Symbol) + r = Ref{_HsaSystemProperties}(x) + ptr = Base.unsafe_convert(Ptr{_HsaSystemProperties}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaSystemProperties}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaSystemProperties, private::Bool=false) + return (:NumNodes, :PlatformOem, :PlatformId, :PlatformRev, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaSystemProperties = _HsaSystemProperties + +struct HSA_ENGINE_ID + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{HSA_ENGINE_ID}, f::Symbol) + f === :Value && return Ptr{HSAuint32}(x + 0) + f === :ui32 && return Ptr{var"##Ctag#315"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::HSA_ENGINE_ID, f::Symbol) + r = Ref{HSA_ENGINE_ID}(x) + ptr = Base.unsafe_convert(Ptr{HSA_ENGINE_ID}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HSA_ENGINE_ID}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HSA_ENGINE_ID, private::Bool=false) + return (:Value, :ui32, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct HSA_ENGINE_VERSION + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{HSA_ENGINE_VERSION}, f::Symbol) + f === :Value && return Ptr{HSAuint32}(x + 0) + f === + Symbol("struct HSA_ENGINE_VERSION::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:177:5)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::HSA_ENGINE_VERSION, f::Symbol) + r = Ref{HSA_ENGINE_VERSION}(x) + ptr = Base.unsafe_convert(Ptr{HSA_ENGINE_VERSION}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HSA_ENGINE_VERSION}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HSA_ENGINE_VERSION, private::Bool=false) + return (:Value, + Symbol("struct HSA_ENGINE_VERSION::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:177:5)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct HSA_CAPABILITY + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{HSA_CAPABILITY}, f::Symbol) + f === :Value && return Ptr{HSAuint32}(x + 0) + f === :ui32 && return Ptr{var"##Ctag#912"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::HSA_CAPABILITY, f::Symbol) + r = Ref{HSA_CAPABILITY}(x) + ptr = Base.unsafe_convert(Ptr{HSA_CAPABILITY}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HSA_CAPABILITY}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HSA_CAPABILITY, private::Bool=false) + return (:Value, :ui32, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct HSA_CAPABILITY2 + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{HSA_CAPABILITY2}, f::Symbol) + f === :Value && return Ptr{HSAuint32}(x + 0) + f === :ui32 && return Ptr{var"##Ctag#312"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::HSA_CAPABILITY2, f::Symbol) + r = Ref{HSA_CAPABILITY2}(x) + ptr = Base.unsafe_convert(Ptr{HSA_CAPABILITY2}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HSA_CAPABILITY2}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HSA_CAPABILITY2, private::Bool=false) + return (:Value, :ui32, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct HSA_DEBUG_PROPERTIES + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{HSA_DEBUG_PROPERTIES}, f::Symbol) + f === :Value && return Ptr{HSAuint64}(x + 0) + f === + Symbol("struct HSA_DEBUG_PROPERTIES::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:240:5)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::HSA_DEBUG_PROPERTIES, f::Symbol) + r = Ref{HSA_DEBUG_PROPERTIES}(x) + ptr = Base.unsafe_convert(Ptr{HSA_DEBUG_PROPERTIES}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HSA_DEBUG_PROPERTIES}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HSA_DEBUG_PROPERTIES, private::Bool=false) + return (:Value, + Symbol("struct HSA_DEBUG_PROPERTIES::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:240:5)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _HsaNodeProperties + data::NTuple{368,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaNodeProperties}, f::Symbol) + f === :NumCPUCores && return Ptr{HSAuint32}(x + 0) + f === :NumFComputeCores && return Ptr{HSAuint32}(x + 4) + f === :NumNeuralCores && return Ptr{HSAuint32}(x + 8) + f === :NumMemoryBanks && return Ptr{HSAuint32}(x + 12) + f === :NumCaches && return Ptr{HSAuint32}(x + 16) + f === :NumIOLinks && return Ptr{HSAuint32}(x + 20) + f === :CComputeIdLo && return Ptr{HSAuint32}(x + 24) + f === :FComputeIdLo && return Ptr{HSAuint32}(x + 28) + f === :Capability && return Ptr{HSA_CAPABILITY}(x + 32) + f === :Capability2 && return Ptr{HSA_CAPABILITY2}(x + 36) + f === :MaxWavesPerSIMD && return Ptr{HSAuint32}(x + 40) + f === :LDSSizeInKB && return Ptr{HSAuint32}(x + 44) + f === :GDSSizeInKB && return Ptr{HSAuint32}(x + 48) + f === :WaveFrontSize && return Ptr{HSAuint32}(x + 52) + f === :NumShaderBanks && return Ptr{HSAuint32}(x + 56) + f === :NumArrays && return Ptr{HSAuint32}(x + 60) + f === :NumCUPerArray && return Ptr{HSAuint32}(x + 64) + f === :NumSIMDPerCU && return Ptr{HSAuint32}(x + 68) + f === :MaxSlotsScratchCU && return Ptr{HSAuint32}(x + 72) + f === :EngineId && return Ptr{HSA_ENGINE_ID}(x + 76) + f === :OverrideEngineId && return Ptr{HSA_ENGINE_ID}(x + 80) + f === :VendorId && return Ptr{HSAuint16}(x + 84) + f === :DeviceId && return Ptr{HSAuint16}(x + 86) + f === :LocationId && return Ptr{HSAuint32}(x + 88) + f === :LocalMemSize && return Ptr{HSAuint64}(x + 92) + f === :MaxEngineClockMhzFCompute && return Ptr{HSAuint32}(x + 100) + f === :MaxEngineClockMhzCCompute && return Ptr{HSAuint32}(x + 104) + f === :DrmRenderMinor && return Ptr{HSAint32}(x + 108) + f === :MarketingName && return Ptr{NTuple{64,HSAuint16}}(x + 112) + f === :AMDName && return Ptr{NTuple{64,HSAuint8}}(x + 240) + f === :uCodeEngineVersions && return Ptr{HSA_ENGINE_VERSION}(x + 304) + f === :DebugProperties && return Ptr{HSA_DEBUG_PROPERTIES}(x + 308) + f === :HiveID && return Ptr{HSAuint64}(x + 316) + f === :NumSdmaEngines && return Ptr{HSAuint32}(x + 324) + f === :NumSdmaXgmiEngines && return Ptr{HSAuint32}(x + 328) + f === :NumSdmaQueuesPerEngine && return Ptr{HSAuint8}(x + 332) + f === :NumCpQueues && return Ptr{HSAuint8}(x + 333) + f === :NumGws && return Ptr{HSAuint8}(x + 334) + f === :Integrated && return Ptr{HSAuint8}(x + 335) + f === :Domain && return Ptr{HSAuint32}(x + 336) + f === :UniqueID && return Ptr{HSAuint64}(x + 340) + f === :VGPRSizePerCU && return Ptr{HSAuint32}(x + 348) + f === :SGPRSizePerCU && return Ptr{HSAuint32}(x + 352) + f === :NumXcc && return Ptr{HSAuint32}(x + 356) + f === :KFDGpuID && return Ptr{HSAuint32}(x + 360) + f === :FamilyID && return Ptr{HSAuint32}(x + 364) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaNodeProperties, f::Symbol) + r = Ref{_HsaNodeProperties}(x) + ptr = Base.unsafe_convert(Ptr{_HsaNodeProperties}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaNodeProperties}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaNodeProperties, private::Bool=false) + return (:NumCPUCores, :NumFComputeCores, :NumNeuralCores, :NumMemoryBanks, :NumCaches, + :NumIOLinks, :CComputeIdLo, :FComputeIdLo, :Capability, :Capability2, + :MaxWavesPerSIMD, :LDSSizeInKB, :GDSSizeInKB, :WaveFrontSize, :NumShaderBanks, + :NumArrays, :NumCUPerArray, :NumSIMDPerCU, :MaxSlotsScratchCU, :EngineId, + :OverrideEngineId, :VendorId, :DeviceId, :LocationId, :LocalMemSize, + :MaxEngineClockMhzFCompute, :MaxEngineClockMhzCCompute, :DrmRenderMinor, + :MarketingName, :AMDName, :uCodeEngineVersions, :DebugProperties, :HiveID, + :NumSdmaEngines, :NumSdmaXgmiEngines, :NumSdmaQueuesPerEngine, :NumCpQueues, + :NumGws, :Integrated, :Domain, :UniqueID, :VGPRSizePerCU, :SGPRSizePerCU, + :NumXcc, :KFDGpuID, :FamilyID, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaNodeProperties = _HsaNodeProperties + +@cenum _HSA_HEAPTYPE::UInt32 begin + HSA_HEAPTYPE_SYSTEM = 0 + HSA_HEAPTYPE_FRAME_BUFFER_PUBLIC = 1 + HSA_HEAPTYPE_FRAME_BUFFER_PRIVATE = 2 + HSA_HEAPTYPE_GPU_GDS = 3 + HSA_HEAPTYPE_GPU_LDS = 4 + HSA_HEAPTYPE_GPU_SCRATCH = 5 + HSA_HEAPTYPE_DEVICE_SVM = 6 + HSA_HEAPTYPE_MMIO_REMAP = 7 + HSA_HEAPTYPE_NUMHEAPTYPES = 8 + HSA_HEAPTYPE_SIZE = 0x00000000ffffffff +end + +const HSA_HEAPTYPE = _HSA_HEAPTYPE + +struct HSA_MEMORYPROPERTY + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{HSA_MEMORYPROPERTY}, f::Symbol) + f === :MemoryProperty && return Ptr{HSAuint32}(x + 0) + f === :ui32 && return Ptr{var"##Ctag#371"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::HSA_MEMORYPROPERTY, f::Symbol) + r = Ref{HSA_MEMORYPROPERTY}(x) + ptr = Base.unsafe_convert(Ptr{HSA_MEMORYPROPERTY}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HSA_MEMORYPROPERTY}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HSA_MEMORYPROPERTY, private::Bool=false) + return (:MemoryProperty, :ui32, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _HsaMemoryProperties + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaMemoryProperties}, f::Symbol) + f === :HeapType && return Ptr{HSA_HEAPTYPE}(x + 0) + f === + Symbol("union _HsaMemoryProperties::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:392:5)") && + return Ptr{Cvoid}(x + 0) + f === :Flags && return Ptr{HSA_MEMORYPROPERTY}(x + 12) + f === :Width && return Ptr{HSAuint32}(x + 16) + f === :MemoryClockMax && return Ptr{HSAuint32}(x + 20) + f === :VirtualBaseAddress && return Ptr{HSAuint64}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaMemoryProperties, f::Symbol) + r = Ref{_HsaMemoryProperties}(x) + ptr = Base.unsafe_convert(Ptr{_HsaMemoryProperties}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaMemoryProperties}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaMemoryProperties, private::Bool=false) + return (:HeapType, + Symbol("union _HsaMemoryProperties::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:392:5)"), + :Flags, :Width, :MemoryClockMax, :VirtualBaseAddress, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaMemoryProperties = _HsaMemoryProperties + +struct HsaCacheType + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{HsaCacheType}, f::Symbol) + f === :Value && return Ptr{HSAuint32}(x + 0) + f === :ui32 && return Ptr{var"##Ctag#328"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::HsaCacheType, f::Symbol) + r = Ref{HsaCacheType}(x) + ptr = Base.unsafe_convert(Ptr{HsaCacheType}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HsaCacheType}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HsaCacheType, private::Bool=false) + return (:Value, :ui32, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _HaCacheProperties + data::NTuple{1056,UInt8} +end + +function Base.getproperty(x::Ptr{_HaCacheProperties}, f::Symbol) + f === :ProcessorIdLow && return Ptr{HSAuint32}(x + 0) + f === :CacheLevel && return Ptr{HSAuint32}(x + 4) + f === :CacheSize && return Ptr{HSAuint32}(x + 8) + f === :CacheLineSize && return Ptr{HSAuint32}(x + 12) + f === :CacheLinesPerTag && return Ptr{HSAuint32}(x + 16) + f === :CacheAssociativity && return Ptr{HSAuint32}(x + 20) + f === :CacheLatency && return Ptr{HSAuint32}(x + 24) + f === :CacheType && return Ptr{HsaCacheType}(x + 28) + f === :SiblingMap && return Ptr{NTuple{256,HSAuint32}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::_HaCacheProperties, f::Symbol) + r = Ref{_HaCacheProperties}(x) + ptr = Base.unsafe_convert(Ptr{_HaCacheProperties}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HaCacheProperties}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HaCacheProperties, private::Bool=false) + return (:ProcessorIdLow, :CacheLevel, :CacheSize, :CacheLineSize, :CacheLinesPerTag, + :CacheAssociativity, :CacheLatency, :CacheType, :SiblingMap, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaCacheProperties = _HaCacheProperties + +struct _HsaCComputeProperties + data::NTuple{1024,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaCComputeProperties}, f::Symbol) + f === :SiblingMap && return Ptr{NTuple{256,HSAuint32}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaCComputeProperties, f::Symbol) + r = Ref{_HsaCComputeProperties}(x) + ptr = Base.unsafe_convert(Ptr{_HsaCComputeProperties}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaCComputeProperties}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaCComputeProperties, private::Bool=false) + return (:SiblingMap, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaCComputeProperties = _HsaCComputeProperties + +@cenum _HSA_IOLINKTYPE::UInt32 begin + HSA_IOLINKTYPE_UNDEFINED = 0 + HSA_IOLINKTYPE_HYPERTRANSPORT = 1 + HSA_IOLINKTYPE_PCIEXPRESS = 2 + HSA_IOLINKTYPE_AMBA = 3 + HSA_IOLINKTYPE_MIPI = 4 + HSA_IOLINK_TYPE_QPI_1_1 = 5 + HSA_IOLINK_TYPE_RESERVED1 = 6 + HSA_IOLINK_TYPE_RESERVED2 = 7 + HSA_IOLINK_TYPE_RAPID_IO = 8 + HSA_IOLINK_TYPE_INFINIBAND = 9 + HSA_IOLINK_TYPE_RESERVED3 = 10 + HSA_IOLINK_TYPE_XGMI = 11 + HSA_IOLINK_TYPE_XGOP = 12 + HSA_IOLINK_TYPE_GZ = 13 + HSA_IOLINK_TYPE_ETHERNET_RDMA = 14 + HSA_IOLINK_TYPE_RDMA_OTHER = 15 + HSA_IOLINK_TYPE_OTHER = 16 + HSA_IOLINKTYPE_NUMIOLINKTYPES = 17 + HSA_IOLINKTYPE_SIZE = 0x00000000ffffffff +end + +const HSA_IOLINKTYPE = _HSA_IOLINKTYPE + +struct HSA_LINKPROPERTY + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{HSA_LINKPROPERTY}, f::Symbol) + f === :LinkProperty && return Ptr{HSAuint32}(x + 0) + f === :ui32 && return Ptr{var"##Ctag#331"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::HSA_LINKPROPERTY, f::Symbol) + r = Ref{HSA_LINKPROPERTY}(x) + ptr = Base.unsafe_convert(Ptr{HSA_LINKPROPERTY}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HSA_LINKPROPERTY}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HSA_LINKPROPERTY, private::Bool=false) + return (:LinkProperty, :ui32, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _HsaIoLinkProperties + data::NTuple{52,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaIoLinkProperties}, f::Symbol) + f === :IoLinkType && return Ptr{HSA_IOLINKTYPE}(x + 0) + f === :VersionMajor && return Ptr{HSAuint32}(x + 4) + f === :VersionMinor && return Ptr{HSAuint32}(x + 8) + f === :NodeFrom && return Ptr{HSAuint32}(x + 12) + f === :NodeTo && return Ptr{HSAuint32}(x + 16) + f === :Weight && return Ptr{HSAuint32}(x + 20) + f === :MinimumLatency && return Ptr{HSAuint32}(x + 24) + f === :MaximumLatency && return Ptr{HSAuint32}(x + 28) + f === :MinimumBandwidth && return Ptr{HSAuint32}(x + 32) + f === :MaximumBandwidth && return Ptr{HSAuint32}(x + 36) + f === :RecTransferSize && return Ptr{HSAuint32}(x + 40) + f === :RecSdmaEngIdMask && return Ptr{HSAuint32}(x + 44) + f === :Flags && return Ptr{HSA_LINKPROPERTY}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaIoLinkProperties, f::Symbol) + r = Ref{_HsaIoLinkProperties}(x) + ptr = Base.unsafe_convert(Ptr{_HsaIoLinkProperties}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaIoLinkProperties}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaIoLinkProperties, private::Bool=false) + return (:IoLinkType, :VersionMajor, :VersionMinor, :NodeFrom, :NodeTo, :Weight, + :MinimumLatency, :MaximumLatency, :MinimumBandwidth, :MaximumBandwidth, + :RecTransferSize, :RecSdmaEngIdMask, :Flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaIoLinkProperties = _HsaIoLinkProperties + +struct _HsaMemFlags + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaMemFlags}, f::Symbol) + f === + Symbol("union _HsaMemFlags::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:530:5)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaMemFlags, f::Symbol) + r = Ref{_HsaMemFlags}(x) + ptr = Base.unsafe_convert(Ptr{_HsaMemFlags}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaMemFlags}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaMemFlags, private::Bool=false) + return (Symbol("union _HsaMemFlags::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:530:5)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaMemFlags = _HsaMemFlags + +struct _HsaMemMapFlags + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaMemMapFlags}, f::Symbol) + f === + Symbol("union _HsaMemMapFlags::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:598:5)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaMemMapFlags, f::Symbol) + r = Ref{_HsaMemMapFlags}(x) + ptr = Base.unsafe_convert(Ptr{_HsaMemMapFlags}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaMemMapFlags}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaMemMapFlags, private::Bool=false) + return (Symbol("union _HsaMemMapFlags::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:598:5)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaMemMapFlags = _HsaMemMapFlags + +struct _HsaGraphicsResourceInfo + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaGraphicsResourceInfo}, f::Symbol) + f === :MemoryAddress && return Ptr{Ptr{Cvoid}}(x + 0) + f === :SizeInBytes && return Ptr{HSAuint64}(x + 8) + f === :Metadata && return Ptr{Ptr{Cvoid}}(x + 16) + f === :MetadataSizeInBytes && return Ptr{HSAuint32}(x + 24) + f === :NodeId && return Ptr{HSAuint32}(x + 28) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaGraphicsResourceInfo, f::Symbol) + r = Ref{_HsaGraphicsResourceInfo}(x) + ptr = Base.unsafe_convert(Ptr{_HsaGraphicsResourceInfo}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaGraphicsResourceInfo}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaGraphicsResourceInfo, private::Bool=false) + return (:MemoryAddress, :SizeInBytes, :Metadata, :MetadataSizeInBytes, :NodeId, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaGraphicsResourceInfo = _HsaGraphicsResourceInfo + +@cenum _HSA_CACHING_TYPE::UInt32 begin + HSA_CACHING_CACHED = 0 + HSA_CACHING_NONCACHED = 1 + HSA_CACHING_WRITECOMBINED = 2 + HSA_CACHING_RESERVED = 3 + HSA_CACHING_NUM_CACHING = 4 + HSA_CACHING_SIZE = 0x00000000ffffffff +end + +const HSA_CACHING_TYPE = _HSA_CACHING_TYPE + +@cenum _HSA_PAGE_SIZE::UInt32 begin + HSA_PAGE_SIZE_4KB = 0 + HSA_PAGE_SIZE_64KB = 1 + HSA_PAGE_SIZE_2MB = 2 + HSA_PAGE_SIZE_1GB = 3 +end + +const HSA_PAGE_SIZE = _HSA_PAGE_SIZE + +@cenum _HSA_DEVICE::UInt32 begin + HSA_DEVICE_CPU = 0 + HSA_DEVICE_GPU = 1 + MAX_HSA_DEVICE = 2 +end + +const HSA_DEVICE = _HSA_DEVICE + +@cenum _HSA_QUEUE_PRIORITY::Int64 begin + HSA_QUEUE_PRIORITY_MINIMUM = -3 + HSA_QUEUE_PRIORITY_LOW = -2 + HSA_QUEUE_PRIORITY_BELOW_NORMAL = -1 + HSA_QUEUE_PRIORITY_NORMAL = 0 + HSA_QUEUE_PRIORITY_ABOVE_NORMAL = 1 + HSA_QUEUE_PRIORITY_HIGH = 2 + HSA_QUEUE_PRIORITY_MAXIMUM = 3 + HSA_QUEUE_PRIORITY_NUM_PRIORITY = 4 + HSA_QUEUE_PRIORITY_SIZE = 4294967295 +end + +const HSA_QUEUE_PRIORITY = _HSA_QUEUE_PRIORITY + +@cenum _HSA_QUEUE_TYPE::UInt32 begin + HSA_QUEUE_COMPUTE = 1 + HSA_QUEUE_SDMA = 2 + HSA_QUEUE_MULTIMEDIA_DECODE = 3 + HSA_QUEUE_MULTIMEDIA_ENCODE = 4 + HSA_QUEUE_SDMA_XGMI = 5 + HSA_QUEUE_SDMA_BY_ENG_ID = 6 + HSA_QUEUE_COMPUTE_OS = 11 + HSA_QUEUE_SDMA_OS = 12 + HSA_QUEUE_MULTIMEDIA_DECODE_OS = 13 + HSA_QUEUE_MULTIMEDIA_ENCODE_OS = 14 + HSA_QUEUE_COMPUTE_AQL = 21 + HSA_QUEUE_DMA_AQL = 22 + HSA_QUEUE_DMA_AQL_XGMI = 23 + HSA_QUEUE_TYPE_SIZE = 0x00000000ffffffff +end + +const HSA_QUEUE_TYPE = _HSA_QUEUE_TYPE + +struct HsaUserContextSaveAreaHeader + data::NTuple{40,UInt8} +end + +function Base.getproperty(x::Ptr{HsaUserContextSaveAreaHeader}, f::Symbol) + f === :ControlStackOffset && return Ptr{HSAuint32}(x + 0) + f === :ControlStackSize && return Ptr{HSAuint32}(x + 4) + f === :WaveStateOffset && return Ptr{HSAuint32}(x + 8) + f === :WaveStateSize && return Ptr{HSAuint32}(x + 12) + f === :DebugOffset && return Ptr{HSAuint32}(x + 16) + f === :DebugSize && return Ptr{HSAuint32}(x + 20) + f === :ErrorReason && return Ptr{Ptr{HSAint64}}(x + 24) + f === :ErrorEventId && return Ptr{HSAuint32}(x + 32) + f === :Reserved1 && return Ptr{HSAuint32}(x + 36) + return getfield(x, f) +end + +function Base.getproperty(x::HsaUserContextSaveAreaHeader, f::Symbol) + r = Ref{HsaUserContextSaveAreaHeader}(x) + ptr = Base.unsafe_convert(Ptr{HsaUserContextSaveAreaHeader}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HsaUserContextSaveAreaHeader}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HsaUserContextSaveAreaHeader, private::Bool=false) + return (:ControlStackOffset, :ControlStackSize, :WaveStateOffset, :WaveStateSize, + :DebugOffset, :DebugSize, :ErrorReason, :ErrorEventId, :Reserved1, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct HsaQueueInfo + data::NTuple{68,UInt8} +end + +function Base.getproperty(x::Ptr{HsaQueueInfo}, f::Symbol) + f === :QueueDetailError && return Ptr{HSAuint32}(x + 0) + f === :QueueTypeExtended && return Ptr{HSAuint32}(x + 4) + f === :NumCUAssigned && return Ptr{HSAuint32}(x + 8) + f === :CUMaskInfo && return Ptr{Ptr{HSAuint32}}(x + 12) + f === :UserContextSaveArea && return Ptr{Ptr{HSAuint32}}(x + 20) + f === :SaveAreaSizeInBytes && return Ptr{HSAuint64}(x + 28) + f === :ControlStackTop && return Ptr{Ptr{HSAuint32}}(x + 36) + f === :ControlStackUsedInBytes && return Ptr{HSAuint64}(x + 44) + f === :SaveAreaHeader && return Ptr{Ptr{HsaUserContextSaveAreaHeader}}(x + 52) + f === :Reserved2 && return Ptr{HSAuint64}(x + 60) + return getfield(x, f) +end + +function Base.getproperty(x::HsaQueueInfo, f::Symbol) + r = Ref{HsaQueueInfo}(x) + ptr = Base.unsafe_convert(Ptr{HsaQueueInfo}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HsaQueueInfo}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HsaQueueInfo, private::Bool=false) + return (:QueueDetailError, :QueueTypeExtended, :NumCUAssigned, :CUMaskInfo, + :UserContextSaveArea, :SaveAreaSizeInBytes, :ControlStackTop, + :ControlStackUsedInBytes, :SaveAreaHeader, :Reserved2, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _HsaQueueResource + data::NTuple{40,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaQueueResource}, f::Symbol) + f === :QueueId && return Ptr{HSA_QUEUEID}(x + 0) + f === + Symbol("union _HsaQueueResource::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:763:5)") && + return Ptr{Cvoid}(x + 0) + f === + Symbol("union _HsaQueueResource::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:771:5)") && + return Ptr{Cvoid}(x + 0) + f === + Symbol("union _HsaQueueResource::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:779:5)") && + return Ptr{Cvoid}(x + 0) + f === :ErrorReason && return Ptr{Ptr{HSAint64}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaQueueResource, f::Symbol) + r = Ref{_HsaQueueResource}(x) + ptr = Base.unsafe_convert(Ptr{_HsaQueueResource}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaQueueResource}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaQueueResource, private::Bool=false) + return (:QueueId, + Symbol("union _HsaQueueResource::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:763:5)"), + Symbol("union _HsaQueueResource::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:771:5)"), + Symbol("union _HsaQueueResource::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:779:5)"), + :ErrorReason, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaQueueResource = _HsaQueueResource + +struct _HsaQueueReport + data::NTuple{20,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaQueueReport}, f::Symbol) + f === :VMID && return Ptr{HSAuint32}(x + 0) + f === :QueueAddress && return Ptr{Ptr{Cvoid}}(x + 4) + f === :QueueSize && return Ptr{HSAuint64}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaQueueReport, f::Symbol) + r = Ref{_HsaQueueReport}(x) + ptr = Base.unsafe_convert(Ptr{_HsaQueueReport}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaQueueReport}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaQueueReport, private::Bool=false) + return (:VMID, :QueueAddress, :QueueSize, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaQueueReport = _HsaQueueReport + +@cenum _HSA_DBG_WAVEOP::UInt32 begin + HSA_DBG_WAVEOP_HALT = 1 + HSA_DBG_WAVEOP_RESUME = 2 + HSA_DBG_WAVEOP_KILL = 3 + HSA_DBG_WAVEOP_DEBUG = 4 + HSA_DBG_WAVEOP_TRAP = 5 + HSA_DBG_NUM_WAVEOP = 5 + HSA_DBG_MAX_WAVEOP = 0x00000000ffffffff +end + +const HSA_DBG_WAVEOP = _HSA_DBG_WAVEOP + +@cenum _HSA_DBG_WAVEMODE::UInt32 begin + HSA_DBG_WAVEMODE_SINGLE = 0 + HSA_DBG_WAVEMODE_BROADCAST_PROCESS = 2 + HSA_DBG_WAVEMODE_BROADCAST_PROCESS_CU = 3 + HSA_DBG_NUM_WAVEMODE = 3 + HSA_DBG_MAX_WAVEMODE = 0x00000000ffffffff +end + +const HSA_DBG_WAVEMODE = _HSA_DBG_WAVEMODE + +@cenum _HSA_DBG_WAVEMSG_TYPE::UInt32 begin + HSA_DBG_WAVEMSG_AUTO = 0 + HSA_DBG_WAVEMSG_USER = 1 + HSA_DBG_WAVEMSG_ERROR = 2 + HSA_DBG_NUM_WAVEMSG = 3 + HSA_DBG_MAX_WAVEMSG = 0x00000000ffffffff +end + +const HSA_DBG_WAVEMSG_TYPE = _HSA_DBG_WAVEMSG_TYPE + +@cenum _HSA_DBG_WATCH_MODE::UInt32 begin + HSA_DBG_WATCH_READ = 0 + HSA_DBG_WATCH_NONREAD = 1 + HSA_DBG_WATCH_ATOMIC = 2 + HSA_DBG_WATCH_ALL = 3 + HSA_DBG_WATCH_NUM = 4 +end + +const HSA_DBG_WATCH_MODE = _HSA_DBG_WATCH_MODE + +@cenum _HSA_DBG_TRAP_OVERRIDE::UInt32 begin + HSA_DBG_TRAP_OVERRIDE_OR = 0 + HSA_DBG_TRAP_OVERRIDE_REPLACE = 1 + HSA_DBG_TRAP_OVERRIDE_NUM = 2 +end + +const HSA_DBG_TRAP_OVERRIDE = _HSA_DBG_TRAP_OVERRIDE + +@cenum _HSA_DBG_TRAP_MASK::UInt32 begin + HSA_DBG_TRAP_MASK_FP_INVALID = 1 + HSA_DBG_TRAP_MASK_FP_INPUT_DENOMAL = 2 + HSA_DBG_TRAP_MASK_FP_DIVIDE_BY_ZERO = 4 + HSA_DBG_TRAP_MASK_FP_OVERFLOW = 8 + HSA_DBG_TRAP_MASK_FP_UNDERFLOW = 16 + HSA_DBG_TRAP_MASK_FP_INEXACT = 32 + HSA_DBG_TRAP_MASK_INT_DIVIDE_BY_ZERO = 64 + HSA_DBG_TRAP_MASK_DBG_ADDRESS_WATCH = 128 + HSA_DBG_TRAP_MASK_DBG_MEMORY_VIOLATION = 256 +end + +const HSA_DBG_TRAP_MASK = _HSA_DBG_TRAP_MASK + +@cenum _HSA_DBG_TRAP_EXCEPTION_CODE::UInt32 begin + HSA_DBG_EC_NONE = 0 + HSA_DBG_EC_QUEUE_WAVE_ABORT = 1 + HSA_DBG_EC_QUEUE_WAVE_TRAP = 2 + HSA_DBG_EC_QUEUE_WAVE_MATH_ERROR = 3 + HSA_DBG_EC_QUEUE_WAVE_ILLEGAL_INSTRUCTION = 4 + HSA_DBG_EC_QUEUE_WAVE_MEMORY_VIOLATION = 5 + HSA_DBG_EC_QUEUE_WAVE_APERTURE_VIOLATION = 6 + HSA_DBG_EC_QUEUE_PACKET_DISPATCH_DIM_INVALID = 16 + HSA_DBG_EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID = 17 + HSA_DBG_EC_QUEUE_PACKET_DISPATCH_CODE_INVALID = 18 + HSA_DBG_EC_QUEUE_PACKET_RESERVED = 19 + HSA_DBG_EC_QUEUE_PACKET_UNSUPPORTED = 20 + HSA_DBG_EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID = 21 + HSA_DBG_EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID = 22 + HSA_DBG_EC_QUEUE_PACKET_VENDOR_UNSUPPORTED = 23 + HSA_DBG_EC_QUEUE_PREEMPTION_ERROR = 30 + HSA_DBG_EC_QUEUE_NEW = 31 + HSA_DBG_EC_DEVICE_QUEUE_DELETE = 32 + HSA_DBG_EC_DEVICE_MEMORY_VIOLATION = 33 + HSA_DBG_EC_DEVICE_RAS_ERROR = 34 + HSA_DBG_EC_DEVICE_FATAL_HALT = 35 + HSA_DBG_EC_DEVICE_NEW = 36 + HSA_DBG_EC_PROCESS_RUNTIME = 48 + HSA_DBG_EC_PROCESS_DEVICE_REMOVE = 49 + HSA_DBG_EC_MAX = 50 +end + +const HSA_DBG_TRAP_EXCEPTION_CODE = _HSA_DBG_TRAP_EXCEPTION_CODE + +@cenum _HSA_DBG_WAVE_LAUNCH_MODE::UInt32 begin + HSA_DBG_WAVE_LAUNCH_MODE_NORMAL = 0 + HSA_DBG_WAVE_LAUNCH_MODE_HALT = 1 + HSA_DBG_WAVE_LAUNCH_MODE_KILL = 2 + HSA_DBG_WAVE_LAUNCH_MODE_SINGLE_STEP = 3 + HSA_DBG_WAVE_LAUNCH_MODE_DISABLE = 4 + HSA_DBG_WAVE_LAUNCH_MODE_NUM = 5 +end + +const HSA_DBG_WAVE_LAUNCH_MODE = _HSA_DBG_WAVE_LAUNCH_MODE + +@cenum HSA_DBG_NODE_CONTROL::UInt32 begin + HSA_DBG_NODE_CONTROL_FLAG_MAX = 1 +end + +struct _HsaDbgWaveMsgAMDGen2 + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaDbgWaveMsgAMDGen2}, f::Symbol) + f === :Value && return Ptr{HSAuint32}(x + 0) + f === :Reserved2 && return Ptr{HSAuint32}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaDbgWaveMsgAMDGen2, f::Symbol) + r = Ref{_HsaDbgWaveMsgAMDGen2}(x) + ptr = Base.unsafe_convert(Ptr{_HsaDbgWaveMsgAMDGen2}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaDbgWaveMsgAMDGen2}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaDbgWaveMsgAMDGen2, private::Bool=false) + return (:Value, :Reserved2, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaDbgWaveMsgAMDGen2 = _HsaDbgWaveMsgAMDGen2 + +struct _HsaDbgWaveMessageAMD + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaDbgWaveMessageAMD}, f::Symbol) + f === :WaveMsgInfoGen2 && return Ptr{HsaDbgWaveMsgAMDGen2}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaDbgWaveMessageAMD, f::Symbol) + r = Ref{_HsaDbgWaveMessageAMD}(x) + ptr = Base.unsafe_convert(Ptr{_HsaDbgWaveMessageAMD}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaDbgWaveMessageAMD}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaDbgWaveMessageAMD, private::Bool=false) + return (:WaveMsgInfoGen2, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaDbgWaveMessageAMD = _HsaDbgWaveMessageAMD + +struct _HsaDbgWaveMessage + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaDbgWaveMessage}, f::Symbol) + f === :MemoryVA && return Ptr{Ptr{Cvoid}}(x + 0) + f === :DbgWaveMsg && return Ptr{HsaDbgWaveMessageAMD}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaDbgWaveMessage, f::Symbol) + r = Ref{_HsaDbgWaveMessage}(x) + ptr = Base.unsafe_convert(Ptr{_HsaDbgWaveMessage}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaDbgWaveMessage}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaDbgWaveMessage, private::Bool=false) + return (:MemoryVA, :DbgWaveMsg, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaDbgWaveMessage = _HsaDbgWaveMessage + +@cenum _HSA_EVENTTYPE::UInt32 begin + HSA_EVENTTYPE_SIGNAL = 0 + HSA_EVENTTYPE_NODECHANGE = 1 + HSA_EVENTTYPE_DEVICESTATECHANGE = 2 + HSA_EVENTTYPE_HW_EXCEPTION = 3 + HSA_EVENTTYPE_SYSTEM_EVENT = 4 + HSA_EVENTTYPE_DEBUG_EVENT = 5 + HSA_EVENTTYPE_PROFILE_EVENT = 6 + HSA_EVENTTYPE_QUEUE_EVENT = 7 + HSA_EVENTTYPE_MEMORY = 8 + HSA_EVENTTYPE_MAXID = 9 + HSA_EVENTTYPE_TYPE_SIZE = 0x00000000ffffffff +end + +const HSA_EVENTTYPE = _HSA_EVENTTYPE + +@cenum _HSA_DEBUG_EVENT_TYPE::UInt32 begin + HSA_DEBUG_EVENT_TYPE_NONE = 0 + HSA_DEBUG_EVENT_TYPE_TRAP = 1 + HSA_DEBUG_EVENT_TYPE_VMFAULT = 2 + HSA_DEBUG_EVENT_TYPE_TRAP_VMFAULT = 3 +end + +const HSA_DEBUG_EVENT_TYPE = _HSA_DEBUG_EVENT_TYPE + +const HSA_EVENTID = HSAuint32 + +struct var"##Ctag#1134" + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1134"}, f::Symbol) + f === :UserData && return Ptr{Ptr{Cvoid}}(x + 0) + f === :UserDataPtrValue && return Ptr{HSAuint64}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1134", f::Symbol) + r = Ref{var"##Ctag#1134"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1134"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1134"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1134", private::Bool=false) + return (:UserData, :UserDataPtrValue, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _HsaSyncVar + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaSyncVar}, f::Symbol) + f === :SyncVar && return Ptr{var"##Ctag#1134"}(x + 0) + f === :SyncVarSize && return Ptr{HSAuint64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaSyncVar, f::Symbol) + r = Ref{_HsaSyncVar}(x) + ptr = Base.unsafe_convert(Ptr{_HsaSyncVar}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaSyncVar}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaSyncVar, private::Bool=false) + return (:SyncVar, :SyncVarSize, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaSyncVar = _HsaSyncVar + +@cenum _HSA_EVENTTYPE_NODECHANGE_FLAGS::UInt32 begin + HSA_EVENTTYPE_NODECHANGE_ADD = 0 + HSA_EVENTTYPE_NODECHANGE_REMOVE = 1 + HSA_EVENTTYPE_NODECHANGE_SIZE = 0x00000000ffffffff +end + +const HSA_EVENTTYPE_NODECHANGE_FLAGS = _HSA_EVENTTYPE_NODECHANGE_FLAGS + +struct _HsaNodeChange + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaNodeChange}, f::Symbol) + f === :Flags && return Ptr{HSA_EVENTTYPE_NODECHANGE_FLAGS}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaNodeChange, f::Symbol) + r = Ref{_HsaNodeChange}(x) + ptr = Base.unsafe_convert(Ptr{_HsaNodeChange}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaNodeChange}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaNodeChange, private::Bool=false) + return (:Flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaNodeChange = _HsaNodeChange + +@cenum _HSA_EVENTTYPE_DEVICESTATECHANGE_FLAGS::UInt32 begin + HSA_EVENTTYPE_DEVICESTATUSCHANGE_START = 0 + HSA_EVENTTYPE_DEVICESTATUSCHANGE_STOP = 1 + HSA_EVENTTYPE_DEVICESTATUSCHANGE_SIZE = 0x00000000ffffffff +end + +const HSA_EVENTTYPE_DEVICESTATECHANGE_FLAGS = _HSA_EVENTTYPE_DEVICESTATECHANGE_FLAGS + +struct _HsaDeviceStateChange + data::NTuple{12,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaDeviceStateChange}, f::Symbol) + f === :NodeId && return Ptr{HSAuint32}(x + 0) + f === :Device && return Ptr{HSA_DEVICE}(x + 4) + f === :Flags && return Ptr{HSA_EVENTTYPE_DEVICESTATECHANGE_FLAGS}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaDeviceStateChange, f::Symbol) + r = Ref{_HsaDeviceStateChange}(x) + ptr = Base.unsafe_convert(Ptr{_HsaDeviceStateChange}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaDeviceStateChange}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaDeviceStateChange, private::Bool=false) + return (:NodeId, :Device, :Flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaDeviceStateChange = _HsaDeviceStateChange + +@cenum _HSA_EVENTID_MEMORYFLAGS::UInt32 begin + HSA_EVENTID_MEMORY_RECOVERABLE = 0 + HSA_EVENTID_MEMORY_FATAL_PROCESS = 1 + HSA_EVENTID_MEMORY_FATAL_VM = 2 +end + +const HSA_EVENTID_MEMORYFLAGS = _HSA_EVENTID_MEMORYFLAGS + +struct _HsaAccessAttributeFailure + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaAccessAttributeFailure}, f::Symbol) + f === :NotPresent && return (Ptr{Cuint}(x + 0), 0, 1) + f === :ReadOnly && return (Ptr{Cuint}(x + 0), 1, 1) + f === :NoExecute && return (Ptr{Cuint}(x + 0), 2, 1) + f === :GpuAccess && return (Ptr{Cuint}(x + 0), 3, 1) + f === :ECC && return (Ptr{Cuint}(x + 0), 4, 1) + f === :Imprecise && return (Ptr{Cuint}(x + 0), 5, 1) + f === :ErrorType && return (Ptr{Cuint}(x + 0), 6, 3) + f === :Reserved && return (Ptr{Cuint}(x + 0), 9, 23) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaAccessAttributeFailure, f::Symbol) + r = Ref{_HsaAccessAttributeFailure}(x) + ptr = Base.unsafe_convert(Ptr{_HsaAccessAttributeFailure}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaAccessAttributeFailure}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaAccessAttributeFailure, private::Bool=false) + return (:NotPresent, :ReadOnly, :NoExecute, :GpuAccess, :ECC, :Imprecise, :ErrorType, + :Reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaAccessAttributeFailure = _HsaAccessAttributeFailure + +struct _HsaMemoryAccessFault + data::NTuple{20,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaMemoryAccessFault}, f::Symbol) + f === :NodeId && return Ptr{HSAuint32}(x + 0) + f === :VirtualAddress && return Ptr{HSAuint64}(x + 4) + f === :Failure && return Ptr{HsaAccessAttributeFailure}(x + 12) + f === :Flags && return Ptr{HSA_EVENTID_MEMORYFLAGS}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaMemoryAccessFault, f::Symbol) + r = Ref{_HsaMemoryAccessFault}(x) + ptr = Base.unsafe_convert(Ptr{_HsaMemoryAccessFault}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaMemoryAccessFault}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaMemoryAccessFault, private::Bool=false) + return (:NodeId, :VirtualAddress, :Failure, :Flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaMemoryAccessFault = _HsaMemoryAccessFault + +@cenum _HSA_EVENTID_HW_EXCEPTION_CAUSE::UInt32 begin + HSA_EVENTID_HW_EXCEPTION_GPU_HANG = 0 + HSA_EVENTID_HW_EXCEPTION_ECC = 1 +end + +const HSA_EVENTID_HW_EXCEPTION_CAUSE = _HSA_EVENTID_HW_EXCEPTION_CAUSE + +struct _HsaHwException + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaHwException}, f::Symbol) + f === :NodeId && return Ptr{HSAuint32}(x + 0) + f === :ResetType && return Ptr{HSAuint32}(x + 4) + f === :MemoryLost && return Ptr{HSAuint32}(x + 8) + f === :ResetCause && return Ptr{HSA_EVENTID_HW_EXCEPTION_CAUSE}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaHwException, f::Symbol) + r = Ref{_HsaHwException}(x) + ptr = Base.unsafe_convert(Ptr{_HsaHwException}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaHwException}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaHwException, private::Bool=false) + return (:NodeId, :ResetType, :MemoryLost, :ResetCause, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaHwException = _HsaHwException + +struct var"##Ctag#405" + data::NTuple{20,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#405"}, f::Symbol) + f === :SyncVar && return Ptr{HsaSyncVar}(x + 0) + f === :NodeChangeState && return Ptr{HsaNodeChange}(x + 0) + f === :DeviceState && return Ptr{HsaDeviceStateChange}(x + 0) + f === :MemoryAccessFault && return Ptr{HsaMemoryAccessFault}(x + 0) + f === :HwException && return Ptr{HsaHwException}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#405", f::Symbol) + r = Ref{var"##Ctag#405"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#405"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#405"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#405", private::Bool=false) + return (:SyncVar, :NodeChangeState, :DeviceState, :MemoryAccessFault, :HwException, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _HsaEventData + data::NTuple{44,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaEventData}, f::Symbol) + f === :EventType && return Ptr{HSA_EVENTTYPE}(x + 0) + f === :EventData && return Ptr{var"##Ctag#405"}(x + 4) + f === :HWData1 && return Ptr{HSAuint64}(x + 24) + f === :HWData2 && return Ptr{HSAuint64}(x + 32) + f === :HWData3 && return Ptr{HSAuint32}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaEventData, f::Symbol) + r = Ref{_HsaEventData}(x) + ptr = Base.unsafe_convert(Ptr{_HsaEventData}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaEventData}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaEventData, private::Bool=false) + return (:EventType, :EventData, :HWData1, :HWData2, :HWData3, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaEventData = _HsaEventData + +struct _HsaEventDescriptor + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaEventDescriptor}, f::Symbol) + f === :EventType && return Ptr{HSA_EVENTTYPE}(x + 0) + f === :NodeId && return Ptr{HSAuint32}(x + 4) + f === :SyncVar && return Ptr{HsaSyncVar}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaEventDescriptor, f::Symbol) + r = Ref{_HsaEventDescriptor}(x) + ptr = Base.unsafe_convert(Ptr{_HsaEventDescriptor}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaEventDescriptor}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaEventDescriptor, private::Bool=false) + return (:EventType, :NodeId, :SyncVar, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaEventDescriptor = _HsaEventDescriptor + +struct _HsaEvent + data::NTuple{48,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaEvent}, f::Symbol) + f === :EventId && return Ptr{HSA_EVENTID}(x + 0) + f === :EventData && return Ptr{HsaEventData}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaEvent, f::Symbol) + r = Ref{_HsaEvent}(x) + ptr = Base.unsafe_convert(Ptr{_HsaEvent}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaEvent}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaEvent, private::Bool=false) + return (:EventId, :EventData, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaEvent = _HsaEvent + +@cenum _HsaEventTimeout::UInt32 begin + HSA_EVENTTIMEOUT_IMMEDIATE = 0 + HSA_EVENTTIMEOUT_INFINITE = 0x00000000ffffffff +end + +const HsaEventTimeOut = _HsaEventTimeout + +struct _HsaClockCounters + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaClockCounters}, f::Symbol) + f === :GPUClockCounter && return Ptr{HSAuint64}(x + 0) + f === :CPUClockCounter && return Ptr{HSAuint64}(x + 8) + f === :SystemClockCounter && return Ptr{HSAuint64}(x + 16) + f === :SystemClockFrequencyHz && return Ptr{HSAuint64}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaClockCounters, f::Symbol) + r = Ref{_HsaClockCounters}(x) + ptr = Base.unsafe_convert(Ptr{_HsaClockCounters}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaClockCounters}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaClockCounters, private::Bool=false) + return (:GPUClockCounter, :CPUClockCounter, :SystemClockCounter, + :SystemClockFrequencyHz, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaClockCounters = _HsaClockCounters + +@cenum _HSA_PROFILE_TYPE::UInt32 begin + HSA_PROFILE_TYPE_PRIVILEGED_IMMEDIATE = 0 + HSA_PROFILE_TYPE_PRIVILEGED_STREAMING = 1 + HSA_PROFILE_TYPE_NONPRIV_IMMEDIATE = 2 + HSA_PROFILE_TYPE_NONPRIV_STREAMING = 3 + HSA_PROFILE_TYPE_NUM = 4 + HSA_PROFILE_TYPE_SIZE = 0x00000000ffffffff +end + +const HSA_PROFILE_TYPE = _HSA_PROFILE_TYPE + +struct _HsaCounterFlags + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaCounterFlags}, f::Symbol) + f === + Symbol("union _HsaCounterFlags::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:1287:5)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaCounterFlags, f::Symbol) + r = Ref{_HsaCounterFlags}(x) + ptr = Base.unsafe_convert(Ptr{_HsaCounterFlags}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaCounterFlags}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaCounterFlags, private::Bool=false) + return (Symbol("union _HsaCounterFlags::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsakmt/hsakmttypes.h:1287:5)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaCounterFlags = _HsaCounterFlags + +struct _HsaCounter + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaCounter}, f::Symbol) + f === :Type && return Ptr{HSA_PROFILE_TYPE}(x + 0) + f === :CounterId && return Ptr{HSAuint64}(x + 4) + f === :CounterSizeInBits && return Ptr{HSAuint32}(x + 12) + f === :CounterMask && return Ptr{HSAuint64}(x + 16) + f === :Flags && return Ptr{HsaCounterFlags}(x + 24) + f === :BlockIndex && return Ptr{HSAuint32}(x + 28) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaCounter, f::Symbol) + r = Ref{_HsaCounter}(x) + ptr = Base.unsafe_convert(Ptr{_HsaCounter}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaCounter}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaCounter, private::Bool=false) + return (:Type, :CounterId, :CounterSizeInBits, :CounterMask, :Flags, :BlockIndex, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaCounter = _HsaCounter + +struct _HsaCounterBlockProperties + data::NTuple{56,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaCounterBlockProperties}, f::Symbol) + f === :BlockId && return Ptr{HSA_UUID}(x + 0) + f === :NumCounters && return Ptr{HSAuint32}(x + 16) + f === :NumConcurrent && return Ptr{HSAuint32}(x + 20) + f === :Counters && return Ptr{NTuple{1,HsaCounter}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaCounterBlockProperties, f::Symbol) + r = Ref{_HsaCounterBlockProperties}(x) + ptr = Base.unsafe_convert(Ptr{_HsaCounterBlockProperties}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaCounterBlockProperties}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaCounterBlockProperties, private::Bool=false) + return (:BlockId, :NumCounters, :NumConcurrent, :Counters, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaCounterBlockProperties = _HsaCounterBlockProperties + +struct _HsaCounterProperties + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaCounterProperties}, f::Symbol) + f === :NumBlocks && return Ptr{HSAuint32}(x + 0) + f === :NumConcurrent && return Ptr{HSAuint32}(x + 4) + f === :Blocks && return Ptr{NTuple{1,HsaCounterBlockProperties}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaCounterProperties, f::Symbol) + r = Ref{_HsaCounterProperties}(x) + ptr = Base.unsafe_convert(Ptr{_HsaCounterProperties}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaCounterProperties}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaCounterProperties, private::Bool=false) + return (:NumBlocks, :NumConcurrent, :Blocks, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaCounterProperties = _HsaCounterProperties + +const HSATraceId = HSAuint64 + +struct _HsaPmcTraceRoot + data::NTuple{20,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaPmcTraceRoot}, f::Symbol) + f === :TraceBufferMinSizeBytes && return Ptr{HSAuint64}(x + 0) + f === :NumberOfPasses && return Ptr{HSAuint32}(x + 8) + f === :TraceId && return Ptr{HSATraceId}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaPmcTraceRoot, f::Symbol) + r = Ref{_HsaPmcTraceRoot}(x) + ptr = Base.unsafe_convert(Ptr{_HsaPmcTraceRoot}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaPmcTraceRoot}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaPmcTraceRoot, private::Bool=false) + return (:TraceBufferMinSizeBytes, :NumberOfPasses, :TraceId, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaPmcTraceRoot = _HsaPmcTraceRoot + +struct _HsaGpuTileConfig + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaGpuTileConfig}, f::Symbol) + f === :TileConfig && return Ptr{Ptr{HSAuint32}}(x + 0) + f === :MacroTileConfig && return Ptr{Ptr{HSAuint32}}(x + 8) + f === :NumTileConfigs && return Ptr{HSAuint32}(x + 16) + f === :NumMacroTileConfigs && return Ptr{HSAuint32}(x + 20) + f === :GbAddrConfig && return Ptr{HSAuint32}(x + 24) + f === :NumBanks && return Ptr{HSAuint32}(x + 28) + f === :NumRanks && return Ptr{HSAuint32}(x + 32) + f === :Reserved && return Ptr{NTuple{7,HSAuint32}}(x + 36) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaGpuTileConfig, f::Symbol) + r = Ref{_HsaGpuTileConfig}(x) + ptr = Base.unsafe_convert(Ptr{_HsaGpuTileConfig}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaGpuTileConfig}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaGpuTileConfig, private::Bool=false) + return (:TileConfig, :MacroTileConfig, :NumTileConfigs, :NumMacroTileConfigs, + :GbAddrConfig, :NumBanks, :NumRanks, :Reserved, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaGpuTileConfig = _HsaGpuTileConfig + +@cenum _HSA_POINTER_TYPE::UInt32 begin + HSA_POINTER_UNKNOWN = 0 + HSA_POINTER_ALLOCATED = 1 + HSA_POINTER_REGISTERED_USER = 2 + HSA_POINTER_REGISTERED_GRAPHICS = 3 + HSA_POINTER_REGISTERED_SHARED = 4 + HSA_POINTER_RESERVED_ADDR = 5 +end + +const HSA_POINTER_TYPE = _HSA_POINTER_TYPE + +struct _HsaPointerInfo + data::NTuple{68,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaPointerInfo}, f::Symbol) + f === :Type && return Ptr{HSA_POINTER_TYPE}(x + 0) + f === :Node && return Ptr{HSAuint32}(x + 4) + f === :MemFlags && return Ptr{HsaMemFlags}(x + 8) + f === :CPUAddress && return Ptr{Ptr{Cvoid}}(x + 12) + f === :GPUAddress && return Ptr{HSAuint64}(x + 20) + f === :SizeInBytes && return Ptr{HSAuint64}(x + 28) + f === :NRegisteredNodes && return Ptr{HSAuint32}(x + 36) + f === :NMappedNodes && return Ptr{HSAuint32}(x + 40) + f === :RegisteredNodes && return Ptr{Ptr{HSAuint32}}(x + 44) + f === :MappedNodes && return Ptr{Ptr{HSAuint32}}(x + 52) + f === :UserData && return Ptr{Ptr{Cvoid}}(x + 60) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaPointerInfo, f::Symbol) + r = Ref{_HsaPointerInfo}(x) + ptr = Base.unsafe_convert(Ptr{_HsaPointerInfo}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaPointerInfo}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaPointerInfo, private::Bool=false) + return (:Type, :Node, :MemFlags, :CPUAddress, :GPUAddress, :SizeInBytes, + :NRegisteredNodes, :NMappedNodes, :RegisteredNodes, :MappedNodes, :UserData, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaPointerInfo = _HsaPointerInfo + +const HsaSharedMemoryHandle = NTuple{8,HSAuint32} + +struct _HsaMemoryRange + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaMemoryRange}, f::Symbol) + f === :MemoryAddress && return Ptr{Ptr{Cvoid}}(x + 0) + f === :SizeInBytes && return Ptr{HSAuint64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaMemoryRange, f::Symbol) + r = Ref{_HsaMemoryRange}(x) + ptr = Base.unsafe_convert(Ptr{_HsaMemoryRange}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaMemoryRange}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaMemoryRange, private::Bool=false) + return (:MemoryAddress, :SizeInBytes, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaMemoryRange = _HsaMemoryRange + +@cenum _HSA_SVM_FLAGS::UInt32 begin + HSA_SVM_FLAG_HOST_ACCESS = 1 + HSA_SVM_FLAG_COHERENT = 2 + HSA_SVM_FLAG_HIVE_LOCAL = 4 + HSA_SVM_FLAG_GPU_RO = 8 + HSA_SVM_FLAG_GPU_EXEC = 16 + HSA_SVM_FLAG_GPU_READ_MOSTLY = 32 + HSA_SVM_FLAG_GPU_ALWAYS_MAPPED = 64 + HSA_SVM_FLAG_EXT_COHERENT = 128 +end + +const HSA_SVM_FLAGS = _HSA_SVM_FLAGS + +@cenum _HSA_SVM_ATTR_TYPE::UInt32 begin + HSA_SVM_ATTR_PREFERRED_LOC = 0 + HSA_SVM_ATTR_PREFETCH_LOC = 1 + HSA_SVM_ATTR_ACCESS = 2 + HSA_SVM_ATTR_ACCESS_IN_PLACE = 3 + HSA_SVM_ATTR_NO_ACCESS = 4 + HSA_SVM_ATTR_SET_FLAGS = 5 + HSA_SVM_ATTR_CLR_FLAGS = 6 + HSA_SVM_ATTR_GRANULARITY = 7 +end + +const HSA_SVM_ATTR_TYPE = _HSA_SVM_ATTR_TYPE + +struct _HSA_SVM_ATTRIBUTE + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{_HSA_SVM_ATTRIBUTE}, f::Symbol) + f === :type && return Ptr{HSAuint32}(x + 0) + f === :value && return Ptr{HSAuint32}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::_HSA_SVM_ATTRIBUTE, f::Symbol) + r = Ref{_HSA_SVM_ATTRIBUTE}(x) + ptr = Base.unsafe_convert(Ptr{_HSA_SVM_ATTRIBUTE}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HSA_SVM_ATTRIBUTE}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HSA_SVM_ATTRIBUTE, private::Bool=false) + return (:type, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HSA_SVM_ATTRIBUTE = _HSA_SVM_ATTRIBUTE + +@cenum _HSA_SMI_EVENT::UInt32 begin + HSA_SMI_EVENT_NONE = 0 + HSA_SMI_EVENT_VMFAULT = 1 + HSA_SMI_EVENT_THERMAL_THROTTLE = 2 + HSA_SMI_EVENT_GPU_PRE_RESET = 3 + HSA_SMI_EVENT_GPU_POST_RESET = 4 + HSA_SMI_EVENT_MIGRATE_START = 5 + HSA_SMI_EVENT_MIGRATE_END = 6 + HSA_SMI_EVENT_PAGE_FAULT_START = 7 + HSA_SMI_EVENT_PAGE_FAULT_END = 8 + HSA_SMI_EVENT_QUEUE_EVICTION = 9 + HSA_SMI_EVENT_QUEUE_RESTORE = 10 + HSA_SMI_EVENT_UNMAP_FROM_GPU = 11 + HSA_SMI_EVENT_INDEX_MAX = 12 + HSA_SMI_EVENT_ALL_PROCESS = 64 +end + +const HSA_EVENT_TYPE = _HSA_SMI_EVENT + +@cenum _HSA_MIGRATE_TRIGGERS::UInt32 begin + HSA_MIGRATE_TRIGGER_PREFETCH = 0 + HSA_MIGRATE_TRIGGER_PAGEFAULT_GPU = 1 + HSA_MIGRATE_TRIGGER_PAGEFAULT_CPU = 2 + HSA_MIGRATE_TRIGGER_TTM_EVICTION = 3 +end + +const HSA_MIGRATE_TRIGGERS = _HSA_MIGRATE_TRIGGERS + +@cenum _HSA_QUEUE_EVICTION_TRIGGERS::UInt32 begin + HSA_QUEUE_EVICTION_TRIGGER_SVM = 0 + HSA_QUEUE_EVICTION_TRIGGER_USERPTR = 1 + HSA_QUEUE_EVICTION_TRIGGER_TTM = 2 + HSA_QUEUE_EVICTION_TRIGGER_SUSPEND = 3 + HSA_QUEUE_EVICTION_CRIU_CHECKPOINT = 4 + HSA_QUEUE_EVICTION_CRIU_RESTORE = 5 +end + +const HSA_QUEUE_EVICTION_TRIGGERS = _HSA_QUEUE_EVICTION_TRIGGERS + +@cenum _HSA_SVM_UNMAP_TRIGGERS::UInt32 begin + HSA_SVM_UNMAP_TRIGGER_MMU_NOTIFY = 0 + HSA_SVM_UNMAP_TRIGGER_MMU_NOTIFY_MIGRATE = 1 + HSA_SVM_UNMAP_TRIGGER_UNMAP_FROM_CPU = 2 +end + +const HSA_SVM_UNMAP_TRIGGERS = _HSA_SVM_UNMAP_TRIGGERS + +const HsaAMDGPUDeviceHandle = Ptr{Cvoid} + +const HsaPcSamplingTraceId = HSAuint32 + +@cenum _HSA_PC_SAMPLING_METHOD_KIND::UInt32 begin + HSA_PC_SAMPLING_METHOD_KIND_HOSTTRAP_V1 = 1 + HSA_PC_SAMPLING_METHOD_KIND_STOCHASTIC_V1 = 2 +end + +const HSA_PC_SAMPLING_METHOD_KIND = _HSA_PC_SAMPLING_METHOD_KIND + +@cenum _HSA_PC_SAMPLING_UNITS::UInt32 begin + HSA_PC_SAMPLING_UNIT_INTERVAL_MICROSECONDS = 0 + HSA_PC_SAMPLING_UNIT_INTERVAL_CYCLES = 1 + HSA_PC_SAMPLING_UNIT_INTERVAL_INSTRUCTIONS = 2 +end + +const HSA_PC_SAMPLING_UNIT_INTERVAL = _HSA_PC_SAMPLING_UNITS + +struct _HsaPcSamplingInfo + data::NTuple{40,UInt8} +end + +function Base.getproperty(x::Ptr{_HsaPcSamplingInfo}, f::Symbol) + f === :value && return Ptr{HSAuint64}(x + 0) + f === :value_min && return Ptr{HSAuint64}(x + 8) + f === :value_max && return Ptr{HSAuint64}(x + 16) + f === :flags && return Ptr{HSAuint64}(x + 24) + f === :method && return Ptr{HSA_PC_SAMPLING_METHOD_KIND}(x + 32) + f === :units && return Ptr{HSA_PC_SAMPLING_UNIT_INTERVAL}(x + 36) + return getfield(x, f) +end + +function Base.getproperty(x::_HsaPcSamplingInfo, f::Symbol) + r = Ref{_HsaPcSamplingInfo}(x) + ptr = Base.unsafe_convert(Ptr{_HsaPcSamplingInfo}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_HsaPcSamplingInfo}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_HsaPcSamplingInfo, private::Bool=false) + return (:value, :value_min, :value_max, :flags, :method, :units, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HsaPcSamplingInfo = _HsaPcSamplingInfo + +struct HSA_REGISTER_MEM_FLAGS + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{HSA_REGISTER_MEM_FLAGS}, f::Symbol) + f === :Value && return Ptr{HSAuint32}(x + 0) + f === :ui32 && return Ptr{var"##Ctag#424"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::HSA_REGISTER_MEM_FLAGS, f::Symbol) + r = Ref{HSA_REGISTER_MEM_FLAGS}(x) + ptr = Base.unsafe_convert(Ptr{HSA_REGISTER_MEM_FLAGS}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HSA_REGISTER_MEM_FLAGS}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HSA_REGISTER_MEM_FLAGS, private::Bool=false) + return (:Value, :ui32, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum rocprofiler_agent_version_t::UInt32 begin + ROCPROFILER_AGENT_INFO_VERSION_NONE = 0 + ROCPROFILER_AGENT_INFO_VERSION_0 = 1 + ROCPROFILER_AGENT_INFO_VERSION_LAST = 2 +end + +struct rocprofiler_agent_cache_t + data::NTuple{40,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_agent_cache_t}, f::Symbol) + f === :processor_id_low && return Ptr{UInt64}(x + 0) + f === :size && return Ptr{UInt64}(x + 8) + f === :level && return Ptr{UInt32}(x + 16) + f === :cache_line_size && return Ptr{UInt32}(x + 20) + f === :cache_lines_per_tag && return Ptr{UInt32}(x + 24) + f === :association && return Ptr{UInt32}(x + 28) + f === :latency && return Ptr{UInt32}(x + 32) + f === :type && return Ptr{HsaCacheType}(x + 36) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_agent_cache_t, f::Symbol) + r = Ref{rocprofiler_agent_cache_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_agent_cache_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_agent_cache_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_agent_cache_t, private::Bool=false) + return (:processor_id_low, :size, :level, :cache_line_size, :cache_lines_per_tag, + :association, :latency, :type, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_agent_io_link_t + data::NTuple{48,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_agent_io_link_t}, f::Symbol) + f === :type && return Ptr{HSA_IOLINKTYPE}(x + 0) + f === :version_major && return Ptr{UInt32}(x + 4) + f === :version_minor && return Ptr{UInt32}(x + 8) + f === :node_from && return Ptr{UInt32}(x + 12) + f === :node_to && return Ptr{UInt32}(x + 16) + f === :weight && return Ptr{UInt32}(x + 20) + f === :min_latency && return Ptr{UInt32}(x + 24) + f === :max_latency && return Ptr{UInt32}(x + 28) + f === :min_bandwidth && return Ptr{UInt32}(x + 32) + f === :max_bandwidth && return Ptr{UInt32}(x + 36) + f === :recommended_transfer_size && return Ptr{UInt32}(x + 40) + f === :flags && return Ptr{HSA_LINKPROPERTY}(x + 44) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_agent_io_link_t, f::Symbol) + r = Ref{rocprofiler_agent_io_link_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_agent_io_link_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_agent_io_link_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_agent_io_link_t, private::Bool=false) + return (:type, :version_major, :version_minor, :node_from, :node_to, :weight, + :min_latency, :max_latency, :min_bandwidth, :max_bandwidth, + :recommended_transfer_size, :flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_agent_mem_bank_t + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_agent_mem_bank_t}, f::Symbol) + f === :heap_type && return Ptr{HSA_HEAPTYPE}(x + 0) + f === :flags && return Ptr{HSA_MEMORYPROPERTY}(x + 4) + f === :width && return Ptr{UInt32}(x + 8) + f === :mem_clk_max && return Ptr{UInt32}(x + 12) + f === :size_in_bytes && return Ptr{UInt64}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_agent_mem_bank_t, f::Symbol) + r = Ref{rocprofiler_agent_mem_bank_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_agent_mem_bank_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_agent_mem_bank_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_agent_mem_bank_t, private::Bool=false) + return (:heap_type, :flags, :width, :mem_clk_max, :size_in_bytes, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_agent_runtime_visiblity_t + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_agent_runtime_visiblity_t}, f::Symbol) + f === :hsa && return (Ptr{UInt32}(x + 0), 0, 1) + f === :hip && return (Ptr{UInt32}(x + 0), 1, 1) + f === :rccl && return (Ptr{UInt32}(x + 0), 2, 1) + f === :rocdecode && return (Ptr{UInt32}(x + 0), 3, 1) + f === :reserved && return (Ptr{UInt32}(x + 0), 4, 28) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_agent_runtime_visiblity_t, f::Symbol) + r = Ref{rocprofiler_agent_runtime_visiblity_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_agent_runtime_visiblity_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_agent_runtime_visiblity_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_agent_runtime_visiblity_t, private::Bool=false) + return (:hsa, :hip, :rccl, :rocdecode, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_agent_v0_t + data::NTuple{304,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_agent_v0_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :id && return Ptr{rocprofiler_agent_id_t}(x + 8) + f === :type && return Ptr{rocprofiler_agent_type_t}(x + 16) + f === :cpu_cores_count && return Ptr{UInt32}(x + 20) + f === :simd_count && return Ptr{UInt32}(x + 24) + f === :mem_banks_count && return Ptr{UInt32}(x + 28) + f === :caches_count && return Ptr{UInt32}(x + 32) + f === :io_links_count && return Ptr{UInt32}(x + 36) + f === :cpu_core_id_base && return Ptr{UInt32}(x + 40) + f === :simd_id_base && return Ptr{UInt32}(x + 44) + f === :max_waves_per_simd && return Ptr{UInt32}(x + 48) + f === :lds_size_in_kb && return Ptr{UInt32}(x + 52) + f === :gds_size_in_kb && return Ptr{UInt32}(x + 56) + f === :num_gws && return Ptr{UInt32}(x + 60) + f === :wave_front_size && return Ptr{UInt32}(x + 64) + f === :num_xcc && return Ptr{UInt32}(x + 68) + f === :cu_count && return Ptr{UInt32}(x + 72) + f === :array_count && return Ptr{UInt32}(x + 76) + f === :num_shader_banks && return Ptr{UInt32}(x + 80) + f === :simd_arrays_per_engine && return Ptr{UInt32}(x + 84) + f === :cu_per_simd_array && return Ptr{UInt32}(x + 88) + f === :simd_per_cu && return Ptr{UInt32}(x + 92) + f === :max_slots_scratch_cu && return Ptr{UInt32}(x + 96) + f === :gfx_target_version && return Ptr{UInt32}(x + 100) + f === :vendor_id && return Ptr{UInt16}(x + 104) + f === :device_id && return Ptr{UInt16}(x + 106) + f === :location_id && return Ptr{UInt32}(x + 108) + f === :domain && return Ptr{UInt32}(x + 112) + f === :drm_render_minor && return Ptr{UInt32}(x + 116) + f === :num_sdma_engines && return Ptr{UInt32}(x + 120) + f === :num_sdma_xgmi_engines && return Ptr{UInt32}(x + 124) + f === :num_sdma_queues_per_engine && return Ptr{UInt32}(x + 128) + f === :num_cp_queues && return Ptr{UInt32}(x + 132) + f === :max_engine_clk_ccompute && return Ptr{UInt32}(x + 136) + f === :max_engine_clk_fcompute && return Ptr{UInt32}(x + 140) + f === :sdma_fw_version && return Ptr{HSA_ENGINE_VERSION}(x + 144) + f === :fw_version && return Ptr{HSA_ENGINE_ID}(x + 148) + f === :capability && return Ptr{HSA_CAPABILITY}(x + 152) + f === :cu_per_engine && return Ptr{UInt32}(x + 156) + f === :max_waves_per_cu && return Ptr{UInt32}(x + 160) + f === :family_id && return Ptr{UInt32}(x + 164) + f === :workgroup_max_size && return Ptr{UInt32}(x + 168) + f === :grid_max_size && return Ptr{UInt32}(x + 172) + f === :local_mem_size && return Ptr{UInt64}(x + 176) + f === :hive_id && return Ptr{UInt64}(x + 184) + f === :gpu_id && return Ptr{UInt64}(x + 192) + f === :workgroup_max_dim && return Ptr{rocprofiler_dim3_t}(x + 200) + f === :grid_max_dim && return Ptr{rocprofiler_dim3_t}(x + 212) + f === :mem_banks && return Ptr{Ptr{rocprofiler_agent_mem_bank_t}}(x + 224) + f === :caches && return Ptr{Ptr{rocprofiler_agent_cache_t}}(x + 232) + f === :io_links && return Ptr{Ptr{rocprofiler_agent_io_link_t}}(x + 240) + f === :name && return Ptr{Ptr{Cchar}}(x + 248) + f === :vendor_name && return Ptr{Ptr{Cchar}}(x + 256) + f === :product_name && return Ptr{Ptr{Cchar}}(x + 264) + f === :model_name && return Ptr{Ptr{Cchar}}(x + 272) + f === :node_id && return Ptr{UInt32}(x + 280) + f === :logical_node_id && return Ptr{Int32}(x + 284) + f === :logical_node_type_id && return Ptr{Int32}(x + 288) + f === :runtime_visibility && return Ptr{rocprofiler_agent_runtime_visiblity_t}(x + 292) + f === :uuid && return Ptr{rocprofiler_uuid_t}(x + 296) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_agent_v0_t, f::Symbol) + r = Ref{rocprofiler_agent_v0_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_agent_v0_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_agent_v0_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_agent_v0_t, private::Bool=false) + return (:size, :id, :type, :cpu_cores_count, :simd_count, :mem_banks_count, + :caches_count, :io_links_count, :cpu_core_id_base, :simd_id_base, + :max_waves_per_simd, :lds_size_in_kb, :gds_size_in_kb, :num_gws, + :wave_front_size, :num_xcc, :cu_count, :array_count, :num_shader_banks, + :simd_arrays_per_engine, :cu_per_simd_array, :simd_per_cu, + :max_slots_scratch_cu, :gfx_target_version, :vendor_id, :device_id, + :location_id, :domain, :drm_render_minor, :num_sdma_engines, + :num_sdma_xgmi_engines, :num_sdma_queues_per_engine, :num_cp_queues, + :max_engine_clk_ccompute, :max_engine_clk_fcompute, :sdma_fw_version, + :fw_version, :capability, :cu_per_engine, :max_waves_per_cu, :family_id, + :workgroup_max_size, :grid_max_size, :local_mem_size, :hive_id, :gpu_id, + :workgroup_max_dim, :grid_max_dim, :mem_banks, :caches, :io_links, :name, + :vendor_name, :product_name, :model_name, :node_id, :logical_node_id, + :logical_node_type_id, :runtime_visibility, :uuid, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const rocprofiler_agent_t = rocprofiler_agent_v0_t + +# typedef rocprofiler_status_t ( * rocprofiler_query_available_agents_cb_t ) ( rocprofiler_agent_version_t version , const void * * agents , size_t num_agents , void * user_data ) +const rocprofiler_query_available_agents_cb_t = Ptr{Cvoid} + +function rocprofiler_query_available_agents(version, callback, agent_size, user_data) + @ccall librocprofiler_sdk_tool.rocprofiler_query_available_agents(version::rocprofiler_agent_version_t, + callback::rocprofiler_query_available_agents_cb_t, + agent_size::Csize_t, + user_data::Ptr{Cvoid})::rocprofiler_status_t +end + +# typedef void ( * rocprofiler_buffer_tracing_cb_t ) ( rocprofiler_context_id_t context , rocprofiler_buffer_id_t buffer_id , rocprofiler_record_header_t * * headers , size_t num_headers , void * data , uint64_t drop_count ) +const rocprofiler_buffer_tracing_cb_t = Ptr{Cvoid} + +function rocprofiler_create_buffer(context, size, watermark, policy, callback, + callback_data, buffer_id) + @ccall librocprofiler_sdk_tool.rocprofiler_create_buffer(context::rocprofiler_context_id_t, + size::Csize_t, + watermark::Csize_t, + policy::rocprofiler_buffer_policy_t, + callback::rocprofiler_buffer_tracing_cb_t, + callback_data::Ptr{Cvoid}, + buffer_id::Ptr{rocprofiler_buffer_id_t})::rocprofiler_status_t +end + +function rocprofiler_destroy_buffer(buffer_id) + @ccall librocprofiler_sdk_tool.rocprofiler_destroy_buffer(buffer_id::rocprofiler_buffer_id_t)::rocprofiler_status_t +end + +function rocprofiler_flush_buffer(buffer_id) + @ccall librocprofiler_sdk_tool.rocprofiler_flush_buffer(buffer_id::rocprofiler_buffer_id_t)::rocprofiler_status_t +end + +# no prototype is found for this function at amd_hip_runtime.h:54:13, please use with caution +function amd_dbgapi_get_build_name() + @ccall librocprofiler_sdk_tool.amd_dbgapi_get_build_name()::Ptr{Cchar} +end + +# no prototype is found for this function at amd_hip_runtime.h:63:13, please use with caution +function amd_dbgapi_get_git_hash() + @ccall librocprofiler_sdk_tool.amd_dbgapi_get_git_hash()::Ptr{Cchar} +end + +# no prototype is found for this function at amd_hip_runtime.h:72:8, please use with caution +function amd_dbgapi_get_build_id() + @ccall librocprofiler_sdk_tool.amd_dbgapi_get_build_id()::Csize_t +end + +@cenum hipJitOption::UInt32 begin + hipJitOptionMaxRegisters = 0 + hipJitOptionThreadsPerBlock = 1 + hipJitOptionWallTime = 2 + hipJitOptionInfoLogBuffer = 3 + hipJitOptionInfoLogBufferSizeBytes = 4 + hipJitOptionErrorLogBuffer = 5 + hipJitOptionErrorLogBufferSizeBytes = 6 + hipJitOptionOptimizationLevel = 7 + hipJitOptionTargetFromContext = 8 + hipJitOptionTarget = 9 + hipJitOptionFallbackStrategy = 10 + hipJitOptionGenerateDebugInfo = 11 + hipJitOptionLogVerbose = 12 + hipJitOptionGenerateLineInfo = 13 + hipJitOptionCacheMode = 14 + hipJitOptionSm3xOpt = 15 + hipJitOptionFastCompile = 16 + hipJitOptionGlobalSymbolNames = 17 + hipJitOptionGlobalSymbolAddresses = 18 + hipJitOptionGlobalSymbolCount = 19 + hipJitOptionLto = 20 + hipJitOptionFtz = 21 + hipJitOptionPrecDiv = 22 + hipJitOptionPrecSqrt = 23 + hipJitOptionFma = 24 + hipJitOptionPositionIndependentCode = 25 + hipJitOptionMinCTAPerSM = 26 + hipJitOptionMaxThreadsPerBlock = 27 + hipJitOptionOverrideDirectiveValues = 28 + hipJitOptionNumOptions = 29 + hipJitOptionIRtoISAOptExt = 10000 + hipJitOptionIRtoISAOptCountExt = 10001 +end + +@cenum hipJitInputType::UInt32 begin + hipJitInputCubin = 0 + hipJitInputPtx = 1 + hipJitInputFatBinary = 2 + hipJitInputObject = 3 + hipJitInputLibrary = 4 + hipJitInputNvvm = 5 + hipJitNumLegacyInputTypes = 6 + hipJitInputLLVMBitcode = 100 + hipJitInputLLVMBundledBitcode = 101 + hipJitInputLLVMArchivesOfBundledBitcode = 102 + hipJitInputSpirv = 103 + hipJitNumInputTypes = 10 +end + +@cenum hipJitCacheMode::UInt32 begin + hipJitCacheOptionNone = 0 + hipJitCacheOptionCG = 1 + hipJitCacheOptionCA = 2 +end + +@cenum hipJitFallback::UInt32 begin + hipJitPreferPTX = 0 + hipJitPreferBinary = 1 +end + +@cenum var"##Ctag#278"::UInt32 begin + HIP_SUCCESS = 0 + HIP_ERROR_INVALID_VALUE = 1 + HIP_ERROR_NOT_INITIALIZED = 2 + HIP_ERROR_LAUNCH_OUT_OF_RESOURCES = 3 +end + +@cenum hipMemoryType::UInt32 begin + hipMemoryTypeUnregistered = 0 + hipMemoryTypeHost = 1 + hipMemoryTypeDevice = 2 + hipMemoryTypeManaged = 3 + hipMemoryTypeArray = 10 + hipMemoryTypeUnified = 11 +end + +struct hipPointerAttribute_t + type::hipMemoryType + device::Cint + devicePointer::Ptr{Cvoid} + hostPointer::Ptr{Cvoid} + isManaged::Cint + allocationFlags::Cuint +end + +@cenum hipDeviceAttribute_t::UInt32 begin + hipDeviceAttributeCudaCompatibleBegin = 0 + hipDeviceAttributeEccEnabled = 0 + hipDeviceAttributeAccessPolicyMaxWindowSize = 1 + hipDeviceAttributeAsyncEngineCount = 2 + hipDeviceAttributeCanMapHostMemory = 3 + hipDeviceAttributeCanUseHostPointerForRegisteredMem = 4 + hipDeviceAttributeClockRate = 5 + hipDeviceAttributeComputeMode = 6 + hipDeviceAttributeComputePreemptionSupported = 7 + hipDeviceAttributeConcurrentKernels = 8 + hipDeviceAttributeConcurrentManagedAccess = 9 + hipDeviceAttributeCooperativeLaunch = 10 + hipDeviceAttributeCooperativeMultiDeviceLaunch = 11 + hipDeviceAttributeDeviceOverlap = 12 + hipDeviceAttributeDirectManagedMemAccessFromHost = 13 + hipDeviceAttributeGlobalL1CacheSupported = 14 + hipDeviceAttributeHostNativeAtomicSupported = 15 + hipDeviceAttributeIntegrated = 16 + hipDeviceAttributeIsMultiGpuBoard = 17 + hipDeviceAttributeKernelExecTimeout = 18 + hipDeviceAttributeL2CacheSize = 19 + hipDeviceAttributeLocalL1CacheSupported = 20 + hipDeviceAttributeLuid = 21 + hipDeviceAttributeLuidDeviceNodeMask = 22 + hipDeviceAttributeComputeCapabilityMajor = 23 + hipDeviceAttributeManagedMemory = 24 + hipDeviceAttributeMaxBlocksPerMultiProcessor = 25 + hipDeviceAttributeMaxBlockDimX = 26 + hipDeviceAttributeMaxBlockDimY = 27 + hipDeviceAttributeMaxBlockDimZ = 28 + hipDeviceAttributeMaxGridDimX = 29 + hipDeviceAttributeMaxGridDimY = 30 + hipDeviceAttributeMaxGridDimZ = 31 + hipDeviceAttributeMaxSurface1D = 32 + hipDeviceAttributeMaxSurface1DLayered = 33 + hipDeviceAttributeMaxSurface2D = 34 + hipDeviceAttributeMaxSurface2DLayered = 35 + hipDeviceAttributeMaxSurface3D = 36 + hipDeviceAttributeMaxSurfaceCubemap = 37 + hipDeviceAttributeMaxSurfaceCubemapLayered = 38 + hipDeviceAttributeMaxTexture1DWidth = 39 + hipDeviceAttributeMaxTexture1DLayered = 40 + hipDeviceAttributeMaxTexture1DLinear = 41 + hipDeviceAttributeMaxTexture1DMipmap = 42 + hipDeviceAttributeMaxTexture2DWidth = 43 + hipDeviceAttributeMaxTexture2DHeight = 44 + hipDeviceAttributeMaxTexture2DGather = 45 + hipDeviceAttributeMaxTexture2DLayered = 46 + hipDeviceAttributeMaxTexture2DLinear = 47 + hipDeviceAttributeMaxTexture2DMipmap = 48 + hipDeviceAttributeMaxTexture3DWidth = 49 + hipDeviceAttributeMaxTexture3DHeight = 50 + hipDeviceAttributeMaxTexture3DDepth = 51 + hipDeviceAttributeMaxTexture3DAlt = 52 + hipDeviceAttributeMaxTextureCubemap = 53 + hipDeviceAttributeMaxTextureCubemapLayered = 54 + hipDeviceAttributeMaxThreadsDim = 55 + hipDeviceAttributeMaxThreadsPerBlock = 56 + hipDeviceAttributeMaxThreadsPerMultiProcessor = 57 + hipDeviceAttributeMaxPitch = 58 + hipDeviceAttributeMemoryBusWidth = 59 + hipDeviceAttributeMemoryClockRate = 60 + hipDeviceAttributeComputeCapabilityMinor = 61 + hipDeviceAttributeMultiGpuBoardGroupID = 62 + hipDeviceAttributeMultiprocessorCount = 63 + hipDeviceAttributeUnused1 = 64 + hipDeviceAttributePageableMemoryAccess = 65 + hipDeviceAttributePageableMemoryAccessUsesHostPageTables = 66 + hipDeviceAttributePciBusId = 67 + hipDeviceAttributePciDeviceId = 68 + hipDeviceAttributePciDomainId = 69 + hipDeviceAttributePciDomainID = 69 + hipDeviceAttributePersistingL2CacheMaxSize = 70 + hipDeviceAttributeMaxRegistersPerBlock = 71 + hipDeviceAttributeMaxRegistersPerMultiprocessor = 72 + hipDeviceAttributeReservedSharedMemPerBlock = 73 + hipDeviceAttributeMaxSharedMemoryPerBlock = 74 + hipDeviceAttributeSharedMemPerBlockOptin = 75 + hipDeviceAttributeSharedMemPerMultiprocessor = 76 + hipDeviceAttributeSingleToDoublePrecisionPerfRatio = 77 + hipDeviceAttributeStreamPrioritiesSupported = 78 + hipDeviceAttributeSurfaceAlignment = 79 + hipDeviceAttributeTccDriver = 80 + hipDeviceAttributeTextureAlignment = 81 + hipDeviceAttributeTexturePitchAlignment = 82 + hipDeviceAttributeTotalConstantMemory = 83 + hipDeviceAttributeTotalGlobalMem = 84 + hipDeviceAttributeUnifiedAddressing = 85 + hipDeviceAttributeUnused2 = 86 + hipDeviceAttributeWarpSize = 87 + hipDeviceAttributeMemoryPoolsSupported = 88 + hipDeviceAttributeVirtualMemoryManagementSupported = 89 + hipDeviceAttributeHostRegisterSupported = 90 + hipDeviceAttributeMemoryPoolSupportedHandleTypes = 91 + hipDeviceAttributeCudaCompatibleEnd = 9999 + hipDeviceAttributeAmdSpecificBegin = 10000 + hipDeviceAttributeClockInstructionRate = 10000 + hipDeviceAttributeUnused3 = 10001 + hipDeviceAttributeMaxSharedMemoryPerMultiprocessor = 10002 + hipDeviceAttributeUnused4 = 10003 + hipDeviceAttributeUnused5 = 10004 + hipDeviceAttributeHdpMemFlushCntl = 10005 + hipDeviceAttributeHdpRegFlushCntl = 10006 + hipDeviceAttributeCooperativeMultiDeviceUnmatchedFunc = 10007 + hipDeviceAttributeCooperativeMultiDeviceUnmatchedGridDim = 10008 + hipDeviceAttributeCooperativeMultiDeviceUnmatchedBlockDim = 10009 + hipDeviceAttributeCooperativeMultiDeviceUnmatchedSharedMem = 10010 + hipDeviceAttributeIsLargeBar = 10011 + hipDeviceAttributeAsicRevision = 10012 + hipDeviceAttributeCanUseStreamWaitValue = 10013 + hipDeviceAttributeImageSupport = 10014 + hipDeviceAttributePhysicalMultiProcessorCount = 10015 + hipDeviceAttributeFineGrainSupport = 10016 + hipDeviceAttributeWallClockRate = 10017 + hipDeviceAttributeNumberOfXccs = 10018 + hipDeviceAttributeAmdSpecificEnd = 19999 + hipDeviceAttributeVendorSpecificBegin = 20000 +end + +@cenum hipDriverProcAddressQueryResult::UInt32 begin + HIP_GET_PROC_ADDRESS_SUCCESS = 0 + HIP_GET_PROC_ADDRESS_SYMBOL_NOT_FOUND = 1 + HIP_GET_PROC_ADDRESS_VERSION_NOT_SUFFICIENT = 2 +end + +@cenum hipComputeMode::UInt32 begin + hipComputeModeDefault = 0 + hipComputeModeExclusive = 1 + hipComputeModeProhibited = 2 + hipComputeModeExclusiveProcess = 3 +end + +@cenum hipFlushGPUDirectRDMAWritesOptions::UInt32 begin + hipFlushGPUDirectRDMAWritesOptionHost = 1 + hipFlushGPUDirectRDMAWritesOptionMemOps = 2 +end + +@cenum hipGPUDirectRDMAWritesOrdering::UInt32 begin + hipGPUDirectRDMAWritesOrderingNone = 0 + hipGPUDirectRDMAWritesOrderingOwner = 100 + hipGPUDirectRDMAWritesOrderingAllDevices = 200 +end + +const hipDeviceptr_t = Ptr{Cvoid} + +@cenum hipChannelFormatKind::UInt32 begin + hipChannelFormatKindSigned = 0 + hipChannelFormatKindUnsigned = 1 + hipChannelFormatKindFloat = 2 + hipChannelFormatKindNone = 3 +end + +struct hipChannelFormatDesc + x::Cint + y::Cint + z::Cint + w::Cint + f::hipChannelFormatKind +end + +mutable struct hipArray end + +const hipArray_t = Ptr{hipArray} + +const hipArray_const_t = Ptr{hipArray} + +@cenum hipArray_Format::UInt32 begin + HIP_AD_FORMAT_UNSIGNED_INT8 = 1 + HIP_AD_FORMAT_UNSIGNED_INT16 = 2 + HIP_AD_FORMAT_UNSIGNED_INT32 = 3 + HIP_AD_FORMAT_SIGNED_INT8 = 8 + HIP_AD_FORMAT_SIGNED_INT16 = 9 + HIP_AD_FORMAT_SIGNED_INT32 = 10 + HIP_AD_FORMAT_HALF = 16 + HIP_AD_FORMAT_FLOAT = 32 +end + +struct HIP_ARRAY_DESCRIPTOR + Width::Csize_t + Height::Csize_t + Format::hipArray_Format + NumChannels::Cuint +end + +struct HIP_ARRAY3D_DESCRIPTOR + Width::Csize_t + Height::Csize_t + Depth::Csize_t + Format::hipArray_Format + NumChannels::Cuint + Flags::Cuint +end + +struct hip_Memcpy2D + srcXInBytes::Csize_t + srcY::Csize_t + srcMemoryType::hipMemoryType + srcHost::Ptr{Cvoid} + srcDevice::hipDeviceptr_t + srcArray::hipArray_t + srcPitch::Csize_t + dstXInBytes::Csize_t + dstY::Csize_t + dstMemoryType::hipMemoryType + dstHost::Ptr{Cvoid} + dstDevice::hipDeviceptr_t + dstArray::hipArray_t + dstPitch::Csize_t + WidthInBytes::Csize_t + Height::Csize_t +end + +struct hipMipmappedArray + data::Ptr{Cvoid} + desc::hipChannelFormatDesc + type::Cuint + width::Cuint + height::Cuint + depth::Cuint + min_mipmap_level::Cuint + max_mipmap_level::Cuint + flags::Cuint + format::hipArray_Format + num_channels::Cuint +end + +const hipMipmappedArray_t = Ptr{hipMipmappedArray} + +const hipmipmappedArray = hipMipmappedArray_t + +const hipMipmappedArray_const_t = Ptr{hipMipmappedArray} + +@cenum hipResourceType::UInt32 begin + hipResourceTypeArray = 0 + hipResourceTypeMipmappedArray = 1 + hipResourceTypeLinear = 2 + hipResourceTypePitch2D = 3 +end + +@cenum HIPresourcetype_enum::UInt32 begin + HIP_RESOURCE_TYPE_ARRAY = 0 + HIP_RESOURCE_TYPE_MIPMAPPED_ARRAY = 1 + HIP_RESOURCE_TYPE_LINEAR = 2 + HIP_RESOURCE_TYPE_PITCH2D = 3 +end + +const HIPresourcetype = HIPresourcetype_enum + +const hipResourcetype = HIPresourcetype_enum + +@cenum HIPaddress_mode_enum::UInt32 begin + HIP_TR_ADDRESS_MODE_WRAP = 0 + HIP_TR_ADDRESS_MODE_CLAMP = 1 + HIP_TR_ADDRESS_MODE_MIRROR = 2 + HIP_TR_ADDRESS_MODE_BORDER = 3 +end + +const HIPaddress_mode = HIPaddress_mode_enum + +@cenum HIPfilter_mode_enum::UInt32 begin + HIP_TR_FILTER_MODE_POINT = 0 + HIP_TR_FILTER_MODE_LINEAR = 1 +end + +const HIPfilter_mode = HIPfilter_mode_enum + +struct HIP_TEXTURE_DESC_st + addressMode::NTuple{3,HIPaddress_mode} + filterMode::HIPfilter_mode + flags::Cuint + maxAnisotropy::Cuint + mipmapFilterMode::HIPfilter_mode + mipmapLevelBias::Cfloat + minMipmapLevelClamp::Cfloat + maxMipmapLevelClamp::Cfloat + borderColor::NTuple{4,Cfloat} + reserved::NTuple{12,Cint} +end + +const HIP_TEXTURE_DESC = HIP_TEXTURE_DESC_st + +@cenum hipResourceViewFormat::UInt32 begin + hipResViewFormatNone = 0 + hipResViewFormatUnsignedChar1 = 1 + hipResViewFormatUnsignedChar2 = 2 + hipResViewFormatUnsignedChar4 = 3 + hipResViewFormatSignedChar1 = 4 + hipResViewFormatSignedChar2 = 5 + hipResViewFormatSignedChar4 = 6 + hipResViewFormatUnsignedShort1 = 7 + hipResViewFormatUnsignedShort2 = 8 + hipResViewFormatUnsignedShort4 = 9 + hipResViewFormatSignedShort1 = 10 + hipResViewFormatSignedShort2 = 11 + hipResViewFormatSignedShort4 = 12 + hipResViewFormatUnsignedInt1 = 13 + hipResViewFormatUnsignedInt2 = 14 + hipResViewFormatUnsignedInt4 = 15 + hipResViewFormatSignedInt1 = 16 + hipResViewFormatSignedInt2 = 17 + hipResViewFormatSignedInt4 = 18 + hipResViewFormatHalf1 = 19 + hipResViewFormatHalf2 = 20 + hipResViewFormatHalf4 = 21 + hipResViewFormatFloat1 = 22 + hipResViewFormatFloat2 = 23 + hipResViewFormatFloat4 = 24 + hipResViewFormatUnsignedBlockCompressed1 = 25 + hipResViewFormatUnsignedBlockCompressed2 = 26 + hipResViewFormatUnsignedBlockCompressed3 = 27 + hipResViewFormatUnsignedBlockCompressed4 = 28 + hipResViewFormatSignedBlockCompressed4 = 29 + hipResViewFormatUnsignedBlockCompressed5 = 30 + hipResViewFormatSignedBlockCompressed5 = 31 + hipResViewFormatUnsignedBlockCompressed6H = 32 + hipResViewFormatSignedBlockCompressed6H = 33 + hipResViewFormatUnsignedBlockCompressed7 = 34 +end + +@cenum HIPresourceViewFormat_enum::UInt32 begin + HIP_RES_VIEW_FORMAT_NONE = 0 + HIP_RES_VIEW_FORMAT_UINT_1X8 = 1 + HIP_RES_VIEW_FORMAT_UINT_2X8 = 2 + HIP_RES_VIEW_FORMAT_UINT_4X8 = 3 + HIP_RES_VIEW_FORMAT_SINT_1X8 = 4 + HIP_RES_VIEW_FORMAT_SINT_2X8 = 5 + HIP_RES_VIEW_FORMAT_SINT_4X8 = 6 + HIP_RES_VIEW_FORMAT_UINT_1X16 = 7 + HIP_RES_VIEW_FORMAT_UINT_2X16 = 8 + HIP_RES_VIEW_FORMAT_UINT_4X16 = 9 + HIP_RES_VIEW_FORMAT_SINT_1X16 = 10 + HIP_RES_VIEW_FORMAT_SINT_2X16 = 11 + HIP_RES_VIEW_FORMAT_SINT_4X16 = 12 + HIP_RES_VIEW_FORMAT_UINT_1X32 = 13 + HIP_RES_VIEW_FORMAT_UINT_2X32 = 14 + HIP_RES_VIEW_FORMAT_UINT_4X32 = 15 + HIP_RES_VIEW_FORMAT_SINT_1X32 = 16 + HIP_RES_VIEW_FORMAT_SINT_2X32 = 17 + HIP_RES_VIEW_FORMAT_SINT_4X32 = 18 + HIP_RES_VIEW_FORMAT_FLOAT_1X16 = 19 + HIP_RES_VIEW_FORMAT_FLOAT_2X16 = 20 + HIP_RES_VIEW_FORMAT_FLOAT_4X16 = 21 + HIP_RES_VIEW_FORMAT_FLOAT_1X32 = 22 + HIP_RES_VIEW_FORMAT_FLOAT_2X32 = 23 + HIP_RES_VIEW_FORMAT_FLOAT_4X32 = 24 + HIP_RES_VIEW_FORMAT_UNSIGNED_BC1 = 25 + HIP_RES_VIEW_FORMAT_UNSIGNED_BC2 = 26 + HIP_RES_VIEW_FORMAT_UNSIGNED_BC3 = 27 + HIP_RES_VIEW_FORMAT_UNSIGNED_BC4 = 28 + HIP_RES_VIEW_FORMAT_SIGNED_BC4 = 29 + HIP_RES_VIEW_FORMAT_UNSIGNED_BC5 = 30 + HIP_RES_VIEW_FORMAT_SIGNED_BC5 = 31 + HIP_RES_VIEW_FORMAT_UNSIGNED_BC6H = 32 + HIP_RES_VIEW_FORMAT_SIGNED_BC6H = 33 + HIP_RES_VIEW_FORMAT_UNSIGNED_BC7 = 34 +end + +const HIPresourceViewFormat = HIPresourceViewFormat_enum + +struct var"##Ctag#1135" + data::NTuple{56,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1135"}, f::Symbol) + f === :array && return Ptr{var"##Ctag#1136"}(x + 0) + f === :mipmap && return Ptr{var"##Ctag#1137"}(x + 0) + f === :linear && return Ptr{var"##Ctag#1138"}(x + 0) + f === :pitch2D && return Ptr{var"##Ctag#1139"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1135", f::Symbol) + r = Ref{var"##Ctag#1135"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1135"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1135"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1135", private::Bool=false) + return (:array, :mipmap, :linear, :pitch2D, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipResourceDesc + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{hipResourceDesc}, f::Symbol) + f === :resType && return Ptr{hipResourceType}(x + 0) + f === :res && return Ptr{var"##Ctag#1135"}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::hipResourceDesc, f::Symbol) + r = Ref{hipResourceDesc}(x) + ptr = Base.unsafe_convert(Ptr{hipResourceDesc}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipResourceDesc}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipResourceDesc, private::Bool=false) + return (:resType, :res, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#318" + data::NTuple{128,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#318"}, f::Symbol) + f === :array && return Ptr{var"##Ctag#319"}(x + 0) + f === :mipmap && return Ptr{var"##Ctag#320"}(x + 0) + f === :linear && return Ptr{var"##Ctag#321"}(x + 0) + f === :pitch2D && return Ptr{var"##Ctag#322"}(x + 0) + f === :reserved && return Ptr{var"##Ctag#323"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#318", f::Symbol) + r = Ref{var"##Ctag#318"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#318"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#318"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#318", private::Bool=false) + return (:array, :mipmap, :linear, :pitch2D, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct HIP_RESOURCE_DESC_st + data::NTuple{144,UInt8} +end + +function Base.getproperty(x::Ptr{HIP_RESOURCE_DESC_st}, f::Symbol) + f === :resType && return Ptr{HIPresourcetype}(x + 0) + f === :res && return Ptr{var"##Ctag#318"}(x + 8) + f === :flags && return Ptr{Cuint}(x + 136) + return getfield(x, f) +end + +function Base.getproperty(x::HIP_RESOURCE_DESC_st, f::Symbol) + r = Ref{HIP_RESOURCE_DESC_st}(x) + ptr = Base.unsafe_convert(Ptr{HIP_RESOURCE_DESC_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HIP_RESOURCE_DESC_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HIP_RESOURCE_DESC_st, private::Bool=false) + return (:resType, :res, :flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HIP_RESOURCE_DESC = HIP_RESOURCE_DESC_st + +struct hipResourceViewDesc + format::hipResourceViewFormat + width::Csize_t + height::Csize_t + depth::Csize_t + firstMipmapLevel::Cuint + lastMipmapLevel::Cuint + firstLayer::Cuint + lastLayer::Cuint +end + +struct HIP_RESOURCE_VIEW_DESC_st + format::HIPresourceViewFormat + width::Csize_t + height::Csize_t + depth::Csize_t + firstMipmapLevel::Cuint + lastMipmapLevel::Cuint + firstLayer::Cuint + lastLayer::Cuint + reserved::NTuple{16,Cuint} +end + +const HIP_RESOURCE_VIEW_DESC = HIP_RESOURCE_VIEW_DESC_st + +@cenum hipMemcpyKind::UInt32 begin + hipMemcpyHostToHost = 0 + hipMemcpyHostToDevice = 1 + hipMemcpyDeviceToHost = 2 + hipMemcpyDeviceToDevice = 3 + hipMemcpyDefault = 4 + hipMemcpyDeviceToDeviceNoCU = 1024 +end + +struct hipPitchedPtr + ptr::Ptr{Cvoid} + pitch::Csize_t + xsize::Csize_t + ysize::Csize_t +end + +struct hipExtent + width::Csize_t + height::Csize_t + depth::Csize_t +end + +struct hipPos + x::Csize_t + y::Csize_t + z::Csize_t +end + +struct hipMemcpy3DParms + srcArray::hipArray_t + srcPos::hipPos + srcPtr::hipPitchedPtr + dstArray::hipArray_t + dstPos::hipPos + dstPtr::hipPitchedPtr + extent::hipExtent + kind::hipMemcpyKind +end + +struct HIP_MEMCPY3D + srcXInBytes::Csize_t + srcY::Csize_t + srcZ::Csize_t + srcLOD::Csize_t + srcMemoryType::hipMemoryType + srcHost::Ptr{Cvoid} + srcDevice::hipDeviceptr_t + srcArray::hipArray_t + srcPitch::Csize_t + srcHeight::Csize_t + dstXInBytes::Csize_t + dstY::Csize_t + dstZ::Csize_t + dstLOD::Csize_t + dstMemoryType::hipMemoryType + dstHost::Ptr{Cvoid} + dstDevice::hipDeviceptr_t + dstArray::hipArray_t + dstPitch::Csize_t + dstHeight::Csize_t + WidthInBytes::Csize_t + Height::Csize_t + Depth::Csize_t +end + +function make_hipPitchedPtr(d, p, xsz, ysz) + @ccall librocprofiler_sdk_tool.make_hipPitchedPtr(d::Ptr{Cvoid}, p::Csize_t, + xsz::Csize_t, + ysz::Csize_t)::hipPitchedPtr +end + +function make_hipPos(x, y, z) + @ccall librocprofiler_sdk_tool.make_hipPos(x::Csize_t, y::Csize_t, z::Csize_t)::hipPos +end + +function make_hipExtent(w, h, d) + @ccall librocprofiler_sdk_tool.make_hipExtent(w::Csize_t, h::Csize_t, + d::Csize_t)::hipExtent +end + +@cenum hipFunction_attribute::UInt32 begin + HIP_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 0 + HIP_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = 1 + HIP_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = 2 + HIP_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = 3 + HIP_FUNC_ATTRIBUTE_NUM_REGS = 4 + HIP_FUNC_ATTRIBUTE_PTX_VERSION = 5 + HIP_FUNC_ATTRIBUTE_BINARY_VERSION = 6 + HIP_FUNC_ATTRIBUTE_CACHE_MODE_CA = 7 + HIP_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = 8 + HIP_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = 9 + HIP_FUNC_ATTRIBUTE_MAX = 10 +end + +@cenum hipPointer_attribute::UInt32 begin + HIP_POINTER_ATTRIBUTE_CONTEXT = 1 + HIP_POINTER_ATTRIBUTE_MEMORY_TYPE = 2 + HIP_POINTER_ATTRIBUTE_DEVICE_POINTER = 3 + HIP_POINTER_ATTRIBUTE_HOST_POINTER = 4 + HIP_POINTER_ATTRIBUTE_P2P_TOKENS = 5 + HIP_POINTER_ATTRIBUTE_SYNC_MEMOPS = 6 + HIP_POINTER_ATTRIBUTE_BUFFER_ID = 7 + HIP_POINTER_ATTRIBUTE_IS_MANAGED = 8 + HIP_POINTER_ATTRIBUTE_DEVICE_ORDINAL = 9 + HIP_POINTER_ATTRIBUTE_IS_LEGACY_HIP_IPC_CAPABLE = 10 + HIP_POINTER_ATTRIBUTE_RANGE_START_ADDR = 11 + HIP_POINTER_ATTRIBUTE_RANGE_SIZE = 12 + HIP_POINTER_ATTRIBUTE_MAPPED = 13 + HIP_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = 14 + HIP_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = 15 + HIP_POINTER_ATTRIBUTE_ACCESS_FLAGS = 16 + HIP_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = 17 +end + +struct uchar1 + x::Cuchar +end + +struct uchar2 + x::Cuchar + y::Cuchar +end + +struct uchar3 + x::Cuchar + y::Cuchar + z::Cuchar +end + +struct uchar4 + x::Cuchar + y::Cuchar + z::Cuchar + w::Cuchar +end + +struct char1 + x::Cchar +end + +struct char2 + x::Cchar + y::Cchar +end + +struct char3 + x::Cchar + y::Cchar + z::Cchar +end + +struct char4 + x::Cchar + y::Cchar + z::Cchar + w::Cchar +end + +struct ushort1 + x::Cushort +end + +struct ushort2 + x::Cushort + y::Cushort +end + +struct ushort3 + x::Cushort + y::Cushort + z::Cushort +end + +struct ushort4 + x::Cushort + y::Cushort + z::Cushort + w::Cushort +end + +struct short1 + x::Cshort +end + +struct short2 + x::Cshort + y::Cshort +end + +struct short3 + x::Cshort + y::Cshort + z::Cshort +end + +struct short4 + x::Cshort + y::Cshort + z::Cshort + w::Cshort +end + +struct uint1 + x::Cuint +end + +struct uint2 + x::Cuint + y::Cuint +end + +struct uint3 + x::Cuint + y::Cuint + z::Cuint +end + +struct uint4 + x::Cuint + y::Cuint + z::Cuint + w::Cuint +end + +struct int1 + x::Cint +end + +struct int2 + x::Cint + y::Cint +end + +struct int3 + x::Cint + y::Cint + z::Cint +end + +struct int4 + x::Cint + y::Cint + z::Cint + w::Cint +end + +struct ulong1 + x::Culong +end + +struct ulong2 + x::Culong + y::Culong +end + +struct ulong3 + x::Culong + y::Culong + z::Culong +end + +struct ulong4 + x::Culong + y::Culong + z::Culong + w::Culong +end + +struct long1 + x::Clong +end + +struct long2 + x::Clong + y::Clong +end + +struct long3 + x::Clong + y::Clong + z::Clong +end + +struct long4 + x::Clong + y::Clong + z::Clong + w::Clong +end + +struct ulonglong1 + x::Culonglong +end + +struct ulonglong2 + x::Culonglong + y::Culonglong +end + +struct ulonglong3 + x::Culonglong + y::Culonglong + z::Culonglong +end + +struct ulonglong4 + x::Culonglong + y::Culonglong + z::Culonglong + w::Culonglong +end + +struct longlong1 + x::Clonglong +end + +struct longlong2 + x::Clonglong + y::Clonglong +end + +struct longlong3 + x::Clonglong + y::Clonglong + z::Clonglong +end + +struct longlong4 + x::Clonglong + y::Clonglong + z::Clonglong + w::Clonglong +end + +struct float1 + x::Cfloat +end + +struct float2 + x::Cfloat + y::Cfloat +end + +struct float3 + x::Cfloat + y::Cfloat + z::Cfloat +end + +struct float4 + x::Cfloat + y::Cfloat + z::Cfloat + w::Cfloat +end + +struct double1 + x::Cdouble +end + +struct double2 + x::Cdouble + y::Cdouble +end + +struct double3 + x::Cdouble + y::Cdouble + z::Cdouble +end + +struct double4 + x::Cdouble + y::Cdouble + z::Cdouble + w::Cdouble +end + +function make_uchar1(x) + @ccall librocprofiler_sdk_tool.make_uchar1(x::Cuchar)::uchar1 +end + +function make_uchar2(x, y) + @ccall librocprofiler_sdk_tool.make_uchar2(x::Cuchar, y::Cuchar)::uchar2 +end + +function make_uchar3(x, y, z) + @ccall librocprofiler_sdk_tool.make_uchar3(x::Cuchar, y::Cuchar, z::Cuchar)::uchar3 +end + +function make_uchar4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_uchar4(x::Cuchar, y::Cuchar, z::Cuchar, + w::Cuchar)::uchar4 +end + +function make_char1(x) + @ccall librocprofiler_sdk_tool.make_char1(x::Int8)::char1 +end + +function make_char2(x, y) + @ccall librocprofiler_sdk_tool.make_char2(x::Int8, y::Int8)::char2 +end + +function make_char3(x, y, z) + @ccall librocprofiler_sdk_tool.make_char3(x::Int8, y::Int8, z::Int8)::char3 +end + +function make_char4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_char4(x::Int8, y::Int8, z::Int8, w::Int8)::char4 +end + +function make_ushort1(x) + @ccall librocprofiler_sdk_tool.make_ushort1(x::Cushort)::ushort1 +end + +function make_ushort2(x, y) + @ccall librocprofiler_sdk_tool.make_ushort2(x::Cushort, y::Cushort)::ushort2 +end + +function make_ushort3(x, y, z) + @ccall librocprofiler_sdk_tool.make_ushort3(x::Cushort, y::Cushort, z::Cushort)::ushort3 +end + +function make_ushort4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_ushort4(x::Cushort, y::Cushort, z::Cushort, + w::Cushort)::ushort4 +end + +function make_short1(x) + @ccall librocprofiler_sdk_tool.make_short1(x::Cshort)::short1 +end + +function make_short2(x, y) + @ccall librocprofiler_sdk_tool.make_short2(x::Cshort, y::Cshort)::short2 +end + +function make_short3(x, y, z) + @ccall librocprofiler_sdk_tool.make_short3(x::Cshort, y::Cshort, z::Cshort)::short3 +end + +function make_short4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_short4(x::Cshort, y::Cshort, z::Cshort, + w::Cshort)::short4 +end + +function make_uint1(x) + @ccall librocprofiler_sdk_tool.make_uint1(x::Cuint)::uint1 +end + +function make_uint2(x, y) + @ccall librocprofiler_sdk_tool.make_uint2(x::Cuint, y::Cuint)::uint2 +end + +function make_uint3(x, y, z) + @ccall librocprofiler_sdk_tool.make_uint3(x::Cuint, y::Cuint, z::Cuint)::uint3 +end + +function make_uint4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_uint4(x::Cuint, y::Cuint, z::Cuint, w::Cuint)::uint4 +end + +function make_int1(x) + @ccall librocprofiler_sdk_tool.make_int1(x::Cint)::int1 +end + +function make_int2(x, y) + @ccall librocprofiler_sdk_tool.make_int2(x::Cint, y::Cint)::int2 +end + +function make_int3(x, y, z) + @ccall librocprofiler_sdk_tool.make_int3(x::Cint, y::Cint, z::Cint)::int3 +end + +function make_int4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_int4(x::Cint, y::Cint, z::Cint, w::Cint)::int4 +end + +function make_float1(x) + @ccall librocprofiler_sdk_tool.make_float1(x::Cfloat)::float1 +end + +function make_float2(x, y) + @ccall librocprofiler_sdk_tool.make_float2(x::Cfloat, y::Cfloat)::float2 +end + +function make_float3(x, y, z) + @ccall librocprofiler_sdk_tool.make_float3(x::Cfloat, y::Cfloat, z::Cfloat)::float3 +end + +function make_float4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_float4(x::Cfloat, y::Cfloat, z::Cfloat, + w::Cfloat)::float4 +end + +function make_double1(x) + @ccall librocprofiler_sdk_tool.make_double1(x::Cdouble)::double1 +end + +function make_double2(x, y) + @ccall librocprofiler_sdk_tool.make_double2(x::Cdouble, y::Cdouble)::double2 +end + +function make_double3(x, y, z) + @ccall librocprofiler_sdk_tool.make_double3(x::Cdouble, y::Cdouble, z::Cdouble)::double3 +end + +function make_double4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_double4(x::Cdouble, y::Cdouble, z::Cdouble, + w::Cdouble)::double4 +end + +function make_ulong1(x) + @ccall librocprofiler_sdk_tool.make_ulong1(x::Culong)::ulong1 +end + +function make_ulong2(x, y) + @ccall librocprofiler_sdk_tool.make_ulong2(x::Culong, y::Culong)::ulong2 +end + +function make_ulong3(x, y, z) + @ccall librocprofiler_sdk_tool.make_ulong3(x::Culong, y::Culong, z::Culong)::ulong3 +end + +function make_ulong4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_ulong4(x::Culong, y::Culong, z::Culong, + w::Culong)::ulong4 +end + +function make_long1(x) + @ccall librocprofiler_sdk_tool.make_long1(x::Clong)::long1 +end + +function make_long2(x, y) + @ccall librocprofiler_sdk_tool.make_long2(x::Clong, y::Clong)::long2 +end + +function make_long3(x, y, z) + @ccall librocprofiler_sdk_tool.make_long3(x::Clong, y::Clong, z::Clong)::long3 +end + +function make_long4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_long4(x::Clong, y::Clong, z::Clong, w::Clong)::long4 +end + +function make_ulonglong1(x) + @ccall librocprofiler_sdk_tool.make_ulonglong1(x::Culonglong)::ulonglong1 +end + +function make_ulonglong2(x, y) + @ccall librocprofiler_sdk_tool.make_ulonglong2(x::Culonglong, y::Culonglong)::ulonglong2 +end + +function make_ulonglong3(x, y, z) + @ccall librocprofiler_sdk_tool.make_ulonglong3(x::Culonglong, y::Culonglong, + z::Culonglong)::ulonglong3 +end + +function make_ulonglong4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_ulonglong4(x::Culonglong, y::Culonglong, + z::Culonglong, w::Culonglong)::ulonglong4 +end + +function make_longlong1(x) + @ccall librocprofiler_sdk_tool.make_longlong1(x::Clonglong)::longlong1 +end + +function make_longlong2(x, y) + @ccall librocprofiler_sdk_tool.make_longlong2(x::Clonglong, y::Clonglong)::longlong2 +end + +function make_longlong3(x, y, z) + @ccall librocprofiler_sdk_tool.make_longlong3(x::Clonglong, y::Clonglong, + z::Clonglong)::longlong3 +end + +function make_longlong4(x, y, z, w) + @ccall librocprofiler_sdk_tool.make_longlong4(x::Clonglong, y::Clonglong, z::Clonglong, + w::Clonglong)::longlong4 +end + +function hipCreateChannelDesc(x, y, z, w, f) + @ccall librocprofiler_sdk_tool.hipCreateChannelDesc(x::Cint, y::Cint, z::Cint, w::Cint, + f::hipChannelFormatKind)::hipChannelFormatDesc +end + +mutable struct __hip_texture end + +const hipTextureObject_t = Ptr{__hip_texture} + +@cenum hipTextureAddressMode::UInt32 begin + hipAddressModeWrap = 0 + hipAddressModeClamp = 1 + hipAddressModeMirror = 2 + hipAddressModeBorder = 3 +end + +@cenum hipTextureFilterMode::UInt32 begin + hipFilterModePoint = 0 + hipFilterModeLinear = 1 +end + +@cenum hipTextureReadMode::UInt32 begin + hipReadModeElementType = 0 + hipReadModeNormalizedFloat = 1 +end + +struct textureReference + normalized::Cint + readMode::hipTextureReadMode + filterMode::hipTextureFilterMode + addressMode::NTuple{3,hipTextureAddressMode} + channelDesc::hipChannelFormatDesc + sRGB::Cint + maxAnisotropy::Cuint + mipmapFilterMode::hipTextureFilterMode + mipmapLevelBias::Cfloat + minMipmapLevelClamp::Cfloat + maxMipmapLevelClamp::Cfloat + textureObject::hipTextureObject_t + numChannels::Cint + format::hipArray_Format +end + +struct hipTextureDesc + addressMode::NTuple{3,hipTextureAddressMode} + filterMode::hipTextureFilterMode + readMode::hipTextureReadMode + sRGB::Cint + borderColor::NTuple{4,Cfloat} + normalizedCoords::Cint + maxAnisotropy::Cuint + mipmapFilterMode::hipTextureFilterMode + mipmapLevelBias::Cfloat + minMipmapLevelClamp::Cfloat + maxMipmapLevelClamp::Cfloat +end + +mutable struct __hip_surface end + +const hipSurfaceObject_t = Ptr{__hip_surface} + +struct surfaceReference + surfaceObject::hipSurfaceObject_t +end + +@cenum hipSurfaceBoundaryMode::UInt32 begin + hipBoundaryModeZero = 0 + hipBoundaryModeTrap = 1 + hipBoundaryModeClamp = 2 +end + +mutable struct ihipCtx_t end + +const hipCtx_t = Ptr{ihipCtx_t} + +const hipDevice_t = Cint + +@cenum hipDeviceP2PAttr::UInt32 begin + hipDevP2PAttrPerformanceRank = 0 + hipDevP2PAttrAccessSupported = 1 + hipDevP2PAttrNativeAtomicSupported = 2 + hipDevP2PAttrHipArrayAccessSupported = 3 +end + +struct hipIpcMemHandle_st + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{hipIpcMemHandle_st}, f::Symbol) + f === :reserved && return Ptr{NTuple{64,Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipIpcMemHandle_st, f::Symbol) + r = Ref{hipIpcMemHandle_st}(x) + ptr = Base.unsafe_convert(Ptr{hipIpcMemHandle_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipIpcMemHandle_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipIpcMemHandle_st, private::Bool=false) + return (:reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipIpcMemHandle_t = hipIpcMemHandle_st + +struct hipIpcEventHandle_st + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{hipIpcEventHandle_st}, f::Symbol) + f === :reserved && return Ptr{NTuple{64,Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipIpcEventHandle_st, f::Symbol) + r = Ref{hipIpcEventHandle_st}(x) + ptr = Base.unsafe_convert(Ptr{hipIpcEventHandle_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipIpcEventHandle_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipIpcEventHandle_st, private::Bool=false) + return (:reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipIpcEventHandle_t = hipIpcEventHandle_st + +mutable struct ihipModule_t end + +const hipModule_t = Ptr{ihipModule_t} + +mutable struct ihipModuleSymbol_t end + +const hipFunction_t = Ptr{ihipModuleSymbol_t} + +mutable struct ihipLinkState_t end + +const hipLinkState_t = Ptr{ihipLinkState_t} + +mutable struct ihipMemPoolHandle_t end + +const hipMemPool_t = Ptr{ihipMemPoolHandle_t} + +struct hipFuncAttributes + data::NTuple{56,UInt8} +end + +function Base.getproperty(x::Ptr{hipFuncAttributes}, f::Symbol) + f === :binaryVersion && return Ptr{Cint}(x + 0) + f === :cacheModeCA && return Ptr{Cint}(x + 4) + f === :constSizeBytes && return Ptr{Csize_t}(x + 8) + f === :localSizeBytes && return Ptr{Csize_t}(x + 16) + f === :maxDynamicSharedSizeBytes && return Ptr{Cint}(x + 24) + f === :maxThreadsPerBlock && return Ptr{Cint}(x + 28) + f === :numRegs && return Ptr{Cint}(x + 32) + f === :preferredShmemCarveout && return Ptr{Cint}(x + 36) + f === :ptxVersion && return Ptr{Cint}(x + 40) + f === :sharedSizeBytes && return Ptr{Csize_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::hipFuncAttributes, f::Symbol) + r = Ref{hipFuncAttributes}(x) + ptr = Base.unsafe_convert(Ptr{hipFuncAttributes}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipFuncAttributes}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipFuncAttributes, private::Bool=false) + return (:binaryVersion, :cacheModeCA, :constSizeBytes, :localSizeBytes, + :maxDynamicSharedSizeBytes, :maxThreadsPerBlock, :numRegs, + :preferredShmemCarveout, :ptxVersion, :sharedSizeBytes, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +mutable struct ihipEvent_t end + +const hipEvent_t = Ptr{ihipEvent_t} + +@cenum hipLimit_t::UInt32 begin + hipLimitStackSize = 0 + hipLimitPrintfFifoSize = 1 + hipLimitMallocHeapSize = 2 + hipExtLimitScratchMin = 4096 + hipExtLimitScratchMax = 4097 + hipExtLimitScratchCurrent = 4098 + hipLimitRange = 4099 +end + +@cenum hipStreamBatchMemOpType::UInt32 begin + hipStreamMemOpWaitValue32 = 1 + hipStreamMemOpWriteValue32 = 2 + hipStreamMemOpWaitValue64 = 4 + hipStreamMemOpWriteValue64 = 5 + hipStreamMemOpBarrier = 6 + hipStreamMemOpFlushRemoteWrites = 3 +end + +struct hipStreamBatchMemOpParams_union + data::NTuple{48,UInt8} +end + +function Base.getproperty(x::Ptr{hipStreamBatchMemOpParams_union}, f::Symbol) + f === :operation && return Ptr{hipStreamBatchMemOpType}(x + 0) + f === :waitValue && return Ptr{hipStreamMemOpWaitValueParams_t}(x + 0) + f === :writeValue && return Ptr{hipStreamMemOpWriteValueParams_t}(x + 0) + f === :flushRemoteWrites && return Ptr{hipStreamMemOpFlushRemoteWritesParams_t}(x + 0) + f === :memoryBarrier && return Ptr{hipStreamMemOpMemoryBarrierParams_t}(x + 0) + f === :pad && return Ptr{NTuple{6,UInt64}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipStreamBatchMemOpParams_union, f::Symbol) + r = Ref{hipStreamBatchMemOpParams_union}(x) + ptr = Base.unsafe_convert(Ptr{hipStreamBatchMemOpParams_union}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipStreamBatchMemOpParams_union}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipStreamBatchMemOpParams_union, private::Bool=false) + return (:operation, :waitValue, :writeValue, :flushRemoteWrites, :memoryBarrier, :pad, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipStreamBatchMemOpParams = hipStreamBatchMemOpParams_union + +struct hipBatchMemOpNodeParams + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{hipBatchMemOpNodeParams}, f::Symbol) + f === :ctx && return Ptr{hipCtx_t}(x + 0) + f === :count && return Ptr{Cuint}(x + 8) + f === :paramArray && return Ptr{Ptr{hipStreamBatchMemOpParams}}(x + 16) + f === :flags && return Ptr{Cuint}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::hipBatchMemOpNodeParams, f::Symbol) + r = Ref{hipBatchMemOpNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipBatchMemOpNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipBatchMemOpNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipBatchMemOpNodeParams, private::Bool=false) + return (:ctx, :count, :paramArray, :flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hipMemoryAdvise::UInt32 begin + hipMemAdviseSetReadMostly = 1 + hipMemAdviseUnsetReadMostly = 2 + hipMemAdviseSetPreferredLocation = 3 + hipMemAdviseUnsetPreferredLocation = 4 + hipMemAdviseSetAccessedBy = 5 + hipMemAdviseUnsetAccessedBy = 6 + hipMemAdviseSetCoarseGrain = 100 + hipMemAdviseUnsetCoarseGrain = 101 +end + +@cenum hipMemRangeCoherencyMode::UInt32 begin + hipMemRangeCoherencyModeFineGrain = 0 + hipMemRangeCoherencyModeCoarseGrain = 1 + hipMemRangeCoherencyModeIndeterminate = 2 +end + +@cenum hipMemRangeAttribute::UInt32 begin + hipMemRangeAttributeReadMostly = 1 + hipMemRangeAttributePreferredLocation = 2 + hipMemRangeAttributeAccessedBy = 3 + hipMemRangeAttributeLastPrefetchLocation = 4 + hipMemRangeAttributeCoherencyMode = 100 +end + +@cenum hipMemPoolAttr::UInt32 begin + hipMemPoolReuseFollowEventDependencies = 1 + hipMemPoolReuseAllowOpportunistic = 2 + hipMemPoolReuseAllowInternalDependencies = 3 + hipMemPoolAttrReleaseThreshold = 4 + hipMemPoolAttrReservedMemCurrent = 5 + hipMemPoolAttrReservedMemHigh = 6 + hipMemPoolAttrUsedMemCurrent = 7 + hipMemPoolAttrUsedMemHigh = 8 +end + +@cenum hipMemLocationType::UInt32 begin + hipMemLocationTypeInvalid = 0 + hipMemLocationTypeDevice = 1 +end + +struct hipMemLocation + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{hipMemLocation}, f::Symbol) + f === :type && return Ptr{hipMemLocationType}(x + 0) + f === :id && return Ptr{Cint}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::hipMemLocation, f::Symbol) + r = Ref{hipMemLocation}(x) + ptr = Base.unsafe_convert(Ptr{hipMemLocation}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipMemLocation}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipMemLocation, private::Bool=false) + return (:type, :id, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hipMemAccessFlags::UInt32 begin + hipMemAccessFlagsProtNone = 0 + hipMemAccessFlagsProtRead = 1 + hipMemAccessFlagsProtReadWrite = 3 +end + +struct hipMemAccessDesc + data::NTuple{12,UInt8} +end + +function Base.getproperty(x::Ptr{hipMemAccessDesc}, f::Symbol) + f === :location && return Ptr{hipMemLocation}(x + 0) + f === :flags && return Ptr{hipMemAccessFlags}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::hipMemAccessDesc, f::Symbol) + r = Ref{hipMemAccessDesc}(x) + ptr = Base.unsafe_convert(Ptr{hipMemAccessDesc}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipMemAccessDesc}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipMemAccessDesc, private::Bool=false) + return (:location, :flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hipMemAllocationType::UInt32 begin + hipMemAllocationTypeInvalid = 0 + hipMemAllocationTypePinned = 1 + hipMemAllocationTypeMax = 2147483647 +end + +@cenum hipMemAllocationHandleType::UInt32 begin + hipMemHandleTypeNone = 0 + hipMemHandleTypePosixFileDescriptor = 1 + hipMemHandleTypeWin32 = 2 + hipMemHandleTypeWin32Kmt = 4 +end + +struct hipMemPoolProps + data::NTuple{88,UInt8} +end + +function Base.getproperty(x::Ptr{hipMemPoolProps}, f::Symbol) + f === :allocType && return Ptr{hipMemAllocationType}(x + 0) + f === :handleTypes && return Ptr{hipMemAllocationHandleType}(x + 4) + f === :location && return Ptr{hipMemLocation}(x + 8) + f === :win32SecurityAttributes && return Ptr{Ptr{Cvoid}}(x + 16) + f === :maxSize && return Ptr{Csize_t}(x + 24) + f === :reserved && return Ptr{NTuple{56,Cuchar}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::hipMemPoolProps, f::Symbol) + r = Ref{hipMemPoolProps}(x) + ptr = Base.unsafe_convert(Ptr{hipMemPoolProps}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipMemPoolProps}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipMemPoolProps, private::Bool=false) + return (:allocType, :handleTypes, :location, :win32SecurityAttributes, :maxSize, + :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipMemPoolPtrExportData + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{hipMemPoolPtrExportData}, f::Symbol) + f === :reserved && return Ptr{NTuple{64,Cuchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipMemPoolPtrExportData, f::Symbol) + r = Ref{hipMemPoolPtrExportData}(x) + ptr = Base.unsafe_convert(Ptr{hipMemPoolPtrExportData}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipMemPoolPtrExportData}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipMemPoolPtrExportData, private::Bool=false) + return (:reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hipFuncAttribute::UInt32 begin + hipFuncAttributeMaxDynamicSharedMemorySize = 8 + hipFuncAttributePreferredSharedMemoryCarveout = 9 + hipFuncAttributeMax = 10 +end + +@cenum hipFuncCache_t::UInt32 begin + hipFuncCachePreferNone = 0 + hipFuncCachePreferShared = 1 + hipFuncCachePreferL1 = 2 + hipFuncCachePreferEqual = 3 +end + +@cenum hipSharedMemConfig::UInt32 begin + hipSharedMemBankSizeDefault = 0 + hipSharedMemBankSizeFourByte = 1 + hipSharedMemBankSizeEightByte = 2 +end + +struct dim3 + data::NTuple{12,UInt8} +end + +function Base.getproperty(x::Ptr{dim3}, f::Symbol) + f === :x && return Ptr{UInt32}(x + 0) + f === :y && return Ptr{UInt32}(x + 4) + f === :z && return Ptr{UInt32}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::dim3, f::Symbol) + r = Ref{dim3}(x) + ptr = Base.unsafe_convert(Ptr{dim3}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{dim3}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::dim3, private::Bool=false) + return (:x, :y, :z, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipLaunchParams_t + data::NTuple{56,UInt8} +end + +function Base.getproperty(x::Ptr{hipLaunchParams_t}, f::Symbol) + f === :func && return Ptr{Ptr{Cvoid}}(x + 0) + f === :gridDim && return Ptr{dim3}(x + 8) + f === :blockDim && return Ptr{dim3}(x + 20) + f === :args && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + f === :sharedMem && return Ptr{Csize_t}(x + 40) + f === :stream && return Ptr{hipStream_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::hipLaunchParams_t, f::Symbol) + r = Ref{hipLaunchParams_t}(x) + ptr = Base.unsafe_convert(Ptr{hipLaunchParams_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipLaunchParams_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipLaunchParams_t, private::Bool=false) + return (:func, :gridDim, :blockDim, :args, :sharedMem, :stream, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipLaunchParams = hipLaunchParams_t + +struct hipFunctionLaunchParams_t + data::NTuple{56,UInt8} +end + +function Base.getproperty(x::Ptr{hipFunctionLaunchParams_t}, f::Symbol) + f === :_function && return Ptr{hipFunction_t}(x + 0) + f === :gridDimX && return Ptr{Cuint}(x + 8) + f === :gridDimY && return Ptr{Cuint}(x + 12) + f === :gridDimZ && return Ptr{Cuint}(x + 16) + f === :blockDimX && return Ptr{Cuint}(x + 20) + f === :blockDimY && return Ptr{Cuint}(x + 24) + f === :blockDimZ && return Ptr{Cuint}(x + 28) + f === :sharedMemBytes && return Ptr{Cuint}(x + 32) + f === :hStream && return Ptr{hipStream_t}(x + 40) + f === :kernelParams && return Ptr{Ptr{Ptr{Cvoid}}}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::hipFunctionLaunchParams_t, f::Symbol) + r = Ref{hipFunctionLaunchParams_t}(x) + ptr = Base.unsafe_convert(Ptr{hipFunctionLaunchParams_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipFunctionLaunchParams_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipFunctionLaunchParams_t, private::Bool=false) + return (:_function, :gridDimX, :gridDimY, :gridDimZ, :blockDimX, :blockDimY, :blockDimZ, + :sharedMemBytes, :hStream, :kernelParams, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipFunctionLaunchParams = hipFunctionLaunchParams_t + +@cenum hipExternalMemoryHandleType_enum::UInt32 begin + hipExternalMemoryHandleTypeOpaqueFd = 1 + hipExternalMemoryHandleTypeOpaqueWin32 = 2 + hipExternalMemoryHandleTypeOpaqueWin32Kmt = 3 + hipExternalMemoryHandleTypeD3D12Heap = 4 + hipExternalMemoryHandleTypeD3D12Resource = 5 + hipExternalMemoryHandleTypeD3D11Resource = 6 + hipExternalMemoryHandleTypeD3D11ResourceKmt = 7 + hipExternalMemoryHandleTypeNvSciBuf = 8 +end + +const hipExternalMemoryHandleType = hipExternalMemoryHandleType_enum + +struct var"##Ctag#316" + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#316"}, f::Symbol) + f === :fd && return Ptr{Cint}(x + 0) + f === :win32 && return Ptr{var"##Ctag#317"}(x + 0) + f === :nvSciBufObject && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#316", f::Symbol) + r = Ref{var"##Ctag#316"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#316"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#316"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#316", private::Bool=false) + return (:fd, :win32, :nvSciBufObject, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipExternalMemoryHandleDesc_st + data::NTuple{104,UInt8} +end + +function Base.getproperty(x::Ptr{hipExternalMemoryHandleDesc_st}, f::Symbol) + f === :type && return Ptr{hipExternalMemoryHandleType}(x + 0) + f === :handle && return Ptr{var"##Ctag#316"}(x + 8) + f === :size && return Ptr{Culonglong}(x + 24) + f === :flags && return Ptr{Cuint}(x + 32) + f === :reserved && return Ptr{NTuple{16,Cuint}}(x + 36) + return getfield(x, f) +end + +function Base.getproperty(x::hipExternalMemoryHandleDesc_st, f::Symbol) + r = Ref{hipExternalMemoryHandleDesc_st}(x) + ptr = Base.unsafe_convert(Ptr{hipExternalMemoryHandleDesc_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipExternalMemoryHandleDesc_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipExternalMemoryHandleDesc_st, private::Bool=false) + return (:type, :handle, :size, :flags, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipExternalMemoryHandleDesc = hipExternalMemoryHandleDesc_st + +struct hipExternalMemoryBufferDesc_st + data::NTuple{88,UInt8} +end + +function Base.getproperty(x::Ptr{hipExternalMemoryBufferDesc_st}, f::Symbol) + f === :offset && return Ptr{Culonglong}(x + 0) + f === :size && return Ptr{Culonglong}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + f === :reserved && return Ptr{NTuple{16,Cuint}}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::hipExternalMemoryBufferDesc_st, f::Symbol) + r = Ref{hipExternalMemoryBufferDesc_st}(x) + ptr = Base.unsafe_convert(Ptr{hipExternalMemoryBufferDesc_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipExternalMemoryBufferDesc_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipExternalMemoryBufferDesc_st, private::Bool=false) + return (:offset, :size, :flags, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipExternalMemoryBufferDesc = hipExternalMemoryBufferDesc_st + +struct hipExternalMemoryMipmappedArrayDesc_st + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{hipExternalMemoryMipmappedArrayDesc_st}, f::Symbol) + f === :offset && return Ptr{Culonglong}(x + 0) + f === :formatDesc && return Ptr{hipChannelFormatDesc}(x + 8) + f === :extent && return Ptr{hipExtent}(x + 32) + f === :flags && return Ptr{Cuint}(x + 56) + f === :numLevels && return Ptr{Cuint}(x + 60) + return getfield(x, f) +end + +function Base.getproperty(x::hipExternalMemoryMipmappedArrayDesc_st, f::Symbol) + r = Ref{hipExternalMemoryMipmappedArrayDesc_st}(x) + ptr = Base.unsafe_convert(Ptr{hipExternalMemoryMipmappedArrayDesc_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipExternalMemoryMipmappedArrayDesc_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipExternalMemoryMipmappedArrayDesc_st, private::Bool=false) + return (:offset, :formatDesc, :extent, :flags, :numLevels, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipExternalMemoryMipmappedArrayDesc = hipExternalMemoryMipmappedArrayDesc_st + +const hipExternalMemory_t = Ptr{Cvoid} + +@cenum hipExternalSemaphoreHandleType_enum::UInt32 begin + hipExternalSemaphoreHandleTypeOpaqueFd = 1 + hipExternalSemaphoreHandleTypeOpaqueWin32 = 2 + hipExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3 + hipExternalSemaphoreHandleTypeD3D12Fence = 4 + hipExternalSemaphoreHandleTypeD3D11Fence = 5 + hipExternalSemaphoreHandleTypeNvSciSync = 6 + hipExternalSemaphoreHandleTypeKeyedMutex = 7 + hipExternalSemaphoreHandleTypeKeyedMutexKmt = 8 + hipExternalSemaphoreHandleTypeTimelineSemaphoreFd = 9 + hipExternalSemaphoreHandleTypeTimelineSemaphoreWin32 = 10 +end + +const hipExternalSemaphoreHandleType = hipExternalSemaphoreHandleType_enum + +struct var"##Ctag#313" + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#313"}, f::Symbol) + f === :fd && return Ptr{Cint}(x + 0) + f === :win32 && return Ptr{var"##Ctag#314"}(x + 0) + f === :NvSciSyncObj && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#313", f::Symbol) + r = Ref{var"##Ctag#313"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#313"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#313"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#313", private::Bool=false) + return (:fd, :win32, :NvSciSyncObj, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipExternalSemaphoreHandleDesc_st + data::NTuple{96,UInt8} +end + +function Base.getproperty(x::Ptr{hipExternalSemaphoreHandleDesc_st}, f::Symbol) + f === :type && return Ptr{hipExternalSemaphoreHandleType}(x + 0) + f === :handle && return Ptr{var"##Ctag#313"}(x + 8) + f === :flags && return Ptr{Cuint}(x + 24) + f === :reserved && return Ptr{NTuple{16,Cuint}}(x + 28) + return getfield(x, f) +end + +function Base.getproperty(x::hipExternalSemaphoreHandleDesc_st, f::Symbol) + r = Ref{hipExternalSemaphoreHandleDesc_st}(x) + ptr = Base.unsafe_convert(Ptr{hipExternalSemaphoreHandleDesc_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipExternalSemaphoreHandleDesc_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipExternalSemaphoreHandleDesc_st, private::Bool=false) + return (:type, :handle, :flags, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipExternalSemaphoreHandleDesc = hipExternalSemaphoreHandleDesc_st + +const hipExternalSemaphore_t = Ptr{Cvoid} + +struct var"##Ctag#410" + value::Culonglong +end +function Base.getproperty(x::Ptr{var"##Ctag#410"}, f::Symbol) + f === :value && return Ptr{Culonglong}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#410", f::Symbol) + r = Ref{var"##Ctag#410"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#410"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#410"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#411" + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#411"}, f::Symbol) + f === :fence && return Ptr{Ptr{Cvoid}}(x + 0) + f === :reserved && return Ptr{Culonglong}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#411", f::Symbol) + r = Ref{var"##Ctag#411"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#411"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#411"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#411", private::Bool=false) + return (:fence, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#412" + key::Culonglong +end +function Base.getproperty(x::Ptr{var"##Ctag#412"}, f::Symbol) + f === :key && return Ptr{Culonglong}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#412", f::Symbol) + r = Ref{var"##Ctag#412"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#412"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#412"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#409" + data::NTuple{72,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#409"}, f::Symbol) + f === :fence && return Ptr{var"##Ctag#410"}(x + 0) + f === :nvSciSync && return Ptr{var"##Ctag#411"}(x + 8) + f === :keyedMutex && return Ptr{var"##Ctag#412"}(x + 16) + f === :reserved && return Ptr{NTuple{12,Cuint}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#409", f::Symbol) + r = Ref{var"##Ctag#409"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#409"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#409"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#409", private::Bool=false) + return (:fence, :nvSciSync, :keyedMutex, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipExternalSemaphoreSignalParams_st + data::NTuple{144,UInt8} +end + +function Base.getproperty(x::Ptr{hipExternalSemaphoreSignalParams_st}, f::Symbol) + f === :params && return Ptr{Cvoid}(x + 0) + f === :flags && return Ptr{Cuint}(x + 72) + f === :reserved && return Ptr{NTuple{16,Cuint}}(x + 76) + return getfield(x, f) +end + +function Base.getproperty(x::hipExternalSemaphoreSignalParams_st, f::Symbol) + r = Ref{hipExternalSemaphoreSignalParams_st}(x) + ptr = Base.unsafe_convert(Ptr{hipExternalSemaphoreSignalParams_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipExternalSemaphoreSignalParams_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipExternalSemaphoreSignalParams_st, private::Bool=false) + return (:params, :flags, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipExternalSemaphoreSignalParams = hipExternalSemaphoreSignalParams_st + +struct var"##Ctag#1153" + value::Culonglong +end +function Base.getproperty(x::Ptr{var"##Ctag#1153"}, f::Symbol) + f === :value && return Ptr{Culonglong}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1153", f::Symbol) + r = Ref{var"##Ctag#1153"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1153"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1153"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1154" + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1154"}, f::Symbol) + f === :fence && return Ptr{Ptr{Cvoid}}(x + 0) + f === :reserved && return Ptr{Culonglong}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1154", f::Symbol) + r = Ref{var"##Ctag#1154"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1154"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1154"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1154", private::Bool=false) + return (:fence, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#1155" + key::Culonglong + timeoutMs::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#1155"}, f::Symbol) + f === :key && return Ptr{Culonglong}(x + 0) + f === :timeoutMs && return Ptr{Cuint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1155", f::Symbol) + r = Ref{var"##Ctag#1155"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1155"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1155"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1152" + data::NTuple{72,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1152"}, f::Symbol) + f === :fence && return Ptr{var"##Ctag#1153"}(x + 0) + f === :nvSciSync && return Ptr{var"##Ctag#1154"}(x + 8) + f === :keyedMutex && return Ptr{var"##Ctag#1155"}(x + 16) + f === :reserved && return Ptr{NTuple{10,Cuint}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1152", f::Symbol) + r = Ref{var"##Ctag#1152"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1152"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1152"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1152", private::Bool=false) + return (:fence, :nvSciSync, :keyedMutex, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipExternalSemaphoreWaitParams_st + data::NTuple{144,UInt8} +end + +function Base.getproperty(x::Ptr{hipExternalSemaphoreWaitParams_st}, f::Symbol) + f === :params && return Ptr{Cvoid}(x + 0) + f === :flags && return Ptr{Cuint}(x + 72) + f === :reserved && return Ptr{NTuple{16,Cuint}}(x + 76) + return getfield(x, f) +end + +function Base.getproperty(x::hipExternalSemaphoreWaitParams_st, f::Symbol) + r = Ref{hipExternalSemaphoreWaitParams_st}(x) + ptr = Base.unsafe_convert(Ptr{hipExternalSemaphoreWaitParams_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipExternalSemaphoreWaitParams_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipExternalSemaphoreWaitParams_st, private::Bool=false) + return (:params, :flags, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipExternalSemaphoreWaitParams = hipExternalSemaphoreWaitParams_st + +function __hipGetPCH(pch, size) + @ccall librocprofiler_sdk_tool.__hipGetPCH(pch::Ptr{Ptr{Cchar}}, + size::Ptr{Cuint})::Cvoid +end + +@cenum hipGraphicsRegisterFlags::UInt32 begin + hipGraphicsRegisterFlagsNone = 0 + hipGraphicsRegisterFlagsReadOnly = 1 + hipGraphicsRegisterFlagsWriteDiscard = 2 + hipGraphicsRegisterFlagsSurfaceLoadStore = 4 + hipGraphicsRegisterFlagsTextureGather = 8 +end + +mutable struct _hipGraphicsResource end + +const hipGraphicsResource = _hipGraphicsResource + +const hipGraphicsResource_t = Ptr{hipGraphicsResource} + +mutable struct ihipGraph end + +const hipGraph_t = Ptr{ihipGraph} + +mutable struct hipGraphNode end + +const hipGraphNode_t = Ptr{hipGraphNode} + +mutable struct hipGraphExec end + +const hipGraphExec_t = Ptr{hipGraphExec} + +mutable struct hipUserObject end + +const hipUserObject_t = Ptr{hipUserObject} + +@cenum hipGraphNodeType::UInt32 begin + hipGraphNodeTypeKernel = 0 + hipGraphNodeTypeMemcpy = 1 + hipGraphNodeTypeMemset = 2 + hipGraphNodeTypeHost = 3 + hipGraphNodeTypeGraph = 4 + hipGraphNodeTypeEmpty = 5 + hipGraphNodeTypeWaitEvent = 6 + hipGraphNodeTypeEventRecord = 7 + hipGraphNodeTypeExtSemaphoreSignal = 8 + hipGraphNodeTypeExtSemaphoreWait = 9 + hipGraphNodeTypeMemAlloc = 10 + hipGraphNodeTypeMemFree = 11 + hipGraphNodeTypeMemcpyFromSymbol = 12 + hipGraphNodeTypeMemcpyToSymbol = 13 + hipGraphNodeTypeBatchMemOp = 14 + hipGraphNodeTypeCount = 15 +end + +# typedef void ( * hipHostFn_t ) ( void * userData ) +const hipHostFn_t = Ptr{Cvoid} + +struct hipHostNodeParams + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{hipHostNodeParams}, f::Symbol) + f === :fn && return Ptr{hipHostFn_t}(x + 0) + f === :userData && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::hipHostNodeParams, f::Symbol) + r = Ref{hipHostNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipHostNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipHostNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipHostNodeParams, private::Bool=false) + return (:fn, :userData, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipKernelNodeParams + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{hipKernelNodeParams}, f::Symbol) + f === :blockDim && return Ptr{dim3}(x + 0) + f === :extra && return Ptr{Ptr{Ptr{Cvoid}}}(x + 16) + f === :func && return Ptr{Ptr{Cvoid}}(x + 24) + f === :gridDim && return Ptr{dim3}(x + 32) + f === :kernelParams && return Ptr{Ptr{Ptr{Cvoid}}}(x + 48) + f === :sharedMemBytes && return Ptr{Cuint}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::hipKernelNodeParams, f::Symbol) + r = Ref{hipKernelNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipKernelNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipKernelNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipKernelNodeParams, private::Bool=false) + return (:blockDim, :extra, :func, :gridDim, :kernelParams, :sharedMemBytes, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipMemsetParams + data::NTuple{48,UInt8} +end + +function Base.getproperty(x::Ptr{hipMemsetParams}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :elementSize && return Ptr{Cuint}(x + 8) + f === :height && return Ptr{Csize_t}(x + 16) + f === :pitch && return Ptr{Csize_t}(x + 24) + f === :value && return Ptr{Cuint}(x + 32) + f === :width && return Ptr{Csize_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::hipMemsetParams, f::Symbol) + r = Ref{hipMemsetParams}(x) + ptr = Base.unsafe_convert(Ptr{hipMemsetParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipMemsetParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipMemsetParams, private::Bool=false) + return (:dst, :elementSize, :height, :pitch, :value, :width, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipMemAllocNodeParams + data::NTuple{120,UInt8} +end + +function Base.getproperty(x::Ptr{hipMemAllocNodeParams}, f::Symbol) + f === :poolProps && return Ptr{hipMemPoolProps}(x + 0) + f === :accessDescs && return Ptr{Ptr{hipMemAccessDesc}}(x + 88) + f === :accessDescCount && return Ptr{Csize_t}(x + 96) + f === :bytesize && return Ptr{Csize_t}(x + 104) + f === :dptr && return Ptr{Ptr{Cvoid}}(x + 112) + return getfield(x, f) +end + +function Base.getproperty(x::hipMemAllocNodeParams, f::Symbol) + r = Ref{hipMemAllocNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipMemAllocNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipMemAllocNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipMemAllocNodeParams, private::Bool=false) + return (:poolProps, :accessDescs, :accessDescCount, :bytesize, :dptr, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hipAccessProperty::UInt32 begin + hipAccessPropertyNormal = 0 + hipAccessPropertyStreaming = 1 + hipAccessPropertyPersisting = 2 +end + +struct hipAccessPolicyWindow + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{hipAccessPolicyWindow}, f::Symbol) + f === :base_ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :hitProp && return Ptr{hipAccessProperty}(x + 8) + f === :hitRatio && return Ptr{Cfloat}(x + 12) + f === :missProp && return Ptr{hipAccessProperty}(x + 16) + f === :num_bytes && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::hipAccessPolicyWindow, f::Symbol) + r = Ref{hipAccessPolicyWindow}(x) + ptr = Base.unsafe_convert(Ptr{hipAccessPolicyWindow}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipAccessPolicyWindow}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipAccessPolicyWindow, private::Bool=false) + return (:base_ptr, :hitProp, :hitRatio, :missProp, :num_bytes, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct HIP_MEMSET_NODE_PARAMS + data::NTuple{40,UInt8} +end + +function Base.getproperty(x::Ptr{HIP_MEMSET_NODE_PARAMS}, f::Symbol) + f === :dst && return Ptr{hipDeviceptr_t}(x + 0) + f === :pitch && return Ptr{Csize_t}(x + 8) + f === :value && return Ptr{Cuint}(x + 16) + f === :elementSize && return Ptr{Cuint}(x + 20) + f === :width && return Ptr{Csize_t}(x + 24) + f === :height && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::HIP_MEMSET_NODE_PARAMS, f::Symbol) + r = Ref{HIP_MEMSET_NODE_PARAMS}(x) + ptr = Base.unsafe_convert(Ptr{HIP_MEMSET_NODE_PARAMS}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HIP_MEMSET_NODE_PARAMS}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HIP_MEMSET_NODE_PARAMS, private::Bool=false) + return (:dst, :pitch, :value, :elementSize, :width, :height, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hipGraphExecUpdateResult::UInt32 begin + hipGraphExecUpdateSuccess = 0 + hipGraphExecUpdateError = 1 + hipGraphExecUpdateErrorTopologyChanged = 2 + hipGraphExecUpdateErrorNodeTypeChanged = 3 + hipGraphExecUpdateErrorFunctionChanged = 4 + hipGraphExecUpdateErrorParametersChanged = 5 + hipGraphExecUpdateErrorNotSupported = 6 + hipGraphExecUpdateErrorUnsupportedFunctionChange = 7 +end + +@cenum hipStreamCaptureMode::UInt32 begin + hipStreamCaptureModeGlobal = 0 + hipStreamCaptureModeThreadLocal = 1 + hipStreamCaptureModeRelaxed = 2 +end + +@cenum hipStreamCaptureStatus::UInt32 begin + hipStreamCaptureStatusNone = 0 + hipStreamCaptureStatusActive = 1 + hipStreamCaptureStatusInvalidated = 2 +end + +@cenum hipStreamUpdateCaptureDependenciesFlags::UInt32 begin + hipStreamAddCaptureDependencies = 0 + hipStreamSetCaptureDependencies = 1 +end + +@cenum hipGraphMemAttributeType::UInt32 begin + hipGraphMemAttrUsedMemCurrent = 0 + hipGraphMemAttrUsedMemHigh = 1 + hipGraphMemAttrReservedMemCurrent = 2 + hipGraphMemAttrReservedMemHigh = 3 +end + +@cenum hipUserObjectFlags::UInt32 begin + hipUserObjectNoDestructorSync = 1 +end + +@cenum hipUserObjectRetainFlags::UInt32 begin + hipGraphUserObjectMove = 1 +end + +@cenum hipGraphInstantiateFlags::UInt32 begin + hipGraphInstantiateFlagAutoFreeOnLaunch = 1 + hipGraphInstantiateFlagUpload = 2 + hipGraphInstantiateFlagDeviceLaunch = 4 + hipGraphInstantiateFlagUseNodePriority = 8 +end + +@cenum hipGraphDebugDotFlags::UInt32 begin + hipGraphDebugDotFlagsVerbose = 1 + hipGraphDebugDotFlagsKernelNodeParams = 4 + hipGraphDebugDotFlagsMemcpyNodeParams = 8 + hipGraphDebugDotFlagsMemsetNodeParams = 16 + hipGraphDebugDotFlagsHostNodeParams = 32 + hipGraphDebugDotFlagsEventNodeParams = 64 + hipGraphDebugDotFlagsExtSemasSignalNodeParams = 128 + hipGraphDebugDotFlagsExtSemasWaitNodeParams = 256 + hipGraphDebugDotFlagsKernelNodeAttributes = 512 + hipGraphDebugDotFlagsHandles = 1024 +end + +@cenum hipGraphInstantiateResult::UInt32 begin + hipGraphInstantiateSuccess = 0 + hipGraphInstantiateError = 1 + hipGraphInstantiateInvalidStructure = 2 + hipGraphInstantiateNodeOperationNotSupported = 3 + hipGraphInstantiateMultipleDevicesNotSupported = 4 +end + +struct hipGraphInstantiateParams + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{hipGraphInstantiateParams}, f::Symbol) + f === :errNode_out && return Ptr{hipGraphNode_t}(x + 0) + f === :flags && return Ptr{Culonglong}(x + 8) + f === :result_out && return Ptr{hipGraphInstantiateResult}(x + 16) + f === :uploadStream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::hipGraphInstantiateParams, f::Symbol) + r = Ref{hipGraphInstantiateParams}(x) + ptr = Base.unsafe_convert(Ptr{hipGraphInstantiateParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipGraphInstantiateParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipGraphInstantiateParams, private::Bool=false) + return (:errNode_out, :flags, :result_out, :uploadStream, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#402" + compressionType::Cuchar + gpuDirectRDMACapable::Cuchar + usage::Cushort +end +function Base.getproperty(x::Ptr{var"##Ctag#402"}, f::Symbol) + f === :compressionType && return Ptr{Cuchar}(x + 0) + f === :gpuDirectRDMACapable && return Ptr{Cuchar}(x + 1) + f === :usage && return Ptr{Cushort}(x + 2) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#402", f::Symbol) + r = Ref{var"##Ctag#402"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#402"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#402"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct hipMemAllocationProp + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{hipMemAllocationProp}, f::Symbol) + f === :type && return Ptr{hipMemAllocationType}(x + 0) + f === + Symbol("union hipMemAllocationProp::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:1605:5)") && + return Ptr{Cvoid}(x + 0) + f === :location && return Ptr{hipMemLocation}(x + 8) + f === :win32HandleMetaData && return Ptr{Ptr{Cvoid}}(x + 16) + f === :allocFlags && return Ptr{var"##Ctag#402"}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::hipMemAllocationProp, f::Symbol) + r = Ref{hipMemAllocationProp}(x) + ptr = Base.unsafe_convert(Ptr{hipMemAllocationProp}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipMemAllocationProp}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipMemAllocationProp, private::Bool=false) + return (:type, + Symbol("union hipMemAllocationProp::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:1605:5)"), + :location, :win32HandleMetaData, :allocFlags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipExternalSemaphoreSignalNodeParams + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{hipExternalSemaphoreSignalNodeParams}, f::Symbol) + f === :extSemArray && return Ptr{Ptr{hipExternalSemaphore_t}}(x + 0) + f === :paramsArray && return Ptr{Ptr{hipExternalSemaphoreSignalParams}}(x + 8) + f === :numExtSems && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::hipExternalSemaphoreSignalNodeParams, f::Symbol) + r = Ref{hipExternalSemaphoreSignalNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipExternalSemaphoreSignalNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipExternalSemaphoreSignalNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipExternalSemaphoreSignalNodeParams, private::Bool=false) + return (:extSemArray, :paramsArray, :numExtSems, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipExternalSemaphoreWaitNodeParams + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{hipExternalSemaphoreWaitNodeParams}, f::Symbol) + f === :extSemArray && return Ptr{Ptr{hipExternalSemaphore_t}}(x + 0) + f === :paramsArray && return Ptr{Ptr{hipExternalSemaphoreWaitParams}}(x + 8) + f === :numExtSems && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::hipExternalSemaphoreWaitNodeParams, f::Symbol) + r = Ref{hipExternalSemaphoreWaitNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipExternalSemaphoreWaitNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipExternalSemaphoreWaitNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipExternalSemaphoreWaitNodeParams, private::Bool=false) + return (:extSemArray, :paramsArray, :numExtSems, if private + fieldnames(typeof(x)) + else + () + end...) +end + +mutable struct ihipMemGenericAllocationHandle end + +const hipMemGenericAllocationHandle_t = Ptr{ihipMemGenericAllocationHandle} + +@cenum hipMemAllocationGranularity_flags::UInt32 begin + hipMemAllocationGranularityMinimum = 0 + hipMemAllocationGranularityRecommended = 1 +end + +@cenum hipMemHandleType::UInt32 begin + hipMemHandleTypeGeneric = 0 +end + +@cenum hipMemOperationType::UInt32 begin + hipMemOperationTypeMap = 1 + hipMemOperationTypeUnmap = 2 +end + +@cenum hipArraySparseSubresourceType::UInt32 begin + hipArraySparseSubresourceTypeSparseLevel = 0 + hipArraySparseSubresourceTypeMiptail = 1 +end + +struct var"##Ctag#303" + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#303"}, f::Symbol) + f === :mipmap && return Ptr{hipMipmappedArray}(x + 0) + f === :array && return Ptr{hipArray_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#303", f::Symbol) + r = Ref{var"##Ctag#303"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#303"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#303"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#303", private::Bool=false) + return (:mipmap, :array, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#304" + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#304"}, f::Symbol) + f === :sparseLevel && return Ptr{var"##Ctag#305"}(x + 0) + f === :miptail && return Ptr{var"##Ctag#306"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#304", f::Symbol) + r = Ref{var"##Ctag#304"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#304"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#304"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#304", private::Bool=false) + return (:sparseLevel, :miptail, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#307" + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#307"}, f::Symbol) + f === :memHandle && return Ptr{hipMemGenericAllocationHandle_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#307", f::Symbol) + r = Ref{var"##Ctag#307"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#307"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#307"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#307", private::Bool=false) + return (:memHandle, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipArrayMapInfo + data::NTuple{152,UInt8} +end + +function Base.getproperty(x::Ptr{hipArrayMapInfo}, f::Symbol) + f === :resourceType && return Ptr{hipResourceType}(x + 0) + f === :resource && return Ptr{var"##Ctag#303"}(x + 8) + f === :subresourceType && return Ptr{hipArraySparseSubresourceType}(x + 72) + f === :subresource && return Ptr{var"##Ctag#304"}(x + 80) + f === :memOperationType && return Ptr{hipMemOperationType}(x + 112) + f === :memHandleType && return Ptr{hipMemHandleType}(x + 116) + f === :memHandle && return Ptr{var"##Ctag#307"}(x + 120) + f === :offset && return Ptr{Culonglong}(x + 128) + f === :deviceBitMask && return Ptr{Cuint}(x + 136) + f === :flags && return Ptr{Cuint}(x + 140) + f === :reserved && return Ptr{NTuple{2,Cuint}}(x + 144) + return getfield(x, f) +end + +function Base.getproperty(x::hipArrayMapInfo, f::Symbol) + r = Ref{hipArrayMapInfo}(x) + ptr = Base.unsafe_convert(Ptr{hipArrayMapInfo}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipArrayMapInfo}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipArrayMapInfo, private::Bool=false) + return (:resourceType, :resource, :subresourceType, :subresource, :memOperationType, + :memHandleType, :memHandle, :offset, :deviceBitMask, :flags, :reserved, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipMemcpyNodeParams + data::NTuple{176,UInt8} +end + +function Base.getproperty(x::Ptr{hipMemcpyNodeParams}, f::Symbol) + f === :flags && return Ptr{Cint}(x + 0) + f === :reserved && return Ptr{NTuple{3,Cint}}(x + 4) + f === :copyParams && return Ptr{hipMemcpy3DParms}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::hipMemcpyNodeParams, f::Symbol) + r = Ref{hipMemcpyNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipMemcpyNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipMemcpyNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipMemcpyNodeParams, private::Bool=false) + return (:flags, :reserved, :copyParams, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipChildGraphNodeParams + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{hipChildGraphNodeParams}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipChildGraphNodeParams, f::Symbol) + r = Ref{hipChildGraphNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipChildGraphNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipChildGraphNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipChildGraphNodeParams, private::Bool=false) + return (:graph, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipEventWaitNodeParams + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{hipEventWaitNodeParams}, f::Symbol) + f === :event && return Ptr{hipEvent_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipEventWaitNodeParams, f::Symbol) + r = Ref{hipEventWaitNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipEventWaitNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipEventWaitNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipEventWaitNodeParams, private::Bool=false) + return (:event, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipEventRecordNodeParams + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{hipEventRecordNodeParams}, f::Symbol) + f === :event && return Ptr{hipEvent_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipEventRecordNodeParams, f::Symbol) + r = Ref{hipEventRecordNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipEventRecordNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipEventRecordNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipEventRecordNodeParams, private::Bool=false) + return (:event, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipMemFreeNodeParams + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{hipMemFreeNodeParams}, f::Symbol) + f === :dptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hipMemFreeNodeParams, f::Symbol) + r = Ref{hipMemFreeNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipMemFreeNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipMemFreeNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipMemFreeNodeParams, private::Bool=false) + return (:dptr, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipGraphNodeParams + data::NTuple{256,UInt8} +end + +function Base.getproperty(x::Ptr{hipGraphNodeParams}, f::Symbol) + f === :type && return Ptr{hipGraphNodeType}(x + 0) + f === :reserved0 && return Ptr{NTuple{3,Cint}}(x + 4) + f === + Symbol("union hipGraphNodeParams::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:1760:5)") && + return Ptr{Cvoid}(x + 0) + f === :reserved2 && return Ptr{Clonglong}(x + 248) + return getfield(x, f) +end + +function Base.getproperty(x::hipGraphNodeParams, f::Symbol) + r = Ref{hipGraphNodeParams}(x) + ptr = Base.unsafe_convert(Ptr{hipGraphNodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipGraphNodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipGraphNodeParams, private::Bool=false) + return (:type, :reserved0, + Symbol("union hipGraphNodeParams::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:1760:5)"), + :reserved2, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hipGraphDependencyType::UInt32 begin + hipGraphDependencyTypeDefault = 0 + hipGraphDependencyTypeProgrammatic = 1 +end + +struct hipGraphEdgeData + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{hipGraphEdgeData}, f::Symbol) + f === :from_port && return Ptr{Cuchar}(x + 0) + f === :reserved && return Ptr{NTuple{5,Cuchar}}(x + 1) + f === :to_port && return Ptr{Cuchar}(x + 6) + f === :type && return Ptr{Cuchar}(x + 7) + return getfield(x, f) +end + +function Base.getproperty(x::hipGraphEdgeData, f::Symbol) + r = Ref{hipGraphEdgeData}(x) + ptr = Base.unsafe_convert(Ptr{hipGraphEdgeData}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipGraphEdgeData}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipGraphEdgeData, private::Bool=false) + return (:from_port, :reserved, :to_port, :type, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipLaunchConfig_st + data::NTuple{56,UInt8} +end + +function Base.getproperty(x::Ptr{hipLaunchConfig_st}, f::Symbol) + f === :gridDim && return Ptr{dim3}(x + 0) + f === :blockDim && return Ptr{dim3}(x + 12) + f === :dynamicSmemBytes && return Ptr{Csize_t}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + f === :attrs && return Ptr{Ptr{hipLaunchAttribute}}(x + 40) + f === :numAttrs && return Ptr{Cuint}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::hipLaunchConfig_st, f::Symbol) + r = Ref{hipLaunchConfig_st}(x) + ptr = Base.unsafe_convert(Ptr{hipLaunchConfig_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipLaunchConfig_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipLaunchConfig_st, private::Bool=false) + return (:gridDim, :blockDim, :dynamicSmemBytes, :stream, :attrs, :numAttrs, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hipLaunchConfig_t = hipLaunchConfig_st + +struct HIP_LAUNCH_CONFIG_st + data::NTuple{56,UInt8} +end + +function Base.getproperty(x::Ptr{HIP_LAUNCH_CONFIG_st}, f::Symbol) + f === :gridDimX && return Ptr{Cuint}(x + 0) + f === :gridDimY && return Ptr{Cuint}(x + 4) + f === :gridDimZ && return Ptr{Cuint}(x + 8) + f === :blockDimX && return Ptr{Cuint}(x + 12) + f === :blockDimY && return Ptr{Cuint}(x + 16) + f === :blockDimZ && return Ptr{Cuint}(x + 20) + f === :sharedMemBytes && return Ptr{Cuint}(x + 24) + f === :hStream && return Ptr{hipStream_t}(x + 32) + f === :attrs && return Ptr{Ptr{hipLaunchAttribute}}(x + 40) + f === :numAttrs && return Ptr{Cuint}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::HIP_LAUNCH_CONFIG_st, f::Symbol) + r = Ref{HIP_LAUNCH_CONFIG_st}(x) + ptr = Base.unsafe_convert(Ptr{HIP_LAUNCH_CONFIG_st}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{HIP_LAUNCH_CONFIG_st}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::HIP_LAUNCH_CONFIG_st, private::Bool=false) + return (:gridDimX, :gridDimY, :gridDimZ, :blockDimX, :blockDimY, :blockDimZ, + :sharedMemBytes, :hStream, :attrs, :numAttrs, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const HIP_LAUNCH_CONFIG = HIP_LAUNCH_CONFIG_st + +@cenum hipMemRangeHandleType::UInt32 begin + hipMemRangeHandleTypeDmaBufFd = 1 + hipMemRangeHandleTypeMax = 2147483647 +end + +@cenum hipMemRangeFlags::UInt32 begin + hipMemRangeFlagDmaBufMappingTypePcie = 1 + hipMemRangeFlagsMax = 2147483647 +end + +function hipInit(flags) + @ccall librocprofiler_sdk_tool.hipInit(flags::Cuint)::hipError_t +end + +function hipDriverGetVersion(driverVersion) + @ccall librocprofiler_sdk_tool.hipDriverGetVersion(driverVersion::Ptr{Cint})::hipError_t +end + +function hipRuntimeGetVersion(runtimeVersion) + @ccall librocprofiler_sdk_tool.hipRuntimeGetVersion(runtimeVersion::Ptr{Cint})::hipError_t +end + +function hipDeviceGet(device, ordinal) + @ccall librocprofiler_sdk_tool.hipDeviceGet(device::Ptr{hipDevice_t}, + ordinal::Cint)::hipError_t +end + +function hipDeviceComputeCapability(major, minor, device) + @ccall librocprofiler_sdk_tool.hipDeviceComputeCapability(major::Ptr{Cint}, + minor::Ptr{Cint}, + device::hipDevice_t)::hipError_t +end + +function hipDeviceGetName(name, len, device) + @ccall librocprofiler_sdk_tool.hipDeviceGetName(name::Ptr{Cchar}, len::Cint, + device::hipDevice_t)::hipError_t +end + +function hipDeviceGetUuid(uuid, device) + @ccall librocprofiler_sdk_tool.hipDeviceGetUuid(uuid::Ptr{hipUUID}, + device::hipDevice_t)::hipError_t +end + +function hipDeviceGetP2PAttribute(value, attr, srcDevice, dstDevice) + @ccall librocprofiler_sdk_tool.hipDeviceGetP2PAttribute(value::Ptr{Cint}, + attr::hipDeviceP2PAttr, + srcDevice::Cint, + dstDevice::Cint)::hipError_t +end + +function hipDeviceGetPCIBusId(pciBusId, len, device) + @ccall librocprofiler_sdk_tool.hipDeviceGetPCIBusId(pciBusId::Ptr{Cchar}, len::Cint, + device::Cint)::hipError_t +end + +function hipDeviceGetByPCIBusId(device, pciBusId) + @ccall librocprofiler_sdk_tool.hipDeviceGetByPCIBusId(device::Ptr{Cint}, + pciBusId::Ptr{Cchar})::hipError_t +end + +function hipDeviceTotalMem(bytes, device) + @ccall librocprofiler_sdk_tool.hipDeviceTotalMem(bytes::Ptr{Csize_t}, + device::hipDevice_t)::hipError_t +end + +function hipDeviceSynchronize() + @ccall librocprofiler_sdk_tool.hipDeviceSynchronize()::hipError_t +end + +function hipDeviceReset() + @ccall librocprofiler_sdk_tool.hipDeviceReset()::hipError_t +end + +function hipSetDevice(deviceId) + @ccall librocprofiler_sdk_tool.hipSetDevice(deviceId::Cint)::hipError_t +end + +function hipSetValidDevices(device_arr, len) + @ccall librocprofiler_sdk_tool.hipSetValidDevices(device_arr::Ptr{Cint}, + len::Cint)::hipError_t +end + +function hipGetDevice(deviceId) + @ccall librocprofiler_sdk_tool.hipGetDevice(deviceId::Ptr{Cint})::hipError_t +end + +function hipGetDeviceCount(count) + @ccall librocprofiler_sdk_tool.hipGetDeviceCount(count::Ptr{Cint})::hipError_t +end + +function hipDeviceGetAttribute(pi, attr, deviceId) + @ccall librocprofiler_sdk_tool.hipDeviceGetAttribute(pi::Ptr{Cint}, + attr::hipDeviceAttribute_t, + deviceId::Cint)::hipError_t +end + +function hipDeviceGetDefaultMemPool(mem_pool, device) + @ccall librocprofiler_sdk_tool.hipDeviceGetDefaultMemPool(mem_pool::Ptr{hipMemPool_t}, + device::Cint)::hipError_t +end + +function hipDeviceSetMemPool(device, mem_pool) + @ccall librocprofiler_sdk_tool.hipDeviceSetMemPool(device::Cint, + mem_pool::hipMemPool_t)::hipError_t +end + +function hipDeviceGetMemPool(mem_pool, device) + @ccall librocprofiler_sdk_tool.hipDeviceGetMemPool(mem_pool::Ptr{hipMemPool_t}, + device::Cint)::hipError_t +end + +function hipDeviceGetTexture1DLinearMaxWidth(mem_pool, device) + @ccall librocprofiler_sdk_tool.hipDeviceGetTexture1DLinearMaxWidth(mem_pool::Ptr{hipMemPool_t}, + device::Cint)::hipError_t +end + +function hipDeviceSetCacheConfig(cacheConfig) + @ccall librocprofiler_sdk_tool.hipDeviceSetCacheConfig(cacheConfig::hipFuncCache_t)::hipError_t +end + +function hipDeviceGetCacheConfig(cacheConfig) + @ccall librocprofiler_sdk_tool.hipDeviceGetCacheConfig(cacheConfig::Ptr{hipFuncCache_t})::hipError_t +end + +function hipDeviceGetLimit(pValue, limit) + @ccall librocprofiler_sdk_tool.hipDeviceGetLimit(pValue::Ptr{Csize_t}, + limit::hipLimit_t)::hipError_t +end + +function hipDeviceSetLimit(limit, value) + @ccall librocprofiler_sdk_tool.hipDeviceSetLimit(limit::hipLimit_t, + value::Csize_t)::hipError_t +end + +function hipDeviceGetSharedMemConfig(pConfig) + @ccall librocprofiler_sdk_tool.hipDeviceGetSharedMemConfig(pConfig::Ptr{hipSharedMemConfig})::hipError_t +end + +function hipGetDeviceFlags(flags) + @ccall librocprofiler_sdk_tool.hipGetDeviceFlags(flags::Ptr{Cuint})::hipError_t +end + +function hipDeviceSetSharedMemConfig(config) + @ccall librocprofiler_sdk_tool.hipDeviceSetSharedMemConfig(config::hipSharedMemConfig)::hipError_t +end + +function hipSetDeviceFlags(flags) + @ccall librocprofiler_sdk_tool.hipSetDeviceFlags(flags::Cuint)::hipError_t +end + +function hipExtGetLinkTypeAndHopCount(device1, device2, linktype, hopcount) + @ccall librocprofiler_sdk_tool.hipExtGetLinkTypeAndHopCount(device1::Cint, + device2::Cint, + linktype::Ptr{UInt32}, + hopcount::Ptr{UInt32})::hipError_t +end + +function hipIpcGetMemHandle(handle, devPtr) + @ccall librocprofiler_sdk_tool.hipIpcGetMemHandle(handle::Ptr{hipIpcMemHandle_t}, + devPtr::Ptr{Cvoid})::hipError_t +end + +function hipIpcOpenMemHandle(devPtr, handle, flags) + @ccall librocprofiler_sdk_tool.hipIpcOpenMemHandle(devPtr::Ptr{Ptr{Cvoid}}, + handle::hipIpcMemHandle_t, + flags::Cuint)::hipError_t +end + +function hipIpcCloseMemHandle(devPtr) + @ccall librocprofiler_sdk_tool.hipIpcCloseMemHandle(devPtr::Ptr{Cvoid})::hipError_t +end + +function hipIpcGetEventHandle(handle, event) + @ccall librocprofiler_sdk_tool.hipIpcGetEventHandle(handle::Ptr{hipIpcEventHandle_t}, + event::hipEvent_t)::hipError_t +end + +function hipIpcOpenEventHandle(event, handle) + @ccall librocprofiler_sdk_tool.hipIpcOpenEventHandle(event::Ptr{hipEvent_t}, + handle::hipIpcEventHandle_t)::hipError_t +end + +function hipFuncSetAttribute(func, attr, value) + @ccall librocprofiler_sdk_tool.hipFuncSetAttribute(func::Ptr{Cvoid}, + attr::hipFuncAttribute, + value::Cint)::hipError_t +end + +function hipFuncSetCacheConfig(func, config) + @ccall librocprofiler_sdk_tool.hipFuncSetCacheConfig(func::Ptr{Cvoid}, + config::hipFuncCache_t)::hipError_t +end + +function hipFuncSetSharedMemConfig(func, config) + @ccall librocprofiler_sdk_tool.hipFuncSetSharedMemConfig(func::Ptr{Cvoid}, + config::hipSharedMemConfig)::hipError_t +end + +function hipGetLastError() + @ccall librocprofiler_sdk_tool.hipGetLastError()::hipError_t +end + +function hipExtGetLastError() + @ccall librocprofiler_sdk_tool.hipExtGetLastError()::hipError_t +end + +function hipPeekAtLastError() + @ccall librocprofiler_sdk_tool.hipPeekAtLastError()::hipError_t +end + +function hipGetErrorName(hip_error) + @ccall librocprofiler_sdk_tool.hipGetErrorName(hip_error::hipError_t)::Ptr{Cchar} +end + +function hipGetErrorString(hipError) + @ccall librocprofiler_sdk_tool.hipGetErrorString(hipError::hipError_t)::Ptr{Cchar} +end + +function hipDrvGetErrorName(hipError, errorString) + @ccall librocprofiler_sdk_tool.hipDrvGetErrorName(hipError::hipError_t, + errorString::Ptr{Ptr{Cchar}})::hipError_t +end + +function hipDrvGetErrorString(hipError, errorString) + @ccall librocprofiler_sdk_tool.hipDrvGetErrorString(hipError::hipError_t, + errorString::Ptr{Ptr{Cchar}})::hipError_t +end + +function hipStreamCreate(stream) + @ccall librocprofiler_sdk_tool.hipStreamCreate(stream::Ptr{hipStream_t})::hipError_t +end + +function hipStreamCreateWithFlags(stream, flags) + @ccall librocprofiler_sdk_tool.hipStreamCreateWithFlags(stream::Ptr{hipStream_t}, + flags::Cuint)::hipError_t +end + +function hipStreamCreateWithPriority(stream, flags, priority) + @ccall librocprofiler_sdk_tool.hipStreamCreateWithPriority(stream::Ptr{hipStream_t}, + flags::Cuint, + priority::Cint)::hipError_t +end + +function hipDeviceGetStreamPriorityRange(leastPriority, greatestPriority) + @ccall librocprofiler_sdk_tool.hipDeviceGetStreamPriorityRange(leastPriority::Ptr{Cint}, + greatestPriority::Ptr{Cint})::hipError_t +end + +function hipStreamDestroy(stream) + @ccall librocprofiler_sdk_tool.hipStreamDestroy(stream::hipStream_t)::hipError_t +end + +function hipStreamQuery(stream) + @ccall librocprofiler_sdk_tool.hipStreamQuery(stream::hipStream_t)::hipError_t +end + +function hipStreamSynchronize(stream) + @ccall librocprofiler_sdk_tool.hipStreamSynchronize(stream::hipStream_t)::hipError_t +end + +function hipStreamWaitEvent(stream, event, flags) + @ccall librocprofiler_sdk_tool.hipStreamWaitEvent(stream::hipStream_t, + event::hipEvent_t, + flags::Cuint)::hipError_t +end + +function hipStreamGetFlags(stream, flags) + @ccall librocprofiler_sdk_tool.hipStreamGetFlags(stream::hipStream_t, + flags::Ptr{Cuint})::hipError_t +end + +function hipStreamGetPriority(stream, priority) + @ccall librocprofiler_sdk_tool.hipStreamGetPriority(stream::hipStream_t, + priority::Ptr{Cint})::hipError_t +end + +function hipStreamGetDevice(stream, device) + @ccall librocprofiler_sdk_tool.hipStreamGetDevice(stream::hipStream_t, + device::Ptr{hipDevice_t})::hipError_t +end + +function hipExtStreamCreateWithCUMask(stream, cuMaskSize, cuMask) + @ccall librocprofiler_sdk_tool.hipExtStreamCreateWithCUMask(stream::Ptr{hipStream_t}, + cuMaskSize::UInt32, + cuMask::Ptr{UInt32})::hipError_t +end + +function hipExtStreamGetCUMask(stream, cuMaskSize, cuMask) + @ccall librocprofiler_sdk_tool.hipExtStreamGetCUMask(stream::hipStream_t, + cuMaskSize::UInt32, + cuMask::Ptr{UInt32})::hipError_t +end + +# typedef void ( * hipStreamCallback_t ) ( hipStream_t stream , hipError_t status , void * userData ) +const hipStreamCallback_t = Ptr{Cvoid} + +function hipStreamAddCallback(stream, callback, userData, flags) + @ccall librocprofiler_sdk_tool.hipStreamAddCallback(stream::hipStream_t, + callback::hipStreamCallback_t, + userData::Ptr{Cvoid}, + flags::Cuint)::hipError_t +end + +function hipStreamWaitValue32(stream, ptr, value, flags, mask) + @ccall librocprofiler_sdk_tool.hipStreamWaitValue32(stream::hipStream_t, + ptr::Ptr{Cvoid}, value::UInt32, + flags::Cuint, + mask::UInt32)::hipError_t +end + +function hipStreamWaitValue64(stream, ptr, value, flags, mask) + @ccall librocprofiler_sdk_tool.hipStreamWaitValue64(stream::hipStream_t, + ptr::Ptr{Cvoid}, value::UInt64, + flags::Cuint, + mask::UInt64)::hipError_t +end + +function hipStreamWriteValue32(stream, ptr, value, flags) + @ccall librocprofiler_sdk_tool.hipStreamWriteValue32(stream::hipStream_t, + ptr::Ptr{Cvoid}, value::UInt32, + flags::Cuint)::hipError_t +end + +function hipStreamWriteValue64(stream, ptr, value, flags) + @ccall librocprofiler_sdk_tool.hipStreamWriteValue64(stream::hipStream_t, + ptr::Ptr{Cvoid}, value::UInt64, + flags::Cuint)::hipError_t +end + +function hipStreamBatchMemOp(stream, count, paramArray, flags) + @ccall librocprofiler_sdk_tool.hipStreamBatchMemOp(stream::hipStream_t, count::Cuint, + paramArray::Ptr{hipStreamBatchMemOpParams}, + flags::Cuint)::hipError_t +end + +function hipGraphAddBatchMemOpNode(phGraphNode, hGraph, dependencies, numDependencies, + nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphAddBatchMemOpNode(phGraphNode::Ptr{hipGraphNode_t}, + hGraph::hipGraph_t, + dependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + nodeParams::Ptr{hipBatchMemOpNodeParams})::hipError_t +end + +function hipGraphBatchMemOpNodeGetParams(hNode, nodeParams_out) + @ccall librocprofiler_sdk_tool.hipGraphBatchMemOpNodeGetParams(hNode::hipGraphNode_t, + nodeParams_out::Ptr{hipBatchMemOpNodeParams})::hipError_t +end + +function hipGraphBatchMemOpNodeSetParams(hNode, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphBatchMemOpNodeSetParams(hNode::hipGraphNode_t, + nodeParams::Ptr{hipBatchMemOpNodeParams})::hipError_t +end + +function hipGraphExecBatchMemOpNodeSetParams(hGraphExec, hNode, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExecBatchMemOpNodeSetParams(hGraphExec::hipGraphExec_t, + hNode::hipGraphNode_t, + nodeParams::Ptr{hipBatchMemOpNodeParams})::hipError_t +end + +function hipEventCreateWithFlags(event, flags) + @ccall librocprofiler_sdk_tool.hipEventCreateWithFlags(event::Ptr{hipEvent_t}, + flags::Cuint)::hipError_t +end + +function hipEventCreate(event) + @ccall librocprofiler_sdk_tool.hipEventCreate(event::Ptr{hipEvent_t})::hipError_t +end + +function hipEventRecordWithFlags(event, stream, flags) + @ccall librocprofiler_sdk_tool.hipEventRecordWithFlags(event::hipEvent_t, + stream::hipStream_t, + flags::Cuint)::hipError_t +end + +function hipEventRecord(event, stream) + @ccall librocprofiler_sdk_tool.hipEventRecord(event::hipEvent_t, + stream::hipStream_t)::hipError_t +end + +function hipEventDestroy(event) + @ccall librocprofiler_sdk_tool.hipEventDestroy(event::hipEvent_t)::hipError_t +end + +function hipEventSynchronize(event) + @ccall librocprofiler_sdk_tool.hipEventSynchronize(event::hipEvent_t)::hipError_t +end + +function hipEventElapsedTime(ms, start, stop) + @ccall librocprofiler_sdk_tool.hipEventElapsedTime(ms::Ptr{Cfloat}, start::hipEvent_t, + stop::hipEvent_t)::hipError_t +end + +function hipEventQuery(event) + @ccall librocprofiler_sdk_tool.hipEventQuery(event::hipEvent_t)::hipError_t +end + +function hipPointerSetAttribute(value, attribute, ptr) + @ccall librocprofiler_sdk_tool.hipPointerSetAttribute(value::Ptr{Cvoid}, + attribute::hipPointer_attribute, + ptr::hipDeviceptr_t)::hipError_t +end + +function hipPointerGetAttributes(attributes, ptr) + @ccall librocprofiler_sdk_tool.hipPointerGetAttributes(attributes::Ptr{hipPointerAttribute_t}, + ptr::Ptr{Cvoid})::hipError_t +end + +function hipPointerGetAttribute(data, attribute, ptr) + @ccall librocprofiler_sdk_tool.hipPointerGetAttribute(data::Ptr{Cvoid}, + attribute::hipPointer_attribute, + ptr::hipDeviceptr_t)::hipError_t +end + +function hipDrvPointerGetAttributes(numAttributes, attributes, data, ptr) + @ccall librocprofiler_sdk_tool.hipDrvPointerGetAttributes(numAttributes::Cuint, + attributes::Ptr{hipPointer_attribute}, + data::Ptr{Ptr{Cvoid}}, + ptr::hipDeviceptr_t)::hipError_t +end + +function hipImportExternalSemaphore(extSem_out, semHandleDesc) + @ccall librocprofiler_sdk_tool.hipImportExternalSemaphore(extSem_out::Ptr{hipExternalSemaphore_t}, + semHandleDesc::Ptr{hipExternalSemaphoreHandleDesc})::hipError_t +end + +function hipSignalExternalSemaphoresAsync(extSemArray, paramsArray, numExtSems, stream) + @ccall librocprofiler_sdk_tool.hipSignalExternalSemaphoresAsync(extSemArray::Ptr{hipExternalSemaphore_t}, + paramsArray::Ptr{hipExternalSemaphoreSignalParams}, + numExtSems::Cuint, + stream::hipStream_t)::hipError_t +end + +function hipWaitExternalSemaphoresAsync(extSemArray, paramsArray, numExtSems, stream) + @ccall librocprofiler_sdk_tool.hipWaitExternalSemaphoresAsync(extSemArray::Ptr{hipExternalSemaphore_t}, + paramsArray::Ptr{hipExternalSemaphoreWaitParams}, + numExtSems::Cuint, + stream::hipStream_t)::hipError_t +end + +function hipDestroyExternalSemaphore(extSem) + @ccall librocprofiler_sdk_tool.hipDestroyExternalSemaphore(extSem::hipExternalSemaphore_t)::hipError_t +end + +function hipImportExternalMemory(extMem_out, memHandleDesc) + @ccall librocprofiler_sdk_tool.hipImportExternalMemory(extMem_out::Ptr{hipExternalMemory_t}, + memHandleDesc::Ptr{hipExternalMemoryHandleDesc})::hipError_t +end + +function hipExternalMemoryGetMappedBuffer(devPtr, extMem, bufferDesc) + @ccall librocprofiler_sdk_tool.hipExternalMemoryGetMappedBuffer(devPtr::Ptr{Ptr{Cvoid}}, + extMem::hipExternalMemory_t, + bufferDesc::Ptr{hipExternalMemoryBufferDesc})::hipError_t +end + +function hipDestroyExternalMemory(extMem) + @ccall librocprofiler_sdk_tool.hipDestroyExternalMemory(extMem::hipExternalMemory_t)::hipError_t +end + +function hipExternalMemoryGetMappedMipmappedArray(mipmap, extMem, mipmapDesc) + @ccall librocprofiler_sdk_tool.hipExternalMemoryGetMappedMipmappedArray(mipmap::Ptr{hipMipmappedArray_t}, + extMem::hipExternalMemory_t, + mipmapDesc::Ptr{hipExternalMemoryMipmappedArrayDesc})::hipError_t +end + +function hipMalloc(ptr, size) + @ccall librocprofiler_sdk_tool.hipMalloc(ptr::Ptr{Ptr{Cvoid}}, + size::Csize_t)::hipError_t +end + +function hipExtMallocWithFlags(ptr, sizeBytes, flags) + @ccall librocprofiler_sdk_tool.hipExtMallocWithFlags(ptr::Ptr{Ptr{Cvoid}}, + sizeBytes::Csize_t, + flags::Cuint)::hipError_t +end + +function hipMallocHost(ptr, size) + @ccall librocprofiler_sdk_tool.hipMallocHost(ptr::Ptr{Ptr{Cvoid}}, + size::Csize_t)::hipError_t +end + +function hipMemAllocHost(ptr, size) + @ccall librocprofiler_sdk_tool.hipMemAllocHost(ptr::Ptr{Ptr{Cvoid}}, + size::Csize_t)::hipError_t +end + +function hipHostMalloc(ptr, size, flags) + @ccall librocprofiler_sdk_tool.hipHostMalloc(ptr::Ptr{Ptr{Cvoid}}, size::Csize_t, + flags::Cuint)::hipError_t +end + +function hipMallocManaged(dev_ptr, size, flags) + @ccall librocprofiler_sdk_tool.hipMallocManaged(dev_ptr::Ptr{Ptr{Cvoid}}, size::Csize_t, + flags::Cuint)::hipError_t +end + +function hipMemPrefetchAsync(dev_ptr, count, device, stream) + @ccall librocprofiler_sdk_tool.hipMemPrefetchAsync(dev_ptr::Ptr{Cvoid}, count::Csize_t, + device::Cint, + stream::hipStream_t)::hipError_t +end + +function hipMemAdvise(dev_ptr, count, advice, device) + @ccall librocprofiler_sdk_tool.hipMemAdvise(dev_ptr::Ptr{Cvoid}, count::Csize_t, + advice::hipMemoryAdvise, + device::Cint)::hipError_t +end + +function hipMemRangeGetAttribute(data, data_size, attribute, dev_ptr, count) + @ccall librocprofiler_sdk_tool.hipMemRangeGetAttribute(data::Ptr{Cvoid}, + data_size::Csize_t, + attribute::hipMemRangeAttribute, + dev_ptr::Ptr{Cvoid}, + count::Csize_t)::hipError_t +end + +function hipMemRangeGetAttributes(data, data_sizes, attributes, num_attributes, dev_ptr, + count) + @ccall librocprofiler_sdk_tool.hipMemRangeGetAttributes(data::Ptr{Ptr{Cvoid}}, + data_sizes::Ptr{Csize_t}, + attributes::Ptr{hipMemRangeAttribute}, + num_attributes::Csize_t, + dev_ptr::Ptr{Cvoid}, + count::Csize_t)::hipError_t +end + +function hipStreamAttachMemAsync(stream, dev_ptr, length, flags) + @ccall librocprofiler_sdk_tool.hipStreamAttachMemAsync(stream::hipStream_t, + dev_ptr::Ptr{Cvoid}, + length::Csize_t, + flags::Cuint)::hipError_t +end + +function hipMallocAsync(dev_ptr, size, stream) + @ccall librocprofiler_sdk_tool.hipMallocAsync(dev_ptr::Ptr{Ptr{Cvoid}}, size::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipFreeAsync(dev_ptr, stream) + @ccall librocprofiler_sdk_tool.hipFreeAsync(dev_ptr::Ptr{Cvoid}, + stream::hipStream_t)::hipError_t +end + +function hipMemPoolTrimTo(mem_pool, min_bytes_to_hold) + @ccall librocprofiler_sdk_tool.hipMemPoolTrimTo(mem_pool::hipMemPool_t, + min_bytes_to_hold::Csize_t)::hipError_t +end + +function hipMemPoolSetAttribute(mem_pool, attr, value) + @ccall librocprofiler_sdk_tool.hipMemPoolSetAttribute(mem_pool::hipMemPool_t, + attr::hipMemPoolAttr, + value::Ptr{Cvoid})::hipError_t +end + +function hipMemPoolGetAttribute(mem_pool, attr, value) + @ccall librocprofiler_sdk_tool.hipMemPoolGetAttribute(mem_pool::hipMemPool_t, + attr::hipMemPoolAttr, + value::Ptr{Cvoid})::hipError_t +end + +function hipMemPoolSetAccess(mem_pool, desc_list, count) + @ccall librocprofiler_sdk_tool.hipMemPoolSetAccess(mem_pool::hipMemPool_t, + desc_list::Ptr{hipMemAccessDesc}, + count::Csize_t)::hipError_t +end + +function hipMemPoolGetAccess(flags, mem_pool, location) + @ccall librocprofiler_sdk_tool.hipMemPoolGetAccess(flags::Ptr{hipMemAccessFlags}, + mem_pool::hipMemPool_t, + location::Ptr{hipMemLocation})::hipError_t +end + +function hipMemPoolCreate(mem_pool, pool_props) + @ccall librocprofiler_sdk_tool.hipMemPoolCreate(mem_pool::Ptr{hipMemPool_t}, + pool_props::Ptr{hipMemPoolProps})::hipError_t +end + +function hipMemPoolDestroy(mem_pool) + @ccall librocprofiler_sdk_tool.hipMemPoolDestroy(mem_pool::hipMemPool_t)::hipError_t +end + +function hipMallocFromPoolAsync(dev_ptr, size, mem_pool, stream) + @ccall librocprofiler_sdk_tool.hipMallocFromPoolAsync(dev_ptr::Ptr{Ptr{Cvoid}}, + size::Csize_t, + mem_pool::hipMemPool_t, + stream::hipStream_t)::hipError_t +end + +function hipMemPoolExportToShareableHandle(shared_handle, mem_pool, handle_type, flags) + @ccall librocprofiler_sdk_tool.hipMemPoolExportToShareableHandle(shared_handle::Ptr{Cvoid}, + mem_pool::hipMemPool_t, + handle_type::hipMemAllocationHandleType, + flags::Cuint)::hipError_t +end + +function hipMemPoolImportFromShareableHandle(mem_pool, shared_handle, handle_type, flags) + @ccall librocprofiler_sdk_tool.hipMemPoolImportFromShareableHandle(mem_pool::Ptr{hipMemPool_t}, + shared_handle::Ptr{Cvoid}, + handle_type::hipMemAllocationHandleType, + flags::Cuint)::hipError_t +end + +function hipMemPoolExportPointer(export_data, dev_ptr) + @ccall librocprofiler_sdk_tool.hipMemPoolExportPointer(export_data::Ptr{hipMemPoolPtrExportData}, + dev_ptr::Ptr{Cvoid})::hipError_t +end + +function hipMemPoolImportPointer(dev_ptr, mem_pool, export_data) + @ccall librocprofiler_sdk_tool.hipMemPoolImportPointer(dev_ptr::Ptr{Ptr{Cvoid}}, + mem_pool::hipMemPool_t, + export_data::Ptr{hipMemPoolPtrExportData})::hipError_t +end + +function hipHostAlloc(ptr, size, flags) + @ccall librocprofiler_sdk_tool.hipHostAlloc(ptr::Ptr{Ptr{Cvoid}}, size::Csize_t, + flags::Cuint)::hipError_t +end + +function hipHostGetDevicePointer(devPtr, hstPtr, flags) + @ccall librocprofiler_sdk_tool.hipHostGetDevicePointer(devPtr::Ptr{Ptr{Cvoid}}, + hstPtr::Ptr{Cvoid}, + flags::Cuint)::hipError_t +end + +function hipHostGetFlags(flagsPtr, hostPtr) + @ccall librocprofiler_sdk_tool.hipHostGetFlags(flagsPtr::Ptr{Cuint}, + hostPtr::Ptr{Cvoid})::hipError_t +end + +function hipHostRegister(hostPtr, sizeBytes, flags) + @ccall librocprofiler_sdk_tool.hipHostRegister(hostPtr::Ptr{Cvoid}, sizeBytes::Csize_t, + flags::Cuint)::hipError_t +end + +function hipHostUnregister(hostPtr) + @ccall librocprofiler_sdk_tool.hipHostUnregister(hostPtr::Ptr{Cvoid})::hipError_t +end + +function hipMallocPitch(ptr, pitch, width, height) + @ccall librocprofiler_sdk_tool.hipMallocPitch(ptr::Ptr{Ptr{Cvoid}}, pitch::Ptr{Csize_t}, + width::Csize_t, + height::Csize_t)::hipError_t +end + +function hipMemAllocPitch(dptr, pitch, widthInBytes, height, elementSizeBytes) + @ccall librocprofiler_sdk_tool.hipMemAllocPitch(dptr::Ptr{hipDeviceptr_t}, + pitch::Ptr{Csize_t}, + widthInBytes::Csize_t, height::Csize_t, + elementSizeBytes::Cuint)::hipError_t +end + +function hipFree(ptr) + @ccall librocprofiler_sdk_tool.hipFree(ptr::Ptr{Cvoid})::hipError_t +end + +function hipFreeHost(ptr) + @ccall librocprofiler_sdk_tool.hipFreeHost(ptr::Ptr{Cvoid})::hipError_t +end + +function hipHostFree(ptr) + @ccall librocprofiler_sdk_tool.hipHostFree(ptr::Ptr{Cvoid})::hipError_t +end + +function hipMemcpy(dst, src, sizeBytes, kind) + @ccall librocprofiler_sdk_tool.hipMemcpy(dst::Ptr{Cvoid}, src::Ptr{Cvoid}, + sizeBytes::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpyWithStream(dst, src, sizeBytes, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyWithStream(dst::Ptr{Cvoid}, src::Ptr{Cvoid}, + sizeBytes::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyHtoD(dst, src, sizeBytes) + @ccall librocprofiler_sdk_tool.hipMemcpyHtoD(dst::hipDeviceptr_t, src::Ptr{Cvoid}, + sizeBytes::Csize_t)::hipError_t +end + +function hipMemcpyDtoH(dst, src, sizeBytes) + @ccall librocprofiler_sdk_tool.hipMemcpyDtoH(dst::Ptr{Cvoid}, src::hipDeviceptr_t, + sizeBytes::Csize_t)::hipError_t +end + +function hipMemcpyDtoD(dst, src, sizeBytes) + @ccall librocprofiler_sdk_tool.hipMemcpyDtoD(dst::hipDeviceptr_t, src::hipDeviceptr_t, + sizeBytes::Csize_t)::hipError_t +end + +function hipMemcpyAtoD(dstDevice, srcArray, srcOffset, ByteCount) + @ccall librocprofiler_sdk_tool.hipMemcpyAtoD(dstDevice::hipDeviceptr_t, + srcArray::hipArray_t, srcOffset::Csize_t, + ByteCount::Csize_t)::hipError_t +end + +function hipMemcpyDtoA(dstArray, dstOffset, srcDevice, ByteCount) + @ccall librocprofiler_sdk_tool.hipMemcpyDtoA(dstArray::hipArray_t, dstOffset::Csize_t, + srcDevice::hipDeviceptr_t, + ByteCount::Csize_t)::hipError_t +end + +function hipMemcpyAtoA(dstArray, dstOffset, srcArray, srcOffset, ByteCount) + @ccall librocprofiler_sdk_tool.hipMemcpyAtoA(dstArray::hipArray_t, dstOffset::Csize_t, + srcArray::hipArray_t, srcOffset::Csize_t, + ByteCount::Csize_t)::hipError_t +end + +function hipMemcpyHtoDAsync(dst, src, sizeBytes, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyHtoDAsync(dst::hipDeviceptr_t, src::Ptr{Cvoid}, + sizeBytes::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyDtoHAsync(dst, src, sizeBytes, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyDtoHAsync(dst::Ptr{Cvoid}, src::hipDeviceptr_t, + sizeBytes::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyDtoDAsync(dst, src, sizeBytes, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyDtoDAsync(dst::hipDeviceptr_t, + src::hipDeviceptr_t, + sizeBytes::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyAtoHAsync(dstHost, srcArray, srcOffset, ByteCount, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyAtoHAsync(dstHost::Ptr{Cvoid}, + srcArray::hipArray_t, + srcOffset::Csize_t, + ByteCount::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyHtoAAsync(dstArray, dstOffset, srcHost, ByteCount, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyHtoAAsync(dstArray::hipArray_t, + dstOffset::Csize_t, + srcHost::Ptr{Cvoid}, + ByteCount::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipModuleGetGlobal(dptr, bytes, hmod, name) + @ccall librocprofiler_sdk_tool.hipModuleGetGlobal(dptr::Ptr{hipDeviceptr_t}, + bytes::Ptr{Csize_t}, + hmod::hipModule_t, + name::Ptr{Cchar})::hipError_t +end + +function hipGetSymbolAddress(devPtr, symbol) + @ccall librocprofiler_sdk_tool.hipGetSymbolAddress(devPtr::Ptr{Ptr{Cvoid}}, + symbol::Ptr{Cvoid})::hipError_t +end + +function hipGetSymbolSize(size, symbol) + @ccall librocprofiler_sdk_tool.hipGetSymbolSize(size::Ptr{Csize_t}, + symbol::Ptr{Cvoid})::hipError_t +end + +function hipGetProcAddress(symbol, pfn, hipVersion, flags, symbolStatus) + @ccall librocprofiler_sdk_tool.hipGetProcAddress(symbol::Ptr{Cchar}, + pfn::Ptr{Ptr{Cvoid}}, hipVersion::Cint, + flags::UInt64, + symbolStatus::Ptr{hipDriverProcAddressQueryResult})::hipError_t +end + +function hipMemcpyToSymbol(symbol, src, sizeBytes, offset, kind) + @ccall librocprofiler_sdk_tool.hipMemcpyToSymbol(symbol::Ptr{Cvoid}, src::Ptr{Cvoid}, + sizeBytes::Csize_t, offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpyToSymbolAsync(symbol, src, sizeBytes, offset, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyToSymbolAsync(symbol::Ptr{Cvoid}, + src::Ptr{Cvoid}, + sizeBytes::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyFromSymbol(dst, symbol, sizeBytes, offset, kind) + @ccall librocprofiler_sdk_tool.hipMemcpyFromSymbol(dst::Ptr{Cvoid}, symbol::Ptr{Cvoid}, + sizeBytes::Csize_t, offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpyFromSymbolAsync(dst, symbol, sizeBytes, offset, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyFromSymbolAsync(dst::Ptr{Cvoid}, + symbol::Ptr{Cvoid}, + sizeBytes::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyAsync(dst, src, sizeBytes, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyAsync(dst::Ptr{Cvoid}, src::Ptr{Cvoid}, + sizeBytes::Csize_t, kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemset(dst, value, sizeBytes) + @ccall librocprofiler_sdk_tool.hipMemset(dst::Ptr{Cvoid}, value::Cint, + sizeBytes::Csize_t)::hipError_t +end + +function hipMemsetD8(dest, value, count) + @ccall librocprofiler_sdk_tool.hipMemsetD8(dest::hipDeviceptr_t, value::Cuchar, + count::Csize_t)::hipError_t +end + +function hipMemsetD8Async(dest, value, count, stream) + @ccall librocprofiler_sdk_tool.hipMemsetD8Async(dest::hipDeviceptr_t, value::Cuchar, + count::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemsetD16(dest, value, count) + @ccall librocprofiler_sdk_tool.hipMemsetD16(dest::hipDeviceptr_t, value::Cushort, + count::Csize_t)::hipError_t +end + +function hipMemsetD16Async(dest, value, count, stream) + @ccall librocprofiler_sdk_tool.hipMemsetD16Async(dest::hipDeviceptr_t, value::Cushort, + count::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemsetD32(dest, value, count) + @ccall librocprofiler_sdk_tool.hipMemsetD32(dest::hipDeviceptr_t, value::Cint, + count::Csize_t)::hipError_t +end + +function hipMemsetAsync(dst, value, sizeBytes, stream) + @ccall librocprofiler_sdk_tool.hipMemsetAsync(dst::Ptr{Cvoid}, value::Cint, + sizeBytes::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemsetD32Async(dst, value, count, stream) + @ccall librocprofiler_sdk_tool.hipMemsetD32Async(dst::hipDeviceptr_t, value::Cint, + count::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemset2D(dst, pitch, value, width, height) + @ccall librocprofiler_sdk_tool.hipMemset2D(dst::Ptr{Cvoid}, pitch::Csize_t, value::Cint, + width::Csize_t, height::Csize_t)::hipError_t +end + +function hipMemset2DAsync(dst, pitch, value, width, height, stream) + @ccall librocprofiler_sdk_tool.hipMemset2DAsync(dst::Ptr{Cvoid}, pitch::Csize_t, + value::Cint, width::Csize_t, + height::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemset3D(pitchedDevPtr, value, extent) + @ccall librocprofiler_sdk_tool.hipMemset3D(pitchedDevPtr::hipPitchedPtr, value::Cint, + extent::hipExtent)::hipError_t +end + +function hipMemset3DAsync(pitchedDevPtr, value, extent, stream) + @ccall librocprofiler_sdk_tool.hipMemset3DAsync(pitchedDevPtr::hipPitchedPtr, + value::Cint, extent::hipExtent, + stream::hipStream_t)::hipError_t +end + +function hipMemGetInfo(free, total) + @ccall librocprofiler_sdk_tool.hipMemGetInfo(free::Ptr{Csize_t}, + total::Ptr{Csize_t})::hipError_t +end + +function hipMemPtrGetInfo(ptr, size) + @ccall librocprofiler_sdk_tool.hipMemPtrGetInfo(ptr::Ptr{Cvoid}, + size::Ptr{Csize_t})::hipError_t +end + +function hipMallocArray(array, desc, width, height, flags) + @ccall librocprofiler_sdk_tool.hipMallocArray(array::Ptr{hipArray_t}, + desc::Ptr{hipChannelFormatDesc}, + width::Csize_t, height::Csize_t, + flags::Cuint)::hipError_t +end + +function hipArrayCreate(pHandle, pAllocateArray) + @ccall librocprofiler_sdk_tool.hipArrayCreate(pHandle::Ptr{hipArray_t}, + pAllocateArray::Ptr{HIP_ARRAY_DESCRIPTOR})::hipError_t +end + +function hipArrayDestroy(array) + @ccall librocprofiler_sdk_tool.hipArrayDestroy(array::hipArray_t)::hipError_t +end + +function hipArray3DCreate(array, pAllocateArray) + @ccall librocprofiler_sdk_tool.hipArray3DCreate(array::Ptr{hipArray_t}, + pAllocateArray::Ptr{HIP_ARRAY3D_DESCRIPTOR})::hipError_t +end + +function hipMalloc3D(pitchedDevPtr, extent) + @ccall librocprofiler_sdk_tool.hipMalloc3D(pitchedDevPtr::Ptr{hipPitchedPtr}, + extent::hipExtent)::hipError_t +end + +function hipFreeArray(array) + @ccall librocprofiler_sdk_tool.hipFreeArray(array::hipArray_t)::hipError_t +end + +function hipMalloc3DArray(array, desc, extent, flags) + @ccall librocprofiler_sdk_tool.hipMalloc3DArray(array::Ptr{hipArray_t}, + desc::Ptr{hipChannelFormatDesc}, + extent::hipExtent, + flags::Cuint)::hipError_t +end + +function hipArrayGetInfo(desc, extent, flags, array) + @ccall librocprofiler_sdk_tool.hipArrayGetInfo(desc::Ptr{hipChannelFormatDesc}, + extent::Ptr{hipExtent}, + flags::Ptr{Cuint}, + array::hipArray_t)::hipError_t +end + +function hipArrayGetDescriptor(pArrayDescriptor, array) + @ccall librocprofiler_sdk_tool.hipArrayGetDescriptor(pArrayDescriptor::Ptr{HIP_ARRAY_DESCRIPTOR}, + array::hipArray_t)::hipError_t +end + +function hipArray3DGetDescriptor(pArrayDescriptor, array) + @ccall librocprofiler_sdk_tool.hipArray3DGetDescriptor(pArrayDescriptor::Ptr{HIP_ARRAY3D_DESCRIPTOR}, + array::hipArray_t)::hipError_t +end + +function hipMemcpy2D(dst, dpitch, src, spitch, width, height, kind) + @ccall librocprofiler_sdk_tool.hipMemcpy2D(dst::Ptr{Cvoid}, dpitch::Csize_t, + src::Ptr{Cvoid}, spitch::Csize_t, + width::Csize_t, height::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpyParam2D(pCopy) + @ccall librocprofiler_sdk_tool.hipMemcpyParam2D(pCopy::Ptr{hip_Memcpy2D})::hipError_t +end + +function hipMemcpyParam2DAsync(pCopy, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyParam2DAsync(pCopy::Ptr{hip_Memcpy2D}, + stream::hipStream_t)::hipError_t +end + +function hipMemcpy2DAsync(dst, dpitch, src, spitch, width, height, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpy2DAsync(dst::Ptr{Cvoid}, dpitch::Csize_t, + src::Ptr{Cvoid}, spitch::Csize_t, + width::Csize_t, height::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpy2DToArray(dst, wOffset, hOffset, src, spitch, width, height, kind) + @ccall librocprofiler_sdk_tool.hipMemcpy2DToArray(dst::hipArray_t, wOffset::Csize_t, + hOffset::Csize_t, src::Ptr{Cvoid}, + spitch::Csize_t, width::Csize_t, + height::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpy2DToArrayAsync(dst, wOffset, hOffset, src, spitch, width, height, kind, + stream) + @ccall librocprofiler_sdk_tool.hipMemcpy2DToArrayAsync(dst::hipArray_t, + wOffset::Csize_t, + hOffset::Csize_t, + src::Ptr{Cvoid}, spitch::Csize_t, + width::Csize_t, height::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpy2DArrayToArray(dst, wOffsetDst, hOffsetDst, src, wOffsetSrc, hOffsetSrc, + width, height, kind) + @ccall librocprofiler_sdk_tool.hipMemcpy2DArrayToArray(dst::hipArray_t, + wOffsetDst::Csize_t, + hOffsetDst::Csize_t, + src::hipArray_const_t, + wOffsetSrc::Csize_t, + hOffsetSrc::Csize_t, + width::Csize_t, height::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpyToArray(dst, wOffset, hOffset, src, count, kind) + @ccall librocprofiler_sdk_tool.hipMemcpyToArray(dst::hipArray_t, wOffset::Csize_t, + hOffset::Csize_t, src::Ptr{Cvoid}, + count::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpyFromArray(dst, srcArray, wOffset, hOffset, count, kind) + @ccall librocprofiler_sdk_tool.hipMemcpyFromArray(dst::Ptr{Cvoid}, + srcArray::hipArray_const_t, + wOffset::Csize_t, hOffset::Csize_t, + count::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpy2DFromArray(dst, dpitch, src, wOffset, hOffset, width, height, kind) + @ccall librocprofiler_sdk_tool.hipMemcpy2DFromArray(dst::Ptr{Cvoid}, dpitch::Csize_t, + src::hipArray_const_t, + wOffset::Csize_t, hOffset::Csize_t, + width::Csize_t, height::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpy2DFromArrayAsync(dst, dpitch, src, wOffset, hOffset, width, height, kind, + stream) + @ccall librocprofiler_sdk_tool.hipMemcpy2DFromArrayAsync(dst::Ptr{Cvoid}, + dpitch::Csize_t, + src::hipArray_const_t, + wOffset::Csize_t, + hOffset::Csize_t, + width::Csize_t, + height::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyAtoH(dst, srcArray, srcOffset, count) + @ccall librocprofiler_sdk_tool.hipMemcpyAtoH(dst::Ptr{Cvoid}, srcArray::hipArray_t, + srcOffset::Csize_t, + count::Csize_t)::hipError_t +end + +function hipMemcpyHtoA(dstArray, dstOffset, srcHost, count) + @ccall librocprofiler_sdk_tool.hipMemcpyHtoA(dstArray::hipArray_t, dstOffset::Csize_t, + srcHost::Ptr{Cvoid}, + count::Csize_t)::hipError_t +end + +function hipMemcpy3D(p) + @ccall librocprofiler_sdk_tool.hipMemcpy3D(p::Ptr{hipMemcpy3DParms})::hipError_t +end + +function hipMemcpy3DAsync(p, stream) + @ccall librocprofiler_sdk_tool.hipMemcpy3DAsync(p::Ptr{hipMemcpy3DParms}, + stream::hipStream_t)::hipError_t +end + +function hipDrvMemcpy3D(pCopy) + @ccall librocprofiler_sdk_tool.hipDrvMemcpy3D(pCopy::Ptr{HIP_MEMCPY3D})::hipError_t +end + +function hipDrvMemcpy3DAsync(pCopy, stream) + @ccall librocprofiler_sdk_tool.hipDrvMemcpy3DAsync(pCopy::Ptr{HIP_MEMCPY3D}, + stream::hipStream_t)::hipError_t +end + +function hipMemGetAddressRange(pbase, psize, dptr) + @ccall librocprofiler_sdk_tool.hipMemGetAddressRange(pbase::Ptr{hipDeviceptr_t}, + psize::Ptr{Csize_t}, + dptr::hipDeviceptr_t)::hipError_t +end + +function hipDeviceCanAccessPeer(canAccessPeer, deviceId, peerDeviceId) + @ccall librocprofiler_sdk_tool.hipDeviceCanAccessPeer(canAccessPeer::Ptr{Cint}, + deviceId::Cint, + peerDeviceId::Cint)::hipError_t +end + +function hipDeviceEnablePeerAccess(peerDeviceId, flags) + @ccall librocprofiler_sdk_tool.hipDeviceEnablePeerAccess(peerDeviceId::Cint, + flags::Cuint)::hipError_t +end + +function hipDeviceDisablePeerAccess(peerDeviceId) + @ccall librocprofiler_sdk_tool.hipDeviceDisablePeerAccess(peerDeviceId::Cint)::hipError_t +end + +function hipMemcpyPeer(dst, dstDeviceId, src, srcDeviceId, sizeBytes) + @ccall librocprofiler_sdk_tool.hipMemcpyPeer(dst::Ptr{Cvoid}, dstDeviceId::Cint, + src::Ptr{Cvoid}, srcDeviceId::Cint, + sizeBytes::Csize_t)::hipError_t +end + +function hipMemcpyPeerAsync(dst, dstDeviceId, src, srcDevice, sizeBytes, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyPeerAsync(dst::Ptr{Cvoid}, dstDeviceId::Cint, + src::Ptr{Cvoid}, srcDevice::Cint, + sizeBytes::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipCtxCreate(ctx, flags, device) + @ccall librocprofiler_sdk_tool.hipCtxCreate(ctx::Ptr{hipCtx_t}, flags::Cuint, + device::hipDevice_t)::hipError_t +end + +function hipCtxDestroy(ctx) + @ccall librocprofiler_sdk_tool.hipCtxDestroy(ctx::hipCtx_t)::hipError_t +end + +function hipCtxPopCurrent(ctx) + @ccall librocprofiler_sdk_tool.hipCtxPopCurrent(ctx::Ptr{hipCtx_t})::hipError_t +end + +function hipCtxPushCurrent(ctx) + @ccall librocprofiler_sdk_tool.hipCtxPushCurrent(ctx::hipCtx_t)::hipError_t +end + +function hipCtxSetCurrent(ctx) + @ccall librocprofiler_sdk_tool.hipCtxSetCurrent(ctx::hipCtx_t)::hipError_t +end + +function hipCtxGetCurrent(ctx) + @ccall librocprofiler_sdk_tool.hipCtxGetCurrent(ctx::Ptr{hipCtx_t})::hipError_t +end + +function hipCtxGetDevice(device) + @ccall librocprofiler_sdk_tool.hipCtxGetDevice(device::Ptr{hipDevice_t})::hipError_t +end + +function hipCtxGetApiVersion(ctx, apiVersion) + @ccall librocprofiler_sdk_tool.hipCtxGetApiVersion(ctx::hipCtx_t, + apiVersion::Ptr{Cint})::hipError_t +end + +function hipCtxGetCacheConfig(cacheConfig) + @ccall librocprofiler_sdk_tool.hipCtxGetCacheConfig(cacheConfig::Ptr{hipFuncCache_t})::hipError_t +end + +function hipCtxSetCacheConfig(cacheConfig) + @ccall librocprofiler_sdk_tool.hipCtxSetCacheConfig(cacheConfig::hipFuncCache_t)::hipError_t +end + +function hipCtxSetSharedMemConfig(config) + @ccall librocprofiler_sdk_tool.hipCtxSetSharedMemConfig(config::hipSharedMemConfig)::hipError_t +end + +function hipCtxGetSharedMemConfig(pConfig) + @ccall librocprofiler_sdk_tool.hipCtxGetSharedMemConfig(pConfig::Ptr{hipSharedMemConfig})::hipError_t +end + +function hipCtxSynchronize() + @ccall librocprofiler_sdk_tool.hipCtxSynchronize()::hipError_t +end + +function hipCtxGetFlags(flags) + @ccall librocprofiler_sdk_tool.hipCtxGetFlags(flags::Ptr{Cuint})::hipError_t +end + +function hipCtxEnablePeerAccess(peerCtx, flags) + @ccall librocprofiler_sdk_tool.hipCtxEnablePeerAccess(peerCtx::hipCtx_t, + flags::Cuint)::hipError_t +end + +function hipCtxDisablePeerAccess(peerCtx) + @ccall librocprofiler_sdk_tool.hipCtxDisablePeerAccess(peerCtx::hipCtx_t)::hipError_t +end + +function hipDevicePrimaryCtxGetState(dev, flags, active) + @ccall librocprofiler_sdk_tool.hipDevicePrimaryCtxGetState(dev::hipDevice_t, + flags::Ptr{Cuint}, + active::Ptr{Cint})::hipError_t +end + +function hipDevicePrimaryCtxRelease(dev) + @ccall librocprofiler_sdk_tool.hipDevicePrimaryCtxRelease(dev::hipDevice_t)::hipError_t +end + +function hipDevicePrimaryCtxRetain(pctx, dev) + @ccall librocprofiler_sdk_tool.hipDevicePrimaryCtxRetain(pctx::Ptr{hipCtx_t}, + dev::hipDevice_t)::hipError_t +end + +function hipDevicePrimaryCtxReset(dev) + @ccall librocprofiler_sdk_tool.hipDevicePrimaryCtxReset(dev::hipDevice_t)::hipError_t +end + +function hipDevicePrimaryCtxSetFlags(dev, flags) + @ccall librocprofiler_sdk_tool.hipDevicePrimaryCtxSetFlags(dev::hipDevice_t, + flags::Cuint)::hipError_t +end + +function hipModuleLoad(_module, fname) + @ccall librocprofiler_sdk_tool.hipModuleLoad(_module::Ptr{hipModule_t}, + fname::Ptr{Cchar})::hipError_t +end + +function hipModuleUnload(_module) + @ccall librocprofiler_sdk_tool.hipModuleUnload(_module::hipModule_t)::hipError_t +end + +function hipModuleGetFunction(_function, _module, kname) + @ccall librocprofiler_sdk_tool.hipModuleGetFunction(_function::Ptr{hipFunction_t}, + _module::hipModule_t, + kname::Ptr{Cchar})::hipError_t +end + +function hipFuncGetAttributes(attr, func) + @ccall librocprofiler_sdk_tool.hipFuncGetAttributes(attr::Ptr{hipFuncAttributes}, + func::Ptr{Cvoid})::hipError_t +end + +function hipFuncGetAttribute(value, attrib, hfunc) + @ccall librocprofiler_sdk_tool.hipFuncGetAttribute(value::Ptr{Cint}, + attrib::hipFunction_attribute, + hfunc::hipFunction_t)::hipError_t +end + +function hipGetFuncBySymbol(functionPtr, symbolPtr) + @ccall librocprofiler_sdk_tool.hipGetFuncBySymbol(functionPtr::Ptr{hipFunction_t}, + symbolPtr::Ptr{Cvoid})::hipError_t +end + +function hipModuleGetTexRef(texRef, hmod, name) + @ccall librocprofiler_sdk_tool.hipModuleGetTexRef(texRef::Ptr{Ptr{textureReference}}, + hmod::hipModule_t, + name::Ptr{Cchar})::hipError_t +end + +function hipModuleLoadData(_module, image) + @ccall librocprofiler_sdk_tool.hipModuleLoadData(_module::Ptr{hipModule_t}, + image::Ptr{Cvoid})::hipError_t +end + +function hipModuleLoadDataEx(_module, image, numOptions, options, optionValues) + @ccall librocprofiler_sdk_tool.hipModuleLoadDataEx(_module::Ptr{hipModule_t}, + image::Ptr{Cvoid}, numOptions::Cuint, + options::Ptr{hipJitOption}, + optionValues::Ptr{Ptr{Cvoid}})::hipError_t +end + +function hipLinkAddData(state, type, data, size, name, numOptions, options, optionValues) + @ccall librocprofiler_sdk_tool.hipLinkAddData(state::hipLinkState_t, + type::hipJitInputType, data::Ptr{Cvoid}, + size::Csize_t, name::Ptr{Cchar}, + numOptions::Cuint, + options::Ptr{hipJitOption}, + optionValues::Ptr{Ptr{Cvoid}})::hipError_t +end + +function hipLinkAddFile(state, type, path, numOptions, options, optionValues) + @ccall librocprofiler_sdk_tool.hipLinkAddFile(state::hipLinkState_t, + type::hipJitInputType, path::Ptr{Cchar}, + numOptions::Cuint, + options::Ptr{hipJitOption}, + optionValues::Ptr{Ptr{Cvoid}})::hipError_t +end + +function hipLinkComplete(state, hipBinOut, sizeOut) + @ccall librocprofiler_sdk_tool.hipLinkComplete(state::hipLinkState_t, + hipBinOut::Ptr{Ptr{Cvoid}}, + sizeOut::Ptr{Csize_t})::hipError_t +end + +function hipLinkCreate(numOptions, options, optionValues, stateOut) + @ccall librocprofiler_sdk_tool.hipLinkCreate(numOptions::Cuint, + options::Ptr{hipJitOption}, + optionValues::Ptr{Ptr{Cvoid}}, + stateOut::Ptr{hipLinkState_t})::hipError_t +end + +function hipLinkDestroy(state) + @ccall librocprofiler_sdk_tool.hipLinkDestroy(state::hipLinkState_t)::hipError_t +end + +function hipModuleLaunchKernel(f, gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, + blockDimZ, sharedMemBytes, stream, kernelParams, extra) + @ccall librocprofiler_sdk_tool.hipModuleLaunchKernel(f::hipFunction_t, gridDimX::Cuint, + gridDimY::Cuint, gridDimZ::Cuint, + blockDimX::Cuint, blockDimY::Cuint, + blockDimZ::Cuint, + sharedMemBytes::Cuint, + stream::hipStream_t, + kernelParams::Ptr{Ptr{Cvoid}}, + extra::Ptr{Ptr{Cvoid}})::hipError_t +end + +function hipModuleLaunchCooperativeKernel(f, gridDimX, gridDimY, gridDimZ, blockDimX, + blockDimY, blockDimZ, sharedMemBytes, stream, + kernelParams) + @ccall librocprofiler_sdk_tool.hipModuleLaunchCooperativeKernel(f::hipFunction_t, + gridDimX::Cuint, + gridDimY::Cuint, + gridDimZ::Cuint, + blockDimX::Cuint, + blockDimY::Cuint, + blockDimZ::Cuint, + sharedMemBytes::Cuint, + stream::hipStream_t, + kernelParams::Ptr{Ptr{Cvoid}})::hipError_t +end + +function hipModuleLaunchCooperativeKernelMultiDevice(launchParamsList, numDevices, flags) + @ccall librocprofiler_sdk_tool.hipModuleLaunchCooperativeKernelMultiDevice(launchParamsList::Ptr{hipFunctionLaunchParams}, + numDevices::Cuint, + flags::Cuint)::hipError_t +end + +function hipLaunchCooperativeKernel(f, gridDim, blockDimX, kernelParams, sharedMemBytes, + stream) + @ccall librocprofiler_sdk_tool.hipLaunchCooperativeKernel(f::Ptr{Cvoid}, gridDim::dim3, + blockDimX::dim3, + kernelParams::Ptr{Ptr{Cvoid}}, + sharedMemBytes::Cuint, + stream::hipStream_t)::hipError_t +end + +function hipLaunchCooperativeKernelMultiDevice(launchParamsList, numDevices, flags) + @ccall librocprofiler_sdk_tool.hipLaunchCooperativeKernelMultiDevice(launchParamsList::Ptr{hipLaunchParams}, + numDevices::Cint, + flags::Cuint)::hipError_t +end + +function hipExtLaunchMultiKernelMultiDevice(launchParamsList, numDevices, flags) + @ccall librocprofiler_sdk_tool.hipExtLaunchMultiKernelMultiDevice(launchParamsList::Ptr{hipLaunchParams}, + numDevices::Cint, + flags::Cuint)::hipError_t +end + +function hipLaunchKernelExC(config, fPtr, args) + @ccall librocprofiler_sdk_tool.hipLaunchKernelExC(config::Ptr{hipLaunchConfig_t}, + fPtr::Ptr{Cvoid}, + args::Ptr{Ptr{Cvoid}})::hipError_t +end + +function hipDrvLaunchKernelEx(config, f, params, extra) + @ccall librocprofiler_sdk_tool.hipDrvLaunchKernelEx(config::Ptr{HIP_LAUNCH_CONFIG}, + f::hipFunction_t, + params::Ptr{Ptr{Cvoid}}, + extra::Ptr{Ptr{Cvoid}})::hipError_t +end + +function hipMemGetHandleForAddressRange(handle, dptr, size, handleType, flags) + @ccall librocprofiler_sdk_tool.hipMemGetHandleForAddressRange(handle::Ptr{Cvoid}, + dptr::hipDeviceptr_t, + size::Csize_t, + handleType::hipMemRangeHandleType, + flags::Culonglong)::hipError_t +end + +function hipModuleOccupancyMaxPotentialBlockSize(gridSize, blockSize, f, dynSharedMemPerBlk, + blockSizeLimit) + @ccall librocprofiler_sdk_tool.hipModuleOccupancyMaxPotentialBlockSize(gridSize::Ptr{Cint}, + blockSize::Ptr{Cint}, + f::hipFunction_t, + dynSharedMemPerBlk::Csize_t, + blockSizeLimit::Cint)::hipError_t +end + +function hipModuleOccupancyMaxPotentialBlockSizeWithFlags(gridSize, blockSize, f, + dynSharedMemPerBlk, + blockSizeLimit, flags) + @ccall librocprofiler_sdk_tool.hipModuleOccupancyMaxPotentialBlockSizeWithFlags(gridSize::Ptr{Cint}, + blockSize::Ptr{Cint}, + f::hipFunction_t, + dynSharedMemPerBlk::Csize_t, + blockSizeLimit::Cint, + flags::Cuint)::hipError_t +end + +function hipModuleOccupancyMaxActiveBlocksPerMultiprocessor(numBlocks, f, blockSize, + dynSharedMemPerBlk) + @ccall librocprofiler_sdk_tool.hipModuleOccupancyMaxActiveBlocksPerMultiprocessor(numBlocks::Ptr{Cint}, + f::hipFunction_t, + blockSize::Cint, + dynSharedMemPerBlk::Csize_t)::hipError_t +end + +function hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, f, + blockSize, + dynSharedMemPerBlk, + flags) + @ccall librocprofiler_sdk_tool.hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks::Ptr{Cint}, + f::hipFunction_t, + blockSize::Cint, + dynSharedMemPerBlk::Csize_t, + flags::Cuint)::hipError_t +end + +function hipOccupancyMaxActiveBlocksPerMultiprocessor(numBlocks, f, blockSize, + dynSharedMemPerBlk) + @ccall librocprofiler_sdk_tool.hipOccupancyMaxActiveBlocksPerMultiprocessor(numBlocks::Ptr{Cint}, + f::Ptr{Cvoid}, + blockSize::Cint, + dynSharedMemPerBlk::Csize_t)::hipError_t +end + +function hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, f, blockSize, + dynSharedMemPerBlk, flags) + @ccall librocprofiler_sdk_tool.hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks::Ptr{Cint}, + f::Ptr{Cvoid}, + blockSize::Cint, + dynSharedMemPerBlk::Csize_t, + flags::Cuint)::hipError_t +end + +function hipOccupancyMaxPotentialBlockSize(gridSize, blockSize, f, dynSharedMemPerBlk, + blockSizeLimit) + @ccall librocprofiler_sdk_tool.hipOccupancyMaxPotentialBlockSize(gridSize::Ptr{Cint}, + blockSize::Ptr{Cint}, + f::Ptr{Cvoid}, + dynSharedMemPerBlk::Csize_t, + blockSizeLimit::Cint)::hipError_t +end + +# no prototype is found for this function at hip_runtime_api.h:6423:12, please use with caution +function hipProfilerStart() + @ccall librocprofiler_sdk_tool.hipProfilerStart()::hipError_t +end + +# no prototype is found for this function at hip_runtime_api.h:6431:12, please use with caution +function hipProfilerStop() + @ccall librocprofiler_sdk_tool.hipProfilerStop()::hipError_t +end + +function hipConfigureCall(gridDim, blockDim, sharedMem, stream) + @ccall librocprofiler_sdk_tool.hipConfigureCall(gridDim::dim3, blockDim::dim3, + sharedMem::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipSetupArgument(arg, size, offset) + @ccall librocprofiler_sdk_tool.hipSetupArgument(arg::Ptr{Cvoid}, size::Csize_t, + offset::Csize_t)::hipError_t +end + +function hipLaunchByPtr(func) + @ccall librocprofiler_sdk_tool.hipLaunchByPtr(func::Ptr{Cvoid})::hipError_t +end + +function __hipPushCallConfiguration(gridDim, blockDim, sharedMem, stream) + @ccall librocprofiler_sdk_tool.__hipPushCallConfiguration(gridDim::dim3, blockDim::dim3, + sharedMem::Csize_t, + stream::hipStream_t)::hipError_t +end + +function __hipPopCallConfiguration(gridDim, blockDim, sharedMem, stream) + @ccall librocprofiler_sdk_tool.__hipPopCallConfiguration(gridDim::Ptr{dim3}, + blockDim::Ptr{dim3}, + sharedMem::Ptr{Csize_t}, + stream::Ptr{hipStream_t})::hipError_t +end + +function hipLaunchKernel(function_address, numBlocks, dimBlocks, args, sharedMemBytes, + stream) + @ccall librocprofiler_sdk_tool.hipLaunchKernel(function_address::Ptr{Cvoid}, + numBlocks::dim3, dimBlocks::dim3, + args::Ptr{Ptr{Cvoid}}, + sharedMemBytes::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipLaunchHostFunc(stream, fn, userData) + @ccall librocprofiler_sdk_tool.hipLaunchHostFunc(stream::hipStream_t, fn::hipHostFn_t, + userData::Ptr{Cvoid})::hipError_t +end + +function hipDrvMemcpy2DUnaligned(pCopy) + @ccall librocprofiler_sdk_tool.hipDrvMemcpy2DUnaligned(pCopy::Ptr{hip_Memcpy2D})::hipError_t +end + +function hipExtLaunchKernel(function_address, numBlocks, dimBlocks, args, sharedMemBytes, + stream, startEvent, stopEvent, flags) + @ccall librocprofiler_sdk_tool.hipExtLaunchKernel(function_address::Ptr{Cvoid}, + numBlocks::dim3, dimBlocks::dim3, + args::Ptr{Ptr{Cvoid}}, + sharedMemBytes::Csize_t, + stream::hipStream_t, + startEvent::hipEvent_t, + stopEvent::hipEvent_t, + flags::Cint)::hipError_t +end + +function hipCreateTextureObject(pTexObject, pResDesc, pTexDesc, pResViewDesc) + @ccall librocprofiler_sdk_tool.hipCreateTextureObject(pTexObject::Ptr{hipTextureObject_t}, + pResDesc::Ptr{hipResourceDesc}, + pTexDesc::Ptr{hipTextureDesc}, + pResViewDesc::Ptr{hipResourceViewDesc})::hipError_t +end + +function hipDestroyTextureObject(textureObject) + @ccall librocprofiler_sdk_tool.hipDestroyTextureObject(textureObject::hipTextureObject_t)::hipError_t +end + +function hipGetChannelDesc(desc, array) + @ccall librocprofiler_sdk_tool.hipGetChannelDesc(desc::Ptr{hipChannelFormatDesc}, + array::hipArray_const_t)::hipError_t +end + +function hipGetTextureObjectResourceDesc(pResDesc, textureObject) + @ccall librocprofiler_sdk_tool.hipGetTextureObjectResourceDesc(pResDesc::Ptr{hipResourceDesc}, + textureObject::hipTextureObject_t)::hipError_t +end + +function hipGetTextureObjectResourceViewDesc(pResViewDesc, textureObject) + @ccall librocprofiler_sdk_tool.hipGetTextureObjectResourceViewDesc(pResViewDesc::Ptr{hipResourceViewDesc}, + textureObject::hipTextureObject_t)::hipError_t +end + +function hipGetTextureObjectTextureDesc(pTexDesc, textureObject) + @ccall librocprofiler_sdk_tool.hipGetTextureObjectTextureDesc(pTexDesc::Ptr{hipTextureDesc}, + textureObject::hipTextureObject_t)::hipError_t +end + +function hipTexObjectCreate(pTexObject, pResDesc, pTexDesc, pResViewDesc) + @ccall librocprofiler_sdk_tool.hipTexObjectCreate(pTexObject::Ptr{hipTextureObject_t}, + pResDesc::Ptr{HIP_RESOURCE_DESC}, + pTexDesc::Ptr{HIP_TEXTURE_DESC}, + pResViewDesc::Ptr{HIP_RESOURCE_VIEW_DESC})::hipError_t +end + +function hipTexObjectDestroy(texObject) + @ccall librocprofiler_sdk_tool.hipTexObjectDestroy(texObject::hipTextureObject_t)::hipError_t +end + +function hipTexObjectGetResourceDesc(pResDesc, texObject) + @ccall librocprofiler_sdk_tool.hipTexObjectGetResourceDesc(pResDesc::Ptr{HIP_RESOURCE_DESC}, + texObject::hipTextureObject_t)::hipError_t +end + +function hipTexObjectGetResourceViewDesc(pResViewDesc, texObject) + @ccall librocprofiler_sdk_tool.hipTexObjectGetResourceViewDesc(pResViewDesc::Ptr{HIP_RESOURCE_VIEW_DESC}, + texObject::hipTextureObject_t)::hipError_t +end + +function hipTexObjectGetTextureDesc(pTexDesc, texObject) + @ccall librocprofiler_sdk_tool.hipTexObjectGetTextureDesc(pTexDesc::Ptr{HIP_TEXTURE_DESC}, + texObject::hipTextureObject_t)::hipError_t +end + +function hipMallocMipmappedArray(mipmappedArray, desc, extent, numLevels, flags) + @ccall librocprofiler_sdk_tool.hipMallocMipmappedArray(mipmappedArray::Ptr{hipMipmappedArray_t}, + desc::Ptr{hipChannelFormatDesc}, + extent::hipExtent, + numLevels::Cuint, + flags::Cuint)::hipError_t +end + +function hipFreeMipmappedArray(mipmappedArray) + @ccall librocprofiler_sdk_tool.hipFreeMipmappedArray(mipmappedArray::hipMipmappedArray_t)::hipError_t +end + +function hipGetMipmappedArrayLevel(levelArray, mipmappedArray, level) + @ccall librocprofiler_sdk_tool.hipGetMipmappedArrayLevel(levelArray::Ptr{hipArray_t}, + mipmappedArray::hipMipmappedArray_const_t, + level::Cuint)::hipError_t +end + +function hipMipmappedArrayCreate(pHandle, pMipmappedArrayDesc, numMipmapLevels) + @ccall librocprofiler_sdk_tool.hipMipmappedArrayCreate(pHandle::Ptr{hipMipmappedArray_t}, + pMipmappedArrayDesc::Ptr{HIP_ARRAY3D_DESCRIPTOR}, + numMipmapLevels::Cuint)::hipError_t +end + +function hipMipmappedArrayDestroy(hMipmappedArray) + @ccall librocprofiler_sdk_tool.hipMipmappedArrayDestroy(hMipmappedArray::hipMipmappedArray_t)::hipError_t +end + +function hipMipmappedArrayGetLevel(pLevelArray, hMipMappedArray, level) + @ccall librocprofiler_sdk_tool.hipMipmappedArrayGetLevel(pLevelArray::Ptr{hipArray_t}, + hMipMappedArray::hipMipmappedArray_t, + level::Cuint)::hipError_t +end + +function hipBindTextureToMipmappedArray(tex, mipmappedArray, desc) + @ccall librocprofiler_sdk_tool.hipBindTextureToMipmappedArray(tex::Ptr{textureReference}, + mipmappedArray::hipMipmappedArray_const_t, + desc::Ptr{hipChannelFormatDesc})::hipError_t +end + +function hipGetTextureReference(texref, symbol) + @ccall librocprofiler_sdk_tool.hipGetTextureReference(texref::Ptr{Ptr{textureReference}}, + symbol::Ptr{Cvoid})::hipError_t +end + +function hipTexRefGetBorderColor(pBorderColor, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetBorderColor(pBorderColor::Ptr{Cfloat}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetArray(pArray, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetArray(pArray::Ptr{hipArray_t}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefSetAddressMode(texRef, dim, am) + @ccall librocprofiler_sdk_tool.hipTexRefSetAddressMode(texRef::Ptr{textureReference}, + dim::Cint, + am::hipTextureAddressMode)::hipError_t +end + +function hipTexRefSetArray(tex, array, flags) + @ccall librocprofiler_sdk_tool.hipTexRefSetArray(tex::Ptr{textureReference}, + array::hipArray_const_t, + flags::Cuint)::hipError_t +end + +function hipTexRefSetFilterMode(texRef, fm) + @ccall librocprofiler_sdk_tool.hipTexRefSetFilterMode(texRef::Ptr{textureReference}, + fm::hipTextureFilterMode)::hipError_t +end + +function hipTexRefSetFlags(texRef, Flags) + @ccall librocprofiler_sdk_tool.hipTexRefSetFlags(texRef::Ptr{textureReference}, + Flags::Cuint)::hipError_t +end + +function hipTexRefSetFormat(texRef, fmt, NumPackedComponents) + @ccall librocprofiler_sdk_tool.hipTexRefSetFormat(texRef::Ptr{textureReference}, + fmt::hipArray_Format, + NumPackedComponents::Cint)::hipError_t +end + +function hipBindTexture(offset, tex, devPtr, desc, size) + @ccall librocprofiler_sdk_tool.hipBindTexture(offset::Ptr{Csize_t}, + tex::Ptr{textureReference}, + devPtr::Ptr{Cvoid}, + desc::Ptr{hipChannelFormatDesc}, + size::Csize_t)::hipError_t +end + +function hipBindTexture2D(offset, tex, devPtr, desc, width, height, pitch) + @ccall librocprofiler_sdk_tool.hipBindTexture2D(offset::Ptr{Csize_t}, + tex::Ptr{textureReference}, + devPtr::Ptr{Cvoid}, + desc::Ptr{hipChannelFormatDesc}, + width::Csize_t, height::Csize_t, + pitch::Csize_t)::hipError_t +end + +function hipBindTextureToArray(tex, array, desc) + @ccall librocprofiler_sdk_tool.hipBindTextureToArray(tex::Ptr{textureReference}, + array::hipArray_const_t, + desc::Ptr{hipChannelFormatDesc})::hipError_t +end + +function hipGetTextureAlignmentOffset(offset, texref) + @ccall librocprofiler_sdk_tool.hipGetTextureAlignmentOffset(offset::Ptr{Csize_t}, + texref::Ptr{textureReference})::hipError_t +end + +function hipUnbindTexture(tex) + @ccall librocprofiler_sdk_tool.hipUnbindTexture(tex::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetAddress(dev_ptr, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetAddress(dev_ptr::Ptr{hipDeviceptr_t}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetAddressMode(pam, texRef, dim) + @ccall librocprofiler_sdk_tool.hipTexRefGetAddressMode(pam::Ptr{hipTextureAddressMode}, + texRef::Ptr{textureReference}, + dim::Cint)::hipError_t +end + +function hipTexRefGetFilterMode(pfm, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetFilterMode(pfm::Ptr{hipTextureFilterMode}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetFlags(pFlags, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetFlags(pFlags::Ptr{Cuint}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetFormat(pFormat, pNumChannels, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetFormat(pFormat::Ptr{hipArray_Format}, + pNumChannels::Ptr{Cint}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetMaxAnisotropy(pmaxAnsio, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetMaxAnisotropy(pmaxAnsio::Ptr{Cint}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetMipmapFilterMode(pfm, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetMipmapFilterMode(pfm::Ptr{hipTextureFilterMode}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetMipmapLevelBias(pbias, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetMipmapLevelBias(pbias::Ptr{Cfloat}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetMipmapLevelClamp(pminMipmapLevelClamp, pmaxMipmapLevelClamp, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetMipmapLevelClamp(pminMipmapLevelClamp::Ptr{Cfloat}, + pmaxMipmapLevelClamp::Ptr{Cfloat}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefGetMipMappedArray(pArray, texRef) + @ccall librocprofiler_sdk_tool.hipTexRefGetMipMappedArray(pArray::Ptr{hipMipmappedArray_t}, + texRef::Ptr{textureReference})::hipError_t +end + +function hipTexRefSetAddress(ByteOffset, texRef, dptr, bytes) + @ccall librocprofiler_sdk_tool.hipTexRefSetAddress(ByteOffset::Ptr{Csize_t}, + texRef::Ptr{textureReference}, + dptr::hipDeviceptr_t, + bytes::Csize_t)::hipError_t +end + +function hipTexRefSetAddress2D(texRef, desc, dptr, Pitch) + @ccall librocprofiler_sdk_tool.hipTexRefSetAddress2D(texRef::Ptr{textureReference}, + desc::Ptr{HIP_ARRAY_DESCRIPTOR}, + dptr::hipDeviceptr_t, + Pitch::Csize_t)::hipError_t +end + +function hipTexRefSetMaxAnisotropy(texRef, maxAniso) + @ccall librocprofiler_sdk_tool.hipTexRefSetMaxAnisotropy(texRef::Ptr{textureReference}, + maxAniso::Cuint)::hipError_t +end + +function hipTexRefSetBorderColor(texRef, pBorderColor) + @ccall librocprofiler_sdk_tool.hipTexRefSetBorderColor(texRef::Ptr{textureReference}, + pBorderColor::Ptr{Cfloat})::hipError_t +end + +function hipTexRefSetMipmapFilterMode(texRef, fm) + @ccall librocprofiler_sdk_tool.hipTexRefSetMipmapFilterMode(texRef::Ptr{textureReference}, + fm::hipTextureFilterMode)::hipError_t +end + +function hipTexRefSetMipmapLevelBias(texRef, bias) + @ccall librocprofiler_sdk_tool.hipTexRefSetMipmapLevelBias(texRef::Ptr{textureReference}, + bias::Cfloat)::hipError_t +end + +function hipTexRefSetMipmapLevelClamp(texRef, minMipMapLevelClamp, maxMipMapLevelClamp) + @ccall librocprofiler_sdk_tool.hipTexRefSetMipmapLevelClamp(texRef::Ptr{textureReference}, + minMipMapLevelClamp::Cfloat, + maxMipMapLevelClamp::Cfloat)::hipError_t +end + +function hipTexRefSetMipmappedArray(texRef, mipmappedArray, Flags) + @ccall librocprofiler_sdk_tool.hipTexRefSetMipmappedArray(texRef::Ptr{textureReference}, + mipmappedArray::Ptr{hipMipmappedArray}, + Flags::Cuint)::hipError_t +end + +function hipApiName(id) + @ccall librocprofiler_sdk_tool.hipApiName(id::UInt32)::Ptr{Cchar} +end + +function hipKernelNameRef(f) + @ccall librocprofiler_sdk_tool.hipKernelNameRef(f::hipFunction_t)::Ptr{Cchar} +end + +function hipKernelNameRefByPtr(hostFunction, stream) + @ccall librocprofiler_sdk_tool.hipKernelNameRefByPtr(hostFunction::Ptr{Cvoid}, + stream::hipStream_t)::Ptr{Cchar} +end + +function hipGetStreamDeviceId(stream) + @ccall librocprofiler_sdk_tool.hipGetStreamDeviceId(stream::hipStream_t)::Cint +end + +function hipStreamBeginCapture(stream, mode) + @ccall librocprofiler_sdk_tool.hipStreamBeginCapture(stream::hipStream_t, + mode::hipStreamCaptureMode)::hipError_t +end + +function hipStreamBeginCaptureToGraph(stream, graph, dependencies, dependencyData, + numDependencies, mode) + @ccall librocprofiler_sdk_tool.hipStreamBeginCaptureToGraph(stream::hipStream_t, + graph::hipGraph_t, + dependencies::Ptr{hipGraphNode_t}, + dependencyData::Ptr{hipGraphEdgeData}, + numDependencies::Csize_t, + mode::hipStreamCaptureMode)::hipError_t +end + +function hipStreamEndCapture(stream, pGraph) + @ccall librocprofiler_sdk_tool.hipStreamEndCapture(stream::hipStream_t, + pGraph::Ptr{hipGraph_t})::hipError_t +end + +function hipStreamGetCaptureInfo(stream, pCaptureStatus, pId) + @ccall librocprofiler_sdk_tool.hipStreamGetCaptureInfo(stream::hipStream_t, + pCaptureStatus::Ptr{hipStreamCaptureStatus}, + pId::Ptr{Culonglong})::hipError_t +end + +function hipStreamGetCaptureInfo_v2(stream, captureStatus_out, id_out, graph_out, + dependencies_out, numDependencies_out) + @ccall librocprofiler_sdk_tool.hipStreamGetCaptureInfo_v2(stream::hipStream_t, + captureStatus_out::Ptr{hipStreamCaptureStatus}, + id_out::Ptr{Culonglong}, + graph_out::Ptr{hipGraph_t}, + dependencies_out::Ptr{Ptr{hipGraphNode_t}}, + numDependencies_out::Ptr{Csize_t})::hipError_t +end + +function hipStreamIsCapturing(stream, pCaptureStatus) + @ccall librocprofiler_sdk_tool.hipStreamIsCapturing(stream::hipStream_t, + pCaptureStatus::Ptr{hipStreamCaptureStatus})::hipError_t +end + +function hipStreamUpdateCaptureDependencies(stream, dependencies, numDependencies, flags) + @ccall librocprofiler_sdk_tool.hipStreamUpdateCaptureDependencies(stream::hipStream_t, + dependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + flags::Cuint)::hipError_t +end + +function hipThreadExchangeStreamCaptureMode(mode) + @ccall librocprofiler_sdk_tool.hipThreadExchangeStreamCaptureMode(mode::Ptr{hipStreamCaptureMode})::hipError_t +end + +function hipGraphCreate(pGraph, flags) + @ccall librocprofiler_sdk_tool.hipGraphCreate(pGraph::Ptr{hipGraph_t}, + flags::Cuint)::hipError_t +end + +function hipGraphDestroy(graph) + @ccall librocprofiler_sdk_tool.hipGraphDestroy(graph::hipGraph_t)::hipError_t +end + +function hipGraphAddDependencies(graph, from, to, numDependencies) + @ccall librocprofiler_sdk_tool.hipGraphAddDependencies(graph::hipGraph_t, + from::Ptr{hipGraphNode_t}, + to::Ptr{hipGraphNode_t}, + numDependencies::Csize_t)::hipError_t +end + +function hipGraphRemoveDependencies(graph, from, to, numDependencies) + @ccall librocprofiler_sdk_tool.hipGraphRemoveDependencies(graph::hipGraph_t, + from::Ptr{hipGraphNode_t}, + to::Ptr{hipGraphNode_t}, + numDependencies::Csize_t)::hipError_t +end + +function hipGraphGetEdges(graph, from, to, numEdges) + @ccall librocprofiler_sdk_tool.hipGraphGetEdges(graph::hipGraph_t, + from::Ptr{hipGraphNode_t}, + to::Ptr{hipGraphNode_t}, + numEdges::Ptr{Csize_t})::hipError_t +end + +function hipGraphGetNodes(graph, nodes, numNodes) + @ccall librocprofiler_sdk_tool.hipGraphGetNodes(graph::hipGraph_t, + nodes::Ptr{hipGraphNode_t}, + numNodes::Ptr{Csize_t})::hipError_t +end + +function hipGraphGetRootNodes(graph, pRootNodes, pNumRootNodes) + @ccall librocprofiler_sdk_tool.hipGraphGetRootNodes(graph::hipGraph_t, + pRootNodes::Ptr{hipGraphNode_t}, + pNumRootNodes::Ptr{Csize_t})::hipError_t +end + +function hipGraphNodeGetDependencies(node, pDependencies, pNumDependencies) + @ccall librocprofiler_sdk_tool.hipGraphNodeGetDependencies(node::hipGraphNode_t, + pDependencies::Ptr{hipGraphNode_t}, + pNumDependencies::Ptr{Csize_t})::hipError_t +end + +function hipGraphNodeGetDependentNodes(node, pDependentNodes, pNumDependentNodes) + @ccall librocprofiler_sdk_tool.hipGraphNodeGetDependentNodes(node::hipGraphNode_t, + pDependentNodes::Ptr{hipGraphNode_t}, + pNumDependentNodes::Ptr{Csize_t})::hipError_t +end + +function hipGraphNodeGetType(node, pType) + @ccall librocprofiler_sdk_tool.hipGraphNodeGetType(node::hipGraphNode_t, + pType::Ptr{hipGraphNodeType})::hipError_t +end + +function hipGraphDestroyNode(node) + @ccall librocprofiler_sdk_tool.hipGraphDestroyNode(node::hipGraphNode_t)::hipError_t +end + +function hipGraphClone(pGraphClone, originalGraph) + @ccall librocprofiler_sdk_tool.hipGraphClone(pGraphClone::Ptr{hipGraph_t}, + originalGraph::hipGraph_t)::hipError_t +end + +function hipGraphNodeFindInClone(pNode, originalNode, clonedGraph) + @ccall librocprofiler_sdk_tool.hipGraphNodeFindInClone(pNode::Ptr{hipGraphNode_t}, + originalNode::hipGraphNode_t, + clonedGraph::hipGraph_t)::hipError_t +end + +function hipGraphInstantiate(pGraphExec, graph, pErrorNode, pLogBuffer, bufferSize) + @ccall librocprofiler_sdk_tool.hipGraphInstantiate(pGraphExec::Ptr{hipGraphExec_t}, + graph::hipGraph_t, + pErrorNode::Ptr{hipGraphNode_t}, + pLogBuffer::Ptr{Cchar}, + bufferSize::Csize_t)::hipError_t +end + +function hipGraphInstantiateWithFlags(pGraphExec, graph, flags) + @ccall librocprofiler_sdk_tool.hipGraphInstantiateWithFlags(pGraphExec::Ptr{hipGraphExec_t}, + graph::hipGraph_t, + flags::Culonglong)::hipError_t +end + +function hipGraphInstantiateWithParams(pGraphExec, graph, instantiateParams) + @ccall librocprofiler_sdk_tool.hipGraphInstantiateWithParams(pGraphExec::Ptr{hipGraphExec_t}, + graph::hipGraph_t, + instantiateParams::Ptr{hipGraphInstantiateParams})::hipError_t +end + +function hipGraphLaunch(graphExec, stream) + @ccall librocprofiler_sdk_tool.hipGraphLaunch(graphExec::hipGraphExec_t, + stream::hipStream_t)::hipError_t +end + +function hipGraphUpload(graphExec, stream) + @ccall librocprofiler_sdk_tool.hipGraphUpload(graphExec::hipGraphExec_t, + stream::hipStream_t)::hipError_t +end + +function hipGraphAddNode(pGraphNode, graph, pDependencies, numDependencies, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphAddNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + nodeParams::Ptr{hipGraphNodeParams})::hipError_t +end + +function hipGraphExecGetFlags(graphExec, flags) + @ccall librocprofiler_sdk_tool.hipGraphExecGetFlags(graphExec::hipGraphExec_t, + flags::Ptr{Culonglong})::hipError_t +end + +function hipGraphNodeSetParams(node, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphNodeSetParams(node::hipGraphNode_t, + nodeParams::Ptr{hipGraphNodeParams})::hipError_t +end + +function hipGraphExecNodeSetParams(graphExec, node, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExecNodeSetParams(graphExec::hipGraphExec_t, + node::hipGraphNode_t, + nodeParams::Ptr{hipGraphNodeParams})::hipError_t +end + +function hipGraphExecDestroy(graphExec) + @ccall librocprofiler_sdk_tool.hipGraphExecDestroy(graphExec::hipGraphExec_t)::hipError_t +end + +function hipGraphExecUpdate(hGraphExec, hGraph, hErrorNode_out, updateResult_out) + @ccall librocprofiler_sdk_tool.hipGraphExecUpdate(hGraphExec::hipGraphExec_t, + hGraph::hipGraph_t, + hErrorNode_out::Ptr{hipGraphNode_t}, + updateResult_out::Ptr{hipGraphExecUpdateResult})::hipError_t +end + +function hipGraphAddKernelNode(pGraphNode, graph, pDependencies, numDependencies, + pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphAddKernelNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + pNodeParams::Ptr{hipKernelNodeParams})::hipError_t +end + +function hipGraphKernelNodeGetParams(node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphKernelNodeGetParams(node::hipGraphNode_t, + pNodeParams::Ptr{hipKernelNodeParams})::hipError_t +end + +function hipGraphKernelNodeSetParams(node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphKernelNodeSetParams(node::hipGraphNode_t, + pNodeParams::Ptr{hipKernelNodeParams})::hipError_t +end + +function hipGraphExecKernelNodeSetParams(hGraphExec, node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExecKernelNodeSetParams(hGraphExec::hipGraphExec_t, + node::hipGraphNode_t, + pNodeParams::Ptr{hipKernelNodeParams})::hipError_t +end + +function hipDrvGraphAddMemcpyNode(phGraphNode, hGraph, dependencies, numDependencies, + copyParams, ctx) + @ccall librocprofiler_sdk_tool.hipDrvGraphAddMemcpyNode(phGraphNode::Ptr{hipGraphNode_t}, + hGraph::hipGraph_t, + dependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + copyParams::Ptr{HIP_MEMCPY3D}, + ctx::hipCtx_t)::hipError_t +end + +function hipGraphAddMemcpyNode(pGraphNode, graph, pDependencies, numDependencies, + pCopyParams) + @ccall librocprofiler_sdk_tool.hipGraphAddMemcpyNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + pCopyParams::Ptr{hipMemcpy3DParms})::hipError_t +end + +function hipGraphMemcpyNodeGetParams(node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphMemcpyNodeGetParams(node::hipGraphNode_t, + pNodeParams::Ptr{hipMemcpy3DParms})::hipError_t +end + +function hipGraphMemcpyNodeSetParams(node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphMemcpyNodeSetParams(node::hipGraphNode_t, + pNodeParams::Ptr{hipMemcpy3DParms})::hipError_t +end + +function hipGraphKernelNodeSetAttribute(hNode, attr, value) + @ccall librocprofiler_sdk_tool.hipGraphKernelNodeSetAttribute(hNode::hipGraphNode_t, + attr::hipLaunchAttributeID, + value::Ptr{hipLaunchAttributeValue})::hipError_t +end + +function hipGraphKernelNodeGetAttribute(hNode, attr, value) + @ccall librocprofiler_sdk_tool.hipGraphKernelNodeGetAttribute(hNode::hipGraphNode_t, + attr::hipLaunchAttributeID, + value::Ptr{hipLaunchAttributeValue})::hipError_t +end + +function hipGraphExecMemcpyNodeSetParams(hGraphExec, node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExecMemcpyNodeSetParams(hGraphExec::hipGraphExec_t, + node::hipGraphNode_t, + pNodeParams::Ptr{hipMemcpy3DParms})::hipError_t +end + +function hipGraphAddMemcpyNode1D(pGraphNode, graph, pDependencies, numDependencies, dst, + src, count, kind) + @ccall librocprofiler_sdk_tool.hipGraphAddMemcpyNode1D(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + dst::Ptr{Cvoid}, src::Ptr{Cvoid}, + count::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipGraphMemcpyNodeSetParams1D(node, dst, src, count, kind) + @ccall librocprofiler_sdk_tool.hipGraphMemcpyNodeSetParams1D(node::hipGraphNode_t, + dst::Ptr{Cvoid}, + src::Ptr{Cvoid}, + count::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipGraphExecMemcpyNodeSetParams1D(hGraphExec, node, dst, src, count, kind) + @ccall librocprofiler_sdk_tool.hipGraphExecMemcpyNodeSetParams1D(hGraphExec::hipGraphExec_t, + node::hipGraphNode_t, + dst::Ptr{Cvoid}, + src::Ptr{Cvoid}, + count::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, + dst, symbol, count, offset, kind) + @ccall librocprofiler_sdk_tool.hipGraphAddMemcpyNodeFromSymbol(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + dst::Ptr{Cvoid}, + symbol::Ptr{Cvoid}, + count::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipGraphMemcpyNodeSetParamsFromSymbol(node, dst, symbol, count, offset, kind) + @ccall librocprofiler_sdk_tool.hipGraphMemcpyNodeSetParamsFromSymbol(node::hipGraphNode_t, + dst::Ptr{Cvoid}, + symbol::Ptr{Cvoid}, + count::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, symbol, count, + offset, kind) + @ccall librocprofiler_sdk_tool.hipGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec::hipGraphExec_t, + node::hipGraphNode_t, + dst::Ptr{Cvoid}, + symbol::Ptr{Cvoid}, + count::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, + symbol, src, count, offset, kind) + @ccall librocprofiler_sdk_tool.hipGraphAddMemcpyNodeToSymbol(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + symbol::Ptr{Cvoid}, + src::Ptr{Cvoid}, + count::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipGraphMemcpyNodeSetParamsToSymbol(node, symbol, src, count, offset, kind) + @ccall librocprofiler_sdk_tool.hipGraphMemcpyNodeSetParamsToSymbol(node::hipGraphNode_t, + symbol::Ptr{Cvoid}, + src::Ptr{Cvoid}, + count::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, symbol, src, count, + offset, kind) + @ccall librocprofiler_sdk_tool.hipGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec::hipGraphExec_t, + node::hipGraphNode_t, + symbol::Ptr{Cvoid}, + src::Ptr{Cvoid}, + count::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipGraphAddMemsetNode(pGraphNode, graph, pDependencies, numDependencies, + pMemsetParams) + @ccall librocprofiler_sdk_tool.hipGraphAddMemsetNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + pMemsetParams::Ptr{hipMemsetParams})::hipError_t +end + +function hipGraphMemsetNodeGetParams(node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphMemsetNodeGetParams(node::hipGraphNode_t, + pNodeParams::Ptr{hipMemsetParams})::hipError_t +end + +function hipGraphMemsetNodeSetParams(node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphMemsetNodeSetParams(node::hipGraphNode_t, + pNodeParams::Ptr{hipMemsetParams})::hipError_t +end + +function hipGraphExecMemsetNodeSetParams(hGraphExec, node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExecMemsetNodeSetParams(hGraphExec::hipGraphExec_t, + node::hipGraphNode_t, + pNodeParams::Ptr{hipMemsetParams})::hipError_t +end + +function hipGraphAddHostNode(pGraphNode, graph, pDependencies, numDependencies, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphAddHostNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + pNodeParams::Ptr{hipHostNodeParams})::hipError_t +end + +function hipGraphHostNodeGetParams(node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphHostNodeGetParams(node::hipGraphNode_t, + pNodeParams::Ptr{hipHostNodeParams})::hipError_t +end + +function hipGraphHostNodeSetParams(node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphHostNodeSetParams(node::hipGraphNode_t, + pNodeParams::Ptr{hipHostNodeParams})::hipError_t +end + +function hipGraphExecHostNodeSetParams(hGraphExec, node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExecHostNodeSetParams(hGraphExec::hipGraphExec_t, + node::hipGraphNode_t, + pNodeParams::Ptr{hipHostNodeParams})::hipError_t +end + +function hipGraphAddChildGraphNode(pGraphNode, graph, pDependencies, numDependencies, + childGraph) + @ccall librocprofiler_sdk_tool.hipGraphAddChildGraphNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + childGraph::hipGraph_t)::hipError_t +end + +function hipGraphChildGraphNodeGetGraph(node, pGraph) + @ccall librocprofiler_sdk_tool.hipGraphChildGraphNodeGetGraph(node::hipGraphNode_t, + pGraph::Ptr{hipGraph_t})::hipError_t +end + +function hipGraphExecChildGraphNodeSetParams(hGraphExec, node, childGraph) + @ccall librocprofiler_sdk_tool.hipGraphExecChildGraphNodeSetParams(hGraphExec::hipGraphExec_t, + node::hipGraphNode_t, + childGraph::hipGraph_t)::hipError_t +end + +function hipGraphAddEmptyNode(pGraphNode, graph, pDependencies, numDependencies) + @ccall librocprofiler_sdk_tool.hipGraphAddEmptyNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t)::hipError_t +end + +function hipGraphAddEventRecordNode(pGraphNode, graph, pDependencies, numDependencies, + event) + @ccall librocprofiler_sdk_tool.hipGraphAddEventRecordNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + event::hipEvent_t)::hipError_t +end + +function hipGraphEventRecordNodeGetEvent(node, event_out) + @ccall librocprofiler_sdk_tool.hipGraphEventRecordNodeGetEvent(node::hipGraphNode_t, + event_out::Ptr{hipEvent_t})::hipError_t +end + +function hipGraphEventRecordNodeSetEvent(node, event) + @ccall librocprofiler_sdk_tool.hipGraphEventRecordNodeSetEvent(node::hipGraphNode_t, + event::hipEvent_t)::hipError_t +end + +function hipGraphExecEventRecordNodeSetEvent(hGraphExec, hNode, event) + @ccall librocprofiler_sdk_tool.hipGraphExecEventRecordNodeSetEvent(hGraphExec::hipGraphExec_t, + hNode::hipGraphNode_t, + event::hipEvent_t)::hipError_t +end + +function hipGraphAddEventWaitNode(pGraphNode, graph, pDependencies, numDependencies, event) + @ccall librocprofiler_sdk_tool.hipGraphAddEventWaitNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + event::hipEvent_t)::hipError_t +end + +function hipGraphEventWaitNodeGetEvent(node, event_out) + @ccall librocprofiler_sdk_tool.hipGraphEventWaitNodeGetEvent(node::hipGraphNode_t, + event_out::Ptr{hipEvent_t})::hipError_t +end + +function hipGraphEventWaitNodeSetEvent(node, event) + @ccall librocprofiler_sdk_tool.hipGraphEventWaitNodeSetEvent(node::hipGraphNode_t, + event::hipEvent_t)::hipError_t +end + +function hipGraphExecEventWaitNodeSetEvent(hGraphExec, hNode, event) + @ccall librocprofiler_sdk_tool.hipGraphExecEventWaitNodeSetEvent(hGraphExec::hipGraphExec_t, + hNode::hipGraphNode_t, + event::hipEvent_t)::hipError_t +end + +function hipGraphAddMemAllocNode(pGraphNode, graph, pDependencies, numDependencies, + pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphAddMemAllocNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + pNodeParams::Ptr{hipMemAllocNodeParams})::hipError_t +end + +function hipGraphMemAllocNodeGetParams(node, pNodeParams) + @ccall librocprofiler_sdk_tool.hipGraphMemAllocNodeGetParams(node::hipGraphNode_t, + pNodeParams::Ptr{hipMemAllocNodeParams})::hipError_t +end + +function hipGraphAddMemFreeNode(pGraphNode, graph, pDependencies, numDependencies, dev_ptr) + @ccall librocprofiler_sdk_tool.hipGraphAddMemFreeNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + dev_ptr::Ptr{Cvoid})::hipError_t +end + +function hipGraphMemFreeNodeGetParams(node, dev_ptr) + @ccall librocprofiler_sdk_tool.hipGraphMemFreeNodeGetParams(node::hipGraphNode_t, + dev_ptr::Ptr{Cvoid})::hipError_t +end + +function hipDeviceGetGraphMemAttribute(device, attr, value) + @ccall librocprofiler_sdk_tool.hipDeviceGetGraphMemAttribute(device::Cint, + attr::hipGraphMemAttributeType, + value::Ptr{Cvoid})::hipError_t +end + +function hipDeviceSetGraphMemAttribute(device, attr, value) + @ccall librocprofiler_sdk_tool.hipDeviceSetGraphMemAttribute(device::Cint, + attr::hipGraphMemAttributeType, + value::Ptr{Cvoid})::hipError_t +end + +function hipDeviceGraphMemTrim(device) + @ccall librocprofiler_sdk_tool.hipDeviceGraphMemTrim(device::Cint)::hipError_t +end + +function hipUserObjectCreate(object_out, ptr, destroy, initialRefcount, flags) + @ccall librocprofiler_sdk_tool.hipUserObjectCreate(object_out::Ptr{hipUserObject_t}, + ptr::Ptr{Cvoid}, + destroy::hipHostFn_t, + initialRefcount::Cuint, + flags::Cuint)::hipError_t +end + +function hipUserObjectRelease(object, count) + @ccall librocprofiler_sdk_tool.hipUserObjectRelease(object::hipUserObject_t, + count::Cuint)::hipError_t +end + +function hipUserObjectRetain(object, count) + @ccall librocprofiler_sdk_tool.hipUserObjectRetain(object::hipUserObject_t, + count::Cuint)::hipError_t +end + +function hipGraphRetainUserObject(graph, object, count, flags) + @ccall librocprofiler_sdk_tool.hipGraphRetainUserObject(graph::hipGraph_t, + object::hipUserObject_t, + count::Cuint, + flags::Cuint)::hipError_t +end + +function hipGraphReleaseUserObject(graph, object, count) + @ccall librocprofiler_sdk_tool.hipGraphReleaseUserObject(graph::hipGraph_t, + object::hipUserObject_t, + count::Cuint)::hipError_t +end + +function hipGraphDebugDotPrint(graph, path, flags) + @ccall librocprofiler_sdk_tool.hipGraphDebugDotPrint(graph::hipGraph_t, + path::Ptr{Cchar}, + flags::Cuint)::hipError_t +end + +function hipGraphKernelNodeCopyAttributes(hSrc, hDst) + @ccall librocprofiler_sdk_tool.hipGraphKernelNodeCopyAttributes(hSrc::hipGraphNode_t, + hDst::hipGraphNode_t)::hipError_t +end + +function hipGraphNodeSetEnabled(hGraphExec, hNode, isEnabled) + @ccall librocprofiler_sdk_tool.hipGraphNodeSetEnabled(hGraphExec::hipGraphExec_t, + hNode::hipGraphNode_t, + isEnabled::Cuint)::hipError_t +end + +function hipGraphNodeGetEnabled(hGraphExec, hNode, isEnabled) + @ccall librocprofiler_sdk_tool.hipGraphNodeGetEnabled(hGraphExec::hipGraphExec_t, + hNode::hipGraphNode_t, + isEnabled::Ptr{Cuint})::hipError_t +end + +function hipGraphAddExternalSemaphoresWaitNode(pGraphNode, graph, pDependencies, + numDependencies, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphAddExternalSemaphoresWaitNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + nodeParams::Ptr{hipExternalSemaphoreWaitNodeParams})::hipError_t +end + +function hipGraphAddExternalSemaphoresSignalNode(pGraphNode, graph, pDependencies, + numDependencies, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphAddExternalSemaphoresSignalNode(pGraphNode::Ptr{hipGraphNode_t}, + graph::hipGraph_t, + pDependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + nodeParams::Ptr{hipExternalSemaphoreSignalNodeParams})::hipError_t +end + +function hipGraphExternalSemaphoresSignalNodeSetParams(hNode, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExternalSemaphoresSignalNodeSetParams(hNode::hipGraphNode_t, + nodeParams::Ptr{hipExternalSemaphoreSignalNodeParams})::hipError_t +end + +function hipGraphExternalSemaphoresWaitNodeSetParams(hNode, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExternalSemaphoresWaitNodeSetParams(hNode::hipGraphNode_t, + nodeParams::Ptr{hipExternalSemaphoreWaitNodeParams})::hipError_t +end + +function hipGraphExternalSemaphoresSignalNodeGetParams(hNode, params_out) + @ccall librocprofiler_sdk_tool.hipGraphExternalSemaphoresSignalNodeGetParams(hNode::hipGraphNode_t, + params_out::Ptr{hipExternalSemaphoreSignalNodeParams})::hipError_t +end + +function hipGraphExternalSemaphoresWaitNodeGetParams(hNode, params_out) + @ccall librocprofiler_sdk_tool.hipGraphExternalSemaphoresWaitNodeGetParams(hNode::hipGraphNode_t, + params_out::Ptr{hipExternalSemaphoreWaitNodeParams})::hipError_t +end + +function hipGraphExecExternalSemaphoresSignalNodeSetParams(hGraphExec, hNode, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExecExternalSemaphoresSignalNodeSetParams(hGraphExec::hipGraphExec_t, + hNode::hipGraphNode_t, + nodeParams::Ptr{hipExternalSemaphoreSignalNodeParams})::hipError_t +end + +function hipGraphExecExternalSemaphoresWaitNodeSetParams(hGraphExec, hNode, nodeParams) + @ccall librocprofiler_sdk_tool.hipGraphExecExternalSemaphoresWaitNodeSetParams(hGraphExec::hipGraphExec_t, + hNode::hipGraphNode_t, + nodeParams::Ptr{hipExternalSemaphoreWaitNodeParams})::hipError_t +end + +function hipDrvGraphMemcpyNodeGetParams(hNode, nodeParams) + @ccall librocprofiler_sdk_tool.hipDrvGraphMemcpyNodeGetParams(hNode::hipGraphNode_t, + nodeParams::Ptr{HIP_MEMCPY3D})::hipError_t +end + +function hipDrvGraphMemcpyNodeSetParams(hNode, nodeParams) + @ccall librocprofiler_sdk_tool.hipDrvGraphMemcpyNodeSetParams(hNode::hipGraphNode_t, + nodeParams::Ptr{HIP_MEMCPY3D})::hipError_t +end + +function hipDrvGraphAddMemsetNode(phGraphNode, hGraph, dependencies, numDependencies, + memsetParams, ctx) + @ccall librocprofiler_sdk_tool.hipDrvGraphAddMemsetNode(phGraphNode::Ptr{hipGraphNode_t}, + hGraph::hipGraph_t, + dependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + memsetParams::Ptr{HIP_MEMSET_NODE_PARAMS}, + ctx::hipCtx_t)::hipError_t +end + +function hipDrvGraphAddMemFreeNode(phGraphNode, hGraph, dependencies, numDependencies, dptr) + @ccall librocprofiler_sdk_tool.hipDrvGraphAddMemFreeNode(phGraphNode::Ptr{hipGraphNode_t}, + hGraph::hipGraph_t, + dependencies::Ptr{hipGraphNode_t}, + numDependencies::Csize_t, + dptr::hipDeviceptr_t)::hipError_t +end + +function hipDrvGraphExecMemcpyNodeSetParams(hGraphExec, hNode, copyParams, ctx) + @ccall librocprofiler_sdk_tool.hipDrvGraphExecMemcpyNodeSetParams(hGraphExec::hipGraphExec_t, + hNode::hipGraphNode_t, + copyParams::Ptr{HIP_MEMCPY3D}, + ctx::hipCtx_t)::hipError_t +end + +function hipDrvGraphExecMemsetNodeSetParams(hGraphExec, hNode, memsetParams, ctx) + @ccall librocprofiler_sdk_tool.hipDrvGraphExecMemsetNodeSetParams(hGraphExec::hipGraphExec_t, + hNode::hipGraphNode_t, + memsetParams::Ptr{HIP_MEMSET_NODE_PARAMS}, + ctx::hipCtx_t)::hipError_t +end + +function hipMemAddressFree(devPtr, size) + @ccall librocprofiler_sdk_tool.hipMemAddressFree(devPtr::Ptr{Cvoid}, + size::Csize_t)::hipError_t +end + +function hipMemAddressReserve(ptr, size, alignment, addr, flags) + @ccall librocprofiler_sdk_tool.hipMemAddressReserve(ptr::Ptr{Ptr{Cvoid}}, size::Csize_t, + alignment::Csize_t, + addr::Ptr{Cvoid}, + flags::Culonglong)::hipError_t +end + +function hipMemCreate(handle, size, prop, flags) + @ccall librocprofiler_sdk_tool.hipMemCreate(handle::Ptr{hipMemGenericAllocationHandle_t}, + size::Csize_t, + prop::Ptr{hipMemAllocationProp}, + flags::Culonglong)::hipError_t +end + +function hipMemExportToShareableHandle(shareableHandle, handle, handleType, flags) + @ccall librocprofiler_sdk_tool.hipMemExportToShareableHandle(shareableHandle::Ptr{Cvoid}, + handle::hipMemGenericAllocationHandle_t, + handleType::hipMemAllocationHandleType, + flags::Culonglong)::hipError_t +end + +function hipMemGetAccess(flags, location, ptr) + @ccall librocprofiler_sdk_tool.hipMemGetAccess(flags::Ptr{Culonglong}, + location::Ptr{hipMemLocation}, + ptr::Ptr{Cvoid})::hipError_t +end + +function hipMemGetAllocationGranularity(granularity, prop, option) + @ccall librocprofiler_sdk_tool.hipMemGetAllocationGranularity(granularity::Ptr{Csize_t}, + prop::Ptr{hipMemAllocationProp}, + option::hipMemAllocationGranularity_flags)::hipError_t +end + +function hipMemGetAllocationPropertiesFromHandle(prop, handle) + @ccall librocprofiler_sdk_tool.hipMemGetAllocationPropertiesFromHandle(prop::Ptr{hipMemAllocationProp}, + handle::hipMemGenericAllocationHandle_t)::hipError_t +end + +function hipMemImportFromShareableHandle(handle, osHandle, shHandleType) + @ccall librocprofiler_sdk_tool.hipMemImportFromShareableHandle(handle::Ptr{hipMemGenericAllocationHandle_t}, + osHandle::Ptr{Cvoid}, + shHandleType::hipMemAllocationHandleType)::hipError_t +end + +function hipMemMap(ptr, size, offset, handle, flags) + @ccall librocprofiler_sdk_tool.hipMemMap(ptr::Ptr{Cvoid}, size::Csize_t, + offset::Csize_t, + handle::hipMemGenericAllocationHandle_t, + flags::Culonglong)::hipError_t +end + +function hipMemMapArrayAsync(mapInfoList, count, stream) + @ccall librocprofiler_sdk_tool.hipMemMapArrayAsync(mapInfoList::Ptr{hipArrayMapInfo}, + count::Cuint, + stream::hipStream_t)::hipError_t +end + +function hipMemRelease(handle) + @ccall librocprofiler_sdk_tool.hipMemRelease(handle::hipMemGenericAllocationHandle_t)::hipError_t +end + +function hipMemRetainAllocationHandle(handle, addr) + @ccall librocprofiler_sdk_tool.hipMemRetainAllocationHandle(handle::Ptr{hipMemGenericAllocationHandle_t}, + addr::Ptr{Cvoid})::hipError_t +end + +function hipMemSetAccess(ptr, size, desc, count) + @ccall librocprofiler_sdk_tool.hipMemSetAccess(ptr::Ptr{Cvoid}, size::Csize_t, + desc::Ptr{hipMemAccessDesc}, + count::Csize_t)::hipError_t +end + +function hipMemUnmap(ptr, size) + @ccall librocprofiler_sdk_tool.hipMemUnmap(ptr::Ptr{Cvoid}, size::Csize_t)::hipError_t +end + +function hipGraphicsMapResources(count, resources, stream) + @ccall librocprofiler_sdk_tool.hipGraphicsMapResources(count::Cint, + resources::Ptr{hipGraphicsResource_t}, + stream::hipStream_t)::hipError_t +end + +function hipGraphicsSubResourceGetMappedArray(array, resource, arrayIndex, mipLevel) + @ccall librocprofiler_sdk_tool.hipGraphicsSubResourceGetMappedArray(array::Ptr{hipArray_t}, + resource::hipGraphicsResource_t, + arrayIndex::Cuint, + mipLevel::Cuint)::hipError_t +end + +function hipGraphicsResourceGetMappedPointer(devPtr, size, resource) + @ccall librocprofiler_sdk_tool.hipGraphicsResourceGetMappedPointer(devPtr::Ptr{Ptr{Cvoid}}, + size::Ptr{Csize_t}, + resource::hipGraphicsResource_t)::hipError_t +end + +function hipGraphicsUnmapResources(count, resources, stream) + @ccall librocprofiler_sdk_tool.hipGraphicsUnmapResources(count::Cint, + resources::Ptr{hipGraphicsResource_t}, + stream::hipStream_t)::hipError_t +end + +function hipGraphicsUnregisterResource(resource) + @ccall librocprofiler_sdk_tool.hipGraphicsUnregisterResource(resource::hipGraphicsResource_t)::hipError_t +end + +function hipCreateSurfaceObject(pSurfObject, pResDesc) + @ccall librocprofiler_sdk_tool.hipCreateSurfaceObject(pSurfObject::Ptr{hipSurfaceObject_t}, + pResDesc::Ptr{hipResourceDesc})::hipError_t +end + +function hipDestroySurfaceObject(surfaceObject) + @ccall librocprofiler_sdk_tool.hipDestroySurfaceObject(surfaceObject::hipSurfaceObject_t)::hipError_t +end + +function hipMemcpy_spt(dst, src, sizeBytes, kind) + @ccall librocprofiler_sdk_tool.hipMemcpy_spt(dst::Ptr{Cvoid}, src::Ptr{Cvoid}, + sizeBytes::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpyToSymbol_spt(symbol, src, sizeBytes, offset, kind) + @ccall librocprofiler_sdk_tool.hipMemcpyToSymbol_spt(symbol::Ptr{Cvoid}, + src::Ptr{Cvoid}, + sizeBytes::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpyFromSymbol_spt(dst, symbol, sizeBytes, offset, kind) + @ccall librocprofiler_sdk_tool.hipMemcpyFromSymbol_spt(dst::Ptr{Cvoid}, + symbol::Ptr{Cvoid}, + sizeBytes::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpy2D_spt(dst, dpitch, src, spitch, width, height, kind) + @ccall librocprofiler_sdk_tool.hipMemcpy2D_spt(dst::Ptr{Cvoid}, dpitch::Csize_t, + src::Ptr{Cvoid}, spitch::Csize_t, + width::Csize_t, height::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpy2DFromArray_spt(dst, dpitch, src, wOffset, hOffset, width, height, kind) + @ccall librocprofiler_sdk_tool.hipMemcpy2DFromArray_spt(dst::Ptr{Cvoid}, + dpitch::Csize_t, + src::hipArray_const_t, + wOffset::Csize_t, + hOffset::Csize_t, + width::Csize_t, height::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpy3D_spt(p) + @ccall librocprofiler_sdk_tool.hipMemcpy3D_spt(p::Ptr{hipMemcpy3DParms})::hipError_t +end + +function hipMemset_spt(dst, value, sizeBytes) + @ccall librocprofiler_sdk_tool.hipMemset_spt(dst::Ptr{Cvoid}, value::Cint, + sizeBytes::Csize_t)::hipError_t +end + +function hipMemsetAsync_spt(dst, value, sizeBytes, stream) + @ccall librocprofiler_sdk_tool.hipMemsetAsync_spt(dst::Ptr{Cvoid}, value::Cint, + sizeBytes::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemset2D_spt(dst, pitch, value, width, height) + @ccall librocprofiler_sdk_tool.hipMemset2D_spt(dst::Ptr{Cvoid}, pitch::Csize_t, + value::Cint, width::Csize_t, + height::Csize_t)::hipError_t +end + +function hipMemset2DAsync_spt(dst, pitch, value, width, height, stream) + @ccall librocprofiler_sdk_tool.hipMemset2DAsync_spt(dst::Ptr{Cvoid}, pitch::Csize_t, + value::Cint, width::Csize_t, + height::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipMemset3DAsync_spt(pitchedDevPtr, value, extent, stream) + @ccall librocprofiler_sdk_tool.hipMemset3DAsync_spt(pitchedDevPtr::hipPitchedPtr, + value::Cint, extent::hipExtent, + stream::hipStream_t)::hipError_t +end + +function hipMemset3D_spt(pitchedDevPtr, value, extent) + @ccall librocprofiler_sdk_tool.hipMemset3D_spt(pitchedDevPtr::hipPitchedPtr, + value::Cint, + extent::hipExtent)::hipError_t +end + +function hipMemcpyAsync_spt(dst, src, sizeBytes, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyAsync_spt(dst::Ptr{Cvoid}, src::Ptr{Cvoid}, + sizeBytes::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpy3DAsync_spt(p, stream) + @ccall librocprofiler_sdk_tool.hipMemcpy3DAsync_spt(p::Ptr{hipMemcpy3DParms}, + stream::hipStream_t)::hipError_t +end + +function hipMemcpy2DAsync_spt(dst, dpitch, src, spitch, width, height, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpy2DAsync_spt(dst::Ptr{Cvoid}, dpitch::Csize_t, + src::Ptr{Cvoid}, spitch::Csize_t, + width::Csize_t, height::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyFromSymbolAsync_spt(dst, symbol, sizeBytes, offset, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyFromSymbolAsync_spt(dst::Ptr{Cvoid}, + symbol::Ptr{Cvoid}, + sizeBytes::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyToSymbolAsync_spt(symbol, src, sizeBytes, offset, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpyToSymbolAsync_spt(symbol::Ptr{Cvoid}, + src::Ptr{Cvoid}, + sizeBytes::Csize_t, + offset::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpyFromArray_spt(dst, src, wOffsetSrc, hOffset, count, kind) + @ccall librocprofiler_sdk_tool.hipMemcpyFromArray_spt(dst::Ptr{Cvoid}, + src::hipArray_const_t, + wOffsetSrc::Csize_t, + hOffset::Csize_t, count::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpy2DToArray_spt(dst, wOffset, hOffset, src, spitch, width, height, kind) + @ccall librocprofiler_sdk_tool.hipMemcpy2DToArray_spt(dst::hipArray_t, wOffset::Csize_t, + hOffset::Csize_t, src::Ptr{Cvoid}, + spitch::Csize_t, width::Csize_t, + height::Csize_t, + kind::hipMemcpyKind)::hipError_t +end + +function hipMemcpy2DFromArrayAsync_spt(dst, dpitch, src, wOffsetSrc, hOffsetSrc, width, + height, kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpy2DFromArrayAsync_spt(dst::Ptr{Cvoid}, + dpitch::Csize_t, + src::hipArray_const_t, + wOffsetSrc::Csize_t, + hOffsetSrc::Csize_t, + width::Csize_t, + height::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipMemcpy2DToArrayAsync_spt(dst, wOffset, hOffset, src, spitch, width, height, + kind, stream) + @ccall librocprofiler_sdk_tool.hipMemcpy2DToArrayAsync_spt(dst::hipArray_t, + wOffset::Csize_t, + hOffset::Csize_t, + src::Ptr{Cvoid}, + spitch::Csize_t, + width::Csize_t, + height::Csize_t, + kind::hipMemcpyKind, + stream::hipStream_t)::hipError_t +end + +function hipStreamQuery_spt(stream) + @ccall librocprofiler_sdk_tool.hipStreamQuery_spt(stream::hipStream_t)::hipError_t +end + +function hipStreamSynchronize_spt(stream) + @ccall librocprofiler_sdk_tool.hipStreamSynchronize_spt(stream::hipStream_t)::hipError_t +end + +function hipStreamGetPriority_spt(stream, priority) + @ccall librocprofiler_sdk_tool.hipStreamGetPriority_spt(stream::hipStream_t, + priority::Ptr{Cint})::hipError_t +end + +function hipStreamWaitEvent_spt(stream, event, flags) + @ccall librocprofiler_sdk_tool.hipStreamWaitEvent_spt(stream::hipStream_t, + event::hipEvent_t, + flags::Cuint)::hipError_t +end + +function hipStreamGetFlags_spt(stream, flags) + @ccall librocprofiler_sdk_tool.hipStreamGetFlags_spt(stream::hipStream_t, + flags::Ptr{Cuint})::hipError_t +end + +function hipStreamAddCallback_spt(stream, callback, userData, flags) + @ccall librocprofiler_sdk_tool.hipStreamAddCallback_spt(stream::hipStream_t, + callback::hipStreamCallback_t, + userData::Ptr{Cvoid}, + flags::Cuint)::hipError_t +end + +function hipEventRecord_spt(event, stream) + @ccall librocprofiler_sdk_tool.hipEventRecord_spt(event::hipEvent_t, + stream::hipStream_t)::hipError_t +end + +function hipLaunchCooperativeKernel_spt(f, gridDim, blockDim, kernelParams, sharedMemBytes, + hStream) + @ccall librocprofiler_sdk_tool.hipLaunchCooperativeKernel_spt(f::Ptr{Cvoid}, + gridDim::dim3, + blockDim::dim3, + kernelParams::Ptr{Ptr{Cvoid}}, + sharedMemBytes::UInt32, + hStream::hipStream_t)::hipError_t +end + +function hipLaunchKernel_spt(function_address, numBlocks, dimBlocks, args, sharedMemBytes, + stream) + @ccall librocprofiler_sdk_tool.hipLaunchKernel_spt(function_address::Ptr{Cvoid}, + numBlocks::dim3, dimBlocks::dim3, + args::Ptr{Ptr{Cvoid}}, + sharedMemBytes::Csize_t, + stream::hipStream_t)::hipError_t +end + +function hipGraphLaunch_spt(graphExec, stream) + @ccall librocprofiler_sdk_tool.hipGraphLaunch_spt(graphExec::hipGraphExec_t, + stream::hipStream_t)::hipError_t +end + +function hipStreamBeginCapture_spt(stream, mode) + @ccall librocprofiler_sdk_tool.hipStreamBeginCapture_spt(stream::hipStream_t, + mode::hipStreamCaptureMode)::hipError_t +end + +function hipStreamEndCapture_spt(stream, pGraph) + @ccall librocprofiler_sdk_tool.hipStreamEndCapture_spt(stream::hipStream_t, + pGraph::Ptr{hipGraph_t})::hipError_t +end + +function hipStreamIsCapturing_spt(stream, pCaptureStatus) + @ccall librocprofiler_sdk_tool.hipStreamIsCapturing_spt(stream::hipStream_t, + pCaptureStatus::Ptr{hipStreamCaptureStatus})::hipError_t +end + +function hipStreamGetCaptureInfo_spt(stream, pCaptureStatus, pId) + @ccall librocprofiler_sdk_tool.hipStreamGetCaptureInfo_spt(stream::hipStream_t, + pCaptureStatus::Ptr{hipStreamCaptureStatus}, + pId::Ptr{Culonglong})::hipError_t +end + +function hipStreamGetCaptureInfo_v2_spt(stream, captureStatus_out, id_out, graph_out, + dependencies_out, numDependencies_out) + @ccall librocprofiler_sdk_tool.hipStreamGetCaptureInfo_v2_spt(stream::hipStream_t, + captureStatus_out::Ptr{hipStreamCaptureStatus}, + id_out::Ptr{Culonglong}, + graph_out::Ptr{hipGraph_t}, + dependencies_out::Ptr{Ptr{hipGraphNode_t}}, + numDependencies_out::Ptr{Csize_t})::hipError_t +end + +function hipLaunchHostFunc_spt(stream, fn, userData) + @ccall librocprofiler_sdk_tool.hipLaunchHostFunc_spt(stream::hipStream_t, + fn::hipHostFn_t, + userData::Ptr{Cvoid})::hipError_t +end + +@cenum hipDataType::UInt32 begin + HIP_R_32F = 0 + HIP_R_64F = 1 + HIP_R_16F = 2 + HIP_R_8I = 3 + HIP_C_32F = 4 + HIP_C_64F = 5 + HIP_C_16F = 6 + HIP_C_8I = 7 + HIP_R_8U = 8 + HIP_C_8U = 9 + HIP_R_32I = 10 + HIP_C_32I = 11 + HIP_R_32U = 12 + HIP_C_32U = 13 + HIP_R_16BF = 14 + HIP_C_16BF = 15 + HIP_R_4I = 16 + HIP_C_4I = 17 + HIP_R_4U = 18 + HIP_C_4U = 19 + HIP_R_16I = 20 + HIP_C_16I = 21 + HIP_R_16U = 22 + HIP_C_16U = 23 + HIP_R_64I = 24 + HIP_C_64I = 25 + HIP_R_64U = 26 + HIP_C_64U = 27 + HIP_R_8F_E4M3 = 28 + HIP_R_8F_E5M2 = 29 + HIP_R_8F_UE8M0 = 30 + HIP_R_6F_E2M3 = 31 + HIP_R_6F_E3M2 = 32 + HIP_R_4F_E2M1 = 33 + HIP_R_8F_E4M3_FNUZ = 1000 + HIP_R_8F_E5M2_FNUZ = 1001 +end + +@cenum hipLibraryPropertyType::UInt32 begin + HIP_LIBRARY_MAJOR_VERSION = 0 + HIP_LIBRARY_MINOR_VERSION = 1 + HIP_LIBRARY_PATCH_LEVEL = 2 +end + +struct hipDeviceProp_tR0000 + data::NTuple{792,UInt8} +end + +function Base.getproperty(x::Ptr{hipDeviceProp_tR0000}, f::Symbol) + f === :name && return Ptr{NTuple{256,Cchar}}(x + 0) + f === :totalGlobalMem && return Ptr{Csize_t}(x + 256) + f === :sharedMemPerBlock && return Ptr{Csize_t}(x + 264) + f === :regsPerBlock && return Ptr{Cint}(x + 272) + f === :warpSize && return Ptr{Cint}(x + 276) + f === :maxThreadsPerBlock && return Ptr{Cint}(x + 280) + f === :maxThreadsDim && return Ptr{NTuple{3,Cint}}(x + 284) + f === :maxGridSize && return Ptr{NTuple{3,Cint}}(x + 296) + f === :clockRate && return Ptr{Cint}(x + 308) + f === :memoryClockRate && return Ptr{Cint}(x + 312) + f === :memoryBusWidth && return Ptr{Cint}(x + 316) + f === :totalConstMem && return Ptr{Csize_t}(x + 320) + f === :major && return Ptr{Cint}(x + 328) + f === :minor && return Ptr{Cint}(x + 332) + f === :multiProcessorCount && return Ptr{Cint}(x + 336) + f === :l2CacheSize && return Ptr{Cint}(x + 340) + f === :maxThreadsPerMultiProcessor && return Ptr{Cint}(x + 344) + f === :computeMode && return Ptr{Cint}(x + 348) + f === :clockInstructionRate && return Ptr{Cint}(x + 352) + f === :arch && return Ptr{hipDeviceArch_t}(x + 356) + f === :concurrentKernels && return Ptr{Cint}(x + 360) + f === :pciDomainID && return Ptr{Cint}(x + 364) + f === :pciBusID && return Ptr{Cint}(x + 368) + f === :pciDeviceID && return Ptr{Cint}(x + 372) + f === :maxSharedMemoryPerMultiProcessor && return Ptr{Csize_t}(x + 376) + f === :isMultiGpuBoard && return Ptr{Cint}(x + 384) + f === :canMapHostMemory && return Ptr{Cint}(x + 388) + f === :gcnArch && return Ptr{Cint}(x + 392) + f === :gcnArchName && return Ptr{NTuple{256,Cchar}}(x + 396) + f === :integrated && return Ptr{Cint}(x + 652) + f === :cooperativeLaunch && return Ptr{Cint}(x + 656) + f === :cooperativeMultiDeviceLaunch && return Ptr{Cint}(x + 660) + f === :maxTexture1DLinear && return Ptr{Cint}(x + 664) + f === :maxTexture1D && return Ptr{Cint}(x + 668) + f === :maxTexture2D && return Ptr{NTuple{2,Cint}}(x + 672) + f === :maxTexture3D && return Ptr{NTuple{3,Cint}}(x + 680) + f === :hdpMemFlushCntl && return Ptr{Ptr{Cuint}}(x + 696) + f === :hdpRegFlushCntl && return Ptr{Ptr{Cuint}}(x + 704) + f === :memPitch && return Ptr{Csize_t}(x + 712) + f === :textureAlignment && return Ptr{Csize_t}(x + 720) + f === :texturePitchAlignment && return Ptr{Csize_t}(x + 728) + f === :kernelExecTimeoutEnabled && return Ptr{Cint}(x + 736) + f === :ECCEnabled && return Ptr{Cint}(x + 740) + f === :tccDriver && return Ptr{Cint}(x + 744) + f === :cooperativeMultiDeviceUnmatchedFunc && return Ptr{Cint}(x + 748) + f === :cooperativeMultiDeviceUnmatchedGridDim && return Ptr{Cint}(x + 752) + f === :cooperativeMultiDeviceUnmatchedBlockDim && return Ptr{Cint}(x + 756) + f === :cooperativeMultiDeviceUnmatchedSharedMem && return Ptr{Cint}(x + 760) + f === :isLargeBar && return Ptr{Cint}(x + 764) + f === :asicRevision && return Ptr{Cint}(x + 768) + f === :managedMemory && return Ptr{Cint}(x + 772) + f === :directManagedMemAccessFromHost && return Ptr{Cint}(x + 776) + f === :concurrentManagedAccess && return Ptr{Cint}(x + 780) + f === :pageableMemoryAccess && return Ptr{Cint}(x + 784) + f === :pageableMemoryAccessUsesHostPageTables && return Ptr{Cint}(x + 788) + return getfield(x, f) +end + +function Base.getproperty(x::hipDeviceProp_tR0000, f::Symbol) + r = Ref{hipDeviceProp_tR0000}(x) + ptr = Base.unsafe_convert(Ptr{hipDeviceProp_tR0000}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipDeviceProp_tR0000}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipDeviceProp_tR0000, private::Bool=false) + return (:name, :totalGlobalMem, :sharedMemPerBlock, :regsPerBlock, :warpSize, + :maxThreadsPerBlock, :maxThreadsDim, :maxGridSize, :clockRate, :memoryClockRate, + :memoryBusWidth, :totalConstMem, :major, :minor, :multiProcessorCount, + :l2CacheSize, :maxThreadsPerMultiProcessor, :computeMode, :clockInstructionRate, + :arch, :concurrentKernels, :pciDomainID, :pciBusID, :pciDeviceID, + :maxSharedMemoryPerMultiProcessor, :isMultiGpuBoard, :canMapHostMemory, + :gcnArch, :gcnArchName, :integrated, :cooperativeLaunch, + :cooperativeMultiDeviceLaunch, :maxTexture1DLinear, :maxTexture1D, + :maxTexture2D, :maxTexture3D, :hdpMemFlushCntl, :hdpRegFlushCntl, :memPitch, + :textureAlignment, :texturePitchAlignment, :kernelExecTimeoutEnabled, + :ECCEnabled, :tccDriver, :cooperativeMultiDeviceUnmatchedFunc, + :cooperativeMultiDeviceUnmatchedGridDim, + :cooperativeMultiDeviceUnmatchedBlockDim, + :cooperativeMultiDeviceUnmatchedSharedMem, :isLargeBar, :asicRevision, + :managedMemory, :directManagedMemAccessFromHost, :concurrentManagedAccess, + :pageableMemoryAccess, :pageableMemoryAccessUsesHostPageTables, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +function hipGetDevicePropertiesR0000(prop, device) + @ccall librocprofiler_sdk_tool.hipGetDevicePropertiesR0000(prop::Ptr{hipDeviceProp_tR0000}, + device::Cint)::hipError_t +end + +function hipChooseDeviceR0000(device, prop) + @ccall librocprofiler_sdk_tool.hipChooseDeviceR0000(device::Ptr{Cint}, + prop::Ptr{hipDeviceProp_tR0000})::hipError_t +end + +@cenum hipGLDeviceList::UInt32 begin + hipGLDeviceListAll = 1 + hipGLDeviceListCurrentFrame = 2 + hipGLDeviceListNextFrame = 3 +end + +const GLuint = Cuint + +const GLenum = Cuint + +function hipGLGetDevices(pHipDeviceCount, pHipDevices, hipDeviceCount, deviceList) + @ccall librocprofiler_sdk_tool.hipGLGetDevices(pHipDeviceCount::Ptr{Cuint}, + pHipDevices::Ptr{Cint}, + hipDeviceCount::Cuint, + deviceList::hipGLDeviceList)::hipError_t +end + +function hipGraphicsGLRegisterBuffer(resource, buffer, flags) + @ccall librocprofiler_sdk_tool.hipGraphicsGLRegisterBuffer(resource::Ptr{Ptr{hipGraphicsResource}}, + buffer::GLuint, + flags::Cuint)::hipError_t +end + +function hipGraphicsGLRegisterImage(resource, image, target, flags) + @ccall librocprofiler_sdk_tool.hipGraphicsGLRegisterImage(resource::Ptr{Ptr{hipGraphicsResource}}, + image::GLuint, target::GLenum, + flags::Cuint)::hipError_t +end + +# typedef hipError_t ( * t___hipPopCallConfiguration ) ( dim3 * gridDim , dim3 * blockDim , size_t * sharedMem , hipStream_t * stream ) +const t___hipPopCallConfiguration = Ptr{Cvoid} + +# typedef hipError_t ( * t___hipPushCallConfiguration ) ( dim3 gridDim , dim3 blockDim , size_t sharedMem , hipStream_t stream ) +const t___hipPushCallConfiguration = Ptr{Cvoid} + +# typedef void * * ( * t___hipRegisterFatBinary ) ( const void * data ) +const t___hipRegisterFatBinary = Ptr{Cvoid} + +# typedef void ( * t___hipRegisterFunction ) ( void * * modules , const void * hostFunction , char * deviceFunction , const char * deviceName , unsigned int threadLimit , uint3 * tid , uint3 * bid , dim3 * blockDim , dim3 * gridDim , int * wSize ) +const t___hipRegisterFunction = Ptr{Cvoid} + +# typedef void ( * t___hipRegisterManagedVar ) ( void * hipModule , void * * pointer , void * init_value , const char * name , size_t size , unsigned align ) +const t___hipRegisterManagedVar = Ptr{Cvoid} + +# typedef void ( * t___hipRegisterSurface ) ( void * * modules , void * var , char * hostVar , char * deviceVar , int type , int ext ) +const t___hipRegisterSurface = Ptr{Cvoid} + +# typedef void ( * t___hipRegisterTexture ) ( void * * modules , void * var , char * hostVar , char * deviceVar , int type , int norm , int ext ) +const t___hipRegisterTexture = Ptr{Cvoid} + +# typedef void ( * t___hipRegisterVar ) ( void * * modules , void * var , char * hostVar , char * deviceVar , int ext , size_t size , int constant , int global ) +const t___hipRegisterVar = Ptr{Cvoid} + +# typedef void ( * t___hipUnregisterFatBinary ) ( void * * modules ) +const t___hipUnregisterFatBinary = Ptr{Cvoid} + +# typedef void ( * t___hipReportDevices ) ( size_t numDevices , const hipUUID * uuids ) +const t___hipReportDevices = Ptr{Cvoid} + +# typedef const char * ( * t_hipApiName ) ( uint32_t id ) +const t_hipApiName = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipArray3DCreate ) ( hipArray_t * array , const HIP_ARRAY3D_DESCRIPTOR * pAllocateArray ) +const t_hipArray3DCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipArray3DGetDescriptor ) ( HIP_ARRAY3D_DESCRIPTOR * pArrayDescriptor , hipArray_t array ) +const t_hipArray3DGetDescriptor = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipArrayCreate ) ( hipArray_t * pHandle , const HIP_ARRAY_DESCRIPTOR * pAllocateArray ) +const t_hipArrayCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipArrayDestroy ) ( hipArray_t array ) +const t_hipArrayDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipArrayGetDescriptor ) ( HIP_ARRAY_DESCRIPTOR * pArrayDescriptor , hipArray_t array ) +const t_hipArrayGetDescriptor = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipArrayGetInfo ) ( hipChannelFormatDesc * desc , hipExtent * extent , unsigned int * flags , hipArray_t array ) +const t_hipArrayGetInfo = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipBindTexture ) ( size_t * offset , const textureReference * tex , const void * devPtr , const hipChannelFormatDesc * desc , size_t size ) +const t_hipBindTexture = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipBindTexture2D ) ( size_t * offset , const textureReference * tex , const void * devPtr , const hipChannelFormatDesc * desc , size_t width , size_t height , size_t pitch ) +const t_hipBindTexture2D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipBindTextureToArray ) ( const textureReference * tex , hipArray_const_t array , const hipChannelFormatDesc * desc ) +const t_hipBindTextureToArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipBindTextureToMipmappedArray ) ( const textureReference * tex , hipMipmappedArray_const_t mipmappedArray , const hipChannelFormatDesc * desc ) +const t_hipBindTextureToMipmappedArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipChooseDevice ) ( int * device , const hipDeviceProp_t * prop ) +const t_hipChooseDevice = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipChooseDeviceR0000 ) ( int * device , const hipDeviceProp_tR0000 * properties ) +const t_hipChooseDeviceR0000 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipConfigureCall ) ( dim3 gridDim , dim3 blockDim , size_t sharedMem , hipStream_t stream ) +const t_hipConfigureCall = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCreateSurfaceObject ) ( hipSurfaceObject_t * pSurfObject , const hipResourceDesc * pResDesc ) +const t_hipCreateSurfaceObject = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCreateTextureObject ) ( hipTextureObject_t * pTexObject , const hipResourceDesc * pResDesc , const hipTextureDesc * pTexDesc , const struct hipResourceViewDesc * pResViewDesc ) +const t_hipCreateTextureObject = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxCreate ) ( hipCtx_t * ctx , unsigned int flags , hipDevice_t device ) +const t_hipCtxCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxDestroy ) ( hipCtx_t ctx ) +const t_hipCtxDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxDisablePeerAccess ) ( hipCtx_t peerCtx ) +const t_hipCtxDisablePeerAccess = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxEnablePeerAccess ) ( hipCtx_t peerCtx , unsigned int flags ) +const t_hipCtxEnablePeerAccess = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxGetApiVersion ) ( hipCtx_t ctx , int * apiVersion ) +const t_hipCtxGetApiVersion = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxGetCacheConfig ) ( hipFuncCache_t * cacheConfig ) +const t_hipCtxGetCacheConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxGetCurrent ) ( hipCtx_t * ctx ) +const t_hipCtxGetCurrent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxGetDevice ) ( hipDevice_t * device ) +const t_hipCtxGetDevice = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxGetFlags ) ( unsigned int * flags ) +const t_hipCtxGetFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxGetSharedMemConfig ) ( hipSharedMemConfig * pConfig ) +const t_hipCtxGetSharedMemConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxPopCurrent ) ( hipCtx_t * ctx ) +const t_hipCtxPopCurrent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxPushCurrent ) ( hipCtx_t ctx ) +const t_hipCtxPushCurrent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxSetCacheConfig ) ( hipFuncCache_t cacheConfig ) +const t_hipCtxSetCacheConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxSetCurrent ) ( hipCtx_t ctx ) +const t_hipCtxSetCurrent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxSetSharedMemConfig ) ( hipSharedMemConfig config ) +const t_hipCtxSetSharedMemConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipCtxSynchronize ) ( void ) +const t_hipCtxSynchronize = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDestroyExternalMemory ) ( hipExternalMemory_t extMem ) +const t_hipDestroyExternalMemory = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDestroyExternalSemaphore ) ( hipExternalSemaphore_t extSem ) +const t_hipDestroyExternalSemaphore = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDestroySurfaceObject ) ( hipSurfaceObject_t surfaceObject ) +const t_hipDestroySurfaceObject = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDestroyTextureObject ) ( hipTextureObject_t textureObject ) +const t_hipDestroyTextureObject = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceCanAccessPeer ) ( int * canAccessPeer , int deviceId , int peerDeviceId ) +const t_hipDeviceCanAccessPeer = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceComputeCapability ) ( int * major , int * minor , hipDevice_t device ) +const t_hipDeviceComputeCapability = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceDisablePeerAccess ) ( int peerDeviceId ) +const t_hipDeviceDisablePeerAccess = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceEnablePeerAccess ) ( int peerDeviceId , unsigned int flags ) +const t_hipDeviceEnablePeerAccess = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGet ) ( hipDevice_t * device , int ordinal ) +const t_hipDeviceGet = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetAttribute ) ( int * pi , hipDeviceAttribute_t attr , int deviceId ) +const t_hipDeviceGetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetByPCIBusId ) ( int * device , const char * pciBusId ) +const t_hipDeviceGetByPCIBusId = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetCacheConfig ) ( hipFuncCache_t * cacheConfig ) +const t_hipDeviceGetCacheConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetDefaultMemPool ) ( hipMemPool_t * mem_pool , int device ) +const t_hipDeviceGetDefaultMemPool = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetGraphMemAttribute ) ( int device , hipGraphMemAttributeType attr , void * value ) +const t_hipDeviceGetGraphMemAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetLimit ) ( size_t * pValue , enum hipLimit_t limit ) +const t_hipDeviceGetLimit = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetMemPool ) ( hipMemPool_t * mem_pool , int device ) +const t_hipDeviceGetMemPool = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetName ) ( char * name , int len , hipDevice_t device ) +const t_hipDeviceGetName = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetP2PAttribute ) ( int * value , hipDeviceP2PAttr attr , int srcDevice , int dstDevice ) +const t_hipDeviceGetP2PAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetPCIBusId ) ( char * pciBusId , int len , int device ) +const t_hipDeviceGetPCIBusId = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetSharedMemConfig ) ( hipSharedMemConfig * pConfig ) +const t_hipDeviceGetSharedMemConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetStreamPriorityRange ) ( int * leastPriority , int * greatestPriority ) +const t_hipDeviceGetStreamPriorityRange = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetUuid ) ( hipUUID * uuid , hipDevice_t device ) +const t_hipDeviceGetUuid = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGraphMemTrim ) ( int device ) +const t_hipDeviceGraphMemTrim = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDevicePrimaryCtxGetState ) ( hipDevice_t dev , unsigned int * flags , int * active ) +const t_hipDevicePrimaryCtxGetState = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDevicePrimaryCtxRelease ) ( hipDevice_t dev ) +const t_hipDevicePrimaryCtxRelease = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDevicePrimaryCtxReset ) ( hipDevice_t dev ) +const t_hipDevicePrimaryCtxReset = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDevicePrimaryCtxRetain ) ( hipCtx_t * pctx , hipDevice_t dev ) +const t_hipDevicePrimaryCtxRetain = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDevicePrimaryCtxSetFlags ) ( hipDevice_t dev , unsigned int flags ) +const t_hipDevicePrimaryCtxSetFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceReset ) ( void ) +const t_hipDeviceReset = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceSetCacheConfig ) ( hipFuncCache_t cacheConfig ) +const t_hipDeviceSetCacheConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceSetGraphMemAttribute ) ( int device , hipGraphMemAttributeType attr , void * value ) +const t_hipDeviceSetGraphMemAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceSetLimit ) ( enum hipLimit_t limit , size_t value ) +const t_hipDeviceSetLimit = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceSetMemPool ) ( int device , hipMemPool_t mem_pool ) +const t_hipDeviceSetMemPool = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceSetSharedMemConfig ) ( hipSharedMemConfig config ) +const t_hipDeviceSetSharedMemConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceSynchronize ) ( void ) +const t_hipDeviceSynchronize = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceTotalMem ) ( size_t * bytes , hipDevice_t device ) +const t_hipDeviceTotalMem = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDriverGetVersion ) ( int * driverVersion ) +const t_hipDriverGetVersion = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvGetErrorName ) ( hipError_t hipError , const char * * errorString ) +const t_hipDrvGetErrorName = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvGetErrorString ) ( hipError_t hipError , const char * * errorString ) +const t_hipDrvGetErrorString = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvGraphAddMemcpyNode ) ( hipGraphNode_t * phGraphNode , hipGraph_t hGraph , const hipGraphNode_t * dependencies , size_t numDependencies , const HIP_MEMCPY3D * copyParams , hipCtx_t ctx ) +const t_hipDrvGraphAddMemcpyNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvMemcpy2DUnaligned ) ( const hip_Memcpy2D * pCopy ) +const t_hipDrvMemcpy2DUnaligned = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvMemcpy3D ) ( const HIP_MEMCPY3D * pCopy ) +const t_hipDrvMemcpy3D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvMemcpy3DAsync ) ( const HIP_MEMCPY3D * pCopy , hipStream_t stream ) +const t_hipDrvMemcpy3DAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvPointerGetAttributes ) ( unsigned int numAttributes , hipPointer_attribute * attributes , void * * data , hipDeviceptr_t ptr ) +const t_hipDrvPointerGetAttributes = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipEventCreate ) ( hipEvent_t * event ) +const t_hipEventCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipEventCreateWithFlags ) ( hipEvent_t * event , unsigned flags ) +const t_hipEventCreateWithFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipEventDestroy ) ( hipEvent_t event ) +const t_hipEventDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipEventElapsedTime ) ( float * ms , hipEvent_t start , hipEvent_t stop ) +const t_hipEventElapsedTime = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipEventQuery ) ( hipEvent_t event ) +const t_hipEventQuery = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipEventRecord ) ( hipEvent_t event , hipStream_t stream ) +const t_hipEventRecord = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipEventSynchronize ) ( hipEvent_t event ) +const t_hipEventSynchronize = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExtGetLinkTypeAndHopCount ) ( int device1 , int device2 , uint32_t * linktype , uint32_t * hopcount ) +const t_hipExtGetLinkTypeAndHopCount = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExtLaunchKernel ) ( const void * function_address , dim3 numBlocks , dim3 dimBlocks , void * * args , size_t sharedMemBytes , hipStream_t stream , hipEvent_t startEvent , hipEvent_t stopEvent , int flags ) +const t_hipExtLaunchKernel = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExtLaunchMultiKernelMultiDevice ) ( hipLaunchParams * launchParamsList , int numDevices , unsigned int flags ) +const t_hipExtLaunchMultiKernelMultiDevice = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExtMallocWithFlags ) ( void * * ptr , size_t sizeBytes , unsigned int flags ) +const t_hipExtMallocWithFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExtStreamCreateWithCUMask ) ( hipStream_t * stream , uint32_t cuMaskSize , const uint32_t * cuMask ) +const t_hipExtStreamCreateWithCUMask = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExtStreamGetCUMask ) ( hipStream_t stream , uint32_t cuMaskSize , uint32_t * cuMask ) +const t_hipExtStreamGetCUMask = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExternalMemoryGetMappedBuffer ) ( void * * devPtr , hipExternalMemory_t extMem , const hipExternalMemoryBufferDesc * bufferDesc ) +const t_hipExternalMemoryGetMappedBuffer = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFree ) ( void * ptr ) +const t_hipFree = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFreeArray ) ( hipArray_t array ) +const t_hipFreeArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFreeAsync ) ( void * dev_ptr , hipStream_t stream ) +const t_hipFreeAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFreeHost ) ( void * ptr ) +const t_hipFreeHost = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFreeMipmappedArray ) ( hipMipmappedArray_t mipmappedArray ) +const t_hipFreeMipmappedArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFuncGetAttribute ) ( int * value , hipFunction_attribute attrib , hipFunction_t hfunc ) +const t_hipFuncGetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFuncGetAttributes ) ( struct hipFuncAttributes * attr , const void * func ) +const t_hipFuncGetAttributes = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFuncSetAttribute ) ( const void * func , hipFuncAttribute attr , int value ) +const t_hipFuncSetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFuncSetCacheConfig ) ( const void * func , hipFuncCache_t config ) +const t_hipFuncSetCacheConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipFuncSetSharedMemConfig ) ( const void * func , hipSharedMemConfig config ) +const t_hipFuncSetSharedMemConfig = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGLGetDevices ) ( unsigned int * pHipDeviceCount , int * pHipDevices , unsigned int hipDeviceCount , hipGLDeviceList deviceList ) +const t_hipGLGetDevices = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetChannelDesc ) ( hipChannelFormatDesc * desc , hipArray_const_t array ) +const t_hipGetChannelDesc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetDevice ) ( int * deviceId ) +const t_hipGetDevice = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetDeviceCount ) ( int * count ) +const t_hipGetDeviceCount = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetDeviceFlags ) ( unsigned int * flags ) +const t_hipGetDeviceFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetDevicePropertiesR0600 ) ( hipDeviceProp_tR0600 * prop , int device ) +const t_hipGetDevicePropertiesR0600 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetDevicePropertiesR0000 ) ( hipDeviceProp_tR0000 * prop , int device ) +const t_hipGetDevicePropertiesR0000 = Ptr{Cvoid} + +# typedef const char * ( * t_hipGetErrorName ) ( hipError_t hip_error ) +const t_hipGetErrorName = Ptr{Cvoid} + +# typedef const char * ( * t_hipGetErrorString ) ( hipError_t hipError ) +const t_hipGetErrorString = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetLastError ) ( void ) +const t_hipGetLastError = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetMipmappedArrayLevel ) ( hipArray_t * levelArray , hipMipmappedArray_const_t mipmappedArray , unsigned int level ) +const t_hipGetMipmappedArrayLevel = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetSymbolAddress ) ( void * * devPtr , const void * symbol ) +const t_hipGetSymbolAddress = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetSymbolSize ) ( size_t * size , const void * symbol ) +const t_hipGetSymbolSize = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetTextureAlignmentOffset ) ( size_t * offset , const textureReference * texref ) +const t_hipGetTextureAlignmentOffset = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetTextureObjectResourceDesc ) ( hipResourceDesc * pResDesc , hipTextureObject_t textureObject ) +const t_hipGetTextureObjectResourceDesc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetTextureObjectResourceViewDesc ) ( struct hipResourceViewDesc * pResViewDesc , hipTextureObject_t textureObject ) +const t_hipGetTextureObjectResourceViewDesc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetTextureObjectTextureDesc ) ( hipTextureDesc * pTexDesc , hipTextureObject_t textureObject ) +const t_hipGetTextureObjectTextureDesc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetTextureReference ) ( const textureReference * * texref , const void * symbol ) +const t_hipGetTextureReference = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddChildGraphNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , hipGraph_t childGraph ) +const t_hipGraphAddChildGraphNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddDependencies ) ( hipGraph_t graph , const hipGraphNode_t * from , const hipGraphNode_t * to , size_t numDependencies ) +const t_hipGraphAddDependencies = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddEmptyNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies ) +const t_hipGraphAddEmptyNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddEventRecordNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , hipEvent_t event ) +const t_hipGraphAddEventRecordNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddEventWaitNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , hipEvent_t event ) +const t_hipGraphAddEventWaitNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddHostNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , const hipHostNodeParams * pNodeParams ) +const t_hipGraphAddHostNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddKernelNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , const hipKernelNodeParams * pNodeParams ) +const t_hipGraphAddKernelNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddMemAllocNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , hipMemAllocNodeParams * pNodeParams ) +const t_hipGraphAddMemAllocNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddMemFreeNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , void * dev_ptr ) +const t_hipGraphAddMemFreeNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddMemcpyNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , const hipMemcpy3DParms * pCopyParams ) +const t_hipGraphAddMemcpyNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddMemcpyNode1D ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , void * dst , const void * src , size_t count , hipMemcpyKind kind ) +const t_hipGraphAddMemcpyNode1D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddMemcpyNodeFromSymbol ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , void * dst , const void * symbol , size_t count , size_t offset , hipMemcpyKind kind ) +const t_hipGraphAddMemcpyNodeFromSymbol = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddMemcpyNodeToSymbol ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , const void * symbol , const void * src , size_t count , size_t offset , hipMemcpyKind kind ) +const t_hipGraphAddMemcpyNodeToSymbol = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddMemsetNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , const hipMemsetParams * pMemsetParams ) +const t_hipGraphAddMemsetNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphChildGraphNodeGetGraph ) ( hipGraphNode_t node , hipGraph_t * pGraph ) +const t_hipGraphChildGraphNodeGetGraph = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphClone ) ( hipGraph_t * pGraphClone , hipGraph_t originalGraph ) +const t_hipGraphClone = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphCreate ) ( hipGraph_t * pGraph , unsigned int flags ) +const t_hipGraphCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphDebugDotPrint ) ( hipGraph_t graph , const char * path , unsigned int flags ) +const t_hipGraphDebugDotPrint = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphDestroy ) ( hipGraph_t graph ) +const t_hipGraphDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphDestroyNode ) ( hipGraphNode_t node ) +const t_hipGraphDestroyNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphEventRecordNodeGetEvent ) ( hipGraphNode_t node , hipEvent_t * event_out ) +const t_hipGraphEventRecordNodeGetEvent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphEventRecordNodeSetEvent ) ( hipGraphNode_t node , hipEvent_t event ) +const t_hipGraphEventRecordNodeSetEvent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphEventWaitNodeGetEvent ) ( hipGraphNode_t node , hipEvent_t * event_out ) +const t_hipGraphEventWaitNodeGetEvent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphEventWaitNodeSetEvent ) ( hipGraphNode_t node , hipEvent_t event ) +const t_hipGraphEventWaitNodeSetEvent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecChildGraphNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t node , hipGraph_t childGraph ) +const t_hipGraphExecChildGraphNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecDestroy ) ( hipGraphExec_t graphExec ) +const t_hipGraphExecDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecEventRecordNodeSetEvent ) ( hipGraphExec_t hGraphExec , hipGraphNode_t hNode , hipEvent_t event ) +const t_hipGraphExecEventRecordNodeSetEvent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecEventWaitNodeSetEvent ) ( hipGraphExec_t hGraphExec , hipGraphNode_t hNode , hipEvent_t event ) +const t_hipGraphExecEventWaitNodeSetEvent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecHostNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t node , const hipHostNodeParams * pNodeParams ) +const t_hipGraphExecHostNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecKernelNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t node , const hipKernelNodeParams * pNodeParams ) +const t_hipGraphExecKernelNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecMemcpyNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t node , hipMemcpy3DParms * pNodeParams ) +const t_hipGraphExecMemcpyNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecMemcpyNodeSetParams1D ) ( hipGraphExec_t hGraphExec , hipGraphNode_t node , void * dst , const void * src , size_t count , hipMemcpyKind kind ) +const t_hipGraphExecMemcpyNodeSetParams1D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecMemcpyNodeSetParamsFromSymbol ) ( hipGraphExec_t hGraphExec , hipGraphNode_t node , void * dst , const void * symbol , size_t count , size_t offset , hipMemcpyKind kind ) +const t_hipGraphExecMemcpyNodeSetParamsFromSymbol = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecMemcpyNodeSetParamsToSymbol ) ( hipGraphExec_t hGraphExec , hipGraphNode_t node , const void * symbol , const void * src , size_t count , size_t offset , hipMemcpyKind kind ) +const t_hipGraphExecMemcpyNodeSetParamsToSymbol = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecMemsetNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t node , const hipMemsetParams * pNodeParams ) +const t_hipGraphExecMemsetNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecUpdate ) ( hipGraphExec_t hGraphExec , hipGraph_t hGraph , hipGraphNode_t * hErrorNode_out , hipGraphExecUpdateResult * updateResult_out ) +const t_hipGraphExecUpdate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphGetEdges ) ( hipGraph_t graph , hipGraphNode_t * from , hipGraphNode_t * to , size_t * numEdges ) +const t_hipGraphGetEdges = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphGetNodes ) ( hipGraph_t graph , hipGraphNode_t * nodes , size_t * numNodes ) +const t_hipGraphGetNodes = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphGetRootNodes ) ( hipGraph_t graph , hipGraphNode_t * pRootNodes , size_t * pNumRootNodes ) +const t_hipGraphGetRootNodes = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphHostNodeGetParams ) ( hipGraphNode_t node , hipHostNodeParams * pNodeParams ) +const t_hipGraphHostNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphHostNodeSetParams ) ( hipGraphNode_t node , const hipHostNodeParams * pNodeParams ) +const t_hipGraphHostNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphInstantiate ) ( hipGraphExec_t * pGraphExec , hipGraph_t graph , hipGraphNode_t * pErrorNode , char * pLogBuffer , size_t bufferSize ) +const t_hipGraphInstantiate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphInstantiateWithFlags ) ( hipGraphExec_t * pGraphExec , hipGraph_t graph , unsigned long long flags ) +const t_hipGraphInstantiateWithFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphKernelNodeCopyAttributes ) ( hipGraphNode_t hSrc , hipGraphNode_t hDst ) +const t_hipGraphKernelNodeCopyAttributes = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphKernelNodeGetAttribute ) ( hipGraphNode_t hNode , hipKernelNodeAttrID attr , hipKernelNodeAttrValue * value ) +const t_hipGraphKernelNodeGetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphKernelNodeGetParams ) ( hipGraphNode_t node , hipKernelNodeParams * pNodeParams ) +const t_hipGraphKernelNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphKernelNodeSetAttribute ) ( hipGraphNode_t hNode , hipKernelNodeAttrID attr , const hipKernelNodeAttrValue * value ) +const t_hipGraphKernelNodeSetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphKernelNodeSetParams ) ( hipGraphNode_t node , const hipKernelNodeParams * pNodeParams ) +const t_hipGraphKernelNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphLaunch ) ( hipGraphExec_t graphExec , hipStream_t stream ) +const t_hipGraphLaunch = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphMemAllocNodeGetParams ) ( hipGraphNode_t node , hipMemAllocNodeParams * pNodeParams ) +const t_hipGraphMemAllocNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphMemFreeNodeGetParams ) ( hipGraphNode_t node , void * dev_ptr ) +const t_hipGraphMemFreeNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphMemcpyNodeGetParams ) ( hipGraphNode_t node , hipMemcpy3DParms * pNodeParams ) +const t_hipGraphMemcpyNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphMemcpyNodeSetParams ) ( hipGraphNode_t node , const hipMemcpy3DParms * pNodeParams ) +const t_hipGraphMemcpyNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphMemcpyNodeSetParams1D ) ( hipGraphNode_t node , void * dst , const void * src , size_t count , hipMemcpyKind kind ) +const t_hipGraphMemcpyNodeSetParams1D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphMemcpyNodeSetParamsFromSymbol ) ( hipGraphNode_t node , void * dst , const void * symbol , size_t count , size_t offset , hipMemcpyKind kind ) +const t_hipGraphMemcpyNodeSetParamsFromSymbol = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphMemcpyNodeSetParamsToSymbol ) ( hipGraphNode_t node , const void * symbol , const void * src , size_t count , size_t offset , hipMemcpyKind kind ) +const t_hipGraphMemcpyNodeSetParamsToSymbol = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphMemsetNodeGetParams ) ( hipGraphNode_t node , hipMemsetParams * pNodeParams ) +const t_hipGraphMemsetNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphMemsetNodeSetParams ) ( hipGraphNode_t node , const hipMemsetParams * pNodeParams ) +const t_hipGraphMemsetNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphNodeFindInClone ) ( hipGraphNode_t * pNode , hipGraphNode_t originalNode , hipGraph_t clonedGraph ) +const t_hipGraphNodeFindInClone = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphNodeGetDependencies ) ( hipGraphNode_t node , hipGraphNode_t * pDependencies , size_t * pNumDependencies ) +const t_hipGraphNodeGetDependencies = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphNodeGetDependentNodes ) ( hipGraphNode_t node , hipGraphNode_t * pDependentNodes , size_t * pNumDependentNodes ) +const t_hipGraphNodeGetDependentNodes = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphNodeGetEnabled ) ( hipGraphExec_t hGraphExec , hipGraphNode_t hNode , unsigned int * isEnabled ) +const t_hipGraphNodeGetEnabled = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphNodeGetType ) ( hipGraphNode_t node , hipGraphNodeType * pType ) +const t_hipGraphNodeGetType = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphNodeSetEnabled ) ( hipGraphExec_t hGraphExec , hipGraphNode_t hNode , unsigned int isEnabled ) +const t_hipGraphNodeSetEnabled = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphReleaseUserObject ) ( hipGraph_t graph , hipUserObject_t object , unsigned int count ) +const t_hipGraphReleaseUserObject = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphRemoveDependencies ) ( hipGraph_t graph , const hipGraphNode_t * from , const hipGraphNode_t * to , size_t numDependencies ) +const t_hipGraphRemoveDependencies = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphRetainUserObject ) ( hipGraph_t graph , hipUserObject_t object , unsigned int count , unsigned int flags ) +const t_hipGraphRetainUserObject = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphUpload ) ( hipGraphExec_t graphExec , hipStream_t stream ) +const t_hipGraphUpload = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphicsGLRegisterBuffer ) ( hipGraphicsResource * * resource , GLuint buffer , unsigned int flags ) +const t_hipGraphicsGLRegisterBuffer = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphicsGLRegisterImage ) ( hipGraphicsResource * * resource , GLuint image , GLenum target , unsigned int flags ) +const t_hipGraphicsGLRegisterImage = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphicsMapResources ) ( int count , hipGraphicsResource_t * resources , hipStream_t stream ) +const t_hipGraphicsMapResources = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphicsResourceGetMappedPointer ) ( void * * devPtr , size_t * size , hipGraphicsResource_t resource ) +const t_hipGraphicsResourceGetMappedPointer = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphicsSubResourceGetMappedArray ) ( hipArray_t * array , hipGraphicsResource_t resource , unsigned int arrayIndex , unsigned int mipLevel ) +const t_hipGraphicsSubResourceGetMappedArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphicsUnmapResources ) ( int count , hipGraphicsResource_t * resources , hipStream_t stream ) +const t_hipGraphicsUnmapResources = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphicsUnregisterResource ) ( hipGraphicsResource_t resource ) +const t_hipGraphicsUnregisterResource = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipHostAlloc ) ( void * * ptr , size_t size , unsigned int flags ) +const t_hipHostAlloc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipHostFree ) ( void * ptr ) +const t_hipHostFree = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipHostGetDevicePointer ) ( void * * devPtr , void * hstPtr , unsigned int flags ) +const t_hipHostGetDevicePointer = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipHostGetFlags ) ( unsigned int * flagsPtr , void * hostPtr ) +const t_hipHostGetFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipHostMalloc ) ( void * * ptr , size_t size , unsigned int flags ) +const t_hipHostMalloc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipHostRegister ) ( void * hostPtr , size_t sizeBytes , unsigned int flags ) +const t_hipHostRegister = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipHostUnregister ) ( void * hostPtr ) +const t_hipHostUnregister = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipImportExternalMemory ) ( hipExternalMemory_t * extMem_out , const hipExternalMemoryHandleDesc * memHandleDesc ) +const t_hipImportExternalMemory = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipImportExternalSemaphore ) ( hipExternalSemaphore_t * extSem_out , const hipExternalSemaphoreHandleDesc * semHandleDesc ) +const t_hipImportExternalSemaphore = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipInit ) ( unsigned int flags ) +const t_hipInit = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipIpcCloseMemHandle ) ( void * devPtr ) +const t_hipIpcCloseMemHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipIpcGetEventHandle ) ( hipIpcEventHandle_t * handle , hipEvent_t event ) +const t_hipIpcGetEventHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipIpcGetMemHandle ) ( hipIpcMemHandle_t * handle , void * devPtr ) +const t_hipIpcGetMemHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipIpcOpenEventHandle ) ( hipEvent_t * event , hipIpcEventHandle_t handle ) +const t_hipIpcOpenEventHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipIpcOpenMemHandle ) ( void * * devPtr , hipIpcMemHandle_t handle , unsigned int flags ) +const t_hipIpcOpenMemHandle = Ptr{Cvoid} + +# typedef const char * ( * t_hipKernelNameRef ) ( const hipFunction_t f ) +const t_hipKernelNameRef = Ptr{Cvoid} + +# typedef const char * ( * t_hipKernelNameRefByPtr ) ( const void * hostFunction , hipStream_t stream ) +const t_hipKernelNameRefByPtr = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLaunchByPtr ) ( const void * func ) +const t_hipLaunchByPtr = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLaunchCooperativeKernel ) ( const void * f , dim3 gridDim , dim3 blockDimX , void * * kernelParams , unsigned int sharedMemBytes , hipStream_t stream ) +const t_hipLaunchCooperativeKernel = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLaunchCooperativeKernelMultiDevice ) ( hipLaunchParams * launchParamsList , int numDevices , unsigned int flags ) +const t_hipLaunchCooperativeKernelMultiDevice = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLaunchHostFunc ) ( hipStream_t stream , hipHostFn_t fn , void * userData ) +const t_hipLaunchHostFunc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLaunchKernel ) ( const void * function_address , dim3 numBlocks , dim3 dimBlocks , void * * args , size_t sharedMemBytes , hipStream_t stream ) +const t_hipLaunchKernel = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMalloc ) ( void * * ptr , size_t size ) +const t_hipMalloc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMalloc3D ) ( hipPitchedPtr * pitchedDevPtr , hipExtent extent ) +const t_hipMalloc3D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMalloc3DArray ) ( hipArray_t * array , const struct hipChannelFormatDesc * desc , struct hipExtent extent , unsigned int flags ) +const t_hipMalloc3DArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMallocArray ) ( hipArray_t * array , const hipChannelFormatDesc * desc , size_t width , size_t height , unsigned int flags ) +const t_hipMallocArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMallocAsync ) ( void * * dev_ptr , size_t size , hipStream_t stream ) +const t_hipMallocAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMallocFromPoolAsync ) ( void * * dev_ptr , size_t size , hipMemPool_t mem_pool , hipStream_t stream ) +const t_hipMallocFromPoolAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMallocHost ) ( void * * ptr , size_t size ) +const t_hipMallocHost = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMallocManaged ) ( void * * dev_ptr , size_t size , unsigned int flags ) +const t_hipMallocManaged = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMallocMipmappedArray ) ( hipMipmappedArray_t * mipmappedArray , const struct hipChannelFormatDesc * desc , struct hipExtent extent , unsigned int numLevels , unsigned int flags ) +const t_hipMallocMipmappedArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMallocPitch ) ( void * * ptr , size_t * pitch , size_t width , size_t height ) +const t_hipMallocPitch = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemAddressFree ) ( void * devPtr , size_t size ) +const t_hipMemAddressFree = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemAddressReserve ) ( void * * ptr , size_t size , size_t alignment , void * addr , unsigned long long flags ) +const t_hipMemAddressReserve = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemAdvise ) ( const void * dev_ptr , size_t count , hipMemoryAdvise advice , int device ) +const t_hipMemAdvise = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemAllocHost ) ( void * * ptr , size_t size ) +const t_hipMemAllocHost = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemAllocPitch ) ( hipDeviceptr_t * dptr , size_t * pitch , size_t widthInBytes , size_t height , unsigned int elementSizeBytes ) +const t_hipMemAllocPitch = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemCreate ) ( hipMemGenericAllocationHandle_t * handle , size_t size , const hipMemAllocationProp * prop , unsigned long long flags ) +const t_hipMemCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemExportToShareableHandle ) ( void * shareableHandle , hipMemGenericAllocationHandle_t handle , hipMemAllocationHandleType handleType , unsigned long long flags ) +const t_hipMemExportToShareableHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemGetAccess ) ( unsigned long long * flags , const hipMemLocation * location , void * ptr ) +const t_hipMemGetAccess = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemGetAddressRange ) ( hipDeviceptr_t * pbase , size_t * psize , hipDeviceptr_t dptr ) +const t_hipMemGetAddressRange = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemGetAllocationGranularity ) ( size_t * granularity , const hipMemAllocationProp * prop , hipMemAllocationGranularity_flags option ) +const t_hipMemGetAllocationGranularity = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemGetAllocationPropertiesFromHandle ) ( hipMemAllocationProp * prop , hipMemGenericAllocationHandle_t handle ) +const t_hipMemGetAllocationPropertiesFromHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemGetInfo ) ( size_t * free , size_t * total ) +const t_hipMemGetInfo = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemImportFromShareableHandle ) ( hipMemGenericAllocationHandle_t * handle , void * osHandle , hipMemAllocationHandleType shHandleType ) +const t_hipMemImportFromShareableHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemMap ) ( void * ptr , size_t size , size_t offset , hipMemGenericAllocationHandle_t handle , unsigned long long flags ) +const t_hipMemMap = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemMapArrayAsync ) ( hipArrayMapInfo * mapInfoList , unsigned int count , hipStream_t stream ) +const t_hipMemMapArrayAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolCreate ) ( hipMemPool_t * mem_pool , const hipMemPoolProps * pool_props ) +const t_hipMemPoolCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolDestroy ) ( hipMemPool_t mem_pool ) +const t_hipMemPoolDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolExportPointer ) ( hipMemPoolPtrExportData * export_data , void * dev_ptr ) +const t_hipMemPoolExportPointer = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolExportToShareableHandle ) ( void * shared_handle , hipMemPool_t mem_pool , hipMemAllocationHandleType handle_type , unsigned int flags ) +const t_hipMemPoolExportToShareableHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolGetAccess ) ( hipMemAccessFlags * flags , hipMemPool_t mem_pool , hipMemLocation * location ) +const t_hipMemPoolGetAccess = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolGetAttribute ) ( hipMemPool_t mem_pool , hipMemPoolAttr attr , void * value ) +const t_hipMemPoolGetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolImportFromShareableHandle ) ( hipMemPool_t * mem_pool , void * shared_handle , hipMemAllocationHandleType handle_type , unsigned int flags ) +const t_hipMemPoolImportFromShareableHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolImportPointer ) ( void * * dev_ptr , hipMemPool_t mem_pool , hipMemPoolPtrExportData * export_data ) +const t_hipMemPoolImportPointer = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolSetAccess ) ( hipMemPool_t mem_pool , const hipMemAccessDesc * desc_list , size_t count ) +const t_hipMemPoolSetAccess = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolSetAttribute ) ( hipMemPool_t mem_pool , hipMemPoolAttr attr , void * value ) +const t_hipMemPoolSetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPoolTrimTo ) ( hipMemPool_t mem_pool , size_t min_bytes_to_hold ) +const t_hipMemPoolTrimTo = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPrefetchAsync ) ( const void * dev_ptr , size_t count , int device , hipStream_t stream ) +const t_hipMemPrefetchAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemPtrGetInfo ) ( void * ptr , size_t * size ) +const t_hipMemPtrGetInfo = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemRangeGetAttribute ) ( void * data , size_t data_size , hipMemRangeAttribute attribute , const void * dev_ptr , size_t count ) +const t_hipMemRangeGetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemRangeGetAttributes ) ( void * * data , size_t * data_sizes , hipMemRangeAttribute * attributes , size_t num_attributes , const void * dev_ptr , size_t count ) +const t_hipMemRangeGetAttributes = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemRelease ) ( hipMemGenericAllocationHandle_t handle ) +const t_hipMemRelease = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemRetainAllocationHandle ) ( hipMemGenericAllocationHandle_t * handle , void * addr ) +const t_hipMemRetainAllocationHandle = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemSetAccess ) ( void * ptr , size_t size , const hipMemAccessDesc * desc , size_t count ) +const t_hipMemSetAccess = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemUnmap ) ( void * ptr , size_t size ) +const t_hipMemUnmap = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy ) ( void * dst , const void * src , size_t sizeBytes , hipMemcpyKind kind ) +const t_hipMemcpy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2D ) ( void * dst , size_t dpitch , const void * src , size_t spitch , size_t width , size_t height , hipMemcpyKind kind ) +const t_hipMemcpy2D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DAsync ) ( void * dst , size_t dpitch , const void * src , size_t spitch , size_t width , size_t height , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpy2DAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DFromArray ) ( void * dst , size_t dpitch , hipArray_const_t src , size_t wOffset , size_t hOffset , size_t width , size_t height , hipMemcpyKind kind ) +const t_hipMemcpy2DFromArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DFromArrayAsync ) ( void * dst , size_t dpitch , hipArray_const_t src , size_t wOffset , size_t hOffset , size_t width , size_t height , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpy2DFromArrayAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DToArray ) ( hipArray_t dst , size_t wOffset , size_t hOffset , const void * src , size_t spitch , size_t width , size_t height , hipMemcpyKind kind ) +const t_hipMemcpy2DToArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DToArrayAsync ) ( hipArray_t dst , size_t wOffset , size_t hOffset , const void * src , size_t spitch , size_t width , size_t height , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpy2DToArrayAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy3D ) ( const struct hipMemcpy3DParms * p ) +const t_hipMemcpy3D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy3DAsync ) ( const struct hipMemcpy3DParms * p , hipStream_t stream ) +const t_hipMemcpy3DAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyAsync ) ( void * dst , const void * src , size_t sizeBytes , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpyAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyAtoH ) ( void * dst , hipArray_t srcArray , size_t srcOffset , size_t count ) +const t_hipMemcpyAtoH = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyDtoD ) ( hipDeviceptr_t dst , hipDeviceptr_t src , size_t sizeBytes ) +const t_hipMemcpyDtoD = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyDtoDAsync ) ( hipDeviceptr_t dst , hipDeviceptr_t src , size_t sizeBytes , hipStream_t stream ) +const t_hipMemcpyDtoDAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyDtoH ) ( void * dst , hipDeviceptr_t src , size_t sizeBytes ) +const t_hipMemcpyDtoH = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyDtoHAsync ) ( void * dst , hipDeviceptr_t src , size_t sizeBytes , hipStream_t stream ) +const t_hipMemcpyDtoHAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyFromArray ) ( void * dst , hipArray_const_t srcArray , size_t wOffset , size_t hOffset , size_t count , hipMemcpyKind kind ) +const t_hipMemcpyFromArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyFromSymbol ) ( void * dst , const void * symbol , size_t sizeBytes , size_t offset , hipMemcpyKind kind ) +const t_hipMemcpyFromSymbol = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyFromSymbolAsync ) ( void * dst , const void * symbol , size_t sizeBytes , size_t offset , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpyFromSymbolAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyHtoA ) ( hipArray_t dstArray , size_t dstOffset , const void * srcHost , size_t count ) +const t_hipMemcpyHtoA = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyHtoD ) ( hipDeviceptr_t dst , void * src , size_t sizeBytes ) +const t_hipMemcpyHtoD = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyHtoDAsync ) ( hipDeviceptr_t dst , void * src , size_t sizeBytes , hipStream_t stream ) +const t_hipMemcpyHtoDAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyParam2D ) ( const hip_Memcpy2D * pCopy ) +const t_hipMemcpyParam2D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyParam2DAsync ) ( const hip_Memcpy2D * pCopy , hipStream_t stream ) +const t_hipMemcpyParam2DAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyPeer ) ( void * dst , int dstDeviceId , const void * src , int srcDeviceId , size_t sizeBytes ) +const t_hipMemcpyPeer = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyPeerAsync ) ( void * dst , int dstDeviceId , const void * src , int srcDevice , size_t sizeBytes , hipStream_t stream ) +const t_hipMemcpyPeerAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyToArray ) ( hipArray_t dst , size_t wOffset , size_t hOffset , const void * src , size_t count , hipMemcpyKind kind ) +const t_hipMemcpyToArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyToSymbol ) ( const void * symbol , const void * src , size_t sizeBytes , size_t offset , hipMemcpyKind kind ) +const t_hipMemcpyToSymbol = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyToSymbolAsync ) ( const void * symbol , const void * src , size_t sizeBytes , size_t offset , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpyToSymbolAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyWithStream ) ( void * dst , const void * src , size_t sizeBytes , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpyWithStream = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset ) ( void * dst , int value , size_t sizeBytes ) +const t_hipMemset = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset2D ) ( void * dst , size_t pitch , int value , size_t width , size_t height ) +const t_hipMemset2D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset2DAsync ) ( void * dst , size_t pitch , int value , size_t width , size_t height , hipStream_t stream ) +const t_hipMemset2DAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset3D ) ( hipPitchedPtr pitchedDevPtr , int value , hipExtent extent ) +const t_hipMemset3D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset3DAsync ) ( hipPitchedPtr pitchedDevPtr , int value , hipExtent extent , hipStream_t stream ) +const t_hipMemset3DAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemsetAsync ) ( void * dst , int value , size_t sizeBytes , hipStream_t stream ) +const t_hipMemsetAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemsetD16 ) ( hipDeviceptr_t dest , unsigned short value , size_t count ) +const t_hipMemsetD16 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemsetD16Async ) ( hipDeviceptr_t dest , unsigned short value , size_t count , hipStream_t stream ) +const t_hipMemsetD16Async = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemsetD32 ) ( hipDeviceptr_t dest , int value , size_t count ) +const t_hipMemsetD32 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemsetD32Async ) ( hipDeviceptr_t dst , int value , size_t count , hipStream_t stream ) +const t_hipMemsetD32Async = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemsetD8 ) ( hipDeviceptr_t dest , unsigned char value , size_t count ) +const t_hipMemsetD8 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemsetD8Async ) ( hipDeviceptr_t dest , unsigned char value , size_t count , hipStream_t stream ) +const t_hipMemsetD8Async = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMipmappedArrayCreate ) ( hipMipmappedArray_t * pHandle , HIP_ARRAY3D_DESCRIPTOR * pMipmappedArrayDesc , unsigned int numMipmapLevels ) +const t_hipMipmappedArrayCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMipmappedArrayDestroy ) ( hipMipmappedArray_t hMipmappedArray ) +const t_hipMipmappedArrayDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMipmappedArrayGetLevel ) ( hipArray_t * pLevelArray , hipMipmappedArray_t hMipMappedArray , unsigned int level ) +const t_hipMipmappedArrayGetLevel = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleGetFunction ) ( hipFunction_t * function , hipModule_t module , const char * kname ) +const t_hipModuleGetFunction = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleGetGlobal ) ( hipDeviceptr_t * dptr , size_t * bytes , hipModule_t hmod , const char * name ) +const t_hipModuleGetGlobal = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleGetTexRef ) ( textureReference * * texRef , hipModule_t hmod , const char * name ) +const t_hipModuleGetTexRef = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleLaunchCooperativeKernel ) ( hipFunction_t f , unsigned int gridDimX , unsigned int gridDimY , unsigned int gridDimZ , unsigned int blockDimX , unsigned int blockDimY , unsigned int blockDimZ , unsigned int sharedMemBytes , hipStream_t stream , void * * kernelParams ) +const t_hipModuleLaunchCooperativeKernel = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleLaunchCooperativeKernelMultiDevice ) ( hipFunctionLaunchParams * launchParamsList , unsigned int numDevices , unsigned int flags ) +const t_hipModuleLaunchCooperativeKernelMultiDevice = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleLaunchKernel ) ( hipFunction_t f , unsigned int gridDimX , unsigned int gridDimY , unsigned int gridDimZ , unsigned int blockDimX , unsigned int blockDimY , unsigned int blockDimZ , unsigned int sharedMemBytes , hipStream_t stream , void * * kernelParams , void * * extra ) +const t_hipModuleLaunchKernel = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleLoad ) ( hipModule_t * module , const char * fname ) +const t_hipModuleLoad = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleLoadData ) ( hipModule_t * module , const void * image ) +const t_hipModuleLoadData = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleLoadDataEx ) ( hipModule_t * module , const void * image , unsigned int numOptions , hipJitOption * options , void * * optionValues ) +const t_hipModuleLoadDataEx = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLinkAddData ) ( hipLinkState_t state , hipJitInputType type , void * data , size_t size , const char * name , unsigned int numOptions , hipJitOption * options , void * * optionValues ) +const t_hipLinkAddData = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLinkAddFile ) ( hipLinkState_t state , hipJitInputType type , const char * path , unsigned int numOptions , hipJitOption * options , void * * optionValues ) +const t_hipLinkAddFile = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLinkComplete ) ( hipLinkState_t state , void * * hipBinOut , size_t * sizeOut ) +const t_hipLinkComplete = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLinkCreate ) ( unsigned int numOptions , hipJitOption * options , void * * optionValues , hipLinkState_t * stateOut ) +const t_hipLinkCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLinkDestroy ) ( hipLinkState_t state ) +const t_hipLinkDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleOccupancyMaxActiveBlocksPerMultiprocessor ) ( int * numBlocks , hipFunction_t f , int blockSize , size_t dynSharedMemPerBlk ) +const t_hipModuleOccupancyMaxActiveBlocksPerMultiprocessor = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags ) ( int * numBlocks , hipFunction_t f , int blockSize , size_t dynSharedMemPerBlk , unsigned int flags ) +const t_hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleOccupancyMaxPotentialBlockSize ) ( int * gridSize , int * blockSize , hipFunction_t f , size_t dynSharedMemPerBlk , int blockSizeLimit ) +const t_hipModuleOccupancyMaxPotentialBlockSize = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleOccupancyMaxPotentialBlockSizeWithFlags ) ( int * gridSize , int * blockSize , hipFunction_t f , size_t dynSharedMemPerBlk , int blockSizeLimit , unsigned int flags ) +const t_hipModuleOccupancyMaxPotentialBlockSizeWithFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipModuleUnload ) ( hipModule_t module ) +const t_hipModuleUnload = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipOccupancyMaxActiveBlocksPerMultiprocessor ) ( int * numBlocks , const void * f , int blockSize , size_t dynSharedMemPerBlk ) +const t_hipOccupancyMaxActiveBlocksPerMultiprocessor = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags ) ( int * numBlocks , const void * f , int blockSize , size_t dynSharedMemPerBlk , unsigned int flags ) +const t_hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipOccupancyMaxPotentialBlockSize ) ( int * gridSize , int * blockSize , const void * f , size_t dynSharedMemPerBlk , int blockSizeLimit ) +const t_hipOccupancyMaxPotentialBlockSize = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipPeekAtLastError ) ( void ) +const t_hipPeekAtLastError = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipPointerGetAttribute ) ( void * data , hipPointer_attribute attribute , hipDeviceptr_t ptr ) +const t_hipPointerGetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipPointerGetAttributes ) ( hipPointerAttribute_t * attributes , const void * ptr ) +const t_hipPointerGetAttributes = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipPointerSetAttribute ) ( const void * value , hipPointer_attribute attribute , hipDeviceptr_t ptr ) +const t_hipPointerSetAttribute = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipProfilerStart ) ( ) +const t_hipProfilerStart = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipProfilerStop ) ( ) +const t_hipProfilerStop = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipRuntimeGetVersion ) ( int * runtimeVersion ) +const t_hipRuntimeGetVersion = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipSetDevice ) ( int deviceId ) +const t_hipSetDevice = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipSetDeviceFlags ) ( unsigned flags ) +const t_hipSetDeviceFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipSetupArgument ) ( const void * arg , size_t size , size_t offset ) +const t_hipSetupArgument = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipSignalExternalSemaphoresAsync ) ( const hipExternalSemaphore_t * extSemArray , const hipExternalSemaphoreSignalParams * paramsArray , unsigned int numExtSems , hipStream_t stream ) +const t_hipSignalExternalSemaphoresAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamAddCallback ) ( hipStream_t stream , hipStreamCallback_t callback , void * userData , unsigned int flags ) +const t_hipStreamAddCallback = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamAttachMemAsync ) ( hipStream_t stream , void * dev_ptr , size_t length , unsigned int flags ) +const t_hipStreamAttachMemAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamBeginCapture ) ( hipStream_t stream , hipStreamCaptureMode mode ) +const t_hipStreamBeginCapture = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamCreate ) ( hipStream_t * stream ) +const t_hipStreamCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamCreateWithFlags ) ( hipStream_t * stream , unsigned int flags ) +const t_hipStreamCreateWithFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamCreateWithPriority ) ( hipStream_t * stream , unsigned int flags , int priority ) +const t_hipStreamCreateWithPriority = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamDestroy ) ( hipStream_t stream ) +const t_hipStreamDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamEndCapture ) ( hipStream_t stream , hipGraph_t * pGraph ) +const t_hipStreamEndCapture = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamGetCaptureInfo ) ( hipStream_t stream , hipStreamCaptureStatus * pCaptureStatus , unsigned long long * pId ) +const t_hipStreamGetCaptureInfo = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamGetCaptureInfo_v2 ) ( hipStream_t stream , hipStreamCaptureStatus * captureStatus_out , unsigned long long * id_out , hipGraph_t * graph_out , const hipGraphNode_t * * dependencies_out , size_t * numDependencies_out ) +const t_hipStreamGetCaptureInfo_v2 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamGetDevice ) ( hipStream_t stream , hipDevice_t * device ) +const t_hipStreamGetDevice = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamGetFlags ) ( hipStream_t stream , unsigned int * flags ) +const t_hipStreamGetFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamGetPriority ) ( hipStream_t stream , int * priority ) +const t_hipStreamGetPriority = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamIsCapturing ) ( hipStream_t stream , hipStreamCaptureStatus * pCaptureStatus ) +const t_hipStreamIsCapturing = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamQuery ) ( hipStream_t stream ) +const t_hipStreamQuery = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamSynchronize ) ( hipStream_t stream ) +const t_hipStreamSynchronize = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamUpdateCaptureDependencies ) ( hipStream_t stream , hipGraphNode_t * dependencies , size_t numDependencies , unsigned int flags ) +const t_hipStreamUpdateCaptureDependencies = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamWaitEvent ) ( hipStream_t stream , hipEvent_t event , unsigned int flags ) +const t_hipStreamWaitEvent = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamWaitValue32 ) ( hipStream_t stream , void * ptr , uint32_t value , unsigned int flags , uint32_t mask ) +const t_hipStreamWaitValue32 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamWaitValue64 ) ( hipStream_t stream , void * ptr , uint64_t value , unsigned int flags , uint64_t mask ) +const t_hipStreamWaitValue64 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamWriteValue32 ) ( hipStream_t stream , void * ptr , uint32_t value , unsigned int flags ) +const t_hipStreamWriteValue32 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamWriteValue64 ) ( hipStream_t stream , void * ptr , uint64_t value , unsigned int flags ) +const t_hipStreamWriteValue64 = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamBatchMemOp ) ( hipStream_t stream , unsigned int count , hipStreamBatchMemOpParams * paramArray , unsigned int flags ) +const t_hipStreamBatchMemOp = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexObjectCreate ) ( hipTextureObject_t * pTexObject , const HIP_RESOURCE_DESC * pResDesc , const HIP_TEXTURE_DESC * pTexDesc , const HIP_RESOURCE_VIEW_DESC * pResViewDesc ) +const t_hipTexObjectCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexObjectDestroy ) ( hipTextureObject_t texObject ) +const t_hipTexObjectDestroy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexObjectGetResourceDesc ) ( HIP_RESOURCE_DESC * pResDesc , hipTextureObject_t texObject ) +const t_hipTexObjectGetResourceDesc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexObjectGetResourceViewDesc ) ( HIP_RESOURCE_VIEW_DESC * pResViewDesc , hipTextureObject_t texObject ) +const t_hipTexObjectGetResourceViewDesc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexObjectGetTextureDesc ) ( HIP_TEXTURE_DESC * pTexDesc , hipTextureObject_t texObject ) +const t_hipTexObjectGetTextureDesc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetAddress ) ( hipDeviceptr_t * dev_ptr , const textureReference * texRef ) +const t_hipTexRefGetAddress = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetAddressMode ) ( enum hipTextureAddressMode * pam , const textureReference * texRef , int dim ) +const t_hipTexRefGetAddressMode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetFilterMode ) ( enum hipTextureFilterMode * pfm , const textureReference * texRef ) +const t_hipTexRefGetFilterMode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetFlags ) ( unsigned int * pFlags , const textureReference * texRef ) +const t_hipTexRefGetFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetFormat ) ( hipArray_Format * pFormat , int * pNumChannels , const textureReference * texRef ) +const t_hipTexRefGetFormat = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetMaxAnisotropy ) ( int * pmaxAnsio , const textureReference * texRef ) +const t_hipTexRefGetMaxAnisotropy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetMipMappedArray ) ( hipMipmappedArray_t * pArray , const textureReference * texRef ) +const t_hipTexRefGetMipMappedArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetMipmapFilterMode ) ( enum hipTextureFilterMode * pfm , const textureReference * texRef ) +const t_hipTexRefGetMipmapFilterMode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetMipmapLevelBias ) ( float * pbias , const textureReference * texRef ) +const t_hipTexRefGetMipmapLevelBias = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetMipmapLevelClamp ) ( float * pminMipmapLevelClamp , float * pmaxMipmapLevelClamp , const textureReference * texRef ) +const t_hipTexRefGetMipmapLevelClamp = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetAddress ) ( size_t * ByteOffset , textureReference * texRef , hipDeviceptr_t dptr , size_t bytes ) +const t_hipTexRefSetAddress = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetAddress2D ) ( textureReference * texRef , const HIP_ARRAY_DESCRIPTOR * desc , hipDeviceptr_t dptr , size_t Pitch ) +const t_hipTexRefSetAddress2D = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetAddressMode ) ( textureReference * texRef , int dim , enum hipTextureAddressMode am ) +const t_hipTexRefSetAddressMode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetArray ) ( textureReference * tex , hipArray_const_t array , unsigned int flags ) +const t_hipTexRefSetArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetBorderColor ) ( textureReference * texRef , float * pBorderColor ) +const t_hipTexRefSetBorderColor = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetFilterMode ) ( textureReference * texRef , enum hipTextureFilterMode fm ) +const t_hipTexRefSetFilterMode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetFlags ) ( textureReference * texRef , unsigned int Flags ) +const t_hipTexRefSetFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetFormat ) ( textureReference * texRef , hipArray_Format fmt , int NumPackedComponents ) +const t_hipTexRefSetFormat = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetMaxAnisotropy ) ( textureReference * texRef , unsigned int maxAniso ) +const t_hipTexRefSetMaxAnisotropy = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetMipmapFilterMode ) ( textureReference * texRef , enum hipTextureFilterMode fm ) +const t_hipTexRefSetMipmapFilterMode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetMipmapLevelBias ) ( textureReference * texRef , float bias ) +const t_hipTexRefSetMipmapLevelBias = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetMipmapLevelClamp ) ( textureReference * texRef , float minMipMapLevelClamp , float maxMipMapLevelClamp ) +const t_hipTexRefSetMipmapLevelClamp = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefSetMipmappedArray ) ( textureReference * texRef , struct hipMipmappedArray * mipmappedArray , unsigned int Flags ) +const t_hipTexRefSetMipmappedArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipThreadExchangeStreamCaptureMode ) ( hipStreamCaptureMode * mode ) +const t_hipThreadExchangeStreamCaptureMode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipUnbindTexture ) ( const textureReference * tex ) +const t_hipUnbindTexture = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipUserObjectCreate ) ( hipUserObject_t * object_out , void * ptr , hipHostFn_t destroy , unsigned int initialRefcount , unsigned int flags ) +const t_hipUserObjectCreate = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipUserObjectRelease ) ( hipUserObject_t object , unsigned int count ) +const t_hipUserObjectRelease = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipUserObjectRetain ) ( hipUserObject_t object , unsigned int count ) +const t_hipUserObjectRetain = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipWaitExternalSemaphoresAsync ) ( const hipExternalSemaphore_t * extSemArray , const hipExternalSemaphoreWaitParams * paramsArray , unsigned int numExtSems , hipStream_t stream ) +const t_hipWaitExternalSemaphoresAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy_spt ) ( void * dst , const void * src , size_t sizeBytes , hipMemcpyKind kind ) +const t_hipMemcpy_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyToSymbol_spt ) ( const void * symbol , const void * src , size_t sizeBytes , size_t offset , hipMemcpyKind kind ) +const t_hipMemcpyToSymbol_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyFromSymbol_spt ) ( void * dst , const void * symbol , size_t sizeBytes , size_t offset , hipMemcpyKind kind ) +const t_hipMemcpyFromSymbol_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2D_spt ) ( void * dst , size_t dpitch , const void * src , size_t spitch , size_t width , size_t height , hipMemcpyKind kind ) +const t_hipMemcpy2D_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DFromArray_spt ) ( void * dst , size_t dpitch , hipArray_const_t src , size_t wOffset , size_t hOffset , size_t width , size_t height , hipMemcpyKind kind ) +const t_hipMemcpy2DFromArray_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy3D_spt ) ( const struct hipMemcpy3DParms * p ) +const t_hipMemcpy3D_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset_spt ) ( void * dst , int value , size_t sizeBytes ) +const t_hipMemset_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemsetAsync_spt ) ( void * dst , int value , size_t sizeBytes , hipStream_t stream ) +const t_hipMemsetAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset2D_spt ) ( void * dst , size_t pitch , int value , size_t width , size_t height ) +const t_hipMemset2D_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset2DAsync_spt ) ( void * dst , size_t pitch , int value , size_t width , size_t height , hipStream_t stream ) +const t_hipMemset2DAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset3DAsync_spt ) ( hipPitchedPtr pitchedDevPtr , int value , hipExtent extent , hipStream_t stream ) +const t_hipMemset3DAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemset3D_spt ) ( hipPitchedPtr pitchedDevPtr , int value , hipExtent extent ) +const t_hipMemset3D_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyAsync_spt ) ( void * dst , const void * src , size_t sizeBytes , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpyAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy3DAsync_spt ) ( const hipMemcpy3DParms * p , hipStream_t stream ) +const t_hipMemcpy3DAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DAsync_spt ) ( void * dst , size_t dpitch , const void * src , size_t spitch , size_t width , size_t height , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpy2DAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyFromSymbolAsync_spt ) ( void * dst , const void * symbol , size_t sizeBytes , size_t offset , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpyFromSymbolAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyToSymbolAsync_spt ) ( const void * symbol , const void * src , size_t sizeBytes , size_t offset , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpyToSymbolAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyFromArray_spt ) ( void * dst , hipArray_const_t src , size_t wOffsetSrc , size_t hOffset , size_t count , hipMemcpyKind kind ) +const t_hipMemcpyFromArray_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DToArray_spt ) ( hipArray_t dst , size_t wOffset , size_t hOffset , const void * src , size_t spitch , size_t width , size_t height , hipMemcpyKind kind ) +const t_hipMemcpy2DToArray_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DFromArrayAsync_spt ) ( void * dst , size_t dpitch , hipArray_const_t src , size_t wOffsetSrc , size_t hOffsetSrc , size_t width , size_t height , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpy2DFromArrayAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DToArrayAsync_spt ) ( hipArray_t dst , size_t wOffset , size_t hOffset , const void * src , size_t spitch , size_t width , size_t height , hipMemcpyKind kind , hipStream_t stream ) +const t_hipMemcpy2DToArrayAsync_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamQuery_spt ) ( hipStream_t stream ) +const t_hipStreamQuery_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamSynchronize_spt ) ( hipStream_t stream ) +const t_hipStreamSynchronize_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamGetPriority_spt ) ( hipStream_t stream , int * priority ) +const t_hipStreamGetPriority_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamWaitEvent_spt ) ( hipStream_t stream , hipEvent_t event , unsigned int flags ) +const t_hipStreamWaitEvent_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamGetFlags_spt ) ( hipStream_t stream , unsigned int * flags ) +const t_hipStreamGetFlags_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamAddCallback_spt ) ( hipStream_t stream , hipStreamCallback_t callback , void * userData , unsigned int flags ) +const t_hipStreamAddCallback_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipEventRecord_spt ) ( hipEvent_t event , hipStream_t stream ) +const t_hipEventRecord_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLaunchCooperativeKernel_spt ) ( const void * f , dim3 gridDim , dim3 blockDim , void * * kernelParams , uint32_t sharedMemBytes , hipStream_t hStream ) +const t_hipLaunchCooperativeKernel_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLaunchKernel_spt ) ( const void * function_address , dim3 numBlocks , dim3 dimBlocks , void * * args , size_t sharedMemBytes , hipStream_t stream ) +const t_hipLaunchKernel_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphLaunch_spt ) ( hipGraphExec_t graphExec , hipStream_t stream ) +const t_hipGraphLaunch_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamBeginCapture_spt ) ( hipStream_t stream , hipStreamCaptureMode mode ) +const t_hipStreamBeginCapture_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamEndCapture_spt ) ( hipStream_t stream , hipGraph_t * pGraph ) +const t_hipStreamEndCapture_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamIsCapturing_spt ) ( hipStream_t stream , hipStreamCaptureStatus * pCaptureStatus ) +const t_hipStreamIsCapturing_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamGetCaptureInfo_spt ) ( hipStream_t stream , hipStreamCaptureStatus * pCaptureStatus , unsigned long long * pId ) +const t_hipStreamGetCaptureInfo_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamGetCaptureInfo_v2_spt ) ( hipStream_t stream , hipStreamCaptureStatus * captureStatus_out , unsigned long long * id_out , hipGraph_t * graph_out , const hipGraphNode_t * * dependencies_out , size_t * numDependencies_out ) +const t_hipStreamGetCaptureInfo_v2_spt = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLaunchHostFunc_spt ) ( hipStream_t stream , hipHostFn_t fn , void * userData ) +const t_hipLaunchHostFunc_spt = Ptr{Cvoid} + +# typedef hipChannelFormatDesc ( * t_hipCreateChannelDesc ) ( int x , int y , int z , int w , hipChannelFormatKind f ) +const t_hipCreateChannelDesc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExtModuleLaunchKernel ) ( hipFunction_t f , uint32_t globalWorkSizeX , uint32_t globalWorkSizeY , uint32_t globalWorkSizeZ , uint32_t localWorkSizeX , uint32_t localWorkSizeY , uint32_t localWorkSizeZ , size_t sharedMemBytes , hipStream_t hStream , void * * kernelParams , void * * extra , hipEvent_t startEvent , hipEvent_t stopEvent , uint32_t flags ) +const t_hipExtModuleLaunchKernel = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipHccModuleLaunchKernel ) ( hipFunction_t f , uint32_t globalWorkSizeX , uint32_t globalWorkSizeY , uint32_t globalWorkSizeZ , uint32_t localWorkSizeX , uint32_t localWorkSizeY , uint32_t localWorkSizeZ , size_t sharedMemBytes , hipStream_t hStream , void * * kernelParams , void * * extra , hipEvent_t startEvent , hipEvent_t stopEvent ) +const t_hipHccModuleLaunchKernel = Ptr{Cvoid} + +# typedef int ( * t_hipGetStreamDeviceId ) ( hipStream_t stream ) +const t_hipGetStreamDeviceId = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvGraphAddMemsetNode ) ( hipGraphNode_t * phGraphNode , hipGraph_t hGraph , const hipGraphNode_t * dependencies , size_t numDependencies , const HIP_MEMSET_NODE_PARAMS * memsetParams , hipCtx_t ctx ) +const t_hipDrvGraphAddMemsetNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddExternalSemaphoresWaitNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , const hipExternalSemaphoreWaitNodeParams * nodeParams ) +const t_hipGraphAddExternalSemaphoresWaitNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddExternalSemaphoresSignalNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , const hipExternalSemaphoreSignalNodeParams * nodeParams ) +const t_hipGraphAddExternalSemaphoresSignalNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExternalSemaphoresSignalNodeSetParams ) ( hipGraphNode_t hNode , const hipExternalSemaphoreSignalNodeParams * nodeParams ) +const t_hipGraphExternalSemaphoresSignalNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExternalSemaphoresWaitNodeSetParams ) ( hipGraphNode_t hNode , const hipExternalSemaphoreWaitNodeParams * nodeParams ) +const t_hipGraphExternalSemaphoresWaitNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExternalSemaphoresSignalNodeGetParams ) ( hipGraphNode_t hNode , hipExternalSemaphoreSignalNodeParams * params_out ) +const t_hipGraphExternalSemaphoresSignalNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExternalSemaphoresWaitNodeGetParams ) ( hipGraphNode_t hNode , hipExternalSemaphoreWaitNodeParams * params_out ) +const t_hipGraphExternalSemaphoresWaitNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecExternalSemaphoresSignalNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t hNode , const hipExternalSemaphoreSignalNodeParams * nodeParams ) +const t_hipGraphExecExternalSemaphoresSignalNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecExternalSemaphoresWaitNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t hNode , const hipExternalSemaphoreWaitNodeParams * nodeParams ) +const t_hipGraphExecExternalSemaphoresWaitNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddNode ) ( hipGraphNode_t * pGraphNode , hipGraph_t graph , const hipGraphNode_t * pDependencies , size_t numDependencies , hipGraphNodeParams * nodeParams ) +const t_hipGraphAddNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphInstantiateWithParams ) ( hipGraphExec_t * pGraphExec , hipGraph_t graph , hipGraphInstantiateParams * instantiateParams ) +const t_hipGraphInstantiateWithParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExtGetLastError ) ( ) +const t_hipExtGetLastError = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetBorderColor ) ( float * pBorderColor , const textureReference * texRef ) +const t_hipTexRefGetBorderColor = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipTexRefGetArray ) ( hipArray_t * pArray , const textureReference * texRef ) +const t_hipTexRefGetArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetProcAddress ) ( const char * symbol , void * * pfn , int hipVersion , uint64_t flags , hipDriverProcAddressQueryResult * symbolStatus ) +const t_hipGetProcAddress = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipStreamBeginCaptureToGraph ) ( hipStream_t stream , hipGraph_t graph , const hipGraphNode_t * dependencies , const hipGraphEdgeData * dependencyData , size_t numDependencies , hipStreamCaptureMode mode ) +const t_hipStreamBeginCaptureToGraph = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGetFuncBySymbol ) ( hipFunction_t * functionPtr , const void * symbolPtr ) +const t_hipGetFuncBySymbol = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvGraphAddMemFreeNode ) ( hipGraphNode_t * phGraphNode , hipGraph_t hGraph , const hipGraphNode_t * dependencies , size_t numDependencies , hipDeviceptr_t dptr ) +const t_hipDrvGraphAddMemFreeNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvGraphExecMemcpyNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t hNode , const HIP_MEMCPY3D * copyParams , hipCtx_t ctx ) +const t_hipDrvGraphExecMemcpyNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvGraphExecMemsetNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t hNode , const HIP_MEMSET_NODE_PARAMS * memsetParams , hipCtx_t ctx ) +const t_hipDrvGraphExecMemsetNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipSetValidDevices ) ( int * device_arr , int len ) +const t_hipSetValidDevices = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyAtoD ) ( hipDeviceptr_t dstDevice , hipArray_t srcArray , size_t srcOffset , size_t ByteCount ) +const t_hipMemcpyAtoD = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyDtoA ) ( hipArray_t dstArray , size_t dstOffset , hipDeviceptr_t srcDevice , size_t ByteCount ) +const t_hipMemcpyDtoA = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyAtoA ) ( hipArray_t dstArray , size_t dstOffset , hipArray_t srcArray , size_t srcOffset , size_t ByteCount ) +const t_hipMemcpyAtoA = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyAtoHAsync ) ( void * dstHost , hipArray_t srcArray , size_t srcOffset , size_t ByteCount , hipStream_t stream ) +const t_hipMemcpyAtoHAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpyHtoAAsync ) ( hipArray_t dstArray , size_t dstOffset , const void * srcHost , size_t ByteCount , hipStream_t stream ) +const t_hipMemcpyHtoAAsync = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipMemcpy2DArrayToArray ) ( hipArray_t dst , size_t wOffsetDst , size_t hOffsetDst , hipArray_const_t src , size_t wOffsetSrc , size_t hOffsetSrc , size_t width , size_t height , hipMemcpyKind kind ) +const t_hipMemcpy2DArrayToArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecGetFlags ) ( hipGraphExec_t graphExec , unsigned long long * flags ) +const t_hipGraphExecGetFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphNodeSetParams ) ( hipGraphNode_t node , hipGraphNodeParams * nodeParams ) +const t_hipGraphNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecNodeSetParams ) ( hipGraphExec_t graphExec , hipGraphNode_t node , hipGraphNodeParams * nodeParams ) +const t_hipGraphExecNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExternalMemoryGetMappedMipmappedArray ) ( hipMipmappedArray_t * mipmap , hipExternalMemory_t extMem , const hipExternalMemoryMipmappedArrayDesc * mipmapDesc ) +const t_hipExternalMemoryGetMappedMipmappedArray = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvGraphMemcpyNodeGetParams ) ( hipGraphNode_t hNode , HIP_MEMCPY3D * nodeParams ) +const t_hipDrvGraphMemcpyNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvGraphMemcpyNodeSetParams ) ( hipGraphNode_t hNode , const HIP_MEMCPY3D * nodeParams ) +const t_hipDrvGraphMemcpyNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipExtHostAlloc ) ( void * * ptr , size_t size , unsigned int flags ) +const t_hipExtHostAlloc = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDeviceGetTexture1DLinearMaxWidth ) ( size_t * maxWidthInElements , const hipChannelFormatDesc * fmtDesc , int device ) +const t_hipDeviceGetTexture1DLinearMaxWidth = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphAddBatchMemOpNode ) ( hipGraphNode_t * phGraphNode , hipGraph_t hGraph , const hipGraphNode_t * dependencies , size_t numDependencies , const hipBatchMemOpNodeParams * nodeParams ) +const t_hipGraphAddBatchMemOpNode = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphBatchMemOpNodeGetParams ) ( hipGraphNode_t hNode , hipBatchMemOpNodeParams * nodeParams_out ) +const t_hipGraphBatchMemOpNodeGetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphBatchMemOpNodeSetParams ) ( hipGraphNode_t hNode , hipBatchMemOpNodeParams * nodeParams ) +const t_hipGraphBatchMemOpNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipGraphExecBatchMemOpNodeSetParams ) ( hipGraphExec_t hGraphExec , hipGraphNode_t hNode , const hipBatchMemOpNodeParams * nodeParams ) +const t_hipGraphExecBatchMemOpNodeSetParams = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipEventRecordWithFlags ) ( hipEvent_t event , hipStream_t stream , unsigned int flags ) +const t_hipEventRecordWithFlags = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipLaunchKernelExC ) ( const hipLaunchConfig_t * config , const void * fPtr , void * * args ) +const t_hipLaunchKernelExC = Ptr{Cvoid} + +# typedef hipError_t ( * t_hipDrvLaunchKernelEx ) ( const HIP_LAUNCH_CONFIG * config , hipFunction_t f , void * * params , void * * extra ) +const t_hipDrvLaunchKernelEx = Ptr{Cvoid} + +struct HipCompilerDispatchTable + size::Csize_t + __hipPopCallConfiguration_fn::t___hipPopCallConfiguration + __hipPushCallConfiguration_fn::t___hipPushCallConfiguration + __hipRegisterFatBinary_fn::t___hipRegisterFatBinary + __hipRegisterFunction_fn::t___hipRegisterFunction + __hipRegisterManagedVar_fn::t___hipRegisterManagedVar + __hipRegisterSurface_fn::t___hipRegisterSurface + __hipRegisterTexture_fn::t___hipRegisterTexture + __hipRegisterVar_fn::t___hipRegisterVar + __hipUnregisterFatBinary_fn::t___hipUnregisterFatBinary +end + +struct HipDispatchTable + size::Csize_t + hipApiName_fn::t_hipApiName + hipArray3DCreate_fn::t_hipArray3DCreate + hipArray3DGetDescriptor_fn::t_hipArray3DGetDescriptor + hipArrayCreate_fn::t_hipArrayCreate + hipArrayDestroy_fn::t_hipArrayDestroy + hipArrayGetDescriptor_fn::t_hipArrayGetDescriptor + hipArrayGetInfo_fn::t_hipArrayGetInfo + hipBindTexture_fn::t_hipBindTexture + hipBindTexture2D_fn::t_hipBindTexture2D + hipBindTextureToArray_fn::t_hipBindTextureToArray + hipBindTextureToMipmappedArray_fn::t_hipBindTextureToMipmappedArray + hipChooseDevice_fn::t_hipChooseDevice + hipChooseDeviceR0000_fn::t_hipChooseDeviceR0000 + hipConfigureCall_fn::t_hipConfigureCall + hipCreateSurfaceObject_fn::t_hipCreateSurfaceObject + hipCreateTextureObject_fn::t_hipCreateTextureObject + hipCtxCreate_fn::t_hipCtxCreate + hipCtxDestroy_fn::t_hipCtxDestroy + hipCtxDisablePeerAccess_fn::t_hipCtxDisablePeerAccess + hipCtxEnablePeerAccess_fn::t_hipCtxEnablePeerAccess + hipCtxGetApiVersion_fn::t_hipCtxGetApiVersion + hipCtxGetCacheConfig_fn::t_hipCtxGetCacheConfig + hipCtxGetCurrent_fn::t_hipCtxGetCurrent + hipCtxGetDevice_fn::t_hipCtxGetDevice + hipCtxGetFlags_fn::t_hipCtxGetFlags + hipCtxGetSharedMemConfig_fn::t_hipCtxGetSharedMemConfig + hipCtxPopCurrent_fn::t_hipCtxPopCurrent + hipCtxPushCurrent_fn::t_hipCtxPushCurrent + hipCtxSetCacheConfig_fn::t_hipCtxSetCacheConfig + hipCtxSetCurrent_fn::t_hipCtxSetCurrent + hipCtxSetSharedMemConfig_fn::t_hipCtxSetSharedMemConfig + hipCtxSynchronize_fn::t_hipCtxSynchronize + hipDestroyExternalMemory_fn::t_hipDestroyExternalMemory + hipDestroyExternalSemaphore_fn::t_hipDestroyExternalSemaphore + hipDestroySurfaceObject_fn::t_hipDestroySurfaceObject + hipDestroyTextureObject_fn::t_hipDestroyTextureObject + hipDeviceCanAccessPeer_fn::t_hipDeviceCanAccessPeer + hipDeviceComputeCapability_fn::t_hipDeviceComputeCapability + hipDeviceDisablePeerAccess_fn::t_hipDeviceDisablePeerAccess + hipDeviceEnablePeerAccess_fn::t_hipDeviceEnablePeerAccess + hipDeviceGet_fn::t_hipDeviceGet + hipDeviceGetAttribute_fn::t_hipDeviceGetAttribute + hipDeviceGetByPCIBusId_fn::t_hipDeviceGetByPCIBusId + hipDeviceGetCacheConfig_fn::t_hipDeviceGetCacheConfig + hipDeviceGetDefaultMemPool_fn::t_hipDeviceGetDefaultMemPool + hipDeviceGetGraphMemAttribute_fn::t_hipDeviceGetGraphMemAttribute + hipDeviceGetLimit_fn::t_hipDeviceGetLimit + hipDeviceGetMemPool_fn::t_hipDeviceGetMemPool + hipDeviceGetName_fn::t_hipDeviceGetName + hipDeviceGetP2PAttribute_fn::t_hipDeviceGetP2PAttribute + hipDeviceGetPCIBusId_fn::t_hipDeviceGetPCIBusId + hipDeviceGetSharedMemConfig_fn::t_hipDeviceGetSharedMemConfig + hipDeviceGetStreamPriorityRange_fn::t_hipDeviceGetStreamPriorityRange + hipDeviceGetUuid_fn::t_hipDeviceGetUuid + hipDeviceGraphMemTrim_fn::t_hipDeviceGraphMemTrim + hipDevicePrimaryCtxGetState_fn::t_hipDevicePrimaryCtxGetState + hipDevicePrimaryCtxRelease_fn::t_hipDevicePrimaryCtxRelease + hipDevicePrimaryCtxReset_fn::t_hipDevicePrimaryCtxReset + hipDevicePrimaryCtxRetain_fn::t_hipDevicePrimaryCtxRetain + hipDevicePrimaryCtxSetFlags_fn::t_hipDevicePrimaryCtxSetFlags + hipDeviceReset_fn::t_hipDeviceReset + hipDeviceSetCacheConfig_fn::t_hipDeviceSetCacheConfig + hipDeviceSetGraphMemAttribute_fn::t_hipDeviceSetGraphMemAttribute + hipDeviceSetLimit_fn::t_hipDeviceSetLimit + hipDeviceSetMemPool_fn::t_hipDeviceSetMemPool + hipDeviceSetSharedMemConfig_fn::t_hipDeviceSetSharedMemConfig + hipDeviceSynchronize_fn::t_hipDeviceSynchronize + hipDeviceTotalMem_fn::t_hipDeviceTotalMem + hipDriverGetVersion_fn::t_hipDriverGetVersion + hipDrvGetErrorName_fn::t_hipDrvGetErrorName + hipDrvGetErrorString_fn::t_hipDrvGetErrorString + hipDrvGraphAddMemcpyNode_fn::t_hipDrvGraphAddMemcpyNode + hipDrvMemcpy2DUnaligned_fn::t_hipDrvMemcpy2DUnaligned + hipDrvMemcpy3D_fn::t_hipDrvMemcpy3D + hipDrvMemcpy3DAsync_fn::t_hipDrvMemcpy3DAsync + hipDrvPointerGetAttributes_fn::t_hipDrvPointerGetAttributes + hipEventCreate_fn::t_hipEventCreate + hipEventCreateWithFlags_fn::t_hipEventCreateWithFlags + hipEventDestroy_fn::t_hipEventDestroy + hipEventElapsedTime_fn::t_hipEventElapsedTime + hipEventQuery_fn::t_hipEventQuery + hipEventRecord_fn::t_hipEventRecord + hipEventSynchronize_fn::t_hipEventSynchronize + hipExtGetLinkTypeAndHopCount_fn::t_hipExtGetLinkTypeAndHopCount + hipExtLaunchKernel_fn::t_hipExtLaunchKernel + hipExtLaunchMultiKernelMultiDevice_fn::t_hipExtLaunchMultiKernelMultiDevice + hipExtMallocWithFlags_fn::t_hipExtMallocWithFlags + hipExtStreamCreateWithCUMask_fn::t_hipExtStreamCreateWithCUMask + hipExtStreamGetCUMask_fn::t_hipExtStreamGetCUMask + hipExternalMemoryGetMappedBuffer_fn::t_hipExternalMemoryGetMappedBuffer + hipFree_fn::t_hipFree + hipFreeArray_fn::t_hipFreeArray + hipFreeAsync_fn::t_hipFreeAsync + hipFreeHost_fn::t_hipFreeHost + hipFreeMipmappedArray_fn::t_hipFreeMipmappedArray + hipFuncGetAttribute_fn::t_hipFuncGetAttribute + hipFuncGetAttributes_fn::t_hipFuncGetAttributes + hipFuncSetAttribute_fn::t_hipFuncSetAttribute + hipFuncSetCacheConfig_fn::t_hipFuncSetCacheConfig + hipFuncSetSharedMemConfig_fn::t_hipFuncSetSharedMemConfig + hipGLGetDevices_fn::t_hipGLGetDevices + hipGetChannelDesc_fn::t_hipGetChannelDesc + hipGetDevice_fn::t_hipGetDevice + hipGetDeviceCount_fn::t_hipGetDeviceCount + hipGetDeviceFlags_fn::t_hipGetDeviceFlags + hipGetDevicePropertiesR0600_fn::t_hipGetDevicePropertiesR0600 + hipGetDevicePropertiesR0000_fn::t_hipGetDevicePropertiesR0000 + hipGetErrorName_fn::t_hipGetErrorName + hipGetErrorString_fn::t_hipGetErrorString + hipGetLastError_fn::t_hipGetLastError + hipGetMipmappedArrayLevel_fn::t_hipGetMipmappedArrayLevel + hipGetSymbolAddress_fn::t_hipGetSymbolAddress + hipGetSymbolSize_fn::t_hipGetSymbolSize + hipGetTextureAlignmentOffset_fn::t_hipGetTextureAlignmentOffset + hipGetTextureObjectResourceDesc_fn::t_hipGetTextureObjectResourceDesc + hipGetTextureObjectResourceViewDesc_fn::t_hipGetTextureObjectResourceViewDesc + hipGetTextureObjectTextureDesc_fn::t_hipGetTextureObjectTextureDesc + hipGetTextureReference_fn::t_hipGetTextureReference + hipGraphAddChildGraphNode_fn::t_hipGraphAddChildGraphNode + hipGraphAddDependencies_fn::t_hipGraphAddDependencies + hipGraphAddEmptyNode_fn::t_hipGraphAddEmptyNode + hipGraphAddEventRecordNode_fn::t_hipGraphAddEventRecordNode + hipGraphAddEventWaitNode_fn::t_hipGraphAddEventWaitNode + hipGraphAddHostNode_fn::t_hipGraphAddHostNode + hipGraphAddKernelNode_fn::t_hipGraphAddKernelNode + hipGraphAddMemAllocNode_fn::t_hipGraphAddMemAllocNode + hipGraphAddMemFreeNode_fn::t_hipGraphAddMemFreeNode + hipGraphAddMemcpyNode_fn::t_hipGraphAddMemcpyNode + hipGraphAddMemcpyNode1D_fn::t_hipGraphAddMemcpyNode1D + hipGraphAddMemcpyNodeFromSymbol_fn::t_hipGraphAddMemcpyNodeFromSymbol + hipGraphAddMemcpyNodeToSymbol_fn::t_hipGraphAddMemcpyNodeToSymbol + hipGraphAddMemsetNode_fn::t_hipGraphAddMemsetNode + hipGraphChildGraphNodeGetGraph_fn::t_hipGraphChildGraphNodeGetGraph + hipGraphClone_fn::t_hipGraphClone + hipGraphCreate_fn::t_hipGraphCreate + hipGraphDebugDotPrint_fn::t_hipGraphDebugDotPrint + hipGraphDestroy_fn::t_hipGraphDestroy + hipGraphDestroyNode_fn::t_hipGraphDestroyNode + hipGraphEventRecordNodeGetEvent_fn::t_hipGraphEventRecordNodeGetEvent + hipGraphEventRecordNodeSetEvent_fn::t_hipGraphEventRecordNodeSetEvent + hipGraphEventWaitNodeGetEvent_fn::t_hipGraphEventWaitNodeGetEvent + hipGraphEventWaitNodeSetEvent_fn::t_hipGraphEventWaitNodeSetEvent + hipGraphExecChildGraphNodeSetParams_fn::t_hipGraphExecChildGraphNodeSetParams + hipGraphExecDestroy_fn::t_hipGraphExecDestroy + hipGraphExecEventRecordNodeSetEvent_fn::t_hipGraphExecEventRecordNodeSetEvent + hipGraphExecEventWaitNodeSetEvent_fn::t_hipGraphExecEventWaitNodeSetEvent + hipGraphExecHostNodeSetParams_fn::t_hipGraphExecHostNodeSetParams + hipGraphExecKernelNodeSetParams_fn::t_hipGraphExecKernelNodeSetParams + hipGraphExecMemcpyNodeSetParams_fn::t_hipGraphExecMemcpyNodeSetParams + hipGraphExecMemcpyNodeSetParams1D_fn::t_hipGraphExecMemcpyNodeSetParams1D + hipGraphExecMemcpyNodeSetParamsFromSymbol_fn::t_hipGraphExecMemcpyNodeSetParamsFromSymbol + hipGraphExecMemcpyNodeSetParamsToSymbol_fn::t_hipGraphExecMemcpyNodeSetParamsToSymbol + hipGraphExecMemsetNodeSetParams_fn::t_hipGraphExecMemsetNodeSetParams + hipGraphExecUpdate_fn::t_hipGraphExecUpdate + hipGraphGetEdges_fn::t_hipGraphGetEdges + hipGraphGetNodes_fn::t_hipGraphGetNodes + hipGraphGetRootNodes_fn::t_hipGraphGetRootNodes + hipGraphHostNodeGetParams_fn::t_hipGraphHostNodeGetParams + hipGraphHostNodeSetParams_fn::t_hipGraphHostNodeSetParams + hipGraphInstantiate_fn::t_hipGraphInstantiate + hipGraphInstantiateWithFlags_fn::t_hipGraphInstantiateWithFlags + hipGraphKernelNodeCopyAttributes_fn::t_hipGraphKernelNodeCopyAttributes + hipGraphKernelNodeGetAttribute_fn::t_hipGraphKernelNodeGetAttribute + hipGraphKernelNodeGetParams_fn::t_hipGraphKernelNodeGetParams + hipGraphKernelNodeSetAttribute_fn::t_hipGraphKernelNodeSetAttribute + hipGraphKernelNodeSetParams_fn::t_hipGraphKernelNodeSetParams + hipGraphLaunch_fn::t_hipGraphLaunch + hipGraphMemAllocNodeGetParams_fn::t_hipGraphMemAllocNodeGetParams + hipGraphMemFreeNodeGetParams_fn::t_hipGraphMemFreeNodeGetParams + hipGraphMemcpyNodeGetParams_fn::t_hipGraphMemcpyNodeGetParams + hipGraphMemcpyNodeSetParams_fn::t_hipGraphMemcpyNodeSetParams + hipGraphMemcpyNodeSetParams1D_fn::t_hipGraphMemcpyNodeSetParams1D + hipGraphMemcpyNodeSetParamsFromSymbol_fn::t_hipGraphMemcpyNodeSetParamsFromSymbol + hipGraphMemcpyNodeSetParamsToSymbol_fn::t_hipGraphMemcpyNodeSetParamsToSymbol + hipGraphMemsetNodeGetParams_fn::t_hipGraphMemsetNodeGetParams + hipGraphMemsetNodeSetParams_fn::t_hipGraphMemsetNodeSetParams + hipGraphNodeFindInClone_fn::t_hipGraphNodeFindInClone + hipGraphNodeGetDependencies_fn::t_hipGraphNodeGetDependencies + hipGraphNodeGetDependentNodes_fn::t_hipGraphNodeGetDependentNodes + hipGraphNodeGetEnabled_fn::t_hipGraphNodeGetEnabled + hipGraphNodeGetType_fn::t_hipGraphNodeGetType + hipGraphNodeSetEnabled_fn::t_hipGraphNodeSetEnabled + hipGraphReleaseUserObject_fn::t_hipGraphReleaseUserObject + hipGraphRemoveDependencies_fn::t_hipGraphRemoveDependencies + hipGraphRetainUserObject_fn::t_hipGraphRetainUserObject + hipGraphUpload_fn::t_hipGraphUpload + hipGraphicsGLRegisterBuffer_fn::t_hipGraphicsGLRegisterBuffer + hipGraphicsGLRegisterImage_fn::t_hipGraphicsGLRegisterImage + hipGraphicsMapResources_fn::t_hipGraphicsMapResources + hipGraphicsResourceGetMappedPointer_fn::t_hipGraphicsResourceGetMappedPointer + hipGraphicsSubResourceGetMappedArray_fn::t_hipGraphicsSubResourceGetMappedArray + hipGraphicsUnmapResources_fn::t_hipGraphicsUnmapResources + hipGraphicsUnregisterResource_fn::t_hipGraphicsUnregisterResource + hipHostAlloc_fn::t_hipHostAlloc + hipHostFree_fn::t_hipHostFree + hipHostGetDevicePointer_fn::t_hipHostGetDevicePointer + hipHostGetFlags_fn::t_hipHostGetFlags + hipHostMalloc_fn::t_hipHostMalloc + hipHostRegister_fn::t_hipHostRegister + hipHostUnregister_fn::t_hipHostUnregister + hipImportExternalMemory_fn::t_hipImportExternalMemory + hipImportExternalSemaphore_fn::t_hipImportExternalSemaphore + hipInit_fn::t_hipInit + hipIpcCloseMemHandle_fn::t_hipIpcCloseMemHandle + hipIpcGetEventHandle_fn::t_hipIpcGetEventHandle + hipIpcGetMemHandle_fn::t_hipIpcGetMemHandle + hipIpcOpenEventHandle_fn::t_hipIpcOpenEventHandle + hipIpcOpenMemHandle_fn::t_hipIpcOpenMemHandle + hipKernelNameRef_fn::t_hipKernelNameRef + hipKernelNameRefByPtr_fn::t_hipKernelNameRefByPtr + hipLaunchByPtr_fn::t_hipLaunchByPtr + hipLaunchCooperativeKernel_fn::t_hipLaunchCooperativeKernel + hipLaunchCooperativeKernelMultiDevice_fn::t_hipLaunchCooperativeKernelMultiDevice + hipLaunchHostFunc_fn::t_hipLaunchHostFunc + hipLaunchKernel_fn::t_hipLaunchKernel + hipMalloc_fn::t_hipMalloc + hipMalloc3D_fn::t_hipMalloc3D + hipMalloc3DArray_fn::t_hipMalloc3DArray + hipMallocArray_fn::t_hipMallocArray + hipMallocAsync_fn::t_hipMallocAsync + hipMallocFromPoolAsync_fn::t_hipMallocFromPoolAsync + hipMallocHost_fn::t_hipMallocHost + hipMallocManaged_fn::t_hipMallocManaged + hipMallocMipmappedArray_fn::t_hipMallocMipmappedArray + hipMallocPitch_fn::t_hipMallocPitch + hipMemAddressFree_fn::t_hipMemAddressFree + hipMemAddressReserve_fn::t_hipMemAddressReserve + hipMemAdvise_fn::t_hipMemAdvise + hipMemAllocHost_fn::t_hipMemAllocHost + hipMemAllocPitch_fn::t_hipMemAllocPitch + hipMemCreate_fn::t_hipMemCreate + hipMemExportToShareableHandle_fn::t_hipMemExportToShareableHandle + hipMemGetAccess_fn::t_hipMemGetAccess + hipMemGetAddressRange_fn::t_hipMemGetAddressRange + hipMemGetAllocationGranularity_fn::t_hipMemGetAllocationGranularity + hipMemGetAllocationPropertiesFromHandle_fn::t_hipMemGetAllocationPropertiesFromHandle + hipMemGetInfo_fn::t_hipMemGetInfo + hipMemImportFromShareableHandle_fn::t_hipMemImportFromShareableHandle + hipMemMap_fn::t_hipMemMap + hipMemMapArrayAsync_fn::t_hipMemMapArrayAsync + hipMemPoolCreate_fn::t_hipMemPoolCreate + hipMemPoolDestroy_fn::t_hipMemPoolDestroy + hipMemPoolExportPointer_fn::t_hipMemPoolExportPointer + hipMemPoolExportToShareableHandle_fn::t_hipMemPoolExportToShareableHandle + hipMemPoolGetAccess_fn::t_hipMemPoolGetAccess + hipMemPoolGetAttribute_fn::t_hipMemPoolGetAttribute + hipMemPoolImportFromShareableHandle_fn::t_hipMemPoolImportFromShareableHandle + hipMemPoolImportPointer_fn::t_hipMemPoolImportPointer + hipMemPoolSetAccess_fn::t_hipMemPoolSetAccess + hipMemPoolSetAttribute_fn::t_hipMemPoolSetAttribute + hipMemPoolTrimTo_fn::t_hipMemPoolTrimTo + hipMemPrefetchAsync_fn::t_hipMemPrefetchAsync + hipMemPtrGetInfo_fn::t_hipMemPtrGetInfo + hipMemRangeGetAttribute_fn::t_hipMemRangeGetAttribute + hipMemRangeGetAttributes_fn::t_hipMemRangeGetAttributes + hipMemRelease_fn::t_hipMemRelease + hipMemRetainAllocationHandle_fn::t_hipMemRetainAllocationHandle + hipMemSetAccess_fn::t_hipMemSetAccess + hipMemUnmap_fn::t_hipMemUnmap + hipMemcpy_fn::t_hipMemcpy + hipMemcpy2D_fn::t_hipMemcpy2D + hipMemcpy2DAsync_fn::t_hipMemcpy2DAsync + hipMemcpy2DFromArray_fn::t_hipMemcpy2DFromArray + hipMemcpy2DFromArrayAsync_fn::t_hipMemcpy2DFromArrayAsync + hipMemcpy2DToArray_fn::t_hipMemcpy2DToArray + hipMemcpy2DToArrayAsync_fn::t_hipMemcpy2DToArrayAsync + hipMemcpy3D_fn::t_hipMemcpy3D + hipMemcpy3DAsync_fn::t_hipMemcpy3DAsync + hipMemcpyAsync_fn::t_hipMemcpyAsync + hipMemcpyAtoH_fn::t_hipMemcpyAtoH + hipMemcpyDtoD_fn::t_hipMemcpyDtoD + hipMemcpyDtoDAsync_fn::t_hipMemcpyDtoDAsync + hipMemcpyDtoH_fn::t_hipMemcpyDtoH + hipMemcpyDtoHAsync_fn::t_hipMemcpyDtoHAsync + hipMemcpyFromArray_fn::t_hipMemcpyFromArray + hipMemcpyFromSymbol_fn::t_hipMemcpyFromSymbol + hipMemcpyFromSymbolAsync_fn::t_hipMemcpyFromSymbolAsync + hipMemcpyHtoA_fn::t_hipMemcpyHtoA + hipMemcpyHtoD_fn::t_hipMemcpyHtoD + hipMemcpyHtoDAsync_fn::t_hipMemcpyHtoDAsync + hipMemcpyParam2D_fn::t_hipMemcpyParam2D + hipMemcpyParam2DAsync_fn::t_hipMemcpyParam2DAsync + hipMemcpyPeer_fn::t_hipMemcpyPeer + hipMemcpyPeerAsync_fn::t_hipMemcpyPeerAsync + hipMemcpyToArray_fn::t_hipMemcpyToArray + hipMemcpyToSymbol_fn::t_hipMemcpyToSymbol + hipMemcpyToSymbolAsync_fn::t_hipMemcpyToSymbolAsync + hipMemcpyWithStream_fn::t_hipMemcpyWithStream + hipMemset_fn::t_hipMemset + hipMemset2D_fn::t_hipMemset2D + hipMemset2DAsync_fn::t_hipMemset2DAsync + hipMemset3D_fn::t_hipMemset3D + hipMemset3DAsync_fn::t_hipMemset3DAsync + hipMemsetAsync_fn::t_hipMemsetAsync + hipMemsetD16_fn::t_hipMemsetD16 + hipMemsetD16Async_fn::t_hipMemsetD16Async + hipMemsetD32_fn::t_hipMemsetD32 + hipMemsetD32Async_fn::t_hipMemsetD32Async + hipMemsetD8_fn::t_hipMemsetD8 + hipMemsetD8Async_fn::t_hipMemsetD8Async + hipMipmappedArrayCreate_fn::t_hipMipmappedArrayCreate + hipMipmappedArrayDestroy_fn::t_hipMipmappedArrayDestroy + hipMipmappedArrayGetLevel_fn::t_hipMipmappedArrayGetLevel + hipModuleGetFunction_fn::t_hipModuleGetFunction + hipModuleGetGlobal_fn::t_hipModuleGetGlobal + hipModuleGetTexRef_fn::t_hipModuleGetTexRef + hipModuleLaunchCooperativeKernel_fn::t_hipModuleLaunchCooperativeKernel + hipModuleLaunchCooperativeKernelMultiDevice_fn::t_hipModuleLaunchCooperativeKernelMultiDevice + hipModuleLaunchKernel_fn::t_hipModuleLaunchKernel + hipModuleLoad_fn::t_hipModuleLoad + hipModuleLoadData_fn::t_hipModuleLoadData + hipModuleLoadDataEx_fn::t_hipModuleLoadDataEx + hipModuleOccupancyMaxActiveBlocksPerMultiprocessor_fn::t_hipModuleOccupancyMaxActiveBlocksPerMultiprocessor + hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_fn::t_hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags + hipModuleOccupancyMaxPotentialBlockSize_fn::t_hipModuleOccupancyMaxPotentialBlockSize + hipModuleOccupancyMaxPotentialBlockSizeWithFlags_fn::t_hipModuleOccupancyMaxPotentialBlockSizeWithFlags + hipModuleUnload_fn::t_hipModuleUnload + hipOccupancyMaxActiveBlocksPerMultiprocessor_fn::t_hipOccupancyMaxActiveBlocksPerMultiprocessor + hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_fn::t_hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags + hipOccupancyMaxPotentialBlockSize_fn::t_hipOccupancyMaxPotentialBlockSize + hipPeekAtLastError_fn::t_hipPeekAtLastError + hipPointerGetAttribute_fn::t_hipPointerGetAttribute + hipPointerGetAttributes_fn::t_hipPointerGetAttributes + hipPointerSetAttribute_fn::t_hipPointerSetAttribute + hipProfilerStart_fn::t_hipProfilerStart + hipProfilerStop_fn::t_hipProfilerStop + hipRuntimeGetVersion_fn::t_hipRuntimeGetVersion + hipSetDevice_fn::t_hipSetDevice + hipSetDeviceFlags_fn::t_hipSetDeviceFlags + hipSetupArgument_fn::t_hipSetupArgument + hipSignalExternalSemaphoresAsync_fn::t_hipSignalExternalSemaphoresAsync + hipStreamAddCallback_fn::t_hipStreamAddCallback + hipStreamAttachMemAsync_fn::t_hipStreamAttachMemAsync + hipStreamBeginCapture_fn::t_hipStreamBeginCapture + hipStreamCreate_fn::t_hipStreamCreate + hipStreamCreateWithFlags_fn::t_hipStreamCreateWithFlags + hipStreamCreateWithPriority_fn::t_hipStreamCreateWithPriority + hipStreamDestroy_fn::t_hipStreamDestroy + hipStreamEndCapture_fn::t_hipStreamEndCapture + hipStreamGetCaptureInfo_fn::t_hipStreamGetCaptureInfo + hipStreamGetCaptureInfo_v2_fn::t_hipStreamGetCaptureInfo_v2 + hipStreamGetDevice_fn::t_hipStreamGetDevice + hipStreamGetFlags_fn::t_hipStreamGetFlags + hipStreamGetPriority_fn::t_hipStreamGetPriority + hipStreamIsCapturing_fn::t_hipStreamIsCapturing + hipStreamQuery_fn::t_hipStreamQuery + hipStreamSynchronize_fn::t_hipStreamSynchronize + hipStreamUpdateCaptureDependencies_fn::t_hipStreamUpdateCaptureDependencies + hipStreamWaitEvent_fn::t_hipStreamWaitEvent + hipStreamWaitValue32_fn::t_hipStreamWaitValue32 + hipStreamWaitValue64_fn::t_hipStreamWaitValue64 + hipStreamWriteValue32_fn::t_hipStreamWriteValue32 + hipStreamWriteValue64_fn::t_hipStreamWriteValue64 + hipTexObjectCreate_fn::t_hipTexObjectCreate + hipTexObjectDestroy_fn::t_hipTexObjectDestroy + hipTexObjectGetResourceDesc_fn::t_hipTexObjectGetResourceDesc + hipTexObjectGetResourceViewDesc_fn::t_hipTexObjectGetResourceViewDesc + hipTexObjectGetTextureDesc_fn::t_hipTexObjectGetTextureDesc + hipTexRefGetAddress_fn::t_hipTexRefGetAddress + hipTexRefGetAddressMode_fn::t_hipTexRefGetAddressMode + hipTexRefGetFilterMode_fn::t_hipTexRefGetFilterMode + hipTexRefGetFlags_fn::t_hipTexRefGetFlags + hipTexRefGetFormat_fn::t_hipTexRefGetFormat + hipTexRefGetMaxAnisotropy_fn::t_hipTexRefGetMaxAnisotropy + hipTexRefGetMipMappedArray_fn::t_hipTexRefGetMipMappedArray + hipTexRefGetMipmapFilterMode_fn::t_hipTexRefGetMipmapFilterMode + hipTexRefGetMipmapLevelBias_fn::t_hipTexRefGetMipmapLevelBias + hipTexRefGetMipmapLevelClamp_fn::t_hipTexRefGetMipmapLevelClamp + hipTexRefSetAddress_fn::t_hipTexRefSetAddress + hipTexRefSetAddress2D_fn::t_hipTexRefSetAddress2D + hipTexRefSetAddressMode_fn::t_hipTexRefSetAddressMode + hipTexRefSetArray_fn::t_hipTexRefSetArray + hipTexRefSetBorderColor_fn::t_hipTexRefSetBorderColor + hipTexRefSetFilterMode_fn::t_hipTexRefSetFilterMode + hipTexRefSetFlags_fn::t_hipTexRefSetFlags + hipTexRefSetFormat_fn::t_hipTexRefSetFormat + hipTexRefSetMaxAnisotropy_fn::t_hipTexRefSetMaxAnisotropy + hipTexRefSetMipmapFilterMode_fn::t_hipTexRefSetMipmapFilterMode + hipTexRefSetMipmapLevelBias_fn::t_hipTexRefSetMipmapLevelBias + hipTexRefSetMipmapLevelClamp_fn::t_hipTexRefSetMipmapLevelClamp + hipTexRefSetMipmappedArray_fn::t_hipTexRefSetMipmappedArray + hipThreadExchangeStreamCaptureMode_fn::t_hipThreadExchangeStreamCaptureMode + hipUnbindTexture_fn::t_hipUnbindTexture + hipUserObjectCreate_fn::t_hipUserObjectCreate + hipUserObjectRelease_fn::t_hipUserObjectRelease + hipUserObjectRetain_fn::t_hipUserObjectRetain + hipWaitExternalSemaphoresAsync_fn::t_hipWaitExternalSemaphoresAsync + hipCreateChannelDesc_fn::t_hipCreateChannelDesc + hipExtModuleLaunchKernel_fn::t_hipExtModuleLaunchKernel + hipHccModuleLaunchKernel_fn::t_hipHccModuleLaunchKernel + hipMemcpy_spt_fn::t_hipMemcpy_spt + hipMemcpyToSymbol_spt_fn::t_hipMemcpyToSymbol_spt + hipMemcpyFromSymbol_spt_fn::t_hipMemcpyFromSymbol_spt + hipMemcpy2D_spt_fn::t_hipMemcpy2D_spt + hipMemcpy2DFromArray_spt_fn::t_hipMemcpy2DFromArray_spt + hipMemcpy3D_spt_fn::t_hipMemcpy3D_spt + hipMemset_spt_fn::t_hipMemset_spt + hipMemsetAsync_spt_fn::t_hipMemsetAsync_spt + hipMemset2D_spt_fn::t_hipMemset2D_spt + hipMemset2DAsync_spt_fn::t_hipMemset2DAsync_spt + hipMemset3DAsync_spt_fn::t_hipMemset3DAsync_spt + hipMemset3D_spt_fn::t_hipMemset3D_spt + hipMemcpyAsync_spt_fn::t_hipMemcpyAsync_spt + hipMemcpy3DAsync_spt_fn::t_hipMemcpy3DAsync_spt + hipMemcpy2DAsync_spt_fn::t_hipMemcpy2DAsync_spt + hipMemcpyFromSymbolAsync_spt_fn::t_hipMemcpyFromSymbolAsync_spt + hipMemcpyToSymbolAsync_spt_fn::t_hipMemcpyToSymbolAsync_spt + hipMemcpyFromArray_spt_fn::t_hipMemcpyFromArray_spt + hipMemcpy2DToArray_spt_fn::t_hipMemcpy2DToArray_spt + hipMemcpy2DFromArrayAsync_spt_fn::t_hipMemcpy2DFromArrayAsync_spt + hipMemcpy2DToArrayAsync_spt_fn::t_hipMemcpy2DToArrayAsync_spt + hipStreamQuery_spt_fn::t_hipStreamQuery_spt + hipStreamSynchronize_spt_fn::t_hipStreamSynchronize_spt + hipStreamGetPriority_spt_fn::t_hipStreamGetPriority_spt + hipStreamWaitEvent_spt_fn::t_hipStreamWaitEvent_spt + hipStreamGetFlags_spt_fn::t_hipStreamGetFlags_spt + hipStreamAddCallback_spt_fn::t_hipStreamAddCallback_spt + hipEventRecord_spt_fn::t_hipEventRecord_spt + hipLaunchCooperativeKernel_spt_fn::t_hipLaunchCooperativeKernel_spt + hipLaunchKernel_spt_fn::t_hipLaunchKernel_spt + hipGraphLaunch_spt_fn::t_hipGraphLaunch_spt + hipStreamBeginCapture_spt_fn::t_hipStreamBeginCapture_spt + hipStreamEndCapture_spt_fn::t_hipStreamEndCapture_spt + hipStreamIsCapturing_spt_fn::t_hipStreamIsCapturing_spt + hipStreamGetCaptureInfo_spt_fn::t_hipStreamGetCaptureInfo_spt + hipStreamGetCaptureInfo_v2_spt_fn::t_hipStreamGetCaptureInfo_v2_spt + hipLaunchHostFunc_spt_fn::t_hipLaunchHostFunc_spt + hipGetStreamDeviceId_fn::t_hipGetStreamDeviceId + hipDrvGraphAddMemsetNode_fn::t_hipDrvGraphAddMemsetNode + hipGraphAddExternalSemaphoresWaitNode_fn::t_hipGraphAddExternalSemaphoresWaitNode + hipGraphAddExternalSemaphoresSignalNode_fn::t_hipGraphAddExternalSemaphoresSignalNode + hipGraphExternalSemaphoresSignalNodeSetParams_fn::t_hipGraphExternalSemaphoresSignalNodeSetParams + hipGraphExternalSemaphoresWaitNodeSetParams_fn::t_hipGraphExternalSemaphoresWaitNodeSetParams + hipGraphExternalSemaphoresSignalNodeGetParams_fn::t_hipGraphExternalSemaphoresSignalNodeGetParams + hipGraphExternalSemaphoresWaitNodeGetParams_fn::t_hipGraphExternalSemaphoresWaitNodeGetParams + hipGraphExecExternalSemaphoresSignalNodeSetParams_fn::t_hipGraphExecExternalSemaphoresSignalNodeSetParams + hipGraphExecExternalSemaphoresWaitNodeSetParams_fn::t_hipGraphExecExternalSemaphoresWaitNodeSetParams + hipGraphAddNode_fn::t_hipGraphAddNode + hipGraphInstantiateWithParams_fn::t_hipGraphInstantiateWithParams + hipExtGetLastError_fn::t_hipExtGetLastError + hipTexRefGetBorderColor_fn::t_hipTexRefGetBorderColor + hipTexRefGetArray_fn::t_hipTexRefGetArray + hipGetProcAddress_fn::t_hipGetProcAddress + hipStreamBeginCaptureToGraph_fn::t_hipStreamBeginCaptureToGraph + hipGetFuncBySymbol_fn::t_hipGetFuncBySymbol + hipSetValidDevices_fn::t_hipSetValidDevices + hipMemcpyAtoD_fn::t_hipMemcpyAtoD + hipMemcpyDtoA_fn::t_hipMemcpyDtoA + hipMemcpyAtoA_fn::t_hipMemcpyAtoA + hipMemcpyAtoHAsync_fn::t_hipMemcpyAtoHAsync + hipMemcpyHtoAAsync_fn::t_hipMemcpyHtoAAsync + hipMemcpy2DArrayToArray_fn::t_hipMemcpy2DArrayToArray + hipDrvGraphAddMemFreeNode_fn::t_hipDrvGraphAddMemFreeNode + hipDrvGraphExecMemcpyNodeSetParams_fn::t_hipDrvGraphExecMemcpyNodeSetParams + hipDrvGraphExecMemsetNodeSetParams_fn::t_hipDrvGraphExecMemsetNodeSetParams + hipGraphExecGetFlags_fn::t_hipGraphExecGetFlags + hipGraphNodeSetParams_fn::t_hipGraphNodeSetParams + hipGraphExecNodeSetParams_fn::t_hipGraphExecNodeSetParams + hipExternalMemoryGetMappedMipmappedArray_fn::t_hipExternalMemoryGetMappedMipmappedArray + hipDrvGraphMemcpyNodeGetParams_fn::t_hipDrvGraphMemcpyNodeGetParams + hipDrvGraphMemcpyNodeSetParams_fn::t_hipDrvGraphMemcpyNodeSetParams + hipExtHostAlloc_fn::t_hipExtHostAlloc + hipDeviceGetTexture1DLinearMaxWidth_fn::t_hipDeviceGetTexture1DLinearMaxWidth + hipStreamBatchMemOp_fn::t_hipStreamBatchMemOp + hipGraphAddBatchMemOpNode_fn::t_hipGraphAddBatchMemOpNode + hipGraphBatchMemOpNodeGetParams_fn::t_hipGraphBatchMemOpNodeGetParams + hipGraphBatchMemOpNodeSetParams_fn::t_hipGraphBatchMemOpNodeSetParams + hipGraphExecBatchMemOpNodeSetParams_fn::t_hipGraphExecBatchMemOpNodeSetParams + hipEventRecordWithFlags_fn::t_hipEventRecordWithFlags + hipLinkAddData_fn::t_hipLinkAddData + hipLinkAddFile_fn::t_hipLinkAddFile + hipLinkComplete_fn::t_hipLinkComplete + hipLinkCreate_fn::t_hipLinkCreate + hipLinkDestroy_fn::t_hipLinkDestroy + hipLaunchKernelExC_fn::t_hipLaunchKernelExC + hipDrvLaunchKernelEx_fn::t_hipDrvLaunchKernelEx +end + +struct HipToolsDispatchTable + size::Csize_t + __hipReportDevices_fn::t___hipReportDevices +end + +struct rocprofiler_hip_api_no_args + empty::Cchar +end + +struct rocprofiler_hip_api_retval_t + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_hip_api_retval_t}, f::Symbol) + f === :uint64_t_retval && return Ptr{UInt64}(x + 0) + f === :int_retval && return Ptr{Cint}(x + 0) + f === :const_charp_retval && return Ptr{Ptr{Cchar}}(x + 0) + f === :hipError_t_retval && return Ptr{hipError_t}(x + 0) + f === :hipChannelFormatDesc_retval && return Ptr{hipChannelFormatDesc}(x + 0) + f === :voidpp_retval && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_hip_api_retval_t, f::Symbol) + r = Ref{rocprofiler_hip_api_retval_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_hip_api_retval_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_hip_api_retval_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_hip_api_retval_t, private::Bool=false) + return (:uint64_t_retval, :int_retval, :const_charp_retval, :hipError_t_retval, + :hipChannelFormatDesc_retval, :voidpp_retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_hip_api_args_t + data::NTuple{88,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_hip_api_args_t}, f::Symbol) + f === :__hipPopCallConfiguration && return Ptr{var"##Ctag#427"}(x + 0) + f === :__hipPushCallConfiguration && return Ptr{var"##Ctag#428"}(x + 0) + f === :__hipRegisterFatBinary && return Ptr{var"##Ctag#429"}(x + 0) + f === :__hipRegisterFunction && return Ptr{var"##Ctag#430"}(x + 0) + f === :__hipRegisterManagedVar && return Ptr{var"##Ctag#431"}(x + 0) + f === :__hipRegisterSurface && return Ptr{var"##Ctag#432"}(x + 0) + f === :__hipRegisterTexture && return Ptr{var"##Ctag#433"}(x + 0) + f === :__hipRegisterVar && return Ptr{var"##Ctag#434"}(x + 0) + f === :__hipUnregisterFatBinary && return Ptr{var"##Ctag#435"}(x + 0) + f === :hipApiName && return Ptr{var"##Ctag#436"}(x + 0) + f === :hipArray3DCreate && return Ptr{var"##Ctag#437"}(x + 0) + f === :hipArray3DGetDescriptor && return Ptr{var"##Ctag#438"}(x + 0) + f === :hipArrayCreate && return Ptr{var"##Ctag#439"}(x + 0) + f === :hipArrayDestroy && return Ptr{var"##Ctag#440"}(x + 0) + f === :hipArrayGetDescriptor && return Ptr{var"##Ctag#441"}(x + 0) + f === :hipArrayGetInfo && return Ptr{var"##Ctag#442"}(x + 0) + f === :hipBindTexture && return Ptr{var"##Ctag#443"}(x + 0) + f === :hipBindTexture2D && return Ptr{var"##Ctag#444"}(x + 0) + f === :hipBindTextureToArray && return Ptr{var"##Ctag#445"}(x + 0) + f === :hipBindTextureToMipmappedArray && return Ptr{var"##Ctag#446"}(x + 0) + f === :hipChooseDeviceR0600 && return Ptr{var"##Ctag#447"}(x + 0) + f === :hipChooseDeviceR0000 && return Ptr{var"##Ctag#448"}(x + 0) + f === :hipConfigureCall && return Ptr{var"##Ctag#449"}(x + 0) + f === :hipCreateSurfaceObject && return Ptr{var"##Ctag#450"}(x + 0) + f === :hipCreateTextureObject && return Ptr{var"##Ctag#451"}(x + 0) + f === :hipCtxCreate && return Ptr{var"##Ctag#452"}(x + 0) + f === :hipCtxDestroy && return Ptr{var"##Ctag#453"}(x + 0) + f === :hipCtxDisablePeerAccess && return Ptr{var"##Ctag#454"}(x + 0) + f === :hipCtxEnablePeerAccess && return Ptr{var"##Ctag#455"}(x + 0) + f === :hipCtxGetApiVersion && return Ptr{var"##Ctag#456"}(x + 0) + f === :hipCtxGetCacheConfig && return Ptr{var"##Ctag#457"}(x + 0) + f === :hipCtxGetCurrent && return Ptr{var"##Ctag#458"}(x + 0) + f === :hipCtxGetDevice && return Ptr{var"##Ctag#459"}(x + 0) + f === :hipCtxGetFlags && return Ptr{var"##Ctag#460"}(x + 0) + f === :hipCtxGetSharedMemConfig && return Ptr{var"##Ctag#461"}(x + 0) + f === :hipCtxPopCurrent && return Ptr{var"##Ctag#462"}(x + 0) + f === :hipCtxPushCurrent && return Ptr{var"##Ctag#463"}(x + 0) + f === :hipCtxSetCacheConfig && return Ptr{var"##Ctag#464"}(x + 0) + f === :hipCtxSetCurrent && return Ptr{var"##Ctag#465"}(x + 0) + f === :hipCtxSetSharedMemConfig && return Ptr{var"##Ctag#466"}(x + 0) + f === :hipCtxSynchronize && return Ptr{var"##Ctag#467"}(x + 0) + f === :hipDestroyExternalMemory && return Ptr{var"##Ctag#468"}(x + 0) + f === :hipDestroyExternalSemaphore && return Ptr{var"##Ctag#469"}(x + 0) + f === :hipDestroySurfaceObject && return Ptr{var"##Ctag#470"}(x + 0) + f === :hipDestroyTextureObject && return Ptr{var"##Ctag#471"}(x + 0) + f === :hipDeviceCanAccessPeer && return Ptr{var"##Ctag#472"}(x + 0) + f === :hipDeviceComputeCapability && return Ptr{var"##Ctag#473"}(x + 0) + f === :hipDeviceDisablePeerAccess && return Ptr{var"##Ctag#474"}(x + 0) + f === :hipDeviceEnablePeerAccess && return Ptr{var"##Ctag#475"}(x + 0) + f === :hipDeviceGet && return Ptr{var"##Ctag#476"}(x + 0) + f === :hipDeviceGetAttribute && return Ptr{var"##Ctag#477"}(x + 0) + f === :hipDeviceGetByPCIBusId && return Ptr{var"##Ctag#478"}(x + 0) + f === :hipDeviceGetCacheConfig && return Ptr{var"##Ctag#479"}(x + 0) + f === :hipDeviceGetDefaultMemPool && return Ptr{var"##Ctag#480"}(x + 0) + f === :hipDeviceGetGraphMemAttribute && return Ptr{var"##Ctag#481"}(x + 0) + f === :hipDeviceGetLimit && return Ptr{var"##Ctag#482"}(x + 0) + f === :hipDeviceGetMemPool && return Ptr{var"##Ctag#483"}(x + 0) + f === :hipDeviceGetName && return Ptr{var"##Ctag#484"}(x + 0) + f === :hipDeviceGetP2PAttribute && return Ptr{var"##Ctag#485"}(x + 0) + f === :hipDeviceGetPCIBusId && return Ptr{var"##Ctag#486"}(x + 0) + f === :hipDeviceGetSharedMemConfig && return Ptr{var"##Ctag#487"}(x + 0) + f === :hipDeviceGetStreamPriorityRange && return Ptr{var"##Ctag#488"}(x + 0) + f === :hipDeviceGetUuid && return Ptr{var"##Ctag#489"}(x + 0) + f === :hipDeviceGraphMemTrim && return Ptr{var"##Ctag#490"}(x + 0) + f === :hipDevicePrimaryCtxGetState && return Ptr{var"##Ctag#491"}(x + 0) + f === :hipDevicePrimaryCtxRelease && return Ptr{var"##Ctag#492"}(x + 0) + f === :hipDevicePrimaryCtxReset && return Ptr{var"##Ctag#493"}(x + 0) + f === :hipDevicePrimaryCtxRetain && return Ptr{var"##Ctag#494"}(x + 0) + f === :hipDevicePrimaryCtxSetFlags && return Ptr{var"##Ctag#495"}(x + 0) + f === :hipDeviceReset && return Ptr{var"##Ctag#496"}(x + 0) + f === :hipDeviceSetCacheConfig && return Ptr{var"##Ctag#497"}(x + 0) + f === :hipDeviceSetGraphMemAttribute && return Ptr{var"##Ctag#498"}(x + 0) + f === :hipDeviceSetLimit && return Ptr{var"##Ctag#499"}(x + 0) + f === :hipDeviceSetMemPool && return Ptr{var"##Ctag#500"}(x + 0) + f === :hipDeviceSetSharedMemConfig && return Ptr{var"##Ctag#501"}(x + 0) + f === :hipDeviceSynchronize && return Ptr{var"##Ctag#502"}(x + 0) + f === :hipDeviceTotalMem && return Ptr{var"##Ctag#503"}(x + 0) + f === :hipDriverGetVersion && return Ptr{var"##Ctag#504"}(x + 0) + f === :hipDrvGetErrorName && return Ptr{var"##Ctag#505"}(x + 0) + f === :hipDrvGetErrorString && return Ptr{var"##Ctag#506"}(x + 0) + f === :hipDrvGraphAddMemcpyNode && return Ptr{var"##Ctag#507"}(x + 0) + f === :hipDrvMemcpy2DUnaligned && return Ptr{var"##Ctag#508"}(x + 0) + f === :hipDrvMemcpy3D && return Ptr{var"##Ctag#509"}(x + 0) + f === :hipDrvMemcpy3DAsync && return Ptr{var"##Ctag#510"}(x + 0) + f === :hipDrvPointerGetAttributes && return Ptr{var"##Ctag#511"}(x + 0) + f === :hipEventCreate && return Ptr{var"##Ctag#512"}(x + 0) + f === :hipEventCreateWithFlags && return Ptr{var"##Ctag#513"}(x + 0) + f === :hipEventDestroy && return Ptr{var"##Ctag#514"}(x + 0) + f === :hipEventElapsedTime && return Ptr{var"##Ctag#515"}(x + 0) + f === :hipEventQuery && return Ptr{var"##Ctag#516"}(x + 0) + f === :hipEventRecord && return Ptr{var"##Ctag#517"}(x + 0) + f === :hipEventSynchronize && return Ptr{var"##Ctag#518"}(x + 0) + f === :hipExtGetLinkTypeAndHopCount && return Ptr{var"##Ctag#519"}(x + 0) + f === :hipExtLaunchKernel && return Ptr{var"##Ctag#520"}(x + 0) + f === :hipExtLaunchMultiKernelMultiDevice && return Ptr{var"##Ctag#521"}(x + 0) + f === :hipExtMallocWithFlags && return Ptr{var"##Ctag#522"}(x + 0) + f === :hipExtStreamCreateWithCUMask && return Ptr{var"##Ctag#523"}(x + 0) + f === :hipExtStreamGetCUMask && return Ptr{var"##Ctag#524"}(x + 0) + f === :hipExternalMemoryGetMappedBuffer && return Ptr{var"##Ctag#525"}(x + 0) + f === :hipFree && return Ptr{var"##Ctag#526"}(x + 0) + f === :hipFreeArray && return Ptr{var"##Ctag#527"}(x + 0) + f === :hipFreeAsync && return Ptr{var"##Ctag#528"}(x + 0) + f === :hipFreeHost && return Ptr{var"##Ctag#529"}(x + 0) + f === :hipFreeMipmappedArray && return Ptr{var"##Ctag#530"}(x + 0) + f === :hipFuncGetAttribute && return Ptr{var"##Ctag#531"}(x + 0) + f === :hipFuncGetAttributes && return Ptr{var"##Ctag#532"}(x + 0) + f === :hipFuncSetAttribute && return Ptr{var"##Ctag#533"}(x + 0) + f === :hipFuncSetCacheConfig && return Ptr{var"##Ctag#534"}(x + 0) + f === :hipFuncSetSharedMemConfig && return Ptr{var"##Ctag#535"}(x + 0) + f === :hipGLGetDevices && return Ptr{var"##Ctag#536"}(x + 0) + f === :hipGetChannelDesc && return Ptr{var"##Ctag#537"}(x + 0) + f === :hipGetDevice && return Ptr{var"##Ctag#538"}(x + 0) + f === :hipGetDeviceCount && return Ptr{var"##Ctag#539"}(x + 0) + f === :hipGetDeviceFlags && return Ptr{var"##Ctag#540"}(x + 0) + f === :hipGetDevicePropertiesR0600 && return Ptr{var"##Ctag#541"}(x + 0) + f === :hipGetDevicePropertiesR0000 && return Ptr{var"##Ctag#542"}(x + 0) + f === :hipGetErrorName && return Ptr{var"##Ctag#543"}(x + 0) + f === :hipGetErrorString && return Ptr{var"##Ctag#544"}(x + 0) + f === :hipGetLastError && return Ptr{var"##Ctag#545"}(x + 0) + f === :hipGetMipmappedArrayLevel && return Ptr{var"##Ctag#546"}(x + 0) + f === :hipGetSymbolAddress && return Ptr{var"##Ctag#547"}(x + 0) + f === :hipGetSymbolSize && return Ptr{var"##Ctag#548"}(x + 0) + f === :hipGetTextureAlignmentOffset && return Ptr{var"##Ctag#549"}(x + 0) + f === :hipGetTextureObjectResourceDesc && return Ptr{var"##Ctag#550"}(x + 0) + f === :hipGetTextureObjectResourceViewDesc && return Ptr{var"##Ctag#551"}(x + 0) + f === :hipGetTextureObjectTextureDesc && return Ptr{var"##Ctag#552"}(x + 0) + f === :hipGetTextureReference && return Ptr{var"##Ctag#553"}(x + 0) + f === :hipGraphAddChildGraphNode && return Ptr{var"##Ctag#554"}(x + 0) + f === :hipGraphAddDependencies && return Ptr{var"##Ctag#555"}(x + 0) + f === :hipGraphAddEmptyNode && return Ptr{var"##Ctag#556"}(x + 0) + f === :hipGraphAddEventRecordNode && return Ptr{var"##Ctag#557"}(x + 0) + f === :hipGraphAddEventWaitNode && return Ptr{var"##Ctag#558"}(x + 0) + f === :hipGraphAddHostNode && return Ptr{var"##Ctag#559"}(x + 0) + f === :hipGraphAddKernelNode && return Ptr{var"##Ctag#560"}(x + 0) + f === :hipGraphAddMemAllocNode && return Ptr{var"##Ctag#561"}(x + 0) + f === :hipGraphAddMemFreeNode && return Ptr{var"##Ctag#562"}(x + 0) + f === :hipGraphAddMemcpyNode && return Ptr{var"##Ctag#563"}(x + 0) + f === :hipGraphAddMemcpyNode1D && return Ptr{var"##Ctag#564"}(x + 0) + f === :hipGraphAddMemcpyNodeFromSymbol && return Ptr{var"##Ctag#565"}(x + 0) + f === :hipGraphAddMemcpyNodeToSymbol && return Ptr{var"##Ctag#566"}(x + 0) + f === :hipGraphAddMemsetNode && return Ptr{var"##Ctag#567"}(x + 0) + f === :hipGraphChildGraphNodeGetGraph && return Ptr{var"##Ctag#568"}(x + 0) + f === :hipGraphClone && return Ptr{var"##Ctag#569"}(x + 0) + f === :hipGraphCreate && return Ptr{var"##Ctag#570"}(x + 0) + f === :hipGraphDebugDotPrint && return Ptr{var"##Ctag#571"}(x + 0) + f === :hipGraphDestroy && return Ptr{var"##Ctag#572"}(x + 0) + f === :hipGraphDestroyNode && return Ptr{var"##Ctag#573"}(x + 0) + f === :hipGraphEventRecordNodeGetEvent && return Ptr{var"##Ctag#574"}(x + 0) + f === :hipGraphEventRecordNodeSetEvent && return Ptr{var"##Ctag#575"}(x + 0) + f === :hipGraphEventWaitNodeGetEvent && return Ptr{var"##Ctag#576"}(x + 0) + f === :hipGraphEventWaitNodeSetEvent && return Ptr{var"##Ctag#577"}(x + 0) + f === :hipGraphExecChildGraphNodeSetParams && return Ptr{var"##Ctag#578"}(x + 0) + f === :hipGraphExecDestroy && return Ptr{var"##Ctag#579"}(x + 0) + f === :hipGraphExecEventRecordNodeSetEvent && return Ptr{var"##Ctag#580"}(x + 0) + f === :hipGraphExecEventWaitNodeSetEvent && return Ptr{var"##Ctag#581"}(x + 0) + f === :hipGraphExecHostNodeSetParams && return Ptr{var"##Ctag#582"}(x + 0) + f === :hipGraphExecKernelNodeSetParams && return Ptr{var"##Ctag#583"}(x + 0) + f === :hipGraphExecMemcpyNodeSetParams && return Ptr{var"##Ctag#584"}(x + 0) + f === :hipGraphExecMemcpyNodeSetParams1D && return Ptr{var"##Ctag#585"}(x + 0) + f === :hipGraphExecMemcpyNodeSetParamsFromSymbol && return Ptr{var"##Ctag#586"}(x + 0) + f === :hipGraphExecMemcpyNodeSetParamsToSymbol && return Ptr{var"##Ctag#587"}(x + 0) + f === :hipGraphExecMemsetNodeSetParams && return Ptr{var"##Ctag#588"}(x + 0) + f === :hipGraphExecUpdate && return Ptr{var"##Ctag#589"}(x + 0) + f === :hipGraphGetEdges && return Ptr{var"##Ctag#590"}(x + 0) + f === :hipGraphGetNodes && return Ptr{var"##Ctag#591"}(x + 0) + f === :hipGraphGetRootNodes && return Ptr{var"##Ctag#592"}(x + 0) + f === :hipGraphHostNodeGetParams && return Ptr{var"##Ctag#593"}(x + 0) + f === :hipGraphHostNodeSetParams && return Ptr{var"##Ctag#594"}(x + 0) + f === :hipGraphInstantiate && return Ptr{var"##Ctag#595"}(x + 0) + f === :hipGraphInstantiateWithFlags && return Ptr{var"##Ctag#596"}(x + 0) + f === :hipGraphKernelNodeCopyAttributes && return Ptr{var"##Ctag#597"}(x + 0) + f === :hipGraphKernelNodeGetAttribute && return Ptr{var"##Ctag#598"}(x + 0) + f === :hipGraphKernelNodeGetParams && return Ptr{var"##Ctag#599"}(x + 0) + f === :hipGraphKernelNodeSetAttribute && return Ptr{var"##Ctag#600"}(x + 0) + f === :hipGraphKernelNodeSetParams && return Ptr{var"##Ctag#601"}(x + 0) + f === :hipGraphLaunch && return Ptr{var"##Ctag#602"}(x + 0) + f === :hipGraphMemAllocNodeGetParams && return Ptr{var"##Ctag#603"}(x + 0) + f === :hipGraphMemFreeNodeGetParams && return Ptr{var"##Ctag#604"}(x + 0) + f === :hipGraphMemcpyNodeGetParams && return Ptr{var"##Ctag#605"}(x + 0) + f === :hipGraphMemcpyNodeSetParams && return Ptr{var"##Ctag#606"}(x + 0) + f === :hipGraphMemcpyNodeSetParams1D && return Ptr{var"##Ctag#607"}(x + 0) + f === :hipGraphMemcpyNodeSetParamsFromSymbol && return Ptr{var"##Ctag#608"}(x + 0) + f === :hipGraphMemcpyNodeSetParamsToSymbol && return Ptr{var"##Ctag#609"}(x + 0) + f === :hipGraphMemsetNodeGetParams && return Ptr{var"##Ctag#610"}(x + 0) + f === :hipGraphMemsetNodeSetParams && return Ptr{var"##Ctag#611"}(x + 0) + f === :hipGraphNodeFindInClone && return Ptr{var"##Ctag#612"}(x + 0) + f === :hipGraphNodeGetDependencies && return Ptr{var"##Ctag#613"}(x + 0) + f === :hipGraphNodeGetDependentNodes && return Ptr{var"##Ctag#614"}(x + 0) + f === :hipGraphNodeGetEnabled && return Ptr{var"##Ctag#615"}(x + 0) + f === :hipGraphNodeGetType && return Ptr{var"##Ctag#616"}(x + 0) + f === :hipGraphNodeSetEnabled && return Ptr{var"##Ctag#617"}(x + 0) + f === :hipGraphReleaseUserObject && return Ptr{var"##Ctag#618"}(x + 0) + f === :hipGraphRemoveDependencies && return Ptr{var"##Ctag#619"}(x + 0) + f === :hipGraphRetainUserObject && return Ptr{var"##Ctag#620"}(x + 0) + f === :hipGraphUpload && return Ptr{var"##Ctag#621"}(x + 0) + f === :hipGraphicsGLRegisterBuffer && return Ptr{var"##Ctag#622"}(x + 0) + f === :hipGraphicsGLRegisterImage && return Ptr{var"##Ctag#623"}(x + 0) + f === :hipGraphicsMapResources && return Ptr{var"##Ctag#624"}(x + 0) + f === :hipGraphicsResourceGetMappedPointer && return Ptr{var"##Ctag#625"}(x + 0) + f === :hipGraphicsSubResourceGetMappedArray && return Ptr{var"##Ctag#626"}(x + 0) + f === :hipGraphicsUnmapResources && return Ptr{var"##Ctag#627"}(x + 0) + f === :hipGraphicsUnregisterResource && return Ptr{var"##Ctag#628"}(x + 0) + f === :hipHostAlloc && return Ptr{var"##Ctag#629"}(x + 0) + f === :hipHostFree && return Ptr{var"##Ctag#630"}(x + 0) + f === :hipHostGetDevicePointer && return Ptr{var"##Ctag#631"}(x + 0) + f === :hipHostGetFlags && return Ptr{var"##Ctag#632"}(x + 0) + f === :hipHostMalloc && return Ptr{var"##Ctag#633"}(x + 0) + f === :hipHostRegister && return Ptr{var"##Ctag#634"}(x + 0) + f === :hipHostUnregister && return Ptr{var"##Ctag#635"}(x + 0) + f === :hipImportExternalMemory && return Ptr{var"##Ctag#636"}(x + 0) + f === :hipImportExternalSemaphore && return Ptr{var"##Ctag#637"}(x + 0) + f === :hipInit && return Ptr{var"##Ctag#638"}(x + 0) + f === :hipIpcCloseMemHandle && return Ptr{var"##Ctag#639"}(x + 0) + f === :hipIpcGetEventHandle && return Ptr{var"##Ctag#640"}(x + 0) + f === :hipIpcGetMemHandle && return Ptr{var"##Ctag#641"}(x + 0) + f === :hipIpcOpenEventHandle && return Ptr{var"##Ctag#642"}(x + 0) + f === :hipIpcOpenMemHandle && return Ptr{var"##Ctag#643"}(x + 0) + f === :hipKernelNameRef && return Ptr{var"##Ctag#644"}(x + 0) + f === :hipKernelNameRefByPtr && return Ptr{var"##Ctag#645"}(x + 0) + f === :hipLaunchByPtr && return Ptr{var"##Ctag#646"}(x + 0) + f === :hipLaunchCooperativeKernel && return Ptr{var"##Ctag#647"}(x + 0) + f === :hipLaunchCooperativeKernelMultiDevice && return Ptr{var"##Ctag#648"}(x + 0) + f === :hipLaunchHostFunc && return Ptr{var"##Ctag#649"}(x + 0) + f === :hipLaunchKernel && return Ptr{var"##Ctag#650"}(x + 0) + f === :hipMalloc && return Ptr{var"##Ctag#651"}(x + 0) + f === :hipMalloc3D && return Ptr{var"##Ctag#652"}(x + 0) + f === :hipMalloc3DArray && return Ptr{var"##Ctag#653"}(x + 0) + f === :hipMallocArray && return Ptr{var"##Ctag#654"}(x + 0) + f === :hipMallocAsync && return Ptr{var"##Ctag#655"}(x + 0) + f === :hipMallocFromPoolAsync && return Ptr{var"##Ctag#656"}(x + 0) + f === :hipMallocHost && return Ptr{var"##Ctag#657"}(x + 0) + f === :hipMallocManaged && return Ptr{var"##Ctag#658"}(x + 0) + f === :hipMallocMipmappedArray && return Ptr{var"##Ctag#659"}(x + 0) + f === :hipMallocPitch && return Ptr{var"##Ctag#660"}(x + 0) + f === :hipMemAddressFree && return Ptr{var"##Ctag#661"}(x + 0) + f === :hipMemAddressReserve && return Ptr{var"##Ctag#662"}(x + 0) + f === :hipMemAdvise && return Ptr{var"##Ctag#663"}(x + 0) + f === :hipMemAllocHost && return Ptr{var"##Ctag#664"}(x + 0) + f === :hipMemAllocPitch && return Ptr{var"##Ctag#665"}(x + 0) + f === :hipMemCreate && return Ptr{var"##Ctag#666"}(x + 0) + f === :hipMemExportToShareableHandle && return Ptr{var"##Ctag#667"}(x + 0) + f === :hipMemGetAccess && return Ptr{var"##Ctag#668"}(x + 0) + f === :hipMemGetAddressRange && return Ptr{var"##Ctag#669"}(x + 0) + f === :hipMemGetAllocationGranularity && return Ptr{var"##Ctag#670"}(x + 0) + f === :hipMemGetAllocationPropertiesFromHandle && return Ptr{var"##Ctag#671"}(x + 0) + f === :hipMemGetInfo && return Ptr{var"##Ctag#672"}(x + 0) + f === :hipMemImportFromShareableHandle && return Ptr{var"##Ctag#673"}(x + 0) + f === :hipMemMap && return Ptr{var"##Ctag#674"}(x + 0) + f === :hipMemMapArrayAsync && return Ptr{var"##Ctag#675"}(x + 0) + f === :hipMemPoolCreate && return Ptr{var"##Ctag#676"}(x + 0) + f === :hipMemPoolDestroy && return Ptr{var"##Ctag#677"}(x + 0) + f === :hipMemPoolExportPointer && return Ptr{var"##Ctag#678"}(x + 0) + f === :hipMemPoolExportToShareableHandle && return Ptr{var"##Ctag#679"}(x + 0) + f === :hipMemPoolGetAccess && return Ptr{var"##Ctag#680"}(x + 0) + f === :hipMemPoolGetAttribute && return Ptr{var"##Ctag#681"}(x + 0) + f === :hipMemPoolImportFromShareableHandle && return Ptr{var"##Ctag#682"}(x + 0) + f === :hipMemPoolImportPointer && return Ptr{var"##Ctag#683"}(x + 0) + f === :hipMemPoolSetAccess && return Ptr{var"##Ctag#684"}(x + 0) + f === :hipMemPoolSetAttribute && return Ptr{var"##Ctag#685"}(x + 0) + f === :hipMemPoolTrimTo && return Ptr{var"##Ctag#686"}(x + 0) + f === :hipMemPrefetchAsync && return Ptr{var"##Ctag#687"}(x + 0) + f === :hipMemPtrGetInfo && return Ptr{var"##Ctag#688"}(x + 0) + f === :hipMemRangeGetAttribute && return Ptr{var"##Ctag#689"}(x + 0) + f === :hipMemRangeGetAttributes && return Ptr{var"##Ctag#690"}(x + 0) + f === :hipMemRelease && return Ptr{var"##Ctag#691"}(x + 0) + f === :hipMemRetainAllocationHandle && return Ptr{var"##Ctag#692"}(x + 0) + f === :hipMemSetAccess && return Ptr{var"##Ctag#693"}(x + 0) + f === :hipMemUnmap && return Ptr{var"##Ctag#694"}(x + 0) + f === :hipMemcpy && return Ptr{var"##Ctag#695"}(x + 0) + f === :hipMemcpy2D && return Ptr{var"##Ctag#696"}(x + 0) + f === :hipMemcpy2DAsync && return Ptr{var"##Ctag#697"}(x + 0) + f === :hipMemcpy2DFromArray && return Ptr{var"##Ctag#698"}(x + 0) + f === :hipMemcpy2DFromArrayAsync && return Ptr{var"##Ctag#699"}(x + 0) + f === :hipMemcpy2DToArray && return Ptr{var"##Ctag#700"}(x + 0) + f === :hipMemcpy2DToArrayAsync && return Ptr{var"##Ctag#701"}(x + 0) + f === :hipMemcpy3D && return Ptr{var"##Ctag#702"}(x + 0) + f === :hipMemcpy3DAsync && return Ptr{var"##Ctag#703"}(x + 0) + f === :hipMemcpyAsync && return Ptr{var"##Ctag#704"}(x + 0) + f === :hipMemcpyAtoH && return Ptr{var"##Ctag#705"}(x + 0) + f === :hipMemcpyDtoD && return Ptr{var"##Ctag#706"}(x + 0) + f === :hipMemcpyDtoDAsync && return Ptr{var"##Ctag#707"}(x + 0) + f === :hipMemcpyDtoH && return Ptr{var"##Ctag#708"}(x + 0) + f === :hipMemcpyDtoHAsync && return Ptr{var"##Ctag#709"}(x + 0) + f === :hipMemcpyFromArray && return Ptr{var"##Ctag#710"}(x + 0) + f === :hipMemcpyFromSymbol && return Ptr{var"##Ctag#711"}(x + 0) + f === :hipMemcpyFromSymbolAsync && return Ptr{var"##Ctag#712"}(x + 0) + f === :hipMemcpyHtoA && return Ptr{var"##Ctag#713"}(x + 0) + f === :hipMemcpyHtoD && return Ptr{var"##Ctag#714"}(x + 0) + f === :hipMemcpyHtoDAsync && return Ptr{var"##Ctag#715"}(x + 0) + f === :hipMemcpyParam2D && return Ptr{var"##Ctag#716"}(x + 0) + f === :hipMemcpyParam2DAsync && return Ptr{var"##Ctag#717"}(x + 0) + f === :hipMemcpyPeer && return Ptr{var"##Ctag#718"}(x + 0) + f === :hipMemcpyPeerAsync && return Ptr{var"##Ctag#719"}(x + 0) + f === :hipMemcpyToArray && return Ptr{var"##Ctag#720"}(x + 0) + f === :hipMemcpyToSymbol && return Ptr{var"##Ctag#721"}(x + 0) + f === :hipMemcpyToSymbolAsync && return Ptr{var"##Ctag#722"}(x + 0) + f === :hipMemcpyWithStream && return Ptr{var"##Ctag#723"}(x + 0) + f === :hipMemset && return Ptr{var"##Ctag#724"}(x + 0) + f === :hipMemset2D && return Ptr{var"##Ctag#725"}(x + 0) + f === :hipMemset2DAsync && return Ptr{var"##Ctag#726"}(x + 0) + f === :hipMemset3D && return Ptr{var"##Ctag#727"}(x + 0) + f === :hipMemset3DAsync && return Ptr{var"##Ctag#728"}(x + 0) + f === :hipMemsetAsync && return Ptr{var"##Ctag#729"}(x + 0) + f === :hipMemsetD16 && return Ptr{var"##Ctag#730"}(x + 0) + f === :hipMemsetD16Async && return Ptr{var"##Ctag#731"}(x + 0) + f === :hipMemsetD32 && return Ptr{var"##Ctag#732"}(x + 0) + f === :hipMemsetD32Async && return Ptr{var"##Ctag#733"}(x + 0) + f === :hipMemsetD8 && return Ptr{var"##Ctag#734"}(x + 0) + f === :hipMemsetD8Async && return Ptr{var"##Ctag#735"}(x + 0) + f === :hipMipmappedArrayCreate && return Ptr{var"##Ctag#736"}(x + 0) + f === :hipMipmappedArrayDestroy && return Ptr{var"##Ctag#737"}(x + 0) + f === :hipMipmappedArrayGetLevel && return Ptr{var"##Ctag#738"}(x + 0) + f === :hipModuleGetFunction && return Ptr{var"##Ctag#739"}(x + 0) + f === :hipModuleGetGlobal && return Ptr{var"##Ctag#740"}(x + 0) + f === :hipModuleGetTexRef && return Ptr{var"##Ctag#741"}(x + 0) + f === :hipModuleLaunchCooperativeKernel && return Ptr{var"##Ctag#742"}(x + 0) + f === :hipModuleLaunchCooperativeKernelMultiDevice && return Ptr{var"##Ctag#743"}(x + 0) + f === :hipModuleLaunchKernel && return Ptr{var"##Ctag#744"}(x + 0) + f === :hipModuleLoad && return Ptr{var"##Ctag#745"}(x + 0) + f === :hipModuleLoadData && return Ptr{var"##Ctag#746"}(x + 0) + f === :hipModuleLoadDataEx && return Ptr{var"##Ctag#747"}(x + 0) + f === :hipModuleOccupancyMaxActiveBlocksPerMultiprocessor && + return Ptr{var"##Ctag#748"}(x + 0) + f === :hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags && + return Ptr{var"##Ctag#749"}(x + 0) + f === :hipModuleOccupancyMaxPotentialBlockSize && return Ptr{var"##Ctag#750"}(x + 0) + f === :hipModuleOccupancyMaxPotentialBlockSizeWithFlags && + return Ptr{var"##Ctag#751"}(x + 0) + f === :hipModuleUnload && return Ptr{var"##Ctag#752"}(x + 0) + f === :hipOccupancyMaxActiveBlocksPerMultiprocessor && + return Ptr{var"##Ctag#753"}(x + 0) + f === :hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags && + return Ptr{var"##Ctag#754"}(x + 0) + f === :hipOccupancyMaxPotentialBlockSize && return Ptr{var"##Ctag#755"}(x + 0) + f === :hipPeekAtLastError && return Ptr{var"##Ctag#756"}(x + 0) + f === :hipPointerGetAttribute && return Ptr{var"##Ctag#757"}(x + 0) + f === :hipPointerGetAttributes && return Ptr{var"##Ctag#758"}(x + 0) + f === :hipPointerSetAttribute && return Ptr{var"##Ctag#759"}(x + 0) + f === :hipProfilerStart && return Ptr{var"##Ctag#760"}(x + 0) + f === :hipProfilerStop && return Ptr{var"##Ctag#761"}(x + 0) + f === :hipRuntimeGetVersion && return Ptr{var"##Ctag#762"}(x + 0) + f === :hipSetDevice && return Ptr{var"##Ctag#763"}(x + 0) + f === :hipSetDeviceFlags && return Ptr{var"##Ctag#764"}(x + 0) + f === :hipSetupArgument && return Ptr{var"##Ctag#765"}(x + 0) + f === :hipSignalExternalSemaphoresAsync && return Ptr{var"##Ctag#766"}(x + 0) + f === :hipStreamAddCallback && return Ptr{var"##Ctag#767"}(x + 0) + f === :hipStreamAttachMemAsync && return Ptr{var"##Ctag#768"}(x + 0) + f === :hipStreamBeginCapture && return Ptr{var"##Ctag#769"}(x + 0) + f === :hipStreamCreate && return Ptr{var"##Ctag#770"}(x + 0) + f === :hipStreamCreateWithFlags && return Ptr{var"##Ctag#771"}(x + 0) + f === :hipStreamCreateWithPriority && return Ptr{var"##Ctag#772"}(x + 0) + f === :hipStreamDestroy && return Ptr{var"##Ctag#773"}(x + 0) + f === :hipStreamEndCapture && return Ptr{var"##Ctag#774"}(x + 0) + f === :hipStreamGetCaptureInfo && return Ptr{var"##Ctag#775"}(x + 0) + f === :hipStreamGetCaptureInfo_v2 && return Ptr{var"##Ctag#776"}(x + 0) + f === :hipStreamGetDevice && return Ptr{var"##Ctag#777"}(x + 0) + f === :hipStreamGetFlags && return Ptr{var"##Ctag#778"}(x + 0) + f === :hipStreamGetPriority && return Ptr{var"##Ctag#779"}(x + 0) + f === :hipStreamIsCapturing && return Ptr{var"##Ctag#780"}(x + 0) + f === :hipStreamQuery && return Ptr{var"##Ctag#781"}(x + 0) + f === :hipStreamSynchronize && return Ptr{var"##Ctag#782"}(x + 0) + f === :hipStreamUpdateCaptureDependencies && return Ptr{var"##Ctag#783"}(x + 0) + f === :hipStreamWaitEvent && return Ptr{var"##Ctag#784"}(x + 0) + f === :hipStreamWaitValue32 && return Ptr{var"##Ctag#785"}(x + 0) + f === :hipStreamWaitValue64 && return Ptr{var"##Ctag#786"}(x + 0) + f === :hipStreamWriteValue32 && return Ptr{var"##Ctag#787"}(x + 0) + f === :hipStreamWriteValue64 && return Ptr{var"##Ctag#788"}(x + 0) + f === :hipTexObjectCreate && return Ptr{var"##Ctag#789"}(x + 0) + f === :hipTexObjectDestroy && return Ptr{var"##Ctag#790"}(x + 0) + f === :hipTexObjectGetResourceDesc && return Ptr{var"##Ctag#791"}(x + 0) + f === :hipTexObjectGetResourceViewDesc && return Ptr{var"##Ctag#792"}(x + 0) + f === :hipTexObjectGetTextureDesc && return Ptr{var"##Ctag#793"}(x + 0) + f === :hipTexRefGetAddress && return Ptr{var"##Ctag#794"}(x + 0) + f === :hipTexRefGetAddressMode && return Ptr{var"##Ctag#795"}(x + 0) + f === :hipTexRefGetFilterMode && return Ptr{var"##Ctag#796"}(x + 0) + f === :hipTexRefGetFlags && return Ptr{var"##Ctag#797"}(x + 0) + f === :hipTexRefGetFormat && return Ptr{var"##Ctag#798"}(x + 0) + f === :hipTexRefGetMaxAnisotropy && return Ptr{var"##Ctag#799"}(x + 0) + f === :hipTexRefGetMipMappedArray && return Ptr{var"##Ctag#800"}(x + 0) + f === :hipTexRefGetMipmapFilterMode && return Ptr{var"##Ctag#801"}(x + 0) + f === :hipTexRefGetMipmapLevelBias && return Ptr{var"##Ctag#802"}(x + 0) + f === :hipTexRefGetMipmapLevelClamp && return Ptr{var"##Ctag#803"}(x + 0) + f === :hipTexRefSetAddress && return Ptr{var"##Ctag#804"}(x + 0) + f === :hipTexRefSetAddress2D && return Ptr{var"##Ctag#805"}(x + 0) + f === :hipTexRefSetAddressMode && return Ptr{var"##Ctag#806"}(x + 0) + f === :hipTexRefSetArray && return Ptr{var"##Ctag#807"}(x + 0) + f === :hipTexRefSetBorderColor && return Ptr{var"##Ctag#808"}(x + 0) + f === :hipTexRefSetFilterMode && return Ptr{var"##Ctag#809"}(x + 0) + f === :hipTexRefSetFlags && return Ptr{var"##Ctag#810"}(x + 0) + f === :hipTexRefSetFormat && return Ptr{var"##Ctag#811"}(x + 0) + f === :hipTexRefSetMaxAnisotropy && return Ptr{var"##Ctag#812"}(x + 0) + f === :hipTexRefSetMipmapFilterMode && return Ptr{var"##Ctag#813"}(x + 0) + f === :hipTexRefSetMipmapLevelBias && return Ptr{var"##Ctag#814"}(x + 0) + f === :hipTexRefSetMipmapLevelClamp && return Ptr{var"##Ctag#815"}(x + 0) + f === :hipTexRefSetMipmappedArray && return Ptr{var"##Ctag#816"}(x + 0) + f === :hipThreadExchangeStreamCaptureMode && return Ptr{var"##Ctag#817"}(x + 0) + f === :hipUnbindTexture && return Ptr{var"##Ctag#818"}(x + 0) + f === :hipUserObjectCreate && return Ptr{var"##Ctag#819"}(x + 0) + f === :hipUserObjectRelease && return Ptr{var"##Ctag#820"}(x + 0) + f === :hipUserObjectRetain && return Ptr{var"##Ctag#821"}(x + 0) + f === :hipWaitExternalSemaphoresAsync && return Ptr{var"##Ctag#822"}(x + 0) + f === :hipCreateChannelDesc && return Ptr{var"##Ctag#823"}(x + 0) + f === :hipExtModuleLaunchKernel && return Ptr{var"##Ctag#824"}(x + 0) + f === :hipHccModuleLaunchKernel && return Ptr{var"##Ctag#825"}(x + 0) + f === :hipMemcpy_spt && return Ptr{var"##Ctag#826"}(x + 0) + f === :hipMemcpyToSymbol_spt && return Ptr{var"##Ctag#827"}(x + 0) + f === :hipMemcpyFromSymbol_spt && return Ptr{var"##Ctag#828"}(x + 0) + f === :hipMemcpy2D_spt && return Ptr{var"##Ctag#829"}(x + 0) + f === :hipMemcpy2DFromArray_spt && return Ptr{var"##Ctag#830"}(x + 0) + f === :hipMemcpy3D_spt && return Ptr{var"##Ctag#831"}(x + 0) + f === :hipMemset_spt && return Ptr{var"##Ctag#832"}(x + 0) + f === :hipMemsetAsync_spt && return Ptr{var"##Ctag#833"}(x + 0) + f === :hipMemset2D_spt && return Ptr{var"##Ctag#834"}(x + 0) + f === :hipMemset2DAsync_spt && return Ptr{var"##Ctag#835"}(x + 0) + f === :hipMemset3DAsync_spt && return Ptr{var"##Ctag#836"}(x + 0) + f === :hipMemset3D_spt && return Ptr{var"##Ctag#837"}(x + 0) + f === :hipMemcpyAsync_spt && return Ptr{var"##Ctag#838"}(x + 0) + f === :hipMemcpy3DAsync_spt && return Ptr{var"##Ctag#839"}(x + 0) + f === :hipMemcpy2DAsync_spt && return Ptr{var"##Ctag#840"}(x + 0) + f === :hipMemcpyFromSymbolAsync_spt && return Ptr{var"##Ctag#841"}(x + 0) + f === :hipMemcpyToSymbolAsync_spt && return Ptr{var"##Ctag#842"}(x + 0) + f === :hipMemcpyFromArray_spt && return Ptr{var"##Ctag#843"}(x + 0) + f === :hipMemcpy2DToArray_spt && return Ptr{var"##Ctag#844"}(x + 0) + f === :hipMemcpy2DFromArrayAsync_spt && return Ptr{var"##Ctag#845"}(x + 0) + f === :hipMemcpy2DToArrayAsync_spt && return Ptr{var"##Ctag#846"}(x + 0) + f === :hipStreamQuery_spt && return Ptr{var"##Ctag#847"}(x + 0) + f === :hipStreamSynchronize_spt && return Ptr{var"##Ctag#848"}(x + 0) + f === :hipStreamGetPriority_spt && return Ptr{var"##Ctag#849"}(x + 0) + f === :hipStreamWaitEvent_spt && return Ptr{var"##Ctag#850"}(x + 0) + f === :hipStreamGetFlags_spt && return Ptr{var"##Ctag#851"}(x + 0) + f === :hipStreamAddCallback_spt && return Ptr{var"##Ctag#852"}(x + 0) + f === :hipEventRecord_spt && return Ptr{var"##Ctag#853"}(x + 0) + f === :hipLaunchCooperativeKernel_spt && return Ptr{var"##Ctag#854"}(x + 0) + f === :hipLaunchKernel_spt && return Ptr{var"##Ctag#855"}(x + 0) + f === :hipGraphLaunch_spt && return Ptr{var"##Ctag#856"}(x + 0) + f === :hipStreamBeginCapture_spt && return Ptr{var"##Ctag#857"}(x + 0) + f === :hipStreamEndCapture_spt && return Ptr{var"##Ctag#858"}(x + 0) + f === :hipStreamIsCapturing_spt && return Ptr{var"##Ctag#859"}(x + 0) + f === :hipStreamGetCaptureInfo_spt && return Ptr{var"##Ctag#860"}(x + 0) + f === :hipStreamGetCaptureInfo_v2_spt && return Ptr{var"##Ctag#861"}(x + 0) + f === :hipLaunchHostFunc_spt && return Ptr{var"##Ctag#862"}(x + 0) + f === :hipGetStreamDeviceId && return Ptr{var"##Ctag#863"}(x + 0) + f === :hipDrvGraphAddMemsetNode && return Ptr{var"##Ctag#864"}(x + 0) + f === :hipGraphAddExternalSemaphoresWaitNode && return Ptr{var"##Ctag#865"}(x + 0) + f === :hipGraphAddExternalSemaphoresSignalNode && return Ptr{var"##Ctag#866"}(x + 0) + f === :hipGraphExternalSemaphoresSignalNodeSetParams && + return Ptr{var"##Ctag#867"}(x + 0) + f === :hipGraphExternalSemaphoresWaitNodeSetParams && return Ptr{var"##Ctag#868"}(x + 0) + f === :hipGraphExternalSemaphoresSignalNodeGetParams && + return Ptr{var"##Ctag#869"}(x + 0) + f === :hipGraphExternalSemaphoresWaitNodeGetParams && return Ptr{var"##Ctag#870"}(x + 0) + f === :hipGraphExecExternalSemaphoresSignalNodeSetParams && + return Ptr{var"##Ctag#871"}(x + 0) + f === :hipGraphExecExternalSemaphoresWaitNodeSetParams && + return Ptr{var"##Ctag#872"}(x + 0) + f === :hipGraphAddNode && return Ptr{var"##Ctag#873"}(x + 0) + f === :hipGraphInstantiateWithParams && return Ptr{var"##Ctag#874"}(x + 0) + f === :hipExtGetLastError && return Ptr{var"##Ctag#875"}(x + 0) + f === :hipTexRefGetBorderColor && return Ptr{var"##Ctag#876"}(x + 0) + f === :hipTexRefGetArray && return Ptr{var"##Ctag#877"}(x + 0) + f === :hipGetProcAddress && return Ptr{var"##Ctag#878"}(x + 0) + f === :hipStreamBeginCaptureToGraph && return Ptr{var"##Ctag#879"}(x + 0) + f === :hipGetFuncBySymbol && return Ptr{var"##Ctag#880"}(x + 0) + f === :hipSetValidDevices && return Ptr{var"##Ctag#881"}(x + 0) + f === :hipMemcpyAtoD && return Ptr{var"##Ctag#882"}(x + 0) + f === :hipMemcpyDtoA && return Ptr{var"##Ctag#883"}(x + 0) + f === :hipMemcpyAtoA && return Ptr{var"##Ctag#884"}(x + 0) + f === :hipMemcpyAtoHAsync && return Ptr{var"##Ctag#885"}(x + 0) + f === :hipMemcpyHtoAAsync && return Ptr{var"##Ctag#886"}(x + 0) + f === :hipMemcpy2DArrayToArray && return Ptr{var"##Ctag#887"}(x + 0) + f === :hipDrvGraphAddMemFreeNode && return Ptr{var"##Ctag#888"}(x + 0) + f === :hipDrvGraphExecMemcpyNodeSetParams && return Ptr{var"##Ctag#889"}(x + 0) + f === :hipDrvGraphExecMemsetNodeSetParams && return Ptr{var"##Ctag#890"}(x + 0) + f === :hipGraphExecGetFlags && return Ptr{var"##Ctag#891"}(x + 0) + f === :hipGraphNodeSetParams && return Ptr{var"##Ctag#892"}(x + 0) + f === :hipGraphExecNodeSetParams && return Ptr{var"##Ctag#893"}(x + 0) + f === :hipExternalMemoryGetMappedMipmappedArray && return Ptr{var"##Ctag#894"}(x + 0) + f === :hipDrvGraphMemcpyNodeGetParams && return Ptr{var"##Ctag#895"}(x + 0) + f === :hipDrvGraphMemcpyNodeSetParams && return Ptr{var"##Ctag#896"}(x + 0) + f === :hipExtHostAlloc && return Ptr{var"##Ctag#897"}(x + 0) + f === :hipDeviceGetTexture1DLinearMaxWidth && return Ptr{var"##Ctag#898"}(x + 0) + f === :hipStreamBatchMemOp && return Ptr{var"##Ctag#899"}(x + 0) + f === :hipGraphAddBatchMemOpNode && return Ptr{var"##Ctag#900"}(x + 0) + f === :hipGraphBatchMemOpNodeGetParams && return Ptr{var"##Ctag#901"}(x + 0) + f === :hipGraphBatchMemOpNodeSetParams && return Ptr{var"##Ctag#902"}(x + 0) + f === :hipGraphExecBatchMemOpNodeSetParams && return Ptr{var"##Ctag#903"}(x + 0) + f === :hipEventRecordWithFlags && return Ptr{var"##Ctag#904"}(x + 0) + f === :hipLinkAddData && return Ptr{var"##Ctag#905"}(x + 0) + f === :hipLinkAddFile && return Ptr{var"##Ctag#906"}(x + 0) + f === :hipLinkComplete && return Ptr{var"##Ctag#907"}(x + 0) + f === :hipLinkCreate && return Ptr{var"##Ctag#908"}(x + 0) + f === :hipLinkDestroy && return Ptr{var"##Ctag#909"}(x + 0) + f === :hipLaunchKernelExC && return Ptr{var"##Ctag#910"}(x + 0) + f === :hipDrvLaunchKernelEx && return Ptr{var"##Ctag#911"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_hip_api_args_t, f::Symbol) + r = Ref{rocprofiler_hip_api_args_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_hip_api_args_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_hip_api_args_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_hip_api_args_t, private::Bool=false) + return (:__hipPopCallConfiguration, :__hipPushCallConfiguration, + :__hipRegisterFatBinary, :__hipRegisterFunction, :__hipRegisterManagedVar, + :__hipRegisterSurface, :__hipRegisterTexture, :__hipRegisterVar, + :__hipUnregisterFatBinary, :hipApiName, :hipArray3DCreate, + :hipArray3DGetDescriptor, :hipArrayCreate, :hipArrayDestroy, + :hipArrayGetDescriptor, :hipArrayGetInfo, :hipBindTexture, :hipBindTexture2D, + :hipBindTextureToArray, :hipBindTextureToMipmappedArray, :hipChooseDeviceR0600, + :hipChooseDeviceR0000, :hipConfigureCall, :hipCreateSurfaceObject, + :hipCreateTextureObject, :hipCtxCreate, :hipCtxDestroy, + :hipCtxDisablePeerAccess, :hipCtxEnablePeerAccess, :hipCtxGetApiVersion, + :hipCtxGetCacheConfig, :hipCtxGetCurrent, :hipCtxGetDevice, :hipCtxGetFlags, + :hipCtxGetSharedMemConfig, :hipCtxPopCurrent, :hipCtxPushCurrent, + :hipCtxSetCacheConfig, :hipCtxSetCurrent, :hipCtxSetSharedMemConfig, + :hipCtxSynchronize, :hipDestroyExternalMemory, :hipDestroyExternalSemaphore, + :hipDestroySurfaceObject, :hipDestroyTextureObject, :hipDeviceCanAccessPeer, + :hipDeviceComputeCapability, :hipDeviceDisablePeerAccess, + :hipDeviceEnablePeerAccess, :hipDeviceGet, :hipDeviceGetAttribute, + :hipDeviceGetByPCIBusId, :hipDeviceGetCacheConfig, :hipDeviceGetDefaultMemPool, + :hipDeviceGetGraphMemAttribute, :hipDeviceGetLimit, :hipDeviceGetMemPool, + :hipDeviceGetName, :hipDeviceGetP2PAttribute, :hipDeviceGetPCIBusId, + :hipDeviceGetSharedMemConfig, :hipDeviceGetStreamPriorityRange, + :hipDeviceGetUuid, :hipDeviceGraphMemTrim, :hipDevicePrimaryCtxGetState, + :hipDevicePrimaryCtxRelease, :hipDevicePrimaryCtxReset, + :hipDevicePrimaryCtxRetain, :hipDevicePrimaryCtxSetFlags, :hipDeviceReset, + :hipDeviceSetCacheConfig, :hipDeviceSetGraphMemAttribute, :hipDeviceSetLimit, + :hipDeviceSetMemPool, :hipDeviceSetSharedMemConfig, :hipDeviceSynchronize, + :hipDeviceTotalMem, :hipDriverGetVersion, :hipDrvGetErrorName, + :hipDrvGetErrorString, :hipDrvGraphAddMemcpyNode, :hipDrvMemcpy2DUnaligned, + :hipDrvMemcpy3D, :hipDrvMemcpy3DAsync, :hipDrvPointerGetAttributes, + :hipEventCreate, :hipEventCreateWithFlags, :hipEventDestroy, + :hipEventElapsedTime, :hipEventQuery, :hipEventRecord, :hipEventSynchronize, + :hipExtGetLinkTypeAndHopCount, :hipExtLaunchKernel, + :hipExtLaunchMultiKernelMultiDevice, :hipExtMallocWithFlags, + :hipExtStreamCreateWithCUMask, :hipExtStreamGetCUMask, + :hipExternalMemoryGetMappedBuffer, :hipFree, :hipFreeArray, :hipFreeAsync, + :hipFreeHost, :hipFreeMipmappedArray, :hipFuncGetAttribute, + :hipFuncGetAttributes, :hipFuncSetAttribute, :hipFuncSetCacheConfig, + :hipFuncSetSharedMemConfig, :hipGLGetDevices, :hipGetChannelDesc, :hipGetDevice, + :hipGetDeviceCount, :hipGetDeviceFlags, :hipGetDevicePropertiesR0600, + :hipGetDevicePropertiesR0000, :hipGetErrorName, :hipGetErrorString, + :hipGetLastError, :hipGetMipmappedArrayLevel, :hipGetSymbolAddress, + :hipGetSymbolSize, :hipGetTextureAlignmentOffset, + :hipGetTextureObjectResourceDesc, :hipGetTextureObjectResourceViewDesc, + :hipGetTextureObjectTextureDesc, :hipGetTextureReference, + :hipGraphAddChildGraphNode, :hipGraphAddDependencies, :hipGraphAddEmptyNode, + :hipGraphAddEventRecordNode, :hipGraphAddEventWaitNode, :hipGraphAddHostNode, + :hipGraphAddKernelNode, :hipGraphAddMemAllocNode, :hipGraphAddMemFreeNode, + :hipGraphAddMemcpyNode, :hipGraphAddMemcpyNode1D, + :hipGraphAddMemcpyNodeFromSymbol, :hipGraphAddMemcpyNodeToSymbol, + :hipGraphAddMemsetNode, :hipGraphChildGraphNodeGetGraph, :hipGraphClone, + :hipGraphCreate, :hipGraphDebugDotPrint, :hipGraphDestroy, :hipGraphDestroyNode, + :hipGraphEventRecordNodeGetEvent, :hipGraphEventRecordNodeSetEvent, + :hipGraphEventWaitNodeGetEvent, :hipGraphEventWaitNodeSetEvent, + :hipGraphExecChildGraphNodeSetParams, :hipGraphExecDestroy, + :hipGraphExecEventRecordNodeSetEvent, :hipGraphExecEventWaitNodeSetEvent, + :hipGraphExecHostNodeSetParams, :hipGraphExecKernelNodeSetParams, + :hipGraphExecMemcpyNodeSetParams, :hipGraphExecMemcpyNodeSetParams1D, + :hipGraphExecMemcpyNodeSetParamsFromSymbol, + :hipGraphExecMemcpyNodeSetParamsToSymbol, :hipGraphExecMemsetNodeSetParams, + :hipGraphExecUpdate, :hipGraphGetEdges, :hipGraphGetNodes, + :hipGraphGetRootNodes, :hipGraphHostNodeGetParams, :hipGraphHostNodeSetParams, + :hipGraphInstantiate, :hipGraphInstantiateWithFlags, + :hipGraphKernelNodeCopyAttributes, :hipGraphKernelNodeGetAttribute, + :hipGraphKernelNodeGetParams, :hipGraphKernelNodeSetAttribute, + :hipGraphKernelNodeSetParams, :hipGraphLaunch, :hipGraphMemAllocNodeGetParams, + :hipGraphMemFreeNodeGetParams, :hipGraphMemcpyNodeGetParams, + :hipGraphMemcpyNodeSetParams, :hipGraphMemcpyNodeSetParams1D, + :hipGraphMemcpyNodeSetParamsFromSymbol, :hipGraphMemcpyNodeSetParamsToSymbol, + :hipGraphMemsetNodeGetParams, :hipGraphMemsetNodeSetParams, + :hipGraphNodeFindInClone, :hipGraphNodeGetDependencies, + :hipGraphNodeGetDependentNodes, :hipGraphNodeGetEnabled, :hipGraphNodeGetType, + :hipGraphNodeSetEnabled, :hipGraphReleaseUserObject, + :hipGraphRemoveDependencies, :hipGraphRetainUserObject, :hipGraphUpload, + :hipGraphicsGLRegisterBuffer, :hipGraphicsGLRegisterImage, + :hipGraphicsMapResources, :hipGraphicsResourceGetMappedPointer, + :hipGraphicsSubResourceGetMappedArray, :hipGraphicsUnmapResources, + :hipGraphicsUnregisterResource, :hipHostAlloc, :hipHostFree, + :hipHostGetDevicePointer, :hipHostGetFlags, :hipHostMalloc, :hipHostRegister, + :hipHostUnregister, :hipImportExternalMemory, :hipImportExternalSemaphore, + :hipInit, :hipIpcCloseMemHandle, :hipIpcGetEventHandle, :hipIpcGetMemHandle, + :hipIpcOpenEventHandle, :hipIpcOpenMemHandle, :hipKernelNameRef, + :hipKernelNameRefByPtr, :hipLaunchByPtr, :hipLaunchCooperativeKernel, + :hipLaunchCooperativeKernelMultiDevice, :hipLaunchHostFunc, :hipLaunchKernel, + :hipMalloc, :hipMalloc3D, :hipMalloc3DArray, :hipMallocArray, :hipMallocAsync, + :hipMallocFromPoolAsync, :hipMallocHost, :hipMallocManaged, + :hipMallocMipmappedArray, :hipMallocPitch, :hipMemAddressFree, + :hipMemAddressReserve, :hipMemAdvise, :hipMemAllocHost, :hipMemAllocPitch, + :hipMemCreate, :hipMemExportToShareableHandle, :hipMemGetAccess, + :hipMemGetAddressRange, :hipMemGetAllocationGranularity, + :hipMemGetAllocationPropertiesFromHandle, :hipMemGetInfo, + :hipMemImportFromShareableHandle, :hipMemMap, :hipMemMapArrayAsync, + :hipMemPoolCreate, :hipMemPoolDestroy, :hipMemPoolExportPointer, + :hipMemPoolExportToShareableHandle, :hipMemPoolGetAccess, + :hipMemPoolGetAttribute, :hipMemPoolImportFromShareableHandle, + :hipMemPoolImportPointer, :hipMemPoolSetAccess, :hipMemPoolSetAttribute, + :hipMemPoolTrimTo, :hipMemPrefetchAsync, :hipMemPtrGetInfo, + :hipMemRangeGetAttribute, :hipMemRangeGetAttributes, :hipMemRelease, + :hipMemRetainAllocationHandle, :hipMemSetAccess, :hipMemUnmap, :hipMemcpy, + :hipMemcpy2D, :hipMemcpy2DAsync, :hipMemcpy2DFromArray, + :hipMemcpy2DFromArrayAsync, :hipMemcpy2DToArray, :hipMemcpy2DToArrayAsync, + :hipMemcpy3D, :hipMemcpy3DAsync, :hipMemcpyAsync, :hipMemcpyAtoH, + :hipMemcpyDtoD, :hipMemcpyDtoDAsync, :hipMemcpyDtoH, :hipMemcpyDtoHAsync, + :hipMemcpyFromArray, :hipMemcpyFromSymbol, :hipMemcpyFromSymbolAsync, + :hipMemcpyHtoA, :hipMemcpyHtoD, :hipMemcpyHtoDAsync, :hipMemcpyParam2D, + :hipMemcpyParam2DAsync, :hipMemcpyPeer, :hipMemcpyPeerAsync, :hipMemcpyToArray, + :hipMemcpyToSymbol, :hipMemcpyToSymbolAsync, :hipMemcpyWithStream, :hipMemset, + :hipMemset2D, :hipMemset2DAsync, :hipMemset3D, :hipMemset3DAsync, + :hipMemsetAsync, :hipMemsetD16, :hipMemsetD16Async, :hipMemsetD32, + :hipMemsetD32Async, :hipMemsetD8, :hipMemsetD8Async, :hipMipmappedArrayCreate, + :hipMipmappedArrayDestroy, :hipMipmappedArrayGetLevel, :hipModuleGetFunction, + :hipModuleGetGlobal, :hipModuleGetTexRef, :hipModuleLaunchCooperativeKernel, + :hipModuleLaunchCooperativeKernelMultiDevice, :hipModuleLaunchKernel, + :hipModuleLoad, :hipModuleLoadData, :hipModuleLoadDataEx, + :hipModuleOccupancyMaxActiveBlocksPerMultiprocessor, + :hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags, + :hipModuleOccupancyMaxPotentialBlockSize, + :hipModuleOccupancyMaxPotentialBlockSizeWithFlags, :hipModuleUnload, + :hipOccupancyMaxActiveBlocksPerMultiprocessor, + :hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags, + :hipOccupancyMaxPotentialBlockSize, :hipPeekAtLastError, + :hipPointerGetAttribute, :hipPointerGetAttributes, :hipPointerSetAttribute, + :hipProfilerStart, :hipProfilerStop, :hipRuntimeGetVersion, :hipSetDevice, + :hipSetDeviceFlags, :hipSetupArgument, :hipSignalExternalSemaphoresAsync, + :hipStreamAddCallback, :hipStreamAttachMemAsync, :hipStreamBeginCapture, + :hipStreamCreate, :hipStreamCreateWithFlags, :hipStreamCreateWithPriority, + :hipStreamDestroy, :hipStreamEndCapture, :hipStreamGetCaptureInfo, + :hipStreamGetCaptureInfo_v2, :hipStreamGetDevice, :hipStreamGetFlags, + :hipStreamGetPriority, :hipStreamIsCapturing, :hipStreamQuery, + :hipStreamSynchronize, :hipStreamUpdateCaptureDependencies, :hipStreamWaitEvent, + :hipStreamWaitValue32, :hipStreamWaitValue64, :hipStreamWriteValue32, + :hipStreamWriteValue64, :hipTexObjectCreate, :hipTexObjectDestroy, + :hipTexObjectGetResourceDesc, :hipTexObjectGetResourceViewDesc, + :hipTexObjectGetTextureDesc, :hipTexRefGetAddress, :hipTexRefGetAddressMode, + :hipTexRefGetFilterMode, :hipTexRefGetFlags, :hipTexRefGetFormat, + :hipTexRefGetMaxAnisotropy, :hipTexRefGetMipMappedArray, + :hipTexRefGetMipmapFilterMode, :hipTexRefGetMipmapLevelBias, + :hipTexRefGetMipmapLevelClamp, :hipTexRefSetAddress, :hipTexRefSetAddress2D, + :hipTexRefSetAddressMode, :hipTexRefSetArray, :hipTexRefSetBorderColor, + :hipTexRefSetFilterMode, :hipTexRefSetFlags, :hipTexRefSetFormat, + :hipTexRefSetMaxAnisotropy, :hipTexRefSetMipmapFilterMode, + :hipTexRefSetMipmapLevelBias, :hipTexRefSetMipmapLevelClamp, + :hipTexRefSetMipmappedArray, :hipThreadExchangeStreamCaptureMode, + :hipUnbindTexture, :hipUserObjectCreate, :hipUserObjectRelease, + :hipUserObjectRetain, :hipWaitExternalSemaphoresAsync, :hipCreateChannelDesc, + :hipExtModuleLaunchKernel, :hipHccModuleLaunchKernel, :hipMemcpy_spt, + :hipMemcpyToSymbol_spt, :hipMemcpyFromSymbol_spt, :hipMemcpy2D_spt, + :hipMemcpy2DFromArray_spt, :hipMemcpy3D_spt, :hipMemset_spt, + :hipMemsetAsync_spt, :hipMemset2D_spt, :hipMemset2DAsync_spt, + :hipMemset3DAsync_spt, :hipMemset3D_spt, :hipMemcpyAsync_spt, + :hipMemcpy3DAsync_spt, :hipMemcpy2DAsync_spt, :hipMemcpyFromSymbolAsync_spt, + :hipMemcpyToSymbolAsync_spt, :hipMemcpyFromArray_spt, :hipMemcpy2DToArray_spt, + :hipMemcpy2DFromArrayAsync_spt, :hipMemcpy2DToArrayAsync_spt, + :hipStreamQuery_spt, :hipStreamSynchronize_spt, :hipStreamGetPriority_spt, + :hipStreamWaitEvent_spt, :hipStreamGetFlags_spt, :hipStreamAddCallback_spt, + :hipEventRecord_spt, :hipLaunchCooperativeKernel_spt, :hipLaunchKernel_spt, + :hipGraphLaunch_spt, :hipStreamBeginCapture_spt, :hipStreamEndCapture_spt, + :hipStreamIsCapturing_spt, :hipStreamGetCaptureInfo_spt, + :hipStreamGetCaptureInfo_v2_spt, :hipLaunchHostFunc_spt, :hipGetStreamDeviceId, + :hipDrvGraphAddMemsetNode, :hipGraphAddExternalSemaphoresWaitNode, + :hipGraphAddExternalSemaphoresSignalNode, + :hipGraphExternalSemaphoresSignalNodeSetParams, + :hipGraphExternalSemaphoresWaitNodeSetParams, + :hipGraphExternalSemaphoresSignalNodeGetParams, + :hipGraphExternalSemaphoresWaitNodeGetParams, + :hipGraphExecExternalSemaphoresSignalNodeSetParams, + :hipGraphExecExternalSemaphoresWaitNodeSetParams, :hipGraphAddNode, + :hipGraphInstantiateWithParams, :hipExtGetLastError, :hipTexRefGetBorderColor, + :hipTexRefGetArray, :hipGetProcAddress, :hipStreamBeginCaptureToGraph, + :hipGetFuncBySymbol, :hipSetValidDevices, :hipMemcpyAtoD, :hipMemcpyDtoA, + :hipMemcpyAtoA, :hipMemcpyAtoHAsync, :hipMemcpyHtoAAsync, + :hipMemcpy2DArrayToArray, :hipDrvGraphAddMemFreeNode, + :hipDrvGraphExecMemcpyNodeSetParams, :hipDrvGraphExecMemsetNodeSetParams, + :hipGraphExecGetFlags, :hipGraphNodeSetParams, :hipGraphExecNodeSetParams, + :hipExternalMemoryGetMappedMipmappedArray, :hipDrvGraphMemcpyNodeGetParams, + :hipDrvGraphMemcpyNodeSetParams, :hipExtHostAlloc, + :hipDeviceGetTexture1DLinearMaxWidth, :hipStreamBatchMemOp, + :hipGraphAddBatchMemOpNode, :hipGraphBatchMemOpNodeGetParams, + :hipGraphBatchMemOpNodeSetParams, :hipGraphExecBatchMemOpNodeSetParams, + :hipEventRecordWithFlags, :hipLinkAddData, :hipLinkAddFile, :hipLinkComplete, + :hipLinkCreate, :hipLinkDestroy, :hipLaunchKernelExC, :hipDrvLaunchKernelEx, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hsa_status_t::UInt32 begin + HSA_STATUS_SUCCESS = 0 + HSA_STATUS_INFO_BREAK = 1 + HSA_STATUS_ERROR = 4096 + HSA_STATUS_ERROR_INVALID_ARGUMENT = 4097 + HSA_STATUS_ERROR_INVALID_QUEUE_CREATION = 4098 + HSA_STATUS_ERROR_INVALID_ALLOCATION = 4099 + HSA_STATUS_ERROR_INVALID_AGENT = 4100 + HSA_STATUS_ERROR_INVALID_REGION = 4101 + HSA_STATUS_ERROR_INVALID_SIGNAL = 4102 + HSA_STATUS_ERROR_INVALID_QUEUE = 4103 + HSA_STATUS_ERROR_OUT_OF_RESOURCES = 4104 + HSA_STATUS_ERROR_INVALID_PACKET_FORMAT = 4105 + HSA_STATUS_ERROR_RESOURCE_FREE = 4106 + HSA_STATUS_ERROR_NOT_INITIALIZED = 4107 + HSA_STATUS_ERROR_REFCOUNT_OVERFLOW = 4108 + HSA_STATUS_ERROR_INCOMPATIBLE_ARGUMENTS = 4109 + HSA_STATUS_ERROR_INVALID_INDEX = 4110 + HSA_STATUS_ERROR_INVALID_ISA = 4111 + HSA_STATUS_ERROR_INVALID_ISA_NAME = 4119 + HSA_STATUS_ERROR_INVALID_CODE_OBJECT = 4112 + HSA_STATUS_ERROR_INVALID_EXECUTABLE = 4113 + HSA_STATUS_ERROR_FROZEN_EXECUTABLE = 4114 + HSA_STATUS_ERROR_INVALID_SYMBOL_NAME = 4115 + HSA_STATUS_ERROR_VARIABLE_ALREADY_DEFINED = 4116 + HSA_STATUS_ERROR_VARIABLE_UNDEFINED = 4117 + HSA_STATUS_ERROR_EXCEPTION = 4118 + HSA_STATUS_ERROR_INVALID_CODE_SYMBOL = 4120 + HSA_STATUS_ERROR_INVALID_EXECUTABLE_SYMBOL = 4121 + HSA_STATUS_ERROR_INVALID_FILE = 4128 + HSA_STATUS_ERROR_INVALID_CODE_OBJECT_READER = 4129 + HSA_STATUS_ERROR_INVALID_CACHE = 4130 + HSA_STATUS_ERROR_INVALID_WAVEFRONT = 4131 + HSA_STATUS_ERROR_INVALID_SIGNAL_GROUP = 4132 + HSA_STATUS_ERROR_INVALID_RUNTIME_STATE = 4133 + HSA_STATUS_ERROR_FATAL = 4134 +end + +function hsa_status_string(status, status_string) + @ccall librocprofiler_sdk_tool.hsa_status_string(status::hsa_status_t, + status_string::Ptr{Ptr{Cchar}})::hsa_status_t +end + +struct hsa_dim3_s + x::UInt32 + y::UInt32 + z::UInt32 +end + +const hsa_dim3_t = hsa_dim3_s + +@cenum hsa_access_permission_t::UInt32 begin + HSA_ACCESS_PERMISSION_NONE = 0 + HSA_ACCESS_PERMISSION_RO = 1 + HSA_ACCESS_PERMISSION_WO = 2 + HSA_ACCESS_PERMISSION_RW = 3 +end + +const hsa_file_t = Cint + +# no prototype is found for this function at hsa.h:367:22, please use with caution +function hsa_init() + @ccall librocprofiler_sdk_tool.hsa_init()::hsa_status_t +end + +# no prototype is found for this function at hsa.h:389:22, please use with caution +function hsa_shut_down() + @ccall librocprofiler_sdk_tool.hsa_shut_down()::hsa_status_t +end + +@cenum hsa_endianness_t::UInt32 begin + HSA_ENDIANNESS_LITTLE = 0 + HSA_ENDIANNESS_BIG = 1 +end + +@cenum hsa_machine_model_t::UInt32 begin + HSA_MACHINE_MODEL_SMALL = 0 + HSA_MACHINE_MODEL_LARGE = 1 +end + +@cenum hsa_profile_t::UInt32 begin + HSA_PROFILE_BASE = 0 + HSA_PROFILE_FULL = 1 +end + +@cenum hsa_system_info_t::UInt32 begin + HSA_SYSTEM_INFO_VERSION_MAJOR = 0 + HSA_SYSTEM_INFO_VERSION_MINOR = 1 + HSA_SYSTEM_INFO_TIMESTAMP = 2 + HSA_SYSTEM_INFO_TIMESTAMP_FREQUENCY = 3 + HSA_SYSTEM_INFO_SIGNAL_MAX_WAIT = 4 + HSA_SYSTEM_INFO_ENDIANNESS = 5 + HSA_SYSTEM_INFO_MACHINE_MODEL = 6 + HSA_SYSTEM_INFO_EXTENSIONS = 7 + HSA_AMD_SYSTEM_INFO_BUILD_VERSION = 512 + HSA_AMD_SYSTEM_INFO_SVM_SUPPORTED = 513 + HSA_AMD_SYSTEM_INFO_SVM_ACCESSIBLE_BY_DEFAULT = 514 + HSA_AMD_SYSTEM_INFO_MWAITX_ENABLED = 515 + HSA_AMD_SYSTEM_INFO_DMABUF_SUPPORTED = 516 + HSA_AMD_SYSTEM_INFO_VIRTUAL_MEM_API_SUPPORTED = 517 + HSA_AMD_SYSTEM_INFO_XNACK_ENABLED = 518 + HSA_AMD_SYSTEM_INFO_EXT_VERSION_MAJOR = 519 + HSA_AMD_SYSTEM_INFO_EXT_VERSION_MINOR = 520 +end + +function hsa_system_get_info(attribute, value) + @ccall librocprofiler_sdk_tool.hsa_system_get_info(attribute::hsa_system_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +@cenum hsa_extension_t::UInt32 begin + HSA_EXTENSION_FINALIZER = 0 + HSA_EXTENSION_IMAGES = 1 + HSA_EXTENSION_PERFORMANCE_COUNTERS = 2 + HSA_EXTENSION_PROFILING_EVENTS = 3 + HSA_EXTENSION_STD_LAST = 3 + HSA_AMD_FIRST_EXTENSION = 512 + HSA_EXTENSION_AMD_PROFILER = 512 + HSA_EXTENSION_AMD_LOADER = 513 + HSA_EXTENSION_AMD_AQLPROFILE = 514 + HSA_EXTENSION_AMD_PC_SAMPLING = 515 + HSA_AMD_LAST_EXTENSION = 515 +end + +function hsa_extension_get_name(extension, name) + @ccall librocprofiler_sdk_tool.hsa_extension_get_name(extension::UInt16, + name::Ptr{Ptr{Cchar}})::hsa_status_t +end + +function hsa_system_extension_supported(extension, version_major, version_minor, result) + @ccall librocprofiler_sdk_tool.hsa_system_extension_supported(extension::UInt16, + version_major::UInt16, + version_minor::UInt16, + result::Ptr{Bool})::hsa_status_t +end + +function hsa_system_major_extension_supported(extension, version_major, version_minor, + result) + @ccall librocprofiler_sdk_tool.hsa_system_major_extension_supported(extension::UInt16, + version_major::UInt16, + version_minor::Ptr{UInt16}, + result::Ptr{Bool})::hsa_status_t +end + +function hsa_system_get_extension_table(extension, version_major, version_minor, table) + @ccall librocprofiler_sdk_tool.hsa_system_get_extension_table(extension::UInt16, + version_major::UInt16, + version_minor::UInt16, + table::Ptr{Cvoid})::hsa_status_t +end + +function hsa_system_get_major_extension_table(extension, version_major, table_length, table) + @ccall librocprofiler_sdk_tool.hsa_system_get_major_extension_table(extension::UInt16, + version_major::UInt16, + table_length::Csize_t, + table::Ptr{Cvoid})::hsa_status_t +end + +struct hsa_agent_s + handle::UInt64 +end + +const hsa_agent_t = hsa_agent_s + +@cenum hsa_agent_feature_t::UInt32 begin + HSA_AGENT_FEATURE_KERNEL_DISPATCH = 1 + HSA_AGENT_FEATURE_AGENT_DISPATCH = 2 +end + +@cenum hsa_device_type_t::UInt32 begin + HSA_DEVICE_TYPE_CPU = 0 + HSA_DEVICE_TYPE_GPU = 1 + HSA_DEVICE_TYPE_DSP = 2 + HSA_DEVICE_TYPE_AIE = 3 +end + +@cenum hsa_default_float_rounding_mode_t::UInt32 begin + HSA_DEFAULT_FLOAT_ROUNDING_MODE_DEFAULT = 0 + HSA_DEFAULT_FLOAT_ROUNDING_MODE_ZERO = 1 + HSA_DEFAULT_FLOAT_ROUNDING_MODE_NEAR = 2 +end + +@cenum hsa_agent_info_t::UInt32 begin + HSA_AGENT_INFO_NAME = 0 + HSA_AGENT_INFO_VENDOR_NAME = 1 + HSA_AGENT_INFO_FEATURE = 2 + HSA_AGENT_INFO_MACHINE_MODEL = 3 + HSA_AGENT_INFO_PROFILE = 4 + HSA_AGENT_INFO_DEFAULT_FLOAT_ROUNDING_MODE = 5 + HSA_AGENT_INFO_BASE_PROFILE_DEFAULT_FLOAT_ROUNDING_MODES = 23 + HSA_AGENT_INFO_FAST_F16_OPERATION = 24 + HSA_AGENT_INFO_WAVEFRONT_SIZE = 6 + HSA_AGENT_INFO_WORKGROUP_MAX_DIM = 7 + HSA_AGENT_INFO_WORKGROUP_MAX_SIZE = 8 + HSA_AGENT_INFO_GRID_MAX_DIM = 9 + HSA_AGENT_INFO_GRID_MAX_SIZE = 10 + HSA_AGENT_INFO_FBARRIER_MAX_SIZE = 11 + HSA_AGENT_INFO_QUEUES_MAX = 12 + HSA_AGENT_INFO_QUEUE_MIN_SIZE = 13 + HSA_AGENT_INFO_QUEUE_MAX_SIZE = 14 + HSA_AGENT_INFO_QUEUE_TYPE = 15 + HSA_AGENT_INFO_NODE = 16 + HSA_AGENT_INFO_DEVICE = 17 + HSA_AGENT_INFO_CACHE_SIZE = 18 + HSA_AGENT_INFO_ISA = 19 + HSA_AGENT_INFO_EXTENSIONS = 20 + HSA_AGENT_INFO_VERSION_MAJOR = 21 + HSA_AGENT_INFO_VERSION_MINOR = 22 + HSA_AGENT_INFO_LAST = 2147483647 +end + +function hsa_agent_get_info(agent, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_agent_get_info(agent::hsa_agent_t, + attribute::hsa_agent_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_iterate_agents(callback, data) + @ccall librocprofiler_sdk_tool.hsa_iterate_agents(callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +@cenum hsa_exception_policy_t::UInt32 begin + HSA_EXCEPTION_POLICY_BREAK = 1 + HSA_EXCEPTION_POLICY_DETECT = 2 +end + +function hsa_agent_get_exception_policies(agent, profile, mask) + @ccall librocprofiler_sdk_tool.hsa_agent_get_exception_policies(agent::hsa_agent_t, + profile::hsa_profile_t, + mask::Ptr{UInt16})::hsa_status_t +end + +struct hsa_cache_s + handle::UInt64 +end + +const hsa_cache_t = hsa_cache_s + +@cenum hsa_cache_info_t::UInt32 begin + HSA_CACHE_INFO_NAME_LENGTH = 0 + HSA_CACHE_INFO_NAME = 1 + HSA_CACHE_INFO_LEVEL = 2 + HSA_CACHE_INFO_SIZE = 3 +end + +function hsa_cache_get_info(cache, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_cache_get_info(cache::hsa_cache_t, + attribute::hsa_cache_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_agent_iterate_caches(agent, callback, data) + @ccall librocprofiler_sdk_tool.hsa_agent_iterate_caches(agent::hsa_agent_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +function hsa_agent_extension_supported(extension, agent, version_major, version_minor, + result) + @ccall librocprofiler_sdk_tool.hsa_agent_extension_supported(extension::UInt16, + agent::hsa_agent_t, + version_major::UInt16, + version_minor::UInt16, + result::Ptr{Bool})::hsa_status_t +end + +function hsa_agent_major_extension_supported(extension, agent, version_major, version_minor, + result) + @ccall librocprofiler_sdk_tool.hsa_agent_major_extension_supported(extension::UInt16, + agent::hsa_agent_t, + version_major::UInt16, + version_minor::Ptr{UInt16}, + result::Ptr{Bool})::hsa_status_t +end + +struct hsa_signal_s + handle::UInt64 +end + +const hsa_signal_t = hsa_signal_s + +const hsa_signal_value_t = Int64 + +function hsa_signal_create(initial_value, num_consumers, consumers, signal) + @ccall librocprofiler_sdk_tool.hsa_signal_create(initial_value::hsa_signal_value_t, + num_consumers::UInt32, + consumers::Ptr{hsa_agent_t}, + signal::Ptr{hsa_signal_t})::hsa_status_t +end + +function hsa_signal_destroy(signal) + @ccall librocprofiler_sdk_tool.hsa_signal_destroy(signal::hsa_signal_t)::hsa_status_t +end + +function hsa_signal_load_scacquire(signal) + @ccall librocprofiler_sdk_tool.hsa_signal_load_scacquire(signal::hsa_signal_t)::hsa_signal_value_t +end + +function hsa_signal_load_relaxed(signal) + @ccall librocprofiler_sdk_tool.hsa_signal_load_relaxed(signal::hsa_signal_t)::hsa_signal_value_t +end + +function hsa_signal_load_acquire(signal) + @ccall librocprofiler_sdk_tool.hsa_signal_load_acquire(signal::hsa_signal_t)::hsa_signal_value_t +end + +function hsa_signal_store_relaxed(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_store_relaxed(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_store_screlease(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_store_screlease(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_store_release(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_store_release(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_silent_store_relaxed(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_silent_store_relaxed(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_silent_store_screlease(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_silent_store_screlease(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_exchange_scacq_screl(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_exchange_scacq_screl(signal::hsa_signal_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_exchange_acq_rel(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_exchange_acq_rel(signal::hsa_signal_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_exchange_scacquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_exchange_scacquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_exchange_acquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_exchange_acquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_exchange_relaxed(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_exchange_relaxed(signal::hsa_signal_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_exchange_screlease(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_exchange_screlease(signal::hsa_signal_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_exchange_release(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_exchange_release(signal::hsa_signal_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_cas_scacq_screl(signal, expected, value) + @ccall librocprofiler_sdk_tool.hsa_signal_cas_scacq_screl(signal::hsa_signal_t, + expected::hsa_signal_value_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_cas_acq_rel(signal, expected, value) + @ccall librocprofiler_sdk_tool.hsa_signal_cas_acq_rel(signal::hsa_signal_t, + expected::hsa_signal_value_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_cas_scacquire(signal, expected, value) + @ccall librocprofiler_sdk_tool.hsa_signal_cas_scacquire(signal::hsa_signal_t, + expected::hsa_signal_value_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_cas_acquire(signal, expected, value) + @ccall librocprofiler_sdk_tool.hsa_signal_cas_acquire(signal::hsa_signal_t, + expected::hsa_signal_value_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_cas_relaxed(signal, expected, value) + @ccall librocprofiler_sdk_tool.hsa_signal_cas_relaxed(signal::hsa_signal_t, + expected::hsa_signal_value_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_cas_screlease(signal, expected, value) + @ccall librocprofiler_sdk_tool.hsa_signal_cas_screlease(signal::hsa_signal_t, + expected::hsa_signal_value_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_cas_release(signal, expected, value) + @ccall librocprofiler_sdk_tool.hsa_signal_cas_release(signal::hsa_signal_t, + expected::hsa_signal_value_t, + value::hsa_signal_value_t)::hsa_signal_value_t +end + +function hsa_signal_add_scacq_screl(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_add_scacq_screl(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_add_acq_rel(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_add_acq_rel(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_add_scacquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_add_scacquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_add_acquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_add_acquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_add_relaxed(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_add_relaxed(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_add_screlease(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_add_screlease(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_add_release(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_add_release(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_subtract_scacq_screl(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_subtract_scacq_screl(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_subtract_acq_rel(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_subtract_acq_rel(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_subtract_scacquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_subtract_scacquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_subtract_acquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_subtract_acquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_subtract_relaxed(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_subtract_relaxed(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_subtract_screlease(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_subtract_screlease(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_subtract_release(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_subtract_release(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_and_scacq_screl(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_and_scacq_screl(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_and_acq_rel(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_and_acq_rel(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_and_scacquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_and_scacquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_and_acquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_and_acquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_and_relaxed(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_and_relaxed(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_and_screlease(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_and_screlease(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_and_release(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_and_release(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_or_scacq_screl(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_or_scacq_screl(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_or_acq_rel(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_or_acq_rel(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_or_scacquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_or_scacquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_or_acquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_or_acquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_or_relaxed(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_or_relaxed(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_or_screlease(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_or_screlease(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_or_release(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_or_release(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_xor_scacq_screl(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_xor_scacq_screl(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_xor_acq_rel(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_xor_acq_rel(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_xor_scacquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_xor_scacquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_xor_acquire(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_xor_acquire(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_xor_relaxed(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_xor_relaxed(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_xor_screlease(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_xor_screlease(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +function hsa_signal_xor_release(signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_xor_release(signal::hsa_signal_t, + value::hsa_signal_value_t)::Cvoid +end + +@cenum hsa_signal_condition_t::UInt32 begin + HSA_SIGNAL_CONDITION_EQ = 0 + HSA_SIGNAL_CONDITION_NE = 1 + HSA_SIGNAL_CONDITION_LT = 2 + HSA_SIGNAL_CONDITION_GTE = 3 +end + +@cenum hsa_wait_state_t::UInt32 begin + HSA_WAIT_STATE_BLOCKED = 0 + HSA_WAIT_STATE_ACTIVE = 1 +end + +function hsa_signal_wait_scacquire(signal, condition, compare_value, timeout_hint, + wait_state_hint) + @ccall librocprofiler_sdk_tool.hsa_signal_wait_scacquire(signal::hsa_signal_t, + condition::hsa_signal_condition_t, + compare_value::hsa_signal_value_t, + timeout_hint::UInt64, + wait_state_hint::hsa_wait_state_t)::hsa_signal_value_t +end + +function hsa_signal_wait_relaxed(signal, condition, compare_value, timeout_hint, + wait_state_hint) + @ccall librocprofiler_sdk_tool.hsa_signal_wait_relaxed(signal::hsa_signal_t, + condition::hsa_signal_condition_t, + compare_value::hsa_signal_value_t, + timeout_hint::UInt64, + wait_state_hint::hsa_wait_state_t)::hsa_signal_value_t +end + +function hsa_signal_wait_acquire(signal, condition, compare_value, timeout_hint, + wait_state_hint) + @ccall librocprofiler_sdk_tool.hsa_signal_wait_acquire(signal::hsa_signal_t, + condition::hsa_signal_condition_t, + compare_value::hsa_signal_value_t, + timeout_hint::UInt64, + wait_state_hint::hsa_wait_state_t)::hsa_signal_value_t +end + +struct hsa_signal_group_s + handle::UInt64 +end + +const hsa_signal_group_t = hsa_signal_group_s + +function hsa_signal_group_create(num_signals, signals, num_consumers, consumers, + signal_group) + @ccall librocprofiler_sdk_tool.hsa_signal_group_create(num_signals::UInt32, + signals::Ptr{hsa_signal_t}, + num_consumers::UInt32, + consumers::Ptr{hsa_agent_t}, + signal_group::Ptr{hsa_signal_group_t})::hsa_status_t +end + +function hsa_signal_group_destroy(signal_group) + @ccall librocprofiler_sdk_tool.hsa_signal_group_destroy(signal_group::hsa_signal_group_t)::hsa_status_t +end + +function hsa_signal_group_wait_any_scacquire(signal_group, conditions, compare_values, + wait_state_hint, signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_group_wait_any_scacquire(signal_group::hsa_signal_group_t, + conditions::Ptr{hsa_signal_condition_t}, + compare_values::Ptr{hsa_signal_value_t}, + wait_state_hint::hsa_wait_state_t, + signal::Ptr{hsa_signal_t}, + value::Ptr{hsa_signal_value_t})::hsa_status_t +end + +function hsa_signal_group_wait_any_relaxed(signal_group, conditions, compare_values, + wait_state_hint, signal, value) + @ccall librocprofiler_sdk_tool.hsa_signal_group_wait_any_relaxed(signal_group::hsa_signal_group_t, + conditions::Ptr{hsa_signal_condition_t}, + compare_values::Ptr{hsa_signal_value_t}, + wait_state_hint::hsa_wait_state_t, + signal::Ptr{hsa_signal_t}, + value::Ptr{hsa_signal_value_t})::hsa_status_t +end + +struct hsa_region_s + handle::UInt64 +end + +const hsa_region_t = hsa_region_s + +@cenum hsa_queue_type_t::UInt32 begin + HSA_QUEUE_TYPE_MULTI = 0 + HSA_QUEUE_TYPE_SINGLE = 1 + HSA_QUEUE_TYPE_COOPERATIVE = 2 +end + +const hsa_queue_type32_t = UInt32 + +@cenum hsa_queue_feature_t::UInt32 begin + HSA_QUEUE_FEATURE_KERNEL_DISPATCH = 1 + HSA_QUEUE_FEATURE_AGENT_DISPATCH = 2 +end + +struct hsa_queue_s + type::hsa_queue_type32_t + features::UInt32 + base_address::Ptr{Cvoid} + doorbell_signal::hsa_signal_t + size::UInt32 + reserved1::UInt32 + id::UInt64 +end + +const hsa_queue_t = hsa_queue_s + +function hsa_queue_create(agent, size, type, callback, data, private_segment_size, + group_segment_size, queue) + @ccall librocprofiler_sdk_tool.hsa_queue_create(agent::hsa_agent_t, size::UInt32, + type::hsa_queue_type32_t, + callback::Ptr{Cvoid}, data::Ptr{Cvoid}, + private_segment_size::UInt32, + group_segment_size::UInt32, + queue::Ptr{Ptr{hsa_queue_t}})::hsa_status_t +end + +function hsa_soft_queue_create(region, size, type, features, doorbell_signal, queue) + @ccall librocprofiler_sdk_tool.hsa_soft_queue_create(region::hsa_region_t, size::UInt32, + type::hsa_queue_type32_t, + features::UInt32, + doorbell_signal::hsa_signal_t, + queue::Ptr{Ptr{hsa_queue_t}})::hsa_status_t +end + +function hsa_queue_destroy(queue) + @ccall librocprofiler_sdk_tool.hsa_queue_destroy(queue::Ptr{hsa_queue_t})::hsa_status_t +end + +function hsa_queue_inactivate(queue) + @ccall librocprofiler_sdk_tool.hsa_queue_inactivate(queue::Ptr{hsa_queue_t})::hsa_status_t +end + +function hsa_queue_load_read_index_acquire(queue) + @ccall librocprofiler_sdk_tool.hsa_queue_load_read_index_acquire(queue::Ptr{hsa_queue_t})::UInt64 +end + +function hsa_queue_load_read_index_scacquire(queue) + @ccall librocprofiler_sdk_tool.hsa_queue_load_read_index_scacquire(queue::Ptr{hsa_queue_t})::UInt64 +end + +function hsa_queue_load_read_index_relaxed(queue) + @ccall librocprofiler_sdk_tool.hsa_queue_load_read_index_relaxed(queue::Ptr{hsa_queue_t})::UInt64 +end + +function hsa_queue_load_write_index_acquire(queue) + @ccall librocprofiler_sdk_tool.hsa_queue_load_write_index_acquire(queue::Ptr{hsa_queue_t})::UInt64 +end + +function hsa_queue_load_write_index_scacquire(queue) + @ccall librocprofiler_sdk_tool.hsa_queue_load_write_index_scacquire(queue::Ptr{hsa_queue_t})::UInt64 +end + +function hsa_queue_load_write_index_relaxed(queue) + @ccall librocprofiler_sdk_tool.hsa_queue_load_write_index_relaxed(queue::Ptr{hsa_queue_t})::UInt64 +end + +function hsa_queue_store_write_index_relaxed(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_store_write_index_relaxed(queue::Ptr{hsa_queue_t}, + value::UInt64)::Cvoid +end + +function hsa_queue_store_write_index_release(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_store_write_index_release(queue::Ptr{hsa_queue_t}, + value::UInt64)::Cvoid +end + +function hsa_queue_store_write_index_screlease(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_store_write_index_screlease(queue::Ptr{hsa_queue_t}, + value::UInt64)::Cvoid +end + +function hsa_queue_cas_write_index_acq_rel(queue, expected, value) + @ccall librocprofiler_sdk_tool.hsa_queue_cas_write_index_acq_rel(queue::Ptr{hsa_queue_t}, + expected::UInt64, + value::UInt64)::UInt64 +end + +function hsa_queue_cas_write_index_scacq_screl(queue, expected, value) + @ccall librocprofiler_sdk_tool.hsa_queue_cas_write_index_scacq_screl(queue::Ptr{hsa_queue_t}, + expected::UInt64, + value::UInt64)::UInt64 +end + +function hsa_queue_cas_write_index_acquire(queue, expected, value) + @ccall librocprofiler_sdk_tool.hsa_queue_cas_write_index_acquire(queue::Ptr{hsa_queue_t}, + expected::UInt64, + value::UInt64)::UInt64 +end + +function hsa_queue_cas_write_index_scacquire(queue, expected, value) + @ccall librocprofiler_sdk_tool.hsa_queue_cas_write_index_scacquire(queue::Ptr{hsa_queue_t}, + expected::UInt64, + value::UInt64)::UInt64 +end + +function hsa_queue_cas_write_index_relaxed(queue, expected, value) + @ccall librocprofiler_sdk_tool.hsa_queue_cas_write_index_relaxed(queue::Ptr{hsa_queue_t}, + expected::UInt64, + value::UInt64)::UInt64 +end + +function hsa_queue_cas_write_index_release(queue, expected, value) + @ccall librocprofiler_sdk_tool.hsa_queue_cas_write_index_release(queue::Ptr{hsa_queue_t}, + expected::UInt64, + value::UInt64)::UInt64 +end + +function hsa_queue_cas_write_index_screlease(queue, expected, value) + @ccall librocprofiler_sdk_tool.hsa_queue_cas_write_index_screlease(queue::Ptr{hsa_queue_t}, + expected::UInt64, + value::UInt64)::UInt64 +end + +function hsa_queue_add_write_index_acq_rel(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_add_write_index_acq_rel(queue::Ptr{hsa_queue_t}, + value::UInt64)::UInt64 +end + +function hsa_queue_add_write_index_scacq_screl(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_add_write_index_scacq_screl(queue::Ptr{hsa_queue_t}, + value::UInt64)::UInt64 +end + +function hsa_queue_add_write_index_acquire(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_add_write_index_acquire(queue::Ptr{hsa_queue_t}, + value::UInt64)::UInt64 +end + +function hsa_queue_add_write_index_scacquire(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_add_write_index_scacquire(queue::Ptr{hsa_queue_t}, + value::UInt64)::UInt64 +end + +function hsa_queue_add_write_index_relaxed(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_add_write_index_relaxed(queue::Ptr{hsa_queue_t}, + value::UInt64)::UInt64 +end + +function hsa_queue_add_write_index_release(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_add_write_index_release(queue::Ptr{hsa_queue_t}, + value::UInt64)::UInt64 +end + +function hsa_queue_add_write_index_screlease(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_add_write_index_screlease(queue::Ptr{hsa_queue_t}, + value::UInt64)::UInt64 +end + +function hsa_queue_store_read_index_relaxed(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_store_read_index_relaxed(queue::Ptr{hsa_queue_t}, + value::UInt64)::Cvoid +end + +function hsa_queue_store_read_index_release(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_store_read_index_release(queue::Ptr{hsa_queue_t}, + value::UInt64)::Cvoid +end + +function hsa_queue_store_read_index_screlease(queue, value) + @ccall librocprofiler_sdk_tool.hsa_queue_store_read_index_screlease(queue::Ptr{hsa_queue_t}, + value::UInt64)::Cvoid +end + +@cenum hsa_packet_type_t::UInt32 begin + HSA_PACKET_TYPE_VENDOR_SPECIFIC = 0 + HSA_PACKET_TYPE_INVALID = 1 + HSA_PACKET_TYPE_KERNEL_DISPATCH = 2 + HSA_PACKET_TYPE_BARRIER_AND = 3 + HSA_PACKET_TYPE_AGENT_DISPATCH = 4 + HSA_PACKET_TYPE_BARRIER_OR = 5 +end + +@cenum hsa_fence_scope_t::UInt32 begin + HSA_FENCE_SCOPE_NONE = 0 + HSA_FENCE_SCOPE_AGENT = 1 + HSA_FENCE_SCOPE_SYSTEM = 2 +end + +@cenum hsa_packet_header_t::UInt32 begin + HSA_PACKET_HEADER_TYPE = 0 + HSA_PACKET_HEADER_BARRIER = 8 + HSA_PACKET_HEADER_SCACQUIRE_FENCE_SCOPE = 9 + HSA_PACKET_HEADER_ACQUIRE_FENCE_SCOPE = 9 + HSA_PACKET_HEADER_SCRELEASE_FENCE_SCOPE = 11 + HSA_PACKET_HEADER_RELEASE_FENCE_SCOPE = 11 +end + +@cenum hsa_packet_header_width_t::UInt32 begin + HSA_PACKET_HEADER_WIDTH_TYPE = 8 + HSA_PACKET_HEADER_WIDTH_BARRIER = 1 + HSA_PACKET_HEADER_WIDTH_SCACQUIRE_FENCE_SCOPE = 2 + HSA_PACKET_HEADER_WIDTH_ACQUIRE_FENCE_SCOPE = 2 + HSA_PACKET_HEADER_WIDTH_SCRELEASE_FENCE_SCOPE = 2 + HSA_PACKET_HEADER_WIDTH_RELEASE_FENCE_SCOPE = 2 +end + +@cenum hsa_kernel_dispatch_packet_setup_t::UInt32 begin + HSA_KERNEL_DISPATCH_PACKET_SETUP_DIMENSIONS = 0 +end + +@cenum hsa_kernel_dispatch_packet_setup_width_t::UInt32 begin + HSA_KERNEL_DISPATCH_PACKET_SETUP_WIDTH_DIMENSIONS = 2 +end + +struct hsa_kernel_dispatch_packet_s + header::UInt16 + setup::UInt16 + workgroup_size_x::UInt16 + workgroup_size_y::UInt16 + workgroup_size_z::UInt16 + reserved0::UInt16 + grid_size_x::UInt32 + grid_size_y::UInt32 + grid_size_z::UInt32 + private_segment_size::UInt32 + group_segment_size::UInt32 + kernel_object::UInt64 + kernarg_address::Ptr{Cvoid} + reserved2::UInt64 + completion_signal::hsa_signal_t +end + +const hsa_kernel_dispatch_packet_t = hsa_kernel_dispatch_packet_s + +struct hsa_agent_dispatch_packet_s + header::UInt16 + type::UInt16 + reserved0::UInt32 + return_address::Ptr{Cvoid} + arg::NTuple{4,UInt64} + reserved2::UInt64 + completion_signal::hsa_signal_t +end + +const hsa_agent_dispatch_packet_t = hsa_agent_dispatch_packet_s + +struct hsa_barrier_and_packet_s + header::UInt16 + reserved0::UInt16 + reserved1::UInt32 + dep_signal::NTuple{5,hsa_signal_t} + reserved2::UInt64 + completion_signal::hsa_signal_t +end + +const hsa_barrier_and_packet_t = hsa_barrier_and_packet_s + +struct hsa_barrier_or_packet_s + header::UInt16 + reserved0::UInt16 + reserved1::UInt32 + dep_signal::NTuple{5,hsa_signal_t} + reserved2::UInt64 + completion_signal::hsa_signal_t +end + +const hsa_barrier_or_packet_t = hsa_barrier_or_packet_s + +@cenum hsa_region_segment_t::UInt32 begin + HSA_REGION_SEGMENT_GLOBAL = 0 + HSA_REGION_SEGMENT_READONLY = 1 + HSA_REGION_SEGMENT_PRIVATE = 2 + HSA_REGION_SEGMENT_GROUP = 3 + HSA_REGION_SEGMENT_KERNARG = 4 +end + +@cenum hsa_region_global_flag_t::UInt32 begin + HSA_REGION_GLOBAL_FLAG_KERNARG = 1 + HSA_REGION_GLOBAL_FLAG_FINE_GRAINED = 2 + HSA_REGION_GLOBAL_FLAG_COARSE_GRAINED = 4 + HSA_REGION_GLOBAL_FLAG_EXTENDED_SCOPE_FINE_GRAINED = 8 +end + +@cenum hsa_region_info_t::UInt32 begin + HSA_REGION_INFO_SEGMENT = 0 + HSA_REGION_INFO_GLOBAL_FLAGS = 1 + HSA_REGION_INFO_SIZE = 2 + HSA_REGION_INFO_ALLOC_MAX_SIZE = 4 + HSA_REGION_INFO_ALLOC_MAX_PRIVATE_WORKGROUP_SIZE = 8 + HSA_REGION_INFO_RUNTIME_ALLOC_ALLOWED = 5 + HSA_REGION_INFO_RUNTIME_ALLOC_GRANULE = 6 + HSA_REGION_INFO_RUNTIME_ALLOC_ALIGNMENT = 7 +end + +function hsa_region_get_info(region, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_region_get_info(region::hsa_region_t, + attribute::hsa_region_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_agent_iterate_regions(agent, callback, data) + @ccall librocprofiler_sdk_tool.hsa_agent_iterate_regions(agent::hsa_agent_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +function hsa_memory_allocate(region, size, ptr) + @ccall librocprofiler_sdk_tool.hsa_memory_allocate(region::hsa_region_t, size::Csize_t, + ptr::Ptr{Ptr{Cvoid}})::hsa_status_t +end + +function hsa_memory_free(ptr) + @ccall librocprofiler_sdk_tool.hsa_memory_free(ptr::Ptr{Cvoid})::hsa_status_t +end + +function hsa_memory_copy(dst, src, size) + @ccall librocprofiler_sdk_tool.hsa_memory_copy(dst::Ptr{Cvoid}, src::Ptr{Cvoid}, + size::Csize_t)::hsa_status_t +end + +function hsa_memory_assign_agent(ptr, agent, access) + @ccall librocprofiler_sdk_tool.hsa_memory_assign_agent(ptr::Ptr{Cvoid}, + agent::hsa_agent_t, + access::hsa_access_permission_t)::hsa_status_t +end + +function hsa_memory_register(ptr, size) + @ccall librocprofiler_sdk_tool.hsa_memory_register(ptr::Ptr{Cvoid}, + size::Csize_t)::hsa_status_t +end + +function hsa_memory_deregister(ptr, size) + @ccall librocprofiler_sdk_tool.hsa_memory_deregister(ptr::Ptr{Cvoid}, + size::Csize_t)::hsa_status_t +end + +struct hsa_isa_s + handle::UInt64 +end + +const hsa_isa_t = hsa_isa_s + +function hsa_isa_from_name(name, isa) + @ccall librocprofiler_sdk_tool.hsa_isa_from_name(name::Ptr{Cchar}, + isa::Ptr{hsa_isa_t})::hsa_status_t +end + +function hsa_agent_iterate_isas(agent, callback, data) + @ccall librocprofiler_sdk_tool.hsa_agent_iterate_isas(agent::hsa_agent_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +@cenum hsa_isa_info_t::UInt32 begin + HSA_ISA_INFO_NAME_LENGTH = 0 + HSA_ISA_INFO_NAME = 1 + HSA_ISA_INFO_CALL_CONVENTION_COUNT = 2 + HSA_ISA_INFO_CALL_CONVENTION_INFO_WAVEFRONT_SIZE = 3 + HSA_ISA_INFO_CALL_CONVENTION_INFO_WAVEFRONTS_PER_COMPUTE_UNIT = 4 + HSA_ISA_INFO_MACHINE_MODELS = 5 + HSA_ISA_INFO_PROFILES = 6 + HSA_ISA_INFO_DEFAULT_FLOAT_ROUNDING_MODES = 7 + HSA_ISA_INFO_BASE_PROFILE_DEFAULT_FLOAT_ROUNDING_MODES = 8 + HSA_ISA_INFO_FAST_F16_OPERATION = 9 + HSA_ISA_INFO_WORKGROUP_MAX_DIM = 12 + HSA_ISA_INFO_WORKGROUP_MAX_SIZE = 13 + HSA_ISA_INFO_GRID_MAX_DIM = 14 + HSA_ISA_INFO_GRID_MAX_SIZE = 16 + HSA_ISA_INFO_FBARRIER_MAX_SIZE = 17 +end + +function hsa_isa_get_info(isa, attribute, index, value) + @ccall librocprofiler_sdk_tool.hsa_isa_get_info(isa::hsa_isa_t, + attribute::hsa_isa_info_t, + index::UInt32, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_isa_get_info_alt(isa, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_isa_get_info_alt(isa::hsa_isa_t, + attribute::hsa_isa_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_isa_get_exception_policies(isa, profile, mask) + @ccall librocprofiler_sdk_tool.hsa_isa_get_exception_policies(isa::hsa_isa_t, + profile::hsa_profile_t, + mask::Ptr{UInt16})::hsa_status_t +end + +@cenum hsa_fp_type_t::UInt32 begin + HSA_FP_TYPE_16 = 1 + HSA_FP_TYPE_32 = 2 + HSA_FP_TYPE_64 = 4 +end + +@cenum hsa_flush_mode_t::UInt32 begin + HSA_FLUSH_MODE_FTZ = 1 + HSA_FLUSH_MODE_NON_FTZ = 2 +end + +@cenum hsa_round_method_t::UInt32 begin + HSA_ROUND_METHOD_SINGLE = 1 + HSA_ROUND_METHOD_DOUBLE = 2 +end + +function hsa_isa_get_round_method(isa, fp_type, flush_mode, round_method) + @ccall librocprofiler_sdk_tool.hsa_isa_get_round_method(isa::hsa_isa_t, + fp_type::hsa_fp_type_t, + flush_mode::hsa_flush_mode_t, + round_method::Ptr{hsa_round_method_t})::hsa_status_t +end + +struct hsa_wavefront_s + handle::UInt64 +end + +const hsa_wavefront_t = hsa_wavefront_s + +@cenum hsa_wavefront_info_t::UInt32 begin + HSA_WAVEFRONT_INFO_SIZE = 0 +end + +function hsa_wavefront_get_info(wavefront, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_wavefront_get_info(wavefront::hsa_wavefront_t, + attribute::hsa_wavefront_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_isa_iterate_wavefronts(isa, callback, data) + @ccall librocprofiler_sdk_tool.hsa_isa_iterate_wavefronts(isa::hsa_isa_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +function hsa_isa_compatible(code_object_isa, agent_isa, result) + @ccall librocprofiler_sdk_tool.hsa_isa_compatible(code_object_isa::hsa_isa_t, + agent_isa::hsa_isa_t, + result::Ptr{Bool})::hsa_status_t +end + +struct hsa_code_object_reader_s + handle::UInt64 +end + +const hsa_code_object_reader_t = hsa_code_object_reader_s + +function hsa_code_object_reader_create_from_file(file, code_object_reader) + @ccall librocprofiler_sdk_tool.hsa_code_object_reader_create_from_file(file::hsa_file_t, + code_object_reader::Ptr{hsa_code_object_reader_t})::hsa_status_t +end + +function hsa_code_object_reader_create_from_memory(code_object, size, code_object_reader) + @ccall librocprofiler_sdk_tool.hsa_code_object_reader_create_from_memory(code_object::Ptr{Cvoid}, + size::Csize_t, + code_object_reader::Ptr{hsa_code_object_reader_t})::hsa_status_t +end + +function hsa_code_object_reader_destroy(code_object_reader) + @ccall librocprofiler_sdk_tool.hsa_code_object_reader_destroy(code_object_reader::hsa_code_object_reader_t)::hsa_status_t +end + +struct hsa_executable_s + handle::UInt64 +end + +const hsa_executable_t = hsa_executable_s + +@cenum hsa_executable_state_t::UInt32 begin + HSA_EXECUTABLE_STATE_UNFROZEN = 0 + HSA_EXECUTABLE_STATE_FROZEN = 1 +end + +function hsa_executable_create(profile, executable_state, options, executable) + @ccall librocprofiler_sdk_tool.hsa_executable_create(profile::hsa_profile_t, + executable_state::hsa_executable_state_t, + options::Ptr{Cchar}, + executable::Ptr{hsa_executable_t})::hsa_status_t +end + +function hsa_executable_create_alt(profile, default_float_rounding_mode, options, + executable) + @ccall librocprofiler_sdk_tool.hsa_executable_create_alt(profile::hsa_profile_t, + default_float_rounding_mode::hsa_default_float_rounding_mode_t, + options::Ptr{Cchar}, + executable::Ptr{hsa_executable_t})::hsa_status_t +end + +function hsa_executable_destroy(executable) + @ccall librocprofiler_sdk_tool.hsa_executable_destroy(executable::hsa_executable_t)::hsa_status_t +end + +struct hsa_loaded_code_object_s + handle::UInt64 +end + +const hsa_loaded_code_object_t = hsa_loaded_code_object_s + +function hsa_executable_load_program_code_object(executable, code_object_reader, options, + loaded_code_object) + @ccall librocprofiler_sdk_tool.hsa_executable_load_program_code_object(executable::hsa_executable_t, + code_object_reader::hsa_code_object_reader_t, + options::Ptr{Cchar}, + loaded_code_object::Ptr{hsa_loaded_code_object_t})::hsa_status_t +end + +function hsa_executable_load_agent_code_object(executable, agent, code_object_reader, + options, loaded_code_object) + @ccall librocprofiler_sdk_tool.hsa_executable_load_agent_code_object(executable::hsa_executable_t, + agent::hsa_agent_t, + code_object_reader::hsa_code_object_reader_t, + options::Ptr{Cchar}, + loaded_code_object::Ptr{hsa_loaded_code_object_t})::hsa_status_t +end + +function hsa_executable_freeze(executable, options) + @ccall librocprofiler_sdk_tool.hsa_executable_freeze(executable::hsa_executable_t, + options::Ptr{Cchar})::hsa_status_t +end + +@cenum hsa_executable_info_t::UInt32 begin + HSA_EXECUTABLE_INFO_PROFILE = 1 + HSA_EXECUTABLE_INFO_STATE = 2 + HSA_EXECUTABLE_INFO_DEFAULT_FLOAT_ROUNDING_MODE = 3 +end + +function hsa_executable_get_info(executable, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_executable_get_info(executable::hsa_executable_t, + attribute::hsa_executable_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_executable_global_variable_define(executable, variable_name, address) + @ccall librocprofiler_sdk_tool.hsa_executable_global_variable_define(executable::hsa_executable_t, + variable_name::Ptr{Cchar}, + address::Ptr{Cvoid})::hsa_status_t +end + +function hsa_executable_agent_global_variable_define(executable, agent, variable_name, + address) + @ccall librocprofiler_sdk_tool.hsa_executable_agent_global_variable_define(executable::hsa_executable_t, + agent::hsa_agent_t, + variable_name::Ptr{Cchar}, + address::Ptr{Cvoid})::hsa_status_t +end + +function hsa_executable_readonly_variable_define(executable, agent, variable_name, address) + @ccall librocprofiler_sdk_tool.hsa_executable_readonly_variable_define(executable::hsa_executable_t, + agent::hsa_agent_t, + variable_name::Ptr{Cchar}, + address::Ptr{Cvoid})::hsa_status_t +end + +function hsa_executable_validate(executable, result) + @ccall librocprofiler_sdk_tool.hsa_executable_validate(executable::hsa_executable_t, + result::Ptr{UInt32})::hsa_status_t +end + +function hsa_executable_validate_alt(executable, options, result) + @ccall librocprofiler_sdk_tool.hsa_executable_validate_alt(executable::hsa_executable_t, + options::Ptr{Cchar}, + result::Ptr{UInt32})::hsa_status_t +end + +struct hsa_executable_symbol_s + handle::UInt64 +end + +const hsa_executable_symbol_t = hsa_executable_symbol_s + +function hsa_executable_get_symbol(executable, module_name, symbol_name, agent, + call_convention, symbol) + @ccall librocprofiler_sdk_tool.hsa_executable_get_symbol(executable::hsa_executable_t, + module_name::Ptr{Cchar}, + symbol_name::Ptr{Cchar}, + agent::hsa_agent_t, + call_convention::Int32, + symbol::Ptr{hsa_executable_symbol_t})::hsa_status_t +end + +function hsa_executable_get_symbol_by_name(executable, symbol_name, agent, symbol) + @ccall librocprofiler_sdk_tool.hsa_executable_get_symbol_by_name(executable::hsa_executable_t, + symbol_name::Ptr{Cchar}, + agent::Ptr{hsa_agent_t}, + symbol::Ptr{hsa_executable_symbol_t})::hsa_status_t +end + +@cenum hsa_symbol_kind_t::UInt32 begin + HSA_SYMBOL_KIND_VARIABLE = 0 + HSA_SYMBOL_KIND_KERNEL = 1 + HSA_SYMBOL_KIND_INDIRECT_FUNCTION = 2 +end + +@cenum hsa_symbol_linkage_t::UInt32 begin + HSA_SYMBOL_LINKAGE_MODULE = 0 + HSA_SYMBOL_LINKAGE_PROGRAM = 1 +end + +@cenum hsa_variable_allocation_t::UInt32 begin + HSA_VARIABLE_ALLOCATION_AGENT = 0 + HSA_VARIABLE_ALLOCATION_PROGRAM = 1 +end + +@cenum hsa_variable_segment_t::UInt32 begin + HSA_VARIABLE_SEGMENT_GLOBAL = 0 + HSA_VARIABLE_SEGMENT_READONLY = 1 +end + +@cenum hsa_executable_symbol_info_t::UInt32 begin + HSA_EXECUTABLE_SYMBOL_INFO_TYPE = 0 + HSA_EXECUTABLE_SYMBOL_INFO_NAME_LENGTH = 1 + HSA_EXECUTABLE_SYMBOL_INFO_NAME = 2 + HSA_EXECUTABLE_SYMBOL_INFO_MODULE_NAME_LENGTH = 3 + HSA_EXECUTABLE_SYMBOL_INFO_MODULE_NAME = 4 + HSA_EXECUTABLE_SYMBOL_INFO_AGENT = 20 + HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_ADDRESS = 21 + HSA_EXECUTABLE_SYMBOL_INFO_LINKAGE = 5 + HSA_EXECUTABLE_SYMBOL_INFO_IS_DEFINITION = 17 + HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_ALLOCATION = 6 + HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_SEGMENT = 7 + HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_ALIGNMENT = 8 + HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_SIZE = 9 + HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_IS_CONST = 10 + HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_OBJECT = 22 + HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_KERNARG_SEGMENT_SIZE = 11 + HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_KERNARG_SEGMENT_ALIGNMENT = 12 + HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_GROUP_SEGMENT_SIZE = 13 + HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_PRIVATE_SEGMENT_SIZE = 14 + HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_DYNAMIC_CALLSTACK = 15 + HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_CALL_CONVENTION = 18 + HSA_EXECUTABLE_SYMBOL_INFO_INDIRECT_FUNCTION_OBJECT = 23 + HSA_EXECUTABLE_SYMBOL_INFO_INDIRECT_FUNCTION_CALL_CONVENTION = 16 +end + +function hsa_executable_symbol_get_info(executable_symbol, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_executable_symbol_get_info(executable_symbol::hsa_executable_symbol_t, + attribute::hsa_executable_symbol_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_executable_iterate_symbols(executable, callback, data) + @ccall librocprofiler_sdk_tool.hsa_executable_iterate_symbols(executable::hsa_executable_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +function hsa_executable_iterate_agent_symbols(executable, agent, callback, data) + @ccall librocprofiler_sdk_tool.hsa_executable_iterate_agent_symbols(executable::hsa_executable_t, + agent::hsa_agent_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +function hsa_executable_iterate_program_symbols(executable, callback, data) + @ccall librocprofiler_sdk_tool.hsa_executable_iterate_program_symbols(executable::hsa_executable_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +struct hsa_code_object_s + handle::UInt64 +end + +const hsa_code_object_t = hsa_code_object_s + +struct hsa_callback_data_s + handle::UInt64 +end + +const hsa_callback_data_t = hsa_callback_data_s + +function hsa_code_object_serialize(code_object, alloc_callback, callback_data, options, + serialized_code_object, serialized_code_object_size) + @ccall librocprofiler_sdk_tool.hsa_code_object_serialize(code_object::hsa_code_object_t, + alloc_callback::Ptr{Cvoid}, + callback_data::hsa_callback_data_t, + options::Ptr{Cchar}, + serialized_code_object::Ptr{Ptr{Cvoid}}, + serialized_code_object_size::Ptr{Csize_t})::hsa_status_t +end + +function hsa_code_object_deserialize(serialized_code_object, serialized_code_object_size, + options, code_object) + @ccall librocprofiler_sdk_tool.hsa_code_object_deserialize(serialized_code_object::Ptr{Cvoid}, + serialized_code_object_size::Csize_t, + options::Ptr{Cchar}, + code_object::Ptr{hsa_code_object_t})::hsa_status_t +end + +function hsa_code_object_destroy(code_object) + @ccall librocprofiler_sdk_tool.hsa_code_object_destroy(code_object::hsa_code_object_t)::hsa_status_t +end + +@cenum hsa_code_object_type_t::UInt32 begin + HSA_CODE_OBJECT_TYPE_PROGRAM = 0 +end + +@cenum hsa_code_object_info_t::UInt32 begin + HSA_CODE_OBJECT_INFO_VERSION = 0 + HSA_CODE_OBJECT_INFO_TYPE = 1 + HSA_CODE_OBJECT_INFO_ISA = 2 + HSA_CODE_OBJECT_INFO_MACHINE_MODEL = 3 + HSA_CODE_OBJECT_INFO_PROFILE = 4 + HSA_CODE_OBJECT_INFO_DEFAULT_FLOAT_ROUNDING_MODE = 5 +end + +function hsa_code_object_get_info(code_object, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_code_object_get_info(code_object::hsa_code_object_t, + attribute::hsa_code_object_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_executable_load_code_object(executable, agent, code_object, options) + @ccall librocprofiler_sdk_tool.hsa_executable_load_code_object(executable::hsa_executable_t, + agent::hsa_agent_t, + code_object::hsa_code_object_t, + options::Ptr{Cchar})::hsa_status_t +end + +struct hsa_code_symbol_s + handle::UInt64 +end + +const hsa_code_symbol_t = hsa_code_symbol_s + +function hsa_code_object_get_symbol(code_object, symbol_name, symbol) + @ccall librocprofiler_sdk_tool.hsa_code_object_get_symbol(code_object::hsa_code_object_t, + symbol_name::Ptr{Cchar}, + symbol::Ptr{hsa_code_symbol_t})::hsa_status_t +end + +function hsa_code_object_get_symbol_from_name(code_object, module_name, symbol_name, symbol) + @ccall librocprofiler_sdk_tool.hsa_code_object_get_symbol_from_name(code_object::hsa_code_object_t, + module_name::Ptr{Cchar}, + symbol_name::Ptr{Cchar}, + symbol::Ptr{hsa_code_symbol_t})::hsa_status_t +end + +@cenum hsa_code_symbol_info_t::UInt32 begin + HSA_CODE_SYMBOL_INFO_TYPE = 0 + HSA_CODE_SYMBOL_INFO_NAME_LENGTH = 1 + HSA_CODE_SYMBOL_INFO_NAME = 2 + HSA_CODE_SYMBOL_INFO_MODULE_NAME_LENGTH = 3 + HSA_CODE_SYMBOL_INFO_MODULE_NAME = 4 + HSA_CODE_SYMBOL_INFO_LINKAGE = 5 + HSA_CODE_SYMBOL_INFO_IS_DEFINITION = 17 + HSA_CODE_SYMBOL_INFO_VARIABLE_ALLOCATION = 6 + HSA_CODE_SYMBOL_INFO_VARIABLE_SEGMENT = 7 + HSA_CODE_SYMBOL_INFO_VARIABLE_ALIGNMENT = 8 + HSA_CODE_SYMBOL_INFO_VARIABLE_SIZE = 9 + HSA_CODE_SYMBOL_INFO_VARIABLE_IS_CONST = 10 + HSA_CODE_SYMBOL_INFO_KERNEL_KERNARG_SEGMENT_SIZE = 11 + HSA_CODE_SYMBOL_INFO_KERNEL_KERNARG_SEGMENT_ALIGNMENT = 12 + HSA_CODE_SYMBOL_INFO_KERNEL_GROUP_SEGMENT_SIZE = 13 + HSA_CODE_SYMBOL_INFO_KERNEL_PRIVATE_SEGMENT_SIZE = 14 + HSA_CODE_SYMBOL_INFO_KERNEL_DYNAMIC_CALLSTACK = 15 + HSA_CODE_SYMBOL_INFO_KERNEL_CALL_CONVENTION = 18 + HSA_CODE_SYMBOL_INFO_INDIRECT_FUNCTION_CALL_CONVENTION = 16 + HSA_CODE_SYMBOL_INFO_KERNEL_WAVEFRONT_SIZE = 19 +end + +function hsa_code_symbol_get_info(code_symbol, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_code_symbol_get_info(code_symbol::hsa_code_symbol_t, + attribute::hsa_code_symbol_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_code_object_iterate_symbols(code_object, callback, data) + @ccall librocprofiler_sdk_tool.hsa_code_object_iterate_symbols(code_object::hsa_code_object_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +@cenum var"##Ctag#279"::UInt32 begin + HSA_EXT_STATUS_ERROR_IMAGE_FORMAT_UNSUPPORTED = 12288 + HSA_EXT_STATUS_ERROR_IMAGE_SIZE_UNSUPPORTED = 12289 + HSA_EXT_STATUS_ERROR_IMAGE_PITCH_UNSUPPORTED = 12290 + HSA_EXT_STATUS_ERROR_SAMPLER_DESCRIPTOR_UNSUPPORTED = 12291 +end + +@cenum var"##Ctag#280"::UInt32 begin + HSA_EXT_AGENT_INFO_IMAGE_1D_MAX_ELEMENTS = 12288 + HSA_EXT_AGENT_INFO_IMAGE_1DA_MAX_ELEMENTS = 12289 + HSA_EXT_AGENT_INFO_IMAGE_1DB_MAX_ELEMENTS = 12290 + HSA_EXT_AGENT_INFO_IMAGE_2D_MAX_ELEMENTS = 12291 + HSA_EXT_AGENT_INFO_IMAGE_2DA_MAX_ELEMENTS = 12292 + HSA_EXT_AGENT_INFO_IMAGE_2DDEPTH_MAX_ELEMENTS = 12293 + HSA_EXT_AGENT_INFO_IMAGE_2DADEPTH_MAX_ELEMENTS = 12294 + HSA_EXT_AGENT_INFO_IMAGE_3D_MAX_ELEMENTS = 12295 + HSA_EXT_AGENT_INFO_IMAGE_ARRAY_MAX_LAYERS = 12296 + HSA_EXT_AGENT_INFO_MAX_IMAGE_RD_HANDLES = 12297 + HSA_EXT_AGENT_INFO_MAX_IMAGE_RORW_HANDLES = 12298 + HSA_EXT_AGENT_INFO_MAX_SAMPLER_HANDLERS = 12299 + HSA_EXT_AGENT_INFO_IMAGE_LINEAR_ROW_PITCH_ALIGNMENT = 12300 +end + +struct hsa_ext_image_s + handle::UInt64 +end + +const hsa_ext_image_t = hsa_ext_image_s + +@cenum hsa_ext_image_geometry_t::UInt32 begin + HSA_EXT_IMAGE_GEOMETRY_1D = 0 + HSA_EXT_IMAGE_GEOMETRY_2D = 1 + HSA_EXT_IMAGE_GEOMETRY_3D = 2 + HSA_EXT_IMAGE_GEOMETRY_1DA = 3 + HSA_EXT_IMAGE_GEOMETRY_2DA = 4 + HSA_EXT_IMAGE_GEOMETRY_1DB = 5 + HSA_EXT_IMAGE_GEOMETRY_2DDEPTH = 6 + HSA_EXT_IMAGE_GEOMETRY_2DADEPTH = 7 +end + +@cenum hsa_ext_image_channel_type_t::UInt32 begin + HSA_EXT_IMAGE_CHANNEL_TYPE_SNORM_INT8 = 0 + HSA_EXT_IMAGE_CHANNEL_TYPE_SNORM_INT16 = 1 + HSA_EXT_IMAGE_CHANNEL_TYPE_UNORM_INT8 = 2 + HSA_EXT_IMAGE_CHANNEL_TYPE_UNORM_INT16 = 3 + HSA_EXT_IMAGE_CHANNEL_TYPE_UNORM_INT24 = 4 + HSA_EXT_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555 = 5 + HSA_EXT_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565 = 6 + HSA_EXT_IMAGE_CHANNEL_TYPE_UNORM_SHORT_101010 = 7 + HSA_EXT_IMAGE_CHANNEL_TYPE_SIGNED_INT8 = 8 + HSA_EXT_IMAGE_CHANNEL_TYPE_SIGNED_INT16 = 9 + HSA_EXT_IMAGE_CHANNEL_TYPE_SIGNED_INT32 = 10 + HSA_EXT_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8 = 11 + HSA_EXT_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16 = 12 + HSA_EXT_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32 = 13 + HSA_EXT_IMAGE_CHANNEL_TYPE_HALF_FLOAT = 14 + HSA_EXT_IMAGE_CHANNEL_TYPE_FLOAT = 15 +end + +const hsa_ext_image_channel_type32_t = UInt32 + +@cenum hsa_ext_image_channel_order_t::UInt32 begin + HSA_EXT_IMAGE_CHANNEL_ORDER_A = 0 + HSA_EXT_IMAGE_CHANNEL_ORDER_R = 1 + HSA_EXT_IMAGE_CHANNEL_ORDER_RX = 2 + HSA_EXT_IMAGE_CHANNEL_ORDER_RG = 3 + HSA_EXT_IMAGE_CHANNEL_ORDER_RGX = 4 + HSA_EXT_IMAGE_CHANNEL_ORDER_RA = 5 + HSA_EXT_IMAGE_CHANNEL_ORDER_RGB = 6 + HSA_EXT_IMAGE_CHANNEL_ORDER_RGBX = 7 + HSA_EXT_IMAGE_CHANNEL_ORDER_RGBA = 8 + HSA_EXT_IMAGE_CHANNEL_ORDER_BGRA = 9 + HSA_EXT_IMAGE_CHANNEL_ORDER_ARGB = 10 + HSA_EXT_IMAGE_CHANNEL_ORDER_ABGR = 11 + HSA_EXT_IMAGE_CHANNEL_ORDER_SRGB = 12 + HSA_EXT_IMAGE_CHANNEL_ORDER_SRGBX = 13 + HSA_EXT_IMAGE_CHANNEL_ORDER_SRGBA = 14 + HSA_EXT_IMAGE_CHANNEL_ORDER_SBGRA = 15 + HSA_EXT_IMAGE_CHANNEL_ORDER_INTENSITY = 16 + HSA_EXT_IMAGE_CHANNEL_ORDER_LUMINANCE = 17 + HSA_EXT_IMAGE_CHANNEL_ORDER_DEPTH = 18 + HSA_EXT_IMAGE_CHANNEL_ORDER_DEPTH_STENCIL = 19 +end + +const hsa_ext_image_channel_order32_t = UInt32 + +struct hsa_ext_image_format_s + channel_type::hsa_ext_image_channel_type32_t + channel_order::hsa_ext_image_channel_order32_t +end + +const hsa_ext_image_format_t = hsa_ext_image_format_s + +struct hsa_ext_image_descriptor_s + geometry::hsa_ext_image_geometry_t + width::Csize_t + height::Csize_t + depth::Csize_t + array_size::Csize_t + format::hsa_ext_image_format_t +end + +const hsa_ext_image_descriptor_t = hsa_ext_image_descriptor_s + +@cenum hsa_ext_image_capability_t::UInt32 begin + HSA_EXT_IMAGE_CAPABILITY_NOT_SUPPORTED = 0 + HSA_EXT_IMAGE_CAPABILITY_READ_ONLY = 1 + HSA_EXT_IMAGE_CAPABILITY_WRITE_ONLY = 2 + HSA_EXT_IMAGE_CAPABILITY_READ_WRITE = 4 + HSA_EXT_IMAGE_CAPABILITY_READ_MODIFY_WRITE = 8 + HSA_EXT_IMAGE_CAPABILITY_ACCESS_INVARIANT_DATA_LAYOUT = 16 +end + +@cenum hsa_ext_image_data_layout_t::UInt32 begin + HSA_EXT_IMAGE_DATA_LAYOUT_OPAQUE = 0 + HSA_EXT_IMAGE_DATA_LAYOUT_LINEAR = 1 +end + +function hsa_ext_image_get_capability(agent, geometry, image_format, capability_mask) + @ccall librocprofiler_sdk_tool.hsa_ext_image_get_capability(agent::hsa_agent_t, + geometry::hsa_ext_image_geometry_t, + image_format::Ptr{hsa_ext_image_format_t}, + capability_mask::Ptr{UInt32})::hsa_status_t +end + +function hsa_ext_image_get_capability_with_layout(agent, geometry, image_format, + image_data_layout, capability_mask) + @ccall librocprofiler_sdk_tool.hsa_ext_image_get_capability_with_layout(agent::hsa_agent_t, + geometry::hsa_ext_image_geometry_t, + image_format::Ptr{hsa_ext_image_format_t}, + image_data_layout::hsa_ext_image_data_layout_t, + capability_mask::Ptr{UInt32})::hsa_status_t +end + +struct hsa_ext_image_data_info_s + size::Csize_t + alignment::Csize_t +end + +const hsa_ext_image_data_info_t = hsa_ext_image_data_info_s + +function hsa_ext_image_data_get_info(agent, image_descriptor, access_permission, + image_data_info) + @ccall librocprofiler_sdk_tool.hsa_ext_image_data_get_info(agent::hsa_agent_t, + image_descriptor::Ptr{hsa_ext_image_descriptor_t}, + access_permission::hsa_access_permission_t, + image_data_info::Ptr{hsa_ext_image_data_info_t})::hsa_status_t +end + +function hsa_ext_image_data_get_info_with_layout(agent, image_descriptor, access_permission, + image_data_layout, image_data_row_pitch, + image_data_slice_pitch, image_data_info) + @ccall librocprofiler_sdk_tool.hsa_ext_image_data_get_info_with_layout(agent::hsa_agent_t, + image_descriptor::Ptr{hsa_ext_image_descriptor_t}, + access_permission::hsa_access_permission_t, + image_data_layout::hsa_ext_image_data_layout_t, + image_data_row_pitch::Csize_t, + image_data_slice_pitch::Csize_t, + image_data_info::Ptr{hsa_ext_image_data_info_t})::hsa_status_t +end + +function hsa_ext_image_create(agent, image_descriptor, image_data, access_permission, image) + @ccall librocprofiler_sdk_tool.hsa_ext_image_create(agent::hsa_agent_t, + image_descriptor::Ptr{hsa_ext_image_descriptor_t}, + image_data::Ptr{Cvoid}, + access_permission::hsa_access_permission_t, + image::Ptr{hsa_ext_image_t})::hsa_status_t +end + +function hsa_ext_image_create_with_layout(agent, image_descriptor, image_data, + access_permission, image_data_layout, + image_data_row_pitch, image_data_slice_pitch, + image) + @ccall librocprofiler_sdk_tool.hsa_ext_image_create_with_layout(agent::hsa_agent_t, + image_descriptor::Ptr{hsa_ext_image_descriptor_t}, + image_data::Ptr{Cvoid}, + access_permission::hsa_access_permission_t, + image_data_layout::hsa_ext_image_data_layout_t, + image_data_row_pitch::Csize_t, + image_data_slice_pitch::Csize_t, + image::Ptr{hsa_ext_image_t})::hsa_status_t +end + +function hsa_ext_image_destroy(agent, image) + @ccall librocprofiler_sdk_tool.hsa_ext_image_destroy(agent::hsa_agent_t, + image::hsa_ext_image_t)::hsa_status_t +end + +function hsa_ext_image_copy(agent, src_image, src_offset, dst_image, dst_offset, range) + @ccall librocprofiler_sdk_tool.hsa_ext_image_copy(agent::hsa_agent_t, + src_image::hsa_ext_image_t, + src_offset::Ptr{hsa_dim3_t}, + dst_image::hsa_ext_image_t, + dst_offset::Ptr{hsa_dim3_t}, + range::Ptr{hsa_dim3_t})::hsa_status_t +end + +struct hsa_ext_image_region_s + offset::hsa_dim3_t + range::hsa_dim3_t +end + +const hsa_ext_image_region_t = hsa_ext_image_region_s + +function hsa_ext_image_import(agent, src_memory, src_row_pitch, src_slice_pitch, dst_image, + image_region) + @ccall librocprofiler_sdk_tool.hsa_ext_image_import(agent::hsa_agent_t, + src_memory::Ptr{Cvoid}, + src_row_pitch::Csize_t, + src_slice_pitch::Csize_t, + dst_image::hsa_ext_image_t, + image_region::Ptr{hsa_ext_image_region_t})::hsa_status_t +end + +function hsa_ext_image_export(agent, src_image, dst_memory, dst_row_pitch, dst_slice_pitch, + image_region) + @ccall librocprofiler_sdk_tool.hsa_ext_image_export(agent::hsa_agent_t, + src_image::hsa_ext_image_t, + dst_memory::Ptr{Cvoid}, + dst_row_pitch::Csize_t, + dst_slice_pitch::Csize_t, + image_region::Ptr{hsa_ext_image_region_t})::hsa_status_t +end + +function hsa_ext_image_clear(agent, image, data, image_region) + @ccall librocprofiler_sdk_tool.hsa_ext_image_clear(agent::hsa_agent_t, + image::hsa_ext_image_t, + data::Ptr{Cvoid}, + image_region::Ptr{hsa_ext_image_region_t})::hsa_status_t +end + +struct hsa_ext_sampler_s + handle::UInt64 +end + +const hsa_ext_sampler_t = hsa_ext_sampler_s + +@cenum hsa_ext_sampler_addressing_mode_t::UInt32 begin + HSA_EXT_SAMPLER_ADDRESSING_MODE_UNDEFINED = 0 + HSA_EXT_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE = 1 + HSA_EXT_SAMPLER_ADDRESSING_MODE_CLAMP_TO_BORDER = 2 + HSA_EXT_SAMPLER_ADDRESSING_MODE_REPEAT = 3 + HSA_EXT_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT = 4 +end + +const hsa_ext_sampler_addressing_mode32_t = UInt32 + +@cenum hsa_ext_sampler_coordinate_mode_t::UInt32 begin + HSA_EXT_SAMPLER_COORDINATE_MODE_UNNORMALIZED = 0 + HSA_EXT_SAMPLER_COORDINATE_MODE_NORMALIZED = 1 +end + +const hsa_ext_sampler_coordinate_mode32_t = UInt32 + +@cenum hsa_ext_sampler_filter_mode_t::UInt32 begin + HSA_EXT_SAMPLER_FILTER_MODE_NEAREST = 0 + HSA_EXT_SAMPLER_FILTER_MODE_LINEAR = 1 +end + +const hsa_ext_sampler_filter_mode32_t = UInt32 + +struct hsa_ext_sampler_descriptor_s + coordinate_mode::hsa_ext_sampler_coordinate_mode32_t + filter_mode::hsa_ext_sampler_filter_mode32_t + address_mode::hsa_ext_sampler_addressing_mode32_t +end + +const hsa_ext_sampler_descriptor_t = hsa_ext_sampler_descriptor_s + +struct hsa_ext_sampler_descriptor_v2_s + coordinate_mode::hsa_ext_sampler_coordinate_mode32_t + filter_mode::hsa_ext_sampler_filter_mode32_t + address_modes::NTuple{3,hsa_ext_sampler_addressing_mode32_t} +end + +const hsa_ext_sampler_descriptor_v2_t = hsa_ext_sampler_descriptor_v2_s + +function hsa_ext_sampler_create(agent, sampler_descriptor, sampler) + @ccall librocprofiler_sdk_tool.hsa_ext_sampler_create(agent::hsa_agent_t, + sampler_descriptor::Ptr{hsa_ext_sampler_descriptor_t}, + sampler::Ptr{hsa_ext_sampler_t})::hsa_status_t +end + +function hsa_ext_sampler_create_v2(agent, sampler_descriptor, sampler) + @ccall librocprofiler_sdk_tool.hsa_ext_sampler_create_v2(agent::hsa_agent_t, + sampler_descriptor::Ptr{hsa_ext_sampler_descriptor_v2_t}, + sampler::Ptr{hsa_ext_sampler_t})::hsa_status_t +end + +function hsa_ext_sampler_destroy(agent, sampler) + @ccall librocprofiler_sdk_tool.hsa_ext_sampler_destroy(agent::hsa_agent_t, + sampler::hsa_ext_sampler_t)::hsa_status_t +end + +struct hsa_ext_images_1_00_pfn_s + hsa_ext_image_get_capability::Ptr{Cvoid} + hsa_ext_image_data_get_info::Ptr{Cvoid} + hsa_ext_image_create::Ptr{Cvoid} + hsa_ext_image_destroy::Ptr{Cvoid} + hsa_ext_image_copy::Ptr{Cvoid} + hsa_ext_image_import::Ptr{Cvoid} + hsa_ext_image_export::Ptr{Cvoid} + hsa_ext_image_clear::Ptr{Cvoid} + hsa_ext_sampler_create::Ptr{Cvoid} + hsa_ext_sampler_destroy::Ptr{Cvoid} +end + +const hsa_ext_images_1_00_pfn_t = hsa_ext_images_1_00_pfn_s + +struct hsa_ext_images_1_pfn_s + hsa_ext_image_get_capability::Ptr{Cvoid} + hsa_ext_image_data_get_info::Ptr{Cvoid} + hsa_ext_image_create::Ptr{Cvoid} + hsa_ext_image_destroy::Ptr{Cvoid} + hsa_ext_image_copy::Ptr{Cvoid} + hsa_ext_image_import::Ptr{Cvoid} + hsa_ext_image_export::Ptr{Cvoid} + hsa_ext_image_clear::Ptr{Cvoid} + hsa_ext_sampler_create::Ptr{Cvoid} + hsa_ext_sampler_destroy::Ptr{Cvoid} + hsa_ext_image_get_capability_with_layout::Ptr{Cvoid} + hsa_ext_image_data_get_info_with_layout::Ptr{Cvoid} + hsa_ext_image_create_with_layout::Ptr{Cvoid} + hsa_ext_sampler_create_v2::Ptr{Cvoid} +end + +const hsa_ext_images_1_pfn_t = hsa_ext_images_1_pfn_s + +struct perf_sample_hosttrap_v1_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{perf_sample_hosttrap_v1_t}, f::Symbol) + f === :pc && return Ptr{UInt64}(x + 0) + f === :exec_mask && return Ptr{UInt64}(x + 8) + f === :workgroup_id_x && return Ptr{UInt32}(x + 16) + f === :workgroup_id_y && return Ptr{UInt32}(x + 20) + f === :workgroup_id_z && return Ptr{UInt32}(x + 24) + f === :wave_in_wg && return (Ptr{UInt32}(x + 28), 0, 6) + f === :chiplet && return (Ptr{UInt32}(x + 28), 6, 3) + f === :reserved && return (Ptr{UInt32}(x + 28), 9, 23) + f === :hw_id && return Ptr{UInt32}(x + 32) + f === :reserved0 && return Ptr{UInt32}(x + 36) + f === :reserved1 && return Ptr{UInt64}(x + 40) + f === :timestamp && return Ptr{UInt64}(x + 48) + f === :correlation_id && return Ptr{UInt64}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::perf_sample_hosttrap_v1_t, f::Symbol) + r = Ref{perf_sample_hosttrap_v1_t}(x) + ptr = Base.unsafe_convert(Ptr{perf_sample_hosttrap_v1_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{perf_sample_hosttrap_v1_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::perf_sample_hosttrap_v1_t, private::Bool=false) + return (:pc, :exec_mask, :workgroup_id_x, :workgroup_id_y, :workgroup_id_z, :wave_in_wg, + :chiplet, :reserved, :hw_id, :reserved0, :reserved1, :timestamp, + :correlation_id, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct perf_sample_snapshot_v1_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{perf_sample_snapshot_v1_t}, f::Symbol) + f === :pc && return Ptr{UInt64}(x + 0) + f === :exec_mask && return Ptr{UInt64}(x + 8) + f === :workgroup_id_x && return Ptr{UInt32}(x + 16) + f === :workgroup_id_y && return Ptr{UInt32}(x + 20) + f === :workgroup_id_z && return Ptr{UInt32}(x + 24) + f === :wave_in_wg && return (Ptr{UInt32}(x + 28), 0, 6) + f === :chiplet && return (Ptr{UInt32}(x + 28), 6, 3) + f === :reserved && return (Ptr{UInt32}(x + 28), 9, 23) + f === :hw_id && return Ptr{UInt32}(x + 32) + f === :perf_snapshot_data && return Ptr{UInt32}(x + 36) + f === :perf_snapshot_data1 && return Ptr{UInt32}(x + 40) + f === :perf_snapshot_data2 && return Ptr{UInt32}(x + 44) + f === :timestamp && return Ptr{UInt64}(x + 48) + f === :correlation_id && return Ptr{UInt64}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::perf_sample_snapshot_v1_t, f::Symbol) + r = Ref{perf_sample_snapshot_v1_t}(x) + ptr = Base.unsafe_convert(Ptr{perf_sample_snapshot_v1_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{perf_sample_snapshot_v1_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::perf_sample_snapshot_v1_t, private::Bool=false) + return (:pc, :exec_mask, :workgroup_id_x, :workgroup_id_y, :workgroup_id_z, :wave_in_wg, + :chiplet, :reserved, :hw_id, :perf_snapshot_data, :perf_snapshot_data1, + :perf_snapshot_data2, :timestamp, :correlation_id, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hsa_ven_amd_pcs_method_kind_t::UInt32 begin + HSA_VEN_AMD_PCS_METHOD_HOSTTRAP_V1 = 0 + HSA_VEN_AMD_PCS_METHOD_STOCHASTIC_V1 = 1 +end + +@cenum hsa_ven_amd_pcs_units_t::UInt32 begin + HSA_VEN_AMD_PCS_INTERVAL_UNITS_MICRO_SECONDS = 0 + HSA_VEN_AMD_PCS_INTERVAL_UNITS_CLOCK_CYCLES = 1 + HSA_VEN_AMD_PCS_INTERVAL_UNITS_INSTRUCTIONS = 2 +end + +# typedef hsa_status_t ( * hsa_ven_amd_pcs_data_copy_callback_t ) ( void * hsa_callback_data , size_t data_size , void * destination ) +const hsa_ven_amd_pcs_data_copy_callback_t = Ptr{Cvoid} + +# typedef void ( * hsa_ven_amd_pcs_data_ready_callback_t ) ( void * client_callback_data , size_t data_size , size_t lost_sample_count , hsa_ven_amd_pcs_data_copy_callback_t data_copy_callback , void * hsa_callback_data ) +const hsa_ven_amd_pcs_data_ready_callback_t = Ptr{Cvoid} + +struct hsa_ven_amd_pcs_t + handle::UInt64 +end + +@cenum hsa_ven_amd_pcs_configuration_flags_t::UInt32 begin + HSA_VEN_AMD_PCS_CONFIGURATION_FLAGS_INTERVAL_POWER_OF_2 = 1 +end + +struct hsa_ven_amd_pcs_configuration_t + method::hsa_ven_amd_pcs_method_kind_t + units::hsa_ven_amd_pcs_units_t + min_interval::Csize_t + max_interval::Csize_t + flags::UInt64 +end + +# typedef hsa_status_t ( * hsa_ven_amd_pcs_iterate_configuration_callback_t ) ( const hsa_ven_amd_pcs_configuration_t * configuration , void * callback_data ) +const hsa_ven_amd_pcs_iterate_configuration_callback_t = Ptr{Cvoid} + +function hsa_ven_amd_pcs_iterate_configuration(agent, configuration_callback, callback_data) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_pcs_iterate_configuration(agent::hsa_agent_t, + configuration_callback::hsa_ven_amd_pcs_iterate_configuration_callback_t, + callback_data::Ptr{Cvoid})::hsa_status_t +end + +function hsa_ven_amd_pcs_create(agent, method, units, interval, latency, buffer_size, + data_ready_callback, client_callback_data, pc_sampling) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_pcs_create(agent::hsa_agent_t, + method::hsa_ven_amd_pcs_method_kind_t, + units::hsa_ven_amd_pcs_units_t, + interval::Csize_t, + latency::Csize_t, + buffer_size::Csize_t, + data_ready_callback::hsa_ven_amd_pcs_data_ready_callback_t, + client_callback_data::Ptr{Cvoid}, + pc_sampling::Ptr{hsa_ven_amd_pcs_t})::hsa_status_t +end + +function hsa_ven_amd_pcs_create_from_id(pcs_id, agent, method, units, interval, latency, + buffer_size, data_ready_callback, + client_callback_data, pc_sampling) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_pcs_create_from_id(pcs_id::UInt32, + agent::hsa_agent_t, + method::hsa_ven_amd_pcs_method_kind_t, + units::hsa_ven_amd_pcs_units_t, + interval::Csize_t, + latency::Csize_t, + buffer_size::Csize_t, + data_ready_callback::hsa_ven_amd_pcs_data_ready_callback_t, + client_callback_data::Ptr{Cvoid}, + pc_sampling::Ptr{hsa_ven_amd_pcs_t})::hsa_status_t +end + +function hsa_ven_amd_pcs_destroy(pc_sampling) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_pcs_destroy(pc_sampling::hsa_ven_amd_pcs_t)::hsa_status_t +end + +function hsa_ven_amd_pcs_start(pc_sampling) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_pcs_start(pc_sampling::hsa_ven_amd_pcs_t)::hsa_status_t +end + +function hsa_ven_amd_pcs_stop(pc_sampling) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_pcs_stop(pc_sampling::hsa_ven_amd_pcs_t)::hsa_status_t +end + +function hsa_ven_amd_pcs_flush(pc_sampling) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_pcs_flush(pc_sampling::hsa_ven_amd_pcs_t)::hsa_status_t +end + +struct hsa_ven_amd_pc_sampling_1_00_pfn_t + hsa_ven_amd_pcs_iterate_configuration::Ptr{Cvoid} + hsa_ven_amd_pcs_create::Ptr{Cvoid} + hsa_ven_amd_pcs_create_from_id::Ptr{Cvoid} + hsa_ven_amd_pcs_destroy::Ptr{Cvoid} + hsa_ven_amd_pcs_start::Ptr{Cvoid} + hsa_ven_amd_pcs_stop::Ptr{Cvoid} + hsa_ven_amd_pcs_flush::Ptr{Cvoid} +end + +function hsa_flag_set64(value, bit) + @ccall librocprofiler_sdk_tool.hsa_flag_set64(value::Ptr{UInt8}, bit::UInt32)::Cvoid +end + +function hsa_flag_isset64(value, bit) + @ccall librocprofiler_sdk_tool.hsa_flag_isset64(value::Ptr{UInt8}, bit::UInt32)::Bool +end + +const hsa_signal_condition32_t = UInt32 + +@cenum hsa_amd_packet_type_t::UInt32 begin + HSA_AMD_PACKET_TYPE_BARRIER_VALUE = 2 + HSA_AMD_PACKET_TYPE_AIE_ERT = 3 +end + +const hsa_amd_packet_type8_t = UInt8 + +struct hsa_amd_packet_header_s + header::UInt16 + AmdFormat::hsa_amd_packet_type8_t + reserved::UInt8 +end + +const hsa_amd_vendor_packet_header_t = hsa_amd_packet_header_s + +struct hsa_amd_barrier_value_packet_s + header::hsa_amd_vendor_packet_header_t + reserved0::UInt32 + signal::hsa_signal_t + value::hsa_signal_value_t + mask::hsa_signal_value_t + cond::hsa_signal_condition32_t + reserved1::UInt32 + reserved2::UInt64 + reserved3::UInt64 + completion_signal::hsa_signal_t +end + +const hsa_amd_barrier_value_packet_t = hsa_amd_barrier_value_packet_s + +@cenum hsa_amd_aie_ert_state::UInt32 begin + HSA_AMD_AIE_ERT_STATE_NEW = 1 + HSA_AMD_AIE_ERT_STATE_QUEUED = 2 + HSA_AMD_AIE_ERT_STATE_RUNNING = 3 + HSA_AMD_AIE_ERT_STATE_COMPLETED = 4 + HSA_AMD_AIE_ERT_STATE_ERROR = 5 + HSA_AMD_AIE_ERT_STATE_ABORT = 6 + HSA_AMD_AIE_ERT_STATE_SUBMITTED = 7 + HSA_AMD_AIE_ERT_STATE_TIMEOUT = 8 + HSA_AMD_AIE_ERT_STATE_NORESPONSE = 9 + HSA_AMD_AIE_ERT_STATE_SKERROR = 10 + HSA_AMD_AIE_ERT_STATE_SKCRASHED = 11 + HSA_AMD_AIE_ERT_STATE_MAX = 12 +end + +@cenum hsa_amd_aie_ert_cmd_opcode_t::UInt32 begin + HSA_AMD_AIE_ERT_START_CU = 0 + HSA_AMD_AIE_ERT_START_KERNEL = 0 + HSA_AMD_AIE_ERT_CONFIGURE = 2 + HSA_AMD_AIE_ERT_EXIT = 3 + HSA_AMD_AIE_ERT_ABORT = 4 + HSA_AMD_AIE_ERT_EXEC_WRITE = 5 + HSA_AMD_AIE_ERT_CU_STAT = 6 + HSA_AMD_AIE_ERT_START_COPYBO = 7 + HSA_AMD_AIE_ERT_SK_CONFIG = 8 + HSA_AMD_AIE_ERT_SK_START = 9 + HSA_AMD_AIE_ERT_SK_UNCONFIG = 10 + HSA_AMD_AIE_ERT_INIT_CU = 11 + HSA_AMD_AIE_ERT_START_FA = 12 + HSA_AMD_AIE_ERT_CLK_CALIB = 13 + HSA_AMD_AIE_ERT_MB_VALIDATE = 14 + HSA_AMD_AIE_ERT_START_KEY_VAL = 15 + HSA_AMD_AIE_ERT_ACCESS_TEST_C = 16 + HSA_AMD_AIE_ERT_ACCESS_TEST = 17 + HSA_AMD_AIE_ERT_START_DPU = 18 + HSA_AMD_AIE_ERT_CMD_CHAIN = 19 + HSA_AMD_AIE_ERT_START_NPU = 20 + HSA_AMD_AIE_ERT_START_NPU_PREEMPT = 21 +end + +struct hsa_amd_aie_ert_start_kernel_data_s + pdi_addr::Ptr{Cvoid} + data::Ptr{UInt32} +end + +const hsa_amd_aie_ert_start_kernel_data_t = hsa_amd_aie_ert_start_kernel_data_s + +struct hsa_amd_aie_ert_packet_s + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{hsa_amd_aie_ert_packet_s}, f::Symbol) + f === :header && return Ptr{hsa_amd_vendor_packet_header_t}(x + 0) + f === + Symbol("struct hsa_amd_aie_ert_packet_s::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsa/hsa_ext_amd.h:346:3)") && + return Ptr{Cvoid}(x + 0) + f === :reserved0 && return Ptr{UInt64}(x + 8) + f === :reserved1 && return Ptr{UInt64}(x + 16) + f === :reserved2 && return Ptr{UInt64}(x + 24) + f === :reserved3 && return Ptr{UInt64}(x + 32) + f === :reserved4 && return Ptr{UInt64}(x + 40) + f === :reserved5 && return Ptr{UInt64}(x + 48) + f === :payload_data && return Ptr{UInt64}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::hsa_amd_aie_ert_packet_s, f::Symbol) + r = Ref{hsa_amd_aie_ert_packet_s}(x) + ptr = Base.unsafe_convert(Ptr{hsa_amd_aie_ert_packet_s}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hsa_amd_aie_ert_packet_s}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hsa_amd_aie_ert_packet_s, private::Bool=false) + return (:header, + Symbol("struct hsa_amd_aie_ert_packet_s::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsa/hsa_ext_amd.h:346:3)"), + :reserved0, :reserved1, :reserved2, :reserved3, :reserved4, :reserved5, + :payload_data, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hsa_amd_aie_ert_packet_t = hsa_amd_aie_ert_packet_s + +@cenum var"##Ctag#281"::UInt32 begin + HSA_STATUS_ERROR_INVALID_MEMORY_POOL = 40 + HSA_STATUS_ERROR_MEMORY_APERTURE_VIOLATION = 41 + HSA_STATUS_ERROR_ILLEGAL_INSTRUCTION = 42 + HSA_STATUS_ERROR_MEMORY_FAULT = 43 + HSA_STATUS_CU_MASK_REDUCED = 44 + HSA_STATUS_ERROR_OUT_OF_REGISTERS = 45 + HSA_STATUS_ERROR_RESOURCE_BUSY = 46 +end + +@cenum hsa_amd_iommu_version_t::UInt32 begin + HSA_IOMMU_SUPPORT_NONE = 0 + HSA_IOMMU_SUPPORT_V2 = 1 +end + +@cenum hsa_amd_agent_info_s::UInt32 begin + HSA_AMD_AGENT_INFO_CHIP_ID = 40960 + HSA_AMD_AGENT_INFO_CACHELINE_SIZE = 40961 + HSA_AMD_AGENT_INFO_COMPUTE_UNIT_COUNT = 40962 + HSA_AMD_AGENT_INFO_MAX_CLOCK_FREQUENCY = 40963 + HSA_AMD_AGENT_INFO_DRIVER_NODE_ID = 40964 + HSA_AMD_AGENT_INFO_MAX_ADDRESS_WATCH_POINTS = 40965 + HSA_AMD_AGENT_INFO_BDFID = 40966 + HSA_AMD_AGENT_INFO_MEMORY_WIDTH = 40967 + HSA_AMD_AGENT_INFO_MEMORY_MAX_FREQUENCY = 40968 + HSA_AMD_AGENT_INFO_PRODUCT_NAME = 40969 + HSA_AMD_AGENT_INFO_MAX_WAVES_PER_CU = 40970 + HSA_AMD_AGENT_INFO_NUM_SIMDS_PER_CU = 40971 + HSA_AMD_AGENT_INFO_NUM_SHADER_ENGINES = 40972 + HSA_AMD_AGENT_INFO_NUM_SHADER_ARRAYS_PER_SE = 40973 + HSA_AMD_AGENT_INFO_HDP_FLUSH = 40974 + HSA_AMD_AGENT_INFO_DOMAIN = 40975 + HSA_AMD_AGENT_INFO_COOPERATIVE_QUEUES = 40976 + HSA_AMD_AGENT_INFO_UUID = 40977 + HSA_AMD_AGENT_INFO_ASIC_REVISION = 40978 + HSA_AMD_AGENT_INFO_SVM_DIRECT_HOST_ACCESS = 40979 + HSA_AMD_AGENT_INFO_COOPERATIVE_COMPUTE_UNIT_COUNT = 40980 + HSA_AMD_AGENT_INFO_MEMORY_AVAIL = 40981 + HSA_AMD_AGENT_INFO_TIMESTAMP_FREQUENCY = 40982 + HSA_AMD_AGENT_INFO_ASIC_FAMILY_ID = 41223 + HSA_AMD_AGENT_INFO_UCODE_VERSION = 41224 + HSA_AMD_AGENT_INFO_SDMA_UCODE_VERSION = 41225 + HSA_AMD_AGENT_INFO_NUM_SDMA_ENG = 41226 + HSA_AMD_AGENT_INFO_NUM_SDMA_XGMI_ENG = 41227 + HSA_AMD_AGENT_INFO_IOMMU_SUPPORT = 41232 + HSA_AMD_AGENT_INFO_NUM_XCC = 41233 + HSA_AMD_AGENT_INFO_DRIVER_UID = 41234 + HSA_AMD_AGENT_INFO_NEAREST_CPU = 41235 + HSA_AMD_AGENT_INFO_MEMORY_PROPERTIES = 41236 + HSA_AMD_AGENT_INFO_AQL_EXTENSIONS = 41237 + HSA_AMD_AGENT_INFO_SCRATCH_LIMIT_MAX = 41238 + HSA_AMD_AGENT_INFO_SCRATCH_LIMIT_CURRENT = 41239 +end + +const hsa_amd_agent_info_t = hsa_amd_agent_info_s + +@cenum hsa_amd_agent_memory_properties_s::UInt32 begin + HSA_AMD_MEMORY_PROPERTY_AGENT_IS_APU = 1 +end + +const hsa_amd_agent_memory_properties_t = hsa_amd_agent_memory_properties_s + +@cenum hsa_amd_sdma_engine_id::UInt32 begin + HSA_AMD_SDMA_ENGINE_0 = 1 + HSA_AMD_SDMA_ENGINE_1 = 2 + HSA_AMD_SDMA_ENGINE_2 = 4 + HSA_AMD_SDMA_ENGINE_3 = 8 + HSA_AMD_SDMA_ENGINE_4 = 16 + HSA_AMD_SDMA_ENGINE_5 = 32 + HSA_AMD_SDMA_ENGINE_6 = 64 + HSA_AMD_SDMA_ENGINE_7 = 128 + HSA_AMD_SDMA_ENGINE_8 = 256 + HSA_AMD_SDMA_ENGINE_9 = 512 + HSA_AMD_SDMA_ENGINE_10 = 1024 + HSA_AMD_SDMA_ENGINE_11 = 2048 + HSA_AMD_SDMA_ENGINE_12 = 4096 + HSA_AMD_SDMA_ENGINE_13 = 8192 + HSA_AMD_SDMA_ENGINE_14 = 16384 + HSA_AMD_SDMA_ENGINE_15 = 32768 +end + +const hsa_amd_sdma_engine_id_t = hsa_amd_sdma_engine_id + +struct hsa_amd_hdp_flush_s + HDP_MEM_FLUSH_CNTL::Ptr{UInt32} + HDP_REG_FLUSH_CNTL::Ptr{UInt32} +end + +const hsa_amd_hdp_flush_t = hsa_amd_hdp_flush_s + +@cenum hsa_amd_region_info_s::UInt32 begin + HSA_AMD_REGION_INFO_HOST_ACCESSIBLE = 40960 + HSA_AMD_REGION_INFO_BASE = 40961 + HSA_AMD_REGION_INFO_BUS_WIDTH = 40962 + HSA_AMD_REGION_INFO_MAX_CLOCK_FREQUENCY = 40963 +end + +const hsa_amd_region_info_t = hsa_amd_region_info_s + +@cenum hsa_amd_coherency_type_s::UInt32 begin + HSA_AMD_COHERENCY_TYPE_COHERENT = 0 + HSA_AMD_COHERENCY_TYPE_NONCOHERENT = 1 +end + +const hsa_amd_coherency_type_t = hsa_amd_coherency_type_s + +function hsa_amd_coherency_get_type(agent, type) + @ccall librocprofiler_sdk_tool.hsa_amd_coherency_get_type(agent::hsa_agent_t, + type::Ptr{hsa_amd_coherency_type_t})::hsa_status_t +end + +function hsa_amd_coherency_set_type(agent, type) + @ccall librocprofiler_sdk_tool.hsa_amd_coherency_set_type(agent::hsa_agent_t, + type::hsa_amd_coherency_type_t)::hsa_status_t +end + +struct hsa_amd_profiling_dispatch_time_s + start::UInt64 + _end::UInt64 +end + +const hsa_amd_profiling_dispatch_time_t = hsa_amd_profiling_dispatch_time_s + +struct hsa_amd_profiling_async_copy_time_s + start::UInt64 + _end::UInt64 +end + +const hsa_amd_profiling_async_copy_time_t = hsa_amd_profiling_async_copy_time_s + +function hsa_amd_profiling_set_profiler_enabled(queue, enable) + @ccall librocprofiler_sdk_tool.hsa_amd_profiling_set_profiler_enabled(queue::Ptr{hsa_queue_t}, + enable::Cint)::hsa_status_t +end + +function hsa_amd_profiling_async_copy_enable(enable) + @ccall librocprofiler_sdk_tool.hsa_amd_profiling_async_copy_enable(enable::Bool)::hsa_status_t +end + +function hsa_amd_profiling_get_dispatch_time(agent, signal, time) + @ccall librocprofiler_sdk_tool.hsa_amd_profiling_get_dispatch_time(agent::hsa_agent_t, + signal::hsa_signal_t, + time::Ptr{hsa_amd_profiling_dispatch_time_t})::hsa_status_t +end + +function hsa_amd_profiling_get_async_copy_time(signal, time) + @ccall librocprofiler_sdk_tool.hsa_amd_profiling_get_async_copy_time(signal::hsa_signal_t, + time::Ptr{hsa_amd_profiling_async_copy_time_t})::hsa_status_t +end + +function hsa_amd_profiling_convert_tick_to_system_domain(agent, agent_tick, system_tick) + @ccall librocprofiler_sdk_tool.hsa_amd_profiling_convert_tick_to_system_domain(agent::hsa_agent_t, + agent_tick::UInt64, + system_tick::Ptr{UInt64})::hsa_status_t +end + +@cenum hsa_amd_signal_attribute_t::UInt32 begin + HSA_AMD_SIGNAL_AMD_GPU_ONLY = 1 + HSA_AMD_SIGNAL_IPC = 2 +end + +function hsa_amd_signal_create(initial_value, num_consumers, consumers, attributes, signal) + @ccall librocprofiler_sdk_tool.hsa_amd_signal_create(initial_value::hsa_signal_value_t, + num_consumers::UInt32, + consumers::Ptr{hsa_agent_t}, + attributes::UInt64, + signal::Ptr{hsa_signal_t})::hsa_status_t +end + +function hsa_amd_signal_value_pointer(signal, value_ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_signal_value_pointer(signal::hsa_signal_t, + value_ptr::Ptr{Ptr{hsa_signal_value_t}})::hsa_status_t +end + +# typedef bool ( * hsa_amd_signal_handler ) ( hsa_signal_value_t value , void * arg ) +const hsa_amd_signal_handler = Ptr{Cvoid} + +function hsa_amd_signal_async_handler(signal, cond, value, handler, arg) + @ccall librocprofiler_sdk_tool.hsa_amd_signal_async_handler(signal::hsa_signal_t, + cond::hsa_signal_condition_t, + value::hsa_signal_value_t, + handler::hsa_amd_signal_handler, + arg::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_signal_wait_all(signal_count, signals, conds, values, timeout_hint, + wait_hint, satisfying_values) + @ccall librocprofiler_sdk_tool.hsa_amd_signal_wait_all(signal_count::UInt32, + signals::Ptr{hsa_signal_t}, + conds::Ptr{hsa_signal_condition_t}, + values::Ptr{hsa_signal_value_t}, + timeout_hint::UInt64, + wait_hint::hsa_wait_state_t, + satisfying_values::Ptr{hsa_signal_value_t})::UInt32 +end + +function hsa_amd_signal_wait_any(signal_count, signals, conds, values, timeout_hint, + wait_hint, satisfying_value) + @ccall librocprofiler_sdk_tool.hsa_amd_signal_wait_any(signal_count::UInt32, + signals::Ptr{hsa_signal_t}, + conds::Ptr{hsa_signal_condition_t}, + values::Ptr{hsa_signal_value_t}, + timeout_hint::UInt64, + wait_hint::hsa_wait_state_t, + satisfying_value::Ptr{hsa_signal_value_t})::UInt32 +end + +function hsa_amd_async_function(callback, arg) + @ccall librocprofiler_sdk_tool.hsa_amd_async_function(callback::Ptr{Cvoid}, + arg::Ptr{Cvoid})::hsa_status_t +end + +struct hsa_amd_image_descriptor_s + version::UInt32 + deviceID::UInt32 + data::NTuple{1,UInt32} +end + +const hsa_amd_image_descriptor_t = hsa_amd_image_descriptor_s + +function hsa_amd_image_create(agent, image_descriptor, image_layout, image_data, + access_permission, image) + @ccall librocprofiler_sdk_tool.hsa_amd_image_create(agent::hsa_agent_t, + image_descriptor::Ptr{hsa_ext_image_descriptor_t}, + image_layout::Ptr{hsa_amd_image_descriptor_t}, + image_data::Ptr{Cvoid}, + access_permission::hsa_access_permission_t, + image::Ptr{hsa_ext_image_t})::hsa_status_t +end + +function hsa_amd_image_get_info_max_dim(agent, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_amd_image_get_info_max_dim(agent::hsa_agent_t, + attribute::hsa_agent_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_queue_cu_set_mask(queue, num_cu_mask_count, cu_mask) + @ccall librocprofiler_sdk_tool.hsa_amd_queue_cu_set_mask(queue::Ptr{hsa_queue_t}, + num_cu_mask_count::UInt32, + cu_mask::Ptr{UInt32})::hsa_status_t +end + +function hsa_amd_queue_cu_get_mask(queue, num_cu_mask_count, cu_mask) + @ccall librocprofiler_sdk_tool.hsa_amd_queue_cu_get_mask(queue::Ptr{hsa_queue_t}, + num_cu_mask_count::UInt32, + cu_mask::Ptr{UInt32})::hsa_status_t +end + +@cenum hsa_amd_segment_t::UInt32 begin + HSA_AMD_SEGMENT_GLOBAL = 0 + HSA_AMD_SEGMENT_READONLY = 1 + HSA_AMD_SEGMENT_PRIVATE = 2 + HSA_AMD_SEGMENT_GROUP = 3 +end + +struct hsa_amd_memory_pool_s + handle::UInt64 +end + +const hsa_amd_memory_pool_t = hsa_amd_memory_pool_s + +@cenum hsa_amd_memory_pool_global_flag_s::UInt32 begin + HSA_AMD_MEMORY_POOL_GLOBAL_FLAG_KERNARG_INIT = 1 + HSA_AMD_MEMORY_POOL_GLOBAL_FLAG_FINE_GRAINED = 2 + HSA_AMD_MEMORY_POOL_GLOBAL_FLAG_COARSE_GRAINED = 4 + HSA_AMD_MEMORY_POOL_GLOBAL_FLAG_EXTENDED_SCOPE_FINE_GRAINED = 8 +end + +const hsa_amd_memory_pool_global_flag_t = hsa_amd_memory_pool_global_flag_s + +@cenum hsa_amd_memory_pool_location_s::UInt32 begin + HSA_AMD_MEMORY_POOL_LOCATION_CPU = 0 + HSA_AMD_MEMORY_POOL_LOCATION_GPU = 1 +end + +const hsa_amd_memory_pool_location_t = hsa_amd_memory_pool_location_s + +@cenum hsa_amd_memory_pool_info_t::UInt32 begin + HSA_AMD_MEMORY_POOL_INFO_SEGMENT = 0 + HSA_AMD_MEMORY_POOL_INFO_GLOBAL_FLAGS = 1 + HSA_AMD_MEMORY_POOL_INFO_SIZE = 2 + HSA_AMD_MEMORY_POOL_INFO_RUNTIME_ALLOC_ALLOWED = 5 + HSA_AMD_MEMORY_POOL_INFO_RUNTIME_ALLOC_GRANULE = 6 + HSA_AMD_MEMORY_POOL_INFO_RUNTIME_ALLOC_ALIGNMENT = 7 + HSA_AMD_MEMORY_POOL_INFO_ACCESSIBLE_BY_ALL = 15 + HSA_AMD_MEMORY_POOL_INFO_ALLOC_MAX_SIZE = 16 + HSA_AMD_MEMORY_POOL_INFO_LOCATION = 17 + HSA_AMD_MEMORY_POOL_INFO_RUNTIME_ALLOC_REC_GRANULE = 18 +end + +@cenum hsa_amd_memory_pool_flag_s::UInt32 begin + HSA_AMD_MEMORY_POOL_STANDARD_FLAG = 0 + HSA_AMD_MEMORY_POOL_PCIE_FLAG = 1 + HSA_AMD_MEMORY_POOL_CONTIGUOUS_FLAG = 2 + HSA_AMD_MEMORY_POOL_EXECUTABLE_FLAG = 4 +end + +const hsa_amd_memory_pool_flag_t = hsa_amd_memory_pool_flag_s + +function hsa_amd_memory_pool_get_info(memory_pool, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_pool_get_info(memory_pool::hsa_amd_memory_pool_t, + attribute::hsa_amd_memory_pool_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_agent_iterate_memory_pools(agent, callback, data) + @ccall librocprofiler_sdk_tool.hsa_amd_agent_iterate_memory_pools(agent::hsa_agent_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_memory_pool_allocate(memory_pool, size, flags, ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_pool_allocate(memory_pool::hsa_amd_memory_pool_t, + size::Csize_t, + flags::UInt32, + ptr::Ptr{Ptr{Cvoid}})::hsa_status_t +end + +function hsa_amd_memory_pool_free(ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_pool_free(ptr::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_memory_async_copy(dst, dst_agent, src, src_agent, size, num_dep_signals, + dep_signals, completion_signal) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_async_copy(dst::Ptr{Cvoid}, + dst_agent::hsa_agent_t, + src::Ptr{Cvoid}, + src_agent::hsa_agent_t, + size::Csize_t, + num_dep_signals::UInt32, + dep_signals::Ptr{hsa_signal_t}, + completion_signal::hsa_signal_t)::hsa_status_t +end + +function hsa_amd_memory_async_copy_on_engine(dst, dst_agent, src, src_agent, size, + num_dep_signals, dep_signals, + completion_signal, engine_id, + force_copy_on_sdma) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_async_copy_on_engine(dst::Ptr{Cvoid}, + dst_agent::hsa_agent_t, + src::Ptr{Cvoid}, + src_agent::hsa_agent_t, + size::Csize_t, + num_dep_signals::UInt32, + dep_signals::Ptr{hsa_signal_t}, + completion_signal::hsa_signal_t, + engine_id::hsa_amd_sdma_engine_id_t, + force_copy_on_sdma::Bool)::hsa_status_t +end + +function hsa_amd_memory_copy_engine_status(dst_agent, src_agent, engine_ids_mask) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_copy_engine_status(dst_agent::hsa_agent_t, + src_agent::hsa_agent_t, + engine_ids_mask::Ptr{UInt32})::hsa_status_t +end + +function hsa_amd_memory_get_preferred_copy_engine(dst_agent, src_agent, + recommended_ids_mask) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_get_preferred_copy_engine(dst_agent::hsa_agent_t, + src_agent::hsa_agent_t, + recommended_ids_mask::Ptr{UInt32})::hsa_status_t +end + +struct hsa_pitched_ptr_s + base::Ptr{Cvoid} + pitch::Csize_t + slice::Csize_t +end + +const hsa_pitched_ptr_t = hsa_pitched_ptr_s + +@cenum hsa_amd_copy_direction_t::UInt32 begin + hsaHostToHost = 0 + hsaHostToDevice = 1 + hsaDeviceToHost = 2 + hsaDeviceToDevice = 3 +end + +function hsa_amd_memory_async_copy_rect(dst, dst_offset, src, src_offset, range, copy_agent, + dir, num_dep_signals, dep_signals, + completion_signal) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_async_copy_rect(dst::Ptr{hsa_pitched_ptr_t}, + dst_offset::Ptr{hsa_dim3_t}, + src::Ptr{hsa_pitched_ptr_t}, + src_offset::Ptr{hsa_dim3_t}, + range::Ptr{hsa_dim3_t}, + copy_agent::hsa_agent_t, + dir::hsa_amd_copy_direction_t, + num_dep_signals::UInt32, + dep_signals::Ptr{hsa_signal_t}, + completion_signal::hsa_signal_t)::hsa_status_t +end + +@cenum hsa_amd_memory_pool_access_t::UInt32 begin + HSA_AMD_MEMORY_POOL_ACCESS_NEVER_ALLOWED = 0 + HSA_AMD_MEMORY_POOL_ACCESS_ALLOWED_BY_DEFAULT = 1 + HSA_AMD_MEMORY_POOL_ACCESS_DISALLOWED_BY_DEFAULT = 2 +end + +@cenum hsa_amd_link_info_type_t::UInt32 begin + HSA_AMD_LINK_INFO_TYPE_HYPERTRANSPORT = 0 + HSA_AMD_LINK_INFO_TYPE_QPI = 1 + HSA_AMD_LINK_INFO_TYPE_PCIE = 2 + HSA_AMD_LINK_INFO_TYPE_INFINBAND = 3 + HSA_AMD_LINK_INFO_TYPE_XGMI = 4 +end + +struct hsa_amd_memory_pool_link_info_s + min_latency::UInt32 + max_latency::UInt32 + min_bandwidth::UInt32 + max_bandwidth::UInt32 + atomic_support_32bit::Bool + atomic_support_64bit::Bool + coherent_support::Bool + link_type::hsa_amd_link_info_type_t + numa_distance::UInt32 +end + +const hsa_amd_memory_pool_link_info_t = hsa_amd_memory_pool_link_info_s + +@cenum hsa_amd_agent_memory_pool_info_t::UInt32 begin + HSA_AMD_AGENT_MEMORY_POOL_INFO_ACCESS = 0 + HSA_AMD_AGENT_MEMORY_POOL_INFO_NUM_LINK_HOPS = 1 + HSA_AMD_AGENT_MEMORY_POOL_INFO_LINK_INFO = 2 +end + +function hsa_amd_agent_memory_pool_get_info(agent, memory_pool, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_amd_agent_memory_pool_get_info(agent::hsa_agent_t, + memory_pool::hsa_amd_memory_pool_t, + attribute::hsa_amd_agent_memory_pool_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_agents_allow_access(num_agents, agents, flags, ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_agents_allow_access(num_agents::UInt32, + agents::Ptr{hsa_agent_t}, + flags::Ptr{UInt32}, + ptr::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_memory_pool_can_migrate(src_memory_pool, dst_memory_pool, result) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_pool_can_migrate(src_memory_pool::hsa_amd_memory_pool_t, + dst_memory_pool::hsa_amd_memory_pool_t, + result::Ptr{Bool})::hsa_status_t +end + +function hsa_amd_memory_migrate(ptr, memory_pool, flags) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_migrate(ptr::Ptr{Cvoid}, + memory_pool::hsa_amd_memory_pool_t, + flags::UInt32)::hsa_status_t +end + +function hsa_amd_memory_lock(host_ptr, size, agents, num_agent, agent_ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_lock(host_ptr::Ptr{Cvoid}, size::Csize_t, + agents::Ptr{hsa_agent_t}, + num_agent::Cint, + agent_ptr::Ptr{Ptr{Cvoid}})::hsa_status_t +end + +function hsa_amd_memory_lock_to_pool(host_ptr, size, agents, num_agent, pool, flags, + agent_ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_lock_to_pool(host_ptr::Ptr{Cvoid}, + size::Csize_t, + agents::Ptr{hsa_agent_t}, + num_agent::Cint, + pool::hsa_amd_memory_pool_t, + flags::UInt32, + agent_ptr::Ptr{Ptr{Cvoid}})::hsa_status_t +end + +function hsa_amd_memory_unlock(host_ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_unlock(host_ptr::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_memory_fill(ptr, value, count) + @ccall librocprofiler_sdk_tool.hsa_amd_memory_fill(ptr::Ptr{Cvoid}, value::UInt32, + count::Csize_t)::hsa_status_t +end + +function hsa_amd_interop_map_buffer(num_agents, agents, interop_handle, flags, size, ptr, + metadata_size, metadata) + @ccall librocprofiler_sdk_tool.hsa_amd_interop_map_buffer(num_agents::UInt32, + agents::Ptr{hsa_agent_t}, + interop_handle::Cint, + flags::UInt32, + size::Ptr{Csize_t}, + ptr::Ptr{Ptr{Cvoid}}, + metadata_size::Ptr{Csize_t}, + metadata::Ptr{Ptr{Cvoid}})::hsa_status_t +end + +function hsa_amd_interop_unmap_buffer(ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_interop_unmap_buffer(ptr::Ptr{Cvoid})::hsa_status_t +end + +@cenum hsa_amd_pointer_type_t::UInt32 begin + HSA_EXT_POINTER_TYPE_UNKNOWN = 0 + HSA_EXT_POINTER_TYPE_HSA = 1 + HSA_EXT_POINTER_TYPE_LOCKED = 2 + HSA_EXT_POINTER_TYPE_GRAPHICS = 3 + HSA_EXT_POINTER_TYPE_IPC = 4 + HSA_EXT_POINTER_TYPE_RESERVED_ADDR = 5 +end + +struct hsa_amd_pointer_info_s + size::UInt32 + type::hsa_amd_pointer_type_t + agentBaseAddress::Ptr{Cvoid} + hostBaseAddress::Ptr{Cvoid} + sizeInBytes::Csize_t + userData::Ptr{Cvoid} + agentOwner::hsa_agent_t + global_flags::UInt32 +end + +const hsa_amd_pointer_info_t = hsa_amd_pointer_info_s + +function hsa_amd_pointer_info(ptr, info, alloc, num_agents_accessible, accessible) + @ccall librocprofiler_sdk_tool.hsa_amd_pointer_info(ptr::Ptr{Cvoid}, + info::Ptr{hsa_amd_pointer_info_t}, + alloc::Ptr{Cvoid}, + num_agents_accessible::Ptr{UInt32}, + accessible::Ptr{Ptr{hsa_agent_t}})::hsa_status_t +end + +function hsa_amd_pointer_info_set_userdata(ptr, userdata) + @ccall librocprofiler_sdk_tool.hsa_amd_pointer_info_set_userdata(ptr::Ptr{Cvoid}, + userdata::Ptr{Cvoid})::hsa_status_t +end + +struct hsa_amd_ipc_memory_s + handle::NTuple{8,UInt32} +end + +const hsa_amd_ipc_memory_t = hsa_amd_ipc_memory_s + +function hsa_amd_ipc_memory_create(ptr, len, handle) + @ccall librocprofiler_sdk_tool.hsa_amd_ipc_memory_create(ptr::Ptr{Cvoid}, len::Csize_t, + handle::Ptr{hsa_amd_ipc_memory_t})::hsa_status_t +end + +function hsa_amd_ipc_memory_attach(handle, len, num_agents, mapping_agents, mapped_ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_ipc_memory_attach(handle::Ptr{hsa_amd_ipc_memory_t}, + len::Csize_t, + num_agents::UInt32, + mapping_agents::Ptr{hsa_agent_t}, + mapped_ptr::Ptr{Ptr{Cvoid}})::hsa_status_t +end + +function hsa_amd_ipc_memory_detach(mapped_ptr) + @ccall librocprofiler_sdk_tool.hsa_amd_ipc_memory_detach(mapped_ptr::Ptr{Cvoid})::hsa_status_t +end + +const hsa_amd_ipc_signal_t = hsa_amd_ipc_memory_t + +function hsa_amd_ipc_signal_create(signal, handle) + @ccall librocprofiler_sdk_tool.hsa_amd_ipc_signal_create(signal::hsa_signal_t, + handle::Ptr{hsa_amd_ipc_signal_t})::hsa_status_t +end + +function hsa_amd_ipc_signal_attach(handle, signal) + @ccall librocprofiler_sdk_tool.hsa_amd_ipc_signal_attach(handle::Ptr{hsa_amd_ipc_signal_t}, + signal::Ptr{hsa_signal_t})::hsa_status_t +end + +@cenum hsa_amd_event_type_s::UInt32 begin + HSA_AMD_GPU_MEMORY_FAULT_EVENT = 0 + HSA_AMD_GPU_HW_EXCEPTION_EVENT = 1 + HSA_AMD_GPU_MEMORY_ERROR_EVENT = 2 +end + +const hsa_amd_event_type_t = hsa_amd_event_type_s + +@cenum hsa_amd_memory_fault_reason_t::UInt32 begin + HSA_AMD_MEMORY_FAULT_PAGE_NOT_PRESENT = 1 + HSA_AMD_MEMORY_FAULT_READ_ONLY = 2 + HSA_AMD_MEMORY_FAULT_NX = 4 + HSA_AMD_MEMORY_FAULT_HOST_ONLY = 8 + HSA_AMD_MEMORY_FAULT_DRAMECC = 16 + HSA_AMD_MEMORY_FAULT_IMPRECISE = 32 + HSA_AMD_MEMORY_FAULT_SRAMECC = 64 + HSA_AMD_MEMORY_FAULT_HANG = 0x0000000080000000 +end + +struct hsa_amd_gpu_memory_fault_info_s + agent::hsa_agent_t + virtual_address::UInt64 + fault_reason_mask::UInt32 +end + +const hsa_amd_gpu_memory_fault_info_t = hsa_amd_gpu_memory_fault_info_s + +@cenum hsa_amd_memory_error_reason_t::UInt32 begin + HSA_AMD_MEMORY_ERROR_MEMORY_IN_USE = 1 +end + +struct hsa_amd_gpu_memory_error_info_s + agent::hsa_agent_t + virtual_address::UInt64 + error_reason_mask::UInt32 +end + +const hsa_amd_gpu_memory_error_info_t = hsa_amd_gpu_memory_error_info_s + +@cenum hsa_amd_hw_exception_reset_type_t::UInt32 begin + HSA_AMD_HW_EXCEPTION_RESET_TYPE_OTHER = 1 +end + +@cenum hsa_amd_hw_exception_reset_cause_t::UInt32 begin + HSA_AMD_HW_EXCEPTION_CAUSE_GPU_HANG = 1 + HSA_AMD_HW_EXCEPTION_CAUSE_ECC = 2 +end + +struct hsa_amd_gpu_hw_exception_info_s + agent::hsa_agent_t + reset_type::hsa_amd_hw_exception_reset_type_t + reset_cause::hsa_amd_hw_exception_reset_cause_t +end + +const hsa_amd_gpu_hw_exception_info_t = hsa_amd_gpu_hw_exception_info_s + +struct hsa_amd_event_s + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{hsa_amd_event_s}, f::Symbol) + f === :event_type && return Ptr{hsa_amd_event_type_t}(x + 0) + f === + Symbol("union hsa_amd_event_s::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsa/hsa_ext_amd.h:2729:3)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hsa_amd_event_s, f::Symbol) + r = Ref{hsa_amd_event_s}(x) + ptr = Base.unsafe_convert(Ptr{hsa_amd_event_s}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hsa_amd_event_s}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hsa_amd_event_s, private::Bool=false) + return (:event_type, + Symbol("union hsa_amd_event_s::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hsa/hsa_ext_amd.h:2729:3)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const hsa_amd_event_t = hsa_amd_event_s + +# typedef hsa_status_t ( * hsa_amd_system_event_callback_t ) ( const hsa_amd_event_t * event , void * data ) +const hsa_amd_system_event_callback_t = Ptr{Cvoid} + +function hsa_amd_register_system_event_handler(callback, data) + @ccall librocprofiler_sdk_tool.hsa_amd_register_system_event_handler(callback::hsa_amd_system_event_callback_t, + data::Ptr{Cvoid})::hsa_status_t +end + +@cenum hsa_amd_queue_priority_s::UInt32 begin + HSA_AMD_QUEUE_PRIORITY_LOW = 0 + HSA_AMD_QUEUE_PRIORITY_NORMAL = 1 + HSA_AMD_QUEUE_PRIORITY_HIGH = 2 +end + +const hsa_amd_queue_priority_t = hsa_amd_queue_priority_s + +function hsa_amd_queue_set_priority(queue, priority) + @ccall librocprofiler_sdk_tool.hsa_amd_queue_set_priority(queue::Ptr{hsa_queue_t}, + priority::hsa_amd_queue_priority_t)::hsa_status_t +end + +@cenum hsa_amd_queue_create_flag_t::UInt32 begin + HSA_AMD_QUEUE_CREATE_SYSTEM_MEM = 0 + HSA_AMD_QUEUE_CREATE_DEVICE_MEM_RING_BUF = 1 + HSA_AMD_QUEUE_CREATE_DEVICE_MEM_QUEUE_DESCRIPTOR = 2 +end + +# typedef void ( * hsa_amd_deallocation_callback_t ) ( void * ptr , void * user_data ) +const hsa_amd_deallocation_callback_t = Ptr{Cvoid} + +function hsa_amd_register_deallocation_callback(ptr, callback, user_data) + @ccall librocprofiler_sdk_tool.hsa_amd_register_deallocation_callback(ptr::Ptr{Cvoid}, + callback::hsa_amd_deallocation_callback_t, + user_data::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_deregister_deallocation_callback(ptr, callback) + @ccall librocprofiler_sdk_tool.hsa_amd_deregister_deallocation_callback(ptr::Ptr{Cvoid}, + callback::hsa_amd_deallocation_callback_t)::hsa_status_t +end + +@cenum hsa_amd_svm_model_s::UInt32 begin + HSA_AMD_SVM_GLOBAL_FLAG_FINE_GRAINED = 0 + HSA_AMD_SVM_GLOBAL_FLAG_COARSE_GRAINED = 1 + HSA_AMD_SVM_GLOBAL_FLAG_INDETERMINATE = 2 +end + +const hsa_amd_svm_model_t = hsa_amd_svm_model_s + +@cenum hsa_amd_svm_attribute_s::UInt32 begin + HSA_AMD_SVM_ATTRIB_GLOBAL_FLAG = 0 + HSA_AMD_SVM_ATTRIB_READ_ONLY = 1 + HSA_AMD_SVM_ATTRIB_HIVE_LOCAL = 2 + HSA_AMD_SVM_ATTRIB_MIGRATION_GRANULARITY = 3 + HSA_AMD_SVM_ATTRIB_PREFERRED_LOCATION = 4 + HSA_AMD_SVM_ATTRIB_PREFETCH_LOCATION = 5 + HSA_AMD_SVM_ATTRIB_READ_MOSTLY = 6 + HSA_AMD_SVM_ATTRIB_GPU_EXEC = 7 + HSA_AMD_SVM_ATTRIB_AGENT_ACCESSIBLE = 512 + HSA_AMD_SVM_ATTRIB_AGENT_ACCESSIBLE_IN_PLACE = 513 + HSA_AMD_SVM_ATTRIB_AGENT_NO_ACCESS = 514 + HSA_AMD_SVM_ATTRIB_ACCESS_QUERY = 515 +end + +const hsa_amd_svm_attribute_t = hsa_amd_svm_attribute_s + +struct hsa_amd_svm_attribute_pair_s + attribute::UInt64 + value::UInt64 +end + +const hsa_amd_svm_attribute_pair_t = hsa_amd_svm_attribute_pair_s + +function hsa_amd_svm_attributes_set(ptr, size, attribute_list, attribute_count) + @ccall librocprofiler_sdk_tool.hsa_amd_svm_attributes_set(ptr::Ptr{Cvoid}, + size::Csize_t, + attribute_list::Ptr{hsa_amd_svm_attribute_pair_t}, + attribute_count::Csize_t)::hsa_status_t +end + +function hsa_amd_svm_attributes_get(ptr, size, attribute_list, attribute_count) + @ccall librocprofiler_sdk_tool.hsa_amd_svm_attributes_get(ptr::Ptr{Cvoid}, + size::Csize_t, + attribute_list::Ptr{hsa_amd_svm_attribute_pair_t}, + attribute_count::Csize_t)::hsa_status_t +end + +function hsa_amd_svm_prefetch_async(ptr, size, agent, num_dep_signals, dep_signals, + completion_signal) + @ccall librocprofiler_sdk_tool.hsa_amd_svm_prefetch_async(ptr::Ptr{Cvoid}, + size::Csize_t, + agent::hsa_agent_t, + num_dep_signals::UInt32, + dep_signals::Ptr{hsa_signal_t}, + completion_signal::hsa_signal_t)::hsa_status_t +end + +function hsa_amd_spm_acquire(preferred_agent) + @ccall librocprofiler_sdk_tool.hsa_amd_spm_acquire(preferred_agent::hsa_agent_t)::hsa_status_t +end + +function hsa_amd_spm_release(preferred_agent) + @ccall librocprofiler_sdk_tool.hsa_amd_spm_release(preferred_agent::hsa_agent_t)::hsa_status_t +end + +function hsa_amd_spm_set_dest_buffer(preferred_agent, size_in_bytes, timeout, size_copied, + dest, is_data_loss) + @ccall librocprofiler_sdk_tool.hsa_amd_spm_set_dest_buffer(preferred_agent::hsa_agent_t, + size_in_bytes::Csize_t, + timeout::Ptr{UInt32}, + size_copied::Ptr{UInt32}, + dest::Ptr{Cvoid}, + is_data_loss::Ptr{Bool})::hsa_status_t +end + +function hsa_amd_portable_export_dmabuf(ptr, size, dmabuf, offset) + @ccall librocprofiler_sdk_tool.hsa_amd_portable_export_dmabuf(ptr::Ptr{Cvoid}, + size::Csize_t, + dmabuf::Ptr{Cint}, + offset::Ptr{UInt64})::hsa_status_t +end + +function hsa_amd_portable_close_dmabuf(dmabuf) + @ccall librocprofiler_sdk_tool.hsa_amd_portable_close_dmabuf(dmabuf::Cint)::hsa_status_t +end + +function hsa_amd_vmem_address_reserve(va, size, address, flags) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_address_reserve(va::Ptr{Ptr{Cvoid}}, + size::Csize_t, + address::UInt64, + flags::UInt64)::hsa_status_t +end + +function hsa_amd_vmem_address_reserve_align(va, size, address, alignment, flags) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_address_reserve_align(va::Ptr{Ptr{Cvoid}}, + size::Csize_t, + address::UInt64, + alignment::UInt64, + flags::UInt64)::hsa_status_t +end + +function hsa_amd_vmem_address_free(va, size) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_address_free(va::Ptr{Cvoid}, + size::Csize_t)::hsa_status_t +end + +struct hsa_amd_vmem_alloc_handle_s + handle::UInt64 +end + +const hsa_amd_vmem_alloc_handle_t = hsa_amd_vmem_alloc_handle_s + +@cenum hsa_amd_memory_type_t::UInt32 begin + MEMORY_TYPE_NONE = 0 + MEMORY_TYPE_PINNED = 1 +end + +function hsa_amd_vmem_handle_create(pool, size, type, flags, memory_handle) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_handle_create(pool::hsa_amd_memory_pool_t, + size::Csize_t, + type::hsa_amd_memory_type_t, + flags::UInt64, + memory_handle::Ptr{hsa_amd_vmem_alloc_handle_t})::hsa_status_t +end + +function hsa_amd_vmem_handle_release(memory_handle) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_handle_release(memory_handle::hsa_amd_vmem_alloc_handle_t)::hsa_status_t +end + +function hsa_amd_vmem_map(va, size, in_offset, memory_handle, flags) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_map(va::Ptr{Cvoid}, size::Csize_t, + in_offset::Csize_t, + memory_handle::hsa_amd_vmem_alloc_handle_t, + flags::UInt64)::hsa_status_t +end + +function hsa_amd_vmem_unmap(va, size) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_unmap(va::Ptr{Cvoid}, + size::Csize_t)::hsa_status_t +end + +struct hsa_amd_memory_access_desc_s + permissions::hsa_access_permission_t + agent_handle::hsa_agent_t +end + +const hsa_amd_memory_access_desc_t = hsa_amd_memory_access_desc_s + +function hsa_amd_vmem_set_access(va, size, desc, desc_cnt) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_set_access(va::Ptr{Cvoid}, size::Csize_t, + desc::Ptr{hsa_amd_memory_access_desc_t}, + desc_cnt::Csize_t)::hsa_status_t +end + +function hsa_amd_vmem_get_access(va, perms, agent_handle) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_get_access(va::Ptr{Cvoid}, + perms::Ptr{hsa_access_permission_t}, + agent_handle::hsa_agent_t)::hsa_status_t +end + +function hsa_amd_vmem_export_shareable_handle(dmabuf_fd, handle, flags) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_export_shareable_handle(dmabuf_fd::Ptr{Cint}, + handle::hsa_amd_vmem_alloc_handle_t, + flags::UInt64)::hsa_status_t +end + +function hsa_amd_vmem_import_shareable_handle(dmabuf_fd, handle) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_import_shareable_handle(dmabuf_fd::Cint, + handle::Ptr{hsa_amd_vmem_alloc_handle_t})::hsa_status_t +end + +function hsa_amd_vmem_retain_alloc_handle(memory_handle, addr) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_retain_alloc_handle(memory_handle::Ptr{hsa_amd_vmem_alloc_handle_t}, + addr::Ptr{Cvoid})::hsa_status_t +end + +function hsa_amd_vmem_get_alloc_properties_from_handle(memory_handle, pool, type) + @ccall librocprofiler_sdk_tool.hsa_amd_vmem_get_alloc_properties_from_handle(memory_handle::hsa_amd_vmem_alloc_handle_t, + pool::Ptr{hsa_amd_memory_pool_t}, + type::Ptr{hsa_amd_memory_type_t})::hsa_status_t +end + +function hsa_amd_agent_set_async_scratch_limit(agent, threshold) + @ccall librocprofiler_sdk_tool.hsa_amd_agent_set_async_scratch_limit(agent::hsa_agent_t, + threshold::Csize_t)::hsa_status_t +end + +@cenum hsa_queue_info_attribute_t::UInt32 begin + HSA_AMD_QUEUE_INFO_AGENT = 0 + HSA_AMD_QUEUE_INFO_DOORBELL_ID = 1 +end + +function hsa_amd_queue_get_info(queue, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_amd_queue_get_info(queue::Ptr{hsa_queue_t}, + attribute::hsa_queue_info_attribute_t, + value::Ptr{Cvoid})::hsa_status_t +end + +@cenum hsa_amd_log_flag_s::UInt32 begin + HSA_AMD_LOG_FLAG_BLIT_KERNEL_PKTS = 0 +end + +const hsa_amd_log_flag_t = hsa_amd_log_flag_s + +function hsa_amd_enable_logging(flags, file) + @ccall librocprofiler_sdk_tool.hsa_amd_enable_logging(flags::Ptr{UInt8}, + file::Ptr{Cvoid})::hsa_status_t +end + +mutable struct BrigModuleHeader end + +const BrigModule_t = Ptr{BrigModuleHeader} + +@cenum var"##Ctag#282"::UInt32 begin + HSA_EXT_STATUS_ERROR_INVALID_PROGRAM = 8192 + HSA_EXT_STATUS_ERROR_INVALID_MODULE = 8193 + HSA_EXT_STATUS_ERROR_INCOMPATIBLE_MODULE = 8194 + HSA_EXT_STATUS_ERROR_MODULE_ALREADY_INCLUDED = 8195 + HSA_EXT_STATUS_ERROR_SYMBOL_MISMATCH = 8196 + HSA_EXT_STATUS_ERROR_FINALIZATION_FAILED = 8197 + HSA_EXT_STATUS_ERROR_DIRECTIVE_MISMATCH = 8198 +end + +const hsa_ext_module_t = BrigModule_t + +struct hsa_ext_program_s + handle::UInt64 +end + +const hsa_ext_program_t = hsa_ext_program_s + +function hsa_ext_program_create(machine_model, profile, default_float_rounding_mode, + options, program) + @ccall librocprofiler_sdk_tool.hsa_ext_program_create(machine_model::hsa_machine_model_t, + profile::hsa_profile_t, + default_float_rounding_mode::hsa_default_float_rounding_mode_t, + options::Ptr{Cchar}, + program::Ptr{hsa_ext_program_t})::hsa_status_t +end + +function hsa_ext_program_destroy(program) + @ccall librocprofiler_sdk_tool.hsa_ext_program_destroy(program::hsa_ext_program_t)::hsa_status_t +end + +function hsa_ext_program_add_module(program, _module) + @ccall librocprofiler_sdk_tool.hsa_ext_program_add_module(program::hsa_ext_program_t, + _module::hsa_ext_module_t)::hsa_status_t +end + +function hsa_ext_program_iterate_modules(program, callback, data) + @ccall librocprofiler_sdk_tool.hsa_ext_program_iterate_modules(program::hsa_ext_program_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +@cenum hsa_ext_program_info_t::UInt32 begin + HSA_EXT_PROGRAM_INFO_MACHINE_MODEL = 0 + HSA_EXT_PROGRAM_INFO_PROFILE = 1 + HSA_EXT_PROGRAM_INFO_DEFAULT_FLOAT_ROUNDING_MODE = 2 +end + +function hsa_ext_program_get_info(program, attribute, value) + @ccall librocprofiler_sdk_tool.hsa_ext_program_get_info(program::hsa_ext_program_t, + attribute::hsa_ext_program_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +@cenum hsa_ext_finalizer_call_convention_t::Int32 begin + HSA_EXT_FINALIZER_CALL_CONVENTION_AUTO = -1 +end + +struct hsa_ext_control_directives_s + control_directives_mask::UInt64 + break_exceptions_mask::UInt16 + detect_exceptions_mask::UInt16 + max_dynamic_group_size::UInt32 + max_flat_grid_size::UInt64 + max_flat_workgroup_size::UInt32 + reserved1::UInt32 + required_grid_size::NTuple{3,UInt64} + required_workgroup_size::hsa_dim3_t + required_dim::UInt8 + reserved2::NTuple{75,UInt8} +end + +const hsa_ext_control_directives_t = hsa_ext_control_directives_s + +function hsa_ext_program_finalize(program, isa, call_convention, control_directives, + options, code_object_type, code_object) + @ccall librocprofiler_sdk_tool.hsa_ext_program_finalize(program::hsa_ext_program_t, + isa::hsa_isa_t, + call_convention::Int32, + control_directives::hsa_ext_control_directives_t, + options::Ptr{Cchar}, + code_object_type::hsa_code_object_type_t, + code_object::Ptr{hsa_code_object_t})::hsa_status_t +end + +struct hsa_ext_finalizer_1_00_pfn_s + hsa_ext_program_create::Ptr{Cvoid} + hsa_ext_program_destroy::Ptr{Cvoid} + hsa_ext_program_add_module::Ptr{Cvoid} + hsa_ext_program_iterate_modules::Ptr{Cvoid} + hsa_ext_program_get_info::Ptr{Cvoid} + hsa_ext_program_finalize::Ptr{Cvoid} +end + +const hsa_ext_finalizer_1_00_pfn_t = hsa_ext_finalizer_1_00_pfn_s + +struct rocprofiler_hsa_api_no_args + empty::Cchar +end + +struct rocprofiler_hsa_api_retval_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_hsa_api_retval_t}, f::Symbol) + f === :uint64_t_retval && return Ptr{UInt64}(x + 0) + f === :uint32_t_retval && return Ptr{UInt32}(x + 0) + f === :hsa_signal_value_t_retval && return Ptr{hsa_signal_value_t}(x + 0) + f === :hsa_status_t_retval && return Ptr{hsa_status_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_hsa_api_retval_t, f::Symbol) + r = Ref{rocprofiler_hsa_api_retval_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_hsa_api_retval_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_hsa_api_retval_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_hsa_api_retval_t, private::Bool=false) + return (:uint64_t_retval, :uint32_t_retval, :hsa_signal_value_t_retval, + :hsa_status_t_retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +# typedef hsa_status_t ( * hsa_ext_program_iterate_modules_cb_t ) ( hsa_ext_program_t program , hsa_ext_module_t module , void * data ) +const hsa_ext_program_iterate_modules_cb_t = Ptr{Cvoid} + +# typedef void ( * hsa_amd_queue_intercept_packet_writer ) ( const void * pkts , uint64_t pkt_count ) +const hsa_amd_queue_intercept_packet_writer = Ptr{Cvoid} + +# typedef void ( * hsa_amd_queue_intercept_handler ) ( const void * pkts , uint64_t pkt_count , uint64_t user_pkt_index , void * data , hsa_amd_queue_intercept_packet_writer writer ) +const hsa_amd_queue_intercept_handler = Ptr{Cvoid} + +# typedef void ( * hsa_amd_runtime_queue_notifier ) ( const hsa_queue_t * queue , hsa_agent_t agent , void * data ) +const hsa_amd_runtime_queue_notifier = Ptr{Cvoid} + +struct rocprofiler_hsa_api_args_t + data::NTuple{192,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_hsa_api_args_t}, f::Symbol) + f === :hsa_init && return Ptr{var"##Ctag#917"}(x + 0) + f === :hsa_shut_down && return Ptr{var"##Ctag#918"}(x + 0) + f === :hsa_system_get_info && return Ptr{var"##Ctag#919"}(x + 0) + f === :hsa_system_extension_supported && return Ptr{var"##Ctag#920"}(x + 0) + f === :hsa_system_get_extension_table && return Ptr{var"##Ctag#921"}(x + 0) + f === :hsa_iterate_agents && return Ptr{var"##Ctag#922"}(x + 0) + f === :hsa_agent_get_info && return Ptr{var"##Ctag#923"}(x + 0) + f === :hsa_queue_create && return Ptr{var"##Ctag#924"}(x + 0) + f === :hsa_soft_queue_create && return Ptr{var"##Ctag#925"}(x + 0) + f === :hsa_queue_destroy && return Ptr{var"##Ctag#926"}(x + 0) + f === :hsa_queue_inactivate && return Ptr{var"##Ctag#927"}(x + 0) + f === :hsa_queue_load_read_index_scacquire && return Ptr{var"##Ctag#928"}(x + 0) + f === :hsa_queue_load_read_index_relaxed && return Ptr{var"##Ctag#929"}(x + 0) + f === :hsa_queue_load_write_index_scacquire && return Ptr{var"##Ctag#930"}(x + 0) + f === :hsa_queue_load_write_index_relaxed && return Ptr{var"##Ctag#931"}(x + 0) + f === :hsa_queue_store_write_index_relaxed && return Ptr{var"##Ctag#932"}(x + 0) + f === :hsa_queue_store_write_index_screlease && return Ptr{var"##Ctag#933"}(x + 0) + f === :hsa_queue_cas_write_index_scacq_screl && return Ptr{var"##Ctag#934"}(x + 0) + f === :hsa_queue_cas_write_index_scacquire && return Ptr{var"##Ctag#935"}(x + 0) + f === :hsa_queue_cas_write_index_relaxed && return Ptr{var"##Ctag#936"}(x + 0) + f === :hsa_queue_cas_write_index_screlease && return Ptr{var"##Ctag#937"}(x + 0) + f === :hsa_queue_add_write_index_scacq_screl && return Ptr{var"##Ctag#938"}(x + 0) + f === :hsa_queue_add_write_index_scacquire && return Ptr{var"##Ctag#939"}(x + 0) + f === :hsa_queue_add_write_index_relaxed && return Ptr{var"##Ctag#940"}(x + 0) + f === :hsa_queue_add_write_index_screlease && return Ptr{var"##Ctag#941"}(x + 0) + f === :hsa_queue_store_read_index_relaxed && return Ptr{var"##Ctag#942"}(x + 0) + f === :hsa_queue_store_read_index_screlease && return Ptr{var"##Ctag#943"}(x + 0) + f === :hsa_agent_iterate_regions && return Ptr{var"##Ctag#944"}(x + 0) + f === :hsa_region_get_info && return Ptr{var"##Ctag#945"}(x + 0) + f === :hsa_agent_get_exception_policies && return Ptr{var"##Ctag#946"}(x + 0) + f === :hsa_agent_extension_supported && return Ptr{var"##Ctag#947"}(x + 0) + f === :hsa_memory_register && return Ptr{var"##Ctag#948"}(x + 0) + f === :hsa_memory_deregister && return Ptr{var"##Ctag#949"}(x + 0) + f === :hsa_memory_allocate && return Ptr{var"##Ctag#950"}(x + 0) + f === :hsa_memory_free && return Ptr{var"##Ctag#951"}(x + 0) + f === :hsa_memory_copy && return Ptr{var"##Ctag#952"}(x + 0) + f === :hsa_memory_assign_agent && return Ptr{var"##Ctag#953"}(x + 0) + f === :hsa_signal_create && return Ptr{var"##Ctag#954"}(x + 0) + f === :hsa_signal_destroy && return Ptr{var"##Ctag#955"}(x + 0) + f === :hsa_signal_load_relaxed && return Ptr{var"##Ctag#956"}(x + 0) + f === :hsa_signal_load_scacquire && return Ptr{var"##Ctag#957"}(x + 0) + f === :hsa_signal_store_relaxed && return Ptr{var"##Ctag#958"}(x + 0) + f === :hsa_signal_store_screlease && return Ptr{var"##Ctag#959"}(x + 0) + f === :hsa_signal_wait_relaxed && return Ptr{var"##Ctag#960"}(x + 0) + f === :hsa_signal_wait_scacquire && return Ptr{var"##Ctag#961"}(x + 0) + f === :hsa_signal_and_relaxed && return Ptr{var"##Ctag#962"}(x + 0) + f === :hsa_signal_and_scacquire && return Ptr{var"##Ctag#963"}(x + 0) + f === :hsa_signal_and_screlease && return Ptr{var"##Ctag#964"}(x + 0) + f === :hsa_signal_and_scacq_screl && return Ptr{var"##Ctag#965"}(x + 0) + f === :hsa_signal_or_relaxed && return Ptr{var"##Ctag#966"}(x + 0) + f === :hsa_signal_or_scacquire && return Ptr{var"##Ctag#967"}(x + 0) + f === :hsa_signal_or_screlease && return Ptr{var"##Ctag#968"}(x + 0) + f === :hsa_signal_or_scacq_screl && return Ptr{var"##Ctag#969"}(x + 0) + f === :hsa_signal_xor_relaxed && return Ptr{var"##Ctag#970"}(x + 0) + f === :hsa_signal_xor_scacquire && return Ptr{var"##Ctag#971"}(x + 0) + f === :hsa_signal_xor_screlease && return Ptr{var"##Ctag#972"}(x + 0) + f === :hsa_signal_xor_scacq_screl && return Ptr{var"##Ctag#973"}(x + 0) + f === :hsa_signal_exchange_relaxed && return Ptr{var"##Ctag#974"}(x + 0) + f === :hsa_signal_exchange_scacquire && return Ptr{var"##Ctag#975"}(x + 0) + f === :hsa_signal_exchange_screlease && return Ptr{var"##Ctag#976"}(x + 0) + f === :hsa_signal_exchange_scacq_screl && return Ptr{var"##Ctag#977"}(x + 0) + f === :hsa_signal_add_relaxed && return Ptr{var"##Ctag#978"}(x + 0) + f === :hsa_signal_add_scacquire && return Ptr{var"##Ctag#979"}(x + 0) + f === :hsa_signal_add_screlease && return Ptr{var"##Ctag#980"}(x + 0) + f === :hsa_signal_add_scacq_screl && return Ptr{var"##Ctag#981"}(x + 0) + f === :hsa_signal_subtract_relaxed && return Ptr{var"##Ctag#982"}(x + 0) + f === :hsa_signal_subtract_scacquire && return Ptr{var"##Ctag#983"}(x + 0) + f === :hsa_signal_subtract_screlease && return Ptr{var"##Ctag#984"}(x + 0) + f === :hsa_signal_subtract_scacq_screl && return Ptr{var"##Ctag#985"}(x + 0) + f === :hsa_signal_cas_relaxed && return Ptr{var"##Ctag#986"}(x + 0) + f === :hsa_signal_cas_scacquire && return Ptr{var"##Ctag#987"}(x + 0) + f === :hsa_signal_cas_screlease && return Ptr{var"##Ctag#988"}(x + 0) + f === :hsa_signal_cas_scacq_screl && return Ptr{var"##Ctag#989"}(x + 0) + f === :hsa_isa_from_name && return Ptr{var"##Ctag#990"}(x + 0) + f === :hsa_isa_get_info && return Ptr{var"##Ctag#991"}(x + 0) + f === :hsa_isa_compatible && return Ptr{var"##Ctag#992"}(x + 0) + f === :hsa_code_object_serialize && return Ptr{var"##Ctag#993"}(x + 0) + f === :hsa_code_object_deserialize && return Ptr{var"##Ctag#994"}(x + 0) + f === :hsa_code_object_destroy && return Ptr{var"##Ctag#995"}(x + 0) + f === :hsa_code_object_get_info && return Ptr{var"##Ctag#996"}(x + 0) + f === :hsa_code_object_get_symbol && return Ptr{var"##Ctag#997"}(x + 0) + f === :hsa_code_symbol_get_info && return Ptr{var"##Ctag#998"}(x + 0) + f === :hsa_code_object_iterate_symbols && return Ptr{var"##Ctag#999"}(x + 0) + f === :hsa_executable_create && return Ptr{var"##Ctag#1000"}(x + 0) + f === :hsa_executable_destroy && return Ptr{var"##Ctag#1001"}(x + 0) + f === :hsa_executable_load_code_object && return Ptr{var"##Ctag#1002"}(x + 0) + f === :hsa_executable_freeze && return Ptr{var"##Ctag#1003"}(x + 0) + f === :hsa_executable_get_info && return Ptr{var"##Ctag#1004"}(x + 0) + f === :hsa_executable_global_variable_define && return Ptr{var"##Ctag#1005"}(x + 0) + f === :hsa_executable_agent_global_variable_define && + return Ptr{var"##Ctag#1006"}(x + 0) + f === :hsa_executable_readonly_variable_define && return Ptr{var"##Ctag#1007"}(x + 0) + f === :hsa_executable_validate && return Ptr{var"##Ctag#1008"}(x + 0) + f === :hsa_executable_get_symbol && return Ptr{var"##Ctag#1009"}(x + 0) + f === :hsa_executable_symbol_get_info && return Ptr{var"##Ctag#1010"}(x + 0) + f === :hsa_executable_iterate_symbols && return Ptr{var"##Ctag#1011"}(x + 0) + f === :hsa_status_string && return Ptr{var"##Ctag#1012"}(x + 0) + f === :hsa_extension_get_name && return Ptr{var"##Ctag#1013"}(x + 0) + f === :hsa_system_major_extension_supported && return Ptr{var"##Ctag#1014"}(x + 0) + f === :hsa_system_get_major_extension_table && return Ptr{var"##Ctag#1015"}(x + 0) + f === :hsa_agent_major_extension_supported && return Ptr{var"##Ctag#1016"}(x + 0) + f === :hsa_cache_get_info && return Ptr{var"##Ctag#1017"}(x + 0) + f === :hsa_agent_iterate_caches && return Ptr{var"##Ctag#1018"}(x + 0) + f === :hsa_signal_silent_store_relaxed && return Ptr{var"##Ctag#1019"}(x + 0) + f === :hsa_signal_silent_store_screlease && return Ptr{var"##Ctag#1020"}(x + 0) + f === :hsa_signal_group_create && return Ptr{var"##Ctag#1021"}(x + 0) + f === :hsa_signal_group_destroy && return Ptr{var"##Ctag#1022"}(x + 0) + f === :hsa_signal_group_wait_any_scacquire && return Ptr{var"##Ctag#1023"}(x + 0) + f === :hsa_signal_group_wait_any_relaxed && return Ptr{var"##Ctag#1024"}(x + 0) + f === :hsa_agent_iterate_isas && return Ptr{var"##Ctag#1025"}(x + 0) + f === :hsa_isa_get_info_alt && return Ptr{var"##Ctag#1026"}(x + 0) + f === :hsa_isa_get_exception_policies && return Ptr{var"##Ctag#1027"}(x + 0) + f === :hsa_isa_get_round_method && return Ptr{var"##Ctag#1028"}(x + 0) + f === :hsa_wavefront_get_info && return Ptr{var"##Ctag#1029"}(x + 0) + f === :hsa_isa_iterate_wavefronts && return Ptr{var"##Ctag#1030"}(x + 0) + f === :hsa_code_object_get_symbol_from_name && return Ptr{var"##Ctag#1031"}(x + 0) + f === :hsa_code_object_reader_create_from_file && return Ptr{var"##Ctag#1032"}(x + 0) + f === :hsa_code_object_reader_create_from_memory && return Ptr{var"##Ctag#1033"}(x + 0) + f === :hsa_code_object_reader_destroy && return Ptr{var"##Ctag#1034"}(x + 0) + f === :hsa_executable_create_alt && return Ptr{var"##Ctag#1035"}(x + 0) + f === :hsa_executable_load_program_code_object && return Ptr{var"##Ctag#1036"}(x + 0) + f === :hsa_executable_load_agent_code_object && return Ptr{var"##Ctag#1037"}(x + 0) + f === :hsa_executable_validate_alt && return Ptr{var"##Ctag#1038"}(x + 0) + f === :hsa_executable_get_symbol_by_name && return Ptr{var"##Ctag#1039"}(x + 0) + f === :hsa_executable_iterate_agent_symbols && return Ptr{var"##Ctag#1040"}(x + 0) + f === :hsa_executable_iterate_program_symbols && return Ptr{var"##Ctag#1041"}(x + 0) + f === :hsa_amd_coherency_get_type && return Ptr{var"##Ctag#1042"}(x + 0) + f === :hsa_amd_coherency_set_type && return Ptr{var"##Ctag#1043"}(x + 0) + f === :hsa_amd_profiling_set_profiler_enabled && return Ptr{var"##Ctag#1044"}(x + 0) + f === :hsa_amd_profiling_async_copy_enable && return Ptr{var"##Ctag#1045"}(x + 0) + f === :hsa_amd_profiling_get_dispatch_time && return Ptr{var"##Ctag#1046"}(x + 0) + f === :hsa_amd_profiling_get_async_copy_time && return Ptr{var"##Ctag#1047"}(x + 0) + f === :hsa_amd_profiling_convert_tick_to_system_domain && + return Ptr{var"##Ctag#1048"}(x + 0) + f === :hsa_amd_signal_async_handler && return Ptr{var"##Ctag#1049"}(x + 0) + f === :hsa_amd_async_function && return Ptr{var"##Ctag#1050"}(x + 0) + f === :hsa_amd_signal_wait_any && return Ptr{var"##Ctag#1051"}(x + 0) + f === :hsa_amd_queue_cu_set_mask && return Ptr{var"##Ctag#1052"}(x + 0) + f === :hsa_amd_memory_pool_get_info && return Ptr{var"##Ctag#1053"}(x + 0) + f === :hsa_amd_agent_iterate_memory_pools && return Ptr{var"##Ctag#1054"}(x + 0) + f === :hsa_amd_memory_pool_allocate && return Ptr{var"##Ctag#1055"}(x + 0) + f === :hsa_amd_memory_pool_free && return Ptr{var"##Ctag#1056"}(x + 0) + f === :hsa_amd_memory_async_copy && return Ptr{var"##Ctag#1057"}(x + 0) + f === :hsa_amd_memory_async_copy_on_engine && return Ptr{var"##Ctag#1058"}(x + 0) + f === :hsa_amd_memory_copy_engine_status && return Ptr{var"##Ctag#1059"}(x + 0) + f === :hsa_amd_agent_memory_pool_get_info && return Ptr{var"##Ctag#1060"}(x + 0) + f === :hsa_amd_agents_allow_access && return Ptr{var"##Ctag#1061"}(x + 0) + f === :hsa_amd_memory_pool_can_migrate && return Ptr{var"##Ctag#1062"}(x + 0) + f === :hsa_amd_memory_migrate && return Ptr{var"##Ctag#1063"}(x + 0) + f === :hsa_amd_memory_lock && return Ptr{var"##Ctag#1064"}(x + 0) + f === :hsa_amd_memory_unlock && return Ptr{var"##Ctag#1065"}(x + 0) + f === :hsa_amd_memory_fill && return Ptr{var"##Ctag#1066"}(x + 0) + f === :hsa_amd_interop_map_buffer && return Ptr{var"##Ctag#1067"}(x + 0) + f === :hsa_amd_interop_unmap_buffer && return Ptr{var"##Ctag#1068"}(x + 0) + f === :hsa_amd_image_create && return Ptr{var"##Ctag#1069"}(x + 0) + f === :hsa_amd_pointer_info && return Ptr{var"##Ctag#1070"}(x + 0) + f === :hsa_amd_pointer_info_set_userdata && return Ptr{var"##Ctag#1071"}(x + 0) + f === :hsa_amd_ipc_memory_create && return Ptr{var"##Ctag#1072"}(x + 0) + f === :hsa_amd_ipc_memory_attach && return Ptr{var"##Ctag#1073"}(x + 0) + f === :hsa_amd_ipc_memory_detach && return Ptr{var"##Ctag#1074"}(x + 0) + f === :hsa_amd_signal_create && return Ptr{var"##Ctag#1075"}(x + 0) + f === :hsa_amd_ipc_signal_create && return Ptr{var"##Ctag#1076"}(x + 0) + f === :hsa_amd_ipc_signal_attach && return Ptr{var"##Ctag#1077"}(x + 0) + f === :hsa_amd_register_system_event_handler && return Ptr{var"##Ctag#1078"}(x + 0) + f === :hsa_amd_queue_intercept_create && return Ptr{var"##Ctag#1079"}(x + 0) + f === :hsa_amd_queue_intercept_register && return Ptr{var"##Ctag#1080"}(x + 0) + f === :hsa_amd_queue_set_priority && return Ptr{var"##Ctag#1081"}(x + 0) + f === :hsa_amd_memory_async_copy_rect && return Ptr{var"##Ctag#1082"}(x + 0) + f === :hsa_amd_runtime_queue_create_register && return Ptr{var"##Ctag#1083"}(x + 0) + f === :hsa_amd_memory_lock_to_pool && return Ptr{var"##Ctag#1084"}(x + 0) + f === :hsa_amd_register_deallocation_callback && return Ptr{var"##Ctag#1085"}(x + 0) + f === :hsa_amd_deregister_deallocation_callback && return Ptr{var"##Ctag#1086"}(x + 0) + f === :hsa_amd_signal_value_pointer && return Ptr{var"##Ctag#1087"}(x + 0) + f === :hsa_amd_svm_attributes_set && return Ptr{var"##Ctag#1088"}(x + 0) + f === :hsa_amd_svm_attributes_get && return Ptr{var"##Ctag#1089"}(x + 0) + f === :hsa_amd_svm_prefetch_async && return Ptr{var"##Ctag#1090"}(x + 0) + f === :hsa_amd_spm_acquire && return Ptr{var"##Ctag#1091"}(x + 0) + f === :hsa_amd_spm_release && return Ptr{var"##Ctag#1092"}(x + 0) + f === :hsa_amd_spm_set_dest_buffer && return Ptr{var"##Ctag#1093"}(x + 0) + f === :hsa_amd_queue_cu_get_mask && return Ptr{var"##Ctag#1094"}(x + 0) + f === :hsa_amd_portable_export_dmabuf && return Ptr{var"##Ctag#1095"}(x + 0) + f === :hsa_amd_portable_close_dmabuf && return Ptr{var"##Ctag#1096"}(x + 0) + f === :hsa_ext_image_get_capability && return Ptr{var"##Ctag#1097"}(x + 0) + f === :hsa_ext_image_data_get_info && return Ptr{var"##Ctag#1098"}(x + 0) + f === :hsa_ext_image_create && return Ptr{var"##Ctag#1099"}(x + 0) + f === :hsa_ext_image_import && return Ptr{var"##Ctag#1100"}(x + 0) + f === :hsa_ext_image_export && return Ptr{var"##Ctag#1101"}(x + 0) + f === :hsa_ext_image_copy && return Ptr{var"##Ctag#1102"}(x + 0) + f === :hsa_ext_image_clear && return Ptr{var"##Ctag#1103"}(x + 0) + f === :hsa_ext_image_destroy && return Ptr{var"##Ctag#1104"}(x + 0) + f === :hsa_ext_sampler_create && return Ptr{var"##Ctag#1105"}(x + 0) + f === :hsa_ext_sampler_destroy && return Ptr{var"##Ctag#1106"}(x + 0) + f === :hsa_ext_image_get_capability_with_layout && return Ptr{var"##Ctag#1107"}(x + 0) + f === :hsa_ext_image_data_get_info_with_layout && return Ptr{var"##Ctag#1108"}(x + 0) + f === :hsa_ext_image_create_with_layout && return Ptr{var"##Ctag#1109"}(x + 0) + f === :hsa_ext_program_create && return Ptr{var"##Ctag#1110"}(x + 0) + f === :hsa_ext_program_destroy && return Ptr{var"##Ctag#1111"}(x + 0) + f === :hsa_ext_program_add_module && return Ptr{var"##Ctag#1112"}(x + 0) + f === :hsa_ext_program_iterate_modules && return Ptr{var"##Ctag#1113"}(x + 0) + f === :hsa_ext_program_get_info && return Ptr{var"##Ctag#1114"}(x + 0) + f === :hsa_ext_program_finalize && return Ptr{var"##Ctag#1115"}(x + 0) + f === :hsa_amd_vmem_address_reserve && return Ptr{var"##Ctag#1116"}(x + 0) + f === :hsa_amd_vmem_address_free && return Ptr{var"##Ctag#1117"}(x + 0) + f === :hsa_amd_vmem_handle_create && return Ptr{var"##Ctag#1118"}(x + 0) + f === :hsa_amd_vmem_handle_release && return Ptr{var"##Ctag#1119"}(x + 0) + f === :hsa_amd_vmem_map && return Ptr{var"##Ctag#1120"}(x + 0) + f === :hsa_amd_vmem_unmap && return Ptr{var"##Ctag#1121"}(x + 0) + f === :hsa_amd_vmem_set_access && return Ptr{var"##Ctag#1122"}(x + 0) + f === :hsa_amd_vmem_get_access && return Ptr{var"##Ctag#1123"}(x + 0) + f === :hsa_amd_vmem_export_shareable_handle && return Ptr{var"##Ctag#1124"}(x + 0) + f === :hsa_amd_vmem_import_shareable_handle && return Ptr{var"##Ctag#1125"}(x + 0) + f === :hsa_amd_vmem_retain_alloc_handle && return Ptr{var"##Ctag#1126"}(x + 0) + f === :hsa_amd_vmem_get_alloc_properties_from_handle && + return Ptr{var"##Ctag#1127"}(x + 0) + f === :hsa_amd_agent_set_async_scratch_limit && return Ptr{var"##Ctag#1128"}(x + 0) + f === :hsa_amd_queue_get_info && return Ptr{var"##Ctag#1129"}(x + 0) + f === :hsa_amd_vmem_address_reserve_align && return Ptr{var"##Ctag#1130"}(x + 0) + f === :hsa_amd_enable_logging && return Ptr{var"##Ctag#1131"}(x + 0) + f === :hsa_amd_signal_wait_all && return Ptr{var"##Ctag#1132"}(x + 0) + f === :hsa_amd_memory_get_preferred_copy_engine && return Ptr{var"##Ctag#1133"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_hsa_api_args_t, f::Symbol) + r = Ref{rocprofiler_hsa_api_args_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_hsa_api_args_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_hsa_api_args_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_hsa_api_args_t, private::Bool=false) + return (:hsa_init, :hsa_shut_down, :hsa_system_get_info, + :hsa_system_extension_supported, :hsa_system_get_extension_table, + :hsa_iterate_agents, :hsa_agent_get_info, :hsa_queue_create, + :hsa_soft_queue_create, :hsa_queue_destroy, :hsa_queue_inactivate, + :hsa_queue_load_read_index_scacquire, :hsa_queue_load_read_index_relaxed, + :hsa_queue_load_write_index_scacquire, :hsa_queue_load_write_index_relaxed, + :hsa_queue_store_write_index_relaxed, :hsa_queue_store_write_index_screlease, + :hsa_queue_cas_write_index_scacq_screl, :hsa_queue_cas_write_index_scacquire, + :hsa_queue_cas_write_index_relaxed, :hsa_queue_cas_write_index_screlease, + :hsa_queue_add_write_index_scacq_screl, :hsa_queue_add_write_index_scacquire, + :hsa_queue_add_write_index_relaxed, :hsa_queue_add_write_index_screlease, + :hsa_queue_store_read_index_relaxed, :hsa_queue_store_read_index_screlease, + :hsa_agent_iterate_regions, :hsa_region_get_info, + :hsa_agent_get_exception_policies, :hsa_agent_extension_supported, + :hsa_memory_register, :hsa_memory_deregister, :hsa_memory_allocate, + :hsa_memory_free, :hsa_memory_copy, :hsa_memory_assign_agent, + :hsa_signal_create, :hsa_signal_destroy, :hsa_signal_load_relaxed, + :hsa_signal_load_scacquire, :hsa_signal_store_relaxed, + :hsa_signal_store_screlease, :hsa_signal_wait_relaxed, + :hsa_signal_wait_scacquire, :hsa_signal_and_relaxed, :hsa_signal_and_scacquire, + :hsa_signal_and_screlease, :hsa_signal_and_scacq_screl, :hsa_signal_or_relaxed, + :hsa_signal_or_scacquire, :hsa_signal_or_screlease, :hsa_signal_or_scacq_screl, + :hsa_signal_xor_relaxed, :hsa_signal_xor_scacquire, :hsa_signal_xor_screlease, + :hsa_signal_xor_scacq_screl, :hsa_signal_exchange_relaxed, + :hsa_signal_exchange_scacquire, :hsa_signal_exchange_screlease, + :hsa_signal_exchange_scacq_screl, :hsa_signal_add_relaxed, + :hsa_signal_add_scacquire, :hsa_signal_add_screlease, + :hsa_signal_add_scacq_screl, :hsa_signal_subtract_relaxed, + :hsa_signal_subtract_scacquire, :hsa_signal_subtract_screlease, + :hsa_signal_subtract_scacq_screl, :hsa_signal_cas_relaxed, + :hsa_signal_cas_scacquire, :hsa_signal_cas_screlease, + :hsa_signal_cas_scacq_screl, :hsa_isa_from_name, :hsa_isa_get_info, + :hsa_isa_compatible, :hsa_code_object_serialize, :hsa_code_object_deserialize, + :hsa_code_object_destroy, :hsa_code_object_get_info, + :hsa_code_object_get_symbol, :hsa_code_symbol_get_info, + :hsa_code_object_iterate_symbols, :hsa_executable_create, + :hsa_executable_destroy, :hsa_executable_load_code_object, + :hsa_executable_freeze, :hsa_executable_get_info, + :hsa_executable_global_variable_define, + :hsa_executable_agent_global_variable_define, + :hsa_executable_readonly_variable_define, :hsa_executable_validate, + :hsa_executable_get_symbol, :hsa_executable_symbol_get_info, + :hsa_executable_iterate_symbols, :hsa_status_string, :hsa_extension_get_name, + :hsa_system_major_extension_supported, :hsa_system_get_major_extension_table, + :hsa_agent_major_extension_supported, :hsa_cache_get_info, + :hsa_agent_iterate_caches, :hsa_signal_silent_store_relaxed, + :hsa_signal_silent_store_screlease, :hsa_signal_group_create, + :hsa_signal_group_destroy, :hsa_signal_group_wait_any_scacquire, + :hsa_signal_group_wait_any_relaxed, :hsa_agent_iterate_isas, + :hsa_isa_get_info_alt, :hsa_isa_get_exception_policies, + :hsa_isa_get_round_method, :hsa_wavefront_get_info, :hsa_isa_iterate_wavefronts, + :hsa_code_object_get_symbol_from_name, :hsa_code_object_reader_create_from_file, + :hsa_code_object_reader_create_from_memory, :hsa_code_object_reader_destroy, + :hsa_executable_create_alt, :hsa_executable_load_program_code_object, + :hsa_executable_load_agent_code_object, :hsa_executable_validate_alt, + :hsa_executable_get_symbol_by_name, :hsa_executable_iterate_agent_symbols, + :hsa_executable_iterate_program_symbols, :hsa_amd_coherency_get_type, + :hsa_amd_coherency_set_type, :hsa_amd_profiling_set_profiler_enabled, + :hsa_amd_profiling_async_copy_enable, :hsa_amd_profiling_get_dispatch_time, + :hsa_amd_profiling_get_async_copy_time, + :hsa_amd_profiling_convert_tick_to_system_domain, :hsa_amd_signal_async_handler, + :hsa_amd_async_function, :hsa_amd_signal_wait_any, :hsa_amd_queue_cu_set_mask, + :hsa_amd_memory_pool_get_info, :hsa_amd_agent_iterate_memory_pools, + :hsa_amd_memory_pool_allocate, :hsa_amd_memory_pool_free, + :hsa_amd_memory_async_copy, :hsa_amd_memory_async_copy_on_engine, + :hsa_amd_memory_copy_engine_status, :hsa_amd_agent_memory_pool_get_info, + :hsa_amd_agents_allow_access, :hsa_amd_memory_pool_can_migrate, + :hsa_amd_memory_migrate, :hsa_amd_memory_lock, :hsa_amd_memory_unlock, + :hsa_amd_memory_fill, :hsa_amd_interop_map_buffer, + :hsa_amd_interop_unmap_buffer, :hsa_amd_image_create, :hsa_amd_pointer_info, + :hsa_amd_pointer_info_set_userdata, :hsa_amd_ipc_memory_create, + :hsa_amd_ipc_memory_attach, :hsa_amd_ipc_memory_detach, :hsa_amd_signal_create, + :hsa_amd_ipc_signal_create, :hsa_amd_ipc_signal_attach, + :hsa_amd_register_system_event_handler, :hsa_amd_queue_intercept_create, + :hsa_amd_queue_intercept_register, :hsa_amd_queue_set_priority, + :hsa_amd_memory_async_copy_rect, :hsa_amd_runtime_queue_create_register, + :hsa_amd_memory_lock_to_pool, :hsa_amd_register_deallocation_callback, + :hsa_amd_deregister_deallocation_callback, :hsa_amd_signal_value_pointer, + :hsa_amd_svm_attributes_set, :hsa_amd_svm_attributes_get, + :hsa_amd_svm_prefetch_async, :hsa_amd_spm_acquire, :hsa_amd_spm_release, + :hsa_amd_spm_set_dest_buffer, :hsa_amd_queue_cu_get_mask, + :hsa_amd_portable_export_dmabuf, :hsa_amd_portable_close_dmabuf, + :hsa_ext_image_get_capability, :hsa_ext_image_data_get_info, + :hsa_ext_image_create, :hsa_ext_image_import, :hsa_ext_image_export, + :hsa_ext_image_copy, :hsa_ext_image_clear, :hsa_ext_image_destroy, + :hsa_ext_sampler_create, :hsa_ext_sampler_destroy, + :hsa_ext_image_get_capability_with_layout, + :hsa_ext_image_data_get_info_with_layout, :hsa_ext_image_create_with_layout, + :hsa_ext_program_create, :hsa_ext_program_destroy, :hsa_ext_program_add_module, + :hsa_ext_program_iterate_modules, :hsa_ext_program_get_info, + :hsa_ext_program_finalize, :hsa_amd_vmem_address_reserve, + :hsa_amd_vmem_address_free, :hsa_amd_vmem_handle_create, + :hsa_amd_vmem_handle_release, :hsa_amd_vmem_map, :hsa_amd_vmem_unmap, + :hsa_amd_vmem_set_access, :hsa_amd_vmem_get_access, + :hsa_amd_vmem_export_shareable_handle, :hsa_amd_vmem_import_shareable_handle, + :hsa_amd_vmem_retain_alloc_handle, + :hsa_amd_vmem_get_alloc_properties_from_handle, + :hsa_amd_agent_set_async_scratch_limit, :hsa_amd_queue_get_info, + :hsa_amd_vmem_address_reserve_align, :hsa_amd_enable_logging, + :hsa_amd_signal_wait_all, :hsa_amd_memory_get_preferred_copy_engine, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum rocprofiler_hsa_amd_ext_api_id_t::Int32 begin + ROCPROFILER_HSA_AMD_EXT_API_ID_NONE = -1 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_coherency_get_type = 0 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_coherency_set_type = 1 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_set_profiler_enabled = 2 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_async_copy_enable = 3 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_get_dispatch_time = 4 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_get_async_copy_time = 5 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_convert_tick_to_system_domain = 6 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_signal_async_handler = 7 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_async_function = 8 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_signal_wait_any = 9 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_cu_set_mask = 10 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_pool_get_info = 11 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_agent_iterate_memory_pools = 12 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_pool_allocate = 13 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_pool_free = 14 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_async_copy = 15 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_async_copy_on_engine = 16 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_copy_engine_status = 17 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_agent_memory_pool_get_info = 18 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_agents_allow_access = 19 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_pool_can_migrate = 20 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_migrate = 21 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_lock = 22 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_unlock = 23 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_fill = 24 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_interop_map_buffer = 25 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_interop_unmap_buffer = 26 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_image_create = 27 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_pointer_info = 28 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_pointer_info_set_userdata = 29 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_ipc_memory_create = 30 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_ipc_memory_attach = 31 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_ipc_memory_detach = 32 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_signal_create = 33 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_ipc_signal_create = 34 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_ipc_signal_attach = 35 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_register_system_event_handler = 36 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_intercept_create = 37 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_intercept_register = 38 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_set_priority = 39 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_async_copy_rect = 40 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_runtime_queue_create_register = 41 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_lock_to_pool = 42 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_register_deallocation_callback = 43 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_deregister_deallocation_callback = 44 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_signal_value_pointer = 45 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_svm_attributes_set = 46 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_svm_attributes_get = 47 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_svm_prefetch_async = 48 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_spm_acquire = 49 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_spm_release = 50 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_spm_set_dest_buffer = 51 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_cu_get_mask = 52 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_portable_export_dmabuf = 53 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_portable_close_dmabuf = 54 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_address_reserve = 55 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_address_free = 56 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_handle_create = 57 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_handle_release = 58 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_map = 59 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_unmap = 60 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_set_access = 61 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_get_access = 62 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_export_shareable_handle = 63 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_import_shareable_handle = 64 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_retain_alloc_handle = 65 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_get_alloc_properties_from_handle = 66 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_agent_set_async_scratch_limit = 67 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_get_info = 68 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_address_reserve_align = 69 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_enable_logging = 70 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_signal_wait_all = 71 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_memory_get_preferred_copy_engine = 72 + ROCPROFILER_HSA_AMD_EXT_API_ID_LAST = 73 +end + +@cenum rocprofiler_hsa_core_api_id_t::Int32 begin + ROCPROFILER_HSA_CORE_API_ID_NONE = -1 + ROCPROFILER_HSA_CORE_API_ID_hsa_init = 0 + ROCPROFILER_HSA_CORE_API_ID_hsa_shut_down = 1 + ROCPROFILER_HSA_CORE_API_ID_hsa_system_get_info = 2 + ROCPROFILER_HSA_CORE_API_ID_hsa_system_extension_supported = 3 + ROCPROFILER_HSA_CORE_API_ID_hsa_system_get_extension_table = 4 + ROCPROFILER_HSA_CORE_API_ID_hsa_iterate_agents = 5 + ROCPROFILER_HSA_CORE_API_ID_hsa_agent_get_info = 6 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_create = 7 + ROCPROFILER_HSA_CORE_API_ID_hsa_soft_queue_create = 8 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_destroy = 9 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_inactivate = 10 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_load_read_index_scacquire = 11 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_load_read_index_relaxed = 12 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_load_write_index_scacquire = 13 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_load_write_index_relaxed = 14 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_store_write_index_relaxed = 15 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_store_write_index_screlease = 16 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_cas_write_index_scacq_screl = 17 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_cas_write_index_scacquire = 18 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_cas_write_index_relaxed = 19 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_cas_write_index_screlease = 20 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_add_write_index_scacq_screl = 21 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_add_write_index_scacquire = 22 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_add_write_index_relaxed = 23 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_add_write_index_screlease = 24 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_store_read_index_relaxed = 25 + ROCPROFILER_HSA_CORE_API_ID_hsa_queue_store_read_index_screlease = 26 + ROCPROFILER_HSA_CORE_API_ID_hsa_agent_iterate_regions = 27 + ROCPROFILER_HSA_CORE_API_ID_hsa_region_get_info = 28 + ROCPROFILER_HSA_CORE_API_ID_hsa_agent_get_exception_policies = 29 + ROCPROFILER_HSA_CORE_API_ID_hsa_agent_extension_supported = 30 + ROCPROFILER_HSA_CORE_API_ID_hsa_memory_register = 31 + ROCPROFILER_HSA_CORE_API_ID_hsa_memory_deregister = 32 + ROCPROFILER_HSA_CORE_API_ID_hsa_memory_allocate = 33 + ROCPROFILER_HSA_CORE_API_ID_hsa_memory_free = 34 + ROCPROFILER_HSA_CORE_API_ID_hsa_memory_copy = 35 + ROCPROFILER_HSA_CORE_API_ID_hsa_memory_assign_agent = 36 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_create = 37 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_destroy = 38 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_load_relaxed = 39 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_load_scacquire = 40 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_store_relaxed = 41 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_store_screlease = 42 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_wait_relaxed = 43 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_wait_scacquire = 44 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_and_relaxed = 45 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_and_scacquire = 46 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_and_screlease = 47 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_and_scacq_screl = 48 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_or_relaxed = 49 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_or_scacquire = 50 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_or_screlease = 51 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_or_scacq_screl = 52 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_xor_relaxed = 53 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_xor_scacquire = 54 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_xor_screlease = 55 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_xor_scacq_screl = 56 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_exchange_relaxed = 57 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_exchange_scacquire = 58 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_exchange_screlease = 59 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_exchange_scacq_screl = 60 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_add_relaxed = 61 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_add_scacquire = 62 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_add_screlease = 63 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_add_scacq_screl = 64 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_subtract_relaxed = 65 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_subtract_scacquire = 66 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_subtract_screlease = 67 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_subtract_scacq_screl = 68 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_cas_relaxed = 69 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_cas_scacquire = 70 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_cas_screlease = 71 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_cas_scacq_screl = 72 + ROCPROFILER_HSA_CORE_API_ID_hsa_isa_from_name = 73 + ROCPROFILER_HSA_CORE_API_ID_hsa_isa_get_info = 74 + ROCPROFILER_HSA_CORE_API_ID_hsa_isa_compatible = 75 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_serialize = 76 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_deserialize = 77 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_destroy = 78 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_get_info = 79 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_get_symbol = 80 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_symbol_get_info = 81 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_iterate_symbols = 82 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_create = 83 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_destroy = 84 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_load_code_object = 85 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_freeze = 86 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_get_info = 87 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_global_variable_define = 88 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_agent_global_variable_define = 89 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_readonly_variable_define = 90 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_validate = 91 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_get_symbol = 92 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_symbol_get_info = 93 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_iterate_symbols = 94 + ROCPROFILER_HSA_CORE_API_ID_hsa_status_string = 95 + ROCPROFILER_HSA_CORE_API_ID_hsa_extension_get_name = 96 + ROCPROFILER_HSA_CORE_API_ID_hsa_system_major_extension_supported = 97 + ROCPROFILER_HSA_CORE_API_ID_hsa_system_get_major_extension_table = 98 + ROCPROFILER_HSA_CORE_API_ID_hsa_agent_major_extension_supported = 99 + ROCPROFILER_HSA_CORE_API_ID_hsa_cache_get_info = 100 + ROCPROFILER_HSA_CORE_API_ID_hsa_agent_iterate_caches = 101 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_silent_store_relaxed = 102 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_silent_store_screlease = 103 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_group_create = 104 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_group_destroy = 105 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_group_wait_any_scacquire = 106 + ROCPROFILER_HSA_CORE_API_ID_hsa_signal_group_wait_any_relaxed = 107 + ROCPROFILER_HSA_CORE_API_ID_hsa_agent_iterate_isas = 108 + ROCPROFILER_HSA_CORE_API_ID_hsa_isa_get_info_alt = 109 + ROCPROFILER_HSA_CORE_API_ID_hsa_isa_get_exception_policies = 110 + ROCPROFILER_HSA_CORE_API_ID_hsa_isa_get_round_method = 111 + ROCPROFILER_HSA_CORE_API_ID_hsa_wavefront_get_info = 112 + ROCPROFILER_HSA_CORE_API_ID_hsa_isa_iterate_wavefronts = 113 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_get_symbol_from_name = 114 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_reader_create_from_file = 115 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_reader_create_from_memory = 116 + ROCPROFILER_HSA_CORE_API_ID_hsa_code_object_reader_destroy = 117 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_create_alt = 118 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_load_program_code_object = 119 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_load_agent_code_object = 120 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_validate_alt = 121 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_get_symbol_by_name = 122 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_iterate_agent_symbols = 123 + ROCPROFILER_HSA_CORE_API_ID_hsa_executable_iterate_program_symbols = 124 + ROCPROFILER_HSA_CORE_API_ID_LAST = 125 +end + +@cenum rocprofiler_hsa_finalize_ext_api_id_t::Int32 begin + ROCPROFILER_HSA_FINALIZE_EXT_API_ID_NONE = -1 + ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_create = 0 + ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_destroy = 1 + ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_add_module = 2 + ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_iterate_modules = 3 + ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_get_info = 4 + ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_finalize = 5 + ROCPROFILER_HSA_FINALIZE_EXT_API_ID_LAST = 6 +end + +@cenum rocprofiler_hsa_image_ext_api_id_t::Int32 begin + ROCPROFILER_HSA_IMAGE_EXT_API_ID_NONE = -1 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_get_capability = 0 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_data_get_info = 1 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_create = 2 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_import = 3 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_export = 4 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_copy = 5 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_clear = 6 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_destroy = 7 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_sampler_create = 8 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_sampler_destroy = 9 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_get_capability_with_layout = 10 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_data_get_info_with_layout = 11 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_create_with_layout = 12 + ROCPROFILER_HSA_IMAGE_EXT_API_ID_LAST = 13 +end + +struct rocprofiler_scratch_memory_no_args + empty::Cchar +end + +struct rocprofiler_scratch_memory_args_t + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_scratch_memory_args_t}, f::Symbol) + f === :alloc_start && return Ptr{var"##Ctag#415"}(x + 0) + f === :alloc_end && return Ptr{var"##Ctag#416"}(x + 0) + f === :free_start && return Ptr{var"##Ctag#417"}(x + 0) + f === :free_end && return Ptr{var"##Ctag#418"}(x + 0) + f === :async_reclaim_start && return Ptr{var"##Ctag#419"}(x + 0) + f === :async_reclaim_end && return Ptr{var"##Ctag#420"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_scratch_memory_args_t, f::Symbol) + r = Ref{rocprofiler_scratch_memory_args_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_scratch_memory_args_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_scratch_memory_args_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_scratch_memory_args_t, private::Bool=false) + return (:alloc_start, :alloc_end, :free_start, :free_end, :async_reclaim_start, + :async_reclaim_end, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum hsa_amd_event_scratch_alloc_flag_t::UInt32 begin + HSA_AMD_EVENT_SCRATCH_ALLOC_FLAG_NONE = 0 + HSA_AMD_EVENT_SCRATCH_ALLOC_FLAG_USE_ONCE = 1 + HSA_AMD_EVENT_SCRATCH_ALLOC_FLAG_ALT = 2 +end + +@cenum hsa_amd_tool_event_kind_t::UInt32 begin + HSA_AMD_TOOL_EVENT_MIN = 0 + HSA_AMD_TOOL_EVENT_SCRATCH_ALLOC_START = 1 + HSA_AMD_TOOL_EVENT_SCRATCH_ALLOC_END = 2 + HSA_AMD_TOOL_EVENT_SCRATCH_FREE_START = 3 + HSA_AMD_TOOL_EVENT_SCRATCH_FREE_END = 4 + HSA_AMD_TOOL_EVENT_SCRATCH_ASYNC_RECLAIM_START = 5 + HSA_AMD_TOOL_EVENT_SCRATCH_ASYNC_RECLAIM_END = 6 + HSA_AMD_TOOL_EVENT_MAX = 7 +end + +struct hsa_amd_tool_event_none_t + kind::hsa_amd_tool_event_kind_t +end + +struct hsa_amd_event_scratch_alloc_start_t + kind::hsa_amd_tool_event_kind_t + queue::Ptr{hsa_queue_t} + flags::hsa_amd_event_scratch_alloc_flag_t + dispatch_id::UInt64 +end + +struct hsa_amd_event_scratch_alloc_end_t + kind::hsa_amd_tool_event_kind_t + queue::Ptr{hsa_queue_t} + flags::hsa_amd_event_scratch_alloc_flag_t + dispatch_id::UInt64 + size::Csize_t + num_slots::Csize_t +end + +struct hsa_amd_event_scratch_free_start_t + kind::hsa_amd_tool_event_kind_t + queue::Ptr{hsa_queue_t} + flags::hsa_amd_event_scratch_alloc_flag_t +end + +struct hsa_amd_event_scratch_free_end_t + kind::hsa_amd_tool_event_kind_t + queue::Ptr{hsa_queue_t} + flags::hsa_amd_event_scratch_alloc_flag_t +end + +struct hsa_amd_event_scratch_async_reclaim_start_t + kind::hsa_amd_tool_event_kind_t + queue::Ptr{hsa_queue_t} + flags::hsa_amd_event_scratch_alloc_flag_t +end + +struct hsa_amd_event_scratch_async_reclaim_end_t + kind::hsa_amd_tool_event_kind_t + queue::Ptr{hsa_queue_t} + flags::hsa_amd_event_scratch_alloc_flag_t +end + +struct hsa_amd_tool_event_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{hsa_amd_tool_event_t}, f::Symbol) + f === :none && return Ptr{Ptr{hsa_amd_tool_event_none_t}}(x + 0) + f === :scratch_alloc_start && + return Ptr{Ptr{hsa_amd_event_scratch_alloc_start_t}}(x + 0) + f === :scratch_alloc_end && return Ptr{Ptr{hsa_amd_event_scratch_alloc_end_t}}(x + 0) + f === :scratch_free_start && return Ptr{Ptr{hsa_amd_event_scratch_free_start_t}}(x + 0) + f === :scratch_free_end && return Ptr{Ptr{hsa_amd_event_scratch_free_end_t}}(x + 0) + f === :scratch_async_reclaim_start && + return Ptr{Ptr{hsa_amd_event_scratch_async_reclaim_start_t}}(x + 0) + f === :scratch_async_reclaim_end && + return Ptr{Ptr{hsa_amd_event_scratch_async_reclaim_end_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::hsa_amd_tool_event_t, f::Symbol) + r = Ref{hsa_amd_tool_event_t}(x) + ptr = Base.unsafe_convert(Ptr{hsa_amd_tool_event_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hsa_amd_tool_event_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hsa_amd_tool_event_t, private::Bool=false) + return (:none, :scratch_alloc_start, :scratch_alloc_end, :scratch_free_start, + :scratch_free_end, :scratch_async_reclaim_start, :scratch_async_reclaim_end, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +# typedef hsa_status_t ( * hsa_amd_tool_event ) ( hsa_amd_tool_event_t ) +const hsa_amd_tool_event = Ptr{Cvoid} + +@cenum rocprofiler_scratch_alloc_flag_t::UInt32 begin + ROCPROFILER_SCRATCH_ALLOC_FLAG_NONE = 0 + ROCPROFILER_SCRATCH_ALLOC_FLAG_USE_ONCE = 1 + ROCPROFILER_SCRATCH_ALLOC_FLAG_ALT = 2 +end + +@cenum rocprofiler_hsa_table_id_t::Int32 begin + ROCPROFILER_HSA_TABLE_ID_NONE = -1 + ROCPROFILER_HSA_TABLE_ID_Core = 0 + ROCPROFILER_HSA_TABLE_ID_AmdExt = 1 + ROCPROFILER_HSA_TABLE_ID_ImageExt = 2 + ROCPROFILER_HSA_TABLE_ID_FinalizeExt = 3 + ROCPROFILER_HSA_TABLE_ID_AmdTool = 4 + ROCPROFILER_HSA_TABLE_ID_PcSamplingExt = 5 + ROCPROFILER_HSA_TABLE_ID_LAST = 6 +end + +@cenum rocprofiler_page_migration_trigger_t::Int32 begin + ROCPROFILER_PAGE_MIGRATION_TRIGGER_NONE = -1 + ROCPROFILER_PAGE_MIGRATION_TRIGGER_PREFETCH = 0 + ROCPROFILER_PAGE_MIGRATION_TRIGGER_PAGEFAULT_GPU = 1 + ROCPROFILER_PAGE_MIGRATION_TRIGGER_PAGEFAULT_CPU = 2 + ROCPROFILER_PAGE_MIGRATION_TRIGGER_TTM_EVICTION = 3 + ROCPROFILER_PAGE_MIGRATION_TRIGGER_LAST = 4 +end + +@cenum rocprofiler_page_migration_queue_suspend_trigger_t::Int32 begin + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_NONE = -1 + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_SVM = 0 + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_USERPTR = 1 + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_TTM = 2 + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_SUSPEND = 3 + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_CRIU_CHECKPOINT = 4 + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_CRIU_RESTORE = 5 + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_LAST = 6 +end + +@cenum rocprofiler_page_migration_unmap_from_gpu_trigger_t::Int32 begin + ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_NONE = -1 + ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_MMU_NOTIFY = 0 + ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_MMU_NOTIFY_MIGRATE = 1 + ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_UNMAP_FROM_CPU = 2 + ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_LAST = 3 +end + +struct rocprofiler_page_migration_none_t + empty::Cchar +end + +struct rocprofiler_page_migration_page_migrate_start_t + start_addr::UInt64 + end_addr::UInt64 + from_agent::rocprofiler_agent_id_t + to_agent::rocprofiler_agent_id_t + prefetch_agent::rocprofiler_agent_id_t + preferred_agent::rocprofiler_agent_id_t + trigger::rocprofiler_page_migration_trigger_t +end + +struct rocprofiler_page_migration_page_migrate_end_t + start_addr::UInt64 + end_addr::UInt64 + from_agent::rocprofiler_agent_id_t + to_agent::rocprofiler_agent_id_t + trigger::rocprofiler_page_migration_trigger_t + error_code::Int32 +end + +struct rocprofiler_page_migration_page_fault_start_t + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_page_migration_page_fault_start_t}, f::Symbol) + f === :read_fault && return (Ptr{UInt32}(x + 0), 0, 1) + f === :agent_id && return Ptr{rocprofiler_agent_id_t}(x + 8) + f === :address && return Ptr{UInt64}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_page_migration_page_fault_start_t, f::Symbol) + r = Ref{rocprofiler_page_migration_page_fault_start_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_page_migration_page_fault_start_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_page_migration_page_fault_start_t}, f::Symbol, + v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_page_migration_page_fault_start_t, + private::Bool=false) + return (:read_fault, :agent_id, :address, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_page_migration_page_fault_end_t + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_page_migration_page_fault_end_t}, f::Symbol) + f === :migrated && return (Ptr{UInt32}(x + 0), 0, 1) + f === :agent_id && return Ptr{rocprofiler_agent_id_t}(x + 8) + f === :address && return Ptr{UInt64}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_page_migration_page_fault_end_t, f::Symbol) + r = Ref{rocprofiler_page_migration_page_fault_end_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_page_migration_page_fault_end_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_page_migration_page_fault_end_t}, f::Symbol, + v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_page_migration_page_fault_end_t, + private::Bool=false) + return (:migrated, :agent_id, :address, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_page_migration_queue_eviction_t + agent_id::rocprofiler_agent_id_t + trigger::rocprofiler_page_migration_queue_suspend_trigger_t +end + +struct rocprofiler_page_migration_queue_restore_t + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_page_migration_queue_restore_t}, f::Symbol) + f === :rescheduled && return (Ptr{UInt32}(x + 0), 0, 1) + f === :agent_id && return Ptr{rocprofiler_agent_id_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_page_migration_queue_restore_t, f::Symbol) + r = Ref{rocprofiler_page_migration_queue_restore_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_page_migration_queue_restore_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_page_migration_queue_restore_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_page_migration_queue_restore_t, + private::Bool=false) + return (:rescheduled, :agent_id, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_page_migration_unmap_from_gpu_t + start_addr::UInt64 + end_addr::UInt64 + agent_id::rocprofiler_agent_id_t + trigger::rocprofiler_page_migration_unmap_from_gpu_trigger_t +end + +struct rocprofiler_page_migration_dropped_event_t + dropped_events_count::UInt32 +end + +struct rocprofiler_page_migration_args_t + data::NTuple{128,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_page_migration_args_t}, f::Symbol) + f === :none && return Ptr{rocprofiler_page_migration_none_t}(x + 0) + f === :page_migrate_start && + return Ptr{rocprofiler_page_migration_page_migrate_start_t}(x + 0) + f === :page_migrate_end && + return Ptr{rocprofiler_page_migration_page_migrate_end_t}(x + 0) + f === :page_fault_start && + return Ptr{rocprofiler_page_migration_page_fault_start_t}(x + 0) + f === :page_fault_end && return Ptr{rocprofiler_page_migration_page_fault_end_t}(x + 0) + f === :queue_eviction && return Ptr{rocprofiler_page_migration_queue_eviction_t}(x + 0) + f === :queue_restore && return Ptr{rocprofiler_page_migration_queue_restore_t}(x + 0) + f === :unmap_from_gpu && return Ptr{rocprofiler_page_migration_unmap_from_gpu_t}(x + 0) + f === :dropped_event && return Ptr{rocprofiler_page_migration_dropped_event_t}(x + 0) + f === :reserved && return Ptr{NTuple{16,UInt64}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_page_migration_args_t, f::Symbol) + r = Ref{rocprofiler_page_migration_args_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_page_migration_args_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_page_migration_args_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_page_migration_args_t, private::Bool=false) + return (:none, :page_migrate_start, :page_migrate_end, :page_fault_start, + :page_fault_end, :queue_eviction, :queue_restore, :unmap_from_gpu, + :dropped_event, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const rocDecDecoderHandle = Ptr{Cvoid} + +@cenum rocDecStatus_enum::Int32 begin + ROCDEC_DEVICE_INVALID = -1 + ROCDEC_CONTEXT_INVALID = -2 + ROCDEC_RUNTIME_ERROR = -3 + ROCDEC_OUTOF_MEMORY = -4 + ROCDEC_INVALID_PARAMETER = -5 + ROCDEC_NOT_IMPLEMENTED = -6 + ROCDEC_NOT_INITIALIZED = -7 + ROCDEC_NOT_SUPPORTED = -8 + ROCDEC_SUCCESS = 0 +end + +const rocDecStatus = rocDecStatus_enum + +@cenum rocDecVideoCodec_enum::UInt32 begin + rocDecVideoCodec_MPEG1 = 0 + rocDecVideoCodec_MPEG2 = 1 + rocDecVideoCodec_MPEG4 = 2 + rocDecVideoCodec_AVC = 3 + rocDecVideoCodec_HEVC = 4 + rocDecVideoCodec_AV1 = 5 + rocDecVideoCodec_VP8 = 6 + rocDecVideoCodec_VP9 = 7 + rocDecVideoCodec_JPEG = 8 + rocDecVideoCodec_NumCodecs = 9 + rocDecVideoCodec_YUV420 = 1230591318 + rocDecVideoCodec_YV12 = 1498820914 + rocDecVideoCodec_NV12 = 1314271538 + rocDecVideoCodec_YUYV = 1498765654 + rocDecVideoCodec_UYVY = 1431918169 +end + +const rocDecVideoCodec = rocDecVideoCodec_enum + +@cenum rocDecVideoSurfaceFormat_enum::UInt32 begin + rocDecVideoSurfaceFormat_NV12 = 0 + rocDecVideoSurfaceFormat_P016 = 1 + rocDecVideoSurfaceFormat_YUV444 = 2 + rocDecVideoSurfaceFormat_YUV444_16Bit = 3 + rocDecVideoSurfaceFormat_YUV420 = 4 + rocDecVideoSurfaceFormat_YUV420_16Bit = 5 +end + +const rocDecVideoSurfaceFormat = rocDecVideoSurfaceFormat_enum + +@cenum rocDecVideoChromaFormat_enum::UInt32 begin + rocDecVideoChromaFormat_Monochrome = 0 + rocDecVideoChromaFormat_420 = 1 + rocDecVideoChromaFormat_422 = 2 + rocDecVideoChromaFormat_444 = 3 +end + +const rocDecVideoChromaFormat = rocDecVideoChromaFormat_enum + +@cenum rocDecodeStatus_enum::UInt32 begin + rocDecodeStatus_Invalid = 0 + rocDecodeStatus_InProgress = 1 + rocDecodeStatus_Success = 2 + rocDecodeStatus_Error = 8 + rocDecodeStatus_Error_Concealed = 9 + rocDecodeStatus_Displaying = 10 +end + +const rocDecDecodeStatus = rocDecodeStatus_enum + +struct _RocdecDecodeCaps + device_id::UInt8 + codec_type::rocDecVideoCodec + chroma_format::rocDecVideoChromaFormat + bit_depth_minus_8::UInt32 + reserved_1::NTuple{3,UInt32} + is_supported::UInt8 + num_decoders::UInt8 + output_format_mask::UInt16 + max_width::UInt32 + max_height::UInt32 + min_width::UInt16 + min_height::UInt16 + reserved_2::NTuple{6,UInt32} +end + +const RocdecDecodeCaps = _RocdecDecodeCaps + +struct var"##Ctag#332" + left::Int16 + top::Int16 + right::Int16 + bottom::Int16 +end +function Base.getproperty(x::Ptr{var"##Ctag#332"}, f::Symbol) + f === :left && return Ptr{Int16}(x + 0) + f === :top && return Ptr{Int16}(x + 2) + f === :right && return Ptr{Int16}(x + 4) + f === :bottom && return Ptr{Int16}(x + 6) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#332", f::Symbol) + r = Ref{var"##Ctag#332"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#332"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#332"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#333" + left::Int16 + top::Int16 + right::Int16 + bottom::Int16 +end +function Base.getproperty(x::Ptr{var"##Ctag#333"}, f::Symbol) + f === :left && return Ptr{Int16}(x + 0) + f === :top && return Ptr{Int16}(x + 2) + f === :right && return Ptr{Int16}(x + 4) + f === :bottom && return Ptr{Int16}(x + 6) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#333", f::Symbol) + r = Ref{var"##Ctag#333"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#333"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#333"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct _RocDecoderCreateInfo + data::NTuple{88,UInt8} +end + +function Base.getproperty(x::Ptr{_RocDecoderCreateInfo}, f::Symbol) + f === :device_id && return Ptr{UInt8}(x + 0) + f === :width && return Ptr{UInt32}(x + 4) + f === :height && return Ptr{UInt32}(x + 8) + f === :num_decode_surfaces && return Ptr{UInt32}(x + 12) + f === :codec_type && return Ptr{rocDecVideoCodec}(x + 16) + f === :chroma_format && return Ptr{rocDecVideoChromaFormat}(x + 20) + f === :bit_depth_minus_8 && return Ptr{UInt32}(x + 24) + f === :intra_decode_only && return Ptr{UInt32}(x + 28) + f === :max_width && return Ptr{UInt32}(x + 32) + f === :max_height && return Ptr{UInt32}(x + 36) + f === :display_rect && return Ptr{var"##Ctag#332"}(x + 40) + f === :output_format && return Ptr{rocDecVideoSurfaceFormat}(x + 48) + f === :target_width && return Ptr{UInt32}(x + 52) + f === :target_height && return Ptr{UInt32}(x + 56) + f === :num_output_surfaces && return Ptr{UInt32}(x + 60) + f === :target_rect && return Ptr{var"##Ctag#333"}(x + 64) + f === :reserved_2 && return Ptr{NTuple{4,UInt32}}(x + 72) + return getfield(x, f) +end + +function Base.getproperty(x::_RocDecoderCreateInfo, f::Symbol) + r = Ref{_RocDecoderCreateInfo}(x) + ptr = Base.unsafe_convert(Ptr{_RocDecoderCreateInfo}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocDecoderCreateInfo}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocDecoderCreateInfo, private::Bool=false) + return (:device_id, :width, :height, :num_decode_surfaces, :codec_type, :chroma_format, + :bit_depth_minus_8, :intra_decode_only, :max_width, :max_height, :display_rect, + :output_format, :target_width, :target_height, :num_output_surfaces, + :target_rect, :reserved_2, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocDecoderCreateInfo = _RocDecoderCreateInfo + +struct _RocdecDecodeStatus + decode_status::rocDecDecodeStatus + reserved::NTuple{31,UInt32} + p_reserved::NTuple{8,Ptr{Cvoid}} +end + +const RocdecDecodeStatus = _RocdecDecodeStatus + +struct var"##Ctag#308" + left::Int16 + top::Int16 + right::Int16 + bottom::Int16 +end +function Base.getproperty(x::Ptr{var"##Ctag#308"}, f::Symbol) + f === :left && return Ptr{Int16}(x + 0) + f === :top && return Ptr{Int16}(x + 2) + f === :right && return Ptr{Int16}(x + 4) + f === :bottom && return Ptr{Int16}(x + 6) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#308", f::Symbol) + r = Ref{var"##Ctag#308"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#308"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#308"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#309" + left::Int16 + top::Int16 + right::Int16 + bottom::Int16 +end +function Base.getproperty(x::Ptr{var"##Ctag#309"}, f::Symbol) + f === :left && return Ptr{Int16}(x + 0) + f === :top && return Ptr{Int16}(x + 2) + f === :right && return Ptr{Int16}(x + 4) + f === :bottom && return Ptr{Int16}(x + 6) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#309", f::Symbol) + r = Ref{var"##Ctag#309"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#309"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#309"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct _RocdecReconfigureDecoderInfo + data::NTuple{128,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecReconfigureDecoderInfo}, f::Symbol) + f === :width && return Ptr{UInt32}(x + 0) + f === :height && return Ptr{UInt32}(x + 4) + f === :target_width && return Ptr{UInt32}(x + 8) + f === :target_height && return Ptr{UInt32}(x + 12) + f === :num_decode_surfaces && return Ptr{UInt32}(x + 16) + f === :reserved_1 && return Ptr{NTuple{12,UInt32}}(x + 20) + f === :display_rect && return Ptr{var"##Ctag#308"}(x + 68) + f === :target_rect && return Ptr{var"##Ctag#309"}(x + 76) + f === :reserved_2 && return Ptr{NTuple{11,UInt32}}(x + 84) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecReconfigureDecoderInfo, f::Symbol) + r = Ref{_RocdecReconfigureDecoderInfo}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecReconfigureDecoderInfo}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecReconfigureDecoderInfo}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecReconfigureDecoderInfo, private::Bool=false) + return (:width, :height, :target_width, :target_height, :num_decode_surfaces, + :reserved_1, :display_rect, :target_rect, :reserved_2, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecReconfigureDecoderInfo = _RocdecReconfigureDecoderInfo + +struct _RocdecAvcPicture + pic_idx::Cint + frame_idx::UInt32 + flags::UInt32 + top_field_order_cnt::Int32 + bottom_field_order_cnt::Int32 + reserved::NTuple{4,UInt32} +end + +const RocdecAvcPicture = _RocdecAvcPicture + +struct _RocdecHevcPicture + pic_idx::Cint + poc::Cint + flags::UInt32 + reserved::NTuple{4,UInt32} +end + +const RocdecHevcPicture = _RocdecHevcPicture + +struct _RocdecJPEGPicParams + reserved::Cint +end + +const RocdecJPEGPicParams = _RocdecJPEGPicParams + +struct _RocdecMpeg2QMatrix + load_intra_quantiser_matrix::Int32 + load_non_intra_quantiser_matrix::Int32 + load_chroma_intra_quantiser_matrix::Int32 + load_chroma_non_intra_quantiser_matrix::Int32 + intra_quantiser_matrix::NTuple{64,UInt8} + non_intra_quantiser_matrix::NTuple{64,UInt8} + chroma_intra_quantiser_matrix::NTuple{64,UInt8} + chroma_non_intra_quantiser_matrix::NTuple{64,UInt8} +end + +const RocdecMpeg2QMatrix = _RocdecMpeg2QMatrix + +struct var"##Ctag#413" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#413"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#414"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#413", f::Symbol) + r = Ref{var"##Ctag#413"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#413"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#413"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#413", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecMpeg2PicParams + data::NTuple{312,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecMpeg2PicParams}, f::Symbol) + f === :horizontal_size && return Ptr{UInt16}(x + 0) + f === :vertical_size && return Ptr{UInt16}(x + 2) + f === :forward_reference_pic && return Ptr{UInt32}(x + 4) + f === :backward_reference_picture && return Ptr{UInt32}(x + 8) + f === :picture_coding_type && return Ptr{Int32}(x + 12) + f === :f_code && return Ptr{Int32}(x + 16) + f === :picture_coding_extension && return Ptr{var"##Ctag#413"}(x + 20) + f === :q_matrix && return Ptr{RocdecMpeg2QMatrix}(x + 24) + f === :reserved && return Ptr{NTuple{4,UInt32}}(x + 296) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecMpeg2PicParams, f::Symbol) + r = Ref{_RocdecMpeg2PicParams}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecMpeg2PicParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecMpeg2PicParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecMpeg2PicParams, private::Bool=false) + return (:horizontal_size, :vertical_size, :forward_reference_pic, + :backward_reference_picture, :picture_coding_type, :f_code, + :picture_coding_extension, :q_matrix, :reserved, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecMpeg2PicParams = _RocdecMpeg2PicParams + +struct _RocdecVc1PicParams + reserved::Cint +end + +const RocdecVc1PicParams = _RocdecVc1PicParams + +struct var"##Ctag#913" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#913"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#914"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#913", f::Symbol) + r = Ref{var"##Ctag#913"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#913"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#913"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#913", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#915" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#915"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#916"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#915", f::Symbol) + r = Ref{var"##Ctag#915"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#915"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#915"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#915", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecAvcPicParams + data::NTuple{672,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecAvcPicParams}, f::Symbol) + f === :curr_pic && return Ptr{RocdecAvcPicture}(x + 0) + f === :ref_frames && return Ptr{NTuple{16,RocdecAvcPicture}}(x + 36) + f === :picture_width_in_mbs_minus1 && return Ptr{UInt16}(x + 612) + f === :picture_height_in_mbs_minus1 && return Ptr{UInt16}(x + 614) + f === :bit_depth_luma_minus8 && return Ptr{UInt8}(x + 616) + f === :bit_depth_chroma_minus8 && return Ptr{UInt8}(x + 617) + f === :num_ref_frames && return Ptr{UInt8}(x + 618) + f === :seq_fields && return Ptr{var"##Ctag#913"}(x + 620) + f === :num_slice_groups_minus1 && return Ptr{UInt8}(x + 624) + f === :slice_group_map_type && return Ptr{UInt8}(x + 625) + f === :slice_group_change_rate_minus1 && return Ptr{UInt16}(x + 626) + f === :pic_init_qp_minus26 && return Ptr{Int8}(x + 628) + f === :pic_init_qs_minus26 && return Ptr{Int8}(x + 629) + f === :chroma_qp_index_offset && return Ptr{Int8}(x + 630) + f === :second_chroma_qp_index_offset && return Ptr{Int8}(x + 631) + f === :pic_fields && return Ptr{var"##Ctag#915"}(x + 632) + f === :frame_num && return Ptr{UInt16}(x + 636) + f === :reserved && return Ptr{NTuple{8,UInt32}}(x + 640) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecAvcPicParams, f::Symbol) + r = Ref{_RocdecAvcPicParams}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecAvcPicParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecAvcPicParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecAvcPicParams, private::Bool=false) + return (:curr_pic, :ref_frames, :picture_width_in_mbs_minus1, + :picture_height_in_mbs_minus1, :bit_depth_luma_minus8, :bit_depth_chroma_minus8, + :num_ref_frames, :seq_fields, :num_slice_groups_minus1, :slice_group_map_type, + :slice_group_change_rate_minus1, :pic_init_qp_minus26, :pic_init_qs_minus26, + :chroma_qp_index_offset, :second_chroma_qp_index_offset, :pic_fields, + :frame_num, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecAvcPicParams = _RocdecAvcPicParams + +struct _RocdecAvcSliceParams + slice_data_size::UInt32 + slice_data_offset::UInt32 + slice_data_flag::UInt32 + slice_data_bit_offset::UInt16 + first_mb_in_slice::UInt16 + slice_type::UInt8 + direct_spatial_mv_pred_flag::UInt8 + num_ref_idx_l0_active_minus1::UInt8 + num_ref_idx_l1_active_minus1::UInt8 + cabac_init_idc::UInt8 + slice_qp_delta::Int8 + disable_deblocking_filter_idc::UInt8 + slice_alpha_c0_offset_div2::Int8 + slice_beta_offset_div2::Int8 + ref_pic_list_0::NTuple{32,RocdecAvcPicture} + ref_pic_list_1::NTuple{32,RocdecAvcPicture} + luma_log2_weight_denom::UInt8 + chroma_log2_weight_denom::UInt8 + luma_weight_l0_flag::UInt8 + luma_weight_l0::NTuple{32,Int16} + luma_offset_l0::NTuple{32,Int16} + chroma_weight_l0_flag::UInt8 + chroma_weight_l0::NTuple{32,NTuple{2,Int16}} + chroma_offset_l0::NTuple{32,NTuple{2,Int16}} + luma_weight_l1_flag::UInt8 + luma_weight_l1::NTuple{32,Int16} + luma_offset_l1::NTuple{32,Int16} + chroma_weight_l1_flag::UInt8 + chroma_weight_l1::NTuple{32,NTuple{2,Int16}} + chroma_offset_l1::NTuple{32,NTuple{2,Int16}} + reserved::NTuple{4,UInt32} +end + +const RocdecAvcSliceParams = _RocdecAvcSliceParams + +struct _RocdecAvcIQMatrix + scaling_list_4x4::NTuple{6,NTuple{16,UInt8}} + scaling_list_8x8::NTuple{2,NTuple{64,UInt8}} + reserved::NTuple{4,UInt32} +end + +const RocdecAvcIQMatrix = _RocdecAvcIQMatrix + +struct var"##Ctag#324" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#324"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#325"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#324", f::Symbol) + r = Ref{var"##Ctag#324"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#324"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#324"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#324", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#326" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#326"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#327"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#326", f::Symbol) + r = Ref{var"##Ctag#326"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#326"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#326"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#326", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecHevcPicParams + data::NTuple{604,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecHevcPicParams}, f::Symbol) + f === :curr_pic && return Ptr{RocdecHevcPicture}(x + 0) + f === :ref_frames && return Ptr{NTuple{15,RocdecHevcPicture}}(x + 28) + f === :picture_width_in_luma_samples && return Ptr{UInt16}(x + 448) + f === :picture_height_in_luma_samples && return Ptr{UInt16}(x + 450) + f === :pic_fields && return Ptr{var"##Ctag#324"}(x + 452) + f === :sps_max_dec_pic_buffering_minus1 && return Ptr{UInt8}(x + 456) + f === :bit_depth_luma_minus8 && return Ptr{UInt8}(x + 457) + f === :bit_depth_chroma_minus8 && return Ptr{UInt8}(x + 458) + f === :pcm_sample_bit_depth_luma_minus1 && return Ptr{UInt8}(x + 459) + f === :pcm_sample_bit_depth_chroma_minus1 && return Ptr{UInt8}(x + 460) + f === :log2_min_luma_coding_block_size_minus3 && return Ptr{UInt8}(x + 461) + f === :log2_diff_max_min_luma_coding_block_size && return Ptr{UInt8}(x + 462) + f === :log2_min_transform_block_size_minus2 && return Ptr{UInt8}(x + 463) + f === :log2_diff_max_min_transform_block_size && return Ptr{UInt8}(x + 464) + f === :log2_min_pcm_luma_coding_block_size_minus3 && return Ptr{UInt8}(x + 465) + f === :log2_diff_max_min_pcm_luma_coding_block_size && return Ptr{UInt8}(x + 466) + f === :max_transform_hierarchy_depth_intra && return Ptr{UInt8}(x + 467) + f === :max_transform_hierarchy_depth_inter && return Ptr{UInt8}(x + 468) + f === :init_qp_minus26 && return Ptr{Int8}(x + 469) + f === :diff_cu_qp_delta_depth && return Ptr{UInt8}(x + 470) + f === :pps_cb_qp_offset && return Ptr{Int8}(x + 471) + f === :pps_cr_qp_offset && return Ptr{Int8}(x + 472) + f === :log2_parallel_merge_level_minus2 && return Ptr{UInt8}(x + 473) + f === :num_tile_columns_minus1 && return Ptr{UInt8}(x + 474) + f === :num_tile_rows_minus1 && return Ptr{UInt8}(x + 475) + f === :column_width_minus1 && return Ptr{NTuple{19,UInt16}}(x + 476) + f === :row_height_minus1 && return Ptr{NTuple{21,UInt16}}(x + 514) + f === :slice_parsing_fields && return Ptr{var"##Ctag#326"}(x + 556) + f === :log2_max_pic_order_cnt_lsb_minus4 && return Ptr{UInt8}(x + 560) + f === :num_short_term_ref_pic_sets && return Ptr{UInt8}(x + 561) + f === :num_long_term_ref_pic_sps && return Ptr{UInt8}(x + 562) + f === :num_ref_idx_l0_default_active_minus1 && return Ptr{UInt8}(x + 563) + f === :num_ref_idx_l1_default_active_minus1 && return Ptr{UInt8}(x + 564) + f === :pps_beta_offset_div2 && return Ptr{Int8}(x + 565) + f === :pps_tc_offset_div2 && return Ptr{Int8}(x + 566) + f === :num_extra_slice_header_bits && return Ptr{UInt8}(x + 567) + f === :st_rps_bits && return Ptr{UInt32}(x + 568) + f === :reserved && return Ptr{NTuple{8,UInt32}}(x + 572) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecHevcPicParams, f::Symbol) + r = Ref{_RocdecHevcPicParams}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecHevcPicParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecHevcPicParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecHevcPicParams, private::Bool=false) + return (:curr_pic, :ref_frames, :picture_width_in_luma_samples, + :picture_height_in_luma_samples, :pic_fields, :sps_max_dec_pic_buffering_minus1, + :bit_depth_luma_minus8, :bit_depth_chroma_minus8, + :pcm_sample_bit_depth_luma_minus1, :pcm_sample_bit_depth_chroma_minus1, + :log2_min_luma_coding_block_size_minus3, + :log2_diff_max_min_luma_coding_block_size, + :log2_min_transform_block_size_minus2, :log2_diff_max_min_transform_block_size, + :log2_min_pcm_luma_coding_block_size_minus3, + :log2_diff_max_min_pcm_luma_coding_block_size, + :max_transform_hierarchy_depth_intra, :max_transform_hierarchy_depth_inter, + :init_qp_minus26, :diff_cu_qp_delta_depth, :pps_cb_qp_offset, :pps_cr_qp_offset, + :log2_parallel_merge_level_minus2, :num_tile_columns_minus1, + :num_tile_rows_minus1, :column_width_minus1, :row_height_minus1, + :slice_parsing_fields, :log2_max_pic_order_cnt_lsb_minus4, + :num_short_term_ref_pic_sets, :num_long_term_ref_pic_sps, + :num_ref_idx_l0_default_active_minus1, :num_ref_idx_l1_default_active_minus1, + :pps_beta_offset_div2, :pps_tc_offset_div2, :num_extra_slice_header_bits, + :st_rps_bits, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecHevcPicParams = _RocdecHevcPicParams + +struct var"##Ctag#403" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#403"}, f::Symbol) + f === :value && return Ptr{UInt32}(x + 0) + f === :fields && return Ptr{var"##Ctag#404"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#403", f::Symbol) + r = Ref{var"##Ctag#403"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#403"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#403"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#403", private::Bool=false) + return (:value, :fields, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecHevcSliceParams + data::NTuple{264,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecHevcSliceParams}, f::Symbol) + f === :slice_data_size && return Ptr{UInt32}(x + 0) + f === :slice_data_offset && return Ptr{UInt32}(x + 4) + f === :slice_data_flag && return Ptr{UInt32}(x + 8) + f === :slice_data_byte_offset && return Ptr{UInt32}(x + 12) + f === :slice_segment_address && return Ptr{UInt32}(x + 16) + f === :ref_pic_list && return Ptr{NTuple{2,NTuple{15,UInt8}}}(x + 20) + f === :long_slice_flags && return Ptr{var"##Ctag#403"}(x + 52) + f === :collocated_ref_idx && return Ptr{UInt8}(x + 56) + f === :num_ref_idx_l0_active_minus1 && return Ptr{UInt8}(x + 57) + f === :num_ref_idx_l1_active_minus1 && return Ptr{UInt8}(x + 58) + f === :slice_qp_delta && return Ptr{Int8}(x + 59) + f === :slice_cb_qp_offset && return Ptr{Int8}(x + 60) + f === :slice_cr_qp_offset && return Ptr{Int8}(x + 61) + f === :slice_beta_offset_div2 && return Ptr{Int8}(x + 62) + f === :slice_tc_offset_div2 && return Ptr{Int8}(x + 63) + f === :luma_log2_weight_denom && return Ptr{UInt8}(x + 64) + f === :delta_chroma_log2_weight_denom && return Ptr{Int8}(x + 65) + f === :delta_luma_weight_l0 && return Ptr{NTuple{15,Int8}}(x + 66) + f === :luma_offset_l0 && return Ptr{NTuple{15,Int8}}(x + 81) + f === :delta_chroma_weight_l0 && return Ptr{NTuple{15,NTuple{2,Int8}}}(x + 96) + f === :chroma_offset_l0 && return Ptr{NTuple{15,NTuple{2,Int8}}}(x + 126) + f === :delta_luma_weight_l1 && return Ptr{NTuple{15,Int8}}(x + 156) + f === :luma_offset_l1 && return Ptr{NTuple{15,Int8}}(x + 171) + f === :delta_chroma_weight_l1 && return Ptr{NTuple{15,NTuple{2,Int8}}}(x + 186) + f === :chroma_offset_l1 && return Ptr{NTuple{15,NTuple{2,Int8}}}(x + 216) + f === :five_minus_max_num_merge_cand && return Ptr{UInt8}(x + 246) + f === :num_entry_point_offsets && return Ptr{UInt16}(x + 248) + f === :entry_offset_to_subset_array && return Ptr{UInt16}(x + 250) + f === :slice_data_num_emu_prevn_bytes && return Ptr{UInt16}(x + 252) + f === :reserved && return Ptr{NTuple{2,UInt32}}(x + 256) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecHevcSliceParams, f::Symbol) + r = Ref{_RocdecHevcSliceParams}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecHevcSliceParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecHevcSliceParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecHevcSliceParams, private::Bool=false) + return (:slice_data_size, :slice_data_offset, :slice_data_flag, :slice_data_byte_offset, + :slice_segment_address, :ref_pic_list, :long_slice_flags, :collocated_ref_idx, + :num_ref_idx_l0_active_minus1, :num_ref_idx_l1_active_minus1, :slice_qp_delta, + :slice_cb_qp_offset, :slice_cr_qp_offset, :slice_beta_offset_div2, + :slice_tc_offset_div2, :luma_log2_weight_denom, :delta_chroma_log2_weight_denom, + :delta_luma_weight_l0, :luma_offset_l0, :delta_chroma_weight_l0, + :chroma_offset_l0, :delta_luma_weight_l1, :luma_offset_l1, + :delta_chroma_weight_l1, :chroma_offset_l1, :five_minus_max_num_merge_cand, + :num_entry_point_offsets, :entry_offset_to_subset_array, + :slice_data_num_emu_prevn_bytes, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecHevcSliceParams = _RocdecHevcSliceParams + +struct _RocdecHevcIQMatrix + scaling_list_4x4::NTuple{6,NTuple{16,UInt8}} + scaling_list_8x8::NTuple{6,NTuple{64,UInt8}} + scaling_list_16x16::NTuple{6,NTuple{64,UInt8}} + scaling_list_32x32::NTuple{2,NTuple{64,UInt8}} + scaling_list_dc_16x16::NTuple{6,UInt8} + scaling_list_dc_32x32::NTuple{2,UInt8} + reserved::NTuple{4,UInt32} +end + +const RocdecHevcIQMatrix = _RocdecHevcIQMatrix + +struct var"##Ctag#407" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#407"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#408"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#407", f::Symbol) + r = Ref{var"##Ctag#407"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#407"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#407"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#407", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecVp9PicParams + data::NTuple{92,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecVp9PicParams}, f::Symbol) + f === :frame_width && return Ptr{UInt16}(x + 0) + f === :frame_height && return Ptr{UInt16}(x + 2) + f === :reference_frames && return Ptr{NTuple{8,UInt32}}(x + 4) + f === :pic_fields && return Ptr{var"##Ctag#407"}(x + 36) + f === :filter_level && return Ptr{UInt8}(x + 40) + f === :sharpness_level && return Ptr{UInt8}(x + 41) + f === :log2_tile_rows && return Ptr{UInt8}(x + 42) + f === :log2_tile_columns && return Ptr{UInt8}(x + 43) + f === :frame_header_length_in_bytes && return Ptr{UInt8}(x + 44) + f === :first_partition_size && return Ptr{UInt16}(x + 46) + f === :mb_segment_tree_probs && return Ptr{NTuple{7,UInt8}}(x + 48) + f === :segment_pred_probs && return Ptr{NTuple{3,UInt8}}(x + 55) + f === :profile && return Ptr{UInt8}(x + 58) + f === :bit_depth && return Ptr{UInt8}(x + 59) + f === :va_reserved && return Ptr{NTuple{8,UInt32}}(x + 60) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecVp9PicParams, f::Symbol) + r = Ref{_RocdecVp9PicParams}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecVp9PicParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecVp9PicParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecVp9PicParams, private::Bool=false) + return (:frame_width, :frame_height, :reference_frames, :pic_fields, :filter_level, + :sharpness_level, :log2_tile_rows, :log2_tile_columns, + :frame_header_length_in_bytes, :first_partition_size, :mb_segment_tree_probs, + :segment_pred_probs, :profile, :bit_depth, :va_reserved, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecVp9PicParams = _RocdecVp9PicParams + +struct var"##Ctag#310" + data::NTuple{2,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#310"}, f::Symbol) + f === :fields && return Ptr{var"##Ctag#311"}(x + 0) + f === :value && return Ptr{UInt16}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#310", f::Symbol) + r = Ref{var"##Ctag#310"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#310"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#310"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#310", private::Bool=false) + return (:fields, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecVp9SegmentParameter + data::NTuple{36,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecVp9SegmentParameter}, f::Symbol) + f === :segment_flags && return Ptr{var"##Ctag#310"}(x + 0) + f === :filter_level && return Ptr{NTuple{4,NTuple{2,UInt8}}}(x + 2) + f === :luma_ac_quant_scale && return Ptr{Int16}(x + 10) + f === :luma_dc_quant_scale && return Ptr{Int16}(x + 12) + f === :chroma_ac_quant_scale && return Ptr{Int16}(x + 14) + f === :chroma_dc_quant_scale && return Ptr{Int16}(x + 16) + f === :va_reserved && return Ptr{NTuple{4,UInt32}}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecVp9SegmentParameter, f::Symbol) + r = Ref{_RocdecVp9SegmentParameter}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecVp9SegmentParameter}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecVp9SegmentParameter}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecVp9SegmentParameter, private::Bool=false) + return (:segment_flags, :filter_level, :luma_ac_quant_scale, :luma_dc_quant_scale, + :chroma_ac_quant_scale, :chroma_dc_quant_scale, :va_reserved, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecVp9SegmentParameter = _RocdecVp9SegmentParameter + +struct _RocdecVp9SliceParams + slice_data_size::UInt32 + slice_data_offset::UInt32 + slice_data_flag::UInt32 + seg_param::NTuple{8,RocdecVp9SegmentParameter} + va_reserved::NTuple{4,UInt32} +end + +const RocdecVp9SliceParams = _RocdecVp9SliceParams + +struct var"##Ctag#329" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#329"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#330"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#329", f::Symbol) + r = Ref{var"##Ctag#329"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#329"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#329"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#329", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecAv1SegmentationStruct + data::NTuple{156,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecAv1SegmentationStruct}, f::Symbol) + f === :segment_info_fields && return Ptr{var"##Ctag#329"}(x + 0) + f === :feature_data && return Ptr{NTuple{8,NTuple{8,Int16}}}(x + 4) + f === :feature_mask && return Ptr{NTuple{8,UInt8}}(x + 132) + f === :reserved && return Ptr{NTuple{4,UInt32}}(x + 140) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecAv1SegmentationStruct, f::Symbol) + r = Ref{_RocdecAv1SegmentationStruct}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecAv1SegmentationStruct}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecAv1SegmentationStruct}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecAv1SegmentationStruct, private::Bool=false) + return (:segment_info_fields, :feature_data, :feature_mask, :reserved, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecAv1SegmentationStruct = _RocdecAv1SegmentationStruct + +struct var"##Ctag#425" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#425"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#426"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#425", f::Symbol) + r = Ref{var"##Ctag#425"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#425"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#425"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#425", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecAv1FilmGrainStruct + data::NTuple{176,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecAv1FilmGrainStruct}, f::Symbol) + f === :film_grain_info_fields && return Ptr{var"##Ctag#425"}(x + 0) + f === :grain_seed && return Ptr{UInt16}(x + 4) + f === :num_y_points && return Ptr{UInt8}(x + 6) + f === :point_y_value && return Ptr{NTuple{14,UInt8}}(x + 7) + f === :point_y_scaling && return Ptr{NTuple{14,UInt8}}(x + 21) + f === :num_cb_points && return Ptr{UInt8}(x + 35) + f === :point_cb_value && return Ptr{NTuple{10,UInt8}}(x + 36) + f === :point_cb_scaling && return Ptr{NTuple{10,UInt8}}(x + 46) + f === :num_cr_points && return Ptr{UInt8}(x + 56) + f === :point_cr_value && return Ptr{NTuple{10,UInt8}}(x + 57) + f === :point_cr_scaling && return Ptr{NTuple{10,UInt8}}(x + 67) + f === :ar_coeffs_y && return Ptr{NTuple{24,Int8}}(x + 77) + f === :ar_coeffs_cb && return Ptr{NTuple{25,Int8}}(x + 101) + f === :ar_coeffs_cr && return Ptr{NTuple{25,Int8}}(x + 126) + f === :cb_mult && return Ptr{UInt8}(x + 151) + f === :cb_luma_mult && return Ptr{UInt8}(x + 152) + f === :cb_offset && return Ptr{UInt16}(x + 154) + f === :cr_mult && return Ptr{UInt8}(x + 156) + f === :cr_luma_mult && return Ptr{UInt8}(x + 157) + f === :cr_offset && return Ptr{UInt16}(x + 158) + f === :reserved && return Ptr{NTuple{4,UInt32}}(x + 160) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecAv1FilmGrainStruct, f::Symbol) + r = Ref{_RocdecAv1FilmGrainStruct}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecAv1FilmGrainStruct}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecAv1FilmGrainStruct}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecAv1FilmGrainStruct, private::Bool=false) + return (:film_grain_info_fields, :grain_seed, :num_y_points, :point_y_value, + :point_y_scaling, :num_cb_points, :point_cb_value, :point_cb_scaling, + :num_cr_points, :point_cr_value, :point_cr_scaling, :ar_coeffs_y, :ar_coeffs_cb, + :ar_coeffs_cr, :cb_mult, :cb_luma_mult, :cb_offset, :cr_mult, :cr_luma_mult, + :cr_offset, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecAv1FilmGrainStruct = _RocdecAv1FilmGrainStruct + +@cenum RocdecAv1TransformationType::UInt32 begin + RocdecAv1TransformationIdentity = 0 + RocdecAv1TransformationTranslation = 1 + RocdecAv1TransformationRotzoom = 2 + RocdecAv1TransformationAffine = 3 + RocdecAv1TransformationCount = 4 +end + +struct _RocdecAv1WarpedMotionParams + wmtype::RocdecAv1TransformationType + wmmat::NTuple{8,Int32} + invalid::UInt8 + reserved::NTuple{4,UInt32} +end + +const RocdecAv1WarpedMotionParams = _RocdecAv1WarpedMotionParams + +struct var"##Ctag#1156" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1156"}, f::Symbol) + f === :fields && return Ptr{var"##Ctag#1157"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1156", f::Symbol) + r = Ref{var"##Ctag#1156"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1156"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1156"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1156", private::Bool=false) + return (:fields, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#1158" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1158"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#1159"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1158", f::Symbol) + r = Ref{var"##Ctag#1158"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1158"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1158"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1158", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#1160" + data::NTuple{1,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1160"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#1161"}(x + 0) + f === :value && return Ptr{UInt8}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1160", f::Symbol) + r = Ref{var"##Ctag#1160"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1160"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1160"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1160", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#1162" + data::NTuple{2,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1162"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#1163"}(x + 0) + f === :value && return Ptr{UInt16}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1162", f::Symbol) + r = Ref{var"##Ctag#1162"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1162"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1162"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1162", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#1164" + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1164"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#1165"}(x + 0) + f === :value && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1164", f::Symbol) + r = Ref{var"##Ctag#1164"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1164"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1164"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1164", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#1166" + data::NTuple{2,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#1166"}, f::Symbol) + f === :bits && return Ptr{var"##Ctag#1167"}(x + 0) + f === :value && return Ptr{UInt16}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1166", f::Symbol) + r = Ref{var"##Ctag#1166"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1166"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1166"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#1166", private::Bool=false) + return (:bits, :value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecAV1PicParams + data::NTuple{1160,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecAV1PicParams}, f::Symbol) + f === :profile && return Ptr{UInt8}(x + 0) + f === :order_hint_bits_minus_1 && return Ptr{UInt8}(x + 1) + f === :bit_depth_idx && return Ptr{UInt8}(x + 2) + f === :matrix_coefficients && return Ptr{UInt8}(x + 3) + f === :seq_info_fields && return Ptr{var"##Ctag#1156"}(x + 4) + f === :current_frame && return Ptr{Cint}(x + 8) + f === :current_display_picture && return Ptr{Cint}(x + 12) + f === :anchor_frames_num && return Ptr{UInt8}(x + 16) + f === :anchor_frames_list && return Ptr{Ptr{Cint}}(x + 24) + f === :frame_width_minus1 && return Ptr{UInt16}(x + 32) + f === :frame_height_minus1 && return Ptr{UInt16}(x + 34) + f === :output_frame_width_in_tiles_minus_1 && return Ptr{UInt16}(x + 36) + f === :output_frame_height_in_tiles_minus_1 && return Ptr{UInt16}(x + 38) + f === :ref_frame_map && return Ptr{NTuple{8,Cint}}(x + 40) + f === :ref_frame_idx && return Ptr{NTuple{7,UInt8}}(x + 72) + f === :primary_ref_frame && return Ptr{UInt8}(x + 79) + f === :order_hint && return Ptr{UInt8}(x + 80) + f === :seg_info && return Ptr{RocdecAv1SegmentationStruct}(x + 84) + f === :film_grain_info && return Ptr{RocdecAv1FilmGrainStruct}(x + 240) + f === :tile_cols && return Ptr{UInt8}(x + 416) + f === :tile_rows && return Ptr{UInt8}(x + 417) + f === :width_in_sbs_minus_1 && return Ptr{NTuple{63,UInt16}}(x + 418) + f === :height_in_sbs_minus_1 && return Ptr{NTuple{63,UInt16}}(x + 544) + f === :tile_count_minus_1 && return Ptr{UInt16}(x + 670) + f === :context_update_tile_id && return Ptr{UInt16}(x + 672) + f === :pic_info_fields && return Ptr{var"##Ctag#1158"}(x + 676) + f === :superres_scale_denominator && return Ptr{UInt8}(x + 680) + f === :interp_filter && return Ptr{UInt8}(x + 681) + f === :filter_level && return Ptr{NTuple{2,UInt8}}(x + 682) + f === :filter_level_u && return Ptr{UInt8}(x + 684) + f === :filter_level_v && return Ptr{UInt8}(x + 685) + f === :loop_filter_info_fields && return Ptr{var"##Ctag#1160"}(x + 686) + f === :ref_deltas && return Ptr{NTuple{8,Int8}}(x + 687) + f === :mode_deltas && return Ptr{NTuple{2,Int8}}(x + 695) + f === :base_qindex && return Ptr{UInt8}(x + 697) + f === :y_dc_delta_q && return Ptr{Int8}(x + 698) + f === :u_dc_delta_q && return Ptr{Int8}(x + 699) + f === :u_ac_delta_q && return Ptr{Int8}(x + 700) + f === :v_dc_delta_q && return Ptr{Int8}(x + 701) + f === :v_ac_delta_q && return Ptr{Int8}(x + 702) + f === :qmatrix_fields && return Ptr{var"##Ctag#1162"}(x + 704) + f === :mode_control_fields && return Ptr{var"##Ctag#1164"}(x + 708) + f === :cdef_damping_minus_3 && return Ptr{UInt8}(x + 712) + f === :cdef_bits && return Ptr{UInt8}(x + 713) + f === :cdef_y_strengths && return Ptr{NTuple{8,UInt8}}(x + 714) + f === :cdef_uv_strengths && return Ptr{NTuple{8,UInt8}}(x + 722) + f === :loop_restoration_fields && return Ptr{var"##Ctag#1166"}(x + 730) + f === :wm && return Ptr{NTuple{7,RocdecAv1WarpedMotionParams}}(x + 732) + f === :reserved && return Ptr{NTuple{8,UInt32}}(x + 1124) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecAV1PicParams, f::Symbol) + r = Ref{_RocdecAV1PicParams}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecAV1PicParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecAV1PicParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecAV1PicParams, private::Bool=false) + return (:profile, :order_hint_bits_minus_1, :bit_depth_idx, :matrix_coefficients, + :seq_info_fields, :current_frame, :current_display_picture, :anchor_frames_num, + :anchor_frames_list, :frame_width_minus1, :frame_height_minus1, + :output_frame_width_in_tiles_minus_1, :output_frame_height_in_tiles_minus_1, + :ref_frame_map, :ref_frame_idx, :primary_ref_frame, :order_hint, :seg_info, + :film_grain_info, :tile_cols, :tile_rows, :width_in_sbs_minus_1, + :height_in_sbs_minus_1, :tile_count_minus_1, :context_update_tile_id, + :pic_info_fields, :superres_scale_denominator, :interp_filter, :filter_level, + :filter_level_u, :filter_level_v, :loop_filter_info_fields, :ref_deltas, + :mode_deltas, :base_qindex, :y_dc_delta_q, :u_dc_delta_q, :u_ac_delta_q, + :v_dc_delta_q, :v_ac_delta_q, :qmatrix_fields, :mode_control_fields, + :cdef_damping_minus_3, :cdef_bits, :cdef_y_strengths, :cdef_uv_strengths, + :loop_restoration_fields, :wm, :reserved, if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecAv1PicParams = _RocdecAV1PicParams + +struct _RocdecAv1SliceParams + slice_data_size::UInt32 + slice_data_offset::UInt32 + slice_data_flag::UInt32 + tile_row::UInt16 + tile_column::UInt16 + tg_start::UInt16 + tg_end::UInt16 + anchor_frame_idx::UInt8 + tile_idx_in_tile_list::UInt16 + reserved::NTuple{4,UInt32} +end + +const RocdecAv1SliceParams = _RocdecAv1SliceParams + +struct var"##Ctag#421" + data::NTuple{1160,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#421"}, f::Symbol) + f === :mpeg2 && return Ptr{RocdecMpeg2PicParams}(x + 0) + f === :avc && return Ptr{RocdecAvcPicParams}(x + 0) + f === :hevc && return Ptr{RocdecHevcPicParams}(x + 0) + f === :vc1 && return Ptr{RocdecVc1PicParams}(x + 0) + f === :jpeg && return Ptr{RocdecJPEGPicParams}(x + 0) + f === :vp9 && return Ptr{RocdecVp9PicParams}(x + 0) + f === :av1 && return Ptr{RocdecAv1PicParams}(x + 0) + f === :codec_reserved && return Ptr{NTuple{256,UInt32}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#421", f::Symbol) + r = Ref{var"##Ctag#421"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#421"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#421"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#421", private::Bool=false) + return (:mpeg2, :avc, :hevc, :vc1, :jpeg, :vp9, :av1, :codec_reserved, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#422" + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#422"}, f::Symbol) + f === :avc && return Ptr{Ptr{RocdecAvcSliceParams}}(x + 0) + f === :hevc && return Ptr{Ptr{RocdecHevcSliceParams}}(x + 0) + f === :vp9 && return Ptr{Ptr{RocdecVp9SliceParams}}(x + 0) + f === :av1 && return Ptr{Ptr{RocdecAv1SliceParams}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#422", f::Symbol) + r = Ref{var"##Ctag#422"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#422"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#422"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#422", private::Bool=false) + return (:avc, :hevc, :vp9, :av1, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#423" + data::NTuple{1016,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#423"}, f::Symbol) + f === :avc && return Ptr{RocdecAvcIQMatrix}(x + 0) + f === :hevc && return Ptr{RocdecHevcIQMatrix}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#423", f::Symbol) + r = Ref{var"##Ctag#423"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#423"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#423"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#423", private::Bool=false) + return (:avc, :hevc, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct _RocdecPicParams + data::NTuple{2360,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecPicParams}, f::Symbol) + f === :pic_width && return Ptr{Cint}(x + 0) + f === :pic_height && return Ptr{Cint}(x + 4) + f === :curr_pic_idx && return Ptr{Cint}(x + 8) + f === :field_pic_flag && return Ptr{Cint}(x + 12) + f === :bottom_field_flag && return Ptr{Cint}(x + 16) + f === :second_field && return Ptr{Cint}(x + 20) + f === :bitstream_data_len && return Ptr{UInt32}(x + 24) + f === :bitstream_data && return Ptr{Ptr{UInt8}}(x + 32) + f === :num_slices && return Ptr{UInt32}(x + 40) + f === :ref_pic_flag && return Ptr{Cint}(x + 44) + f === :intra_pic_flag && return Ptr{Cint}(x + 48) + f === :reserved && return Ptr{NTuple{30,UInt32}}(x + 52) + f === :pic_params && return Ptr{var"##Ctag#421"}(x + 176) + f === :slice_params && return Ptr{var"##Ctag#422"}(x + 1336) + f === :iq_matrix && return Ptr{var"##Ctag#423"}(x + 1344) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecPicParams, f::Symbol) + r = Ref{_RocdecPicParams}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecPicParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecPicParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecPicParams, private::Bool=false) + return (:pic_width, :pic_height, :curr_pic_idx, :field_pic_flag, :bottom_field_flag, + :second_field, :bitstream_data_len, :bitstream_data, :num_slices, :ref_pic_flag, + :intra_pic_flag, :reserved, :pic_params, :slice_params, :iq_matrix, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecPicParams = _RocdecPicParams + +struct _RocdecProcParams + progressive_frame::Cint + top_field_first::Cint + reserved_flags::NTuple{2,UInt32} + raw_input_dptr::UInt64 + raw_input_pitch::UInt32 + raw_input_format::UInt32 + raw_output_dptr::UInt64 + raw_output_pitch::UInt32 + raw_output_format::UInt32 + reserved::NTuple{16,UInt32} +end + +const RocdecProcParams = _RocdecProcParams + +function rocDecCreateDecoder(decoder_handle, decoder_create_info) + @ccall librocprofiler_sdk_tool.rocDecCreateDecoder(decoder_handle::Ptr{rocDecDecoderHandle}, + decoder_create_info::Ptr{RocDecoderCreateInfo})::rocDecStatus +end + +function rocDecDestroyDecoder(decoder_handle) + @ccall librocprofiler_sdk_tool.rocDecDestroyDecoder(decoder_handle::rocDecDecoderHandle)::rocDecStatus +end + +function rocDecGetDecoderCaps(decode_caps) + @ccall librocprofiler_sdk_tool.rocDecGetDecoderCaps(decode_caps::Ptr{RocdecDecodeCaps})::rocDecStatus +end + +function rocDecDecodeFrame(decoder_handle, pic_params) + @ccall librocprofiler_sdk_tool.rocDecDecodeFrame(decoder_handle::rocDecDecoderHandle, + pic_params::Ptr{RocdecPicParams})::rocDecStatus +end + +function rocDecGetDecodeStatus(decoder_handle, pic_idx, decode_status) + @ccall librocprofiler_sdk_tool.rocDecGetDecodeStatus(decoder_handle::rocDecDecoderHandle, + pic_idx::Cint, + decode_status::Ptr{RocdecDecodeStatus})::rocDecStatus +end + +function rocDecReconfigureDecoder(decoder_handle, reconfig_params) + @ccall librocprofiler_sdk_tool.rocDecReconfigureDecoder(decoder_handle::rocDecDecoderHandle, + reconfig_params::Ptr{RocdecReconfigureDecoderInfo})::rocDecStatus +end + +function rocDecGetVideoFrame(decoder_handle, pic_idx, dev_mem_ptr, horizontal_pitch, + vid_postproc_params) + @ccall librocprofiler_sdk_tool.rocDecGetVideoFrame(decoder_handle::rocDecDecoderHandle, + pic_idx::Cint, + dev_mem_ptr::Ptr{Ptr{Cvoid}}, + horizontal_pitch::Ptr{UInt32}, + vid_postproc_params::Ptr{RocdecProcParams})::rocDecStatus +end + +function rocDecGetErrorName(rocdec_status) + @ccall librocprofiler_sdk_tool.rocDecGetErrorName(rocdec_status::rocDecStatus)::Ptr{Cchar} +end + +const RocdecBitstreamReader = Ptr{Cvoid} + +function rocDecCreateBitstreamReader(bs_reader_handle, input_file_path) + @ccall librocprofiler_sdk_tool.rocDecCreateBitstreamReader(bs_reader_handle::Ptr{RocdecBitstreamReader}, + input_file_path::Ptr{Cchar})::rocDecStatus +end + +function rocDecGetBitstreamCodecType(bs_reader_handle, codec_type) + @ccall librocprofiler_sdk_tool.rocDecGetBitstreamCodecType(bs_reader_handle::RocdecBitstreamReader, + codec_type::Ptr{rocDecVideoCodec})::rocDecStatus +end + +function rocDecGetBitstreamBitDepth(bs_reader_handle, bit_depth) + @ccall librocprofiler_sdk_tool.rocDecGetBitstreamBitDepth(bs_reader_handle::RocdecBitstreamReader, + bit_depth::Ptr{Cint})::rocDecStatus +end + +function rocDecGetBitstreamPicData(bs_reader_handle, pic_data, pic_size, pts) + @ccall librocprofiler_sdk_tool.rocDecGetBitstreamPicData(bs_reader_handle::RocdecBitstreamReader, + pic_data::Ptr{Ptr{UInt8}}, + pic_size::Ptr{Cint}, + pts::Ptr{Int64})::rocDecStatus +end + +function rocDecDestroyBitstreamReader(bs_reader_handle) + @ccall librocprofiler_sdk_tool.rocDecDestroyBitstreamReader(bs_reader_handle::RocdecBitstreamReader)::rocDecStatus +end + +const RocdecVideoParser = Ptr{Cvoid} + +const RocdecTimeStamp = UInt64 + +struct var"##Ctag#283" + numerator::UInt32 + denominator::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#283"}, f::Symbol) + f === :numerator && return Ptr{UInt32}(x + 0) + f === :denominator && return Ptr{UInt32}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#283", f::Symbol) + r = Ref{var"##Ctag#283"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#283"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#283"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#284" + left::Cint + top::Cint + right::Cint + bottom::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#284"}, f::Symbol) + f === :left && return Ptr{Cint}(x + 0) + f === :top && return Ptr{Cint}(x + 4) + f === :right && return Ptr{Cint}(x + 8) + f === :bottom && return Ptr{Cint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#284", f::Symbol) + r = Ref{var"##Ctag#284"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#284"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#284"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#285" + x::Cint + y::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#285"}, f::Symbol) + f === :x && return Ptr{Cint}(x + 0) + f === :y && return Ptr{Cint}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#285", f::Symbol) + r = Ref{var"##Ctag#285"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#285"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#285"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#286" + video_format::UInt8 + video_full_range_flag::UInt8 + reserved_zero_bits::UInt8 + color_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 +end +function Base.getproperty(x::Ptr{var"##Ctag#286"}, f::Symbol) + f === :video_format && return (Ptr{UInt8}(x + 0), 0, 3) + f === :video_full_range_flag && return (Ptr{UInt8}(x + 0), 3, 1) + f === :reserved_zero_bits && return (Ptr{UInt8}(x + 0), 4, 4) + f === :color_primaries && return Ptr{UInt8}(x + 1) + f === :transfer_characteristics && return Ptr{UInt8}(x + 2) + f === :matrix_coefficients && return Ptr{UInt8}(x + 3) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#286", f::Symbol) + r = Ref{var"##Ctag#286"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#286"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#286"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct RocdecVideoFormat + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{RocdecVideoFormat}, f::Symbol) + f === :codec && return Ptr{rocDecVideoCodec}(x + 0) + f === :frame_rate && return Ptr{var"##Ctag#283"}(x + 4) + f === :progressive_sequence && return Ptr{UInt8}(x + 12) + f === :bit_depth_luma_minus8 && return Ptr{UInt8}(x + 13) + f === :bit_depth_chroma_minus8 && return Ptr{UInt8}(x + 14) + f === :min_num_decode_surfaces && return Ptr{UInt8}(x + 15) + f === :coded_width && return Ptr{UInt32}(x + 16) + f === :coded_height && return Ptr{UInt32}(x + 20) + f === :display_area && return Ptr{var"##Ctag#284"}(x + 24) + f === :chroma_format && return Ptr{rocDecVideoChromaFormat}(x + 40) + f === :bitrate && return Ptr{UInt32}(x + 44) + f === :display_aspect_ratio && return Ptr{var"##Ctag#285"}(x + 48) + f === :video_signal_description && return Ptr{var"##Ctag#286"}(x + 56) + f === :seqhdr_data_length && return Ptr{UInt32}(x + 60) + return getfield(x, f) +end + +function Base.getproperty(x::RocdecVideoFormat, f::Symbol) + r = Ref{RocdecVideoFormat}(x) + ptr = Base.unsafe_convert(Ptr{RocdecVideoFormat}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{RocdecVideoFormat}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::RocdecVideoFormat, private::Bool=false) + return (:codec, :frame_rate, :progressive_sequence, :bit_depth_luma_minus8, + :bit_depth_chroma_minus8, :min_num_decode_surfaces, :coded_width, :coded_height, + :display_area, :chroma_format, :bitrate, :display_aspect_ratio, + :video_signal_description, :seqhdr_data_length, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct RocdecVideoFormatEx + data::NTuple{1096,UInt8} +end + +function Base.getproperty(x::Ptr{RocdecVideoFormatEx}, f::Symbol) + f === :format && return Ptr{RocdecVideoFormat}(x + 0) + f === :max_width && return Ptr{UInt32}(x + 64) + f === :max_height && return Ptr{UInt32}(x + 68) + f === :raw_seqhdr_data && return Ptr{NTuple{1024,UInt8}}(x + 72) + return getfield(x, f) +end + +function Base.getproperty(x::RocdecVideoFormatEx, f::Symbol) + r = Ref{RocdecVideoFormatEx}(x) + ptr = Base.unsafe_convert(Ptr{RocdecVideoFormatEx}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{RocdecVideoFormatEx}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::RocdecVideoFormatEx, private::Bool=false) + return (:format, :max_width, :max_height, :raw_seqhdr_data, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum RocdecVideoPacketFlags::UInt32 begin + ROCDEC_PKT_ENDOFSTREAM = 1 + ROCDEC_PKT_TIMESTAMP = 2 + ROCDEC_PKT_DISCONTINUITY = 4 + ROCDEC_PKT_ENDOFPICTURE = 8 + ROCDEC_PKT_NOTIFY_EOS = 16 +end + +struct _RocdecSourceDataPacket + flags::UInt32 + payload_size::UInt32 + payload::Ptr{UInt8} + pts::RocdecTimeStamp +end + +const RocdecSourceDataPacket = _RocdecSourceDataPacket + +struct _RocdecParserDispInfo + picture_index::Cint + progressive_frame::Cint + top_field_first::Cint + repeat_first_field::Cint + pts::RocdecTimeStamp +end + +const RocdecParserDispInfo = _RocdecParserDispInfo + +struct _RocdecOperatingPointInfo + data::NTuple{1028,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecOperatingPointInfo}, f::Symbol) + f === :codec && return Ptr{rocDecVideoCodec}(x + 0) + f === + Symbol("union _RocdecOperatingPointInfo::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/rocdecode/details/rocparser.h:210:5)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecOperatingPointInfo, f::Symbol) + r = Ref{_RocdecOperatingPointInfo}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecOperatingPointInfo}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{_RocdecOperatingPointInfo}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::_RocdecOperatingPointInfo, private::Bool=false) + return (:codec, + Symbol("union _RocdecOperatingPointInfo::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/rocdecode/details/rocparser.h:210:5)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecOperatingPointInfo = _RocdecOperatingPointInfo + +struct _RocdecSeiMessage + sei_message_type::UInt8 + reserved::NTuple{3,UInt8} + sei_message_size::UInt32 +end + +const RocdecSeiMessage = _RocdecSeiMessage + +struct _RocdecSeiMessageInfo + sei_data::Ptr{Cvoid} + sei_message::Ptr{RocdecSeiMessage} + sei_message_count::UInt32 + picIdx::UInt32 +end + +const RocdecSeiMessageInfo = _RocdecSeiMessageInfo + +# typedef int ( ROCDECAPI * PFNVIDSEQUENCECALLBACK ) ( void * , RocdecVideoFormat * ) +const PFNVIDSEQUENCECALLBACK = Ptr{Cvoid} + +# typedef int ( ROCDECAPI * PFNVIDDECODECALLBACK ) ( void * , RocdecPicParams * ) +const PFNVIDDECODECALLBACK = Ptr{Cvoid} + +# typedef int ( ROCDECAPI * PFNVIDDISPLAYCALLBACK ) ( void * , RocdecParserDispInfo * ) +const PFNVIDDISPLAYCALLBACK = Ptr{Cvoid} + +# typedef int ( ROCDECAPI * PFNVIDSEIMSGCALLBACK ) ( void * , RocdecSeiMessageInfo * ) +const PFNVIDSEIMSGCALLBACK = Ptr{Cvoid} + +struct _RocdecParserParams + data::NTuple{128,UInt8} +end + +function Base.getproperty(x::Ptr{_RocdecParserParams}, f::Symbol) + f === :codec_type && return Ptr{rocDecVideoCodec}(x + 0) + f === :max_num_decode_surfaces && return Ptr{UInt32}(x + 4) + f === :clock_rate && return Ptr{UInt32}(x + 8) + f === :error_threshold && return Ptr{UInt32}(x + 12) + f === :max_display_delay && return Ptr{UInt32}(x + 16) + f === :annex_b && return (Ptr{UInt32}(x + 20), 0, 1) + f === :reserved && return (Ptr{UInt32}(x + 20), 1, 31) + f === :reserved_1 && return Ptr{NTuple{4,UInt32}}(x + 24) + f === :user_data && return Ptr{Ptr{Cvoid}}(x + 40) + f === :pfn_sequence_callback && return Ptr{PFNVIDSEQUENCECALLBACK}(x + 48) + f === :pfn_decode_picture && return Ptr{PFNVIDDECODECALLBACK}(x + 56) + f === :pfn_display_picture && return Ptr{PFNVIDDISPLAYCALLBACK}(x + 64) + f === :pfn_get_sei_msg && return Ptr{PFNVIDSEIMSGCALLBACK}(x + 72) + f === :reserved_2 && return Ptr{NTuple{5,Ptr{Cvoid}}}(x + 80) + f === :ext_video_info && return Ptr{Ptr{RocdecVideoFormatEx}}(x + 120) + return getfield(x, f) +end + +function Base.getproperty(x::_RocdecParserParams, f::Symbol) + r = Ref{_RocdecParserParams}(x) + ptr = Base.unsafe_convert(Ptr{_RocdecParserParams}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{_RocdecParserParams}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::_RocdecParserParams, private::Bool=false) + return (:codec_type, :max_num_decode_surfaces, :clock_rate, :error_threshold, + :max_display_delay, :annex_b, :reserved, :reserved_1, :user_data, + :pfn_sequence_callback, :pfn_decode_picture, :pfn_display_picture, + :pfn_get_sei_msg, :reserved_2, :ext_video_info, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +const RocdecParserParams = _RocdecParserParams + +function rocDecCreateVideoParser(parser_handle, params) + @ccall librocprofiler_sdk_tool.rocDecCreateVideoParser(parser_handle::Ptr{RocdecVideoParser}, + params::Ptr{RocdecParserParams})::rocDecStatus +end + +function rocDecParseVideoData(parser_handle, packet) + @ccall librocprofiler_sdk_tool.rocDecParseVideoData(parser_handle::RocdecVideoParser, + packet::Ptr{RocdecSourceDataPacket})::rocDecStatus +end + +function rocDecParserMarkFrameForReuse(parser_handle, pic_idx) + @ccall librocprofiler_sdk_tool.rocDecParserMarkFrameForReuse(parser_handle::RocdecVideoParser, + pic_idx::Cint)::rocDecStatus +end + +function rocDecDestroyVideoParser(parser_handle) + @ccall librocprofiler_sdk_tool.rocDecDestroyVideoParser(parser_handle::RocdecVideoParser)::rocDecStatus +end + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecCreateVideoParser ) ( RocdecVideoParser * parser_handle , RocdecParserParams * params ) +const PfnRocDecCreateVideoParser = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecParseVideoData ) ( RocdecVideoParser parser_handle , RocdecSourceDataPacket * packet ) +const PfnRocDecParseVideoData = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecDestroyVideoParser ) ( RocdecVideoParser parser_handle ) +const PfnRocDecDestroyVideoParser = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecCreateDecoder ) ( rocDecDecoderHandle * decoder_handle , RocDecoderCreateInfo * decoder_create_info ) +const PfnRocDecCreateDecoder = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecDestroyDecoder ) ( rocDecDecoderHandle decoder_handle ) +const PfnRocDecDestroyDecoder = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecGetDecoderCaps ) ( RocdecDecodeCaps * decode_caps ) +const PfnRocDecGetDecoderCaps = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecDecodeFrame ) ( rocDecDecoderHandle decoder_handle , RocdecPicParams * pic_params ) +const PfnRocDecDecodeFrame = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecGetDecodeStatus ) ( rocDecDecoderHandle decoder_handle , int pic_idx , RocdecDecodeStatus * decode_status ) +const PfnRocDecGetDecodeStatus = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecReconfigureDecoder ) ( rocDecDecoderHandle decoder_handle , RocdecReconfigureDecoderInfo * reconfig_params ) +const PfnRocDecReconfigureDecoder = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecGetVideoFrame ) ( rocDecDecoderHandle decoder_handle , int pic_idx , void * dev_mem_ptr [ 3 ] , uint32_t * horizontal_pitch , RocdecProcParams * vid_postproc_params ) +const PfnRocDecGetVideoFrame = Ptr{Cvoid} + +# typedef const char * ( ROCDECAPI * PfnRocDecGetErrorName ) ( rocDecStatus rocdec_status ) +const PfnRocDecGetErrorName = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecCreateBitstreamReader ) ( RocdecBitstreamReader * bs_reader_handle , const char * input_file_path ) +const PfnRocDecCreateBitstreamReader = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecGetBitstreamCodecType ) ( RocdecBitstreamReader bs_reader_handle , rocDecVideoCodec * codec_type ) +const PfnRocDecGetBitstreamCodecType = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecGetBitstreamBitDepth ) ( RocdecBitstreamReader bs_reader_handle , int * bit_depth ) +const PfnRocDecGetBitstreamBitDepth = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecGetBitstreamPicData ) ( RocdecBitstreamReader bs_reader_handle , uint8_t * * pic_data , int * pic_size , int64_t * pts ) +const PfnRocDecGetBitstreamPicData = Ptr{Cvoid} + +# typedef rocDecStatus ( ROCDECAPI * PfnRocDecDestroyBitstreamReader ) ( RocdecBitstreamReader bs_reader_handle ) +const PfnRocDecDestroyBitstreamReader = Ptr{Cvoid} + +struct RocDecodeDispatchTable + size::Csize_t + pfn_rocdec_create_video_parser::PfnRocDecCreateVideoParser + pfn_rocdec_parse_video_data::PfnRocDecParseVideoData + pfn_rocdec_destroy_video_parser::PfnRocDecDestroyVideoParser + pfn_rocdec_create_decoder::PfnRocDecCreateDecoder + pfn_rocdec_destroy_decoder::PfnRocDecDestroyDecoder + pfn_rocdec_get_gecoder_caps::PfnRocDecGetDecoderCaps + pfn_rocdec_decode_frame::PfnRocDecDecodeFrame + pfn_rocdec_get_decode_status::PfnRocDecGetDecodeStatus + pfn_rocdec_reconfigure_decoder::PfnRocDecReconfigureDecoder + pfn_rocdec_get_video_frame::PfnRocDecGetVideoFrame + pfn_rocdec_get_error_name::PfnRocDecGetErrorName + pfn_rocdec_create_bitstream_reader::PfnRocDecCreateBitstreamReader + pfn_rocdec_get_bitstream_codec_type::PfnRocDecGetBitstreamCodecType + pfn_rocdec_get_bitstream_bit_depth::PfnRocDecGetBitstreamBitDepth + pfn_rocdec_get_bitstream_pic_data::PfnRocDecGetBitstreamPicData + pfn_rocdec_destroy_bitstream_reader::PfnRocDecDestroyBitstreamReader +end + +struct rocprofiler_rocdecode_api_no_args + empty::Cchar +end + +struct rocprofiler_rocdecode_api_retval_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_rocdecode_api_retval_t}, f::Symbol) + f === :uint64_t_retval && return Ptr{UInt64}(x + 0) + f === :rocDecStatus_retval && return Ptr{Int32}(x + 0) + f === :const_charp_retval && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_rocdecode_api_retval_t, f::Symbol) + r = Ref{rocprofiler_rocdecode_api_retval_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_rocdecode_api_retval_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_rocdecode_api_retval_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_rocdecode_api_retval_t, private::Bool=false) + return (:uint64_t_retval, :rocDecStatus_retval, :const_charp_retval, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_rocdecode_api_args_t + data::NTuple{40,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_rocdecode_api_args_t}, f::Symbol) + f === :rocDecCreateVideoParser && return Ptr{var"##Ctag#287"}(x + 0) + f === :rocDecParseVideoData && return Ptr{var"##Ctag#288"}(x + 0) + f === :rocDecDestroyVideoParser && return Ptr{var"##Ctag#289"}(x + 0) + f === :rocDecCreateDecoder && return Ptr{var"##Ctag#290"}(x + 0) + f === :rocDecDestroyDecoder && return Ptr{var"##Ctag#291"}(x + 0) + f === :rocDecGetDecoderCaps && return Ptr{var"##Ctag#292"}(x + 0) + f === :rocDecDecodeFrame && return Ptr{var"##Ctag#293"}(x + 0) + f === :rocDecGetDecodeStatus && return Ptr{var"##Ctag#294"}(x + 0) + f === :rocDecReconfigureDecoder && return Ptr{var"##Ctag#295"}(x + 0) + f === :rocDecGetVideoFrame && return Ptr{var"##Ctag#296"}(x + 0) + f === :rocDecGetErrorName && return Ptr{var"##Ctag#297"}(x + 0) + f === :rocDecCreateBitstreamReader && return Ptr{var"##Ctag#298"}(x + 0) + f === :rocDecGetBitstreamCodecType && return Ptr{var"##Ctag#299"}(x + 0) + f === :rocDecGetBitstreamBitDepth && return Ptr{var"##Ctag#300"}(x + 0) + f === :rocDecGetBitstreamPicData && return Ptr{var"##Ctag#301"}(x + 0) + f === :rocDecDestroyBitstreamReader && return Ptr{var"##Ctag#302"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_rocdecode_api_args_t, f::Symbol) + r = Ref{rocprofiler_rocdecode_api_args_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_rocdecode_api_args_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_rocdecode_api_args_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_rocdecode_api_args_t, private::Bool=false) + return (:rocDecCreateVideoParser, :rocDecParseVideoData, :rocDecDestroyVideoParser, + :rocDecCreateDecoder, :rocDecDestroyDecoder, :rocDecGetDecoderCaps, + :rocDecDecodeFrame, :rocDecGetDecodeStatus, :rocDecReconfigureDecoder, + :rocDecGetVideoFrame, :rocDecGetErrorName, :rocDecCreateBitstreamReader, + :rocDecGetBitstreamCodecType, :rocDecGetBitstreamBitDepth, + :rocDecGetBitstreamPicData, :rocDecDestroyBitstreamReader, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum rocprofiler_rocdecode_api_id_t::Int32 begin + ROCPROFILER_ROCDECODE_API_ID_NONE = -1 + ROCPROFILER_ROCDECODE_API_ID_rocDecCreateVideoParser = 0 + ROCPROFILER_ROCDECODE_API_ID_rocDecParseVideoData = 1 + ROCPROFILER_ROCDECODE_API_ID_rocDecDestroyVideoParser = 2 + ROCPROFILER_ROCDECODE_API_ID_rocDecCreateDecoder = 3 + ROCPROFILER_ROCDECODE_API_ID_rocDecDestroyDecoder = 4 + ROCPROFILER_ROCDECODE_API_ID_rocDecGetDecoderCaps = 5 + ROCPROFILER_ROCDECODE_API_ID_rocDecDecodeFrame = 6 + ROCPROFILER_ROCDECODE_API_ID_rocDecGetDecodeStatus = 7 + ROCPROFILER_ROCDECODE_API_ID_rocDecReconfigureDecoder = 8 + ROCPROFILER_ROCDECODE_API_ID_rocDecGetVideoFrame = 9 + ROCPROFILER_ROCDECODE_API_ID_rocDecGetErrorName = 10 + ROCPROFILER_ROCDECODE_API_ID_rocDecCreateBitstreamReader = 11 + ROCPROFILER_ROCDECODE_API_ID_rocDecGetBitstreamCodecType = 12 + ROCPROFILER_ROCDECODE_API_ID_rocDecGetBitstreamBitDepth = 13 + ROCPROFILER_ROCDECODE_API_ID_rocDecGetBitstreamPicData = 14 + ROCPROFILER_ROCDECODE_API_ID_rocDecDestroyBitstreamReader = 15 + ROCPROFILER_ROCDECODE_API_ID_LAST = 16 +end + +struct rocprofiler_buffer_tracing_hsa_api_record_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_hsa_api_record_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_tracing_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_hsa_api_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_hsa_api_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_hsa_api_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_hsa_api_record_t}, f::Symbol, + v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_hsa_api_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :start_timestamp, :end_timestamp, + :thread_id, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_hip_api_record_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_hip_api_record_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_tracing_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_hip_api_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_hip_api_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_hip_api_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_hip_api_record_t}, f::Symbol, + v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_hip_api_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :start_timestamp, :end_timestamp, + :thread_id, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_hip_api_ext_record_t + data::NTuple{176,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_hip_api_ext_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_tracing_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + f === :args && return Ptr{rocprofiler_hip_api_args_t}(x + 64) + f === :retval && return Ptr{rocprofiler_hip_api_retval_t}(x + 152) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_hip_api_ext_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_hip_api_ext_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_hip_api_ext_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_hip_api_ext_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_hip_api_ext_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :start_timestamp, :end_timestamp, + :thread_id, :args, :retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_ompt_target_t + kind::Int32 + device_num::Int32 + task_id::UInt64 + target_id::UInt64 + codeptr_ra::Ptr{Cvoid} +end + +struct rocprofiler_buffer_tracing_ompt_target_data_op_t + host_op_id::UInt64 + optype::Int32 + src_device_num::Int32 + dst_device_num::Int32 + reserved::Int32 + bytes::UInt64 + codeptr_ra::Ptr{Cvoid} +end + +struct rocprofiler_buffer_tracing_ompt_target_kernel_t + host_op_id::UInt64 + device_num::Int32 + requested_num_teams::UInt32 +end + +struct rocprofiler_buffer_tracing_ompt_record_t + data::NTuple{104,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_ompt_record_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_tracing_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + f === + Symbol("union rocprofiler_buffer_tracing_ompt_record_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/buffer_tracing.h:155:5)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_ompt_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_ompt_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_ompt_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_ompt_record_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_ompt_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :start_timestamp, :end_timestamp, + :thread_id, + Symbol("union rocprofiler_buffer_tracing_ompt_record_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/buffer_tracing.h:155:5)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_marker_api_record_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_marker_api_record_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_tracing_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_marker_api_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_marker_api_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_marker_api_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_marker_api_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_marker_api_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :start_timestamp, :end_timestamp, + :thread_id, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_rccl_api_record_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_rccl_api_record_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_tracing_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_rccl_api_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_rccl_api_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_rccl_api_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_rccl_api_record_t}, f::Symbol, + v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_rccl_api_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :start_timestamp, :end_timestamp, + :thread_id, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_rocdecode_api_record_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_rocdecode_api_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_rocdecode_api_id_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_rocdecode_api_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_rocdecode_api_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_rocdecode_api_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_rocdecode_api_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_rocdecode_api_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :start_timestamp, :end_timestamp, + :thread_id, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_rocdecode_api_ext_record_t + data::NTuple{112,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_rocdecode_api_ext_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_rocdecode_api_id_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + f === :args && return Ptr{rocprofiler_rocdecode_api_args_t}(x + 64) + f === :retval && return Ptr{rocprofiler_rocdecode_api_retval_t}(x + 104) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_rocdecode_api_ext_record_t, + f::Symbol) + r = Ref{rocprofiler_buffer_tracing_rocdecode_api_ext_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_rocdecode_api_ext_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_rocdecode_api_ext_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_rocdecode_api_ext_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :start_timestamp, :end_timestamp, + :thread_id, :args, :retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_rocjpeg_api_record_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_rocjpeg_api_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_tracing_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_rocjpeg_api_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_rocjpeg_api_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_rocjpeg_api_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_rocjpeg_api_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_rocjpeg_api_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :start_timestamp, :end_timestamp, + :thread_id, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_memory_copy_record_t + data::NTuple{96,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_memory_copy_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_memory_copy_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_async_correlation_id_t}(x + 16) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 32) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :dst_agent_id && return Ptr{rocprofiler_agent_id_t}(x + 56) + f === :src_agent_id && return Ptr{rocprofiler_agent_id_t}(x + 64) + f === :bytes && return Ptr{UInt64}(x + 72) + f === :dst_address && return Ptr{rocprofiler_address_t}(x + 80) + f === :src_address && return Ptr{rocprofiler_address_t}(x + 88) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_memory_copy_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_memory_copy_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_memory_copy_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_memory_copy_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_memory_copy_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :thread_id, :start_timestamp, + :end_timestamp, :dst_agent_id, :src_agent_id, :bytes, :dst_address, + :src_address, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_memory_allocation_record_t + data::NTuple{88,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_memory_allocation_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_memory_allocation_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 40) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 56) + f === :agent_id && return Ptr{rocprofiler_agent_id_t}(x + 64) + f === :address && return Ptr{rocprofiler_address_t}(x + 72) + f === :allocation_size && return Ptr{UInt64}(x + 80) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_memory_allocation_record_t, + f::Symbol) + r = Ref{rocprofiler_buffer_tracing_memory_allocation_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_memory_allocation_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_memory_allocation_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_memory_allocation_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :thread_id, :start_timestamp, + :end_timestamp, :agent_id, :address, :allocation_size, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_kernel_dispatch_record_t + data::NTuple{184,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_kernel_dispatch_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_kernel_dispatch_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_async_correlation_id_t}(x + 16) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 32) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :dispatch_info && return Ptr{rocprofiler_kernel_dispatch_info_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_kernel_dispatch_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_kernel_dispatch_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_kernel_dispatch_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_kernel_dispatch_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_kernel_dispatch_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :thread_id, :start_timestamp, + :end_timestamp, :dispatch_info, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_page_migration_record_t + data::NTuple{160,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_page_migration_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_page_migration_operation_t}(x + 12) + f === :timestamp && return Ptr{rocprofiler_timestamp_t}(x + 16) + f === :pid && return Ptr{UInt32}(x + 24) + f === :args && return Ptr{rocprofiler_page_migration_args_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_page_migration_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_page_migration_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_page_migration_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_page_migration_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_page_migration_record_t, + private::Bool=false) + return (:size, :kind, :operation, :timestamp, :pid, :args, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_scratch_memory_record_t + data::NTuple{88,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_scratch_memory_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_scratch_memory_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :agent_id && return Ptr{rocprofiler_agent_id_t}(x + 40) + f === :queue_id && return Ptr{rocprofiler_queue_id_t}(x + 48) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 56) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 64) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 72) + f === :flags && return Ptr{rocprofiler_scratch_alloc_flag_t}(x + 80) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_scratch_memory_record_t, f::Symbol) + r = Ref{rocprofiler_buffer_tracing_scratch_memory_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_scratch_memory_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_scratch_memory_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_scratch_memory_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :agent_id, :queue_id, :thread_id, + :start_timestamp, :end_timestamp, :flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_buffer_tracing_correlation_id_retirement_record_t + size::UInt64 + kind::rocprofiler_buffer_tracing_kind_t + timestamp::rocprofiler_timestamp_t + internal_correlation_id::UInt64 +end + +struct rocprofiler_buffer_tracing_runtime_initialization_record_t + data::NTuple{72,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_buffer_tracing_runtime_initialization_record_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kind && return Ptr{rocprofiler_buffer_tracing_kind_t}(x + 8) + f === :operation && return Ptr{rocprofiler_runtime_initialization_operation_t}(x + 12) + f === :correlation_id && return Ptr{rocprofiler_correlation_id_t}(x + 16) + f === :thread_id && return Ptr{rocprofiler_thread_id_t}(x + 40) + f === :timestamp && return Ptr{rocprofiler_timestamp_t}(x + 48) + f === :version && return Ptr{UInt64}(x + 56) + f === :instance && return Ptr{UInt64}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_buffer_tracing_runtime_initialization_record_t, + f::Symbol) + r = Ref{rocprofiler_buffer_tracing_runtime_initialization_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_buffer_tracing_runtime_initialization_record_t}, + r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_buffer_tracing_runtime_initialization_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_buffer_tracing_runtime_initialization_record_t, + private::Bool=false) + return (:size, :kind, :operation, :correlation_id, :thread_id, :timestamp, :version, + :instance, if private + fieldnames(typeof(x)) + else + () + end...) +end + +# typedef int ( * rocprofiler_buffer_tracing_kind_cb_t ) ( rocprofiler_buffer_tracing_kind_t kind , void * data ) +const rocprofiler_buffer_tracing_kind_cb_t = Ptr{Cvoid} + +# typedef int ( * rocprofiler_buffer_tracing_kind_operation_cb_t ) ( rocprofiler_buffer_tracing_kind_t kind , rocprofiler_tracing_operation_t operation , void * data ) +const rocprofiler_buffer_tracing_kind_operation_cb_t = Ptr{Cvoid} + +function rocprofiler_configure_buffer_tracing_service(context_id, kind, operations, + operations_count, buffer_id) + @ccall librocprofiler_sdk_tool.rocprofiler_configure_buffer_tracing_service(context_id::rocprofiler_context_id_t, + kind::rocprofiler_buffer_tracing_kind_t, + operations::Ptr{rocprofiler_tracing_operation_t}, + operations_count::Csize_t, + buffer_id::rocprofiler_buffer_id_t)::rocprofiler_status_t +end + +function rocprofiler_query_buffer_tracing_kind_name(kind, name, name_len) + @ccall librocprofiler_sdk_tool.rocprofiler_query_buffer_tracing_kind_name(kind::rocprofiler_buffer_tracing_kind_t, + name::Ptr{Ptr{Cchar}}, + name_len::Ptr{UInt64})::rocprofiler_status_t +end + +function rocprofiler_query_buffer_tracing_kind_operation_name(kind, operation, name, + name_len) + @ccall librocprofiler_sdk_tool.rocprofiler_query_buffer_tracing_kind_operation_name(kind::rocprofiler_buffer_tracing_kind_t, + operation::rocprofiler_tracing_operation_t, + name::Ptr{Ptr{Cchar}}, + name_len::Ptr{UInt64})::rocprofiler_status_t +end + +function rocprofiler_iterate_buffer_tracing_kinds(callback, data) + @ccall librocprofiler_sdk_tool.rocprofiler_iterate_buffer_tracing_kinds(callback::rocprofiler_buffer_tracing_kind_cb_t, + data::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_iterate_buffer_tracing_kind_operations(kind, callback, data) + @ccall librocprofiler_sdk_tool.rocprofiler_iterate_buffer_tracing_kind_operations(kind::rocprofiler_buffer_tracing_kind_t, + callback::rocprofiler_buffer_tracing_kind_operation_cb_t, + data::Ptr{Cvoid})::rocprofiler_status_t +end + +# typedef int ( * rocprofiler_buffer_tracing_operation_args_cb_t ) ( rocprofiler_buffer_tracing_kind_t kind , rocprofiler_tracing_operation_t operation , uint32_t arg_number , const void * const arg_value_addr , int32_t arg_indirection_count , const char * arg_type , const char * arg_name , const char * arg_value_str , void * data ) +const rocprofiler_buffer_tracing_operation_args_cb_t = Ptr{Cvoid} + +function rocprofiler_iterate_buffer_tracing_record_args(record, callback, user_data) + @ccall librocprofiler_sdk_tool.rocprofiler_iterate_buffer_tracing_record_args(record::rocprofiler_record_header_t, + callback::rocprofiler_buffer_tracing_operation_args_cb_t, + user_data::Ptr{Cvoid})::rocprofiler_status_t +end + +@cenum rocprofiler_hip_compiler_api_id_t::Int32 begin + ROCPROFILER_HIP_COMPILER_API_ID_NONE = -1 + ROCPROFILER_HIP_COMPILER_API_ID___hipPopCallConfiguration = 0 + ROCPROFILER_HIP_COMPILER_API_ID___hipPushCallConfiguration = 1 + ROCPROFILER_HIP_COMPILER_API_ID___hipRegisterFatBinary = 2 + ROCPROFILER_HIP_COMPILER_API_ID___hipRegisterFunction = 3 + ROCPROFILER_HIP_COMPILER_API_ID___hipRegisterManagedVar = 4 + ROCPROFILER_HIP_COMPILER_API_ID___hipRegisterSurface = 5 + ROCPROFILER_HIP_COMPILER_API_ID___hipRegisterTexture = 6 + ROCPROFILER_HIP_COMPILER_API_ID___hipRegisterVar = 7 + ROCPROFILER_HIP_COMPILER_API_ID___hipUnregisterFatBinary = 8 + ROCPROFILER_HIP_COMPILER_API_ID_LAST = 9 +end + +@cenum rocprofiler_hip_runtime_api_id_t::Int32 begin + ROCPROFILER_HIP_RUNTIME_API_ID_NONE = -1 + ROCPROFILER_HIP_RUNTIME_API_ID_hipApiName = 0 + ROCPROFILER_HIP_RUNTIME_API_ID_hipArray3DCreate = 1 + ROCPROFILER_HIP_RUNTIME_API_ID_hipArray3DGetDescriptor = 2 + ROCPROFILER_HIP_RUNTIME_API_ID_hipArrayCreate = 3 + ROCPROFILER_HIP_RUNTIME_API_ID_hipArrayDestroy = 4 + ROCPROFILER_HIP_RUNTIME_API_ID_hipArrayGetDescriptor = 5 + ROCPROFILER_HIP_RUNTIME_API_ID_hipArrayGetInfo = 6 + ROCPROFILER_HIP_RUNTIME_API_ID_hipBindTexture = 7 + ROCPROFILER_HIP_RUNTIME_API_ID_hipBindTexture2D = 8 + ROCPROFILER_HIP_RUNTIME_API_ID_hipBindTextureToArray = 9 + ROCPROFILER_HIP_RUNTIME_API_ID_hipBindTextureToMipmappedArray = 10 + ROCPROFILER_HIP_RUNTIME_API_ID_hipChooseDevice = 11 + ROCPROFILER_HIP_RUNTIME_API_ID_hipChooseDeviceR0000 = 12 + ROCPROFILER_HIP_RUNTIME_API_ID_hipConfigureCall = 13 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCreateSurfaceObject = 14 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCreateTextureObject = 15 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxCreate = 16 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxDestroy = 17 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxDisablePeerAccess = 18 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxEnablePeerAccess = 19 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxGetApiVersion = 20 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxGetCacheConfig = 21 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxGetCurrent = 22 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxGetDevice = 23 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxGetFlags = 24 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxGetSharedMemConfig = 25 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxPopCurrent = 26 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxPushCurrent = 27 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxSetCacheConfig = 28 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxSetCurrent = 29 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxSetSharedMemConfig = 30 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCtxSynchronize = 31 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDestroyExternalMemory = 32 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDestroyExternalSemaphore = 33 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDestroySurfaceObject = 34 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDestroyTextureObject = 35 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceCanAccessPeer = 36 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceComputeCapability = 37 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceDisablePeerAccess = 38 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceEnablePeerAccess = 39 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGet = 40 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetAttribute = 41 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetByPCIBusId = 42 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetCacheConfig = 43 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetDefaultMemPool = 44 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetGraphMemAttribute = 45 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetLimit = 46 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetMemPool = 47 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetName = 48 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetP2PAttribute = 49 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetPCIBusId = 50 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetSharedMemConfig = 51 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetStreamPriorityRange = 52 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetUuid = 53 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGraphMemTrim = 54 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDevicePrimaryCtxGetState = 55 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDevicePrimaryCtxRelease = 56 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDevicePrimaryCtxReset = 57 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDevicePrimaryCtxRetain = 58 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDevicePrimaryCtxSetFlags = 59 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceReset = 60 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceSetCacheConfig = 61 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceSetGraphMemAttribute = 62 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceSetLimit = 63 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceSetMemPool = 64 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceSetSharedMemConfig = 65 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceSynchronize = 66 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceTotalMem = 67 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDriverGetVersion = 68 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGetErrorName = 69 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGetErrorString = 70 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGraphAddMemcpyNode = 71 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvMemcpy2DUnaligned = 72 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvMemcpy3D = 73 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvMemcpy3DAsync = 74 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvPointerGetAttributes = 75 + ROCPROFILER_HIP_RUNTIME_API_ID_hipEventCreate = 76 + ROCPROFILER_HIP_RUNTIME_API_ID_hipEventCreateWithFlags = 77 + ROCPROFILER_HIP_RUNTIME_API_ID_hipEventDestroy = 78 + ROCPROFILER_HIP_RUNTIME_API_ID_hipEventElapsedTime = 79 + ROCPROFILER_HIP_RUNTIME_API_ID_hipEventQuery = 80 + ROCPROFILER_HIP_RUNTIME_API_ID_hipEventRecord = 81 + ROCPROFILER_HIP_RUNTIME_API_ID_hipEventSynchronize = 82 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExtGetLinkTypeAndHopCount = 83 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExtLaunchKernel = 84 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExtLaunchMultiKernelMultiDevice = 85 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExtMallocWithFlags = 86 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExtStreamCreateWithCUMask = 87 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExtStreamGetCUMask = 88 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExternalMemoryGetMappedBuffer = 89 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFree = 90 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFreeArray = 91 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFreeAsync = 92 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFreeHost = 93 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFreeMipmappedArray = 94 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFuncGetAttribute = 95 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFuncGetAttributes = 96 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFuncSetAttribute = 97 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFuncSetCacheConfig = 98 + ROCPROFILER_HIP_RUNTIME_API_ID_hipFuncSetSharedMemConfig = 99 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGLGetDevices = 100 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetChannelDesc = 101 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetDevice = 102 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetDeviceCount = 103 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetDeviceFlags = 104 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetDevicePropertiesR0600 = 105 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetDevicePropertiesR0000 = 106 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetErrorName = 107 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetErrorString = 108 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetLastError = 109 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetMipmappedArrayLevel = 110 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetSymbolAddress = 111 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetSymbolSize = 112 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetTextureAlignmentOffset = 113 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetTextureObjectResourceDesc = 114 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetTextureObjectResourceViewDesc = 115 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetTextureObjectTextureDesc = 116 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetTextureReference = 117 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddChildGraphNode = 118 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddDependencies = 119 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddEmptyNode = 120 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddEventRecordNode = 121 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddEventWaitNode = 122 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddHostNode = 123 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddKernelNode = 124 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddMemAllocNode = 125 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddMemFreeNode = 126 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddMemcpyNode = 127 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddMemcpyNode1D = 128 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddMemcpyNodeFromSymbol = 129 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddMemcpyNodeToSymbol = 130 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddMemsetNode = 131 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphChildGraphNodeGetGraph = 132 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphClone = 133 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphCreate = 134 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphDebugDotPrint = 135 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphDestroy = 136 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphDestroyNode = 137 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphEventRecordNodeGetEvent = 138 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphEventRecordNodeSetEvent = 139 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphEventWaitNodeGetEvent = 140 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphEventWaitNodeSetEvent = 141 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecChildGraphNodeSetParams = 142 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecDestroy = 143 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecEventRecordNodeSetEvent = 144 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecEventWaitNodeSetEvent = 145 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecHostNodeSetParams = 146 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecKernelNodeSetParams = 147 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecMemcpyNodeSetParams = 148 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecMemcpyNodeSetParams1D = 149 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecMemcpyNodeSetParamsFromSymbol = 150 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecMemcpyNodeSetParamsToSymbol = 151 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecMemsetNodeSetParams = 152 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecUpdate = 153 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphGetEdges = 154 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphGetNodes = 155 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphGetRootNodes = 156 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphHostNodeGetParams = 157 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphHostNodeSetParams = 158 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphInstantiate = 159 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphInstantiateWithFlags = 160 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphKernelNodeCopyAttributes = 161 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphKernelNodeGetAttribute = 162 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphKernelNodeGetParams = 163 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphKernelNodeSetAttribute = 164 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphKernelNodeSetParams = 165 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphLaunch = 166 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphMemAllocNodeGetParams = 167 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphMemFreeNodeGetParams = 168 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphMemcpyNodeGetParams = 169 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphMemcpyNodeSetParams = 170 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphMemcpyNodeSetParams1D = 171 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphMemcpyNodeSetParamsFromSymbol = 172 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphMemcpyNodeSetParamsToSymbol = 173 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphMemsetNodeGetParams = 174 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphMemsetNodeSetParams = 175 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphNodeFindInClone = 176 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphNodeGetDependencies = 177 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphNodeGetDependentNodes = 178 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphNodeGetEnabled = 179 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphNodeGetType = 180 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphNodeSetEnabled = 181 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphReleaseUserObject = 182 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphRemoveDependencies = 183 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphRetainUserObject = 184 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphUpload = 185 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphicsGLRegisterBuffer = 186 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphicsGLRegisterImage = 187 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphicsMapResources = 188 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphicsResourceGetMappedPointer = 189 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphicsSubResourceGetMappedArray = 190 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphicsUnmapResources = 191 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphicsUnregisterResource = 192 + ROCPROFILER_HIP_RUNTIME_API_ID_hipHostAlloc = 193 + ROCPROFILER_HIP_RUNTIME_API_ID_hipHostFree = 194 + ROCPROFILER_HIP_RUNTIME_API_ID_hipHostGetDevicePointer = 195 + ROCPROFILER_HIP_RUNTIME_API_ID_hipHostGetFlags = 196 + ROCPROFILER_HIP_RUNTIME_API_ID_hipHostMalloc = 197 + ROCPROFILER_HIP_RUNTIME_API_ID_hipHostRegister = 198 + ROCPROFILER_HIP_RUNTIME_API_ID_hipHostUnregister = 199 + ROCPROFILER_HIP_RUNTIME_API_ID_hipImportExternalMemory = 200 + ROCPROFILER_HIP_RUNTIME_API_ID_hipImportExternalSemaphore = 201 + ROCPROFILER_HIP_RUNTIME_API_ID_hipInit = 202 + ROCPROFILER_HIP_RUNTIME_API_ID_hipIpcCloseMemHandle = 203 + ROCPROFILER_HIP_RUNTIME_API_ID_hipIpcGetEventHandle = 204 + ROCPROFILER_HIP_RUNTIME_API_ID_hipIpcGetMemHandle = 205 + ROCPROFILER_HIP_RUNTIME_API_ID_hipIpcOpenEventHandle = 206 + ROCPROFILER_HIP_RUNTIME_API_ID_hipIpcOpenMemHandle = 207 + ROCPROFILER_HIP_RUNTIME_API_ID_hipKernelNameRef = 208 + ROCPROFILER_HIP_RUNTIME_API_ID_hipKernelNameRefByPtr = 209 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchByPtr = 210 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchCooperativeKernel = 211 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchCooperativeKernelMultiDevice = 212 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchHostFunc = 213 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchKernel = 214 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMalloc = 215 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMalloc3D = 216 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMalloc3DArray = 217 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMallocArray = 218 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMallocAsync = 219 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMallocFromPoolAsync = 220 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMallocHost = 221 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMallocManaged = 222 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMallocMipmappedArray = 223 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMallocPitch = 224 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemAddressFree = 225 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemAddressReserve = 226 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemAdvise = 227 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemAllocHost = 228 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemAllocPitch = 229 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemCreate = 230 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemExportToShareableHandle = 231 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemGetAccess = 232 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemGetAddressRange = 233 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemGetAllocationGranularity = 234 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemGetAllocationPropertiesFromHandle = 235 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemGetInfo = 236 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemImportFromShareableHandle = 237 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemMap = 238 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemMapArrayAsync = 239 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolCreate = 240 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolDestroy = 241 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolExportPointer = 242 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolExportToShareableHandle = 243 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolGetAccess = 244 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolGetAttribute = 245 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolImportFromShareableHandle = 246 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolImportPointer = 247 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolSetAccess = 248 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolSetAttribute = 249 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPoolTrimTo = 250 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPrefetchAsync = 251 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemPtrGetInfo = 252 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemRangeGetAttribute = 253 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemRangeGetAttributes = 254 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemRelease = 255 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemRetainAllocationHandle = 256 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemSetAccess = 257 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemUnmap = 258 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy = 259 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2D = 260 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DAsync = 261 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DFromArray = 262 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DFromArrayAsync = 263 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DToArray = 264 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DToArrayAsync = 265 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy3D = 266 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy3DAsync = 267 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyAsync = 268 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyAtoH = 269 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyDtoD = 270 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyDtoDAsync = 271 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyDtoH = 272 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyDtoHAsync = 273 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyFromArray = 274 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyFromSymbol = 275 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyFromSymbolAsync = 276 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyHtoA = 277 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyHtoD = 278 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyHtoDAsync = 279 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyParam2D = 280 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyParam2DAsync = 281 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyPeer = 282 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyPeerAsync = 283 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyToArray = 284 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyToSymbol = 285 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyToSymbolAsync = 286 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyWithStream = 287 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset = 288 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset2D = 289 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset2DAsync = 290 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset3D = 291 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset3DAsync = 292 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemsetAsync = 293 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemsetD16 = 294 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemsetD16Async = 295 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemsetD32 = 296 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemsetD32Async = 297 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemsetD8 = 298 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemsetD8Async = 299 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMipmappedArrayCreate = 300 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMipmappedArrayDestroy = 301 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMipmappedArrayGetLevel = 302 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleGetFunction = 303 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleGetGlobal = 304 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleGetTexRef = 305 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLaunchCooperativeKernel = 306 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLaunchCooperativeKernelMultiDevice = 307 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLaunchKernel = 308 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLoad = 309 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLoadData = 310 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLoadDataEx = 311 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxActiveBlocksPerMultiprocessor = 312 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags = 313 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxPotentialBlockSize = 314 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxPotentialBlockSizeWithFlags = 315 + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleUnload = 316 + ROCPROFILER_HIP_RUNTIME_API_ID_hipOccupancyMaxActiveBlocksPerMultiprocessor = 317 + ROCPROFILER_HIP_RUNTIME_API_ID_hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags = 318 + ROCPROFILER_HIP_RUNTIME_API_ID_hipOccupancyMaxPotentialBlockSize = 319 + ROCPROFILER_HIP_RUNTIME_API_ID_hipPeekAtLastError = 320 + ROCPROFILER_HIP_RUNTIME_API_ID_hipPointerGetAttribute = 321 + ROCPROFILER_HIP_RUNTIME_API_ID_hipPointerGetAttributes = 322 + ROCPROFILER_HIP_RUNTIME_API_ID_hipPointerSetAttribute = 323 + ROCPROFILER_HIP_RUNTIME_API_ID_hipProfilerStart = 324 + ROCPROFILER_HIP_RUNTIME_API_ID_hipProfilerStop = 325 + ROCPROFILER_HIP_RUNTIME_API_ID_hipRuntimeGetVersion = 326 + ROCPROFILER_HIP_RUNTIME_API_ID_hipSetDevice = 327 + ROCPROFILER_HIP_RUNTIME_API_ID_hipSetDeviceFlags = 328 + ROCPROFILER_HIP_RUNTIME_API_ID_hipSetupArgument = 329 + ROCPROFILER_HIP_RUNTIME_API_ID_hipSignalExternalSemaphoresAsync = 330 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamAddCallback = 331 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamAttachMemAsync = 332 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamBeginCapture = 333 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamCreate = 334 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamCreateWithFlags = 335 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamCreateWithPriority = 336 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamDestroy = 337 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamEndCapture = 338 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamGetCaptureInfo = 339 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamGetCaptureInfo_v2 = 340 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamGetDevice = 341 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamGetFlags = 342 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamGetPriority = 343 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamIsCapturing = 344 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamQuery = 345 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamSynchronize = 346 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamUpdateCaptureDependencies = 347 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamWaitEvent = 348 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamWaitValue32 = 349 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamWaitValue64 = 350 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamWriteValue32 = 351 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamWriteValue64 = 352 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexObjectCreate = 353 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexObjectDestroy = 354 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexObjectGetResourceDesc = 355 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexObjectGetResourceViewDesc = 356 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexObjectGetTextureDesc = 357 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetAddress = 358 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetAddressMode = 359 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetFilterMode = 360 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetFlags = 361 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetFormat = 362 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetMaxAnisotropy = 363 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetMipMappedArray = 364 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetMipmapFilterMode = 365 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetMipmapLevelBias = 366 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetMipmapLevelClamp = 367 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetAddress = 368 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetAddress2D = 369 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetAddressMode = 370 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetArray = 371 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetBorderColor = 372 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetFilterMode = 373 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetFlags = 374 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetFormat = 375 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetMaxAnisotropy = 376 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetMipmapFilterMode = 377 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetMipmapLevelBias = 378 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetMipmapLevelClamp = 379 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefSetMipmappedArray = 380 + ROCPROFILER_HIP_RUNTIME_API_ID_hipThreadExchangeStreamCaptureMode = 381 + ROCPROFILER_HIP_RUNTIME_API_ID_hipUnbindTexture = 382 + ROCPROFILER_HIP_RUNTIME_API_ID_hipUserObjectCreate = 383 + ROCPROFILER_HIP_RUNTIME_API_ID_hipUserObjectRelease = 384 + ROCPROFILER_HIP_RUNTIME_API_ID_hipUserObjectRetain = 385 + ROCPROFILER_HIP_RUNTIME_API_ID_hipWaitExternalSemaphoresAsync = 386 + ROCPROFILER_HIP_RUNTIME_API_ID_hipCreateChannelDesc = 387 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExtModuleLaunchKernel = 388 + ROCPROFILER_HIP_RUNTIME_API_ID_hipHccModuleLaunchKernel = 389 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy_spt = 390 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyToSymbol_spt = 391 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyFromSymbol_spt = 392 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2D_spt = 393 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DFromArray_spt = 394 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy3D_spt = 395 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset_spt = 396 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemsetAsync_spt = 397 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset2D_spt = 398 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset2DAsync_spt = 399 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset3DAsync_spt = 400 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemset3D_spt = 401 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyAsync_spt = 402 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy3DAsync_spt = 403 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DAsync_spt = 404 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyFromSymbolAsync_spt = 405 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyToSymbolAsync_spt = 406 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyFromArray_spt = 407 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DToArray_spt = 408 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DFromArrayAsync_spt = 409 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DToArrayAsync_spt = 410 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamQuery_spt = 411 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamSynchronize_spt = 412 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamGetPriority_spt = 413 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamWaitEvent_spt = 414 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamGetFlags_spt = 415 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamAddCallback_spt = 416 + ROCPROFILER_HIP_RUNTIME_API_ID_hipEventRecord_spt = 417 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchCooperativeKernel_spt = 418 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchKernel_spt = 419 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphLaunch_spt = 420 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamBeginCapture_spt = 421 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamEndCapture_spt = 422 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamIsCapturing_spt = 423 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamGetCaptureInfo_spt = 424 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamGetCaptureInfo_v2_spt = 425 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchHostFunc_spt = 426 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetStreamDeviceId = 427 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGraphAddMemsetNode = 428 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddExternalSemaphoresWaitNode = 429 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddExternalSemaphoresSignalNode = 430 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresSignalNodeSetParams = 431 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresWaitNodeSetParams = 432 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresSignalNodeGetParams = 433 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresWaitNodeGetParams = 434 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecExternalSemaphoresSignalNodeSetParams = 435 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecExternalSemaphoresWaitNodeSetParams = 436 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddNode = 437 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphInstantiateWithParams = 438 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExtGetLastError = 439 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetBorderColor = 440 + ROCPROFILER_HIP_RUNTIME_API_ID_hipTexRefGetArray = 441 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetProcAddress = 442 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamBeginCaptureToGraph = 443 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGetFuncBySymbol = 444 + ROCPROFILER_HIP_RUNTIME_API_ID_hipSetValidDevices = 445 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyAtoD = 446 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyDtoA = 447 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyAtoA = 448 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyAtoHAsync = 449 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpyHtoAAsync = 450 + ROCPROFILER_HIP_RUNTIME_API_ID_hipMemcpy2DArrayToArray = 451 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGraphAddMemFreeNode = 452 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGraphExecMemcpyNodeSetParams = 453 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGraphExecMemsetNodeSetParams = 454 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecGetFlags = 455 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphNodeSetParams = 456 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecNodeSetParams = 457 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExternalMemoryGetMappedMipmappedArray = 458 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGraphMemcpyNodeGetParams = 459 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGraphMemcpyNodeSetParams = 460 + ROCPROFILER_HIP_RUNTIME_API_ID_hipExtHostAlloc = 461 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetTexture1DLinearMaxWidth = 462 + ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamBatchMemOp = 463 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddBatchMemOpNode = 464 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphBatchMemOpNodeGetParams = 465 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphBatchMemOpNodeSetParams = 466 + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecBatchMemOpNodeSetParams = 467 + ROCPROFILER_HIP_RUNTIME_API_ID_hipEventRecordWithFlags = 468 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkAddData = 469 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkAddFile = 470 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkComplete = 471 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkCreate = 472 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkDestroy = 473 + ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchKernelExC = 474 + ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvLaunchKernelEx = 475 + ROCPROFILER_HIP_RUNTIME_API_ID_LAST = 476 +end + +@cenum rocprofiler_hip_table_id_t::Int32 begin + ROCPROFILER_HIP_TABLE_ID_NONE = -1 + ROCPROFILER_HIP_TABLE_ID_Compiler = 0 + ROCPROFILER_HIP_TABLE_ID_Runtime = 1 + ROCPROFILER_HIP_TABLE_ID_LAST = 2 +end + +const roctx_range_id_t = UInt64 + +const roctx_thread_id_t = UInt64 + +# typedef void ( * roctxMarkA_fn_t ) ( const char * message ) +const roctxMarkA_fn_t = Ptr{Cvoid} + +# typedef int ( * roctxRangePushA_fn_t ) ( const char * message ) +const roctxRangePushA_fn_t = Ptr{Cvoid} + +# typedef int ( * roctxRangePop_fn_t ) ( void ) +const roctxRangePop_fn_t = Ptr{Cvoid} + +# typedef roctx_range_id_t ( * roctxRangeStartA_fn_t ) ( const char * message ) +const roctxRangeStartA_fn_t = Ptr{Cvoid} + +# typedef void ( * roctxRangeStop_fn_t ) ( roctx_range_id_t id ) +const roctxRangeStop_fn_t = Ptr{Cvoid} + +# typedef int ( * roctxProfilerPause_fn_t ) ( roctx_thread_id_t tid ) +const roctxProfilerPause_fn_t = Ptr{Cvoid} + +# typedef int ( * roctxProfilerResume_fn_t ) ( roctx_thread_id_t tid ) +const roctxProfilerResume_fn_t = Ptr{Cvoid} + +# typedef int ( * roctxNameOsThread_fn_t ) ( const char * name ) +const roctxNameOsThread_fn_t = Ptr{Cvoid} + +# typedef int ( * roctxNameHsaAgent_fn_t ) ( const char * name , const struct hsa_agent_s * agent ) +const roctxNameHsaAgent_fn_t = Ptr{Cvoid} + +# typedef int ( * roctxNameHipDevice_fn_t ) ( const char * name , int device_id ) +const roctxNameHipDevice_fn_t = Ptr{Cvoid} + +# typedef int ( * roctxNameHipStream_fn_t ) ( const char * name , const struct ihipStream_t * stream ) +const roctxNameHipStream_fn_t = Ptr{Cvoid} + +# typedef int ( * roctxGetThreadId_fn_t ) ( roctx_thread_id_t * tid ) +const roctxGetThreadId_fn_t = Ptr{Cvoid} + +struct roctxCoreApiTable_t + size::UInt64 + roctxMarkA_fn::roctxMarkA_fn_t + roctxRangePushA_fn::roctxRangePushA_fn_t + roctxRangePop_fn::roctxRangePop_fn_t + roctxRangeStartA_fn::roctxRangeStartA_fn_t + roctxRangeStop_fn::roctxRangeStop_fn_t + roctxGetThreadId_fn::roctxGetThreadId_fn_t +end + +struct roctxControlApiTable_t + size::UInt64 + roctxProfilerPause_fn::roctxProfilerPause_fn_t + roctxProfilerResume_fn::roctxProfilerResume_fn_t +end + +struct roctxNameApiTable_t + size::UInt64 + roctxNameOsThread_fn::roctxNameOsThread_fn_t + roctxNameHsaAgent_fn::roctxNameHsaAgent_fn_t + roctxNameHipDevice_fn::roctxNameHipDevice_fn_t + roctxNameHipStream_fn::roctxNameHipStream_fn_t +end + +struct rocprofiler_marker_api_no_args + empty::Cchar +end + +struct rocprofiler_marker_api_retval_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_marker_api_retval_t}, f::Symbol) + f === :int32_t_retval && return Ptr{Int32}(x + 0) + f === :int64_t_retval && return Ptr{Int64}(x + 0) + f === :roctx_range_id_t_retval && return Ptr{roctx_range_id_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_marker_api_retval_t, f::Symbol) + r = Ref{rocprofiler_marker_api_retval_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_marker_api_retval_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_marker_api_retval_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_marker_api_retval_t, private::Bool=false) + return (:int32_t_retval, :int64_t_retval, :roctx_range_id_t_retval, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_marker_api_args_t + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_marker_api_args_t}, f::Symbol) + f === :roctxMarkA && return Ptr{var"##Ctag#1140"}(x + 0) + f === :roctxRangePushA && return Ptr{var"##Ctag#1141"}(x + 0) + f === :roctxRangePop && return Ptr{var"##Ctag#1142"}(x + 0) + f === :roctxRangeStartA && return Ptr{var"##Ctag#1143"}(x + 0) + f === :roctxRangeStop && return Ptr{var"##Ctag#1144"}(x + 0) + f === :roctxGetThreadId && return Ptr{var"##Ctag#1145"}(x + 0) + f === :roctxProfilerPause && return Ptr{var"##Ctag#1146"}(x + 0) + f === :roctxProfilerResume && return Ptr{var"##Ctag#1147"}(x + 0) + f === :roctxNameOsThread && return Ptr{var"##Ctag#1148"}(x + 0) + f === :roctxNameHsaAgent && return Ptr{var"##Ctag#1149"}(x + 0) + f === :roctxNameHipDevice && return Ptr{var"##Ctag#1150"}(x + 0) + f === :roctxNameHipStream && return Ptr{var"##Ctag#1151"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_marker_api_args_t, f::Symbol) + r = Ref{rocprofiler_marker_api_args_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_marker_api_args_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_marker_api_args_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_marker_api_args_t, private::Bool=false) + return (:roctxMarkA, :roctxRangePushA, :roctxRangePop, :roctxRangeStartA, + :roctxRangeStop, :roctxGetThreadId, :roctxProfilerPause, :roctxProfilerResume, + :roctxNameOsThread, :roctxNameHsaAgent, :roctxNameHipDevice, + :roctxNameHipStream, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum rocprofiler_marker_core_api_id_t::Int32 begin + ROCPROFILER_MARKER_CORE_API_ID_NONE = -1 + ROCPROFILER_MARKER_CORE_API_ID_roctxMarkA = 0 + ROCPROFILER_MARKER_CORE_API_ID_roctxRangePushA = 1 + ROCPROFILER_MARKER_CORE_API_ID_roctxRangePop = 2 + ROCPROFILER_MARKER_CORE_API_ID_roctxRangeStartA = 3 + ROCPROFILER_MARKER_CORE_API_ID_roctxRangeStop = 4 + ROCPROFILER_MARKER_CORE_API_ID_roctxGetThreadId = 5 + ROCPROFILER_MARKER_CORE_API_ID_LAST = 6 +end + +@cenum rocprofiler_marker_control_api_id_t::Int32 begin + ROCPROFILER_MARKER_CONTROL_API_ID_NONE = -1 + ROCPROFILER_MARKER_CONTROL_API_ID_roctxProfilerPause = 0 + ROCPROFILER_MARKER_CONTROL_API_ID_roctxProfilerResume = 1 + ROCPROFILER_MARKER_CONTROL_API_ID_LAST = 2 +end + +@cenum rocprofiler_marker_name_api_id_t::Int32 begin + ROCPROFILER_MARKER_NAME_API_ID_NONE = -1 + ROCPROFILER_MARKER_NAME_API_ID_roctxNameOsThread = 0 + ROCPROFILER_MARKER_NAME_API_ID_roctxNameHsaAgent = 1 + ROCPROFILER_MARKER_NAME_API_ID_roctxNameHipDevice = 2 + ROCPROFILER_MARKER_NAME_API_ID_roctxNameHipStream = 3 + ROCPROFILER_MARKER_NAME_API_ID_LAST = 4 +end + +@cenum rocprofiler_marker_table_id_t::Int32 begin + ROCPROFILER_MARKER_TABLE_ID_NONE = -1 + ROCPROFILER_MARKER_TABLE_ID_RoctxCore = 0 + ROCPROFILER_MARKER_TABLE_ID_RoctxControl = 1 + ROCPROFILER_MARKER_TABLE_ID_RoctxName = 2 + ROCPROFILER_MARKER_TABLE_ID_LAST = 3 +end + +@cenum kmp_mutex_impl_t::UInt32 begin + kmp_mutex_impl_none = 0 + kmp_mutex_impl_spin = 1 + kmp_mutex_impl_queuing = 2 + kmp_mutex_impl_speculative = 3 +end + +@cenum ompt_callbacks_t::UInt32 begin + ompt_callback_thread_begin = 1 + ompt_callback_thread_end = 2 + ompt_callback_parallel_begin = 3 + ompt_callback_parallel_end = 4 + ompt_callback_task_create = 5 + ompt_callback_task_schedule = 6 + ompt_callback_implicit_task = 7 + ompt_callback_target = 8 + ompt_callback_target_data_op = 9 + ompt_callback_target_submit = 10 + ompt_callback_control_tool = 11 + ompt_callback_device_initialize = 12 + ompt_callback_device_finalize = 13 + ompt_callback_device_load = 14 + ompt_callback_device_unload = 15 + ompt_callback_sync_region_wait = 16 + ompt_callback_mutex_released = 17 + ompt_callback_dependences = 18 + ompt_callback_task_dependence = 19 + ompt_callback_work = 20 + ompt_callback_master = 21 + ompt_callback_masked = 21 + ompt_callback_target_map = 22 + ompt_callback_sync_region = 23 + ompt_callback_lock_init = 24 + ompt_callback_lock_destroy = 25 + ompt_callback_mutex_acquire = 26 + ompt_callback_mutex_acquired = 27 + ompt_callback_nest_lock = 28 + ompt_callback_flush = 29 + ompt_callback_cancel = 30 + ompt_callback_reduction = 31 + ompt_callback_dispatch = 32 + ompt_callback_target_emi = 33 + ompt_callback_target_data_op_emi = 34 + ompt_callback_target_submit_emi = 35 + ompt_callback_target_map_emi = 36 + ompt_callback_error = 37 +end + +@cenum ompt_record_t::UInt32 begin + ompt_record_ompt = 1 + ompt_record_native = 2 + ompt_record_invalid = 3 +end + +@cenum ompt_record_native_t::UInt32 begin + ompt_record_native_info = 1 + ompt_record_native_event = 2 +end + +@cenum ompt_set_result_t::UInt32 begin + ompt_set_error = 0 + ompt_set_never = 1 + ompt_set_impossible = 2 + ompt_set_sometimes = 3 + ompt_set_sometimes_paired = 4 + ompt_set_always = 5 +end + +const ompt_id_t = UInt64 + +const ompt_device_time_t = UInt64 + +const ompt_buffer_cursor_t = UInt64 + +@cenum ompt_thread_t::UInt32 begin + ompt_thread_initial = 1 + ompt_thread_worker = 2 + ompt_thread_other = 3 + ompt_thread_unknown = 4 +end + +@cenum ompt_scope_endpoint_t::UInt32 begin + ompt_scope_begin = 1 + ompt_scope_end = 2 + ompt_scope_beginend = 3 +end + +@cenum ompt_dispatch_t::UInt32 begin + ompt_dispatch_iteration = 1 + ompt_dispatch_section = 2 + ompt_dispatch_ws_loop_chunk = 3 + ompt_dispatch_taskloop_chunk = 4 + ompt_dispatch_distribute_chunk = 5 +end + +@cenum ompt_sync_region_t::UInt32 begin + ompt_sync_region_barrier = 1 + ompt_sync_region_barrier_implicit = 2 + ompt_sync_region_barrier_explicit = 3 + ompt_sync_region_barrier_implementation = 4 + ompt_sync_region_taskwait = 5 + ompt_sync_region_taskgroup = 6 + ompt_sync_region_reduction = 7 + ompt_sync_region_barrier_implicit_workshare = 8 + ompt_sync_region_barrier_implicit_parallel = 9 + ompt_sync_region_barrier_teams = 10 +end + +@cenum ompt_target_data_op_t::UInt32 begin + ompt_target_data_alloc = 1 + ompt_target_data_transfer_to_device = 2 + ompt_target_data_transfer_from_device = 3 + ompt_target_data_delete = 4 + ompt_target_data_associate = 5 + ompt_target_data_disassociate = 6 + ompt_target_data_alloc_async = 17 + ompt_target_data_transfer_to_device_async = 18 + ompt_target_data_transfer_from_device_async = 19 + ompt_target_data_delete_async = 20 +end + +@cenum ompt_work_t::UInt32 begin + ompt_work_loop = 1 + ompt_work_sections = 2 + ompt_work_single_executor = 3 + ompt_work_single_other = 4 + ompt_work_workshare = 5 + ompt_work_distribute = 6 + ompt_work_taskloop = 7 + ompt_work_scope = 8 + ompt_work_loop_static = 10 + ompt_work_loop_dynamic = 11 + ompt_work_loop_guided = 12 + ompt_work_loop_other = 13 +end + +@cenum ompt_mutex_t::UInt32 begin + ompt_mutex_lock = 1 + ompt_mutex_test_lock = 2 + ompt_mutex_nest_lock = 3 + ompt_mutex_test_nest_lock = 4 + ompt_mutex_critical = 5 + ompt_mutex_atomic = 6 + ompt_mutex_ordered = 7 +end + +@cenum ompt_native_mon_flag_t::UInt32 begin + ompt_native_data_motion_explicit = 1 + ompt_native_data_motion_implicit = 2 + ompt_native_kernel_invocation = 4 + ompt_native_kernel_execution = 8 + ompt_native_driver = 16 + ompt_native_runtime = 32 + ompt_native_overhead = 64 + ompt_native_idleness = 128 +end + +@cenum ompt_task_flag_t::UInt32 begin + ompt_task_initial = 1 + ompt_task_implicit = 2 + ompt_task_explicit = 4 + ompt_task_target = 8 + ompt_task_taskwait = 16 + ompt_task_undeferred = 134217728 + ompt_task_untied = 268435456 + ompt_task_final = 536870912 + ompt_task_mergeable = 1073741824 + ompt_task_merged = 0x0000000080000000 +end + +@cenum ompt_task_status_t::UInt32 begin + ompt_task_complete = 1 + ompt_task_yield = 2 + ompt_task_cancel = 3 + ompt_task_detach = 4 + ompt_task_early_fulfill = 5 + ompt_task_late_fulfill = 6 + ompt_task_switch = 7 + ompt_taskwait_complete = 8 +end + +@cenum ompt_target_t::UInt32 begin + ompt_target = 1 + ompt_target_enter_data = 2 + ompt_target_exit_data = 3 + ompt_target_update = 4 + ompt_target_nowait = 9 + ompt_target_enter_data_nowait = 10 + ompt_target_exit_data_nowait = 11 + ompt_target_update_nowait = 12 +end + +@cenum ompt_parallel_flag_t::UInt32 begin + ompt_parallel_invoker_program = 1 + ompt_parallel_invoker_runtime = 2 + ompt_parallel_league = 1073741824 + ompt_parallel_team = 0x0000000080000000 +end + +@cenum ompt_target_map_flag_t::UInt32 begin + ompt_target_map_flag_to = 1 + ompt_target_map_flag_from = 2 + ompt_target_map_flag_alloc = 4 + ompt_target_map_flag_release = 8 + ompt_target_map_flag_delete = 16 + ompt_target_map_flag_implicit = 32 +end + +@cenum ompt_dependence_type_t::UInt32 begin + ompt_dependence_type_in = 1 + ompt_dependence_type_out = 2 + ompt_dependence_type_inout = 3 + ompt_dependence_type_mutexinoutset = 4 + ompt_dependence_type_source = 5 + ompt_dependence_type_sink = 6 + ompt_dependence_type_inoutset = 7 + ompt_dependence_type_out_all_memory = 34 + ompt_dependence_type_inout_all_memory = 35 +end + +@cenum ompt_severity_t::UInt32 begin + ompt_warning = 1 + ompt_fatal = 2 +end + +@cenum ompt_cancel_flag_t::UInt32 begin + ompt_cancel_parallel = 1 + ompt_cancel_sections = 2 + ompt_cancel_loop = 4 + ompt_cancel_taskgroup = 8 + ompt_cancel_activated = 16 + ompt_cancel_detected = 32 + ompt_cancel_discarded_task = 64 +end + +const ompt_hwid_t = UInt64 + +const ompt_wait_id_t = UInt64 + +@cenum ompt_frame_flag_t::UInt32 begin + ompt_frame_runtime = 0 + ompt_frame_application = 1 + ompt_frame_cfa = 16 + ompt_frame_framepointer = 32 + ompt_frame_stackaddress = 48 +end + +@cenum ompt_state_t::UInt32 begin + ompt_state_work_serial = 0 + ompt_state_work_parallel = 1 + ompt_state_work_reduction = 2 + ompt_state_wait_barrier = 16 + ompt_state_wait_barrier_implicit_parallel = 17 + ompt_state_wait_barrier_implicit_workshare = 18 + ompt_state_wait_barrier_implicit = 19 + ompt_state_wait_barrier_explicit = 20 + ompt_state_wait_barrier_implementation = 21 + ompt_state_wait_barrier_teams = 22 + ompt_state_wait_taskwait = 32 + ompt_state_wait_taskgroup = 33 + ompt_state_wait_mutex = 64 + ompt_state_wait_lock = 65 + ompt_state_wait_critical = 66 + ompt_state_wait_atomic = 67 + ompt_state_wait_ordered = 68 + ompt_state_wait_target = 128 + ompt_state_wait_target_map = 129 + ompt_state_wait_target_update = 130 + ompt_state_idle = 256 + ompt_state_overhead = 257 + ompt_state_undefined = 258 +end + +# typedef uint64_t ( * ompt_get_unique_id_t ) ( void ) +const ompt_get_unique_id_t = Ptr{Cvoid} + +const ompd_size_t = UInt64 + +const ompd_wait_id_t = UInt64 + +const ompd_addr_t = UInt64 + +const ompd_word_t = Int64 + +const ompd_seg_t = UInt64 + +const ompd_device_t = UInt64 + +const ompd_thread_id_t = UInt64 + +@cenum ompd_scope_t::UInt32 begin + ompd_scope_global = 1 + ompd_scope_address_space = 2 + ompd_scope_thread = 3 + ompd_scope_parallel = 4 + ompd_scope_implicit_task = 5 + ompd_scope_task = 6 +end + +const ompd_icv_id_t = UInt64 + +@cenum ompd_rc_t::UInt32 begin + ompd_rc_ok = 0 + ompd_rc_unavailable = 1 + ompd_rc_stale_handle = 2 + ompd_rc_bad_input = 3 + ompd_rc_error = 4 + ompd_rc_unsupported = 5 + ompd_rc_needs_state_tracking = 6 + ompd_rc_incompatible = 7 + ompd_rc_device_read_error = 8 + ompd_rc_device_write_error = 9 + ompd_rc_nomem = 10 + ompd_rc_incomplete = 11 + ompd_rc_callback_error = 12 +end + +# typedef void ( * ompt_interface_fn_t ) ( void ) +const ompt_interface_fn_t = Ptr{Cvoid} + +# typedef ompt_interface_fn_t ( * ompt_function_lookup_t ) ( const char * interface_function_name ) +const ompt_function_lookup_t = Ptr{Cvoid} + +struct ompt_data_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{ompt_data_t}, f::Symbol) + f === :value && return Ptr{UInt64}(x + 0) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::ompt_data_t, f::Symbol) + r = Ref{ompt_data_t}(x) + ptr = Base.unsafe_convert(Ptr{ompt_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{ompt_data_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::ompt_data_t, private::Bool=false) + return (:value, :ptr, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct ompt_frame_t + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{ompt_frame_t}, f::Symbol) + f === :exit_frame && return Ptr{ompt_data_t}(x + 0) + f === :enter_frame && return Ptr{ompt_data_t}(x + 8) + f === :exit_frame_flags && return Ptr{Cint}(x + 16) + f === :enter_frame_flags && return Ptr{Cint}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::ompt_frame_t, f::Symbol) + r = Ref{ompt_frame_t}(x) + ptr = Base.unsafe_convert(Ptr{ompt_frame_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{ompt_frame_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::ompt_frame_t, private::Bool=false) + return (:exit_frame, :enter_frame, :exit_frame_flags, :enter_frame_flags, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +# typedef void ( * ompt_callback_t ) ( void ) +const ompt_callback_t = Ptr{Cvoid} + +const ompt_device_t = Cvoid + +const ompt_buffer_t = Cvoid + +# typedef void ( * ompt_callback_buffer_request_t ) ( int device_num , ompt_buffer_t * * buffer , size_t * bytes ) +const ompt_callback_buffer_request_t = Ptr{Cvoid} + +# typedef void ( * ompt_callback_buffer_complete_t ) ( int device_num , ompt_buffer_t * buffer , size_t bytes , ompt_buffer_cursor_t begin , int buffer_owned ) +const ompt_callback_buffer_complete_t = Ptr{Cvoid} + +# typedef void ( * ompt_finalize_t ) ( ompt_data_t * tool_data ) +const ompt_finalize_t = Ptr{Cvoid} + +# typedef int ( * ompt_initialize_t ) ( ompt_function_lookup_t lookup , int initial_device_num , ompt_data_t * tool_data ) +const ompt_initialize_t = Ptr{Cvoid} + +struct ompt_start_tool_result_t + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{ompt_start_tool_result_t}, f::Symbol) + f === :initialize && return Ptr{ompt_initialize_t}(x + 0) + f === :finalize && return Ptr{ompt_finalize_t}(x + 8) + f === :tool_data && return Ptr{ompt_data_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::ompt_start_tool_result_t, f::Symbol) + r = Ref{ompt_start_tool_result_t}(x) + ptr = Base.unsafe_convert(Ptr{ompt_start_tool_result_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{ompt_start_tool_result_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::ompt_start_tool_result_t, private::Bool=false) + return (:initialize, :finalize, :tool_data, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct ompt_record_abstract_t + rclass::ompt_record_native_t + type::Ptr{Cchar} + start_time::ompt_device_time_t + end_time::ompt_device_time_t + hwid::ompt_hwid_t +end + +struct ompt_dependence_t + data::NTuple{16,UInt8} +end + +function Base.getproperty(x::Ptr{ompt_dependence_t}, f::Symbol) + f === :variable && return Ptr{ompt_data_t}(x + 0) + f === :dependence_type && return Ptr{ompt_dependence_type_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::ompt_dependence_t, f::Symbol) + r = Ref{ompt_dependence_t}(x) + ptr = Base.unsafe_convert(Ptr{ompt_dependence_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{ompt_dependence_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::ompt_dependence_t, private::Bool=false) + return (:variable, :dependence_type, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct ompt_dispatch_chunk_t + start::UInt64 + iterations::UInt64 +end + +# typedef int ( * ompt_enumerate_states_t ) ( int current_state , int * next_state , const char * * next_state_name ) +const ompt_enumerate_states_t = Ptr{Cvoid} + +# typedef int ( * ompt_enumerate_mutex_impls_t ) ( int current_impl , int * next_impl , const char * * next_impl_name ) +const ompt_enumerate_mutex_impls_t = Ptr{Cvoid} + +# typedef ompt_set_result_t ( * ompt_set_callback_t ) ( ompt_callbacks_t event , ompt_callback_t callback ) +const ompt_set_callback_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_callback_t ) ( ompt_callbacks_t event , ompt_callback_t * callback ) +const ompt_get_callback_t = Ptr{Cvoid} + +# typedef ompt_data_t * ( * ompt_get_thread_data_t ) ( void ) +const ompt_get_thread_data_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_num_procs_t ) ( void ) +const ompt_get_num_procs_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_num_places_t ) ( void ) +const ompt_get_num_places_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_place_proc_ids_t ) ( int place_num , int ids_size , int * ids ) +const ompt_get_place_proc_ids_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_place_num_t ) ( void ) +const ompt_get_place_num_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_partition_place_nums_t ) ( int place_nums_size , int * place_nums ) +const ompt_get_partition_place_nums_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_proc_id_t ) ( void ) +const ompt_get_proc_id_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_state_t ) ( ompt_wait_id_t * wait_id ) +const ompt_get_state_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_parallel_info_t ) ( int ancestor_level , ompt_data_t * * parallel_data , int * team_size ) +const ompt_get_parallel_info_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_task_info_t ) ( int ancestor_level , int * flags , ompt_data_t * * task_data , ompt_frame_t * * task_frame , ompt_data_t * * parallel_data , int * thread_num ) +const ompt_get_task_info_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_task_memory_t ) ( void * * addr , size_t * size , int block ) +const ompt_get_task_memory_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_target_info_t ) ( uint64_t * device_num , ompt_id_t * target_id , ompt_id_t * host_op_id ) +const ompt_get_target_info_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_num_devices_t ) ( void ) +const ompt_get_num_devices_t = Ptr{Cvoid} + +# typedef void ( * ompt_finalize_tool_t ) ( void ) +const ompt_finalize_tool_t = Ptr{Cvoid} + +# typedef int ( * ompt_get_device_num_procs_t ) ( ompt_device_t * device ) +const ompt_get_device_num_procs_t = Ptr{Cvoid} + +# typedef ompt_device_time_t ( * ompt_get_device_time_t ) ( ompt_device_t * device ) +const ompt_get_device_time_t = Ptr{Cvoid} + +# typedef double ( * ompt_translate_time_t ) ( ompt_device_t * device , ompt_device_time_t time ) +const ompt_translate_time_t = Ptr{Cvoid} + +# typedef ompt_set_result_t ( * ompt_set_trace_ompt_t ) ( ompt_device_t * device , unsigned int enable , unsigned int etype ) +const ompt_set_trace_ompt_t = Ptr{Cvoid} + +# typedef ompt_set_result_t ( * ompt_set_trace_native_t ) ( ompt_device_t * device , int enable , int flags ) +const ompt_set_trace_native_t = Ptr{Cvoid} + +# typedef int ( * ompt_start_trace_t ) ( ompt_device_t * device , ompt_callback_buffer_request_t request , ompt_callback_buffer_complete_t complete ) +const ompt_start_trace_t = Ptr{Cvoid} + +# typedef int ( * ompt_pause_trace_t ) ( ompt_device_t * device , int begin_pause ) +const ompt_pause_trace_t = Ptr{Cvoid} + +# typedef int ( * ompt_flush_trace_t ) ( ompt_device_t * device ) +const ompt_flush_trace_t = Ptr{Cvoid} + +# typedef int ( * ompt_stop_trace_t ) ( ompt_device_t * device ) +const ompt_stop_trace_t = Ptr{Cvoid} + +# typedef int ( * ompt_advance_buffer_cursor_t ) ( ompt_device_t * device , ompt_buffer_t * buffer , size_t size , ompt_buffer_cursor_t current , ompt_buffer_cursor_t * next ) +const ompt_advance_buffer_cursor_t = Ptr{Cvoid} + +# typedef ompt_record_t ( * ompt_get_record_type_t ) ( ompt_buffer_t * buffer , ompt_buffer_cursor_t current ) +const ompt_get_record_type_t = Ptr{Cvoid} + +# typedef void * ( * ompt_get_record_native_t ) ( ompt_buffer_t * buffer , ompt_buffer_cursor_t current , ompt_id_t * host_op_id ) +const ompt_get_record_native_t = Ptr{Cvoid} + +# typedef ompt_record_abstract_t * ( * ompt_get_record_abstract_t ) ( void * native_record ) +const ompt_get_record_abstract_t = Ptr{Cvoid} + +struct ompt_record_thread_begin_t + thread_type::ompt_thread_t +end + +struct ompt_record_parallel_begin_t + encountering_task_id::ompt_id_t + parallel_id::ompt_id_t + requested_parallelism::Cuint + flags::Cint + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_parallel_end_t + parallel_id::ompt_id_t + encountering_task_id::ompt_id_t + flags::Cint + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_work_t + work_type::ompt_work_t + endpoint::ompt_scope_endpoint_t + parallel_id::ompt_id_t + task_id::ompt_id_t + count::UInt64 + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_dispatch_t + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{ompt_record_dispatch_t}, f::Symbol) + f === :parallel_id && return Ptr{ompt_id_t}(x + 0) + f === :task_id && return Ptr{ompt_id_t}(x + 8) + f === :kind && return Ptr{ompt_dispatch_t}(x + 16) + f === :instance && return Ptr{ompt_data_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::ompt_record_dispatch_t, f::Symbol) + r = Ref{ompt_record_dispatch_t}(x) + ptr = Base.unsafe_convert(Ptr{ompt_record_dispatch_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{ompt_record_dispatch_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::ompt_record_dispatch_t, private::Bool=false) + return (:parallel_id, :task_id, :kind, :instance, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct ompt_record_task_create_t + encountering_task_id::ompt_id_t + new_task_id::ompt_id_t + flags::Cint + has_dependences::Cint + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_dependences_t + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{ompt_record_dependences_t}, f::Symbol) + f === :task_id && return Ptr{ompt_id_t}(x + 0) + f === :dep && return Ptr{ompt_dependence_t}(x + 8) + f === :ndeps && return Ptr{Cint}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::ompt_record_dependences_t, f::Symbol) + r = Ref{ompt_record_dependences_t}(x) + ptr = Base.unsafe_convert(Ptr{ompt_record_dependences_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{ompt_record_dependences_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::ompt_record_dependences_t, private::Bool=false) + return (:task_id, :dep, :ndeps, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct ompt_record_task_dependence_t + src_task_id::ompt_id_t + sink_task_id::ompt_id_t +end + +struct ompt_record_task_schedule_t + prior_task_id::ompt_id_t + prior_task_status::ompt_task_status_t + next_task_id::ompt_id_t +end + +struct ompt_record_implicit_task_t + endpoint::ompt_scope_endpoint_t + parallel_id::ompt_id_t + task_id::ompt_id_t + actual_parallelism::Cuint + index::Cuint + flags::Cint +end + +const ompt_callback_master_t = ompt_callback_masked_t + +struct ompt_record_masked_t + endpoint::ompt_scope_endpoint_t + parallel_id::ompt_id_t + task_id::ompt_id_t + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_sync_region_t + kind::ompt_sync_region_t + endpoint::ompt_scope_endpoint_t + parallel_id::ompt_id_t + task_id::ompt_id_t + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_mutex_acquire_t + kind::ompt_mutex_t + hint::Cuint + impl::Cuint + wait_id::ompt_wait_id_t + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_mutex_t + kind::ompt_mutex_t + wait_id::ompt_wait_id_t + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_nest_lock_t + endpoint::ompt_scope_endpoint_t + wait_id::ompt_wait_id_t + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_flush_t + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_cancel_t + task_id::ompt_id_t + flags::Cint + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_target_data_op_t + host_op_id::ompt_id_t + optype::ompt_target_data_op_t + src_addr::Ptr{Cvoid} + src_device_num::Cint + dest_addr::Ptr{Cvoid} + dest_device_num::Cint + bytes::Csize_t + end_time::ompt_device_time_t + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_target_t + kind::ompt_target_t + endpoint::ompt_scope_endpoint_t + device_num::Cint + task_id::ompt_id_t + target_id::ompt_id_t + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_target_map_t + target_id::ompt_id_t + nitems::Cuint + host_addr::Ptr{Ptr{Cvoid}} + device_addr::Ptr{Ptr{Cvoid}} + bytes::Ptr{Csize_t} + mapping_flags::Ptr{Cuint} + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_target_kernel_t + host_op_id::ompt_id_t + requested_num_teams::Cuint + granted_num_teams::Cuint + end_time::ompt_device_time_t +end + +struct ompt_record_control_tool_t + command::UInt64 + modifier::UInt64 + codeptr_ra::Ptr{Cvoid} +end + +struct ompt_record_error_t + severity::ompt_severity_t + message::Ptr{Cchar} + length::Csize_t + codeptr_ra::Ptr{Cvoid} +end + +struct ompd_address_t + segment::ompd_seg_t + address::ompd_addr_t +end + +struct ompd_frame_info_t + frame_address::ompd_address_t + frame_flag::ompd_word_t +end + +mutable struct _ompd_aspace_handle end + +const ompd_address_space_handle_t = _ompd_aspace_handle + +mutable struct _ompd_thread_handle end + +const ompd_thread_handle_t = _ompd_thread_handle + +mutable struct _ompd_parallel_handle end + +const ompd_parallel_handle_t = _ompd_parallel_handle + +mutable struct _ompd_task_handle end + +const ompd_task_handle_t = _ompd_task_handle + +mutable struct _ompd_aspace_cont end + +const ompd_address_space_context_t = _ompd_aspace_cont + +mutable struct _ompd_thread_cont end + +const ompd_thread_context_t = _ompd_thread_cont + +struct ompd_device_type_sizes_t + sizeof_char::UInt8 + sizeof_short::UInt8 + sizeof_int::UInt8 + sizeof_long::UInt8 + sizeof_long_long::UInt8 + sizeof_pointer::UInt8 +end + +function ompd_dll_locations_valid() + @ccall librocprofiler_sdk_tool.ompd_dll_locations_valid()::Cvoid +end + +# typedef ompd_rc_t ( * ompd_callback_memory_alloc_fn_t ) ( ompd_size_t nbytes , void * * ptr ) +const ompd_callback_memory_alloc_fn_t = Ptr{Cvoid} + +# typedef ompd_rc_t ( * ompd_callback_memory_free_fn_t ) ( void * ptr ) +const ompd_callback_memory_free_fn_t = Ptr{Cvoid} + +# typedef ompd_rc_t ( * ompd_callback_get_thread_context_for_thread_id_fn_t ) ( ompd_address_space_context_t * address_space_context , ompd_thread_id_t kind , ompd_size_t sizeof_thread_id , const void * thread_id , ompd_thread_context_t * * thread_context ) +const ompd_callback_get_thread_context_for_thread_id_fn_t = Ptr{Cvoid} + +# typedef ompd_rc_t ( * ompd_callback_sizeof_fn_t ) ( ompd_address_space_context_t * address_space_context , ompd_device_type_sizes_t * sizes ) +const ompd_callback_sizeof_fn_t = Ptr{Cvoid} + +# typedef ompd_rc_t ( * ompd_callback_symbol_addr_fn_t ) ( ompd_address_space_context_t * address_space_context , ompd_thread_context_t * thread_context , const char * symbol_name , ompd_address_t * symbol_addr , const char * file_name ) +const ompd_callback_symbol_addr_fn_t = Ptr{Cvoid} + +# typedef ompd_rc_t ( * ompd_callback_memory_read_fn_t ) ( ompd_address_space_context_t * address_space_context , ompd_thread_context_t * thread_context , const ompd_address_t * addr , ompd_size_t nbytes , void * buffer ) +const ompd_callback_memory_read_fn_t = Ptr{Cvoid} + +# typedef ompd_rc_t ( * ompd_callback_memory_write_fn_t ) ( ompd_address_space_context_t * address_space_context , ompd_thread_context_t * thread_context , const ompd_address_t * addr , ompd_size_t nbytes , const void * buffer ) +const ompd_callback_memory_write_fn_t = Ptr{Cvoid} + +# typedef ompd_rc_t ( * ompd_callback_device_host_fn_t ) ( ompd_address_space_context_t * address_space_context , const void * input , ompd_size_t unit_size , ompd_size_t count , void * output ) +const ompd_callback_device_host_fn_t = Ptr{Cvoid} + +# typedef ompd_rc_t ( * ompd_callback_print_string_fn_t ) ( const char * string , int category ) +const ompd_callback_print_string_fn_t = Ptr{Cvoid} + +struct ompd_callbacks_t + alloc_memory::ompd_callback_memory_alloc_fn_t + free_memory::ompd_callback_memory_free_fn_t + print_string::ompd_callback_print_string_fn_t + sizeof_type::ompd_callback_sizeof_fn_t + symbol_addr_lookup::ompd_callback_symbol_addr_fn_t + read_memory::ompd_callback_memory_read_fn_t + write_memory::ompd_callback_memory_write_fn_t + read_string::ompd_callback_memory_read_fn_t + device_to_host::ompd_callback_device_host_fn_t + host_to_device::ompd_callback_device_host_fn_t + get_thread_context_for_thread_id::ompd_callback_get_thread_context_for_thread_id_fn_t +end + +function ompd_bp_parallel_begin() + @ccall librocprofiler_sdk_tool.ompd_bp_parallel_begin()::Cvoid +end + +function ompd_bp_parallel_end() + @ccall librocprofiler_sdk_tool.ompd_bp_parallel_end()::Cvoid +end + +function ompd_bp_task_begin() + @ccall librocprofiler_sdk_tool.ompd_bp_task_begin()::Cvoid +end + +function ompd_bp_task_end() + @ccall librocprofiler_sdk_tool.ompd_bp_task_end()::Cvoid +end + +function ompd_bp_thread_begin() + @ccall librocprofiler_sdk_tool.ompd_bp_thread_begin()::Cvoid +end + +function ompd_bp_thread_end() + @ccall librocprofiler_sdk_tool.ompd_bp_thread_end()::Cvoid +end + +function ompd_bp_device_begin() + @ccall librocprofiler_sdk_tool.ompd_bp_device_begin()::Cvoid +end + +function ompd_bp_device_end() + @ccall librocprofiler_sdk_tool.ompd_bp_device_end()::Cvoid +end + +function ompd_initialize(api_version, callbacks) + @ccall librocprofiler_sdk_tool.ompd_initialize(api_version::ompd_word_t, + callbacks::Ptr{ompd_callbacks_t})::ompd_rc_t +end + +function ompd_get_api_version(version) + @ccall librocprofiler_sdk_tool.ompd_get_api_version(version::Ptr{ompd_word_t})::ompd_rc_t +end + +function ompd_get_version_string(string) + @ccall librocprofiler_sdk_tool.ompd_get_version_string(string::Ptr{Ptr{Cchar}})::ompd_rc_t +end + +function ompd_finalize() + @ccall librocprofiler_sdk_tool.ompd_finalize()::ompd_rc_t +end + +function ompd_process_initialize(context, handle) + @ccall librocprofiler_sdk_tool.ompd_process_initialize(context::Ptr{ompd_address_space_context_t}, + handle::Ptr{Ptr{ompd_address_space_handle_t}})::ompd_rc_t +end + +function ompd_device_initialize(process_handle, device_context, kind, sizeof_id, id, + device_handle) + @ccall librocprofiler_sdk_tool.ompd_device_initialize(process_handle::Ptr{ompd_address_space_handle_t}, + device_context::Ptr{ompd_address_space_context_t}, + kind::ompd_device_t, + sizeof_id::ompd_size_t, + id::Ptr{Cvoid}, + device_handle::Ptr{Ptr{ompd_address_space_handle_t}})::ompd_rc_t +end + +function ompd_rel_address_space_handle(handle) + @ccall librocprofiler_sdk_tool.ompd_rel_address_space_handle(handle::Ptr{ompd_address_space_handle_t})::ompd_rc_t +end + +function ompd_get_omp_version(address_space, omp_version) + @ccall librocprofiler_sdk_tool.ompd_get_omp_version(address_space::Ptr{ompd_address_space_handle_t}, + omp_version::Ptr{ompd_word_t})::ompd_rc_t +end + +function ompd_get_omp_version_string(address_space, string) + @ccall librocprofiler_sdk_tool.ompd_get_omp_version_string(address_space::Ptr{ompd_address_space_handle_t}, + string::Ptr{Ptr{Cchar}})::ompd_rc_t +end + +function ompd_get_thread_in_parallel(parallel_handle, thread_num, thread_handle) + @ccall librocprofiler_sdk_tool.ompd_get_thread_in_parallel(parallel_handle::Ptr{ompd_parallel_handle_t}, + thread_num::Cint, + thread_handle::Ptr{Ptr{ompd_thread_handle_t}})::ompd_rc_t +end + +function ompd_get_thread_handle(handle, kind, sizeof_thread_id, thread_id, thread_handle) + @ccall librocprofiler_sdk_tool.ompd_get_thread_handle(handle::Ptr{ompd_address_space_handle_t}, + kind::ompd_thread_id_t, + sizeof_thread_id::ompd_size_t, + thread_id::Ptr{Cvoid}, + thread_handle::Ptr{Ptr{ompd_thread_handle_t}})::ompd_rc_t +end + +function ompd_rel_thread_handle(thread_handle) + @ccall librocprofiler_sdk_tool.ompd_rel_thread_handle(thread_handle::Ptr{ompd_thread_handle_t})::ompd_rc_t +end + +function ompd_thread_handle_compare(thread_handle_1, thread_handle_2, cmp_value) + @ccall librocprofiler_sdk_tool.ompd_thread_handle_compare(thread_handle_1::Ptr{ompd_thread_handle_t}, + thread_handle_2::Ptr{ompd_thread_handle_t}, + cmp_value::Ptr{Cint})::ompd_rc_t +end + +function ompd_get_thread_id(thread_handle, kind, sizeof_thread_id, thread_id) + @ccall librocprofiler_sdk_tool.ompd_get_thread_id(thread_handle::Ptr{ompd_thread_handle_t}, + kind::ompd_thread_id_t, + sizeof_thread_id::ompd_size_t, + thread_id::Ptr{Cvoid})::ompd_rc_t +end + +function ompd_get_curr_parallel_handle(thread_handle, parallel_handle) + @ccall librocprofiler_sdk_tool.ompd_get_curr_parallel_handle(thread_handle::Ptr{ompd_thread_handle_t}, + parallel_handle::Ptr{Ptr{ompd_parallel_handle_t}})::ompd_rc_t +end + +function ompd_get_enclosing_parallel_handle(parallel_handle, enclosing_parallel_handle) + @ccall librocprofiler_sdk_tool.ompd_get_enclosing_parallel_handle(parallel_handle::Ptr{ompd_parallel_handle_t}, + enclosing_parallel_handle::Ptr{Ptr{ompd_parallel_handle_t}})::ompd_rc_t +end + +function ompd_get_task_parallel_handle(task_handle, task_parallel_handle) + @ccall librocprofiler_sdk_tool.ompd_get_task_parallel_handle(task_handle::Ptr{ompd_task_handle_t}, + task_parallel_handle::Ptr{Ptr{ompd_parallel_handle_t}})::ompd_rc_t +end + +function ompd_rel_parallel_handle(parallel_handle) + @ccall librocprofiler_sdk_tool.ompd_rel_parallel_handle(parallel_handle::Ptr{ompd_parallel_handle_t})::ompd_rc_t +end + +function ompd_parallel_handle_compare(parallel_handle_1, parallel_handle_2, cmp_value) + @ccall librocprofiler_sdk_tool.ompd_parallel_handle_compare(parallel_handle_1::Ptr{ompd_parallel_handle_t}, + parallel_handle_2::Ptr{ompd_parallel_handle_t}, + cmp_value::Ptr{Cint})::ompd_rc_t +end + +function ompd_get_curr_task_handle(thread_handle, task_handle) + @ccall librocprofiler_sdk_tool.ompd_get_curr_task_handle(thread_handle::Ptr{ompd_thread_handle_t}, + task_handle::Ptr{Ptr{ompd_task_handle_t}})::ompd_rc_t +end + +function ompd_get_generating_task_handle(task_handle, generating_task_handle) + @ccall librocprofiler_sdk_tool.ompd_get_generating_task_handle(task_handle::Ptr{ompd_task_handle_t}, + generating_task_handle::Ptr{Ptr{ompd_task_handle_t}})::ompd_rc_t +end + +function ompd_get_scheduling_task_handle(task_handle, scheduling_task_handle) + @ccall librocprofiler_sdk_tool.ompd_get_scheduling_task_handle(task_handle::Ptr{ompd_task_handle_t}, + scheduling_task_handle::Ptr{Ptr{ompd_task_handle_t}})::ompd_rc_t +end + +function ompd_get_task_in_parallel(parallel_handle, thread_num, task_handle) + @ccall librocprofiler_sdk_tool.ompd_get_task_in_parallel(parallel_handle::Ptr{ompd_parallel_handle_t}, + thread_num::Cint, + task_handle::Ptr{Ptr{ompd_task_handle_t}})::ompd_rc_t +end + +function ompd_rel_task_handle(task_handle) + @ccall librocprofiler_sdk_tool.ompd_rel_task_handle(task_handle::Ptr{ompd_task_handle_t})::ompd_rc_t +end + +function ompd_task_handle_compare(task_handle_1, task_handle_2, cmp_value) + @ccall librocprofiler_sdk_tool.ompd_task_handle_compare(task_handle_1::Ptr{ompd_task_handle_t}, + task_handle_2::Ptr{ompd_task_handle_t}, + cmp_value::Ptr{Cint})::ompd_rc_t +end + +function ompd_get_task_function(task_handle, entry_point) + @ccall librocprofiler_sdk_tool.ompd_get_task_function(task_handle::Ptr{ompd_task_handle_t}, + entry_point::Ptr{ompd_address_t})::ompd_rc_t +end + +function ompd_get_task_frame(task_handle, exit_frame, enter_frame) + @ccall librocprofiler_sdk_tool.ompd_get_task_frame(task_handle::Ptr{ompd_task_handle_t}, + exit_frame::Ptr{ompd_frame_info_t}, + enter_frame::Ptr{ompd_frame_info_t})::ompd_rc_t +end + +function ompd_enumerate_states(address_space_handle, current_state, next_state, + next_state_name, more_enums) + @ccall librocprofiler_sdk_tool.ompd_enumerate_states(address_space_handle::Ptr{ompd_address_space_handle_t}, + current_state::ompd_word_t, + next_state::Ptr{ompd_word_t}, + next_state_name::Ptr{Ptr{Cchar}}, + more_enums::Ptr{ompd_word_t})::ompd_rc_t +end + +function ompd_get_state(thread_handle, state, wait_id) + @ccall librocprofiler_sdk_tool.ompd_get_state(thread_handle::Ptr{ompd_thread_handle_t}, + state::Ptr{ompd_word_t}, + wait_id::Ptr{ompd_wait_id_t})::ompd_rc_t +end + +function ompd_get_display_control_vars(address_space_handle, control_vars) + @ccall librocprofiler_sdk_tool.ompd_get_display_control_vars(address_space_handle::Ptr{ompd_address_space_handle_t}, + control_vars::Ptr{Ptr{Ptr{Cchar}}})::ompd_rc_t +end + +function ompd_rel_display_control_vars(control_vars) + @ccall librocprofiler_sdk_tool.ompd_rel_display_control_vars(control_vars::Ptr{Ptr{Ptr{Cchar}}})::ompd_rc_t +end + +function ompd_enumerate_icvs(handle, current, next_id, next_icv_name, next_scope, more) + @ccall librocprofiler_sdk_tool.ompd_enumerate_icvs(handle::Ptr{ompd_address_space_handle_t}, + current::ompd_icv_id_t, + next_id::Ptr{ompd_icv_id_t}, + next_icv_name::Ptr{Ptr{Cchar}}, + next_scope::Ptr{ompd_scope_t}, + more::Ptr{Cint})::ompd_rc_t +end + +function ompd_get_icv_from_scope(handle, scope, icv_id, icv_value) + @ccall librocprofiler_sdk_tool.ompd_get_icv_from_scope(handle::Ptr{Cvoid}, + scope::ompd_scope_t, + icv_id::ompd_icv_id_t, + icv_value::Ptr{ompd_word_t})::ompd_rc_t +end + +function ompd_get_icv_string_from_scope(handle, scope, icv_id, icv_string) + @ccall librocprofiler_sdk_tool.ompd_get_icv_string_from_scope(handle::Ptr{Cvoid}, + scope::ompd_scope_t, + icv_id::ompd_icv_id_t, + icv_string::Ptr{Ptr{Cchar}})::ompd_rc_t +end + +function ompd_get_tool_data(handle, scope, value, ptr) + @ccall librocprofiler_sdk_tool.ompd_get_tool_data(handle::Ptr{Cvoid}, + scope::ompd_scope_t, + value::Ptr{ompd_word_t}, + ptr::Ptr{ompd_address_t})::ompd_rc_t +end + +struct var"##Ctag#406" + data::NTuple{72,UInt8} +end + +function Base.getproperty(x::Ptr{var"##Ctag#406"}, f::Symbol) + f === :thread_begin && return Ptr{ompt_record_thread_begin_t}(x + 0) + f === :parallel_begin && return Ptr{ompt_record_parallel_begin_t}(x + 0) + f === :parallel_end && return Ptr{ompt_record_parallel_end_t}(x + 0) + f === :work && return Ptr{ompt_record_work_t}(x + 0) + f === :dispatch && return Ptr{ompt_record_dispatch_t}(x + 0) + f === :task_create && return Ptr{ompt_record_task_create_t}(x + 0) + f === :dependences && return Ptr{ompt_record_dependences_t}(x + 0) + f === :task_dependence && return Ptr{ompt_record_task_dependence_t}(x + 0) + f === :task_schedule && return Ptr{ompt_record_task_schedule_t}(x + 0) + f === :implicit_task && return Ptr{ompt_record_implicit_task_t}(x + 0) + f === :masked && return Ptr{ompt_record_masked_t}(x + 0) + f === :sync_region && return Ptr{ompt_record_sync_region_t}(x + 0) + f === :mutex_acquire && return Ptr{ompt_record_mutex_acquire_t}(x + 0) + f === :mutex && return Ptr{ompt_record_mutex_t}(x + 0) + f === :nest_lock && return Ptr{ompt_record_nest_lock_t}(x + 0) + f === :flush && return Ptr{ompt_record_flush_t}(x + 0) + f === :cancel && return Ptr{ompt_record_cancel_t}(x + 0) + f === :target && return Ptr{ompt_record_target_t}(x + 0) + f === :target_data_op && return Ptr{ompt_record_target_data_op_t}(x + 0) + f === :target_map && return Ptr{ompt_record_target_map_t}(x + 0) + f === :target_kernel && return Ptr{ompt_record_target_kernel_t}(x + 0) + f === :control_tool && return Ptr{ompt_record_control_tool_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#406", f::Symbol) + r = Ref{var"##Ctag#406"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#406"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#406"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::var"##Ctag#406", private::Bool=false) + return (:thread_begin, :parallel_begin, :parallel_end, :work, :dispatch, :task_create, + :dependences, :task_dependence, :task_schedule, :implicit_task, :masked, + :sync_region, :mutex_acquire, :mutex, :nest_lock, :flush, :cancel, :target, + :target_data_op, :target_map, :target_kernel, :control_tool, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct ompt_record_ompt_t + data::NTuple{104,UInt8} +end + +function Base.getproperty(x::Ptr{ompt_record_ompt_t}, f::Symbol) + f === :type && return Ptr{ompt_callbacks_t}(x + 0) + f === :time && return Ptr{ompt_device_time_t}(x + 8) + f === :thread_id && return Ptr{ompt_id_t}(x + 16) + f === :target_id && return Ptr{ompt_id_t}(x + 24) + f === :record && return Ptr{var"##Ctag#406"}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::ompt_record_ompt_t, f::Symbol) + r = Ref{ompt_record_ompt_t}(x) + ptr = Base.unsafe_convert(Ptr{ompt_record_ompt_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{ompt_record_ompt_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::ompt_record_ompt_t, private::Bool=false) + return (:type, :time, :thread_id, :target_id, :record, if private + fieldnames(typeof(x)) + else + () + end...) +end + +# typedef ompt_record_ompt_t * ( * ompt_get_record_ompt_t ) ( ompt_buffer_t * buffer , ompt_buffer_cursor_t current ) +const ompt_get_record_ompt_t = Ptr{Cvoid} + +struct rocprofiler_ompt_callback_functions_t + ompt_enumerate_states::ompt_enumerate_states_t + ompt_enumerate_mutex_impls::ompt_enumerate_mutex_impls_t + ompt_get_thread_data::ompt_get_thread_data_t + ompt_get_num_places::ompt_get_num_places_t + ompt_get_place_proc_ids::ompt_get_place_proc_ids_t + ompt_get_place_num::ompt_get_place_num_t + ompt_get_partition_place_nums::ompt_get_partition_place_nums_t + ompt_get_proc_id::ompt_get_proc_id_t + ompt_get_state::ompt_get_state_t + ompt_get_parallel_info::ompt_get_parallel_info_t + ompt_get_task_info::ompt_get_task_info_t + ompt_get_task_memory::ompt_get_task_memory_t + ompt_get_num_devices::ompt_get_num_devices_t + ompt_get_num_procs::ompt_get_num_procs_t + ompt_get_target_info::ompt_get_target_info_t + ompt_get_unique_id::ompt_get_unique_id_t +end + +struct rocprofiler_ompt_no_args + empty::Cchar +end + +struct rocprofiler_ompt_args_t + data::NTuple{128,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_ompt_args_t}, f::Symbol) + f === :thread_begin && return Ptr{var"##Ctag#372"}(x + 0) + f === :thread_end && return Ptr{var"##Ctag#373"}(x + 0) + f === :parallel_begin && return Ptr{var"##Ctag#374"}(x + 0) + f === :parallel_end && return Ptr{var"##Ctag#375"}(x + 0) + f === :task_create && return Ptr{var"##Ctag#376"}(x + 0) + f === :task_schedule && return Ptr{var"##Ctag#377"}(x + 0) + f === :implicit_task && return Ptr{var"##Ctag#378"}(x + 0) + f === :device_initialize && return Ptr{var"##Ctag#379"}(x + 0) + f === :device_finalize && return Ptr{var"##Ctag#380"}(x + 0) + f === :device_load && return Ptr{var"##Ctag#381"}(x + 0) + f === :sync_region_wait && return Ptr{var"##Ctag#382"}(x + 0) + f === :mutex_released && return Ptr{var"##Ctag#383"}(x + 0) + f === :dependences && return Ptr{var"##Ctag#384"}(x + 0) + f === :task_dependence && return Ptr{var"##Ctag#385"}(x + 0) + f === :work && return Ptr{var"##Ctag#386"}(x + 0) + f === :masked && return Ptr{var"##Ctag#387"}(x + 0) + f === :sync_region && return Ptr{var"##Ctag#388"}(x + 0) + f === :lock_init && return Ptr{var"##Ctag#389"}(x + 0) + f === :lock_destroy && return Ptr{var"##Ctag#390"}(x + 0) + f === :mutex_acquire && return Ptr{var"##Ctag#391"}(x + 0) + f === :mutex_acquired && return Ptr{var"##Ctag#392"}(x + 0) + f === :nest_lock && return Ptr{var"##Ctag#393"}(x + 0) + f === :flush && return Ptr{var"##Ctag#394"}(x + 0) + f === :cancel && return Ptr{var"##Ctag#395"}(x + 0) + f === :reduction && return Ptr{var"##Ctag#396"}(x + 0) + f === :dispatch && return Ptr{var"##Ctag#397"}(x + 0) + f === :target_emi && return Ptr{var"##Ctag#398"}(x + 0) + f === :target_data_op_emi && return Ptr{var"##Ctag#399"}(x + 0) + f === :target_submit_emi && return Ptr{var"##Ctag#400"}(x + 0) + f === :error && return Ptr{var"##Ctag#401"}(x + 0) + f === :callback_functions && return Ptr{rocprofiler_ompt_callback_functions_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_ompt_args_t, f::Symbol) + r = Ref{rocprofiler_ompt_args_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_ompt_args_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_ompt_args_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_ompt_args_t, private::Bool=false) + return (:thread_begin, :thread_end, :parallel_begin, :parallel_end, :task_create, + :task_schedule, :implicit_task, :device_initialize, :device_finalize, + :device_load, :sync_region_wait, :mutex_released, :dependences, + :task_dependence, :work, :masked, :sync_region, :lock_init, :lock_destroy, + :mutex_acquire, :mutex_acquired, :nest_lock, :flush, :cancel, :reduction, + :dispatch, :target_emi, :target_data_op_emi, :target_submit_emi, :error, + :callback_functions, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum rocprofiler_ompt_operation_t::Int32 begin + ROCPROFILER_OMPT_ID_NONE = -1 + ROCPROFILER_OMPT_ID_thread_begin = 0 + ROCPROFILER_OMPT_ID_thread_end = 1 + ROCPROFILER_OMPT_ID_parallel_begin = 2 + ROCPROFILER_OMPT_ID_parallel_end = 3 + ROCPROFILER_OMPT_ID_task_create = 4 + ROCPROFILER_OMPT_ID_task_schedule = 5 + ROCPROFILER_OMPT_ID_implicit_task = 6 + ROCPROFILER_OMPT_ID_device_initialize = 7 + ROCPROFILER_OMPT_ID_device_finalize = 8 + ROCPROFILER_OMPT_ID_device_load = 9 + ROCPROFILER_OMPT_ID_sync_region_wait = 10 + ROCPROFILER_OMPT_ID_mutex_released = 11 + ROCPROFILER_OMPT_ID_dependences = 12 + ROCPROFILER_OMPT_ID_task_dependence = 13 + ROCPROFILER_OMPT_ID_work = 14 + ROCPROFILER_OMPT_ID_masked = 15 + ROCPROFILER_OMPT_ID_sync_region = 16 + ROCPROFILER_OMPT_ID_lock_init = 17 + ROCPROFILER_OMPT_ID_lock_destroy = 18 + ROCPROFILER_OMPT_ID_mutex_acquire = 19 + ROCPROFILER_OMPT_ID_mutex_acquired = 20 + ROCPROFILER_OMPT_ID_nest_lock = 21 + ROCPROFILER_OMPT_ID_flush = 22 + ROCPROFILER_OMPT_ID_cancel = 23 + ROCPROFILER_OMPT_ID_reduction = 24 + ROCPROFILER_OMPT_ID_dispatch = 25 + ROCPROFILER_OMPT_ID_target_emi = 26 + ROCPROFILER_OMPT_ID_target_data_op_emi = 27 + ROCPROFILER_OMPT_ID_target_submit_emi = 28 + ROCPROFILER_OMPT_ID_error = 29 + ROCPROFILER_OMPT_ID_callback_functions = 30 + ROCPROFILER_OMPT_ID_LAST = 31 +end + +function rocprofiler_ompt_is_initialized(status) + @ccall librocprofiler_sdk_tool.rocprofiler_ompt_is_initialized(status::Ptr{Cint})::rocprofiler_status_t +end + +function rocprofiler_ompt_is_finalized(status) + @ccall librocprofiler_sdk_tool.rocprofiler_ompt_is_finalized(status::Ptr{Cint})::rocprofiler_status_t +end + +function rocprofiler_ompt_start_tool(omp_version, runtime_version) + @ccall librocprofiler_sdk_tool.rocprofiler_ompt_start_tool(omp_version::Cuint, + runtime_version::Ptr{Cchar})::Ptr{ompt_start_tool_result_t} +end + +struct __half_raw + x::Cushort +end + +struct __half2_raw + x::Cushort + y::Cushort +end + +mutable struct ncclComm end + +const ncclComm_t = Ptr{ncclComm} + +struct ncclUniqueId + internal::NTuple{128,Cchar} +end + +@cenum ncclResult_t::UInt32 begin + ncclSuccess = 0 + ncclUnhandledCudaError = 1 + ncclSystemError = 2 + ncclInternalError = 3 + ncclInvalidArgument = 4 + ncclInvalidUsage = 5 + ncclRemoteError = 6 + ncclInProgress = 7 + ncclNumResults = 8 +end + +function ncclMemAlloc(ptr, size) + @ccall librocprofiler_sdk_tool.ncclMemAlloc(ptr::Ptr{Ptr{Cvoid}}, + size::Csize_t)::ncclResult_t +end + +function pncclMemAlloc(ptr, size) + @ccall librocprofiler_sdk_tool.pncclMemAlloc(ptr::Ptr{Ptr{Cvoid}}, + size::Csize_t)::ncclResult_t +end + +function ncclMemFree(ptr) + @ccall librocprofiler_sdk_tool.ncclMemFree(ptr::Ptr{Cvoid})::ncclResult_t +end + +function pncclMemFree(ptr) + @ccall librocprofiler_sdk_tool.pncclMemFree(ptr::Ptr{Cvoid})::ncclResult_t +end + +function ncclGetVersion(version) + @ccall librocprofiler_sdk_tool.ncclGetVersion(version::Ptr{Cint})::ncclResult_t +end + +function pncclGetVersion(version) + @ccall librocprofiler_sdk_tool.pncclGetVersion(version::Ptr{Cint})::ncclResult_t +end + +function ncclGetUniqueId(uniqueId) + @ccall librocprofiler_sdk_tool.ncclGetUniqueId(uniqueId::Ptr{ncclUniqueId})::ncclResult_t +end + +function pncclGetUniqueId(uniqueId) + @ccall librocprofiler_sdk_tool.pncclGetUniqueId(uniqueId::Ptr{ncclUniqueId})::ncclResult_t +end + +function ncclCommInitRankConfig(comm, nranks, commId, rank, config) + @ccall librocprofiler_sdk_tool.ncclCommInitRankConfig(comm::Ptr{ncclComm_t}, + nranks::Cint, + commId::ncclUniqueId, rank::Cint, + config::Ptr{ncclConfig_t})::ncclResult_t +end + +function pncclCommInitRankConfig(comm, nranks, commId, rank, config) + @ccall librocprofiler_sdk_tool.pncclCommInitRankConfig(comm::Ptr{ncclComm_t}, + nranks::Cint, + commId::ncclUniqueId, rank::Cint, + config::Ptr{ncclConfig_t})::ncclResult_t +end + +function ncclCommInitRank(comm, nranks, commId, rank) + @ccall librocprofiler_sdk_tool.ncclCommInitRank(comm::Ptr{ncclComm_t}, nranks::Cint, + commId::ncclUniqueId, + rank::Cint)::ncclResult_t +end + +function pncclCommInitRank(comm, nranks, commId, rank) + @ccall librocprofiler_sdk_tool.pncclCommInitRank(comm::Ptr{ncclComm_t}, nranks::Cint, + commId::ncclUniqueId, + rank::Cint)::ncclResult_t +end + +function ncclCommInitAll(comm, ndev, devlist) + @ccall librocprofiler_sdk_tool.ncclCommInitAll(comm::Ptr{ncclComm_t}, ndev::Cint, + devlist::Ptr{Cint})::ncclResult_t +end + +function pncclCommInitAll(comm, ndev, devlist) + @ccall librocprofiler_sdk_tool.pncclCommInitAll(comm::Ptr{ncclComm_t}, ndev::Cint, + devlist::Ptr{Cint})::ncclResult_t +end + +function ncclCommFinalize(comm) + @ccall librocprofiler_sdk_tool.ncclCommFinalize(comm::ncclComm_t)::ncclResult_t +end + +function pncclCommFinalize(comm) + @ccall librocprofiler_sdk_tool.pncclCommFinalize(comm::ncclComm_t)::ncclResult_t +end + +function ncclCommDestroy(comm) + @ccall librocprofiler_sdk_tool.ncclCommDestroy(comm::ncclComm_t)::ncclResult_t +end + +function pncclCommDestroy(comm) + @ccall librocprofiler_sdk_tool.pncclCommDestroy(comm::ncclComm_t)::ncclResult_t +end + +function ncclCommAbort(comm) + @ccall librocprofiler_sdk_tool.ncclCommAbort(comm::ncclComm_t)::ncclResult_t +end + +function pncclCommAbort(comm) + @ccall librocprofiler_sdk_tool.pncclCommAbort(comm::ncclComm_t)::ncclResult_t +end + +function ncclCommSplit(comm, color, key, newcomm, config) + @ccall librocprofiler_sdk_tool.ncclCommSplit(comm::ncclComm_t, color::Cint, key::Cint, + newcomm::Ptr{ncclComm_t}, + config::Ptr{ncclConfig_t})::ncclResult_t +end + +function pncclCommSplit(comm, color, key, newcomm, config) + @ccall librocprofiler_sdk_tool.pncclCommSplit(comm::ncclComm_t, color::Cint, key::Cint, + newcomm::Ptr{ncclComm_t}, + config::Ptr{ncclConfig_t})::ncclResult_t +end + +function ncclGetErrorString(result) + @ccall librocprofiler_sdk_tool.ncclGetErrorString(result::ncclResult_t)::Ptr{Cchar} +end + +function pncclGetErrorString(result) + @ccall librocprofiler_sdk_tool.pncclGetErrorString(result::ncclResult_t)::Ptr{Cchar} +end + +function ncclGetLastError(comm) + @ccall librocprofiler_sdk_tool.ncclGetLastError(comm::ncclComm_t)::Ptr{Cchar} +end + +function pncclGetLastError(comm) + @ccall librocprofiler_sdk_tool.pncclGetLastError(comm::ncclComm_t)::Ptr{Cchar} +end + +function ncclCommGetAsyncError(comm, asyncError) + @ccall librocprofiler_sdk_tool.ncclCommGetAsyncError(comm::ncclComm_t, + asyncError::Ptr{ncclResult_t})::ncclResult_t +end + +function pncclCommGetAsyncError(comm, asyncError) + @ccall librocprofiler_sdk_tool.pncclCommGetAsyncError(comm::ncclComm_t, + asyncError::Ptr{ncclResult_t})::ncclResult_t +end + +function ncclCommCount(comm, count) + @ccall librocprofiler_sdk_tool.ncclCommCount(comm::ncclComm_t, + count::Ptr{Cint})::ncclResult_t +end + +function pncclCommCount(comm, count) + @ccall librocprofiler_sdk_tool.pncclCommCount(comm::ncclComm_t, + count::Ptr{Cint})::ncclResult_t +end + +function ncclCommCuDevice(comm, device) + @ccall librocprofiler_sdk_tool.ncclCommCuDevice(comm::ncclComm_t, + device::Ptr{Cint})::ncclResult_t +end + +function pncclCommCuDevice(comm, device) + @ccall librocprofiler_sdk_tool.pncclCommCuDevice(comm::ncclComm_t, + device::Ptr{Cint})::ncclResult_t +end + +function ncclCommUserRank(comm, rank) + @ccall librocprofiler_sdk_tool.ncclCommUserRank(comm::ncclComm_t, + rank::Ptr{Cint})::ncclResult_t +end + +function pncclCommUserRank(comm, rank) + @ccall librocprofiler_sdk_tool.pncclCommUserRank(comm::ncclComm_t, + rank::Ptr{Cint})::ncclResult_t +end + +function ncclCommRegister(comm, buff, size, handle) + @ccall librocprofiler_sdk_tool.ncclCommRegister(comm::ncclComm_t, buff::Ptr{Cvoid}, + size::Csize_t, + handle::Ptr{Ptr{Cvoid}})::ncclResult_t +end + +function pncclCommRegister(comm, buff, size, handle) + @ccall librocprofiler_sdk_tool.pncclCommRegister(comm::ncclComm_t, buff::Ptr{Cvoid}, + size::Csize_t, + handle::Ptr{Ptr{Cvoid}})::ncclResult_t +end + +function ncclCommDeregister(comm, handle) + @ccall librocprofiler_sdk_tool.ncclCommDeregister(comm::ncclComm_t, + handle::Ptr{Cvoid})::ncclResult_t +end + +function pncclCommDeregister(comm, handle) + @ccall librocprofiler_sdk_tool.pncclCommDeregister(comm::ncclComm_t, + handle::Ptr{Cvoid})::ncclResult_t +end + +@cenum ncclRedOp_dummy_t::UInt32 begin + ncclNumOps_dummy = 5 +end + +@cenum ncclRedOp_t::UInt32 begin + ncclSum = 0 + ncclProd = 1 + ncclMax = 2 + ncclMin = 3 + ncclAvg = 4 + ncclNumOps = 5 + ncclMaxRedOp = 2147483647 +end + +@cenum ncclDataType_t::UInt32 begin + ncclInt8 = 0 + ncclChar = 0 + ncclUint8 = 1 + ncclInt32 = 2 + ncclInt = 2 + ncclUint32 = 3 + ncclInt64 = 4 + ncclUint64 = 5 + ncclFloat16 = 6 + ncclHalf = 6 + ncclFloat32 = 7 + ncclFloat = 7 + ncclFloat64 = 8 + ncclDouble = 8 + ncclBfloat16 = 9 + ncclFp8E4M3 = 10 + ncclFp8E5M2 = 11 + ncclNumTypes = 12 +end + +@cenum ncclScalarResidence_t::UInt32 begin + ncclScalarDevice = 0 + ncclScalarHostImmediate = 1 +end + +function ncclRedOpCreatePreMulSum(op, scalar, datatype, residence, comm) + @ccall librocprofiler_sdk_tool.ncclRedOpCreatePreMulSum(op::Ptr{ncclRedOp_t}, + scalar::Ptr{Cvoid}, + datatype::ncclDataType_t, + residence::ncclScalarResidence_t, + comm::ncclComm_t)::ncclResult_t +end + +function pncclRedOpCreatePreMulSum(op, scalar, datatype, residence, comm) + @ccall librocprofiler_sdk_tool.pncclRedOpCreatePreMulSum(op::Ptr{ncclRedOp_t}, + scalar::Ptr{Cvoid}, + datatype::ncclDataType_t, + residence::ncclScalarResidence_t, + comm::ncclComm_t)::ncclResult_t +end + +function ncclRedOpDestroy(op, comm) + @ccall librocprofiler_sdk_tool.ncclRedOpDestroy(op::ncclRedOp_t, + comm::ncclComm_t)::ncclResult_t +end + +function pncclRedOpDestroy(op, comm) + @ccall librocprofiler_sdk_tool.pncclRedOpDestroy(op::ncclRedOp_t, + comm::ncclComm_t)::ncclResult_t +end + +function ncclReduce(sendbuff, recvbuff, count, datatype, op, root, comm, stream) + @ccall librocprofiler_sdk_tool.ncclReduce(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + count::Csize_t, datatype::ncclDataType_t, + op::ncclRedOp_t, root::Cint, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclReduce(sendbuff, recvbuff, count, datatype, op, root, comm, stream) + @ccall librocprofiler_sdk_tool.pncclReduce(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + count::Csize_t, datatype::ncclDataType_t, + op::ncclRedOp_t, root::Cint, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclBcast(buff, count, datatype, root, comm, stream) + @ccall librocprofiler_sdk_tool.ncclBcast(buff::Ptr{Cvoid}, count::Csize_t, + datatype::ncclDataType_t, root::Cint, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclBcast(buff, count, datatype, root, comm, stream) + @ccall librocprofiler_sdk_tool.pncclBcast(buff::Ptr{Cvoid}, count::Csize_t, + datatype::ncclDataType_t, root::Cint, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclBroadcast(sendbuff, recvbuff, count, datatype, root, comm, stream) + @ccall librocprofiler_sdk_tool.ncclBroadcast(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + count::Csize_t, datatype::ncclDataType_t, + root::Cint, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclBroadcast(sendbuff, recvbuff, count, datatype, root, comm, stream) + @ccall librocprofiler_sdk_tool.pncclBroadcast(sendbuff::Ptr{Cvoid}, + recvbuff::Ptr{Cvoid}, count::Csize_t, + datatype::ncclDataType_t, root::Cint, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclAllReduce(sendbuff, recvbuff, count, datatype, op, comm, stream) + @ccall librocprofiler_sdk_tool.ncclAllReduce(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + count::Csize_t, datatype::ncclDataType_t, + op::ncclRedOp_t, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclAllReduce(sendbuff, recvbuff, count, datatype, op, comm, stream) + @ccall librocprofiler_sdk_tool.pncclAllReduce(sendbuff::Ptr{Cvoid}, + recvbuff::Ptr{Cvoid}, count::Csize_t, + datatype::ncclDataType_t, op::ncclRedOp_t, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclReduceScatter(sendbuff, recvbuff, recvcount, datatype, op, comm, stream) + @ccall librocprofiler_sdk_tool.ncclReduceScatter(sendbuff::Ptr{Cvoid}, + recvbuff::Ptr{Cvoid}, + recvcount::Csize_t, + datatype::ncclDataType_t, + op::ncclRedOp_t, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclReduceScatter(sendbuff, recvbuff, recvcount, datatype, op, comm, stream) + @ccall librocprofiler_sdk_tool.pncclReduceScatter(sendbuff::Ptr{Cvoid}, + recvbuff::Ptr{Cvoid}, + recvcount::Csize_t, + datatype::ncclDataType_t, + op::ncclRedOp_t, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclAllGather(sendbuff, recvbuff, sendcount, datatype, comm, stream) + @ccall librocprofiler_sdk_tool.ncclAllGather(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + sendcount::Csize_t, + datatype::ncclDataType_t, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclAllGather(sendbuff, recvbuff, sendcount, datatype, comm, stream) + @ccall librocprofiler_sdk_tool.pncclAllGather(sendbuff::Ptr{Cvoid}, + recvbuff::Ptr{Cvoid}, sendcount::Csize_t, + datatype::ncclDataType_t, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclSend(sendbuff, count, datatype, peer, comm, stream) + @ccall librocprofiler_sdk_tool.ncclSend(sendbuff::Ptr{Cvoid}, count::Csize_t, + datatype::ncclDataType_t, peer::Cint, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclSend(sendbuff, count, datatype, peer, comm, stream) + @ccall librocprofiler_sdk_tool.pncclSend(sendbuff::Ptr{Cvoid}, count::Csize_t, + datatype::ncclDataType_t, peer::Cint, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclRecv(recvbuff, count, datatype, peer, comm, stream) + @ccall librocprofiler_sdk_tool.ncclRecv(recvbuff::Ptr{Cvoid}, count::Csize_t, + datatype::ncclDataType_t, peer::Cint, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclRecv(recvbuff, count, datatype, peer, comm, stream) + @ccall librocprofiler_sdk_tool.pncclRecv(recvbuff::Ptr{Cvoid}, count::Csize_t, + datatype::ncclDataType_t, peer::Cint, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclGather(sendbuff, recvbuff, sendcount, datatype, root, comm, stream) + @ccall librocprofiler_sdk_tool.ncclGather(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + sendcount::Csize_t, datatype::ncclDataType_t, + root::Cint, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclGather(sendbuff, recvbuff, sendcount, datatype, root, comm, stream) + @ccall librocprofiler_sdk_tool.pncclGather(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + sendcount::Csize_t, datatype::ncclDataType_t, + root::Cint, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclScatter(sendbuff, recvbuff, recvcount, datatype, root, comm, stream) + @ccall librocprofiler_sdk_tool.ncclScatter(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + recvcount::Csize_t, datatype::ncclDataType_t, + root::Cint, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclScatter(sendbuff, recvbuff, recvcount, datatype, root, comm, stream) + @ccall librocprofiler_sdk_tool.pncclScatter(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + recvcount::Csize_t, + datatype::ncclDataType_t, root::Cint, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclAllToAll(sendbuff, recvbuff, count, datatype, comm, stream) + @ccall librocprofiler_sdk_tool.ncclAllToAll(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + count::Csize_t, datatype::ncclDataType_t, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclAllToAll(sendbuff, recvbuff, count, datatype, comm, stream) + @ccall librocprofiler_sdk_tool.pncclAllToAll(sendbuff::Ptr{Cvoid}, recvbuff::Ptr{Cvoid}, + count::Csize_t, datatype::ncclDataType_t, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function ncclAllToAllv(sendbuff, sendcounts, sdispls, recvbuff, recvcounts, rdispls, + datatype, comm, stream) + @ccall librocprofiler_sdk_tool.ncclAllToAllv(sendbuff::Ptr{Cvoid}, + sendcounts::Ptr{Csize_t}, + sdispls::Ptr{Csize_t}, + recvbuff::Ptr{Cvoid}, + recvcounts::Ptr{Csize_t}, + rdispls::Ptr{Csize_t}, + datatype::ncclDataType_t, comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pncclAllToAllv(sendbuff, sendcounts, sdispls, recvbuff, recvcounts, rdispls, + datatype, comm, stream) + @ccall librocprofiler_sdk_tool.pncclAllToAllv(sendbuff::Ptr{Cvoid}, + sendcounts::Ptr{Csize_t}, + sdispls::Ptr{Csize_t}, + recvbuff::Ptr{Cvoid}, + recvcounts::Ptr{Csize_t}, + rdispls::Ptr{Csize_t}, + datatype::ncclDataType_t, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +const mscclAlgoHandle_t = Cint + +function mscclLoadAlgo(mscclAlgoFilePath, mscclAlgoHandle, rank) + @ccall librocprofiler_sdk_tool.mscclLoadAlgo(mscclAlgoFilePath::Ptr{Cchar}, + mscclAlgoHandle::Ptr{mscclAlgoHandle_t}, + rank::Cint)::ncclResult_t +end + +function pmscclLoadAlgo(mscclAlgoFilePath, mscclAlgoHandle, rank) + @ccall librocprofiler_sdk_tool.pmscclLoadAlgo(mscclAlgoFilePath::Ptr{Cchar}, + mscclAlgoHandle::Ptr{mscclAlgoHandle_t}, + rank::Cint)::ncclResult_t +end + +function mscclRunAlgo(sendBuff, sendCounts, sDisPls, recvBuff, recvCounts, rDisPls, count, + dataType, root, peer, op, mscclAlgoHandle, comm, stream) + @ccall librocprofiler_sdk_tool.mscclRunAlgo(sendBuff::Ptr{Cvoid}, + sendCounts::Ptr{Csize_t}, + sDisPls::Ptr{Csize_t}, recvBuff::Ptr{Cvoid}, + recvCounts::Ptr{Csize_t}, + rDisPls::Ptr{Csize_t}, count::Csize_t, + dataType::ncclDataType_t, root::Cint, + peer::Cint, op::ncclRedOp_t, + mscclAlgoHandle::mscclAlgoHandle_t, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function pmscclRunAlgo(sendBuff, sendCounts, sDisPls, recvBuff, recvCounts, rDisPls, count, + dataType, root, peer, op, mscclAlgoHandle, comm, stream) + @ccall librocprofiler_sdk_tool.pmscclRunAlgo(sendBuff::Ptr{Cvoid}, + sendCounts::Ptr{Csize_t}, + sDisPls::Ptr{Csize_t}, + recvBuff::Ptr{Cvoid}, + recvCounts::Ptr{Csize_t}, + rDisPls::Ptr{Csize_t}, count::Csize_t, + dataType::ncclDataType_t, root::Cint, + peer::Cint, op::ncclRedOp_t, + mscclAlgoHandle::mscclAlgoHandle_t, + comm::ncclComm_t, + stream::hipStream_t)::ncclResult_t +end + +function mscclUnloadAlgo(mscclAlgoHandle) + @ccall librocprofiler_sdk_tool.mscclUnloadAlgo(mscclAlgoHandle::mscclAlgoHandle_t)::ncclResult_t +end + +function pmscclUnloadAlgo(mscclAlgoHandle) + @ccall librocprofiler_sdk_tool.pmscclUnloadAlgo(mscclAlgoHandle::mscclAlgoHandle_t)::ncclResult_t +end + +# no prototype is found for this function at rccl.h:1060:1, please use with caution +function ncclGroupStart() + @ccall librocprofiler_sdk_tool.ncclGroupStart()::ncclResult_t +end + +# no prototype is found for this function at rccl.h:1063:1, please use with caution +function pncclGroupStart() + @ccall librocprofiler_sdk_tool.pncclGroupStart()::ncclResult_t +end + +# no prototype is found for this function at rccl.h:1072:1, please use with caution +function ncclGroupEnd() + @ccall librocprofiler_sdk_tool.ncclGroupEnd()::ncclResult_t +end + +# no prototype is found for this function at rccl.h:1075:1, please use with caution +function pncclGroupEnd() + @ccall librocprofiler_sdk_tool.pncclGroupEnd()::ncclResult_t +end + +struct rocprofiler_rccl_api_no_args + empty::Cchar +end + +struct rocprofiler_rccl_api_retval_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_rccl_api_retval_t}, f::Symbol) + f === :ncclResult_t_retval && return Ptr{Int32}(x + 0) + f === :const_charp_retval && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_rccl_api_retval_t, f::Symbol) + r = Ref{rocprofiler_rccl_api_retval_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_rccl_api_retval_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_rccl_api_retval_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_rccl_api_retval_t, private::Bool=false) + return (:ncclResult_t_retval, :const_charp_retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_rccl_api_args_t + data::NTuple{152,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_rccl_api_args_t}, f::Symbol) + f === :ncclAllGather && return Ptr{var"##Ctag#334"}(x + 0) + f === :ncclAllReduce && return Ptr{var"##Ctag#335"}(x + 0) + f === :ncclAllToAll && return Ptr{var"##Ctag#336"}(x + 0) + f === :ncclAllToAllv && return Ptr{var"##Ctag#337"}(x + 0) + f === :ncclBroadcast && return Ptr{var"##Ctag#338"}(x + 0) + f === :ncclGather && return Ptr{var"##Ctag#339"}(x + 0) + f === :ncclReduce && return Ptr{var"##Ctag#340"}(x + 0) + f === :ncclReduceScatter && return Ptr{var"##Ctag#341"}(x + 0) + f === :ncclScatter && return Ptr{var"##Ctag#342"}(x + 0) + f === :ncclSend && return Ptr{var"##Ctag#343"}(x + 0) + f === :ncclRecv && return Ptr{var"##Ctag#344"}(x + 0) + f === :ncclRedOpCreatePreMulSum && return Ptr{var"##Ctag#345"}(x + 0) + f === :ncclRedOpDestroy && return Ptr{var"##Ctag#346"}(x + 0) + f === :ncclGroupStart && return Ptr{var"##Ctag#347"}(x + 0) + f === :ncclGroupEnd && return Ptr{var"##Ctag#348"}(x + 0) + f === :ncclGetVersion && return Ptr{var"##Ctag#349"}(x + 0) + f === :ncclGetUniqueId && return Ptr{var"##Ctag#350"}(x + 0) + f === :ncclCommInitRank && return Ptr{var"##Ctag#351"}(x + 0) + f === :ncclCommInitAll && return Ptr{var"##Ctag#352"}(x + 0) + f === :ncclCommInitRankConfig && return Ptr{var"##Ctag#353"}(x + 0) + f === :ncclCommFinalize && return Ptr{var"##Ctag#354"}(x + 0) + f === :ncclCommDestroy && return Ptr{var"##Ctag#355"}(x + 0) + f === :ncclCommAbort && return Ptr{var"##Ctag#356"}(x + 0) + f === :ncclCommSplit && return Ptr{var"##Ctag#357"}(x + 0) + f === :ncclGetErrorString && return Ptr{var"##Ctag#358"}(x + 0) + f === :ncclGetLastError && return Ptr{var"##Ctag#359"}(x + 0) + f === :ncclCommGetAsyncError && return Ptr{var"##Ctag#360"}(x + 0) + f === :ncclCommCount && return Ptr{var"##Ctag#361"}(x + 0) + f === :ncclCommCuDevice && return Ptr{var"##Ctag#362"}(x + 0) + f === :ncclCommUserRank && return Ptr{var"##Ctag#363"}(x + 0) + f === :ncclMemAlloc && return Ptr{var"##Ctag#364"}(x + 0) + f === :ncclMemFree && return Ptr{var"##Ctag#365"}(x + 0) + f === :mscclLoadAlgo && return Ptr{var"##Ctag#366"}(x + 0) + f === :mscclRunAlgo && return Ptr{var"##Ctag#367"}(x + 0) + f === :mscclUnloadAlgo && return Ptr{var"##Ctag#368"}(x + 0) + f === :ncclCommRegister && return Ptr{var"##Ctag#369"}(x + 0) + f === :ncclCommDeregister && return Ptr{var"##Ctag#370"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_rccl_api_args_t, f::Symbol) + r = Ref{rocprofiler_rccl_api_args_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_rccl_api_args_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_rccl_api_args_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_rccl_api_args_t, private::Bool=false) + return (:ncclAllGather, :ncclAllReduce, :ncclAllToAll, :ncclAllToAllv, :ncclBroadcast, + :ncclGather, :ncclReduce, :ncclReduceScatter, :ncclScatter, :ncclSend, + :ncclRecv, :ncclRedOpCreatePreMulSum, :ncclRedOpDestroy, :ncclGroupStart, + :ncclGroupEnd, :ncclGetVersion, :ncclGetUniqueId, :ncclCommInitRank, + :ncclCommInitAll, :ncclCommInitRankConfig, :ncclCommFinalize, :ncclCommDestroy, + :ncclCommAbort, :ncclCommSplit, :ncclGetErrorString, :ncclGetLastError, + :ncclCommGetAsyncError, :ncclCommCount, :ncclCommCuDevice, :ncclCommUserRank, + :ncclMemAlloc, :ncclMemFree, :mscclLoadAlgo, :mscclRunAlgo, :mscclUnloadAlgo, + :ncclCommRegister, :ncclCommDeregister, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum rocprofiler_rccl_api_id_t::Int32 begin + ROCPROFILER_RCCL_API_ID_NONE = -1 + ROCPROFILER_RCCL_API_ID_ncclAllGather = 0 + ROCPROFILER_RCCL_API_ID_ncclAllReduce = 1 + ROCPROFILER_RCCL_API_ID_ncclAllToAll = 2 + ROCPROFILER_RCCL_API_ID_ncclAllToAllv = 3 + ROCPROFILER_RCCL_API_ID_ncclBroadcast = 4 + ROCPROFILER_RCCL_API_ID_ncclGather = 5 + ROCPROFILER_RCCL_API_ID_ncclReduce = 6 + ROCPROFILER_RCCL_API_ID_ncclReduceScatter = 7 + ROCPROFILER_RCCL_API_ID_ncclScatter = 8 + ROCPROFILER_RCCL_API_ID_ncclSend = 9 + ROCPROFILER_RCCL_API_ID_ncclRecv = 10 + ROCPROFILER_RCCL_API_ID_ncclRedOpCreatePreMulSum = 11 + ROCPROFILER_RCCL_API_ID_ncclRedOpDestroy = 12 + ROCPROFILER_RCCL_API_ID_ncclGroupStart = 13 + ROCPROFILER_RCCL_API_ID_ncclGroupEnd = 14 + ROCPROFILER_RCCL_API_ID_ncclGetVersion = 15 + ROCPROFILER_RCCL_API_ID_ncclGetUniqueId = 16 + ROCPROFILER_RCCL_API_ID_ncclCommInitRank = 17 + ROCPROFILER_RCCL_API_ID_ncclCommInitAll = 18 + ROCPROFILER_RCCL_API_ID_ncclCommInitRankConfig = 19 + ROCPROFILER_RCCL_API_ID_ncclCommFinalize = 20 + ROCPROFILER_RCCL_API_ID_ncclCommDestroy = 21 + ROCPROFILER_RCCL_API_ID_ncclCommAbort = 22 + ROCPROFILER_RCCL_API_ID_ncclCommSplit = 23 + ROCPROFILER_RCCL_API_ID_ncclGetErrorString = 24 + ROCPROFILER_RCCL_API_ID_ncclGetLastError = 25 + ROCPROFILER_RCCL_API_ID_ncclCommGetAsyncError = 26 + ROCPROFILER_RCCL_API_ID_ncclCommCount = 27 + ROCPROFILER_RCCL_API_ID_ncclCommCuDevice = 28 + ROCPROFILER_RCCL_API_ID_ncclCommUserRank = 29 + ROCPROFILER_RCCL_API_ID_ncclMemAlloc = 30 + ROCPROFILER_RCCL_API_ID_ncclMemFree = 31 + ROCPROFILER_RCCL_API_ID_mscclLoadAlgo = 32 + ROCPROFILER_RCCL_API_ID_mscclRunAlgo = 33 + ROCPROFILER_RCCL_API_ID_mscclUnloadAlgo = 34 + ROCPROFILER_RCCL_API_ID_ncclCommRegister = 35 + ROCPROFILER_RCCL_API_ID_ncclCommDeregister = 36 + ROCPROFILER_RCCL_API_ID_LAST = 37 +end + +@cenum rocprofiler_rccl_table_id_t::Int32 begin + ROCPROFILER_RCCL_TABLE_ID_NONE = -1 + ROCPROFILER_RCCL_TABLE_ID = 0 + ROCPROFILER_RCCL_TABLE_ID_LAST = 1 +end + +@cenum rocprofiler_rocdecode_table_id_t::Int32 begin + ROCPROFILER_ROCDECODE_TABLE_ID_NONE = -1 + ROCPROFILER_ROCDECODE_TABLE_ID_CORE = 0 + ROCPROFILER_ROCDECODE_TABLE_ID_LAST = 1 +end + +@cenum RocJpegStatus::Int32 begin + ROCJPEG_STATUS_SUCCESS = 0 + ROCJPEG_STATUS_NOT_INITIALIZED = -1 + ROCJPEG_STATUS_INVALID_PARAMETER = -2 + ROCJPEG_STATUS_BAD_JPEG = -3 + ROCJPEG_STATUS_JPEG_NOT_SUPPORTED = -4 + ROCJPEG_STATUS_OUTOF_MEMORY = -5 + ROCJPEG_STATUS_EXECUTION_FAILED = -6 + ROCJPEG_STATUS_ARCH_MISMATCH = -7 + ROCJPEG_STATUS_INTERNAL_ERROR = -8 + ROCJPEG_STATUS_IMPLEMENTATION_NOT_SUPPORTED = -9 + ROCJPEG_STATUS_HW_JPEG_DECODER_NOT_SUPPORTED = -10 + ROCJPEG_STATUS_RUNTIME_ERROR = -11 + ROCJPEG_STATUS_NOT_IMPLEMENTED = -12 +end + +@cenum RocJpegChromaSubsampling::Int32 begin + ROCJPEG_CSS_444 = 0 + ROCJPEG_CSS_440 = 1 + ROCJPEG_CSS_422 = 2 + ROCJPEG_CSS_420 = 3 + ROCJPEG_CSS_411 = 4 + ROCJPEG_CSS_400 = 5 + ROCJPEG_CSS_UNKNOWN = -1 +end + +struct RocJpegImage + channel::NTuple{4,Ptr{UInt8}} + pitch::NTuple{4,UInt32} +end + +@cenum RocJpegOutputFormat::UInt32 begin + ROCJPEG_OUTPUT_NATIVE = 0 + ROCJPEG_OUTPUT_YUV_PLANAR = 1 + ROCJPEG_OUTPUT_Y = 2 + ROCJPEG_OUTPUT_RGB = 3 + ROCJPEG_OUTPUT_RGB_PLANAR = 4 + ROCJPEG_OUTPUT_FORMAT_MAX = 5 +end + +struct var"##Ctag#1168" + left::Int16 + top::Int16 + right::Int16 + bottom::Int16 +end +function Base.getproperty(x::Ptr{var"##Ctag#1168"}, f::Symbol) + f === :left && return Ptr{Int16}(x + 0) + f === :top && return Ptr{Int16}(x + 2) + f === :right && return Ptr{Int16}(x + 4) + f === :bottom && return Ptr{Int16}(x + 6) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1168", f::Symbol) + r = Ref{var"##Ctag#1168"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1168"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1168"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1169" + width::UInt32 + height::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#1169"}, f::Symbol) + f === :width && return Ptr{UInt32}(x + 0) + f === :height && return Ptr{UInt32}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1169", f::Symbol) + r = Ref{var"##Ctag#1169"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1169"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1169"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct RocJpegDecodeParams + data::NTuple{20,UInt8} +end + +function Base.getproperty(x::Ptr{RocJpegDecodeParams}, f::Symbol) + f === :output_format && return Ptr{RocJpegOutputFormat}(x + 0) + f === :crop_rectangle && return Ptr{var"##Ctag#1168"}(x + 4) + f === :target_dimension && return Ptr{var"##Ctag#1169"}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::RocJpegDecodeParams, f::Symbol) + r = Ref{RocJpegDecodeParams}(x) + ptr = Base.unsafe_convert(Ptr{RocJpegDecodeParams}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{RocJpegDecodeParams}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::RocJpegDecodeParams, private::Bool=false) + return (:output_format, :crop_rectangle, :target_dimension, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum RocJpegBackend::UInt32 begin + ROCJPEG_BACKEND_HARDWARE = 0 + ROCJPEG_BACKEND_HYBRID = 1 +end + +const RocJpegStreamHandle = Ptr{Cvoid} + +function rocJpegStreamCreate(jpeg_stream_handle) + @ccall librocprofiler_sdk_tool.rocJpegStreamCreate(jpeg_stream_handle::Ptr{RocJpegStreamHandle})::RocJpegStatus +end + +function rocJpegStreamParse(data, length, jpeg_stream_handle) + @ccall librocprofiler_sdk_tool.rocJpegStreamParse(data::Ptr{Cuchar}, length::Csize_t, + jpeg_stream_handle::RocJpegStreamHandle)::RocJpegStatus +end + +function rocJpegStreamDestroy(jpeg_stream_handle) + @ccall librocprofiler_sdk_tool.rocJpegStreamDestroy(jpeg_stream_handle::RocJpegStreamHandle)::RocJpegStatus +end + +const RocJpegHandle = Ptr{Cvoid} + +function rocJpegCreate(backend, device_id, handle) + @ccall librocprofiler_sdk_tool.rocJpegCreate(backend::RocJpegBackend, device_id::Cint, + handle::Ptr{RocJpegHandle})::RocJpegStatus +end + +function rocJpegDestroy(handle) + @ccall librocprofiler_sdk_tool.rocJpegDestroy(handle::RocJpegHandle)::RocJpegStatus +end + +function rocJpegGetImageInfo(handle, jpeg_stream_handle, num_components, subsampling, + widths, heights) + @ccall librocprofiler_sdk_tool.rocJpegGetImageInfo(handle::RocJpegHandle, + jpeg_stream_handle::RocJpegStreamHandle, + num_components::Ptr{UInt8}, + subsampling::Ptr{RocJpegChromaSubsampling}, + widths::Ptr{UInt32}, + heights::Ptr{UInt32})::RocJpegStatus +end + +function rocJpegDecode(handle, jpeg_stream_handle, decode_params, destination) + @ccall librocprofiler_sdk_tool.rocJpegDecode(handle::RocJpegHandle, + jpeg_stream_handle::RocJpegStreamHandle, + decode_params::Ptr{RocJpegDecodeParams}, + destination::Ptr{RocJpegImage})::RocJpegStatus +end + +function rocJpegDecodeBatched(handle, jpeg_stream_handles, batch_size, decode_params, + destinations) + @ccall librocprofiler_sdk_tool.rocJpegDecodeBatched(handle::RocJpegHandle, + jpeg_stream_handles::Ptr{RocJpegStreamHandle}, + batch_size::Cint, + decode_params::Ptr{RocJpegDecodeParams}, + destinations::Ptr{RocJpegImage})::RocJpegStatus +end + +function rocJpegGetErrorName(rocjpeg_status) + @ccall librocprofiler_sdk_tool.rocJpegGetErrorName(rocjpeg_status::RocJpegStatus)::Ptr{Cchar} +end + +struct rocprofiler_rocjpeg_api_no_args + empty::Cchar +end + +struct rocprofiler_rocjpeg_api_retval_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_rocjpeg_api_retval_t}, f::Symbol) + f === :rocJpegStatus_retval && return Ptr{Int32}(x + 0) + f === :const_charp_retval && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_rocjpeg_api_retval_t, f::Symbol) + r = Ref{rocprofiler_rocjpeg_api_retval_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_rocjpeg_api_retval_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_rocjpeg_api_retval_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_rocjpeg_api_retval_t, private::Bool=false) + return (:rocJpegStatus_retval, :const_charp_retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_rocjpeg_api_args_t + data::NTuple{48,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_rocjpeg_api_args_t}, f::Symbol) + f === :rocJpegStreamCreate && return Ptr{var"##Ctag#1170"}(x + 0) + f === :rocJpegStreamParse && return Ptr{var"##Ctag#1171"}(x + 0) + f === :rocJpegStreamDestroy && return Ptr{var"##Ctag#1172"}(x + 0) + f === :rocJpegCreate && return Ptr{var"##Ctag#1173"}(x + 0) + f === :rocJpegDestroy && return Ptr{var"##Ctag#1174"}(x + 0) + f === :rocJpegGetImageInfo && return Ptr{var"##Ctag#1175"}(x + 0) + f === :rocJpegDecode && return Ptr{var"##Ctag#1176"}(x + 0) + f === :rocJpegDecodeBatched && return Ptr{var"##Ctag#1177"}(x + 0) + f === :rocJpegGetErrorName && return Ptr{var"##Ctag#1178"}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_rocjpeg_api_args_t, f::Symbol) + r = Ref{rocprofiler_rocjpeg_api_args_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_rocjpeg_api_args_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_rocjpeg_api_args_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_rocjpeg_api_args_t, private::Bool=false) + return (:rocJpegStreamCreate, :rocJpegStreamParse, :rocJpegStreamDestroy, + :rocJpegCreate, :rocJpegDestroy, :rocJpegGetImageInfo, :rocJpegDecode, + :rocJpegDecodeBatched, :rocJpegGetErrorName, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum rocprofiler_rocjpeg_api_id_t::Int32 begin + ROCPROFILER_ROCJPEG_API_ID_NONE = -1 + ROCPROFILER_ROCJPEG_API_ID_rocJpegStreamCreate = 0 + ROCPROFILER_ROCJPEG_API_ID_rocJpegStreamParse = 1 + ROCPROFILER_ROCJPEG_API_ID_rocJpegStreamDestroy = 2 + ROCPROFILER_ROCJPEG_API_ID_rocJpegCreate = 3 + ROCPROFILER_ROCJPEG_API_ID_rocJpegDestroy = 4 + ROCPROFILER_ROCJPEG_API_ID_rocJpegGetImageInfo = 5 + ROCPROFILER_ROCJPEG_API_ID_rocJpegDecode = 6 + ROCPROFILER_ROCJPEG_API_ID_rocJpegDecodeBatched = 7 + ROCPROFILER_ROCJPEG_API_ID_rocJpegGetErrorName = 8 + ROCPROFILER_ROCJPEG_API_ID_LAST = 9 +end + +@cenum rocprofiler_rocjpeg_table_id_t::Int32 begin + ROCPROFILER_ROCJPEG_TABLE_ID_NONE = -1 + ROCPROFILER_ROCJPEG_TABLE_ID_CORE = 0 + ROCPROFILER_ROCJPEG_TABLE_ID_LAST = 1 +end + +function hsa_ven_amd_loader_query_host_address(device_address, host_address) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_loader_query_host_address(device_address::Ptr{Cvoid}, + host_address::Ptr{Ptr{Cvoid}})::hsa_status_t +end + +@cenum hsa_ven_amd_loader_code_object_storage_type_t::UInt32 begin + HSA_VEN_AMD_LOADER_CODE_OBJECT_STORAGE_TYPE_NONE = 0 + HSA_VEN_AMD_LOADER_CODE_OBJECT_STORAGE_TYPE_FILE = 1 + HSA_VEN_AMD_LOADER_CODE_OBJECT_STORAGE_TYPE_MEMORY = 2 +end + +struct hsa_ven_amd_loader_segment_descriptor_s + agent::hsa_agent_t + executable::hsa_executable_t + code_object_storage_type::hsa_ven_amd_loader_code_object_storage_type_t + code_object_storage_base::Ptr{Cvoid} + code_object_storage_size::Csize_t + code_object_storage_offset::Csize_t + segment_base::Ptr{Cvoid} + segment_size::Csize_t +end + +const hsa_ven_amd_loader_segment_descriptor_t = hsa_ven_amd_loader_segment_descriptor_s + +function hsa_ven_amd_loader_query_segment_descriptors(segment_descriptors, + num_segment_descriptors) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_loader_query_segment_descriptors(segment_descriptors::Ptr{hsa_ven_amd_loader_segment_descriptor_t}, + num_segment_descriptors::Ptr{Csize_t})::hsa_status_t +end + +function hsa_ven_amd_loader_query_executable(device_address, executable) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_loader_query_executable(device_address::Ptr{Cvoid}, + executable::Ptr{hsa_executable_t})::hsa_status_t +end + +function hsa_ven_amd_loader_executable_iterate_loaded_code_objects(executable, callback, + data) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_loader_executable_iterate_loaded_code_objects(executable::hsa_executable_t, + callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +@cenum hsa_ven_amd_loader_loaded_code_object_kind_t::UInt32 begin + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_KIND_PROGRAM = 1 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_KIND_AGENT = 2 +end + +@cenum hsa_ven_amd_loader_loaded_code_object_info_e::UInt32 begin + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_EXECUTABLE = 1 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_KIND = 2 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_AGENT = 3 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_CODE_OBJECT_STORAGE_TYPE = 4 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_CODE_OBJECT_STORAGE_MEMORY_BASE = 5 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_CODE_OBJECT_STORAGE_MEMORY_SIZE = 6 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_CODE_OBJECT_STORAGE_FILE = 7 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_LOAD_DELTA = 8 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_LOAD_BASE = 9 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_LOAD_SIZE = 10 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_URI_LENGTH = 11 + HSA_VEN_AMD_LOADER_LOADED_CODE_OBJECT_INFO_URI = 12 +end + +const hsa_ven_amd_loader_loaded_code_object_info_t = hsa_ven_amd_loader_loaded_code_object_info_e + +function hsa_ven_amd_loader_loaded_code_object_get_info(loaded_code_object, attribute, + value) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_loader_loaded_code_object_get_info(loaded_code_object::hsa_loaded_code_object_t, + attribute::hsa_ven_amd_loader_loaded_code_object_info_t, + value::Ptr{Cvoid})::hsa_status_t +end + +function hsa_ven_amd_loader_code_object_reader_create_from_file_with_offset_size(file, + offset, + size, + code_object_reader) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_loader_code_object_reader_create_from_file_with_offset_size(file::hsa_file_t, + offset::Csize_t, + size::Csize_t, + code_object_reader::Ptr{hsa_code_object_reader_t})::hsa_status_t +end + +function hsa_ven_amd_loader_iterate_executables(callback, data) + @ccall librocprofiler_sdk_tool.hsa_ven_amd_loader_iterate_executables(callback::Ptr{Cvoid}, + data::Ptr{Cvoid})::hsa_status_t +end + +struct hsa_ven_amd_loader_1_00_pfn_s + hsa_ven_amd_loader_query_host_address::Ptr{Cvoid} + hsa_ven_amd_loader_query_segment_descriptors::Ptr{Cvoid} + hsa_ven_amd_loader_query_executable::Ptr{Cvoid} +end + +const hsa_ven_amd_loader_1_00_pfn_t = hsa_ven_amd_loader_1_00_pfn_s + +struct hsa_ven_amd_loader_1_01_pfn_s + hsa_ven_amd_loader_query_host_address::Ptr{Cvoid} + hsa_ven_amd_loader_query_segment_descriptors::Ptr{Cvoid} + hsa_ven_amd_loader_query_executable::Ptr{Cvoid} + hsa_ven_amd_loader_executable_iterate_loaded_code_objects::Ptr{Cvoid} + hsa_ven_amd_loader_loaded_code_object_get_info::Ptr{Cvoid} +end + +const hsa_ven_amd_loader_1_01_pfn_t = hsa_ven_amd_loader_1_01_pfn_s + +struct hsa_ven_amd_loader_1_02_pfn_s + hsa_ven_amd_loader_query_host_address::Ptr{Cvoid} + hsa_ven_amd_loader_query_segment_descriptors::Ptr{Cvoid} + hsa_ven_amd_loader_query_executable::Ptr{Cvoid} + hsa_ven_amd_loader_executable_iterate_loaded_code_objects::Ptr{Cvoid} + hsa_ven_amd_loader_loaded_code_object_get_info::Ptr{Cvoid} + hsa_ven_amd_loader_code_object_reader_create_from_file_with_offset_size::Ptr{Cvoid} +end + +const hsa_ven_amd_loader_1_02_pfn_t = hsa_ven_amd_loader_1_02_pfn_s + +struct hsa_ven_amd_loader_1_03_pfn_s + hsa_ven_amd_loader_query_host_address::Ptr{Cvoid} + hsa_ven_amd_loader_query_segment_descriptors::Ptr{Cvoid} + hsa_ven_amd_loader_query_executable::Ptr{Cvoid} + hsa_ven_amd_loader_executable_iterate_loaded_code_objects::Ptr{Cvoid} + hsa_ven_amd_loader_loaded_code_object_get_info::Ptr{Cvoid} + hsa_ven_amd_loader_code_object_reader_create_from_file_with_offset_size::Ptr{Cvoid} + hsa_ven_amd_loader_iterate_executables::Ptr{Cvoid} +end + +const hsa_ven_amd_loader_1_03_pfn_t = hsa_ven_amd_loader_1_03_pfn_s + +@cenum rocprofiler_code_object_storage_type_t::UInt32 begin + ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_NONE = 0 + ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_FILE = 1 + ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_MEMORY = 2 + ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_LAST = 3 +end + +struct rocprofiler_callback_tracing_hsa_api_data_t + data::NTuple{208,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_hsa_api_data_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :args && return Ptr{rocprofiler_hsa_api_args_t}(x + 8) + f === :retval && return Ptr{rocprofiler_hsa_api_retval_t}(x + 200) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_hsa_api_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_hsa_api_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_hsa_api_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_hsa_api_data_t}, f::Symbol, + v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_hsa_api_data_t, + private::Bool=false) + return (:size, :args, :retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_hip_api_data_t + data::NTuple{120,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_hip_api_data_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :args && return Ptr{rocprofiler_hip_api_args_t}(x + 8) + f === :retval && return Ptr{rocprofiler_hip_api_retval_t}(x + 96) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_hip_api_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_hip_api_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_hip_api_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_hip_api_data_t}, f::Symbol, + v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_hip_api_data_t, + private::Bool=false) + return (:size, :args, :retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_ompt_data_t + data::NTuple{136,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_ompt_data_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :args && return Ptr{rocprofiler_ompt_args_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_ompt_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_ompt_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_ompt_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_ompt_data_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_ompt_data_t, + private::Bool=false) + return (:size, :args, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_marker_api_data_t + data::NTuple{32,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_marker_api_data_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :args && return Ptr{rocprofiler_marker_api_args_t}(x + 8) + f === :retval && return Ptr{rocprofiler_marker_api_retval_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_marker_api_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_marker_api_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_marker_api_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_marker_api_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_marker_api_data_t, + private::Bool=false) + return (:size, :args, :retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_rccl_api_data_t + data::NTuple{168,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_rccl_api_data_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :args && return Ptr{rocprofiler_rccl_api_args_t}(x + 8) + f === :retval && return Ptr{rocprofiler_rccl_api_retval_t}(x + 160) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_rccl_api_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_rccl_api_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_rccl_api_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_rccl_api_data_t}, f::Symbol, + v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_rccl_api_data_t, + private::Bool=false) + return (:size, :args, :retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_rocdecode_api_data_t + data::NTuple{56,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_rocdecode_api_data_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :args && return Ptr{rocprofiler_rocdecode_api_args_t}(x + 8) + f === :retval && return Ptr{rocprofiler_rocdecode_api_retval_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_rocdecode_api_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_rocdecode_api_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_rocdecode_api_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_rocdecode_api_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_rocdecode_api_data_t, + private::Bool=false) + return (:size, :args, :retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_rocjpeg_api_data_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_rocjpeg_api_data_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :args && return Ptr{rocprofiler_rocjpeg_api_args_t}(x + 8) + f === :retval && return Ptr{rocprofiler_rocjpeg_api_retval_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_rocjpeg_api_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_rocjpeg_api_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_rocjpeg_api_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_rocjpeg_api_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_rocjpeg_api_data_t, + private::Bool=false) + return (:size, :args, :retval, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_code_object_load_data_t + data::NTuple{88,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_code_object_load_data_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :code_object_id && return Ptr{UInt64}(x + 8) + f === + Symbol("union rocprofiler_callback_tracing_code_object_load_data_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/callback_tracing.h:145:5)") && + return Ptr{Cvoid}(x + 0) + f === :hsa_agent && return Ptr{hsa_agent_t}(x + 24) + f === :uri && return Ptr{Ptr{Cchar}}(x + 32) + f === :load_base && return Ptr{UInt64}(x + 40) + f === :load_size && return Ptr{UInt64}(x + 48) + f === :load_delta && return Ptr{Int64}(x + 56) + f === :storage_type && return Ptr{rocprofiler_code_object_storage_type_t}(x + 64) + f === + Symbol("union rocprofiler_callback_tracing_code_object_load_data_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/callback_tracing.h:173:5)") && + return Ptr{Cvoid}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_code_object_load_data_t, + f::Symbol) + r = Ref{rocprofiler_callback_tracing_code_object_load_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_code_object_load_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_code_object_load_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_code_object_load_data_t, + private::Bool=false) + return (:size, :code_object_id, + Symbol("union rocprofiler_callback_tracing_code_object_load_data_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/callback_tracing.h:145:5)"), + :hsa_agent, :uri, :load_base, :load_size, :load_delta, :storage_type, + Symbol("union rocprofiler_callback_tracing_code_object_load_data_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/rocprofiler-sdk/callback_tracing.h:173:5)"), + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_code_object_kernel_symbol_register_data_t + data::NTuple{88,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_code_object_kernel_symbol_register_data_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :kernel_id && return Ptr{UInt64}(x + 8) + f === :code_object_id && return Ptr{UInt64}(x + 16) + f === :kernel_name && return Ptr{Ptr{Cchar}}(x + 24) + f === :kernel_object && return Ptr{UInt64}(x + 32) + f === :kernarg_segment_size && return Ptr{UInt32}(x + 40) + f === :kernarg_segment_alignment && return Ptr{UInt32}(x + 44) + f === :group_segment_size && return Ptr{UInt32}(x + 48) + f === :private_segment_size && return Ptr{UInt32}(x + 52) + f === :sgpr_count && return Ptr{UInt32}(x + 56) + f === :arch_vgpr_count && return Ptr{UInt32}(x + 60) + f === :accum_vgpr_count && return Ptr{UInt32}(x + 64) + f === :kernel_code_entry_byte_offset && return Ptr{Int64}(x + 72) + f === :kernel_address && return Ptr{rocprofiler_address_t}(x + 80) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_code_object_kernel_symbol_register_data_t, + f::Symbol) + r = Ref{rocprofiler_callback_tracing_code_object_kernel_symbol_register_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_code_object_kernel_symbol_register_data_t}, + r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_code_object_kernel_symbol_register_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_code_object_kernel_symbol_register_data_t, + private::Bool=false) + return (:size, :kernel_id, :code_object_id, :kernel_name, :kernel_object, + :kernarg_segment_size, :kernarg_segment_alignment, :group_segment_size, + :private_segment_size, :sgpr_count, :arch_vgpr_count, :accum_vgpr_count, + :kernel_code_entry_byte_offset, :kernel_address, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_code_object_host_kernel_symbol_register_data_t + data::NTuple{120,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_code_object_host_kernel_symbol_register_data_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :host_function_id && return Ptr{UInt64}(x + 8) + f === :kernel_id && return Ptr{UInt64}(x + 16) + f === :code_object_id && return Ptr{UInt64}(x + 24) + f === :host_function && return Ptr{rocprofiler_address_t}(x + 32) + f === :modules && return Ptr{rocprofiler_address_t}(x + 40) + f === :device_function && return Ptr{Ptr{Cchar}}(x + 48) + f === :thread_limit && return Ptr{UInt32}(x + 56) + f === :thread_ids && return Ptr{rocprofiler_dim3_t}(x + 60) + f === :block_ids && return Ptr{rocprofiler_dim3_t}(x + 72) + f === :block_dims && return Ptr{rocprofiler_dim3_t}(x + 84) + f === :grid_dims && return Ptr{rocprofiler_dim3_t}(x + 96) + f === :workgroup_size && return Ptr{UInt64}(x + 112) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_code_object_host_kernel_symbol_register_data_t, + f::Symbol) + r = Ref{rocprofiler_callback_tracing_code_object_host_kernel_symbol_register_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_code_object_host_kernel_symbol_register_data_t}, + r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_code_object_host_kernel_symbol_register_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_code_object_host_kernel_symbol_register_data_t, + private::Bool=false) + return (:size, :host_function_id, :kernel_id, :code_object_id, :host_function, :modules, + :device_function, :thread_limit, :thread_ids, :block_ids, :block_dims, + :grid_dims, :workgroup_size, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_kernel_dispatch_data_t + size::UInt64 + start_timestamp::rocprofiler_timestamp_t + end_timestamp::rocprofiler_timestamp_t + dispatch_info::rocprofiler_kernel_dispatch_info_t +end + +struct rocprofiler_callback_tracing_memory_copy_data_t + data::NTuple{64,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_memory_copy_data_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 8) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 16) + f === :dst_agent_id && return Ptr{rocprofiler_agent_id_t}(x + 24) + f === :src_agent_id && return Ptr{rocprofiler_agent_id_t}(x + 32) + f === :bytes && return Ptr{UInt64}(x + 40) + f === :dst_address && return Ptr{rocprofiler_address_t}(x + 48) + f === :src_address && return Ptr{rocprofiler_address_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_memory_copy_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_memory_copy_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_memory_copy_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_memory_copy_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_memory_copy_data_t, + private::Bool=false) + return (:size, :start_timestamp, :end_timestamp, :dst_agent_id, :src_agent_id, :bytes, + :dst_address, :src_address, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_memory_allocation_data_t + data::NTuple{48,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_memory_allocation_data_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 8) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 16) + f === :agent_id && return Ptr{rocprofiler_agent_id_t}(x + 24) + f === :address && return Ptr{rocprofiler_address_t}(x + 32) + f === :allocation_size && return Ptr{UInt64}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_memory_allocation_data_t, + f::Symbol) + r = Ref{rocprofiler_callback_tracing_memory_allocation_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_memory_allocation_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_memory_allocation_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_memory_allocation_data_t, + private::Bool=false) + return (:size, :start_timestamp, :end_timestamp, :agent_id, :address, :allocation_size, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_scratch_memory_data_t + data::NTuple{56,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_scratch_memory_data_t}, + f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :agent_id && return Ptr{rocprofiler_agent_id_t}(x + 8) + f === :queue_id && return Ptr{rocprofiler_queue_id_t}(x + 16) + f === :flags && return Ptr{rocprofiler_scratch_alloc_flag_t}(x + 24) + f === :args_kind && return Ptr{hsa_amd_tool_event_kind_t}(x + 28) + f === :args && return Ptr{rocprofiler_scratch_memory_args_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_scratch_memory_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_scratch_memory_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_scratch_memory_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_scratch_memory_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_scratch_memory_data_t, + private::Bool=false) + return (:size, :agent_id, :queue_id, :flags, :args_kind, :args, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_callback_tracing_runtime_initialization_data_t + size::UInt64 + version::UInt64 + instance::UInt64 +end + +struct rocprofiler_callback_tracing_hip_stream_data_t + data::NTuple{24,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_callback_tracing_hip_stream_data_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :stream_id && return Ptr{rocprofiler_stream_id_t}(x + 8) + f === :stream_value && return Ptr{rocprofiler_address_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_callback_tracing_hip_stream_data_t, f::Symbol) + r = Ref{rocprofiler_callback_tracing_hip_stream_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_callback_tracing_hip_stream_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_callback_tracing_hip_stream_data_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_callback_tracing_hip_stream_data_t, + private::Bool=false) + return (:size, :stream_id, :stream_value, if private + fieldnames(typeof(x)) + else + () + end...) +end + +# typedef void ( * rocprofiler_callback_tracing_cb_t ) ( rocprofiler_callback_tracing_record_t record , rocprofiler_user_data_t * user_data , void * callback_data ) +const rocprofiler_callback_tracing_cb_t = Ptr{Cvoid} + +# typedef int ( * rocprofiler_callback_tracing_kind_cb_t ) ( rocprofiler_callback_tracing_kind_t kind , void * data ) +const rocprofiler_callback_tracing_kind_cb_t = Ptr{Cvoid} + +# typedef int ( * rocprofiler_callback_tracing_kind_operation_cb_t ) ( rocprofiler_callback_tracing_kind_t kind , rocprofiler_tracing_operation_t operation , void * data ) +const rocprofiler_callback_tracing_kind_operation_cb_t = Ptr{Cvoid} + +# typedef int ( * rocprofiler_callback_tracing_operation_args_cb_t ) ( rocprofiler_callback_tracing_kind_t kind , rocprofiler_tracing_operation_t operation , uint32_t arg_number , const void * const arg_value_addr , int32_t arg_indirection_count , const char * arg_type , const char * arg_name , const char * arg_value_str , int32_t arg_dereference_count , void * data ) +const rocprofiler_callback_tracing_operation_args_cb_t = Ptr{Cvoid} + +function rocprofiler_configure_callback_tracing_service(context_id, kind, operations, + operations_count, callback, + callback_args) + @ccall librocprofiler_sdk_tool.rocprofiler_configure_callback_tracing_service(context_id::rocprofiler_context_id_t, + kind::rocprofiler_callback_tracing_kind_t, + operations::Ptr{rocprofiler_tracing_operation_t}, + operations_count::Csize_t, + callback::rocprofiler_callback_tracing_cb_t, + callback_args::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_query_callback_tracing_kind_name(kind, name, name_len) + @ccall librocprofiler_sdk_tool.rocprofiler_query_callback_tracing_kind_name(kind::rocprofiler_callback_tracing_kind_t, + name::Ptr{Ptr{Cchar}}, + name_len::Ptr{UInt64})::rocprofiler_status_t +end + +function rocprofiler_query_callback_tracing_kind_operation_name(kind, operation, name, + name_len) + @ccall librocprofiler_sdk_tool.rocprofiler_query_callback_tracing_kind_operation_name(kind::rocprofiler_callback_tracing_kind_t, + operation::rocprofiler_tracing_operation_t, + name::Ptr{Ptr{Cchar}}, + name_len::Ptr{UInt64})::rocprofiler_status_t +end + +function rocprofiler_iterate_callback_tracing_kinds(callback, data) + @ccall librocprofiler_sdk_tool.rocprofiler_iterate_callback_tracing_kinds(callback::rocprofiler_callback_tracing_kind_cb_t, + data::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_iterate_callback_tracing_kind_operations(kind, callback, data) + @ccall librocprofiler_sdk_tool.rocprofiler_iterate_callback_tracing_kind_operations(kind::rocprofiler_callback_tracing_kind_t, + callback::rocprofiler_callback_tracing_kind_operation_cb_t, + data::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_iterate_callback_tracing_kind_operation_args(record, callback, + max_dereference_count, + user_data) + @ccall librocprofiler_sdk_tool.rocprofiler_iterate_callback_tracing_kind_operation_args(record::rocprofiler_callback_tracing_record_t, + callback::rocprofiler_callback_tracing_operation_args_cb_t, + max_dereference_count::Int32, + user_data::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_create_context(context_id) + @ccall librocprofiler_sdk_tool.rocprofiler_create_context(context_id::Ptr{rocprofiler_context_id_t})::rocprofiler_status_t +end + +function rocprofiler_start_context(context_id) + @ccall librocprofiler_sdk_tool.rocprofiler_start_context(context_id::rocprofiler_context_id_t)::rocprofiler_status_t +end + +function rocprofiler_stop_context(context_id) + @ccall librocprofiler_sdk_tool.rocprofiler_stop_context(context_id::rocprofiler_context_id_t)::rocprofiler_status_t +end + +function rocprofiler_context_is_active(context_id, status) + @ccall librocprofiler_sdk_tool.rocprofiler_context_is_active(context_id::rocprofiler_context_id_t, + status::Ptr{Cint})::rocprofiler_status_t +end + +function rocprofiler_context_is_valid(context_id, status) + @ccall librocprofiler_sdk_tool.rocprofiler_context_is_valid(context_id::rocprofiler_context_id_t, + status::Ptr{Cint})::rocprofiler_status_t +end + +function rocprofiler_create_counter_config(agent_id, counters_list, counters_count, + config_id) + @ccall librocprofiler_sdk_tool.rocprofiler_create_counter_config(agent_id::rocprofiler_agent_id_t, + counters_list::Ptr{rocprofiler_counter_id_t}, + counters_count::Csize_t, + config_id::Ptr{rocprofiler_counter_config_id_t})::rocprofiler_status_t +end + +function rocprofiler_destroy_counter_config(config_id) + @ccall librocprofiler_sdk_tool.rocprofiler_destroy_counter_config(config_id::rocprofiler_counter_config_id_t)::rocprofiler_status_t +end + +# typedef rocprofiler_status_t ( * rocprofiler_available_dimensions_cb_t ) ( rocprofiler_counter_id_t id , const rocprofiler_counter_record_dimension_info_t * dim_info , size_t num_dims , void * user_data ) +const rocprofiler_available_dimensions_cb_t = Ptr{Cvoid} + +function rocprofiler_iterate_counter_dimensions(id, info_cb, user_data) + @ccall librocprofiler_sdk_tool.rocprofiler_iterate_counter_dimensions(id::rocprofiler_counter_id_t, + info_cb::rocprofiler_available_dimensions_cb_t, + user_data::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_query_counter_instance_count(agent_id, counter_id, instance_count) + @ccall librocprofiler_sdk_tool.rocprofiler_query_counter_instance_count(agent_id::rocprofiler_agent_id_t, + counter_id::rocprofiler_counter_id_t, + instance_count::Ptr{Csize_t})::rocprofiler_status_t +end + +struct rocprofiler_counter_info_v0_t + data::NTuple{48,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_counter_info_v0_t}, f::Symbol) + f === :id && return Ptr{rocprofiler_counter_id_t}(x + 0) + f === :name && return Ptr{Ptr{Cchar}}(x + 8) + f === :description && return Ptr{Ptr{Cchar}}(x + 16) + f === :block && return Ptr{Ptr{Cchar}}(x + 24) + f === :expression && return Ptr{Ptr{Cchar}}(x + 32) + f === :is_constant && return (Ptr{UInt8}(x + 40), 0, 1) + f === :is_derived && return (Ptr{UInt8}(x + 40), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_counter_info_v0_t, f::Symbol) + r = Ref{rocprofiler_counter_info_v0_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_counter_info_v0_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_counter_info_v0_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_counter_info_v0_t, private::Bool=false) + return (:id, :name, :description, :block, :expression, :is_constant, :is_derived, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_counter_info_v1_t + data::NTuple{80,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_counter_info_v1_t}, f::Symbol) + f === :id && return Ptr{rocprofiler_counter_id_t}(x + 0) + f === :name && return Ptr{Ptr{Cchar}}(x + 8) + f === :description && return Ptr{Ptr{Cchar}}(x + 16) + f === :block && return Ptr{Ptr{Cchar}}(x + 24) + f === :expression && return Ptr{Ptr{Cchar}}(x + 32) + f === :is_constant && return (Ptr{UInt8}(x + 40), 0, 1) + f === :is_derived && return (Ptr{UInt8}(x + 40), 1, 1) + f === :dimensions_count && return Ptr{UInt64}(x + 48) + f === :dimensions && + return Ptr{Ptr{rocprofiler_counter_record_dimension_info_t}}(x + 56) + f === :instance_ids_count && return Ptr{UInt64}(x + 64) + f === :instance_ids && return Ptr{Ptr{rocprofiler_counter_instance_id_t}}(x + 72) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_counter_info_v1_t, f::Symbol) + r = Ref{rocprofiler_counter_info_v1_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_counter_info_v1_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_counter_info_v1_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_counter_info_v1_t, private::Bool=false) + return (:id, :name, :description, :block, :expression, :is_constant, :is_derived, + :dimensions_count, :dimensions, :instance_ids_count, :instance_ids, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +function rocprofiler_query_record_counter_id(id, counter_id) + @ccall librocprofiler_sdk_tool.rocprofiler_query_record_counter_id(id::rocprofiler_counter_instance_id_t, + counter_id::Ptr{rocprofiler_counter_id_t})::rocprofiler_status_t +end + +function rocprofiler_query_record_dimension_position(id, dim, pos) + @ccall librocprofiler_sdk_tool.rocprofiler_query_record_dimension_position(id::rocprofiler_counter_instance_id_t, + dim::rocprofiler_counter_dimension_id_t, + pos::Ptr{Csize_t})::rocprofiler_status_t +end + +function rocprofiler_query_counter_info(counter_id, version, info) + @ccall librocprofiler_sdk_tool.rocprofiler_query_counter_info(counter_id::rocprofiler_counter_id_t, + version::rocprofiler_counter_info_version_id_t, + info::Ptr{Cvoid})::rocprofiler_status_t +end + +# typedef rocprofiler_status_t ( * rocprofiler_available_counters_cb_t ) ( rocprofiler_agent_id_t agent_id , rocprofiler_counter_id_t * counters , size_t num_counters , void * user_data ) +const rocprofiler_available_counters_cb_t = Ptr{Cvoid} + +function rocprofiler_iterate_agent_supported_counters(agent_id, cb, user_data) + @ccall librocprofiler_sdk_tool.rocprofiler_iterate_agent_supported_counters(agent_id::rocprofiler_agent_id_t, + cb::rocprofiler_available_counters_cb_t, + user_data::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_create_counter(name, name_len, expr, expr_len, description, + description_len, agent, counter_id) + @ccall librocprofiler_sdk_tool.rocprofiler_create_counter(name::Ptr{Cchar}, + name_len::Csize_t, + expr::Ptr{Cchar}, + expr_len::Csize_t, + description::Ptr{Cchar}, + description_len::Csize_t, + agent::rocprofiler_agent_id_t, + counter_id::Ptr{rocprofiler_counter_id_t})::rocprofiler_status_t +end + +# typedef rocprofiler_status_t ( * rocprofiler_device_counting_agent_cb_t ) ( rocprofiler_context_id_t context_id , rocprofiler_counter_config_id_t config_id ) +const rocprofiler_device_counting_agent_cb_t = Ptr{Cvoid} + +# typedef void ( * rocprofiler_device_counting_service_cb_t ) ( rocprofiler_context_id_t context_id , rocprofiler_agent_id_t agent_id , rocprofiler_device_counting_agent_cb_t set_config , void * user_data ) +const rocprofiler_device_counting_service_cb_t = Ptr{Cvoid} + +function rocprofiler_configure_device_counting_service(context_id, buffer_id, agent_id, cb, + user_data) + @ccall librocprofiler_sdk_tool.rocprofiler_configure_device_counting_service(context_id::rocprofiler_context_id_t, + buffer_id::rocprofiler_buffer_id_t, + agent_id::rocprofiler_agent_id_t, + cb::rocprofiler_device_counting_service_cb_t, + user_data::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_sample_device_counting_service(context_id, user_data, flags, + output_records, rec_count) + @ccall librocprofiler_sdk_tool.rocprofiler_sample_device_counting_service(context_id::rocprofiler_context_id_t, + user_data::rocprofiler_user_data_t, + flags::rocprofiler_counter_flag_t, + output_records::Ptr{rocprofiler_counter_record_t}, + rec_count::Ptr{Csize_t})::rocprofiler_status_t +end + +const rocprofiler_agent_set_profile_callback_t = rocprofiler_device_counting_agent_cb_t + +struct rocprofiler_dispatch_counting_service_data_t + data::NTuple{168,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_dispatch_counting_service_data_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :correlation_id && return Ptr{rocprofiler_async_correlation_id_t}(x + 8) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 24) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 32) + f === :dispatch_info && return Ptr{rocprofiler_kernel_dispatch_info_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_dispatch_counting_service_data_t, f::Symbol) + r = Ref{rocprofiler_dispatch_counting_service_data_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_dispatch_counting_service_data_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_dispatch_counting_service_data_t}, f::Symbol, + v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_dispatch_counting_service_data_t, + private::Bool=false) + return (:size, :correlation_id, :start_timestamp, :end_timestamp, :dispatch_info, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_dispatch_counting_service_record_t + data::NTuple{176,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_dispatch_counting_service_record_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :num_records && return Ptr{UInt64}(x + 8) + f === :correlation_id && return Ptr{rocprofiler_async_correlation_id_t}(x + 16) + f === :start_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 32) + f === :end_timestamp && return Ptr{rocprofiler_timestamp_t}(x + 40) + f === :dispatch_info && return Ptr{rocprofiler_kernel_dispatch_info_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_dispatch_counting_service_record_t, f::Symbol) + r = Ref{rocprofiler_dispatch_counting_service_record_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_dispatch_counting_service_record_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{rocprofiler_dispatch_counting_service_record_t}, + f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::rocprofiler_dispatch_counting_service_record_t, + private::Bool=false) + return (:size, :num_records, :correlation_id, :start_timestamp, :end_timestamp, + :dispatch_info, if private + fieldnames(typeof(x)) + else + () + end...) +end + +# typedef void ( * rocprofiler_dispatch_counting_service_cb_t ) ( rocprofiler_dispatch_counting_service_data_t dispatch_data , rocprofiler_counter_config_id_t * config , rocprofiler_user_data_t * user_data , void * callback_data_args ) +const rocprofiler_dispatch_counting_service_cb_t = Ptr{Cvoid} + +# typedef void ( * rocprofiler_dispatch_counting_record_cb_t ) ( rocprofiler_dispatch_counting_service_data_t dispatch_data , rocprofiler_counter_record_t * record_data , size_t record_count , rocprofiler_user_data_t user_data , void * callback_data_args ) +const rocprofiler_dispatch_counting_record_cb_t = Ptr{Cvoid} + +function rocprofiler_configure_buffer_dispatch_counting_service(context_id, buffer_id, + callback, + callback_data_args) + @ccall librocprofiler_sdk_tool.rocprofiler_configure_buffer_dispatch_counting_service(context_id::rocprofiler_context_id_t, + buffer_id::rocprofiler_buffer_id_t, + callback::rocprofiler_dispatch_counting_service_cb_t, + callback_data_args::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_configure_callback_dispatch_counting_service(context_id, + dispatch_callback, + dispatch_callback_args, + record_callback, + record_callback_args) + @ccall librocprofiler_sdk_tool.rocprofiler_configure_callback_dispatch_counting_service(context_id::rocprofiler_context_id_t, + dispatch_callback::rocprofiler_dispatch_counting_service_cb_t, + dispatch_callback_args::Ptr{Cvoid}, + record_callback::rocprofiler_dispatch_counting_record_cb_t, + record_callback_args::Ptr{Cvoid})::rocprofiler_status_t +end + +@cenum rocprofiler_external_correlation_id_request_kind_t::UInt32 begin + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_NONE = 0 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_HSA_CORE_API = 1 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_HSA_AMD_EXT_API = 2 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_HSA_IMAGE_EXT_API = 3 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_HSA_FINALIZE_EXT_API = 4 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_HIP_RUNTIME_API = 5 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_HIP_COMPILER_API = 6 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_MARKER_CORE_API = 7 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_MARKER_CONTROL_API = 8 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_MARKER_NAME_API = 9 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_MEMORY_COPY = 10 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_KERNEL_DISPATCH = 11 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_SCRATCH_MEMORY = 12 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_RCCL_API = 13 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_OMPT = 14 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_MEMORY_ALLOCATION = 15 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_ROCDECODE_API = 16 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_ROCJPEG_API = 17 + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_LAST = 18 +end + +# typedef int ( * rocprofiler_external_correlation_id_request_cb_t ) ( rocprofiler_thread_id_t thread_id , rocprofiler_context_id_t context_id , rocprofiler_external_correlation_id_request_kind_t kind , rocprofiler_tracing_operation_t operation , uint64_t internal_corr_id_value , rocprofiler_user_data_t * external_corr_id_value , void * data ) +const rocprofiler_external_correlation_id_request_cb_t = Ptr{Cvoid} + +function rocprofiler_configure_external_correlation_id_request_service(context_id, kinds, + kinds_count, + callback, + callback_args) + @ccall librocprofiler_sdk_tool.rocprofiler_configure_external_correlation_id_request_service(context_id::rocprofiler_context_id_t, + kinds::Ptr{rocprofiler_external_correlation_id_request_kind_t}, + kinds_count::Csize_t, + callback::rocprofiler_external_correlation_id_request_cb_t, + callback_args::Ptr{Cvoid})::rocprofiler_status_t +end + +function rocprofiler_query_external_correlation_id_request_kind_name(kind, name, name_len) + @ccall librocprofiler_sdk_tool.rocprofiler_query_external_correlation_id_request_kind_name(kind::rocprofiler_external_correlation_id_request_kind_t, + name::Ptr{Ptr{Cchar}}, + name_len::Ptr{UInt64})::rocprofiler_status_t +end + +function rocprofiler_push_external_correlation_id(context, tid, external_correlation_id) + @ccall librocprofiler_sdk_tool.rocprofiler_push_external_correlation_id(context::rocprofiler_context_id_t, + tid::rocprofiler_thread_id_t, + external_correlation_id::rocprofiler_user_data_t)::rocprofiler_status_t +end + +function rocprofiler_pop_external_correlation_id(context, tid, external_correlation_id) + @ccall librocprofiler_sdk_tool.rocprofiler_pop_external_correlation_id(context::rocprofiler_context_id_t, + tid::rocprofiler_thread_id_t, + external_correlation_id::Ptr{rocprofiler_user_data_t})::rocprofiler_status_t +end + +# typedef void ( * rocprofiler_intercept_library_cb_t ) ( rocprofiler_intercept_table_t type , uint64_t lib_version , uint64_t lib_instance , void * * tables , uint64_t num_tables , void * user_data ) +const rocprofiler_intercept_library_cb_t = Ptr{Cvoid} + +function rocprofiler_query_intercept_table_name(kind, name, name_len) + @ccall librocprofiler_sdk_tool.rocprofiler_query_intercept_table_name(kind::rocprofiler_intercept_table_t, + name::Ptr{Ptr{Cchar}}, + name_len::Ptr{UInt64})::rocprofiler_status_t +end + +function rocprofiler_at_intercept_table_registration(callback, libs, data) + @ccall librocprofiler_sdk_tool.rocprofiler_at_intercept_table_registration(callback::rocprofiler_intercept_library_cb_t, + libs::Cint, + data::Ptr{Cvoid})::rocprofiler_status_t +end + +# typedef void ( * rocprofiler_internal_thread_library_cb_t ) ( rocprofiler_runtime_library_t , void * ) +const rocprofiler_internal_thread_library_cb_t = Ptr{Cvoid} + +function rocprofiler_at_internal_thread_create(precreate, postcreate, libs, data) + @ccall librocprofiler_sdk_tool.rocprofiler_at_internal_thread_create(precreate::rocprofiler_internal_thread_library_cb_t, + postcreate::rocprofiler_internal_thread_library_cb_t, + libs::Cint, + data::Ptr{Cvoid})::rocprofiler_status_t +end + +struct rocprofiler_callback_thread_t + handle::UInt64 +end + +function rocprofiler_create_callback_thread(cb_thread_id) + @ccall librocprofiler_sdk_tool.rocprofiler_create_callback_thread(cb_thread_id::Ptr{rocprofiler_callback_thread_t})::rocprofiler_status_t +end + +function rocprofiler_assign_callback_thread(buffer_id, cb_thread_id) + @ccall librocprofiler_sdk_tool.rocprofiler_assign_callback_thread(buffer_id::rocprofiler_buffer_id_t, + cb_thread_id::rocprofiler_callback_thread_t)::rocprofiler_status_t +end + +function rocprofiler_configure_pc_sampling_service(context_id, agent_id, method, unit, + interval, buffer_id, flags) + @ccall librocprofiler_sdk_tool.rocprofiler_configure_pc_sampling_service(context_id::rocprofiler_context_id_t, + agent_id::rocprofiler_agent_id_t, + method::rocprofiler_pc_sampling_method_t, + unit::rocprofiler_pc_sampling_unit_t, + interval::UInt64, + buffer_id::rocprofiler_buffer_id_t, + flags::Cint)::rocprofiler_status_t +end + +@cenum rocprofiler_pc_sampling_configuration_flags_t::UInt32 begin + ROCPROFILER_PC_SAMPLING_CONFIGURATION_FLAGS_NONE = 0 + ROCPROFILER_PC_SAMPLING_CONFIGURATION_FLAGS_INTERVAL_POW2 = 1 + ROCPROFILER_PC_SAMPLING_CONFIGURATION_FLAGS_LAST = 2 +end + +struct rocprofiler_pc_sampling_configuration_t + size::UInt64 + method::rocprofiler_pc_sampling_method_t + unit::rocprofiler_pc_sampling_unit_t + min_interval::Csize_t + max_interval::Csize_t + flags::UInt64 +end + +# typedef rocprofiler_status_t ( * rocprofiler_available_pc_sampling_configurations_cb_t ) ( const rocprofiler_pc_sampling_configuration_t * configs , size_t num_config , void * user_data ) +const rocprofiler_available_pc_sampling_configurations_cb_t = Ptr{Cvoid} + +function rocprofiler_query_pc_sampling_agent_configurations(agent_id, cb, user_data) + @ccall librocprofiler_sdk_tool.rocprofiler_query_pc_sampling_agent_configurations(agent_id::rocprofiler_agent_id_t, + cb::rocprofiler_available_pc_sampling_configurations_cb_t, + user_data::Ptr{Cvoid})::rocprofiler_status_t +end + +struct rocprofiler_pc_sampling_hw_id_v0_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_pc_sampling_hw_id_v0_t}, f::Symbol) + f === :chiplet && return (Ptr{UInt64}(x + 0), 0, 6) + f === :wave_id && return (Ptr{UInt64}(x + 0), 6, 7) + f === :simd_id && return (Ptr{UInt64}(x + 0), 13, 2) + f === :pipe_id && return (Ptr{UInt64}(x + 0), 15, 4) + f === :cu_or_wgp_id && return (Ptr{UInt64}(x + 0), 19, 4) + f === :shader_array_id && return (Ptr{UInt64}(x + 0), 23, 1) + f === :shader_engine_id && return (Ptr{UInt64}(x + 0), 24, 5) + f === :workgroup_id && return (Ptr{UInt64}(x + 0), 29, 7) + f === :vm_id && return (Ptr{UInt64}(x + 4), 4, 6) + f === :queue_id && return (Ptr{UInt64}(x + 4), 10, 4) + f === :microengine_id && return (Ptr{UInt64}(x + 4), 14, 2) + f === :reserved0 && return (Ptr{UInt64}(x + 4), 16, 16) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_pc_sampling_hw_id_v0_t, f::Symbol) + r = Ref{rocprofiler_pc_sampling_hw_id_v0_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_pc_sampling_hw_id_v0_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_pc_sampling_hw_id_v0_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_pc_sampling_hw_id_v0_t, private::Bool=false) + return (:chiplet, :wave_id, :simd_id, :pipe_id, :cu_or_wgp_id, :shader_array_id, + :shader_engine_id, :workgroup_id, :vm_id, :queue_id, :microengine_id, + :reserved0, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_pc_t + code_object_id::UInt64 + code_object_offset::UInt64 +end + +struct rocprofiler_pc_sampling_record_host_trap_v0_t + data::NTuple{88,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_pc_sampling_record_host_trap_v0_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :hw_id && return Ptr{rocprofiler_pc_sampling_hw_id_v0_t}(x + 8) + f === :pc && return Ptr{rocprofiler_pc_t}(x + 16) + f === :exec_mask && return Ptr{UInt64}(x + 32) + f === :timestamp && return Ptr{UInt64}(x + 40) + f === :dispatch_id && return Ptr{UInt64}(x + 48) + f === :correlation_id && return Ptr{rocprofiler_async_correlation_id_t}(x + 56) + f === :workgroup_id && return Ptr{rocprofiler_dim3_t}(x + 72) + f === :wave_in_group && return (Ptr{UInt32}(x + 84), 0, 8) + f === :reserved0 && return (Ptr{UInt32}(x + 84), 8, 24) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_pc_sampling_record_host_trap_v0_t, f::Symbol) + r = Ref{rocprofiler_pc_sampling_record_host_trap_v0_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_pc_sampling_record_host_trap_v0_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_pc_sampling_record_host_trap_v0_t}, f::Symbol, + v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_pc_sampling_record_host_trap_v0_t, + private::Bool=false) + return (:size, :hw_id, :pc, :exec_mask, :timestamp, :dispatch_id, :correlation_id, + :workgroup_id, :wave_in_group, :reserved0, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_pc_sampling_record_stochastic_header_t + data::NTuple{1,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_pc_sampling_record_stochastic_header_t}, + f::Symbol) + f === :has_memory_counter && return (Ptr{UInt8}(x + 0), 0, 1) + f === :reserved_type && return (Ptr{UInt8}(x + 0), 1, 7) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_pc_sampling_record_stochastic_header_t, f::Symbol) + r = Ref{rocprofiler_pc_sampling_record_stochastic_header_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_pc_sampling_record_stochastic_header_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_pc_sampling_record_stochastic_header_t}, + f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_pc_sampling_record_stochastic_header_t, + private::Bool=false) + return (:has_memory_counter, :reserved_type, if private + fieldnames(typeof(x)) + else + () + end...) +end + +@cenum rocprofiler_pc_sampling_instruction_type_t::UInt32 begin + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_NONE = 0 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_VALU = 1 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_MATRIX = 2 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_SCALAR = 3 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_TEX = 4 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_LDS = 5 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_LDS_DIRECT = 6 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_FLAT = 7 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_EXPORT = 8 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_MESSAGE = 9 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_BARRIER = 10 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_BRANCH_NOT_TAKEN = 11 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_BRANCH_TAKEN = 12 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_JUMP = 13 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_OTHER = 14 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_NO_INST = 15 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_DUAL_VALU = 16 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_TYPE_LAST = 17 +end + +@cenum rocprofiler_pc_sampling_instruction_not_issued_reason_t::UInt32 begin + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_NONE = 0 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_NO_INSTRUCTION_AVAILABLE = 1 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_ALU_DEPENDENCY = 2 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_WAITCNT = 3 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_INTERNAL_INSTRUCTION = 4 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_BARRIER_WAIT = 5 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_ARBITER_NOT_WIN = 6 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_ARBITER_WIN_EX_STALL = 7 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_OTHER_WAIT = 8 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_SLEEP_WAIT = 9 + ROCPROFILER_PC_SAMPLING_INSTRUCTION_NOT_ISSUED_REASON_LAST = 10 +end + +struct rocprofiler_pc_sampling_snapshot_v0_t + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_pc_sampling_snapshot_v0_t}, f::Symbol) + f === :reason_not_issued && return (Ptr{UInt32}(x + 0), 0, 4) + f === :reserved0 && return (Ptr{UInt32}(x + 0), 4, 1) + f === :arb_state_issue_valu && return (Ptr{UInt32}(x + 0), 5, 1) + f === :arb_state_issue_matrix && return (Ptr{UInt32}(x + 0), 6, 1) + f === :arb_state_issue_lds && return (Ptr{UInt32}(x + 0), 7, 1) + f === :arb_state_issue_lds_direct && return (Ptr{UInt32}(x + 0), 8, 1) + f === :arb_state_issue_scalar && return (Ptr{UInt32}(x + 0), 9, 1) + f === :arb_state_issue_vmem_tex && return (Ptr{UInt32}(x + 0), 10, 1) + f === :arb_state_issue_flat && return (Ptr{UInt32}(x + 0), 11, 1) + f === :arb_state_issue_exp && return (Ptr{UInt32}(x + 0), 12, 1) + f === :arb_state_issue_misc && return (Ptr{UInt32}(x + 0), 13, 1) + f === :arb_state_issue_brmsg && return (Ptr{UInt32}(x + 0), 14, 1) + f === :arb_state_issue_reserved && return (Ptr{UInt32}(x + 0), 15, 1) + f === :arb_state_stall_valu && return (Ptr{UInt32}(x + 0), 16, 1) + f === :arb_state_stall_matrix && return (Ptr{UInt32}(x + 0), 17, 1) + f === :arb_state_stall_lds && return (Ptr{UInt32}(x + 0), 18, 1) + f === :arb_state_stall_lds_direct && return (Ptr{UInt32}(x + 0), 19, 1) + f === :arb_state_stall_scalar && return (Ptr{UInt32}(x + 0), 20, 1) + f === :arb_state_stall_vmem_tex && return (Ptr{UInt32}(x + 0), 21, 1) + f === :arb_state_stall_flat && return (Ptr{UInt32}(x + 0), 22, 1) + f === :arb_state_stall_exp && return (Ptr{UInt32}(x + 0), 23, 1) + f === :arb_state_stall_misc && return (Ptr{UInt32}(x + 0), 24, 1) + f === :arb_state_stall_brmsg && return (Ptr{UInt32}(x + 0), 25, 1) + f === :arb_state_state_reserved && return (Ptr{UInt32}(x + 0), 26, 1) + f === :dual_issue_valu && return (Ptr{UInt32}(x + 0), 27, 1) + f === :reserved1 && return (Ptr{UInt32}(x + 0), 28, 1) + f === :reserved2 && return (Ptr{UInt32}(x + 0), 29, 3) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_pc_sampling_snapshot_v0_t, f::Symbol) + r = Ref{rocprofiler_pc_sampling_snapshot_v0_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_pc_sampling_snapshot_v0_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_pc_sampling_snapshot_v0_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_pc_sampling_snapshot_v0_t, private::Bool=false) + return (:reason_not_issued, :reserved0, :arb_state_issue_valu, :arb_state_issue_matrix, + :arb_state_issue_lds, :arb_state_issue_lds_direct, :arb_state_issue_scalar, + :arb_state_issue_vmem_tex, :arb_state_issue_flat, :arb_state_issue_exp, + :arb_state_issue_misc, :arb_state_issue_brmsg, :arb_state_issue_reserved, + :arb_state_stall_valu, :arb_state_stall_matrix, :arb_state_stall_lds, + :arb_state_stall_lds_direct, :arb_state_stall_scalar, :arb_state_stall_vmem_tex, + :arb_state_stall_flat, :arb_state_stall_exp, :arb_state_stall_misc, + :arb_state_stall_brmsg, :arb_state_state_reserved, :dual_issue_valu, :reserved1, + :reserved2, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_pc_sampling_memory_counters_t + data::NTuple{4,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_pc_sampling_memory_counters_t}, f::Symbol) + f === :load_cnt && return (Ptr{UInt32}(x + 0), 0, 6) + f === :store_cnt && return (Ptr{UInt32}(x + 0), 6, 6) + f === :bvh_cnt && return (Ptr{UInt32}(x + 0), 12, 3) + f === :sample_cnt && return (Ptr{UInt32}(x + 0), 15, 6) + f === :ds_cnt && return (Ptr{UInt32}(x + 0), 21, 6) + f === :km_cnt && return (Ptr{UInt32}(x + 0), 27, 5) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_pc_sampling_memory_counters_t, f::Symbol) + r = Ref{rocprofiler_pc_sampling_memory_counters_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_pc_sampling_memory_counters_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_pc_sampling_memory_counters_t}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_pc_sampling_memory_counters_t, + private::Bool=false) + return (:load_cnt, :store_cnt, :bvh_cnt, :sample_cnt, :ds_cnt, :km_cnt, + if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_pc_sampling_record_stochastic_v0_t + data::NTuple{104,UInt8} +end + +function Base.getproperty(x::Ptr{rocprofiler_pc_sampling_record_stochastic_v0_t}, f::Symbol) + f === :size && return Ptr{UInt64}(x + 0) + f === :flags && return Ptr{rocprofiler_pc_sampling_record_stochastic_header_t}(x + 8) + f === :wave_in_group && return Ptr{UInt8}(x + 9) + f === :wave_issued && return (Ptr{UInt8}(x + 8), 16, 1) + f === :inst_type && return (Ptr{UInt8}(x + 8), 17, 5) + f === :reserved && return (Ptr{UInt8}(x + 8), 22, 2) + f === :hw_id && return Ptr{rocprofiler_pc_sampling_hw_id_v0_t}(x + 16) + f === :pc && return Ptr{rocprofiler_pc_t}(x + 24) + f === :exec_mask && return Ptr{UInt64}(x + 40) + f === :workgroup_id && return Ptr{rocprofiler_dim3_t}(x + 48) + f === :wave_count && return Ptr{UInt32}(x + 60) + f === :timestamp && return Ptr{UInt64}(x + 64) + f === :dispatch_id && return Ptr{UInt64}(x + 72) + f === :correlation_id && return Ptr{rocprofiler_async_correlation_id_t}(x + 80) + f === :snapshot && return Ptr{rocprofiler_pc_sampling_snapshot_v0_t}(x + 96) + f === :memory_counters && return Ptr{rocprofiler_pc_sampling_memory_counters_t}(x + 100) + return getfield(x, f) +end + +function Base.getproperty(x::rocprofiler_pc_sampling_record_stochastic_v0_t, f::Symbol) + r = Ref{rocprofiler_pc_sampling_record_stochastic_v0_t}(x) + ptr = Base.unsafe_convert(Ptr{rocprofiler_pc_sampling_record_stochastic_v0_t}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{rocprofiler_pc_sampling_record_stochastic_v0_t}, + f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function Base.propertynames(x::rocprofiler_pc_sampling_record_stochastic_v0_t, + private::Bool=false) + return (:size, :flags, :wave_in_group, :wave_issued, :inst_type, :reserved, :hw_id, :pc, + :exec_mask, :workgroup_id, :wave_count, :timestamp, :dispatch_id, + :correlation_id, :snapshot, :memory_counters, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct rocprofiler_pc_sampling_record_invalid_t + size::UInt64 +end + +function rocprofiler_get_pc_sampling_instruction_type_name(instruction_type) + @ccall librocprofiler_sdk_tool.rocprofiler_get_pc_sampling_instruction_type_name(instruction_type::rocprofiler_pc_sampling_instruction_type_t)::Ptr{Cchar} +end + +function rocprofiler_get_pc_sampling_instruction_not_issued_reason_name(not_issued_reason) + @ccall librocprofiler_sdk_tool.rocprofiler_get_pc_sampling_instruction_not_issued_reason_name(not_issued_reason::rocprofiler_pc_sampling_instruction_not_issued_reason_t)::Ptr{Cchar} +end + +function rocprofiler_create_profile_config(agent_id, counters_list, counters_count, + config_id) + @ccall librocprofiler_sdk_tool.rocprofiler_create_profile_config(agent_id::rocprofiler_agent_id_t, + counters_list::Ptr{rocprofiler_counter_id_t}, + counters_count::Csize_t, + config_id::Ptr{rocprofiler_profile_config_id_t})::rocprofiler_status_t +end + +function rocprofiler_destroy_profile_config(config_id) + @ccall librocprofiler_sdk_tool.rocprofiler_destroy_profile_config(config_id::rocprofiler_profile_config_id_t)::rocprofiler_status_t +end + +function rocprofiler_get_timestamp(ts) + @ccall librocprofiler_sdk_tool.rocprofiler_get_timestamp(ts::Ptr{rocprofiler_timestamp_t})::rocprofiler_status_t +end + +function rocprofiler_get_thread_id(tid) + @ccall librocprofiler_sdk_tool.rocprofiler_get_thread_id(tid::Ptr{rocprofiler_thread_id_t})::rocprofiler_status_t +end + +function rocprofiler_get_status_name(status) + @ccall librocprofiler_sdk_tool.rocprofiler_get_status_name(status::rocprofiler_status_t)::Ptr{Cchar} +end + +function rocprofiler_get_status_string(status) + @ccall librocprofiler_sdk_tool.rocprofiler_get_status_string(status::rocprofiler_status_t)::Ptr{Cchar} +end + +struct var"##Ctag#287" + parser_handle::Ptr{RocdecVideoParser} + params::Ptr{RocdecParserParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#287"}, f::Symbol) + f === :parser_handle && return Ptr{Ptr{RocdecVideoParser}}(x + 0) + f === :params && return Ptr{Ptr{RocdecParserParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#287", f::Symbol) + r = Ref{var"##Ctag#287"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#287"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#287"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#288" + parser_handle::RocdecVideoParser + packet::Ptr{RocdecSourceDataPacket} +end +function Base.getproperty(x::Ptr{var"##Ctag#288"}, f::Symbol) + f === :parser_handle && return Ptr{RocdecVideoParser}(x + 0) + f === :packet && return Ptr{Ptr{RocdecSourceDataPacket}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#288", f::Symbol) + r = Ref{var"##Ctag#288"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#288"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#288"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#289" + parser_handle::RocdecVideoParser +end +function Base.getproperty(x::Ptr{var"##Ctag#289"}, f::Symbol) + f === :parser_handle && return Ptr{RocdecVideoParser}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#289", f::Symbol) + r = Ref{var"##Ctag#289"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#289"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#289"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#290" + decoder_handle::Ptr{rocDecDecoderHandle} + decoder_create_info::Ptr{RocDecoderCreateInfo} +end +function Base.getproperty(x::Ptr{var"##Ctag#290"}, f::Symbol) + f === :decoder_handle && return Ptr{Ptr{rocDecDecoderHandle}}(x + 0) + f === :decoder_create_info && return Ptr{Ptr{RocDecoderCreateInfo}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#290", f::Symbol) + r = Ref{var"##Ctag#290"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#290"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#290"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#291" + decoder_handle::rocDecDecoderHandle +end +function Base.getproperty(x::Ptr{var"##Ctag#291"}, f::Symbol) + f === :decoder_handle && return Ptr{rocDecDecoderHandle}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#291", f::Symbol) + r = Ref{var"##Ctag#291"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#291"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#291"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#292" + decode_caps::Ptr{RocdecDecodeCaps} +end +function Base.getproperty(x::Ptr{var"##Ctag#292"}, f::Symbol) + f === :decode_caps && return Ptr{Ptr{RocdecDecodeCaps}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#292", f::Symbol) + r = Ref{var"##Ctag#292"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#292"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#292"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#293" + decoder_handle::rocDecDecoderHandle + pic_params::Ptr{RocdecPicParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#293"}, f::Symbol) + f === :decoder_handle && return Ptr{rocDecDecoderHandle}(x + 0) + f === :pic_params && return Ptr{Ptr{RocdecPicParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#293", f::Symbol) + r = Ref{var"##Ctag#293"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#293"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#293"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#294" + decoder_handle::rocDecDecoderHandle + pic_idx::Cint + decode_status::Ptr{RocdecDecodeStatus} +end +function Base.getproperty(x::Ptr{var"##Ctag#294"}, f::Symbol) + f === :decoder_handle && return Ptr{rocDecDecoderHandle}(x + 0) + f === :pic_idx && return Ptr{Cint}(x + 8) + f === :decode_status && return Ptr{Ptr{RocdecDecodeStatus}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#294", f::Symbol) + r = Ref{var"##Ctag#294"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#294"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#294"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#295" + decoder_handle::rocDecDecoderHandle + reconfig_params::Ptr{RocdecReconfigureDecoderInfo} +end +function Base.getproperty(x::Ptr{var"##Ctag#295"}, f::Symbol) + f === :decoder_handle && return Ptr{rocDecDecoderHandle}(x + 0) + f === :reconfig_params && return Ptr{Ptr{RocdecReconfigureDecoderInfo}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#295", f::Symbol) + r = Ref{var"##Ctag#295"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#295"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#295"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#296" + decoder_handle::rocDecDecoderHandle + pic_idx::Cint + dev_mem_ptr::Ptr{Ptr{Cvoid}} + horizontal_pitch::Ptr{UInt32} + vid_postproc_params::Ptr{RocdecProcParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#296"}, f::Symbol) + f === :decoder_handle && return Ptr{rocDecDecoderHandle}(x + 0) + f === :pic_idx && return Ptr{Cint}(x + 8) + f === :dev_mem_ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 16) + f === :horizontal_pitch && return Ptr{Ptr{UInt32}}(x + 24) + f === :vid_postproc_params && return Ptr{Ptr{RocdecProcParams}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#296", f::Symbol) + r = Ref{var"##Ctag#296"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#296"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#296"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#297" + rocdec_status::rocDecStatus +end +function Base.getproperty(x::Ptr{var"##Ctag#297"}, f::Symbol) + f === :rocdec_status && return Ptr{rocDecStatus}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#297", f::Symbol) + r = Ref{var"##Ctag#297"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#297"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#297"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#298" + bs_reader_handle::Ptr{RocdecBitstreamReader} + input_file_path::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#298"}, f::Symbol) + f === :bs_reader_handle && return Ptr{Ptr{RocdecBitstreamReader}}(x + 0) + f === :input_file_path && return Ptr{Ptr{Cchar}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#298", f::Symbol) + r = Ref{var"##Ctag#298"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#298"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#298"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#299" + bs_reader_handle::RocdecBitstreamReader + codec_type::Ptr{rocDecVideoCodec} +end +function Base.getproperty(x::Ptr{var"##Ctag#299"}, f::Symbol) + f === :bs_reader_handle && return Ptr{RocdecBitstreamReader}(x + 0) + f === :codec_type && return Ptr{Ptr{rocDecVideoCodec}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#299", f::Symbol) + r = Ref{var"##Ctag#299"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#299"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#299"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#300" + bs_reader_handle::RocdecBitstreamReader + bit_depth::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#300"}, f::Symbol) + f === :bs_reader_handle && return Ptr{RocdecBitstreamReader}(x + 0) + f === :bit_depth && return Ptr{Ptr{Cint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#300", f::Symbol) + r = Ref{var"##Ctag#300"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#300"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#300"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#301" + bs_reader_handle::RocdecBitstreamReader + pic_data::Ptr{Ptr{UInt8}} + pic_size::Ptr{Cint} + pts::Ptr{Int64} +end +function Base.getproperty(x::Ptr{var"##Ctag#301"}, f::Symbol) + f === :bs_reader_handle && return Ptr{RocdecBitstreamReader}(x + 0) + f === :pic_data && return Ptr{Ptr{Ptr{UInt8}}}(x + 8) + f === :pic_size && return Ptr{Ptr{Cint}}(x + 16) + f === :pts && return Ptr{Ptr{Int64}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#301", f::Symbol) + r = Ref{var"##Ctag#301"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#301"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#301"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#302" + bs_reader_handle::RocdecBitstreamReader +end +function Base.getproperty(x::Ptr{var"##Ctag#302"}, f::Symbol) + f === :bs_reader_handle && return Ptr{RocdecBitstreamReader}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#302", f::Symbol) + r = Ref{var"##Ctag#302"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#302"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#302"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#305" + level::Cuint + layer::Cuint + offsetX::Cuint + offsetY::Cuint + offsetZ::Cuint + extentWidth::Cuint + extentHeight::Cuint + extentDepth::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#305"}, f::Symbol) + f === :level && return Ptr{Cuint}(x + 0) + f === :layer && return Ptr{Cuint}(x + 4) + f === :offsetX && return Ptr{Cuint}(x + 8) + f === :offsetY && return Ptr{Cuint}(x + 12) + f === :offsetZ && return Ptr{Cuint}(x + 16) + f === :extentWidth && return Ptr{Cuint}(x + 20) + f === :extentHeight && return Ptr{Cuint}(x + 24) + f === :extentDepth && return Ptr{Cuint}(x + 28) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#305", f::Symbol) + r = Ref{var"##Ctag#305"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#305"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#305"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#306" + layer::Cuint + offset::Culonglong + size::Culonglong +end +function Base.getproperty(x::Ptr{var"##Ctag#306"}, f::Symbol) + f === :layer && return Ptr{Cuint}(x + 0) + f === :offset && return Ptr{Culonglong}(x + 8) + f === :size && return Ptr{Culonglong}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#306", f::Symbol) + r = Ref{var"##Ctag#306"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#306"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#306"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#311" + segment_reference_enabled::UInt16 + segment_reference::UInt16 + segment_reference_skipped::UInt16 +end +function Base.getproperty(x::Ptr{var"##Ctag#311"}, f::Symbol) + f === :segment_reference_enabled && return (Ptr{UInt16}(x + 0), 0, 1) + f === :segment_reference && return (Ptr{UInt16}(x + 0), 1, 2) + f === :segment_reference_skipped && return (Ptr{UInt16}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#311", f::Symbol) + r = Ref{var"##Ctag#311"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#311"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#311"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#312" + PerSDMAQueueResetSupported::Cuint + Reserved::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#312"}, f::Symbol) + f === :PerSDMAQueueResetSupported && return (Ptr{Cuint}(x + 0), 0, 1) + f === :Reserved && return (Ptr{Cuint}(x + 0), 1, 31) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#312", f::Symbol) + r = Ref{var"##Ctag#312"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#312"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#312"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#314" + handle::Ptr{Cvoid} + name::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#314"}, f::Symbol) + f === :handle && return Ptr{Ptr{Cvoid}}(x + 0) + f === :name && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#314", f::Symbol) + r = Ref{var"##Ctag#314"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#314"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#314"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#315" + uCode::Cuint + Major::Cuint + Minor::Cuint + Stepping::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#315"}, f::Symbol) + f === :uCode && return (Ptr{Cuint}(x + 0), 0, 10) + f === :Major && return (Ptr{Cuint}(x + 0), 10, 6) + f === :Minor && return (Ptr{Cuint}(x + 0), 16, 8) + f === :Stepping && return (Ptr{Cuint}(x + 0), 24, 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#315", f::Symbol) + r = Ref{var"##Ctag#315"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#315"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#315"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct hipStreamMemOpWaitValueParams_t + data::NTuple{40,UInt8} +end + +function Base.getproperty(x::Ptr{hipStreamMemOpWaitValueParams_t}, f::Symbol) + f === :operation && return Ptr{hipStreamBatchMemOpType}(x + 0) + f === :address && return Ptr{hipDeviceptr_t}(x + 8) + f === + Symbol("union hipStreamMemOpWaitValueParams_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:904:5)") && + return Ptr{Cvoid}(x + 0) + f === :flags && return Ptr{Cuint}(x + 24) + f === :alias && return Ptr{hipDeviceptr_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::hipStreamMemOpWaitValueParams_t, f::Symbol) + r = Ref{hipStreamMemOpWaitValueParams_t}(x) + ptr = Base.unsafe_convert(Ptr{hipStreamMemOpWaitValueParams_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipStreamMemOpWaitValueParams_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipStreamMemOpWaitValueParams_t, private::Bool=false) + return (:operation, :address, + Symbol("union hipStreamMemOpWaitValueParams_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:904:5)"), + :flags, :alias, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipStreamMemOpWriteValueParams_t + data::NTuple{40,UInt8} +end + +function Base.getproperty(x::Ptr{hipStreamMemOpWriteValueParams_t}, f::Symbol) + f === :operation && return Ptr{hipStreamBatchMemOpType}(x + 0) + f === :address && return Ptr{hipDeviceptr_t}(x + 8) + f === + Symbol("union hipStreamMemOpWriteValueParams_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:914:5)") && + return Ptr{Cvoid}(x + 0) + f === :flags && return Ptr{Cuint}(x + 24) + f === :alias && return Ptr{hipDeviceptr_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::hipStreamMemOpWriteValueParams_t, f::Symbol) + r = Ref{hipStreamMemOpWriteValueParams_t}(x) + ptr = Base.unsafe_convert(Ptr{hipStreamMemOpWriteValueParams_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipStreamMemOpWriteValueParams_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipStreamMemOpWriteValueParams_t, private::Bool=false) + return (:operation, :address, + Symbol("union hipStreamMemOpWriteValueParams_t::(anonymous at /home/simeon/Documents/rocm/TheRock/output-linux-portable/build/profiler/rocprofiler-sdk/dist/include/hip/hip_runtime_api.h:914:5)"), + :flags, :alias, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipStreamMemOpFlushRemoteWritesParams_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{hipStreamMemOpFlushRemoteWritesParams_t}, f::Symbol) + f === :operation && return Ptr{hipStreamBatchMemOpType}(x + 0) + f === :flags && return Ptr{Cuint}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::hipStreamMemOpFlushRemoteWritesParams_t, f::Symbol) + r = Ref{hipStreamMemOpFlushRemoteWritesParams_t}(x) + ptr = Base.unsafe_convert(Ptr{hipStreamMemOpFlushRemoteWritesParams_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipStreamMemOpFlushRemoteWritesParams_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipStreamMemOpFlushRemoteWritesParams_t, private::Bool=false) + return (:operation, :flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct hipStreamMemOpMemoryBarrierParams_t + data::NTuple{8,UInt8} +end + +function Base.getproperty(x::Ptr{hipStreamMemOpMemoryBarrierParams_t}, f::Symbol) + f === :operation && return Ptr{hipStreamBatchMemOpType}(x + 0) + f === :flags && return Ptr{Cuint}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::hipStreamMemOpMemoryBarrierParams_t, f::Symbol) + r = Ref{hipStreamMemOpMemoryBarrierParams_t}(x) + ptr = Base.unsafe_convert(Ptr{hipStreamMemOpMemoryBarrierParams_t}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{hipStreamMemOpMemoryBarrierParams_t}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +function Base.propertynames(x::hipStreamMemOpMemoryBarrierParams_t, private::Bool=false) + return (:operation, :flags, if private + fieldnames(typeof(x)) + else + () + end...) +end + +struct var"##Ctag#317" + handle::Ptr{Cvoid} + name::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#317"}, f::Symbol) + f === :handle && return Ptr{Ptr{Cvoid}}(x + 0) + f === :name && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#317", f::Symbol) + r = Ref{var"##Ctag#317"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#317"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#317"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#319" + hArray::hipArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#319"}, f::Symbol) + f === :hArray && return Ptr{hipArray_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#319", f::Symbol) + r = Ref{var"##Ctag#319"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#319"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#319"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#320" + hMipmappedArray::hipMipmappedArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#320"}, f::Symbol) + f === :hMipmappedArray && return Ptr{hipMipmappedArray_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#320", f::Symbol) + r = Ref{var"##Ctag#320"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#320"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#320"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#321" + devPtr::hipDeviceptr_t + format::hipArray_Format + numChannels::Cuint + sizeInBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#321"}, f::Symbol) + f === :devPtr && return Ptr{hipDeviceptr_t}(x + 0) + f === :format && return Ptr{hipArray_Format}(x + 8) + f === :numChannels && return Ptr{Cuint}(x + 12) + f === :sizeInBytes && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#321", f::Symbol) + r = Ref{var"##Ctag#321"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#321"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#321"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#322" + devPtr::hipDeviceptr_t + format::hipArray_Format + numChannels::Cuint + width::Csize_t + height::Csize_t + pitchInBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#322"}, f::Symbol) + f === :devPtr && return Ptr{hipDeviceptr_t}(x + 0) + f === :format && return Ptr{hipArray_Format}(x + 8) + f === :numChannels && return Ptr{Cuint}(x + 12) + f === :width && return Ptr{Csize_t}(x + 16) + f === :height && return Ptr{Csize_t}(x + 24) + f === :pitchInBytes && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#322", f::Symbol) + r = Ref{var"##Ctag#322"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#322"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#322"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#323" + reserved::NTuple{32,Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#323"}, f::Symbol) + f === :reserved && return Ptr{NTuple{32,Cint}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#323", f::Symbol) + r = Ref{var"##Ctag#323"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#323"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#323"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#325" + chroma_format_idc::UInt32 + separate_colour_plane_flag::UInt32 + pcm_enabled_flag::UInt32 + scaling_list_enabled_flag::UInt32 + transform_skip_enabled_flag::UInt32 + amp_enabled_flag::UInt32 + strong_intra_smoothing_enabled_flag::UInt32 + sign_data_hiding_enabled_flag::UInt32 + constrained_intra_pred_flag::UInt32 + cu_qp_delta_enabled_flag::UInt32 + weighted_pred_flag::UInt32 + weighted_bipred_flag::UInt32 + transquant_bypass_enabled_flag::UInt32 + tiles_enabled_flag::UInt32 + entropy_coding_sync_enabled_flag::UInt32 + pps_loop_filter_across_slices_enabled_flag::UInt32 + loop_filter_across_tiles_enabled_flag::UInt32 + pcm_loop_filter_disabled_flag::UInt32 + no_pic_reordering_flag::UInt32 + no_bi_pred_flag::UInt32 + reserved_bits::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#325"}, f::Symbol) + f === :chroma_format_idc && return (Ptr{UInt32}(x + 0), 0, 2) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :no_pic_reordering_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :no_bi_pred_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :reserved_bits && return (Ptr{UInt32}(x + 0), 21, 11) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#325", f::Symbol) + r = Ref{var"##Ctag#325"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#325"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#325"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#327" + lists_modification_present_flag::UInt32 + long_term_ref_pics_present_flag::UInt32 + sps_temporal_mvp_enabled_flag::UInt32 + cabac_init_present_flag::UInt32 + output_flag_present_flag::UInt32 + dependent_slice_segments_enabled_flag::UInt32 + pps_slice_chroma_qp_offsets_present_flag::UInt32 + sample_adaptive_offset_enabled_flag::UInt32 + deblocking_filter_override_enabled_flag::UInt32 + pps_disable_deblocking_filter_flag::UInt32 + slice_segment_header_extension_present_flag::UInt32 + rap_pic_flag::UInt32 + idr_pic_flag::UInt32 + intra_pic_flag::UInt32 + reserved_bits::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#327"}, f::Symbol) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pps_disable_deblocking_filter_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :rap_pic_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :idr_pic_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :intra_pic_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :reserved_bits && return (Ptr{UInt32}(x + 0), 14, 18) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#327", f::Symbol) + r = Ref{var"##Ctag#327"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#327"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#327"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#328" + Data::Cuint + Instruction::Cuint + CPU::Cuint + HSACU::Cuint + Reserved::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#328"}, f::Symbol) + f === :Data && return (Ptr{Cuint}(x + 0), 0, 1) + f === :Instruction && return (Ptr{Cuint}(x + 0), 1, 1) + f === :CPU && return (Ptr{Cuint}(x + 0), 2, 1) + f === :HSACU && return (Ptr{Cuint}(x + 0), 3, 1) + f === :Reserved && return (Ptr{Cuint}(x + 0), 4, 28) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#328", f::Symbol) + r = Ref{var"##Ctag#328"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#328"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#328"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#330" + enabled::UInt32 + update_map::UInt32 + temporal_update::UInt32 + update_data::UInt32 + reserved::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#330"}, f::Symbol) + f === :enabled && return (Ptr{UInt32}(x + 0), 0, 1) + f === :update_map && return (Ptr{UInt32}(x + 0), 1, 1) + f === :temporal_update && return (Ptr{UInt32}(x + 0), 2, 1) + f === :update_data && return (Ptr{UInt32}(x + 0), 3, 1) + f === :reserved && return (Ptr{UInt32}(x + 0), 4, 28) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#330", f::Symbol) + r = Ref{var"##Ctag#330"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#330"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#330"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#331" + Override::Cuint + NonCoherent::Cuint + NoAtomics32bit::Cuint + NoAtomics64bit::Cuint + NoPeerToPeerDMA::Cuint + Reserved::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#331"}, f::Symbol) + f === :Override && return (Ptr{Cuint}(x + 0), 0, 1) + f === :NonCoherent && return (Ptr{Cuint}(x + 0), 1, 1) + f === :NoAtomics32bit && return (Ptr{Cuint}(x + 0), 2, 1) + f === :NoAtomics64bit && return (Ptr{Cuint}(x + 0), 3, 1) + f === :NoPeerToPeerDMA && return (Ptr{Cuint}(x + 0), 4, 1) + f === :Reserved && return (Ptr{Cuint}(x + 0), 5, 27) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#331", f::Symbol) + r = Ref{var"##Ctag#331"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#331"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#331"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#334" + sendbuff::Ptr{Cvoid} + recvbuff::Ptr{Cvoid} + sendcount::Csize_t + datatype::ncclDataType_t + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#334"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sendcount && return Ptr{Csize_t}(x + 16) + f === :datatype && return Ptr{ncclDataType_t}(x + 24) + f === :comm && return Ptr{ncclComm_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#334", f::Symbol) + r = Ref{var"##Ctag#334"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#334"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#334"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#335" + sendbuff::Ptr{Cvoid} + recvbuff::Ptr{Cvoid} + count::Csize_t + datatype::ncclDataType_t + op::ncclRedOp_t + comm::Ptr{ncclComm} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#335"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + f === :datatype && return Ptr{ncclDataType_t}(x + 24) + f === :op && return Ptr{ncclRedOp_t}(x + 28) + f === :comm && return Ptr{Ptr{ncclComm}}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#335", f::Symbol) + r = Ref{var"##Ctag#335"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#335"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#335"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#336" + sendbuff::Ptr{Cvoid} + recvbuff::Ptr{Cvoid} + count::Csize_t + datatype::ncclDataType_t + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#336"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + f === :datatype && return Ptr{ncclDataType_t}(x + 24) + f === :comm && return Ptr{ncclComm_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#336", f::Symbol) + r = Ref{var"##Ctag#336"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#336"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#336"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#337" + sendbuff::Ptr{Cvoid} + sendcounts::Ptr{Csize_t} + sdispls::Ptr{Csize_t} + recvbuff::Ptr{Cvoid} + recvcounts::Ptr{Csize_t} + rdispls::Ptr{Csize_t} + datatype::ncclDataType_t + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#337"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :sendcounts && return Ptr{Ptr{Csize_t}}(x + 8) + f === :sdispls && return Ptr{Ptr{Csize_t}}(x + 16) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 24) + f === :recvcounts && return Ptr{Ptr{Csize_t}}(x + 32) + f === :rdispls && return Ptr{Ptr{Csize_t}}(x + 40) + f === :datatype && return Ptr{ncclDataType_t}(x + 48) + f === :comm && return Ptr{ncclComm_t}(x + 56) + f === :stream && return Ptr{hipStream_t}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#337", f::Symbol) + r = Ref{var"##Ctag#337"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#337"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#337"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#338" + sendbuff::Ptr{Cvoid} + recvbuff::Ptr{Cvoid} + count::Csize_t + datatype::ncclDataType_t + root::Cint + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#338"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + f === :datatype && return Ptr{ncclDataType_t}(x + 24) + f === :root && return Ptr{Cint}(x + 28) + f === :comm && return Ptr{ncclComm_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#338", f::Symbol) + r = Ref{var"##Ctag#338"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#338"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#338"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#339" + sendbuff::Ptr{Cvoid} + recvbuff::Ptr{Cvoid} + sendcount::Csize_t + datatype::ncclDataType_t + root::Cint + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#339"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sendcount && return Ptr{Csize_t}(x + 16) + f === :datatype && return Ptr{ncclDataType_t}(x + 24) + f === :root && return Ptr{Cint}(x + 28) + f === :comm && return Ptr{ncclComm_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#339", f::Symbol) + r = Ref{var"##Ctag#339"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#339"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#339"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#340" + sendbuff::Ptr{Cvoid} + recvbuff::Ptr{Cvoid} + count::Csize_t + datatype::ncclDataType_t + op::ncclRedOp_t + root::Cint + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#340"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + f === :datatype && return Ptr{ncclDataType_t}(x + 24) + f === :op && return Ptr{ncclRedOp_t}(x + 28) + f === :root && return Ptr{Cint}(x + 32) + f === :comm && return Ptr{ncclComm_t}(x + 40) + f === :stream && return Ptr{hipStream_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#340", f::Symbol) + r = Ref{var"##Ctag#340"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#340"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#340"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#341" + sendbuff::Ptr{Cvoid} + recvbuff::Ptr{Cvoid} + recvcount::Csize_t + datatype::ncclDataType_t + op::ncclRedOp_t + comm::Ptr{ncclComm} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#341"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 8) + f === :recvcount && return Ptr{Csize_t}(x + 16) + f === :datatype && return Ptr{ncclDataType_t}(x + 24) + f === :op && return Ptr{ncclRedOp_t}(x + 28) + f === :comm && return Ptr{Ptr{ncclComm}}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#341", f::Symbol) + r = Ref{var"##Ctag#341"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#341"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#341"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#342" + sendbuff::Ptr{Cvoid} + recvbuff::Ptr{Cvoid} + recvcount::Csize_t + datatype::ncclDataType_t + root::Cint + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#342"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 8) + f === :recvcount && return Ptr{Csize_t}(x + 16) + f === :datatype && return Ptr{ncclDataType_t}(x + 24) + f === :root && return Ptr{Cint}(x + 28) + f === :comm && return Ptr{ncclComm_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#342", f::Symbol) + r = Ref{var"##Ctag#342"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#342"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#342"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#343" + sendbuff::Ptr{Cvoid} + count::Csize_t + datatype::ncclDataType_t + peer::Cint + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#343"}, f::Symbol) + f === :sendbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :count && return Ptr{Csize_t}(x + 8) + f === :datatype && return Ptr{ncclDataType_t}(x + 16) + f === :peer && return Ptr{Cint}(x + 20) + f === :comm && return Ptr{ncclComm_t}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#343", f::Symbol) + r = Ref{var"##Ctag#343"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#343"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#343"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#344" + recvbuff::Ptr{Cvoid} + count::Csize_t + datatype::ncclDataType_t + peer::Cint + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#344"}, f::Symbol) + f === :recvbuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :count && return Ptr{Csize_t}(x + 8) + f === :datatype && return Ptr{ncclDataType_t}(x + 16) + f === :peer && return Ptr{Cint}(x + 20) + f === :comm && return Ptr{ncclComm_t}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#344", f::Symbol) + r = Ref{var"##Ctag#344"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#344"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#344"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#345" + op::Ptr{ncclRedOp_t} + scalar::Ptr{Cvoid} + datatype::ncclDataType_t + residence::ncclScalarResidence_t + comm::ncclComm_t +end +function Base.getproperty(x::Ptr{var"##Ctag#345"}, f::Symbol) + f === :op && return Ptr{Ptr{ncclRedOp_t}}(x + 0) + f === :scalar && return Ptr{Ptr{Cvoid}}(x + 8) + f === :datatype && return Ptr{ncclDataType_t}(x + 16) + f === :residence && return Ptr{ncclScalarResidence_t}(x + 20) + f === :comm && return Ptr{ncclComm_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#345", f::Symbol) + r = Ref{var"##Ctag#345"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#345"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#345"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#346" + op::ncclRedOp_t + comm::ncclComm_t +end +function Base.getproperty(x::Ptr{var"##Ctag#346"}, f::Symbol) + f === :op && return Ptr{ncclRedOp_t}(x + 0) + f === :comm && return Ptr{ncclComm_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#346", f::Symbol) + r = Ref{var"##Ctag#346"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#346"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#346"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#347" + no_args::rocprofiler_rccl_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#347"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_rccl_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#347", f::Symbol) + r = Ref{var"##Ctag#347"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#347"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#347"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#348" + no_args::rocprofiler_rccl_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#348"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_rccl_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#348", f::Symbol) + r = Ref{var"##Ctag#348"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#348"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#348"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#349" + version::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#349"}, f::Symbol) + f === :version && return Ptr{Ptr{Cint}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#349", f::Symbol) + r = Ref{var"##Ctag#349"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#349"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#349"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#350" + out::Ptr{ncclUniqueId} +end +function Base.getproperty(x::Ptr{var"##Ctag#350"}, f::Symbol) + f === :out && return Ptr{Ptr{ncclUniqueId}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#350", f::Symbol) + r = Ref{var"##Ctag#350"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#350"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#350"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#351" + newcomm::Ptr{ncclComm_t} + nranks::Cint + commId::ncclUniqueId + myrank::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#351"}, f::Symbol) + f === :newcomm && return Ptr{Ptr{ncclComm_t}}(x + 0) + f === :nranks && return Ptr{Cint}(x + 8) + f === :commId && return Ptr{ncclUniqueId}(x + 12) + f === :myrank && return Ptr{Cint}(x + 140) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#351", f::Symbol) + r = Ref{var"##Ctag#351"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#351"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#351"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#352" + comms::Ptr{ncclComm_t} + ndev::Cint + devlist::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#352"}, f::Symbol) + f === :comms && return Ptr{Ptr{ncclComm_t}}(x + 0) + f === :ndev && return Ptr{Cint}(x + 8) + f === :devlist && return Ptr{Ptr{Cint}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#352", f::Symbol) + r = Ref{var"##Ctag#352"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#352"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#352"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#353" + comm::Ptr{ncclComm_t} + nranks::Cint + commId::ncclUniqueId + myrank::Cint + config::Ptr{ncclConfig_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#353"}, f::Symbol) + f === :comm && return Ptr{Ptr{ncclComm_t}}(x + 0) + f === :nranks && return Ptr{Cint}(x + 8) + f === :commId && return Ptr{ncclUniqueId}(x + 12) + f === :myrank && return Ptr{Cint}(x + 140) + f === :config && return Ptr{Ptr{ncclConfig_t}}(x + 144) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#353", f::Symbol) + r = Ref{var"##Ctag#353"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#353"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#353"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#354" + comm::ncclComm_t +end +function Base.getproperty(x::Ptr{var"##Ctag#354"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#354", f::Symbol) + r = Ref{var"##Ctag#354"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#354"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#354"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#355" + comm::ncclComm_t +end +function Base.getproperty(x::Ptr{var"##Ctag#355"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#355", f::Symbol) + r = Ref{var"##Ctag#355"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#355"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#355"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#356" + comm::ncclComm_t +end +function Base.getproperty(x::Ptr{var"##Ctag#356"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#356", f::Symbol) + r = Ref{var"##Ctag#356"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#356"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#356"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#357" + comm::ncclComm_t + color::Cint + key::Cint + newcomm::Ptr{ncclComm_t} + config::Ptr{ncclConfig_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#357"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + f === :color && return Ptr{Cint}(x + 8) + f === :key && return Ptr{Cint}(x + 12) + f === :newcomm && return Ptr{Ptr{ncclComm_t}}(x + 16) + f === :config && return Ptr{Ptr{ncclConfig_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#357", f::Symbol) + r = Ref{var"##Ctag#357"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#357"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#357"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#358" + code::ncclResult_t +end +function Base.getproperty(x::Ptr{var"##Ctag#358"}, f::Symbol) + f === :code && return Ptr{ncclResult_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#358", f::Symbol) + r = Ref{var"##Ctag#358"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#358"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#358"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#359" + comm::ncclComm_t +end +function Base.getproperty(x::Ptr{var"##Ctag#359"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#359", f::Symbol) + r = Ref{var"##Ctag#359"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#359"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#359"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#360" + comm::ncclComm_t + asyncError::Ptr{ncclResult_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#360"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + f === :asyncError && return Ptr{Ptr{ncclResult_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#360", f::Symbol) + r = Ref{var"##Ctag#360"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#360"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#360"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#361" + comm::ncclComm_t + count::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#361"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + f === :count && return Ptr{Ptr{Cint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#361", f::Symbol) + r = Ref{var"##Ctag#361"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#361"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#361"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#362" + comm::ncclComm_t + devid::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#362"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + f === :devid && return Ptr{Ptr{Cint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#362", f::Symbol) + r = Ref{var"##Ctag#362"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#362"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#362"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#363" + comm::ncclComm_t + rank::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#363"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + f === :rank && return Ptr{Ptr{Cint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#363", f::Symbol) + r = Ref{var"##Ctag#363"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#363"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#363"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#364" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#364"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#364", f::Symbol) + r = Ref{var"##Ctag#364"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#364"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#364"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#365" + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#365"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#365", f::Symbol) + r = Ref{var"##Ctag#365"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#365"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#365"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#366" + mscclAlgoFilePath::Ptr{Cchar} + mscclAlgoHandle::Ptr{mscclAlgoHandle_t} + rank::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#366"}, f::Symbol) + f === :mscclAlgoFilePath && return Ptr{Ptr{Cchar}}(x + 0) + f === :mscclAlgoHandle && return Ptr{Ptr{mscclAlgoHandle_t}}(x + 8) + f === :rank && return Ptr{Cint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#366", f::Symbol) + r = Ref{var"##Ctag#366"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#366"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#366"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#367" + sendBuff::Ptr{Cvoid} + sendCounts::Ptr{Csize_t} + sDisPls::Ptr{Csize_t} + recvBuff::Ptr{Cvoid} + recvCounts::Ptr{Csize_t} + rDisPls::Ptr{Csize_t} + count::Csize_t + dataType::ncclDataType_t + root::Cint + peer::Cint + op::ncclRedOp_t + mscclAlgoHandle::mscclAlgoHandle_t + comm::ncclComm_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#367"}, f::Symbol) + f === :sendBuff && return Ptr{Ptr{Cvoid}}(x + 0) + f === :sendCounts && return Ptr{Ptr{Csize_t}}(x + 8) + f === :sDisPls && return Ptr{Ptr{Csize_t}}(x + 16) + f === :recvBuff && return Ptr{Ptr{Cvoid}}(x + 24) + f === :recvCounts && return Ptr{Ptr{Csize_t}}(x + 32) + f === :rDisPls && return Ptr{Ptr{Csize_t}}(x + 40) + f === :count && return Ptr{Csize_t}(x + 48) + f === :dataType && return Ptr{ncclDataType_t}(x + 56) + f === :root && return Ptr{Cint}(x + 60) + f === :peer && return Ptr{Cint}(x + 64) + f === :op && return Ptr{ncclRedOp_t}(x + 68) + f === :mscclAlgoHandle && return Ptr{mscclAlgoHandle_t}(x + 72) + f === :comm && return Ptr{ncclComm_t}(x + 80) + f === :stream && return Ptr{hipStream_t}(x + 88) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#367", f::Symbol) + r = Ref{var"##Ctag#367"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#367"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#367"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#368" + mscclAlgoHandle::mscclAlgoHandle_t +end +function Base.getproperty(x::Ptr{var"##Ctag#368"}, f::Symbol) + f === :mscclAlgoHandle && return Ptr{mscclAlgoHandle_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#368", f::Symbol) + r = Ref{var"##Ctag#368"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#368"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#368"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#369" + comm::ncclComm_t + buff::Ptr{Cvoid} + size::Csize_t + handle::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#369"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + f === :buff && return Ptr{Ptr{Cvoid}}(x + 8) + f === :size && return Ptr{Csize_t}(x + 16) + f === :handle && return Ptr{Ptr{Ptr{Cvoid}}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#369", f::Symbol) + r = Ref{var"##Ctag#369"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#369"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#369"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#370" + comm::ncclComm_t + handle::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#370"}, f::Symbol) + f === :comm && return Ptr{ncclComm_t}(x + 0) + f === :handle && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#370", f::Symbol) + r = Ref{var"##Ctag#370"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#370"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#370"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#371" + HotPluggable::Cuint + NonVolatile::Cuint + Reserved::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#371"}, f::Symbol) + f === :HotPluggable && return (Ptr{Cuint}(x + 0), 0, 1) + f === :NonVolatile && return (Ptr{Cuint}(x + 0), 1, 1) + f === :Reserved && return (Ptr{Cuint}(x + 0), 2, 30) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#371", f::Symbol) + r = Ref{var"##Ctag#371"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#371"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#371"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#372" + thread_type::ompt_thread_t + thread_data::Ptr{ompt_data_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#372"}, f::Symbol) + f === :thread_type && return Ptr{ompt_thread_t}(x + 0) + f === :thread_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#372", f::Symbol) + r = Ref{var"##Ctag#372"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#372"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#372"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#373" + thread_data::Ptr{ompt_data_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#373"}, f::Symbol) + f === :thread_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#373", f::Symbol) + r = Ref{var"##Ctag#373"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#373"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#373"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#374" + encountering_task_data::Ptr{ompt_data_t} + encountering_task_frame::Ptr{ompt_frame_t} + parallel_data::Ptr{ompt_data_t} + requested_parallelism::Cuint + flags::Cint + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#374"}, f::Symbol) + f === :encountering_task_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + f === :encountering_task_frame && return Ptr{Ptr{ompt_frame_t}}(x + 8) + f === :parallel_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :requested_parallelism && return Ptr{Cuint}(x + 24) + f === :flags && return Ptr{Cint}(x + 28) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#374", f::Symbol) + r = Ref{var"##Ctag#374"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#374"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#374"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#375" + parallel_data::Ptr{ompt_data_t} + encountering_task_data::Ptr{ompt_data_t} + flags::Cint + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#375"}, f::Symbol) + f === :parallel_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + f === :encountering_task_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :flags && return Ptr{Cint}(x + 16) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#375", f::Symbol) + r = Ref{var"##Ctag#375"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#375"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#375"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#376" + encountering_task_data::Ptr{ompt_data_t} + encountering_task_frame::Ptr{ompt_frame_t} + new_task_data::Ptr{ompt_data_t} + flags::Cint + has_dependences::Cint + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#376"}, f::Symbol) + f === :encountering_task_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + f === :encountering_task_frame && return Ptr{Ptr{ompt_frame_t}}(x + 8) + f === :new_task_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :flags && return Ptr{Cint}(x + 24) + f === :has_dependences && return Ptr{Cint}(x + 28) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#376", f::Symbol) + r = Ref{var"##Ctag#376"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#376"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#376"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#377" + prior_task_data::Ptr{ompt_data_t} + prior_task_status::ompt_task_status_t + next_task_data::Ptr{ompt_data_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#377"}, f::Symbol) + f === :prior_task_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + f === :prior_task_status && return Ptr{ompt_task_status_t}(x + 8) + f === :next_task_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#377", f::Symbol) + r = Ref{var"##Ctag#377"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#377"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#377"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#378" + endpoint::ompt_scope_endpoint_t + parallel_data::Ptr{ompt_data_t} + task_data::Ptr{ompt_data_t} + actual_parallelism::Cuint + index::Cuint + flags::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#378"}, f::Symbol) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 0) + f === :parallel_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :actual_parallelism && return Ptr{Cuint}(x + 24) + f === :index && return Ptr{Cuint}(x + 28) + f === :flags && return Ptr{Cint}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#378", f::Symbol) + r = Ref{var"##Ctag#378"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#378"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#378"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#379" + device_num::Cint + type::Ptr{Cchar} + device::Ptr{ompt_device_t} + lookup::ompt_function_lookup_t + documentation::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#379"}, f::Symbol) + f === :device_num && return Ptr{Cint}(x + 0) + f === :type && return Ptr{Ptr{Cchar}}(x + 8) + f === :device && return Ptr{Ptr{ompt_device_t}}(x + 16) + f === :lookup && return Ptr{ompt_function_lookup_t}(x + 24) + f === :documentation && return Ptr{Ptr{Cchar}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#379", f::Symbol) + r = Ref{var"##Ctag#379"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#379"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#379"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#380" + device_num::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#380"}, f::Symbol) + f === :device_num && return Ptr{Cint}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#380", f::Symbol) + r = Ref{var"##Ctag#380"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#380"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#380"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#381" + device_num::Cint + filename::Ptr{Cchar} + offset_in_file::Int64 + vma_in_file::Ptr{Cvoid} + bytes::Csize_t + host_addr::Ptr{Cvoid} + device_addr::Ptr{Cvoid} + module_id::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#381"}, f::Symbol) + f === :device_num && return Ptr{Cint}(x + 0) + f === :filename && return Ptr{Ptr{Cchar}}(x + 8) + f === :offset_in_file && return Ptr{Int64}(x + 16) + f === :vma_in_file && return Ptr{Ptr{Cvoid}}(x + 24) + f === :bytes && return Ptr{Csize_t}(x + 32) + f === :host_addr && return Ptr{Ptr{Cvoid}}(x + 40) + f === :device_addr && return Ptr{Ptr{Cvoid}}(x + 48) + f === :module_id && return Ptr{UInt64}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#381", f::Symbol) + r = Ref{var"##Ctag#381"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#381"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#381"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#382" + kind::ompt_sync_region_t + endpoint::ompt_scope_endpoint_t + parallel_data::Ptr{ompt_data_t} + task_data::Ptr{ompt_data_t} + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#382"}, f::Symbol) + f === :kind && return Ptr{ompt_sync_region_t}(x + 0) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 4) + f === :parallel_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#382", f::Symbol) + r = Ref{var"##Ctag#382"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#382"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#382"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#383" + kind::ompt_mutex_t + wait_id::ompt_wait_id_t + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#383"}, f::Symbol) + f === :kind && return Ptr{ompt_mutex_t}(x + 0) + f === :wait_id && return Ptr{ompt_wait_id_t}(x + 8) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#383", f::Symbol) + r = Ref{var"##Ctag#383"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#383"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#383"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#384" + task_data::Ptr{ompt_data_t} + deps::Ptr{ompt_dependence_t} + ndeps::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#384"}, f::Symbol) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + f === :deps && return Ptr{Ptr{ompt_dependence_t}}(x + 8) + f === :ndeps && return Ptr{Cint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#384", f::Symbol) + r = Ref{var"##Ctag#384"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#384"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#384"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#385" + src_task_data::Ptr{ompt_data_t} + sink_task_data::Ptr{ompt_data_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#385"}, f::Symbol) + f === :src_task_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + f === :sink_task_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#385", f::Symbol) + r = Ref{var"##Ctag#385"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#385"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#385"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#386" + work_type::ompt_work_t + endpoint::ompt_scope_endpoint_t + parallel_data::Ptr{ompt_data_t} + task_data::Ptr{ompt_data_t} + count::UInt64 + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#386"}, f::Symbol) + f === :work_type && return Ptr{ompt_work_t}(x + 0) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 4) + f === :parallel_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :count && return Ptr{UInt64}(x + 24) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#386", f::Symbol) + r = Ref{var"##Ctag#386"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#386"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#386"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#387" + endpoint::ompt_scope_endpoint_t + parallel_data::Ptr{ompt_data_t} + task_data::Ptr{ompt_data_t} + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#387"}, f::Symbol) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 0) + f === :parallel_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#387", f::Symbol) + r = Ref{var"##Ctag#387"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#387"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#387"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#388" + kind::ompt_sync_region_t + endpoint::ompt_scope_endpoint_t + parallel_data::Ptr{ompt_data_t} + task_data::Ptr{ompt_data_t} + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#388"}, f::Symbol) + f === :kind && return Ptr{ompt_sync_region_t}(x + 0) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 4) + f === :parallel_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#388", f::Symbol) + r = Ref{var"##Ctag#388"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#388"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#388"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#389" + kind::ompt_mutex_t + hint::Cuint + impl::Cuint + wait_id::ompt_wait_id_t + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#389"}, f::Symbol) + f === :kind && return Ptr{ompt_mutex_t}(x + 0) + f === :hint && return Ptr{Cuint}(x + 4) + f === :impl && return Ptr{Cuint}(x + 8) + f === :wait_id && return Ptr{ompt_wait_id_t}(x + 16) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#389", f::Symbol) + r = Ref{var"##Ctag#389"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#389"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#389"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#390" + kind::ompt_mutex_t + wait_id::ompt_wait_id_t + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#390"}, f::Symbol) + f === :kind && return Ptr{ompt_mutex_t}(x + 0) + f === :wait_id && return Ptr{ompt_wait_id_t}(x + 8) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#390", f::Symbol) + r = Ref{var"##Ctag#390"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#390"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#390"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#391" + kind::ompt_mutex_t + hint::Cuint + impl::Cuint + wait_id::ompt_wait_id_t + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#391"}, f::Symbol) + f === :kind && return Ptr{ompt_mutex_t}(x + 0) + f === :hint && return Ptr{Cuint}(x + 4) + f === :impl && return Ptr{Cuint}(x + 8) + f === :wait_id && return Ptr{ompt_wait_id_t}(x + 16) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#391", f::Symbol) + r = Ref{var"##Ctag#391"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#391"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#391"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#392" + kind::ompt_mutex_t + wait_id::ompt_wait_id_t + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#392"}, f::Symbol) + f === :kind && return Ptr{ompt_mutex_t}(x + 0) + f === :wait_id && return Ptr{ompt_wait_id_t}(x + 8) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#392", f::Symbol) + r = Ref{var"##Ctag#392"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#392"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#392"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#393" + endpoint::ompt_scope_endpoint_t + wait_id::ompt_wait_id_t + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#393"}, f::Symbol) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 0) + f === :wait_id && return Ptr{ompt_wait_id_t}(x + 8) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#393", f::Symbol) + r = Ref{var"##Ctag#393"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#393"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#393"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#394" + thread_data::Ptr{ompt_data_t} + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#394"}, f::Symbol) + f === :thread_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#394", f::Symbol) + r = Ref{var"##Ctag#394"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#394"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#394"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#395" + task_data::Ptr{ompt_data_t} + flags::Cint + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#395"}, f::Symbol) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + f === :flags && return Ptr{Cint}(x + 8) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#395", f::Symbol) + r = Ref{var"##Ctag#395"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#395"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#395"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#396" + kind::ompt_sync_region_t + endpoint::ompt_scope_endpoint_t + parallel_data::Ptr{ompt_data_t} + task_data::Ptr{ompt_data_t} + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#396"}, f::Symbol) + f === :kind && return Ptr{ompt_sync_region_t}(x + 0) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 4) + f === :parallel_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#396", f::Symbol) + r = Ref{var"##Ctag#396"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#396"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#396"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#397" + parallel_data::Ptr{ompt_data_t} + task_data::Ptr{ompt_data_t} + kind::ompt_dispatch_t + instance::ompt_data_t +end +function Base.getproperty(x::Ptr{var"##Ctag#397"}, f::Symbol) + f === :parallel_data && return Ptr{Ptr{ompt_data_t}}(x + 0) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :kind && return Ptr{ompt_dispatch_t}(x + 16) + f === :instance && return Ptr{ompt_data_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#397", f::Symbol) + r = Ref{var"##Ctag#397"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#397"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#397"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#398" + kind::ompt_target_t + endpoint::ompt_scope_endpoint_t + device_num::Cint + task_data::Ptr{ompt_data_t} + target_task_data::Ptr{ompt_data_t} + target_data::Ptr{ompt_data_t} + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#398"}, f::Symbol) + f === :kind && return Ptr{ompt_target_t}(x + 0) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 4) + f === :device_num && return Ptr{Cint}(x + 8) + f === :task_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :target_task_data && return Ptr{Ptr{ompt_data_t}}(x + 24) + f === :target_data && return Ptr{Ptr{ompt_data_t}}(x + 32) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#398", f::Symbol) + r = Ref{var"##Ctag#398"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#398"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#398"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#399" + endpoint::ompt_scope_endpoint_t + target_task_data::Ptr{ompt_data_t} + target_data::Ptr{ompt_data_t} + host_op_id::Ptr{ompt_data_t} + optype::ompt_target_data_op_t + src_address::Ptr{Cvoid} + src_device_num::Cint + dst_address::Ptr{Cvoid} + dst_device_num::Cint + bytes::Csize_t + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#399"}, f::Symbol) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 0) + f === :target_task_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :target_data && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :host_op_id && return Ptr{Ptr{ompt_data_t}}(x + 24) + f === :optype && return Ptr{ompt_target_data_op_t}(x + 32) + f === :src_address && return Ptr{Ptr{Cvoid}}(x + 40) + f === :src_device_num && return Ptr{Cint}(x + 48) + f === :dst_address && return Ptr{Ptr{Cvoid}}(x + 56) + f === :dst_device_num && return Ptr{Cint}(x + 64) + f === :bytes && return Ptr{Csize_t}(x + 72) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 80) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#399", f::Symbol) + r = Ref{var"##Ctag#399"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#399"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#399"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#400" + endpoint::ompt_scope_endpoint_t + target_data::Ptr{ompt_data_t} + host_op_id::Ptr{ompt_data_t} + requested_num_teams::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#400"}, f::Symbol) + f === :endpoint && return Ptr{ompt_scope_endpoint_t}(x + 0) + f === :target_data && return Ptr{Ptr{ompt_data_t}}(x + 8) + f === :host_op_id && return Ptr{Ptr{ompt_data_t}}(x + 16) + f === :requested_num_teams && return Ptr{Cuint}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#400", f::Symbol) + r = Ref{var"##Ctag#400"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#400"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#400"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#401" + severity::ompt_severity_t + message::Ptr{Cchar} + length::Csize_t + codeptr_ra::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#401"}, f::Symbol) + f === :severity && return Ptr{ompt_severity_t}(x + 0) + f === :message && return Ptr{Ptr{Cchar}}(x + 8) + f === :length && return Ptr{Csize_t}(x + 16) + f === :codeptr_ra && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#401", f::Symbol) + r = Ref{var"##Ctag#401"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#401"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#401"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#404" + last_slice_of_pic::UInt32 + dependent_slice_segment_flag::UInt32 + slice_type::UInt32 + color_plane_id::UInt32 + slice_sao_luma_flag::UInt32 + slice_sao_chroma_flag::UInt32 + mvd_l1_zero_flag::UInt32 + cabac_init_flag::UInt32 + slice_temporal_mvp_enabled_flag::UInt32 + slice_deblocking_filter_disabled_flag::UInt32 + collocated_from_l0_flag::UInt32 + slice_loop_filter_across_slices_enabled_flag::UInt32 + reserved::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#404"}, f::Symbol) + f === :last_slice_of_pic && return (Ptr{UInt32}(x + 0), 0, 1) + f === :dependent_slice_segment_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :slice_type && return (Ptr{UInt32}(x + 0), 2, 2) + f === :color_plane_id && return (Ptr{UInt32}(x + 0), 4, 2) + f === :slice_sao_luma_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :slice_sao_chroma_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :mvd_l1_zero_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :cabac_init_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :slice_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :slice_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :collocated_from_l0_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :slice_loop_filter_across_slices_enabled_flag && + return (Ptr{UInt32}(x + 0), 13, 1) + f === :reserved && return (Ptr{UInt32}(x + 0), 14, 18) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#404", f::Symbol) + r = Ref{var"##Ctag#404"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#404"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#404"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#408" + subsampling_x::UInt32 + subsampling_y::UInt32 + frame_type::UInt32 + show_frame::UInt32 + error_resilient_mode::UInt32 + intra_only::UInt32 + allow_high_precision_mv::UInt32 + mcomp_filter_type::UInt32 + frame_parallel_decoding_mode::UInt32 + reset_frame_context::UInt32 + refresh_frame_context::UInt32 + frame_context_idx::UInt32 + segmentation_enabled::UInt32 + segmentation_temporal_update::UInt32 + segmentation_update_map::UInt32 + last_ref_frame::UInt32 + last_ref_frame_sign_bias::UInt32 + golden_ref_frame::UInt32 + golden_ref_frame_sign_bias::UInt32 + alt_ref_frame::UInt32 + alt_ref_frame_sign_bias::UInt32 + lossless_flag::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#408"}, f::Symbol) + f === :subsampling_x && return (Ptr{UInt32}(x + 0), 0, 1) + f === :subsampling_y && return (Ptr{UInt32}(x + 0), 1, 1) + f === :frame_type && return (Ptr{UInt32}(x + 0), 2, 1) + f === :show_frame && return (Ptr{UInt32}(x + 0), 3, 1) + f === :error_resilient_mode && return (Ptr{UInt32}(x + 0), 4, 1) + f === :intra_only && return (Ptr{UInt32}(x + 0), 5, 1) + f === :allow_high_precision_mv && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mcomp_filter_type && return (Ptr{UInt32}(x + 0), 7, 3) + f === :frame_parallel_decoding_mode && return (Ptr{UInt32}(x + 0), 10, 1) + f === :reset_frame_context && return (Ptr{UInt32}(x + 0), 11, 2) + f === :refresh_frame_context && return (Ptr{UInt32}(x + 0), 13, 1) + f === :frame_context_idx && return (Ptr{UInt32}(x + 0), 14, 2) + f === :segmentation_enabled && return (Ptr{UInt32}(x + 0), 16, 1) + f === :segmentation_temporal_update && return (Ptr{UInt32}(x + 0), 17, 1) + f === :segmentation_update_map && return (Ptr{UInt32}(x + 0), 18, 1) + f === :last_ref_frame && return (Ptr{UInt32}(x + 0), 19, 3) + f === :last_ref_frame_sign_bias && return (Ptr{UInt32}(x + 0), 22, 1) + f === :golden_ref_frame && return (Ptr{UInt32}(x + 0), 23, 3) + f === :golden_ref_frame_sign_bias && return (Ptr{UInt32}(x + 0), 26, 1) + f === :alt_ref_frame && return (Ptr{UInt32}(x + 0), 27, 3) + f === :alt_ref_frame_sign_bias && return (Ptr{UInt32}(x + 0), 30, 1) + f === :lossless_flag && return (Ptr{UInt32}(x + 0), 31, 1) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#408", f::Symbol) + r = Ref{var"##Ctag#408"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#408"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#408"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#414" + intra_dc_precision::UInt32 + picture_structure::UInt32 + top_field_first::UInt32 + frame_pred_frame_dct::UInt32 + concealment_motion_vectors::UInt32 + q_scale_type::UInt32 + intra_vlc_format::UInt32 + alternate_scan::UInt32 + repeat_first_field::UInt32 + progressive_frame::UInt32 + is_first_field::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#414"}, f::Symbol) + f === :intra_dc_precision && return (Ptr{UInt32}(x + 0), 0, 2) + f === :picture_structure && return (Ptr{UInt32}(x + 0), 2, 2) + f === :top_field_first && return (Ptr{UInt32}(x + 0), 4, 1) + f === :frame_pred_frame_dct && return (Ptr{UInt32}(x + 0), 5, 1) + f === :concealment_motion_vectors && return (Ptr{UInt32}(x + 0), 6, 1) + f === :q_scale_type && return (Ptr{UInt32}(x + 0), 7, 1) + f === :intra_vlc_format && return (Ptr{UInt32}(x + 0), 8, 1) + f === :alternate_scan && return (Ptr{UInt32}(x + 0), 9, 1) + f === :repeat_first_field && return (Ptr{UInt32}(x + 0), 10, 1) + f === :progressive_frame && return (Ptr{UInt32}(x + 0), 11, 1) + f === :is_first_field && return (Ptr{UInt32}(x + 0), 12, 1) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#414", f::Symbol) + r = Ref{var"##Ctag#414"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#414"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#414"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#415" + dispatch_id::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#415"}, f::Symbol) + f === :dispatch_id && return Ptr{UInt64}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#415", f::Symbol) + r = Ref{var"##Ctag#415"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#415"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#415"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#416" + dispatch_id::UInt64 + size::Csize_t + num_slots::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#416"}, f::Symbol) + f === :dispatch_id && return Ptr{UInt64}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :num_slots && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#416", f::Symbol) + r = Ref{var"##Ctag#416"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#416"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#416"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#417" + no_args::rocprofiler_scratch_memory_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#417"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_scratch_memory_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#417", f::Symbol) + r = Ref{var"##Ctag#417"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#417"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#417"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#418" + no_args::rocprofiler_scratch_memory_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#418"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_scratch_memory_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#418", f::Symbol) + r = Ref{var"##Ctag#418"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#418"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#418"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#419" + no_args::rocprofiler_scratch_memory_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#419"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_scratch_memory_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#419", f::Symbol) + r = Ref{var"##Ctag#419"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#419"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#419"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#420" + no_args::rocprofiler_scratch_memory_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#420"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_scratch_memory_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#420", f::Symbol) + r = Ref{var"##Ctag#420"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#420"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#420"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#424" + requiresVAddr::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#424"}, f::Symbol) + f === :requiresVAddr && return (Ptr{Cuint}(x + 0), 0, 1) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#424", f::Symbol) + r = Ref{var"##Ctag#424"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#424"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#424"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#426" + apply_grain::UInt32 + chroma_scaling_from_luma::UInt32 + grain_scaling_minus_8::UInt32 + ar_coeff_lag::UInt32 + ar_coeff_shift_minus_6::UInt32 + grain_scale_shift::UInt32 + overlap_flag::UInt32 + clip_to_restricted_range::UInt32 + reserved::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#426"}, f::Symbol) + f === :apply_grain && return (Ptr{UInt32}(x + 0), 0, 1) + f === :chroma_scaling_from_luma && return (Ptr{UInt32}(x + 0), 1, 1) + f === :grain_scaling_minus_8 && return (Ptr{UInt32}(x + 0), 2, 2) + f === :ar_coeff_lag && return (Ptr{UInt32}(x + 0), 4, 2) + f === :ar_coeff_shift_minus_6 && return (Ptr{UInt32}(x + 0), 6, 2) + f === :grain_scale_shift && return (Ptr{UInt32}(x + 0), 8, 2) + f === :overlap_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :clip_to_restricted_range && return (Ptr{UInt32}(x + 0), 11, 1) + f === :reserved && return (Ptr{UInt32}(x + 0), 12, 20) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#426", f::Symbol) + r = Ref{var"##Ctag#426"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#426"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#426"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#427" + gridDim::Ptr{dim3} + blockDim::Ptr{dim3} + sharedMem::Ptr{Csize_t} + stream::Ptr{hipStream_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#427"}, f::Symbol) + f === :gridDim && return Ptr{Ptr{dim3}}(x + 0) + f === :blockDim && return Ptr{Ptr{dim3}}(x + 8) + f === :sharedMem && return Ptr{Ptr{Csize_t}}(x + 16) + f === :stream && return Ptr{Ptr{hipStream_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#427", f::Symbol) + r = Ref{var"##Ctag#427"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#427"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#427"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#428" + gridDim::rocprofiler_dim3_t + blockDim::rocprofiler_dim3_t + sharedMem::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#428"}, f::Symbol) + f === :gridDim && return Ptr{rocprofiler_dim3_t}(x + 0) + f === :blockDim && return Ptr{rocprofiler_dim3_t}(x + 12) + f === :sharedMem && return Ptr{Csize_t}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#428", f::Symbol) + r = Ref{var"##Ctag#428"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#428"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#428"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#429" + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#429"}, f::Symbol) + f === :data && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#429", f::Symbol) + r = Ref{var"##Ctag#429"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#429"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#429"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#430" + modules::Ptr{Ptr{Cvoid}} + hostFunction::Ptr{Cvoid} + deviceFunction::Ptr{Cchar} + deviceName::Ptr{Cchar} + threadLimit::Cuint + tid::Ptr{uint3} + bid::Ptr{uint3} + blockDim::Ptr{dim3} + gridDim::Ptr{dim3} + wSize::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#430"}, f::Symbol) + f === :modules && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :hostFunction && return Ptr{Ptr{Cvoid}}(x + 8) + f === :deviceFunction && return Ptr{Ptr{Cchar}}(x + 16) + f === :deviceName && return Ptr{Ptr{Cchar}}(x + 24) + f === :threadLimit && return Ptr{Cuint}(x + 32) + f === :tid && return Ptr{Ptr{uint3}}(x + 40) + f === :bid && return Ptr{Ptr{uint3}}(x + 48) + f === :blockDim && return Ptr{Ptr{dim3}}(x + 56) + f === :gridDim && return Ptr{Ptr{dim3}}(x + 64) + f === :wSize && return Ptr{Ptr{Cint}}(x + 72) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#430", f::Symbol) + r = Ref{var"##Ctag#430"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#430"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#430"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#431" + hipModule::Ptr{Cvoid} + pointer::Ptr{Ptr{Cvoid}} + init_value::Ptr{Cvoid} + name::Ptr{Cchar} + size::Csize_t + align::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#431"}, f::Symbol) + f === :hipModule && return Ptr{Ptr{Cvoid}}(x + 0) + f === :pointer && return Ptr{Ptr{Ptr{Cvoid}}}(x + 8) + f === :init_value && return Ptr{Ptr{Cvoid}}(x + 16) + f === :name && return Ptr{Ptr{Cchar}}(x + 24) + f === :size && return Ptr{Csize_t}(x + 32) + f === :align && return Ptr{Cuint}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#431", f::Symbol) + r = Ref{var"##Ctag#431"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#431"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#431"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#432" + modules::Ptr{Ptr{Cvoid}} + var::Ptr{Cvoid} + hostVar::Ptr{Cchar} + deviceVar::Ptr{Cchar} + type::Cint + ext::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#432"}, f::Symbol) + f === :modules && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :var && return Ptr{Ptr{Cvoid}}(x + 8) + f === :hostVar && return Ptr{Ptr{Cchar}}(x + 16) + f === :deviceVar && return Ptr{Ptr{Cchar}}(x + 24) + f === :type && return Ptr{Cint}(x + 32) + f === :ext && return Ptr{Cint}(x + 36) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#432", f::Symbol) + r = Ref{var"##Ctag#432"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#432"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#432"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#433" + modules::Ptr{Ptr{Cvoid}} + var::Ptr{Cvoid} + hostVar::Ptr{Cchar} + deviceVar::Ptr{Cchar} + type::Cint + norm::Cint + ext::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#433"}, f::Symbol) + f === :modules && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :var && return Ptr{Ptr{Cvoid}}(x + 8) + f === :hostVar && return Ptr{Ptr{Cchar}}(x + 16) + f === :deviceVar && return Ptr{Ptr{Cchar}}(x + 24) + f === :type && return Ptr{Cint}(x + 32) + f === :norm && return Ptr{Cint}(x + 36) + f === :ext && return Ptr{Cint}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#433", f::Symbol) + r = Ref{var"##Ctag#433"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#433"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#433"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#434" + modules::Ptr{Ptr{Cvoid}} + var::Ptr{Cvoid} + hostVar::Ptr{Cchar} + deviceVar::Ptr{Cchar} + ext::Cint + size::Csize_t + constant::Cint + _global::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#434"}, f::Symbol) + f === :modules && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :var && return Ptr{Ptr{Cvoid}}(x + 8) + f === :hostVar && return Ptr{Ptr{Cchar}}(x + 16) + f === :deviceVar && return Ptr{Ptr{Cchar}}(x + 24) + f === :ext && return Ptr{Cint}(x + 32) + f === :size && return Ptr{Csize_t}(x + 40) + f === :constant && return Ptr{Cint}(x + 48) + f === :_global && return Ptr{Cint}(x + 52) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#434", f::Symbol) + r = Ref{var"##Ctag#434"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#434"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#434"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#435" + modules::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#435"}, f::Symbol) + f === :modules && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#435", f::Symbol) + r = Ref{var"##Ctag#435"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#435"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#435"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#436" + id::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#436"}, f::Symbol) + f === :id && return Ptr{UInt32}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#436", f::Symbol) + r = Ref{var"##Ctag#436"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#436"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#436"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#437" + array::Ptr{hipArray_t} + pAllocateArray::Ptr{HIP_ARRAY3D_DESCRIPTOR} +end +function Base.getproperty(x::Ptr{var"##Ctag#437"}, f::Symbol) + f === :array && return Ptr{Ptr{hipArray_t}}(x + 0) + f === :pAllocateArray && return Ptr{Ptr{HIP_ARRAY3D_DESCRIPTOR}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#437", f::Symbol) + r = Ref{var"##Ctag#437"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#437"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#437"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#438" + pArrayDescriptor::Ptr{HIP_ARRAY3D_DESCRIPTOR} + array::hipArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#438"}, f::Symbol) + f === :pArrayDescriptor && return Ptr{Ptr{HIP_ARRAY3D_DESCRIPTOR}}(x + 0) + f === :array && return Ptr{hipArray_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#438", f::Symbol) + r = Ref{var"##Ctag#438"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#438"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#438"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#439" + pHandle::Ptr{hipArray_t} + pAllocateArray::Ptr{HIP_ARRAY_DESCRIPTOR} +end +function Base.getproperty(x::Ptr{var"##Ctag#439"}, f::Symbol) + f === :pHandle && return Ptr{Ptr{hipArray_t}}(x + 0) + f === :pAllocateArray && return Ptr{Ptr{HIP_ARRAY_DESCRIPTOR}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#439", f::Symbol) + r = Ref{var"##Ctag#439"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#439"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#439"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#440" + array::hipArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#440"}, f::Symbol) + f === :array && return Ptr{hipArray_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#440", f::Symbol) + r = Ref{var"##Ctag#440"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#440"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#440"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#441" + pArrayDescriptor::Ptr{HIP_ARRAY_DESCRIPTOR} + array::hipArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#441"}, f::Symbol) + f === :pArrayDescriptor && return Ptr{Ptr{HIP_ARRAY_DESCRIPTOR}}(x + 0) + f === :array && return Ptr{hipArray_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#441", f::Symbol) + r = Ref{var"##Ctag#441"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#441"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#441"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#442" + desc::Ptr{hipChannelFormatDesc} + extent::Ptr{hipExtent} + flags::Ptr{Cuint} + array::hipArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#442"}, f::Symbol) + f === :desc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 0) + f === :extent && return Ptr{Ptr{hipExtent}}(x + 8) + f === :flags && return Ptr{Ptr{Cuint}}(x + 16) + f === :array && return Ptr{hipArray_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#442", f::Symbol) + r = Ref{var"##Ctag#442"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#442"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#442"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#443" + offset::Ptr{Csize_t} + tex::Ptr{textureReference} + devPtr::Ptr{Cvoid} + desc::Ptr{hipChannelFormatDesc} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#443"}, f::Symbol) + f === :offset && return Ptr{Ptr{Csize_t}}(x + 0) + f === :tex && return Ptr{Ptr{textureReference}}(x + 8) + f === :devPtr && return Ptr{Ptr{Cvoid}}(x + 16) + f === :desc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 24) + f === :size && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#443", f::Symbol) + r = Ref{var"##Ctag#443"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#443"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#443"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#444" + offset::Ptr{Csize_t} + tex::Ptr{textureReference} + devPtr::Ptr{Cvoid} + desc::Ptr{hipChannelFormatDesc} + width::Csize_t + height::Csize_t + pitch::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#444"}, f::Symbol) + f === :offset && return Ptr{Ptr{Csize_t}}(x + 0) + f === :tex && return Ptr{Ptr{textureReference}}(x + 8) + f === :devPtr && return Ptr{Ptr{Cvoid}}(x + 16) + f === :desc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 24) + f === :width && return Ptr{Csize_t}(x + 32) + f === :height && return Ptr{Csize_t}(x + 40) + f === :pitch && return Ptr{Csize_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#444", f::Symbol) + r = Ref{var"##Ctag#444"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#444"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#444"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#445" + tex::Ptr{textureReference} + array::hipArray_const_t + desc::Ptr{hipChannelFormatDesc} +end +function Base.getproperty(x::Ptr{var"##Ctag#445"}, f::Symbol) + f === :tex && return Ptr{Ptr{textureReference}}(x + 0) + f === :array && return Ptr{hipArray_const_t}(x + 8) + f === :desc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#445", f::Symbol) + r = Ref{var"##Ctag#445"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#445"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#445"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#446" + tex::Ptr{textureReference} + mipmappedArray::hipMipmappedArray_const_t + desc::Ptr{hipChannelFormatDesc} +end +function Base.getproperty(x::Ptr{var"##Ctag#446"}, f::Symbol) + f === :tex && return Ptr{Ptr{textureReference}}(x + 0) + f === :mipmappedArray && return Ptr{hipMipmappedArray_const_t}(x + 8) + f === :desc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#446", f::Symbol) + r = Ref{var"##Ctag#446"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#446"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#446"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#447" + device::Ptr{Cint} + prop::Ptr{hipDeviceProp_tR0600} +end +function Base.getproperty(x::Ptr{var"##Ctag#447"}, f::Symbol) + f === :device && return Ptr{Ptr{Cint}}(x + 0) + f === :prop && return Ptr{Ptr{hipDeviceProp_tR0600}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#447", f::Symbol) + r = Ref{var"##Ctag#447"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#447"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#447"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#448" + device::Ptr{Cint} + prop::Ptr{hipDeviceProp_tR0000} +end +function Base.getproperty(x::Ptr{var"##Ctag#448"}, f::Symbol) + f === :device && return Ptr{Ptr{Cint}}(x + 0) + f === :prop && return Ptr{Ptr{hipDeviceProp_tR0000}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#448", f::Symbol) + r = Ref{var"##Ctag#448"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#448"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#448"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#449" + gridDim::rocprofiler_dim3_t + blockDim::rocprofiler_dim3_t + sharedMem::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#449"}, f::Symbol) + f === :gridDim && return Ptr{rocprofiler_dim3_t}(x + 0) + f === :blockDim && return Ptr{rocprofiler_dim3_t}(x + 12) + f === :sharedMem && return Ptr{Csize_t}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#449", f::Symbol) + r = Ref{var"##Ctag#449"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#449"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#449"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#450" + pSurfObject::Ptr{hipSurfaceObject_t} + pResDesc::Ptr{hipResourceDesc} +end +function Base.getproperty(x::Ptr{var"##Ctag#450"}, f::Symbol) + f === :pSurfObject && return Ptr{Ptr{hipSurfaceObject_t}}(x + 0) + f === :pResDesc && return Ptr{Ptr{hipResourceDesc}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#450", f::Symbol) + r = Ref{var"##Ctag#450"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#450"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#450"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#451" + pTexObject::Ptr{hipTextureObject_t} + pResDesc::Ptr{hipResourceDesc} + pTexDesc::Ptr{hipTextureDesc} + pResViewDesc::Ptr{hipResourceViewDesc} +end +function Base.getproperty(x::Ptr{var"##Ctag#451"}, f::Symbol) + f === :pTexObject && return Ptr{Ptr{hipTextureObject_t}}(x + 0) + f === :pResDesc && return Ptr{Ptr{hipResourceDesc}}(x + 8) + f === :pTexDesc && return Ptr{Ptr{hipTextureDesc}}(x + 16) + f === :pResViewDesc && return Ptr{Ptr{hipResourceViewDesc}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#451", f::Symbol) + r = Ref{var"##Ctag#451"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#451"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#451"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#452" + ctx::Ptr{hipCtx_t} + flags::Cuint + device::hipDevice_t +end +function Base.getproperty(x::Ptr{var"##Ctag#452"}, f::Symbol) + f === :ctx && return Ptr{Ptr{hipCtx_t}}(x + 0) + f === :flags && return Ptr{Cuint}(x + 8) + f === :device && return Ptr{hipDevice_t}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#452", f::Symbol) + r = Ref{var"##Ctag#452"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#452"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#452"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#453" + ctx::hipCtx_t +end +function Base.getproperty(x::Ptr{var"##Ctag#453"}, f::Symbol) + f === :ctx && return Ptr{hipCtx_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#453", f::Symbol) + r = Ref{var"##Ctag#453"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#453"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#453"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#454" + peerCtx::hipCtx_t +end +function Base.getproperty(x::Ptr{var"##Ctag#454"}, f::Symbol) + f === :peerCtx && return Ptr{hipCtx_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#454", f::Symbol) + r = Ref{var"##Ctag#454"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#454"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#454"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#455" + peerCtx::hipCtx_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#455"}, f::Symbol) + f === :peerCtx && return Ptr{hipCtx_t}(x + 0) + f === :flags && return Ptr{Cuint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#455", f::Symbol) + r = Ref{var"##Ctag#455"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#455"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#455"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#456" + ctx::hipCtx_t + apiVersion::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#456"}, f::Symbol) + f === :ctx && return Ptr{hipCtx_t}(x + 0) + f === :apiVersion && return Ptr{Ptr{Cint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#456", f::Symbol) + r = Ref{var"##Ctag#456"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#456"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#456"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#457" + cacheConfig::Ptr{hipFuncCache_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#457"}, f::Symbol) + f === :cacheConfig && return Ptr{Ptr{hipFuncCache_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#457", f::Symbol) + r = Ref{var"##Ctag#457"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#457"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#457"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#458" + ctx::Ptr{hipCtx_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#458"}, f::Symbol) + f === :ctx && return Ptr{Ptr{hipCtx_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#458", f::Symbol) + r = Ref{var"##Ctag#458"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#458"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#458"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#459" + device::Ptr{hipDevice_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#459"}, f::Symbol) + f === :device && return Ptr{Ptr{hipDevice_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#459", f::Symbol) + r = Ref{var"##Ctag#459"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#459"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#459"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#460" + flags::Ptr{Cuint} +end +function Base.getproperty(x::Ptr{var"##Ctag#460"}, f::Symbol) + f === :flags && return Ptr{Ptr{Cuint}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#460", f::Symbol) + r = Ref{var"##Ctag#460"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#460"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#460"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#461" + pConfig::Ptr{hipSharedMemConfig} +end +function Base.getproperty(x::Ptr{var"##Ctag#461"}, f::Symbol) + f === :pConfig && return Ptr{Ptr{hipSharedMemConfig}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#461", f::Symbol) + r = Ref{var"##Ctag#461"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#461"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#461"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#462" + ctx::Ptr{hipCtx_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#462"}, f::Symbol) + f === :ctx && return Ptr{Ptr{hipCtx_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#462", f::Symbol) + r = Ref{var"##Ctag#462"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#462"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#462"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#463" + ctx::hipCtx_t +end +function Base.getproperty(x::Ptr{var"##Ctag#463"}, f::Symbol) + f === :ctx && return Ptr{hipCtx_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#463", f::Symbol) + r = Ref{var"##Ctag#463"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#463"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#463"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#464" + cacheConfig::hipFuncCache_t +end +function Base.getproperty(x::Ptr{var"##Ctag#464"}, f::Symbol) + f === :cacheConfig && return Ptr{hipFuncCache_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#464", f::Symbol) + r = Ref{var"##Ctag#464"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#464"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#464"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#465" + ctx::hipCtx_t +end +function Base.getproperty(x::Ptr{var"##Ctag#465"}, f::Symbol) + f === :ctx && return Ptr{hipCtx_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#465", f::Symbol) + r = Ref{var"##Ctag#465"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#465"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#465"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#466" + config::hipSharedMemConfig +end +function Base.getproperty(x::Ptr{var"##Ctag#466"}, f::Symbol) + f === :config && return Ptr{hipSharedMemConfig}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#466", f::Symbol) + r = Ref{var"##Ctag#466"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#466"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#466"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#467" + no_args::rocprofiler_hip_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#467"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hip_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#467", f::Symbol) + r = Ref{var"##Ctag#467"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#467"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#467"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#468" + extMem::hipExternalMemory_t +end +function Base.getproperty(x::Ptr{var"##Ctag#468"}, f::Symbol) + f === :extMem && return Ptr{hipExternalMemory_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#468", f::Symbol) + r = Ref{var"##Ctag#468"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#468"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#468"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#469" + extSem::hipExternalSemaphore_t +end +function Base.getproperty(x::Ptr{var"##Ctag#469"}, f::Symbol) + f === :extSem && return Ptr{hipExternalSemaphore_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#469", f::Symbol) + r = Ref{var"##Ctag#469"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#469"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#469"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#470" + surfaceObject::hipSurfaceObject_t +end +function Base.getproperty(x::Ptr{var"##Ctag#470"}, f::Symbol) + f === :surfaceObject && return Ptr{hipSurfaceObject_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#470", f::Symbol) + r = Ref{var"##Ctag#470"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#470"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#470"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#471" + textureObject::hipTextureObject_t +end +function Base.getproperty(x::Ptr{var"##Ctag#471"}, f::Symbol) + f === :textureObject && return Ptr{hipTextureObject_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#471", f::Symbol) + r = Ref{var"##Ctag#471"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#471"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#471"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#472" + canAccessPeer::Ptr{Cint} + deviceId::Cint + peerDeviceId::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#472"}, f::Symbol) + f === :canAccessPeer && return Ptr{Ptr{Cint}}(x + 0) + f === :deviceId && return Ptr{Cint}(x + 8) + f === :peerDeviceId && return Ptr{Cint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#472", f::Symbol) + r = Ref{var"##Ctag#472"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#472"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#472"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#473" + major::Ptr{Cint} + minor::Ptr{Cint} + device::hipDevice_t +end +function Base.getproperty(x::Ptr{var"##Ctag#473"}, f::Symbol) + f === :major && return Ptr{Ptr{Cint}}(x + 0) + f === :minor && return Ptr{Ptr{Cint}}(x + 8) + f === :device && return Ptr{hipDevice_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#473", f::Symbol) + r = Ref{var"##Ctag#473"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#473"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#473"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#474" + peerDeviceId::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#474"}, f::Symbol) + f === :peerDeviceId && return Ptr{Cint}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#474", f::Symbol) + r = Ref{var"##Ctag#474"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#474"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#474"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#475" + peerDeviceId::Cint + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#475"}, f::Symbol) + f === :peerDeviceId && return Ptr{Cint}(x + 0) + f === :flags && return Ptr{Cuint}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#475", f::Symbol) + r = Ref{var"##Ctag#475"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#475"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#475"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#476" + device::Ptr{hipDevice_t} + ordinal::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#476"}, f::Symbol) + f === :device && return Ptr{Ptr{hipDevice_t}}(x + 0) + f === :ordinal && return Ptr{Cint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#476", f::Symbol) + r = Ref{var"##Ctag#476"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#476"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#476"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#477" + pi::Ptr{Cint} + attr::hipDeviceAttribute_t + deviceId::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#477"}, f::Symbol) + f === :pi && return Ptr{Ptr{Cint}}(x + 0) + f === :attr && return Ptr{hipDeviceAttribute_t}(x + 8) + f === :deviceId && return Ptr{Cint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#477", f::Symbol) + r = Ref{var"##Ctag#477"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#477"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#477"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#478" + device::Ptr{Cint} + pciBusId::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#478"}, f::Symbol) + f === :device && return Ptr{Ptr{Cint}}(x + 0) + f === :pciBusId && return Ptr{Ptr{Cchar}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#478", f::Symbol) + r = Ref{var"##Ctag#478"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#478"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#478"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#479" + cacheConfig::Ptr{hipFuncCache_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#479"}, f::Symbol) + f === :cacheConfig && return Ptr{Ptr{hipFuncCache_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#479", f::Symbol) + r = Ref{var"##Ctag#479"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#479"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#479"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#480" + mem_pool::Ptr{hipMemPool_t} + device::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#480"}, f::Symbol) + f === :mem_pool && return Ptr{Ptr{hipMemPool_t}}(x + 0) + f === :device && return Ptr{Cint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#480", f::Symbol) + r = Ref{var"##Ctag#480"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#480"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#480"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#481" + device::Cint + attr::hipGraphMemAttributeType + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#481"}, f::Symbol) + f === :device && return Ptr{Cint}(x + 0) + f === :attr && return Ptr{hipGraphMemAttributeType}(x + 4) + f === :value && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#481", f::Symbol) + r = Ref{var"##Ctag#481"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#481"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#481"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#482" + pValue::Ptr{Csize_t} + limit::hipLimit_t +end +function Base.getproperty(x::Ptr{var"##Ctag#482"}, f::Symbol) + f === :pValue && return Ptr{Ptr{Csize_t}}(x + 0) + f === :limit && return Ptr{hipLimit_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#482", f::Symbol) + r = Ref{var"##Ctag#482"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#482"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#482"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#483" + mem_pool::Ptr{hipMemPool_t} + device::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#483"}, f::Symbol) + f === :mem_pool && return Ptr{Ptr{hipMemPool_t}}(x + 0) + f === :device && return Ptr{Cint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#483", f::Symbol) + r = Ref{var"##Ctag#483"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#483"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#483"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#484" + name::Ptr{Cchar} + len::Cint + device::hipDevice_t +end +function Base.getproperty(x::Ptr{var"##Ctag#484"}, f::Symbol) + f === :name && return Ptr{Ptr{Cchar}}(x + 0) + f === :len && return Ptr{Cint}(x + 8) + f === :device && return Ptr{hipDevice_t}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#484", f::Symbol) + r = Ref{var"##Ctag#484"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#484"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#484"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#485" + value::Ptr{Cint} + attr::hipDeviceP2PAttr + srcDevice::Cint + dstDevice::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#485"}, f::Symbol) + f === :value && return Ptr{Ptr{Cint}}(x + 0) + f === :attr && return Ptr{hipDeviceP2PAttr}(x + 8) + f === :srcDevice && return Ptr{Cint}(x + 12) + f === :dstDevice && return Ptr{Cint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#485", f::Symbol) + r = Ref{var"##Ctag#485"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#485"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#485"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#486" + pciBusId::Ptr{Cchar} + len::Cint + device::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#486"}, f::Symbol) + f === :pciBusId && return Ptr{Ptr{Cchar}}(x + 0) + f === :len && return Ptr{Cint}(x + 8) + f === :device && return Ptr{Cint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#486", f::Symbol) + r = Ref{var"##Ctag#486"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#486"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#486"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#487" + pConfig::Ptr{hipSharedMemConfig} +end +function Base.getproperty(x::Ptr{var"##Ctag#487"}, f::Symbol) + f === :pConfig && return Ptr{Ptr{hipSharedMemConfig}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#487", f::Symbol) + r = Ref{var"##Ctag#487"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#487"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#487"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#488" + leastPriority::Ptr{Cint} + greatestPriority::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#488"}, f::Symbol) + f === :leastPriority && return Ptr{Ptr{Cint}}(x + 0) + f === :greatestPriority && return Ptr{Ptr{Cint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#488", f::Symbol) + r = Ref{var"##Ctag#488"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#488"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#488"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#489" + uuid::Ptr{hipUUID} + device::hipDevice_t +end +function Base.getproperty(x::Ptr{var"##Ctag#489"}, f::Symbol) + f === :uuid && return Ptr{Ptr{hipUUID}}(x + 0) + f === :device && return Ptr{hipDevice_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#489", f::Symbol) + r = Ref{var"##Ctag#489"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#489"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#489"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#490" + device::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#490"}, f::Symbol) + f === :device && return Ptr{Cint}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#490", f::Symbol) + r = Ref{var"##Ctag#490"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#490"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#490"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#491" + dev::hipDevice_t + flags::Ptr{Cuint} + active::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#491"}, f::Symbol) + f === :dev && return Ptr{hipDevice_t}(x + 0) + f === :flags && return Ptr{Ptr{Cuint}}(x + 8) + f === :active && return Ptr{Ptr{Cint}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#491", f::Symbol) + r = Ref{var"##Ctag#491"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#491"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#491"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#492" + dev::hipDevice_t +end +function Base.getproperty(x::Ptr{var"##Ctag#492"}, f::Symbol) + f === :dev && return Ptr{hipDevice_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#492", f::Symbol) + r = Ref{var"##Ctag#492"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#492"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#492"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#493" + dev::hipDevice_t +end +function Base.getproperty(x::Ptr{var"##Ctag#493"}, f::Symbol) + f === :dev && return Ptr{hipDevice_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#493", f::Symbol) + r = Ref{var"##Ctag#493"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#493"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#493"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#494" + pctx::Ptr{hipCtx_t} + dev::hipDevice_t +end +function Base.getproperty(x::Ptr{var"##Ctag#494"}, f::Symbol) + f === :pctx && return Ptr{Ptr{hipCtx_t}}(x + 0) + f === :dev && return Ptr{hipDevice_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#494", f::Symbol) + r = Ref{var"##Ctag#494"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#494"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#494"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#495" + dev::hipDevice_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#495"}, f::Symbol) + f === :dev && return Ptr{hipDevice_t}(x + 0) + f === :flags && return Ptr{Cuint}(x + 4) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#495", f::Symbol) + r = Ref{var"##Ctag#495"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#495"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#495"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#496" + no_args::rocprofiler_hip_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#496"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hip_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#496", f::Symbol) + r = Ref{var"##Ctag#496"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#496"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#496"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#497" + cacheConfig::hipFuncCache_t +end +function Base.getproperty(x::Ptr{var"##Ctag#497"}, f::Symbol) + f === :cacheConfig && return Ptr{hipFuncCache_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#497", f::Symbol) + r = Ref{var"##Ctag#497"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#497"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#497"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#498" + device::Cint + attr::hipGraphMemAttributeType + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#498"}, f::Symbol) + f === :device && return Ptr{Cint}(x + 0) + f === :attr && return Ptr{hipGraphMemAttributeType}(x + 4) + f === :value && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#498", f::Symbol) + r = Ref{var"##Ctag#498"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#498"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#498"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#499" + limit::hipLimit_t + value::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#499"}, f::Symbol) + f === :limit && return Ptr{hipLimit_t}(x + 0) + f === :value && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#499", f::Symbol) + r = Ref{var"##Ctag#499"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#499"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#499"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#500" + device::Cint + mem_pool::hipMemPool_t +end +function Base.getproperty(x::Ptr{var"##Ctag#500"}, f::Symbol) + f === :device && return Ptr{Cint}(x + 0) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#500", f::Symbol) + r = Ref{var"##Ctag#500"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#500"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#500"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#501" + config::hipSharedMemConfig +end +function Base.getproperty(x::Ptr{var"##Ctag#501"}, f::Symbol) + f === :config && return Ptr{hipSharedMemConfig}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#501", f::Symbol) + r = Ref{var"##Ctag#501"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#501"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#501"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#502" + no_args::rocprofiler_hip_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#502"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hip_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#502", f::Symbol) + r = Ref{var"##Ctag#502"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#502"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#502"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#503" + bytes::Ptr{Csize_t} + device::hipDevice_t +end +function Base.getproperty(x::Ptr{var"##Ctag#503"}, f::Symbol) + f === :bytes && return Ptr{Ptr{Csize_t}}(x + 0) + f === :device && return Ptr{hipDevice_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#503", f::Symbol) + r = Ref{var"##Ctag#503"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#503"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#503"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#504" + driverVersion::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#504"}, f::Symbol) + f === :driverVersion && return Ptr{Ptr{Cint}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#504", f::Symbol) + r = Ref{var"##Ctag#504"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#504"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#504"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#505" + hipError::hipError_t + errorString::Ptr{Ptr{Cchar}} +end +function Base.getproperty(x::Ptr{var"##Ctag#505"}, f::Symbol) + f === :hipError && return Ptr{hipError_t}(x + 0) + f === :errorString && return Ptr{Ptr{Ptr{Cchar}}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#505", f::Symbol) + r = Ref{var"##Ctag#505"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#505"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#505"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#506" + hipError::hipError_t + errorString::Ptr{Ptr{Cchar}} +end +function Base.getproperty(x::Ptr{var"##Ctag#506"}, f::Symbol) + f === :hipError && return Ptr{hipError_t}(x + 0) + f === :errorString && return Ptr{Ptr{Ptr{Cchar}}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#506", f::Symbol) + r = Ref{var"##Ctag#506"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#506"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#506"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#507" + phGraphNode::Ptr{hipGraphNode_t} + hGraph::hipGraph_t + dependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + copyParams::Ptr{HIP_MEMCPY3D} + ctx::hipCtx_t +end +function Base.getproperty(x::Ptr{var"##Ctag#507"}, f::Symbol) + f === :phGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :hGraph && return Ptr{hipGraph_t}(x + 8) + f === :dependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :copyParams && return Ptr{Ptr{HIP_MEMCPY3D}}(x + 32) + f === :ctx && return Ptr{hipCtx_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#507", f::Symbol) + r = Ref{var"##Ctag#507"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#507"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#507"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#508" + pCopy::Ptr{hip_Memcpy2D} +end +function Base.getproperty(x::Ptr{var"##Ctag#508"}, f::Symbol) + f === :pCopy && return Ptr{Ptr{hip_Memcpy2D}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#508", f::Symbol) + r = Ref{var"##Ctag#508"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#508"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#508"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#509" + pCopy::Ptr{HIP_MEMCPY3D} +end +function Base.getproperty(x::Ptr{var"##Ctag#509"}, f::Symbol) + f === :pCopy && return Ptr{Ptr{HIP_MEMCPY3D}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#509", f::Symbol) + r = Ref{var"##Ctag#509"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#509"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#509"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#510" + pCopy::Ptr{HIP_MEMCPY3D} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#510"}, f::Symbol) + f === :pCopy && return Ptr{Ptr{HIP_MEMCPY3D}}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#510", f::Symbol) + r = Ref{var"##Ctag#510"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#510"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#510"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#511" + numAttributes::Cuint + attributes::Ptr{hipPointer_attribute} + data::Ptr{Ptr{Cvoid}} + ptr::hipDeviceptr_t +end +function Base.getproperty(x::Ptr{var"##Ctag#511"}, f::Symbol) + f === :numAttributes && return Ptr{Cuint}(x + 0) + f === :attributes && return Ptr{Ptr{hipPointer_attribute}}(x + 8) + f === :data && return Ptr{Ptr{Ptr{Cvoid}}}(x + 16) + f === :ptr && return Ptr{hipDeviceptr_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#511", f::Symbol) + r = Ref{var"##Ctag#511"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#511"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#511"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#512" + event::Ptr{hipEvent_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#512"}, f::Symbol) + f === :event && return Ptr{Ptr{hipEvent_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#512", f::Symbol) + r = Ref{var"##Ctag#512"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#512"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#512"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#513" + event::Ptr{hipEvent_t} + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#513"}, f::Symbol) + f === :event && return Ptr{Ptr{hipEvent_t}}(x + 0) + f === :flags && return Ptr{Cuint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#513", f::Symbol) + r = Ref{var"##Ctag#513"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#513"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#513"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#514" + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#514"}, f::Symbol) + f === :event && return Ptr{hipEvent_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#514", f::Symbol) + r = Ref{var"##Ctag#514"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#514"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#514"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#515" + ms::Ptr{Cfloat} + start::hipEvent_t + stop::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#515"}, f::Symbol) + f === :ms && return Ptr{Ptr{Cfloat}}(x + 0) + f === :start && return Ptr{hipEvent_t}(x + 8) + f === :stop && return Ptr{hipEvent_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#515", f::Symbol) + r = Ref{var"##Ctag#515"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#515"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#515"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#516" + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#516"}, f::Symbol) + f === :event && return Ptr{hipEvent_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#516", f::Symbol) + r = Ref{var"##Ctag#516"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#516"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#516"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#517" + event::hipEvent_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#517"}, f::Symbol) + f === :event && return Ptr{hipEvent_t}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#517", f::Symbol) + r = Ref{var"##Ctag#517"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#517"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#517"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#518" + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#518"}, f::Symbol) + f === :event && return Ptr{hipEvent_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#518", f::Symbol) + r = Ref{var"##Ctag#518"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#518"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#518"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#519" + device1::Cint + device2::Cint + linktype::Ptr{UInt32} + hopcount::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#519"}, f::Symbol) + f === :device1 && return Ptr{Cint}(x + 0) + f === :device2 && return Ptr{Cint}(x + 4) + f === :linktype && return Ptr{Ptr{UInt32}}(x + 8) + f === :hopcount && return Ptr{Ptr{UInt32}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#519", f::Symbol) + r = Ref{var"##Ctag#519"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#519"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#519"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#520" + function_address::Ptr{Cvoid} + numBlocks::rocprofiler_dim3_t + dimBlocks::rocprofiler_dim3_t + args::Ptr{Ptr{Cvoid}} + sharedMemBytes::Csize_t + stream::hipStream_t + startEvent::hipEvent_t + stopEvent::hipEvent_t + flags::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#520"}, f::Symbol) + f === :function_address && return Ptr{Ptr{Cvoid}}(x + 0) + f === :numBlocks && return Ptr{rocprofiler_dim3_t}(x + 8) + f === :dimBlocks && return Ptr{rocprofiler_dim3_t}(x + 20) + f === :args && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + f === :sharedMemBytes && return Ptr{Csize_t}(x + 40) + f === :stream && return Ptr{hipStream_t}(x + 48) + f === :startEvent && return Ptr{hipEvent_t}(x + 56) + f === :stopEvent && return Ptr{hipEvent_t}(x + 64) + f === :flags && return Ptr{Cint}(x + 72) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#520", f::Symbol) + r = Ref{var"##Ctag#520"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#520"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#520"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#521" + launchParamsList::Ptr{hipLaunchParams} + numDevices::Cint + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#521"}, f::Symbol) + f === :launchParamsList && return Ptr{Ptr{hipLaunchParams}}(x + 0) + f === :numDevices && return Ptr{Cint}(x + 8) + f === :flags && return Ptr{Cuint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#521", f::Symbol) + r = Ref{var"##Ctag#521"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#521"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#521"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#522" + ptr::Ptr{Ptr{Cvoid}} + sizeBytes::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#522"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :sizeBytes && return Ptr{Csize_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#522", f::Symbol) + r = Ref{var"##Ctag#522"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#522"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#522"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#523" + stream::Ptr{hipStream_t} + cuMaskSize::UInt32 + cuMask::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#523"}, f::Symbol) + f === :stream && return Ptr{Ptr{hipStream_t}}(x + 0) + f === :cuMaskSize && return Ptr{UInt32}(x + 8) + f === :cuMask && return Ptr{Ptr{UInt32}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#523", f::Symbol) + r = Ref{var"##Ctag#523"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#523"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#523"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#524" + stream::hipStream_t + cuMaskSize::UInt32 + cuMask::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#524"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :cuMaskSize && return Ptr{UInt32}(x + 8) + f === :cuMask && return Ptr{Ptr{UInt32}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#524", f::Symbol) + r = Ref{var"##Ctag#524"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#524"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#524"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#525" + devPtr::Ptr{Ptr{Cvoid}} + extMem::hipExternalMemory_t + bufferDesc::Ptr{hipExternalMemoryBufferDesc} +end +function Base.getproperty(x::Ptr{var"##Ctag#525"}, f::Symbol) + f === :devPtr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :extMem && return Ptr{hipExternalMemory_t}(x + 8) + f === :bufferDesc && return Ptr{Ptr{hipExternalMemoryBufferDesc}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#525", f::Symbol) + r = Ref{var"##Ctag#525"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#525"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#525"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#526" + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#526"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#526", f::Symbol) + r = Ref{var"##Ctag#526"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#526"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#526"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#527" + array::hipArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#527"}, f::Symbol) + f === :array && return Ptr{hipArray_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#527", f::Symbol) + r = Ref{var"##Ctag#527"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#527"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#527"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#528" + dev_ptr::Ptr{Cvoid} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#528"}, f::Symbol) + f === :dev_ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#528", f::Symbol) + r = Ref{var"##Ctag#528"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#528"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#528"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#529" + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#529"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#529", f::Symbol) + r = Ref{var"##Ctag#529"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#529"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#529"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#530" + mipmappedArray::hipMipmappedArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#530"}, f::Symbol) + f === :mipmappedArray && return Ptr{hipMipmappedArray_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#530", f::Symbol) + r = Ref{var"##Ctag#530"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#530"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#530"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#531" + value::Ptr{Cint} + attrib::hipFunction_attribute + hfunc::hipFunction_t +end +function Base.getproperty(x::Ptr{var"##Ctag#531"}, f::Symbol) + f === :value && return Ptr{Ptr{Cint}}(x + 0) + f === :attrib && return Ptr{hipFunction_attribute}(x + 8) + f === :hfunc && return Ptr{hipFunction_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#531", f::Symbol) + r = Ref{var"##Ctag#531"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#531"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#531"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#532" + attr::Ptr{hipFuncAttributes} + func::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#532"}, f::Symbol) + f === :attr && return Ptr{Ptr{hipFuncAttributes}}(x + 0) + f === :func && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#532", f::Symbol) + r = Ref{var"##Ctag#532"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#532"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#532"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#533" + func::Ptr{Cvoid} + attr::hipFuncAttribute + value::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#533"}, f::Symbol) + f === :func && return Ptr{Ptr{Cvoid}}(x + 0) + f === :attr && return Ptr{hipFuncAttribute}(x + 8) + f === :value && return Ptr{Cint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#533", f::Symbol) + r = Ref{var"##Ctag#533"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#533"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#533"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#534" + func::Ptr{Cvoid} + config::hipFuncCache_t +end +function Base.getproperty(x::Ptr{var"##Ctag#534"}, f::Symbol) + f === :func && return Ptr{Ptr{Cvoid}}(x + 0) + f === :config && return Ptr{hipFuncCache_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#534", f::Symbol) + r = Ref{var"##Ctag#534"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#534"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#534"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#535" + func::Ptr{Cvoid} + config::hipSharedMemConfig +end +function Base.getproperty(x::Ptr{var"##Ctag#535"}, f::Symbol) + f === :func && return Ptr{Ptr{Cvoid}}(x + 0) + f === :config && return Ptr{hipSharedMemConfig}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#535", f::Symbol) + r = Ref{var"##Ctag#535"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#535"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#535"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#536" + pHipDeviceCount::Ptr{Cuint} + pHipDevices::Ptr{Cint} + hipDeviceCount::Cuint + deviceList::hipGLDeviceList +end +function Base.getproperty(x::Ptr{var"##Ctag#536"}, f::Symbol) + f === :pHipDeviceCount && return Ptr{Ptr{Cuint}}(x + 0) + f === :pHipDevices && return Ptr{Ptr{Cint}}(x + 8) + f === :hipDeviceCount && return Ptr{Cuint}(x + 16) + f === :deviceList && return Ptr{hipGLDeviceList}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#536", f::Symbol) + r = Ref{var"##Ctag#536"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#536"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#536"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#537" + desc::Ptr{hipChannelFormatDesc} + array::hipArray_const_t +end +function Base.getproperty(x::Ptr{var"##Ctag#537"}, f::Symbol) + f === :desc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 0) + f === :array && return Ptr{hipArray_const_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#537", f::Symbol) + r = Ref{var"##Ctag#537"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#537"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#537"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#538" + deviceId::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#538"}, f::Symbol) + f === :deviceId && return Ptr{Ptr{Cint}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#538", f::Symbol) + r = Ref{var"##Ctag#538"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#538"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#538"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#539" + count::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#539"}, f::Symbol) + f === :count && return Ptr{Ptr{Cint}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#539", f::Symbol) + r = Ref{var"##Ctag#539"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#539"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#539"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#540" + flags::Ptr{Cuint} +end +function Base.getproperty(x::Ptr{var"##Ctag#540"}, f::Symbol) + f === :flags && return Ptr{Ptr{Cuint}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#540", f::Symbol) + r = Ref{var"##Ctag#540"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#540"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#540"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#541" + prop::Ptr{hipDeviceProp_tR0600} + deviceId::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#541"}, f::Symbol) + f === :prop && return Ptr{Ptr{hipDeviceProp_tR0600}}(x + 0) + f === :deviceId && return Ptr{Cint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#541", f::Symbol) + r = Ref{var"##Ctag#541"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#541"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#541"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#542" + prop::Ptr{hipDeviceProp_tR0000} + deviceId::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#542"}, f::Symbol) + f === :prop && return Ptr{Ptr{hipDeviceProp_tR0000}}(x + 0) + f === :deviceId && return Ptr{Cint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#542", f::Symbol) + r = Ref{var"##Ctag#542"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#542"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#542"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#543" + hip_error::hipError_t +end +function Base.getproperty(x::Ptr{var"##Ctag#543"}, f::Symbol) + f === :hip_error && return Ptr{hipError_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#543", f::Symbol) + r = Ref{var"##Ctag#543"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#543"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#543"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#544" + hipError::hipError_t +end +function Base.getproperty(x::Ptr{var"##Ctag#544"}, f::Symbol) + f === :hipError && return Ptr{hipError_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#544", f::Symbol) + r = Ref{var"##Ctag#544"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#544"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#544"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#545" + no_args::rocprofiler_hip_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#545"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hip_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#545", f::Symbol) + r = Ref{var"##Ctag#545"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#545"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#545"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#546" + levelArray::Ptr{hipArray_t} + mipmappedArray::hipMipmappedArray_const_t + level::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#546"}, f::Symbol) + f === :levelArray && return Ptr{Ptr{hipArray_t}}(x + 0) + f === :mipmappedArray && return Ptr{hipMipmappedArray_const_t}(x + 8) + f === :level && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#546", f::Symbol) + r = Ref{var"##Ctag#546"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#546"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#546"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#547" + devPtr::Ptr{Ptr{Cvoid}} + symbol::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#547"}, f::Symbol) + f === :devPtr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#547", f::Symbol) + r = Ref{var"##Ctag#547"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#547"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#547"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#548" + size::Ptr{Csize_t} + symbol::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#548"}, f::Symbol) + f === :size && return Ptr{Ptr{Csize_t}}(x + 0) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#548", f::Symbol) + r = Ref{var"##Ctag#548"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#548"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#548"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#549" + offset::Ptr{Csize_t} + texref::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#549"}, f::Symbol) + f === :offset && return Ptr{Ptr{Csize_t}}(x + 0) + f === :texref && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#549", f::Symbol) + r = Ref{var"##Ctag#549"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#549"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#549"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#550" + pResDesc::Ptr{hipResourceDesc} + textureObject::hipTextureObject_t +end +function Base.getproperty(x::Ptr{var"##Ctag#550"}, f::Symbol) + f === :pResDesc && return Ptr{Ptr{hipResourceDesc}}(x + 0) + f === :textureObject && return Ptr{hipTextureObject_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#550", f::Symbol) + r = Ref{var"##Ctag#550"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#550"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#550"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#551" + pResViewDesc::Ptr{hipResourceViewDesc} + textureObject::hipTextureObject_t +end +function Base.getproperty(x::Ptr{var"##Ctag#551"}, f::Symbol) + f === :pResViewDesc && return Ptr{Ptr{hipResourceViewDesc}}(x + 0) + f === :textureObject && return Ptr{hipTextureObject_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#551", f::Symbol) + r = Ref{var"##Ctag#551"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#551"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#551"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#552" + pTexDesc::Ptr{hipTextureDesc} + textureObject::hipTextureObject_t +end +function Base.getproperty(x::Ptr{var"##Ctag#552"}, f::Symbol) + f === :pTexDesc && return Ptr{Ptr{hipTextureDesc}}(x + 0) + f === :textureObject && return Ptr{hipTextureObject_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#552", f::Symbol) + r = Ref{var"##Ctag#552"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#552"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#552"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#553" + texref::Ptr{Ptr{textureReference}} + symbol::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#553"}, f::Symbol) + f === :texref && return Ptr{Ptr{Ptr{textureReference}}}(x + 0) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#553", f::Symbol) + r = Ref{var"##Ctag#553"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#553"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#553"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#554" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + childGraph::hipGraph_t +end +function Base.getproperty(x::Ptr{var"##Ctag#554"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :childGraph && return Ptr{hipGraph_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#554", f::Symbol) + r = Ref{var"##Ctag#554"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#554"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#554"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#555" + graph::hipGraph_t + from::Ptr{hipGraphNode_t} + to::Ptr{hipGraphNode_t} + numDependencies::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#555"}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + f === :from && return Ptr{Ptr{hipGraphNode_t}}(x + 8) + f === :to && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#555", f::Symbol) + r = Ref{var"##Ctag#555"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#555"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#555"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#556" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#556"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#556", f::Symbol) + r = Ref{var"##Ctag#556"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#556"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#556"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#557" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#557"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :event && return Ptr{hipEvent_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#557", f::Symbol) + r = Ref{var"##Ctag#557"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#557"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#557"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#558" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#558"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :event && return Ptr{hipEvent_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#558", f::Symbol) + r = Ref{var"##Ctag#558"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#558"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#558"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#559" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + pNodeParams::Ptr{hipHostNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#559"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :pNodeParams && return Ptr{Ptr{hipHostNodeParams}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#559", f::Symbol) + r = Ref{var"##Ctag#559"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#559"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#559"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#560" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + pNodeParams::Ptr{hipKernelNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#560"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :pNodeParams && return Ptr{Ptr{hipKernelNodeParams}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#560", f::Symbol) + r = Ref{var"##Ctag#560"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#560"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#560"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#561" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + pNodeParams::Ptr{hipMemAllocNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#561"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :pNodeParams && return Ptr{Ptr{hipMemAllocNodeParams}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#561", f::Symbol) + r = Ref{var"##Ctag#561"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#561"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#561"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#562" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + dev_ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#562"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :dev_ptr && return Ptr{Ptr{Cvoid}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#562", f::Symbol) + r = Ref{var"##Ctag#562"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#562"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#562"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#563" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + pCopyParams::Ptr{hipMemcpy3DParms} +end +function Base.getproperty(x::Ptr{var"##Ctag#563"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :pCopyParams && return Ptr{Ptr{hipMemcpy3DParms}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#563", f::Symbol) + r = Ref{var"##Ctag#563"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#563"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#563"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#564" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + dst::Ptr{Cvoid} + src::Ptr{Cvoid} + count::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#564"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 32) + f === :src && return Ptr{Ptr{Cvoid}}(x + 40) + f === :count && return Ptr{Csize_t}(x + 48) + f === :kind && return Ptr{hipMemcpyKind}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#564", f::Symbol) + r = Ref{var"##Ctag#564"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#564"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#564"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#565" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + dst::Ptr{Cvoid} + symbol::Ptr{Cvoid} + count::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#565"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 32) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 40) + f === :count && return Ptr{Csize_t}(x + 48) + f === :offset && return Ptr{Csize_t}(x + 56) + f === :kind && return Ptr{hipMemcpyKind}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#565", f::Symbol) + r = Ref{var"##Ctag#565"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#565"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#565"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#566" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + symbol::Ptr{Cvoid} + src::Ptr{Cvoid} + count::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#566"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 32) + f === :src && return Ptr{Ptr{Cvoid}}(x + 40) + f === :count && return Ptr{Csize_t}(x + 48) + f === :offset && return Ptr{Csize_t}(x + 56) + f === :kind && return Ptr{hipMemcpyKind}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#566", f::Symbol) + r = Ref{var"##Ctag#566"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#566"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#566"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#567" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + pMemsetParams::Ptr{hipMemsetParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#567"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :pMemsetParams && return Ptr{Ptr{hipMemsetParams}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#567", f::Symbol) + r = Ref{var"##Ctag#567"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#567"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#567"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#568" + node::hipGraphNode_t + pGraph::Ptr{hipGraph_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#568"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pGraph && return Ptr{Ptr{hipGraph_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#568", f::Symbol) + r = Ref{var"##Ctag#568"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#568"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#568"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#569" + pGraphClone::Ptr{hipGraph_t} + originalGraph::hipGraph_t +end +function Base.getproperty(x::Ptr{var"##Ctag#569"}, f::Symbol) + f === :pGraphClone && return Ptr{Ptr{hipGraph_t}}(x + 0) + f === :originalGraph && return Ptr{hipGraph_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#569", f::Symbol) + r = Ref{var"##Ctag#569"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#569"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#569"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#570" + pGraph::Ptr{hipGraph_t} + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#570"}, f::Symbol) + f === :pGraph && return Ptr{Ptr{hipGraph_t}}(x + 0) + f === :flags && return Ptr{Cuint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#570", f::Symbol) + r = Ref{var"##Ctag#570"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#570"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#570"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#571" + graph::hipGraph_t + path::Ptr{Cchar} + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#571"}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + f === :path && return Ptr{Ptr{Cchar}}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#571", f::Symbol) + r = Ref{var"##Ctag#571"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#571"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#571"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#572" + graph::hipGraph_t +end +function Base.getproperty(x::Ptr{var"##Ctag#572"}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#572", f::Symbol) + r = Ref{var"##Ctag#572"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#572"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#572"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#573" + node::hipGraphNode_t +end +function Base.getproperty(x::Ptr{var"##Ctag#573"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#573", f::Symbol) + r = Ref{var"##Ctag#573"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#573"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#573"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#574" + node::hipGraphNode_t + event_out::Ptr{hipEvent_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#574"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :event_out && return Ptr{Ptr{hipEvent_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#574", f::Symbol) + r = Ref{var"##Ctag#574"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#574"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#574"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#575" + node::hipGraphNode_t + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#575"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :event && return Ptr{hipEvent_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#575", f::Symbol) + r = Ref{var"##Ctag#575"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#575"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#575"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#576" + node::hipGraphNode_t + event_out::Ptr{hipEvent_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#576"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :event_out && return Ptr{Ptr{hipEvent_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#576", f::Symbol) + r = Ref{var"##Ctag#576"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#576"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#576"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#577" + node::hipGraphNode_t + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#577"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :event && return Ptr{hipEvent_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#577", f::Symbol) + r = Ref{var"##Ctag#577"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#577"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#577"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#578" + hGraphExec::hipGraphExec_t + node::hipGraphNode_t + childGraph::hipGraph_t +end +function Base.getproperty(x::Ptr{var"##Ctag#578"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :node && return Ptr{hipGraphNode_t}(x + 8) + f === :childGraph && return Ptr{hipGraph_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#578", f::Symbol) + r = Ref{var"##Ctag#578"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#578"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#578"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#579" + graphExec::hipGraphExec_t +end +function Base.getproperty(x::Ptr{var"##Ctag#579"}, f::Symbol) + f === :graphExec && return Ptr{hipGraphExec_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#579", f::Symbol) + r = Ref{var"##Ctag#579"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#579"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#579"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#580" + hGraphExec::hipGraphExec_t + hNode::hipGraphNode_t + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#580"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hNode && return Ptr{hipGraphNode_t}(x + 8) + f === :event && return Ptr{hipEvent_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#580", f::Symbol) + r = Ref{var"##Ctag#580"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#580"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#580"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#581" + hGraphExec::hipGraphExec_t + hNode::hipGraphNode_t + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#581"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hNode && return Ptr{hipGraphNode_t}(x + 8) + f === :event && return Ptr{hipEvent_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#581", f::Symbol) + r = Ref{var"##Ctag#581"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#581"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#581"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#582" + hGraphExec::hipGraphExec_t + node::hipGraphNode_t + pNodeParams::Ptr{hipHostNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#582"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :node && return Ptr{hipGraphNode_t}(x + 8) + f === :pNodeParams && return Ptr{Ptr{hipHostNodeParams}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#582", f::Symbol) + r = Ref{var"##Ctag#582"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#582"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#582"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#583" + hGraphExec::hipGraphExec_t + node::hipGraphNode_t + pNodeParams::Ptr{hipKernelNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#583"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :node && return Ptr{hipGraphNode_t}(x + 8) + f === :pNodeParams && return Ptr{Ptr{hipKernelNodeParams}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#583", f::Symbol) + r = Ref{var"##Ctag#583"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#583"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#583"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#584" + hGraphExec::hipGraphExec_t + node::hipGraphNode_t + pNodeParams::Ptr{hipMemcpy3DParms} +end +function Base.getproperty(x::Ptr{var"##Ctag#584"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :node && return Ptr{hipGraphNode_t}(x + 8) + f === :pNodeParams && return Ptr{Ptr{hipMemcpy3DParms}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#584", f::Symbol) + r = Ref{var"##Ctag#584"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#584"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#584"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#585" + hGraphExec::hipGraphExec_t + node::hipGraphNode_t + dst::Ptr{Cvoid} + src::Ptr{Cvoid} + count::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#585"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :node && return Ptr{hipGraphNode_t}(x + 8) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 16) + f === :src && return Ptr{Ptr{Cvoid}}(x + 24) + f === :count && return Ptr{Csize_t}(x + 32) + f === :kind && return Ptr{hipMemcpyKind}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#585", f::Symbol) + r = Ref{var"##Ctag#585"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#585"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#585"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#586" + hGraphExec::hipGraphExec_t + node::hipGraphNode_t + dst::Ptr{Cvoid} + symbol::Ptr{Cvoid} + count::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#586"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :node && return Ptr{hipGraphNode_t}(x + 8) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 16) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 24) + f === :count && return Ptr{Csize_t}(x + 32) + f === :offset && return Ptr{Csize_t}(x + 40) + f === :kind && return Ptr{hipMemcpyKind}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#586", f::Symbol) + r = Ref{var"##Ctag#586"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#586"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#586"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#587" + hGraphExec::hipGraphExec_t + node::hipGraphNode_t + symbol::Ptr{Cvoid} + src::Ptr{Cvoid} + count::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#587"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :node && return Ptr{hipGraphNode_t}(x + 8) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 16) + f === :src && return Ptr{Ptr{Cvoid}}(x + 24) + f === :count && return Ptr{Csize_t}(x + 32) + f === :offset && return Ptr{Csize_t}(x + 40) + f === :kind && return Ptr{hipMemcpyKind}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#587", f::Symbol) + r = Ref{var"##Ctag#587"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#587"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#587"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#588" + hGraphExec::hipGraphExec_t + node::hipGraphNode_t + pNodeParams::Ptr{hipMemsetParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#588"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :node && return Ptr{hipGraphNode_t}(x + 8) + f === :pNodeParams && return Ptr{Ptr{hipMemsetParams}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#588", f::Symbol) + r = Ref{var"##Ctag#588"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#588"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#588"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#589" + hGraphExec::hipGraphExec_t + hGraph::hipGraph_t + hErrorNode_out::Ptr{hipGraphNode_t} + updateResult_out::Ptr{hipGraphExecUpdateResult} +end +function Base.getproperty(x::Ptr{var"##Ctag#589"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hGraph && return Ptr{hipGraph_t}(x + 8) + f === :hErrorNode_out && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :updateResult_out && return Ptr{Ptr{hipGraphExecUpdateResult}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#589", f::Symbol) + r = Ref{var"##Ctag#589"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#589"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#589"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#590" + graph::hipGraph_t + from::Ptr{hipGraphNode_t} + to::Ptr{hipGraphNode_t} + numEdges::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#590"}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + f === :from && return Ptr{Ptr{hipGraphNode_t}}(x + 8) + f === :to && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numEdges && return Ptr{Ptr{Csize_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#590", f::Symbol) + r = Ref{var"##Ctag#590"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#590"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#590"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#591" + graph::hipGraph_t + nodes::Ptr{hipGraphNode_t} + numNodes::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#591"}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + f === :nodes && return Ptr{Ptr{hipGraphNode_t}}(x + 8) + f === :numNodes && return Ptr{Ptr{Csize_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#591", f::Symbol) + r = Ref{var"##Ctag#591"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#591"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#591"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#592" + graph::hipGraph_t + pRootNodes::Ptr{hipGraphNode_t} + pNumRootNodes::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#592"}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + f === :pRootNodes && return Ptr{Ptr{hipGraphNode_t}}(x + 8) + f === :pNumRootNodes && return Ptr{Ptr{Csize_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#592", f::Symbol) + r = Ref{var"##Ctag#592"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#592"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#592"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#593" + node::hipGraphNode_t + pNodeParams::Ptr{hipHostNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#593"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pNodeParams && return Ptr{Ptr{hipHostNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#593", f::Symbol) + r = Ref{var"##Ctag#593"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#593"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#593"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#594" + node::hipGraphNode_t + pNodeParams::Ptr{hipHostNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#594"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pNodeParams && return Ptr{Ptr{hipHostNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#594", f::Symbol) + r = Ref{var"##Ctag#594"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#594"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#594"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#595" + pGraphExec::Ptr{hipGraphExec_t} + graph::hipGraph_t + pErrorNode::Ptr{hipGraphNode_t} + pLogBuffer::Ptr{Cchar} + bufferSize::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#595"}, f::Symbol) + f === :pGraphExec && return Ptr{Ptr{hipGraphExec_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pErrorNode && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :pLogBuffer && return Ptr{Ptr{Cchar}}(x + 24) + f === :bufferSize && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#595", f::Symbol) + r = Ref{var"##Ctag#595"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#595"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#595"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#596" + pGraphExec::Ptr{hipGraphExec_t} + graph::hipGraph_t + flags::Culonglong +end +function Base.getproperty(x::Ptr{var"##Ctag#596"}, f::Symbol) + f === :pGraphExec && return Ptr{Ptr{hipGraphExec_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :flags && return Ptr{Culonglong}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#596", f::Symbol) + r = Ref{var"##Ctag#596"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#596"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#596"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#597" + hSrc::hipGraphNode_t + hDst::hipGraphNode_t +end +function Base.getproperty(x::Ptr{var"##Ctag#597"}, f::Symbol) + f === :hSrc && return Ptr{hipGraphNode_t}(x + 0) + f === :hDst && return Ptr{hipGraphNode_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#597", f::Symbol) + r = Ref{var"##Ctag#597"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#597"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#597"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#598" + hNode::hipGraphNode_t + attr::hipLaunchAttributeID + value::Ptr{hipLaunchAttributeValue} +end +function Base.getproperty(x::Ptr{var"##Ctag#598"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :attr && return Ptr{hipLaunchAttributeID}(x + 8) + f === :value && return Ptr{Ptr{hipLaunchAttributeValue}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#598", f::Symbol) + r = Ref{var"##Ctag#598"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#598"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#598"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#599" + node::hipGraphNode_t + pNodeParams::Ptr{hipKernelNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#599"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pNodeParams && return Ptr{Ptr{hipKernelNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#599", f::Symbol) + r = Ref{var"##Ctag#599"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#599"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#599"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#600" + hNode::hipGraphNode_t + attr::hipLaunchAttributeID + value::Ptr{hipLaunchAttributeValue} +end +function Base.getproperty(x::Ptr{var"##Ctag#600"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :attr && return Ptr{hipLaunchAttributeID}(x + 8) + f === :value && return Ptr{Ptr{hipLaunchAttributeValue}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#600", f::Symbol) + r = Ref{var"##Ctag#600"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#600"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#600"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#601" + node::hipGraphNode_t + pNodeParams::Ptr{hipKernelNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#601"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pNodeParams && return Ptr{Ptr{hipKernelNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#601", f::Symbol) + r = Ref{var"##Ctag#601"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#601"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#601"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#602" + graphExec::hipGraphExec_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#602"}, f::Symbol) + f === :graphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#602", f::Symbol) + r = Ref{var"##Ctag#602"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#602"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#602"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#603" + node::hipGraphNode_t + pNodeParams::Ptr{hipMemAllocNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#603"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pNodeParams && return Ptr{Ptr{hipMemAllocNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#603", f::Symbol) + r = Ref{var"##Ctag#603"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#603"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#603"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#604" + node::hipGraphNode_t + dev_ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#604"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :dev_ptr && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#604", f::Symbol) + r = Ref{var"##Ctag#604"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#604"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#604"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#605" + node::hipGraphNode_t + pNodeParams::Ptr{hipMemcpy3DParms} +end +function Base.getproperty(x::Ptr{var"##Ctag#605"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pNodeParams && return Ptr{Ptr{hipMemcpy3DParms}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#605", f::Symbol) + r = Ref{var"##Ctag#605"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#605"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#605"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#606" + node::hipGraphNode_t + pNodeParams::Ptr{hipMemcpy3DParms} +end +function Base.getproperty(x::Ptr{var"##Ctag#606"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pNodeParams && return Ptr{Ptr{hipMemcpy3DParms}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#606", f::Symbol) + r = Ref{var"##Ctag#606"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#606"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#606"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#607" + node::hipGraphNode_t + dst::Ptr{Cvoid} + src::Ptr{Cvoid} + count::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#607"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :count && return Ptr{Csize_t}(x + 24) + f === :kind && return Ptr{hipMemcpyKind}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#607", f::Symbol) + r = Ref{var"##Ctag#607"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#607"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#607"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#608" + node::hipGraphNode_t + dst::Ptr{Cvoid} + symbol::Ptr{Cvoid} + count::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#608"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 8) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 16) + f === :count && return Ptr{Csize_t}(x + 24) + f === :offset && return Ptr{Csize_t}(x + 32) + f === :kind && return Ptr{hipMemcpyKind}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#608", f::Symbol) + r = Ref{var"##Ctag#608"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#608"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#608"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#609" + node::hipGraphNode_t + symbol::Ptr{Cvoid} + src::Ptr{Cvoid} + count::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#609"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :count && return Ptr{Csize_t}(x + 24) + f === :offset && return Ptr{Csize_t}(x + 32) + f === :kind && return Ptr{hipMemcpyKind}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#609", f::Symbol) + r = Ref{var"##Ctag#609"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#609"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#609"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#610" + node::hipGraphNode_t + pNodeParams::Ptr{hipMemsetParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#610"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pNodeParams && return Ptr{Ptr{hipMemsetParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#610", f::Symbol) + r = Ref{var"##Ctag#610"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#610"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#610"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#611" + node::hipGraphNode_t + pNodeParams::Ptr{hipMemsetParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#611"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pNodeParams && return Ptr{Ptr{hipMemsetParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#611", f::Symbol) + r = Ref{var"##Ctag#611"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#611"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#611"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#612" + pNode::Ptr{hipGraphNode_t} + originalNode::hipGraphNode_t + clonedGraph::hipGraph_t +end +function Base.getproperty(x::Ptr{var"##Ctag#612"}, f::Symbol) + f === :pNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :originalNode && return Ptr{hipGraphNode_t}(x + 8) + f === :clonedGraph && return Ptr{hipGraph_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#612", f::Symbol) + r = Ref{var"##Ctag#612"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#612"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#612"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#613" + node::hipGraphNode_t + pDependencies::Ptr{hipGraphNode_t} + pNumDependencies::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#613"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 8) + f === :pNumDependencies && return Ptr{Ptr{Csize_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#613", f::Symbol) + r = Ref{var"##Ctag#613"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#613"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#613"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#614" + node::hipGraphNode_t + pDependentNodes::Ptr{hipGraphNode_t} + pNumDependentNodes::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#614"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pDependentNodes && return Ptr{Ptr{hipGraphNode_t}}(x + 8) + f === :pNumDependentNodes && return Ptr{Ptr{Csize_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#614", f::Symbol) + r = Ref{var"##Ctag#614"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#614"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#614"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#615" + hGraphExec::hipGraphExec_t + hNode::hipGraphNode_t + isEnabled::Ptr{Cuint} +end +function Base.getproperty(x::Ptr{var"##Ctag#615"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hNode && return Ptr{hipGraphNode_t}(x + 8) + f === :isEnabled && return Ptr{Ptr{Cuint}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#615", f::Symbol) + r = Ref{var"##Ctag#615"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#615"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#615"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#616" + node::hipGraphNode_t + pType::Ptr{hipGraphNodeType} +end +function Base.getproperty(x::Ptr{var"##Ctag#616"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :pType && return Ptr{Ptr{hipGraphNodeType}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#616", f::Symbol) + r = Ref{var"##Ctag#616"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#616"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#616"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#617" + hGraphExec::hipGraphExec_t + hNode::hipGraphNode_t + isEnabled::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#617"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hNode && return Ptr{hipGraphNode_t}(x + 8) + f === :isEnabled && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#617", f::Symbol) + r = Ref{var"##Ctag#617"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#617"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#617"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#618" + graph::hipGraph_t + object::hipUserObject_t + count::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#618"}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + f === :object && return Ptr{hipUserObject_t}(x + 8) + f === :count && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#618", f::Symbol) + r = Ref{var"##Ctag#618"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#618"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#618"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#619" + graph::hipGraph_t + from::Ptr{hipGraphNode_t} + to::Ptr{hipGraphNode_t} + numDependencies::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#619"}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + f === :from && return Ptr{Ptr{hipGraphNode_t}}(x + 8) + f === :to && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#619", f::Symbol) + r = Ref{var"##Ctag#619"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#619"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#619"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#620" + graph::hipGraph_t + object::hipUserObject_t + count::Cuint + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#620"}, f::Symbol) + f === :graph && return Ptr{hipGraph_t}(x + 0) + f === :object && return Ptr{hipUserObject_t}(x + 8) + f === :count && return Ptr{Cuint}(x + 16) + f === :flags && return Ptr{Cuint}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#620", f::Symbol) + r = Ref{var"##Ctag#620"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#620"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#620"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#621" + graphExec::hipGraphExec_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#621"}, f::Symbol) + f === :graphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#621", f::Symbol) + r = Ref{var"##Ctag#621"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#621"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#621"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#622" + resource::Ptr{Ptr{hipGraphicsResource}} + buffer::GLuint + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#622"}, f::Symbol) + f === :resource && return Ptr{Ptr{Ptr{hipGraphicsResource}}}(x + 0) + f === :buffer && return Ptr{GLuint}(x + 8) + f === :flags && return Ptr{Cuint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#622", f::Symbol) + r = Ref{var"##Ctag#622"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#622"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#622"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#623" + resource::Ptr{Ptr{hipGraphicsResource}} + image::GLuint + target::GLenum + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#623"}, f::Symbol) + f === :resource && return Ptr{Ptr{Ptr{hipGraphicsResource}}}(x + 0) + f === :image && return Ptr{GLuint}(x + 8) + f === :target && return Ptr{GLenum}(x + 12) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#623", f::Symbol) + r = Ref{var"##Ctag#623"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#623"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#623"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#624" + count::Cint + resources::Ptr{hipGraphicsResource_t} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#624"}, f::Symbol) + f === :count && return Ptr{Cint}(x + 0) + f === :resources && return Ptr{Ptr{hipGraphicsResource_t}}(x + 8) + f === :stream && return Ptr{hipStream_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#624", f::Symbol) + r = Ref{var"##Ctag#624"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#624"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#624"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#625" + devPtr::Ptr{Ptr{Cvoid}} + size::Ptr{Csize_t} + resource::hipGraphicsResource_t +end +function Base.getproperty(x::Ptr{var"##Ctag#625"}, f::Symbol) + f === :devPtr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Ptr{Csize_t}}(x + 8) + f === :resource && return Ptr{hipGraphicsResource_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#625", f::Symbol) + r = Ref{var"##Ctag#625"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#625"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#625"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#626" + array::Ptr{hipArray_t} + resource::hipGraphicsResource_t + arrayIndex::Cuint + mipLevel::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#626"}, f::Symbol) + f === :array && return Ptr{Ptr{hipArray_t}}(x + 0) + f === :resource && return Ptr{hipGraphicsResource_t}(x + 8) + f === :arrayIndex && return Ptr{Cuint}(x + 16) + f === :mipLevel && return Ptr{Cuint}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#626", f::Symbol) + r = Ref{var"##Ctag#626"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#626"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#626"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#627" + count::Cint + resources::Ptr{hipGraphicsResource_t} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#627"}, f::Symbol) + f === :count && return Ptr{Cint}(x + 0) + f === :resources && return Ptr{Ptr{hipGraphicsResource_t}}(x + 8) + f === :stream && return Ptr{hipStream_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#627", f::Symbol) + r = Ref{var"##Ctag#627"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#627"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#627"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#628" + resource::hipGraphicsResource_t +end +function Base.getproperty(x::Ptr{var"##Ctag#628"}, f::Symbol) + f === :resource && return Ptr{hipGraphicsResource_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#628", f::Symbol) + r = Ref{var"##Ctag#628"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#628"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#628"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#629" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#629"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#629", f::Symbol) + r = Ref{var"##Ctag#629"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#629"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#629"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#630" + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#630"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#630", f::Symbol) + r = Ref{var"##Ctag#630"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#630"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#630"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#631" + devPtr::Ptr{Ptr{Cvoid}} + hstPtr::Ptr{Cvoid} + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#631"}, f::Symbol) + f === :devPtr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :hstPtr && return Ptr{Ptr{Cvoid}}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#631", f::Symbol) + r = Ref{var"##Ctag#631"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#631"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#631"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#632" + flagsPtr::Ptr{Cuint} + hostPtr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#632"}, f::Symbol) + f === :flagsPtr && return Ptr{Ptr{Cuint}}(x + 0) + f === :hostPtr && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#632", f::Symbol) + r = Ref{var"##Ctag#632"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#632"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#632"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#633" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#633"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#633", f::Symbol) + r = Ref{var"##Ctag#633"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#633"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#633"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#634" + hostPtr::Ptr{Cvoid} + sizeBytes::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#634"}, f::Symbol) + f === :hostPtr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :sizeBytes && return Ptr{Csize_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#634", f::Symbol) + r = Ref{var"##Ctag#634"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#634"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#634"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#635" + hostPtr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#635"}, f::Symbol) + f === :hostPtr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#635", f::Symbol) + r = Ref{var"##Ctag#635"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#635"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#635"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#636" + extMem_out::Ptr{hipExternalMemory_t} + memHandleDesc::Ptr{hipExternalMemoryHandleDesc} +end +function Base.getproperty(x::Ptr{var"##Ctag#636"}, f::Symbol) + f === :extMem_out && return Ptr{Ptr{hipExternalMemory_t}}(x + 0) + f === :memHandleDesc && return Ptr{Ptr{hipExternalMemoryHandleDesc}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#636", f::Symbol) + r = Ref{var"##Ctag#636"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#636"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#636"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#637" + extSem_out::Ptr{hipExternalSemaphore_t} + semHandleDesc::Ptr{hipExternalSemaphoreHandleDesc} +end +function Base.getproperty(x::Ptr{var"##Ctag#637"}, f::Symbol) + f === :extSem_out && return Ptr{Ptr{hipExternalSemaphore_t}}(x + 0) + f === :semHandleDesc && return Ptr{Ptr{hipExternalSemaphoreHandleDesc}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#637", f::Symbol) + r = Ref{var"##Ctag#637"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#637"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#637"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#638" + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#638"}, f::Symbol) + f === :flags && return Ptr{Cuint}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#638", f::Symbol) + r = Ref{var"##Ctag#638"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#638"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#638"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#639" + devPtr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#639"}, f::Symbol) + f === :devPtr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#639", f::Symbol) + r = Ref{var"##Ctag#639"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#639"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#639"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#640" + handle::Ptr{hipIpcEventHandle_t} + event::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#640"}, f::Symbol) + f === :handle && return Ptr{Ptr{hipIpcEventHandle_t}}(x + 0) + f === :event && return Ptr{hipEvent_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#640", f::Symbol) + r = Ref{var"##Ctag#640"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#640"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#640"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#641" + handle::Ptr{hipIpcMemHandle_t} + devPtr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#641"}, f::Symbol) + f === :handle && return Ptr{Ptr{hipIpcMemHandle_t}}(x + 0) + f === :devPtr && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#641", f::Symbol) + r = Ref{var"##Ctag#641"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#641"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#641"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#642" + event::Ptr{hipEvent_t} + handle::hipIpcEventHandle_t +end +function Base.getproperty(x::Ptr{var"##Ctag#642"}, f::Symbol) + f === :event && return Ptr{Ptr{hipEvent_t}}(x + 0) + f === :handle && return Ptr{hipIpcEventHandle_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#642", f::Symbol) + r = Ref{var"##Ctag#642"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#642"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#642"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#643" + devPtr::Ptr{Ptr{Cvoid}} + handle::hipIpcMemHandle_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#643"}, f::Symbol) + f === :devPtr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :handle && return Ptr{hipIpcMemHandle_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 72) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#643", f::Symbol) + r = Ref{var"##Ctag#643"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#643"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#643"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#644" + func::hipFunction_t +end +function Base.getproperty(x::Ptr{var"##Ctag#644"}, f::Symbol) + f === :func && return Ptr{hipFunction_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#644", f::Symbol) + r = Ref{var"##Ctag#644"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#644"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#644"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#645" + hostFunction::Ptr{Cvoid} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#645"}, f::Symbol) + f === :hostFunction && return Ptr{Ptr{Cvoid}}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#645", f::Symbol) + r = Ref{var"##Ctag#645"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#645"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#645"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#646" + func::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#646"}, f::Symbol) + f === :func && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#646", f::Symbol) + r = Ref{var"##Ctag#646"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#646"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#646"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#647" + func::Ptr{Cvoid} + gridDim::rocprofiler_dim3_t + blockDimX::rocprofiler_dim3_t + kernelParams::Ptr{Ptr{Cvoid}} + sharedMemBytes::Cuint + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#647"}, f::Symbol) + f === :func && return Ptr{Ptr{Cvoid}}(x + 0) + f === :gridDim && return Ptr{rocprofiler_dim3_t}(x + 8) + f === :blockDimX && return Ptr{rocprofiler_dim3_t}(x + 20) + f === :kernelParams && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + f === :sharedMemBytes && return Ptr{Cuint}(x + 40) + f === :stream && return Ptr{hipStream_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#647", f::Symbol) + r = Ref{var"##Ctag#647"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#647"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#647"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#648" + launchParamsList::Ptr{hipLaunchParams} + numDevices::Cint + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#648"}, f::Symbol) + f === :launchParamsList && return Ptr{Ptr{hipLaunchParams}}(x + 0) + f === :numDevices && return Ptr{Cint}(x + 8) + f === :flags && return Ptr{Cuint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#648", f::Symbol) + r = Ref{var"##Ctag#648"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#648"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#648"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#649" + stream::hipStream_t + fn::hipHostFn_t + userData::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#649"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :fn && return Ptr{hipHostFn_t}(x + 8) + f === :userData && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#649", f::Symbol) + r = Ref{var"##Ctag#649"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#649"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#649"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#650" + function_address::Ptr{Cvoid} + numBlocks::rocprofiler_dim3_t + dimBlocks::rocprofiler_dim3_t + args::Ptr{Ptr{Cvoid}} + sharedMemBytes::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#650"}, f::Symbol) + f === :function_address && return Ptr{Ptr{Cvoid}}(x + 0) + f === :numBlocks && return Ptr{rocprofiler_dim3_t}(x + 8) + f === :dimBlocks && return Ptr{rocprofiler_dim3_t}(x + 20) + f === :args && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + f === :sharedMemBytes && return Ptr{Csize_t}(x + 40) + f === :stream && return Ptr{hipStream_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#650", f::Symbol) + r = Ref{var"##Ctag#650"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#650"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#650"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#651" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#651"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#651", f::Symbol) + r = Ref{var"##Ctag#651"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#651"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#651"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#652" + pitchedDevPtr::Ptr{hipPitchedPtr} + extent::hipExtent +end +function Base.getproperty(x::Ptr{var"##Ctag#652"}, f::Symbol) + f === :pitchedDevPtr && return Ptr{Ptr{hipPitchedPtr}}(x + 0) + f === :extent && return Ptr{hipExtent}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#652", f::Symbol) + r = Ref{var"##Ctag#652"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#652"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#652"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#653" + array::Ptr{hipArray_t} + desc::Ptr{hipChannelFormatDesc} + extent::hipExtent + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#653"}, f::Symbol) + f === :array && return Ptr{Ptr{hipArray_t}}(x + 0) + f === :desc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 8) + f === :extent && return Ptr{hipExtent}(x + 16) + f === :flags && return Ptr{Cuint}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#653", f::Symbol) + r = Ref{var"##Ctag#653"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#653"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#653"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#654" + array::Ptr{hipArray_t} + desc::Ptr{hipChannelFormatDesc} + width::Csize_t + height::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#654"}, f::Symbol) + f === :array && return Ptr{Ptr{hipArray_t}}(x + 0) + f === :desc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 8) + f === :width && return Ptr{Csize_t}(x + 16) + f === :height && return Ptr{Csize_t}(x + 24) + f === :flags && return Ptr{Cuint}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#654", f::Symbol) + r = Ref{var"##Ctag#654"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#654"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#654"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#655" + dev_ptr::Ptr{Ptr{Cvoid}} + size::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#655"}, f::Symbol) + f === :dev_ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :stream && return Ptr{hipStream_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#655", f::Symbol) + r = Ref{var"##Ctag#655"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#655"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#655"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#656" + dev_ptr::Ptr{Ptr{Cvoid}} + size::Csize_t + mem_pool::hipMemPool_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#656"}, f::Symbol) + f === :dev_ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#656", f::Symbol) + r = Ref{var"##Ctag#656"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#656"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#656"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#657" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#657"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#657", f::Symbol) + r = Ref{var"##Ctag#657"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#657"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#657"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#658" + dev_ptr::Ptr{Ptr{Cvoid}} + size::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#658"}, f::Symbol) + f === :dev_ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#658", f::Symbol) + r = Ref{var"##Ctag#658"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#658"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#658"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#659" + mipmappedArray::Ptr{hipMipmappedArray_t} + desc::Ptr{hipChannelFormatDesc} + extent::hipExtent + numLevels::Cuint + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#659"}, f::Symbol) + f === :mipmappedArray && return Ptr{Ptr{hipMipmappedArray_t}}(x + 0) + f === :desc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 8) + f === :extent && return Ptr{hipExtent}(x + 16) + f === :numLevels && return Ptr{Cuint}(x + 40) + f === :flags && return Ptr{Cuint}(x + 44) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#659", f::Symbol) + r = Ref{var"##Ctag#659"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#659"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#659"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#660" + ptr::Ptr{Ptr{Cvoid}} + pitch::Ptr{Csize_t} + width::Csize_t + height::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#660"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :pitch && return Ptr{Ptr{Csize_t}}(x + 8) + f === :width && return Ptr{Csize_t}(x + 16) + f === :height && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#660", f::Symbol) + r = Ref{var"##Ctag#660"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#660"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#660"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#661" + devPtr::Ptr{Cvoid} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#661"}, f::Symbol) + f === :devPtr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#661", f::Symbol) + r = Ref{var"##Ctag#661"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#661"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#661"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#662" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t + alignment::Csize_t + addr::Ptr{Cvoid} + flags::Culonglong +end +function Base.getproperty(x::Ptr{var"##Ctag#662"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :alignment && return Ptr{Csize_t}(x + 16) + f === :addr && return Ptr{Ptr{Cvoid}}(x + 24) + f === :flags && return Ptr{Culonglong}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#662", f::Symbol) + r = Ref{var"##Ctag#662"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#662"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#662"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#663" + dev_ptr::Ptr{Cvoid} + count::Csize_t + advice::hipMemoryAdvise + device::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#663"}, f::Symbol) + f === :dev_ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :count && return Ptr{Csize_t}(x + 8) + f === :advice && return Ptr{hipMemoryAdvise}(x + 16) + f === :device && return Ptr{Cint}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#663", f::Symbol) + r = Ref{var"##Ctag#663"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#663"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#663"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#664" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#664"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#664", f::Symbol) + r = Ref{var"##Ctag#664"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#664"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#664"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#665" + dptr::Ptr{hipDeviceptr_t} + pitch::Ptr{Csize_t} + widthInBytes::Csize_t + height::Csize_t + elementSizeBytes::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#665"}, f::Symbol) + f === :dptr && return Ptr{Ptr{hipDeviceptr_t}}(x + 0) + f === :pitch && return Ptr{Ptr{Csize_t}}(x + 8) + f === :widthInBytes && return Ptr{Csize_t}(x + 16) + f === :height && return Ptr{Csize_t}(x + 24) + f === :elementSizeBytes && return Ptr{Cuint}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#665", f::Symbol) + r = Ref{var"##Ctag#665"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#665"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#665"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#666" + handle::Ptr{hipMemGenericAllocationHandle_t} + size::Csize_t + prop::Ptr{hipMemAllocationProp} + flags::Culonglong +end +function Base.getproperty(x::Ptr{var"##Ctag#666"}, f::Symbol) + f === :handle && return Ptr{Ptr{hipMemGenericAllocationHandle_t}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :prop && return Ptr{Ptr{hipMemAllocationProp}}(x + 16) + f === :flags && return Ptr{Culonglong}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#666", f::Symbol) + r = Ref{var"##Ctag#666"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#666"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#666"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#667" + shareableHandle::Ptr{Cvoid} + handle::hipMemGenericAllocationHandle_t + handleType::hipMemAllocationHandleType + flags::Culonglong +end +function Base.getproperty(x::Ptr{var"##Ctag#667"}, f::Symbol) + f === :shareableHandle && return Ptr{Ptr{Cvoid}}(x + 0) + f === :handle && return Ptr{hipMemGenericAllocationHandle_t}(x + 8) + f === :handleType && return Ptr{hipMemAllocationHandleType}(x + 16) + f === :flags && return Ptr{Culonglong}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#667", f::Symbol) + r = Ref{var"##Ctag#667"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#667"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#667"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#668" + flags::Ptr{Culonglong} + location::Ptr{hipMemLocation} + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#668"}, f::Symbol) + f === :flags && return Ptr{Ptr{Culonglong}}(x + 0) + f === :location && return Ptr{Ptr{hipMemLocation}}(x + 8) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#668", f::Symbol) + r = Ref{var"##Ctag#668"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#668"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#668"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#669" + pbase::Ptr{hipDeviceptr_t} + psize::Ptr{Csize_t} + dptr::hipDeviceptr_t +end +function Base.getproperty(x::Ptr{var"##Ctag#669"}, f::Symbol) + f === :pbase && return Ptr{Ptr{hipDeviceptr_t}}(x + 0) + f === :psize && return Ptr{Ptr{Csize_t}}(x + 8) + f === :dptr && return Ptr{hipDeviceptr_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#669", f::Symbol) + r = Ref{var"##Ctag#669"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#669"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#669"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#670" + granularity::Ptr{Csize_t} + prop::Ptr{hipMemAllocationProp} + option::hipMemAllocationGranularity_flags +end +function Base.getproperty(x::Ptr{var"##Ctag#670"}, f::Symbol) + f === :granularity && return Ptr{Ptr{Csize_t}}(x + 0) + f === :prop && return Ptr{Ptr{hipMemAllocationProp}}(x + 8) + f === :option && return Ptr{hipMemAllocationGranularity_flags}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#670", f::Symbol) + r = Ref{var"##Ctag#670"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#670"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#670"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#671" + prop::Ptr{hipMemAllocationProp} + handle::hipMemGenericAllocationHandle_t +end +function Base.getproperty(x::Ptr{var"##Ctag#671"}, f::Symbol) + f === :prop && return Ptr{Ptr{hipMemAllocationProp}}(x + 0) + f === :handle && return Ptr{hipMemGenericAllocationHandle_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#671", f::Symbol) + r = Ref{var"##Ctag#671"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#671"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#671"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#672" + free::Ptr{Csize_t} + total::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#672"}, f::Symbol) + f === :free && return Ptr{Ptr{Csize_t}}(x + 0) + f === :total && return Ptr{Ptr{Csize_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#672", f::Symbol) + r = Ref{var"##Ctag#672"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#672"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#672"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#673" + handle::Ptr{hipMemGenericAllocationHandle_t} + osHandle::Ptr{Cvoid} + shHandleType::hipMemAllocationHandleType +end +function Base.getproperty(x::Ptr{var"##Ctag#673"}, f::Symbol) + f === :handle && return Ptr{Ptr{hipMemGenericAllocationHandle_t}}(x + 0) + f === :osHandle && return Ptr{Ptr{Cvoid}}(x + 8) + f === :shHandleType && return Ptr{hipMemAllocationHandleType}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#673", f::Symbol) + r = Ref{var"##Ctag#673"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#673"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#673"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#674" + ptr::Ptr{Cvoid} + size::Csize_t + offset::Csize_t + handle::hipMemGenericAllocationHandle_t + flags::Culonglong +end +function Base.getproperty(x::Ptr{var"##Ctag#674"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :offset && return Ptr{Csize_t}(x + 16) + f === :handle && return Ptr{hipMemGenericAllocationHandle_t}(x + 24) + f === :flags && return Ptr{Culonglong}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#674", f::Symbol) + r = Ref{var"##Ctag#674"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#674"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#674"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#675" + mapInfoList::Ptr{hipArrayMapInfo} + count::Cuint + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#675"}, f::Symbol) + f === :mapInfoList && return Ptr{Ptr{hipArrayMapInfo}}(x + 0) + f === :count && return Ptr{Cuint}(x + 8) + f === :stream && return Ptr{hipStream_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#675", f::Symbol) + r = Ref{var"##Ctag#675"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#675"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#675"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#676" + mem_pool::Ptr{hipMemPool_t} + pool_props::Ptr{hipMemPoolProps} +end +function Base.getproperty(x::Ptr{var"##Ctag#676"}, f::Symbol) + f === :mem_pool && return Ptr{Ptr{hipMemPool_t}}(x + 0) + f === :pool_props && return Ptr{Ptr{hipMemPoolProps}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#676", f::Symbol) + r = Ref{var"##Ctag#676"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#676"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#676"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#677" + mem_pool::hipMemPool_t +end +function Base.getproperty(x::Ptr{var"##Ctag#677"}, f::Symbol) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#677", f::Symbol) + r = Ref{var"##Ctag#677"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#677"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#677"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#678" + export_data::Ptr{hipMemPoolPtrExportData} + dev_ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#678"}, f::Symbol) + f === :export_data && return Ptr{Ptr{hipMemPoolPtrExportData}}(x + 0) + f === :dev_ptr && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#678", f::Symbol) + r = Ref{var"##Ctag#678"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#678"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#678"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#679" + shared_handle::Ptr{Cvoid} + mem_pool::hipMemPool_t + handle_type::hipMemAllocationHandleType + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#679"}, f::Symbol) + f === :shared_handle && return Ptr{Ptr{Cvoid}}(x + 0) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 8) + f === :handle_type && return Ptr{hipMemAllocationHandleType}(x + 16) + f === :flags && return Ptr{Cuint}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#679", f::Symbol) + r = Ref{var"##Ctag#679"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#679"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#679"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#680" + flags::Ptr{hipMemAccessFlags} + mem_pool::hipMemPool_t + location::Ptr{hipMemLocation} +end +function Base.getproperty(x::Ptr{var"##Ctag#680"}, f::Symbol) + f === :flags && return Ptr{Ptr{hipMemAccessFlags}}(x + 0) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 8) + f === :location && return Ptr{Ptr{hipMemLocation}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#680", f::Symbol) + r = Ref{var"##Ctag#680"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#680"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#680"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#681" + mem_pool::hipMemPool_t + attr::hipMemPoolAttr + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#681"}, f::Symbol) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 0) + f === :attr && return Ptr{hipMemPoolAttr}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#681", f::Symbol) + r = Ref{var"##Ctag#681"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#681"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#681"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#682" + mem_pool::Ptr{hipMemPool_t} + shared_handle::Ptr{Cvoid} + handle_type::hipMemAllocationHandleType + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#682"}, f::Symbol) + f === :mem_pool && return Ptr{Ptr{hipMemPool_t}}(x + 0) + f === :shared_handle && return Ptr{Ptr{Cvoid}}(x + 8) + f === :handle_type && return Ptr{hipMemAllocationHandleType}(x + 16) + f === :flags && return Ptr{Cuint}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#682", f::Symbol) + r = Ref{var"##Ctag#682"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#682"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#682"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#683" + dev_ptr::Ptr{Ptr{Cvoid}} + mem_pool::hipMemPool_t + export_data::Ptr{hipMemPoolPtrExportData} +end +function Base.getproperty(x::Ptr{var"##Ctag#683"}, f::Symbol) + f === :dev_ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 8) + f === :export_data && return Ptr{Ptr{hipMemPoolPtrExportData}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#683", f::Symbol) + r = Ref{var"##Ctag#683"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#683"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#683"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#684" + mem_pool::hipMemPool_t + desc_list::Ptr{hipMemAccessDesc} + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#684"}, f::Symbol) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 0) + f === :desc_list && return Ptr{Ptr{hipMemAccessDesc}}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#684", f::Symbol) + r = Ref{var"##Ctag#684"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#684"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#684"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#685" + mem_pool::hipMemPool_t + attr::hipMemPoolAttr + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#685"}, f::Symbol) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 0) + f === :attr && return Ptr{hipMemPoolAttr}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#685", f::Symbol) + r = Ref{var"##Ctag#685"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#685"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#685"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#686" + mem_pool::hipMemPool_t + min_bytes_to_hold::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#686"}, f::Symbol) + f === :mem_pool && return Ptr{hipMemPool_t}(x + 0) + f === :min_bytes_to_hold && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#686", f::Symbol) + r = Ref{var"##Ctag#686"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#686"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#686"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#687" + dev_ptr::Ptr{Cvoid} + count::Csize_t + device::Cint + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#687"}, f::Symbol) + f === :dev_ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :count && return Ptr{Csize_t}(x + 8) + f === :device && return Ptr{Cint}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#687", f::Symbol) + r = Ref{var"##Ctag#687"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#687"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#687"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#688" + ptr::Ptr{Cvoid} + size::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#688"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Ptr{Csize_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#688", f::Symbol) + r = Ref{var"##Ctag#688"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#688"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#688"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#689" + data::Ptr{Cvoid} + data_size::Csize_t + attribute::hipMemRangeAttribute + dev_ptr::Ptr{Cvoid} + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#689"}, f::Symbol) + f === :data && return Ptr{Ptr{Cvoid}}(x + 0) + f === :data_size && return Ptr{Csize_t}(x + 8) + f === :attribute && return Ptr{hipMemRangeAttribute}(x + 16) + f === :dev_ptr && return Ptr{Ptr{Cvoid}}(x + 24) + f === :count && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#689", f::Symbol) + r = Ref{var"##Ctag#689"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#689"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#689"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#690" + data::Ptr{Ptr{Cvoid}} + data_sizes::Ptr{Csize_t} + attributes::Ptr{hipMemRangeAttribute} + num_attributes::Csize_t + dev_ptr::Ptr{Cvoid} + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#690"}, f::Symbol) + f === :data && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :data_sizes && return Ptr{Ptr{Csize_t}}(x + 8) + f === :attributes && return Ptr{Ptr{hipMemRangeAttribute}}(x + 16) + f === :num_attributes && return Ptr{Csize_t}(x + 24) + f === :dev_ptr && return Ptr{Ptr{Cvoid}}(x + 32) + f === :count && return Ptr{Csize_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#690", f::Symbol) + r = Ref{var"##Ctag#690"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#690"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#690"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#691" + handle::hipMemGenericAllocationHandle_t +end +function Base.getproperty(x::Ptr{var"##Ctag#691"}, f::Symbol) + f === :handle && return Ptr{hipMemGenericAllocationHandle_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#691", f::Symbol) + r = Ref{var"##Ctag#691"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#691"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#691"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#692" + handle::Ptr{hipMemGenericAllocationHandle_t} + addr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#692"}, f::Symbol) + f === :handle && return Ptr{Ptr{hipMemGenericAllocationHandle_t}}(x + 0) + f === :addr && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#692", f::Symbol) + r = Ref{var"##Ctag#692"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#692"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#692"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#693" + ptr::Ptr{Cvoid} + size::Csize_t + desc::Ptr{hipMemAccessDesc} + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#693"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :desc && return Ptr{Ptr{hipMemAccessDesc}}(x + 16) + f === :count && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#693", f::Symbol) + r = Ref{var"##Ctag#693"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#693"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#693"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#694" + ptr::Ptr{Cvoid} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#694"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#694", f::Symbol) + r = Ref{var"##Ctag#694"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#694"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#694"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#695" + dst::Ptr{Cvoid} + src::Ptr{Cvoid} + sizeBytes::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#695"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :kind && return Ptr{hipMemcpyKind}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#695", f::Symbol) + r = Ref{var"##Ctag#695"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#695"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#695"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#696" + dst::Ptr{Cvoid} + dpitch::Csize_t + src::Ptr{Cvoid} + spitch::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#696"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dpitch && return Ptr{Csize_t}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :spitch && return Ptr{Csize_t}(x + 24) + f === :width && return Ptr{Csize_t}(x + 32) + f === :height && return Ptr{Csize_t}(x + 40) + f === :kind && return Ptr{hipMemcpyKind}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#696", f::Symbol) + r = Ref{var"##Ctag#696"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#696"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#696"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#697" + dst::Ptr{Cvoid} + dpitch::Csize_t + src::Ptr{Cvoid} + spitch::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#697"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dpitch && return Ptr{Csize_t}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :spitch && return Ptr{Csize_t}(x + 24) + f === :width && return Ptr{Csize_t}(x + 32) + f === :height && return Ptr{Csize_t}(x + 40) + f === :kind && return Ptr{hipMemcpyKind}(x + 48) + f === :stream && return Ptr{hipStream_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#697", f::Symbol) + r = Ref{var"##Ctag#697"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#697"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#697"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#698" + dst::Ptr{Cvoid} + dpitch::Csize_t + src::hipArray_const_t + wOffset::Csize_t + hOffset::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#698"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dpitch && return Ptr{Csize_t}(x + 8) + f === :src && return Ptr{hipArray_const_t}(x + 16) + f === :wOffset && return Ptr{Csize_t}(x + 24) + f === :hOffset && return Ptr{Csize_t}(x + 32) + f === :width && return Ptr{Csize_t}(x + 40) + f === :height && return Ptr{Csize_t}(x + 48) + f === :kind && return Ptr{hipMemcpyKind}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#698", f::Symbol) + r = Ref{var"##Ctag#698"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#698"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#698"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#699" + dst::Ptr{Cvoid} + dpitch::Csize_t + src::hipArray_const_t + wOffset::Csize_t + hOffset::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#699"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dpitch && return Ptr{Csize_t}(x + 8) + f === :src && return Ptr{hipArray_const_t}(x + 16) + f === :wOffset && return Ptr{Csize_t}(x + 24) + f === :hOffset && return Ptr{Csize_t}(x + 32) + f === :width && return Ptr{Csize_t}(x + 40) + f === :height && return Ptr{Csize_t}(x + 48) + f === :kind && return Ptr{hipMemcpyKind}(x + 56) + f === :stream && return Ptr{hipStream_t}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#699", f::Symbol) + r = Ref{var"##Ctag#699"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#699"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#699"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#700" + dst::hipArray_t + wOffset::Csize_t + hOffset::Csize_t + src::Ptr{Cvoid} + spitch::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#700"}, f::Symbol) + f === :dst && return Ptr{hipArray_t}(x + 0) + f === :wOffset && return Ptr{Csize_t}(x + 8) + f === :hOffset && return Ptr{Csize_t}(x + 16) + f === :src && return Ptr{Ptr{Cvoid}}(x + 24) + f === :spitch && return Ptr{Csize_t}(x + 32) + f === :width && return Ptr{Csize_t}(x + 40) + f === :height && return Ptr{Csize_t}(x + 48) + f === :kind && return Ptr{hipMemcpyKind}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#700", f::Symbol) + r = Ref{var"##Ctag#700"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#700"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#700"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#701" + dst::hipArray_t + wOffset::Csize_t + hOffset::Csize_t + src::Ptr{Cvoid} + spitch::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#701"}, f::Symbol) + f === :dst && return Ptr{hipArray_t}(x + 0) + f === :wOffset && return Ptr{Csize_t}(x + 8) + f === :hOffset && return Ptr{Csize_t}(x + 16) + f === :src && return Ptr{Ptr{Cvoid}}(x + 24) + f === :spitch && return Ptr{Csize_t}(x + 32) + f === :width && return Ptr{Csize_t}(x + 40) + f === :height && return Ptr{Csize_t}(x + 48) + f === :kind && return Ptr{hipMemcpyKind}(x + 56) + f === :stream && return Ptr{hipStream_t}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#701", f::Symbol) + r = Ref{var"##Ctag#701"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#701"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#701"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#702" + p::Ptr{hipMemcpy3DParms} +end +function Base.getproperty(x::Ptr{var"##Ctag#702"}, f::Symbol) + f === :p && return Ptr{Ptr{hipMemcpy3DParms}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#702", f::Symbol) + r = Ref{var"##Ctag#702"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#702"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#702"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#703" + p::Ptr{hipMemcpy3DParms} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#703"}, f::Symbol) + f === :p && return Ptr{Ptr{hipMemcpy3DParms}}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#703", f::Symbol) + r = Ref{var"##Ctag#703"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#703"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#703"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#704" + dst::Ptr{Cvoid} + src::Ptr{Cvoid} + sizeBytes::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#704"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :kind && return Ptr{hipMemcpyKind}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#704", f::Symbol) + r = Ref{var"##Ctag#704"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#704"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#704"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#705" + dst::Ptr{Cvoid} + srcArray::hipArray_t + srcOffset::Csize_t + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#705"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :srcArray && return Ptr{hipArray_t}(x + 8) + f === :srcOffset && return Ptr{Csize_t}(x + 16) + f === :count && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#705", f::Symbol) + r = Ref{var"##Ctag#705"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#705"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#705"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#706" + dst::hipDeviceptr_t + src::hipDeviceptr_t + sizeBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#706"}, f::Symbol) + f === :dst && return Ptr{hipDeviceptr_t}(x + 0) + f === :src && return Ptr{hipDeviceptr_t}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#706", f::Symbol) + r = Ref{var"##Ctag#706"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#706"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#706"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#707" + dst::hipDeviceptr_t + src::hipDeviceptr_t + sizeBytes::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#707"}, f::Symbol) + f === :dst && return Ptr{hipDeviceptr_t}(x + 0) + f === :src && return Ptr{hipDeviceptr_t}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#707", f::Symbol) + r = Ref{var"##Ctag#707"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#707"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#707"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#708" + dst::Ptr{Cvoid} + src::hipDeviceptr_t + sizeBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#708"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{hipDeviceptr_t}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#708", f::Symbol) + r = Ref{var"##Ctag#708"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#708"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#708"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#709" + dst::Ptr{Cvoid} + src::hipDeviceptr_t + sizeBytes::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#709"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{hipDeviceptr_t}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#709", f::Symbol) + r = Ref{var"##Ctag#709"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#709"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#709"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#710" + dst::Ptr{Cvoid} + srcArray::hipArray_const_t + wOffset::Csize_t + hOffset::Csize_t + count::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#710"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :srcArray && return Ptr{hipArray_const_t}(x + 8) + f === :wOffset && return Ptr{Csize_t}(x + 16) + f === :hOffset && return Ptr{Csize_t}(x + 24) + f === :count && return Ptr{Csize_t}(x + 32) + f === :kind && return Ptr{hipMemcpyKind}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#710", f::Symbol) + r = Ref{var"##Ctag#710"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#710"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#710"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#711" + dst::Ptr{Cvoid} + symbol::Ptr{Cvoid} + sizeBytes::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#711"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :offset && return Ptr{Csize_t}(x + 24) + f === :kind && return Ptr{hipMemcpyKind}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#711", f::Symbol) + r = Ref{var"##Ctag#711"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#711"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#711"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#712" + dst::Ptr{Cvoid} + symbol::Ptr{Cvoid} + sizeBytes::Csize_t + offset::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#712"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :offset && return Ptr{Csize_t}(x + 24) + f === :kind && return Ptr{hipMemcpyKind}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#712", f::Symbol) + r = Ref{var"##Ctag#712"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#712"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#712"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#713" + dstArray::hipArray_t + dstOffset::Csize_t + srcHost::Ptr{Cvoid} + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#713"}, f::Symbol) + f === :dstArray && return Ptr{hipArray_t}(x + 0) + f === :dstOffset && return Ptr{Csize_t}(x + 8) + f === :srcHost && return Ptr{Ptr{Cvoid}}(x + 16) + f === :count && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#713", f::Symbol) + r = Ref{var"##Ctag#713"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#713"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#713"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#714" + dst::hipDeviceptr_t + src::Ptr{Cvoid} + sizeBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#714"}, f::Symbol) + f === :dst && return Ptr{hipDeviceptr_t}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#714", f::Symbol) + r = Ref{var"##Ctag#714"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#714"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#714"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#715" + dst::hipDeviceptr_t + src::Ptr{Cvoid} + sizeBytes::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#715"}, f::Symbol) + f === :dst && return Ptr{hipDeviceptr_t}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#715", f::Symbol) + r = Ref{var"##Ctag#715"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#715"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#715"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#716" + pCopy::Ptr{hip_Memcpy2D} +end +function Base.getproperty(x::Ptr{var"##Ctag#716"}, f::Symbol) + f === :pCopy && return Ptr{Ptr{hip_Memcpy2D}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#716", f::Symbol) + r = Ref{var"##Ctag#716"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#716"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#716"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#717" + pCopy::Ptr{hip_Memcpy2D} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#717"}, f::Symbol) + f === :pCopy && return Ptr{Ptr{hip_Memcpy2D}}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#717", f::Symbol) + r = Ref{var"##Ctag#717"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#717"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#717"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#718" + dst::Ptr{Cvoid} + dstDeviceId::Cint + src::Ptr{Cvoid} + srcDeviceId::Cint + sizeBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#718"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dstDeviceId && return Ptr{Cint}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :srcDeviceId && return Ptr{Cint}(x + 24) + f === :sizeBytes && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#718", f::Symbol) + r = Ref{var"##Ctag#718"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#718"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#718"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#719" + dst::Ptr{Cvoid} + dstDeviceId::Cint + src::Ptr{Cvoid} + srcDevice::Cint + sizeBytes::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#719"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dstDeviceId && return Ptr{Cint}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :srcDevice && return Ptr{Cint}(x + 24) + f === :sizeBytes && return Ptr{Csize_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#719", f::Symbol) + r = Ref{var"##Ctag#719"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#719"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#719"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#720" + dst::hipArray_t + wOffset::Csize_t + hOffset::Csize_t + src::Ptr{Cvoid} + count::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#720"}, f::Symbol) + f === :dst && return Ptr{hipArray_t}(x + 0) + f === :wOffset && return Ptr{Csize_t}(x + 8) + f === :hOffset && return Ptr{Csize_t}(x + 16) + f === :src && return Ptr{Ptr{Cvoid}}(x + 24) + f === :count && return Ptr{Csize_t}(x + 32) + f === :kind && return Ptr{hipMemcpyKind}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#720", f::Symbol) + r = Ref{var"##Ctag#720"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#720"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#720"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#721" + symbol::Ptr{Cvoid} + src::Ptr{Cvoid} + sizeBytes::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#721"}, f::Symbol) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :offset && return Ptr{Csize_t}(x + 24) + f === :kind && return Ptr{hipMemcpyKind}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#721", f::Symbol) + r = Ref{var"##Ctag#721"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#721"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#721"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#722" + symbol::Ptr{Cvoid} + src::Ptr{Cvoid} + sizeBytes::Csize_t + offset::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#722"}, f::Symbol) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :offset && return Ptr{Csize_t}(x + 24) + f === :kind && return Ptr{hipMemcpyKind}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#722", f::Symbol) + r = Ref{var"##Ctag#722"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#722"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#722"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#723" + dst::Ptr{Cvoid} + src::Ptr{Cvoid} + sizeBytes::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#723"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :kind && return Ptr{hipMemcpyKind}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#723", f::Symbol) + r = Ref{var"##Ctag#723"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#723"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#723"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#724" + dst::Ptr{Cvoid} + value::Cint + sizeBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#724"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :value && return Ptr{Cint}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#724", f::Symbol) + r = Ref{var"##Ctag#724"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#724"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#724"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#725" + dst::Ptr{Cvoid} + pitch::Csize_t + value::Cint + width::Csize_t + height::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#725"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :pitch && return Ptr{Csize_t}(x + 8) + f === :value && return Ptr{Cint}(x + 16) + f === :width && return Ptr{Csize_t}(x + 24) + f === :height && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#725", f::Symbol) + r = Ref{var"##Ctag#725"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#725"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#725"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#726" + dst::Ptr{Cvoid} + pitch::Csize_t + value::Cint + width::Csize_t + height::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#726"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :pitch && return Ptr{Csize_t}(x + 8) + f === :value && return Ptr{Cint}(x + 16) + f === :width && return Ptr{Csize_t}(x + 24) + f === :height && return Ptr{Csize_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#726", f::Symbol) + r = Ref{var"##Ctag#726"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#726"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#726"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#727" + pitchedDevPtr::hipPitchedPtr + value::Cint + extent::hipExtent +end +function Base.getproperty(x::Ptr{var"##Ctag#727"}, f::Symbol) + f === :pitchedDevPtr && return Ptr{hipPitchedPtr}(x + 0) + f === :value && return Ptr{Cint}(x + 32) + f === :extent && return Ptr{hipExtent}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#727", f::Symbol) + r = Ref{var"##Ctag#727"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#727"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#727"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#728" + pitchedDevPtr::hipPitchedPtr + value::Cint + extent::hipExtent + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#728"}, f::Symbol) + f === :pitchedDevPtr && return Ptr{hipPitchedPtr}(x + 0) + f === :value && return Ptr{Cint}(x + 32) + f === :extent && return Ptr{hipExtent}(x + 40) + f === :stream && return Ptr{hipStream_t}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#728", f::Symbol) + r = Ref{var"##Ctag#728"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#728"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#728"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#729" + dst::Ptr{Cvoid} + value::Cint + sizeBytes::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#729"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :value && return Ptr{Cint}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#729", f::Symbol) + r = Ref{var"##Ctag#729"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#729"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#729"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#730" + dest::hipDeviceptr_t + value::Cushort + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#730"}, f::Symbol) + f === :dest && return Ptr{hipDeviceptr_t}(x + 0) + f === :value && return Ptr{Cushort}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#730", f::Symbol) + r = Ref{var"##Ctag#730"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#730"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#730"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#731" + dest::hipDeviceptr_t + value::Cushort + count::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#731"}, f::Symbol) + f === :dest && return Ptr{hipDeviceptr_t}(x + 0) + f === :value && return Ptr{Cushort}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#731", f::Symbol) + r = Ref{var"##Ctag#731"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#731"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#731"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#732" + dest::hipDeviceptr_t + value::Cint + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#732"}, f::Symbol) + f === :dest && return Ptr{hipDeviceptr_t}(x + 0) + f === :value && return Ptr{Cint}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#732", f::Symbol) + r = Ref{var"##Ctag#732"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#732"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#732"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#733" + dst::hipDeviceptr_t + value::Cint + count::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#733"}, f::Symbol) + f === :dst && return Ptr{hipDeviceptr_t}(x + 0) + f === :value && return Ptr{Cint}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#733", f::Symbol) + r = Ref{var"##Ctag#733"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#733"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#733"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#734" + dest::hipDeviceptr_t + value::Cuchar + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#734"}, f::Symbol) + f === :dest && return Ptr{hipDeviceptr_t}(x + 0) + f === :value && return Ptr{Cuchar}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#734", f::Symbol) + r = Ref{var"##Ctag#734"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#734"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#734"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#735" + dest::hipDeviceptr_t + value::Cuchar + count::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#735"}, f::Symbol) + f === :dest && return Ptr{hipDeviceptr_t}(x + 0) + f === :value && return Ptr{Cuchar}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#735", f::Symbol) + r = Ref{var"##Ctag#735"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#735"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#735"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#736" + pHandle::Ptr{hipMipmappedArray_t} + pMipmappedArrayDesc::Ptr{HIP_ARRAY3D_DESCRIPTOR} + numMipmapLevels::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#736"}, f::Symbol) + f === :pHandle && return Ptr{Ptr{hipMipmappedArray_t}}(x + 0) + f === :pMipmappedArrayDesc && return Ptr{Ptr{HIP_ARRAY3D_DESCRIPTOR}}(x + 8) + f === :numMipmapLevels && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#736", f::Symbol) + r = Ref{var"##Ctag#736"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#736"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#736"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#737" + hMipmappedArray::hipMipmappedArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#737"}, f::Symbol) + f === :hMipmappedArray && return Ptr{hipMipmappedArray_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#737", f::Symbol) + r = Ref{var"##Ctag#737"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#737"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#737"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#738" + pLevelArray::Ptr{hipArray_t} + hMipMappedArray::hipMipmappedArray_t + level::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#738"}, f::Symbol) + f === :pLevelArray && return Ptr{Ptr{hipArray_t}}(x + 0) + f === :hMipMappedArray && return Ptr{hipMipmappedArray_t}(x + 8) + f === :level && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#738", f::Symbol) + r = Ref{var"##Ctag#738"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#738"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#738"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#739" + _function::Ptr{hipFunction_t} + _module::hipModule_t + kname::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#739"}, f::Symbol) + f === :_function && return Ptr{Ptr{hipFunction_t}}(x + 0) + f === :_module && return Ptr{hipModule_t}(x + 8) + f === :kname && return Ptr{Ptr{Cchar}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#739", f::Symbol) + r = Ref{var"##Ctag#739"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#739"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#739"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#740" + dptr::Ptr{hipDeviceptr_t} + bytes::Ptr{Csize_t} + hmod::hipModule_t + name::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#740"}, f::Symbol) + f === :dptr && return Ptr{Ptr{hipDeviceptr_t}}(x + 0) + f === :bytes && return Ptr{Ptr{Csize_t}}(x + 8) + f === :hmod && return Ptr{hipModule_t}(x + 16) + f === :name && return Ptr{Ptr{Cchar}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#740", f::Symbol) + r = Ref{var"##Ctag#740"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#740"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#740"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#741" + texRef::Ptr{Ptr{textureReference}} + hmod::hipModule_t + name::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#741"}, f::Symbol) + f === :texRef && return Ptr{Ptr{Ptr{textureReference}}}(x + 0) + f === :hmod && return Ptr{hipModule_t}(x + 8) + f === :name && return Ptr{Ptr{Cchar}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#741", f::Symbol) + r = Ref{var"##Ctag#741"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#741"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#741"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#742" + func::hipFunction_t + gridDimX::Cuint + gridDimY::Cuint + gridDimZ::Cuint + blockDimX::Cuint + blockDimY::Cuint + blockDimZ::Cuint + sharedMemBytes::Cuint + stream::hipStream_t + kernelParams::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#742"}, f::Symbol) + f === :func && return Ptr{hipFunction_t}(x + 0) + f === :gridDimX && return Ptr{Cuint}(x + 8) + f === :gridDimY && return Ptr{Cuint}(x + 12) + f === :gridDimZ && return Ptr{Cuint}(x + 16) + f === :blockDimX && return Ptr{Cuint}(x + 20) + f === :blockDimY && return Ptr{Cuint}(x + 24) + f === :blockDimZ && return Ptr{Cuint}(x + 28) + f === :sharedMemBytes && return Ptr{Cuint}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + f === :kernelParams && return Ptr{Ptr{Ptr{Cvoid}}}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#742", f::Symbol) + r = Ref{var"##Ctag#742"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#742"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#742"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#743" + launchParamsList::Ptr{hipFunctionLaunchParams} + numDevices::Cuint + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#743"}, f::Symbol) + f === :launchParamsList && return Ptr{Ptr{hipFunctionLaunchParams}}(x + 0) + f === :numDevices && return Ptr{Cuint}(x + 8) + f === :flags && return Ptr{Cuint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#743", f::Symbol) + r = Ref{var"##Ctag#743"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#743"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#743"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#744" + func::hipFunction_t + gridDimX::Cuint + gridDimY::Cuint + gridDimZ::Cuint + blockDimX::Cuint + blockDimY::Cuint + blockDimZ::Cuint + sharedMemBytes::Cuint + stream::hipStream_t + kernelParams::Ptr{Ptr{Cvoid}} + extra::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#744"}, f::Symbol) + f === :func && return Ptr{hipFunction_t}(x + 0) + f === :gridDimX && return Ptr{Cuint}(x + 8) + f === :gridDimY && return Ptr{Cuint}(x + 12) + f === :gridDimZ && return Ptr{Cuint}(x + 16) + f === :blockDimX && return Ptr{Cuint}(x + 20) + f === :blockDimY && return Ptr{Cuint}(x + 24) + f === :blockDimZ && return Ptr{Cuint}(x + 28) + f === :sharedMemBytes && return Ptr{Cuint}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + f === :kernelParams && return Ptr{Ptr{Ptr{Cvoid}}}(x + 48) + f === :extra && return Ptr{Ptr{Ptr{Cvoid}}}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#744", f::Symbol) + r = Ref{var"##Ctag#744"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#744"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#744"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#745" + _module::Ptr{hipModule_t} + fname::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#745"}, f::Symbol) + f === :_module && return Ptr{Ptr{hipModule_t}}(x + 0) + f === :fname && return Ptr{Ptr{Cchar}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#745", f::Symbol) + r = Ref{var"##Ctag#745"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#745"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#745"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#746" + _module::Ptr{hipModule_t} + image::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#746"}, f::Symbol) + f === :_module && return Ptr{Ptr{hipModule_t}}(x + 0) + f === :image && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#746", f::Symbol) + r = Ref{var"##Ctag#746"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#746"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#746"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#747" + _module::Ptr{hipModule_t} + image::Ptr{Cvoid} + numOptions::Cuint + options::Ptr{hipJitOption} + optionValues::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#747"}, f::Symbol) + f === :_module && return Ptr{Ptr{hipModule_t}}(x + 0) + f === :image && return Ptr{Ptr{Cvoid}}(x + 8) + f === :numOptions && return Ptr{Cuint}(x + 16) + f === :options && return Ptr{Ptr{hipJitOption}}(x + 24) + f === :optionValues && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#747", f::Symbol) + r = Ref{var"##Ctag#747"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#747"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#747"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#748" + numBlocks::Ptr{Cint} + func::hipFunction_t + blockSize::Cint + dynSharedMemPerBlk::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#748"}, f::Symbol) + f === :numBlocks && return Ptr{Ptr{Cint}}(x + 0) + f === :func && return Ptr{hipFunction_t}(x + 8) + f === :blockSize && return Ptr{Cint}(x + 16) + f === :dynSharedMemPerBlk && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#748", f::Symbol) + r = Ref{var"##Ctag#748"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#748"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#748"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#749" + numBlocks::Ptr{Cint} + func::hipFunction_t + blockSize::Cint + dynSharedMemPerBlk::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#749"}, f::Symbol) + f === :numBlocks && return Ptr{Ptr{Cint}}(x + 0) + f === :func && return Ptr{hipFunction_t}(x + 8) + f === :blockSize && return Ptr{Cint}(x + 16) + f === :dynSharedMemPerBlk && return Ptr{Csize_t}(x + 24) + f === :flags && return Ptr{Cuint}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#749", f::Symbol) + r = Ref{var"##Ctag#749"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#749"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#749"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#750" + gridSize::Ptr{Cint} + blockSize::Ptr{Cint} + func::hipFunction_t + dynSharedMemPerBlk::Csize_t + blockSizeLimit::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#750"}, f::Symbol) + f === :gridSize && return Ptr{Ptr{Cint}}(x + 0) + f === :blockSize && return Ptr{Ptr{Cint}}(x + 8) + f === :func && return Ptr{hipFunction_t}(x + 16) + f === :dynSharedMemPerBlk && return Ptr{Csize_t}(x + 24) + f === :blockSizeLimit && return Ptr{Cint}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#750", f::Symbol) + r = Ref{var"##Ctag#750"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#750"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#750"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#751" + gridSize::Ptr{Cint} + blockSize::Ptr{Cint} + func::hipFunction_t + dynSharedMemPerBlk::Csize_t + blockSizeLimit::Cint + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#751"}, f::Symbol) + f === :gridSize && return Ptr{Ptr{Cint}}(x + 0) + f === :blockSize && return Ptr{Ptr{Cint}}(x + 8) + f === :func && return Ptr{hipFunction_t}(x + 16) + f === :dynSharedMemPerBlk && return Ptr{Csize_t}(x + 24) + f === :blockSizeLimit && return Ptr{Cint}(x + 32) + f === :flags && return Ptr{Cuint}(x + 36) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#751", f::Symbol) + r = Ref{var"##Ctag#751"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#751"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#751"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#752" + _module::hipModule_t +end +function Base.getproperty(x::Ptr{var"##Ctag#752"}, f::Symbol) + f === :_module && return Ptr{hipModule_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#752", f::Symbol) + r = Ref{var"##Ctag#752"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#752"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#752"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#753" + numBlocks::Ptr{Cint} + func::Ptr{Cvoid} + blockSize::Cint + dynSharedMemPerBlk::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#753"}, f::Symbol) + f === :numBlocks && return Ptr{Ptr{Cint}}(x + 0) + f === :func && return Ptr{Ptr{Cvoid}}(x + 8) + f === :blockSize && return Ptr{Cint}(x + 16) + f === :dynSharedMemPerBlk && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#753", f::Symbol) + r = Ref{var"##Ctag#753"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#753"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#753"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#754" + numBlocks::Ptr{Cint} + func::Ptr{Cvoid} + blockSize::Cint + dynSharedMemPerBlk::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#754"}, f::Symbol) + f === :numBlocks && return Ptr{Ptr{Cint}}(x + 0) + f === :func && return Ptr{Ptr{Cvoid}}(x + 8) + f === :blockSize && return Ptr{Cint}(x + 16) + f === :dynSharedMemPerBlk && return Ptr{Csize_t}(x + 24) + f === :flags && return Ptr{Cuint}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#754", f::Symbol) + r = Ref{var"##Ctag#754"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#754"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#754"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#755" + gridSize::Ptr{Cint} + blockSize::Ptr{Cint} + func::Ptr{Cvoid} + dynSharedMemPerBlk::Csize_t + blockSizeLimit::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#755"}, f::Symbol) + f === :gridSize && return Ptr{Ptr{Cint}}(x + 0) + f === :blockSize && return Ptr{Ptr{Cint}}(x + 8) + f === :func && return Ptr{Ptr{Cvoid}}(x + 16) + f === :dynSharedMemPerBlk && return Ptr{Csize_t}(x + 24) + f === :blockSizeLimit && return Ptr{Cint}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#755", f::Symbol) + r = Ref{var"##Ctag#755"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#755"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#755"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#756" + no_args::rocprofiler_hip_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#756"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hip_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#756", f::Symbol) + r = Ref{var"##Ctag#756"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#756"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#756"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#757" + data::Ptr{Cvoid} + attribute::hipPointer_attribute + ptr::hipDeviceptr_t +end +function Base.getproperty(x::Ptr{var"##Ctag#757"}, f::Symbol) + f === :data && return Ptr{Ptr{Cvoid}}(x + 0) + f === :attribute && return Ptr{hipPointer_attribute}(x + 8) + f === :ptr && return Ptr{hipDeviceptr_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#757", f::Symbol) + r = Ref{var"##Ctag#757"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#757"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#757"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#758" + attributes::Ptr{hipPointerAttribute_t} + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#758"}, f::Symbol) + f === :attributes && return Ptr{Ptr{hipPointerAttribute_t}}(x + 0) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#758", f::Symbol) + r = Ref{var"##Ctag#758"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#758"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#758"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#759" + value::Ptr{Cvoid} + attribute::hipPointer_attribute + ptr::hipDeviceptr_t +end +function Base.getproperty(x::Ptr{var"##Ctag#759"}, f::Symbol) + f === :value && return Ptr{Ptr{Cvoid}}(x + 0) + f === :attribute && return Ptr{hipPointer_attribute}(x + 8) + f === :ptr && return Ptr{hipDeviceptr_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#759", f::Symbol) + r = Ref{var"##Ctag#759"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#759"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#759"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#760" + no_args::rocprofiler_hip_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#760"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hip_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#760", f::Symbol) + r = Ref{var"##Ctag#760"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#760"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#760"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#761" + no_args::rocprofiler_hip_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#761"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hip_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#761", f::Symbol) + r = Ref{var"##Ctag#761"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#761"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#761"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#762" + runtimeVersion::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#762"}, f::Symbol) + f === :runtimeVersion && return Ptr{Ptr{Cint}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#762", f::Symbol) + r = Ref{var"##Ctag#762"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#762"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#762"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#763" + deviceId::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#763"}, f::Symbol) + f === :deviceId && return Ptr{Cint}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#763", f::Symbol) + r = Ref{var"##Ctag#763"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#763"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#763"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#764" + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#764"}, f::Symbol) + f === :flags && return Ptr{Cuint}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#764", f::Symbol) + r = Ref{var"##Ctag#764"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#764"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#764"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#765" + arg::Ptr{Cvoid} + size::Csize_t + offset::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#765"}, f::Symbol) + f === :arg && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :offset && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#765", f::Symbol) + r = Ref{var"##Ctag#765"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#765"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#765"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#766" + extSemArray::Ptr{hipExternalSemaphore_t} + paramsArray::Ptr{hipExternalSemaphoreSignalParams} + numExtSems::Cuint + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#766"}, f::Symbol) + f === :extSemArray && return Ptr{Ptr{hipExternalSemaphore_t}}(x + 0) + f === :paramsArray && return Ptr{Ptr{hipExternalSemaphoreSignalParams}}(x + 8) + f === :numExtSems && return Ptr{Cuint}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#766", f::Symbol) + r = Ref{var"##Ctag#766"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#766"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#766"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#767" + stream::hipStream_t + callback::hipStreamCallback_t + userData::Ptr{Cvoid} + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#767"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :callback && return Ptr{hipStreamCallback_t}(x + 8) + f === :userData && return Ptr{Ptr{Cvoid}}(x + 16) + f === :flags && return Ptr{Cuint}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#767", f::Symbol) + r = Ref{var"##Ctag#767"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#767"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#767"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#768" + stream::hipStream_t + dev_ptr::Ptr{Cvoid} + length::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#768"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :dev_ptr && return Ptr{Ptr{Cvoid}}(x + 8) + f === :length && return Ptr{Csize_t}(x + 16) + f === :flags && return Ptr{Cuint}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#768", f::Symbol) + r = Ref{var"##Ctag#768"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#768"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#768"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#769" + stream::hipStream_t + mode::hipStreamCaptureMode +end +function Base.getproperty(x::Ptr{var"##Ctag#769"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :mode && return Ptr{hipStreamCaptureMode}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#769", f::Symbol) + r = Ref{var"##Ctag#769"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#769"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#769"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#770" + stream::Ptr{hipStream_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#770"}, f::Symbol) + f === :stream && return Ptr{Ptr{hipStream_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#770", f::Symbol) + r = Ref{var"##Ctag#770"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#770"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#770"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#771" + stream::Ptr{hipStream_t} + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#771"}, f::Symbol) + f === :stream && return Ptr{Ptr{hipStream_t}}(x + 0) + f === :flags && return Ptr{Cuint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#771", f::Symbol) + r = Ref{var"##Ctag#771"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#771"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#771"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#772" + stream::Ptr{hipStream_t} + flags::Cuint + priority::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#772"}, f::Symbol) + f === :stream && return Ptr{Ptr{hipStream_t}}(x + 0) + f === :flags && return Ptr{Cuint}(x + 8) + f === :priority && return Ptr{Cint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#772", f::Symbol) + r = Ref{var"##Ctag#772"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#772"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#772"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#773" + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#773"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#773", f::Symbol) + r = Ref{var"##Ctag#773"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#773"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#773"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#774" + stream::hipStream_t + pGraph::Ptr{hipGraph_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#774"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :pGraph && return Ptr{Ptr{hipGraph_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#774", f::Symbol) + r = Ref{var"##Ctag#774"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#774"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#774"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#775" + stream::hipStream_t + pCaptureStatus::Ptr{hipStreamCaptureStatus} + pId::Ptr{Culonglong} +end +function Base.getproperty(x::Ptr{var"##Ctag#775"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :pCaptureStatus && return Ptr{Ptr{hipStreamCaptureStatus}}(x + 8) + f === :pId && return Ptr{Ptr{Culonglong}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#775", f::Symbol) + r = Ref{var"##Ctag#775"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#775"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#775"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#776" + stream::hipStream_t + captureStatus_out::Ptr{hipStreamCaptureStatus} + id_out::Ptr{Culonglong} + graph_out::Ptr{hipGraph_t} + dependencies_out::Ptr{Ptr{hipGraphNode_t}} + numDependencies_out::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#776"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :captureStatus_out && return Ptr{Ptr{hipStreamCaptureStatus}}(x + 8) + f === :id_out && return Ptr{Ptr{Culonglong}}(x + 16) + f === :graph_out && return Ptr{Ptr{hipGraph_t}}(x + 24) + f === :dependencies_out && return Ptr{Ptr{Ptr{hipGraphNode_t}}}(x + 32) + f === :numDependencies_out && return Ptr{Ptr{Csize_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#776", f::Symbol) + r = Ref{var"##Ctag#776"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#776"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#776"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#777" + stream::hipStream_t + device::Ptr{hipDevice_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#777"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :device && return Ptr{Ptr{hipDevice_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#777", f::Symbol) + r = Ref{var"##Ctag#777"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#777"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#777"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#778" + stream::hipStream_t + flags::Ptr{Cuint} +end +function Base.getproperty(x::Ptr{var"##Ctag#778"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :flags && return Ptr{Ptr{Cuint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#778", f::Symbol) + r = Ref{var"##Ctag#778"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#778"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#778"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#779" + stream::hipStream_t + priority::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#779"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :priority && return Ptr{Ptr{Cint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#779", f::Symbol) + r = Ref{var"##Ctag#779"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#779"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#779"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#780" + stream::hipStream_t + pCaptureStatus::Ptr{hipStreamCaptureStatus} +end +function Base.getproperty(x::Ptr{var"##Ctag#780"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :pCaptureStatus && return Ptr{Ptr{hipStreamCaptureStatus}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#780", f::Symbol) + r = Ref{var"##Ctag#780"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#780"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#780"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#781" + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#781"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#781", f::Symbol) + r = Ref{var"##Ctag#781"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#781"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#781"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#782" + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#782"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#782", f::Symbol) + r = Ref{var"##Ctag#782"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#782"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#782"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#783" + stream::hipStream_t + dependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#783"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :dependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 8) + f === :numDependencies && return Ptr{Csize_t}(x + 16) + f === :flags && return Ptr{Cuint}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#783", f::Symbol) + r = Ref{var"##Ctag#783"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#783"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#783"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#784" + stream::hipStream_t + event::hipEvent_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#784"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :event && return Ptr{hipEvent_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#784", f::Symbol) + r = Ref{var"##Ctag#784"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#784"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#784"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#785" + stream::hipStream_t + ptr::Ptr{Cvoid} + value::UInt32 + flags::Cuint + mask::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#785"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 8) + f === :value && return Ptr{UInt32}(x + 16) + f === :flags && return Ptr{Cuint}(x + 20) + f === :mask && return Ptr{UInt32}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#785", f::Symbol) + r = Ref{var"##Ctag#785"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#785"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#785"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#786" + stream::hipStream_t + ptr::Ptr{Cvoid} + value::UInt64 + flags::Cuint + mask::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#786"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 8) + f === :value && return Ptr{UInt64}(x + 16) + f === :flags && return Ptr{Cuint}(x + 24) + f === :mask && return Ptr{UInt64}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#786", f::Symbol) + r = Ref{var"##Ctag#786"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#786"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#786"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#787" + stream::hipStream_t + ptr::Ptr{Cvoid} + value::UInt32 + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#787"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 8) + f === :value && return Ptr{UInt32}(x + 16) + f === :flags && return Ptr{Cuint}(x + 20) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#787", f::Symbol) + r = Ref{var"##Ctag#787"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#787"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#787"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#788" + stream::hipStream_t + ptr::Ptr{Cvoid} + value::UInt64 + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#788"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 8) + f === :value && return Ptr{UInt64}(x + 16) + f === :flags && return Ptr{Cuint}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#788", f::Symbol) + r = Ref{var"##Ctag#788"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#788"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#788"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#789" + pTexObject::Ptr{hipTextureObject_t} + pResDesc::Ptr{HIP_RESOURCE_DESC} + pTexDesc::Ptr{HIP_TEXTURE_DESC} + pResViewDesc::Ptr{HIP_RESOURCE_VIEW_DESC} +end +function Base.getproperty(x::Ptr{var"##Ctag#789"}, f::Symbol) + f === :pTexObject && return Ptr{Ptr{hipTextureObject_t}}(x + 0) + f === :pResDesc && return Ptr{Ptr{HIP_RESOURCE_DESC}}(x + 8) + f === :pTexDesc && return Ptr{Ptr{HIP_TEXTURE_DESC}}(x + 16) + f === :pResViewDesc && return Ptr{Ptr{HIP_RESOURCE_VIEW_DESC}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#789", f::Symbol) + r = Ref{var"##Ctag#789"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#789"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#789"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#790" + texObject::hipTextureObject_t +end +function Base.getproperty(x::Ptr{var"##Ctag#790"}, f::Symbol) + f === :texObject && return Ptr{hipTextureObject_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#790", f::Symbol) + r = Ref{var"##Ctag#790"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#790"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#790"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#791" + pResDesc::Ptr{HIP_RESOURCE_DESC} + texObject::hipTextureObject_t +end +function Base.getproperty(x::Ptr{var"##Ctag#791"}, f::Symbol) + f === :pResDesc && return Ptr{Ptr{HIP_RESOURCE_DESC}}(x + 0) + f === :texObject && return Ptr{hipTextureObject_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#791", f::Symbol) + r = Ref{var"##Ctag#791"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#791"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#791"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#792" + pResViewDesc::Ptr{HIP_RESOURCE_VIEW_DESC} + texObject::hipTextureObject_t +end +function Base.getproperty(x::Ptr{var"##Ctag#792"}, f::Symbol) + f === :pResViewDesc && return Ptr{Ptr{HIP_RESOURCE_VIEW_DESC}}(x + 0) + f === :texObject && return Ptr{hipTextureObject_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#792", f::Symbol) + r = Ref{var"##Ctag#792"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#792"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#792"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#793" + pTexDesc::Ptr{HIP_TEXTURE_DESC} + texObject::hipTextureObject_t +end +function Base.getproperty(x::Ptr{var"##Ctag#793"}, f::Symbol) + f === :pTexDesc && return Ptr{Ptr{HIP_TEXTURE_DESC}}(x + 0) + f === :texObject && return Ptr{hipTextureObject_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#793", f::Symbol) + r = Ref{var"##Ctag#793"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#793"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#793"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#794" + dev_ptr::Ptr{hipDeviceptr_t} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#794"}, f::Symbol) + f === :dev_ptr && return Ptr{Ptr{hipDeviceptr_t}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#794", f::Symbol) + r = Ref{var"##Ctag#794"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#794"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#794"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#795" + pam::Ptr{hipTextureAddressMode} + texRef::Ptr{textureReference} + dim::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#795"}, f::Symbol) + f === :pam && return Ptr{Ptr{hipTextureAddressMode}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + f === :dim && return Ptr{Cint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#795", f::Symbol) + r = Ref{var"##Ctag#795"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#795"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#795"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#796" + pfm::Ptr{hipTextureFilterMode} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#796"}, f::Symbol) + f === :pfm && return Ptr{Ptr{hipTextureFilterMode}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#796", f::Symbol) + r = Ref{var"##Ctag#796"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#796"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#796"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#797" + pFlags::Ptr{Cuint} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#797"}, f::Symbol) + f === :pFlags && return Ptr{Ptr{Cuint}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#797", f::Symbol) + r = Ref{var"##Ctag#797"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#797"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#797"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#798" + pFormat::Ptr{hipArray_Format} + pNumChannels::Ptr{Cint} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#798"}, f::Symbol) + f === :pFormat && return Ptr{Ptr{hipArray_Format}}(x + 0) + f === :pNumChannels && return Ptr{Ptr{Cint}}(x + 8) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#798", f::Symbol) + r = Ref{var"##Ctag#798"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#798"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#798"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#799" + pmaxAnsio::Ptr{Cint} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#799"}, f::Symbol) + f === :pmaxAnsio && return Ptr{Ptr{Cint}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#799", f::Symbol) + r = Ref{var"##Ctag#799"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#799"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#799"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#800" + pArray::Ptr{hipMipmappedArray_t} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#800"}, f::Symbol) + f === :pArray && return Ptr{Ptr{hipMipmappedArray_t}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#800", f::Symbol) + r = Ref{var"##Ctag#800"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#800"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#800"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#801" + pfm::Ptr{hipTextureFilterMode} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#801"}, f::Symbol) + f === :pfm && return Ptr{Ptr{hipTextureFilterMode}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#801", f::Symbol) + r = Ref{var"##Ctag#801"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#801"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#801"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#802" + pbias::Ptr{Cfloat} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#802"}, f::Symbol) + f === :pbias && return Ptr{Ptr{Cfloat}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#802", f::Symbol) + r = Ref{var"##Ctag#802"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#802"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#802"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#803" + pminMipmapLevelClamp::Ptr{Cfloat} + pmaxMipmapLevelClamp::Ptr{Cfloat} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#803"}, f::Symbol) + f === :pminMipmapLevelClamp && return Ptr{Ptr{Cfloat}}(x + 0) + f === :pmaxMipmapLevelClamp && return Ptr{Ptr{Cfloat}}(x + 8) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#803", f::Symbol) + r = Ref{var"##Ctag#803"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#803"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#803"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#804" + ByteOffset::Ptr{Csize_t} + texRef::Ptr{textureReference} + dptr::hipDeviceptr_t + bytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#804"}, f::Symbol) + f === :ByteOffset && return Ptr{Ptr{Csize_t}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + f === :dptr && return Ptr{hipDeviceptr_t}(x + 16) + f === :bytes && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#804", f::Symbol) + r = Ref{var"##Ctag#804"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#804"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#804"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#805" + texRef::Ptr{textureReference} + desc::Ptr{HIP_ARRAY_DESCRIPTOR} + dptr::hipDeviceptr_t + Pitch::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#805"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :desc && return Ptr{Ptr{HIP_ARRAY_DESCRIPTOR}}(x + 8) + f === :dptr && return Ptr{hipDeviceptr_t}(x + 16) + f === :Pitch && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#805", f::Symbol) + r = Ref{var"##Ctag#805"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#805"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#805"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#806" + texRef::Ptr{textureReference} + dim::Cint + am::hipTextureAddressMode +end +function Base.getproperty(x::Ptr{var"##Ctag#806"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :dim && return Ptr{Cint}(x + 8) + f === :am && return Ptr{hipTextureAddressMode}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#806", f::Symbol) + r = Ref{var"##Ctag#806"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#806"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#806"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#807" + tex::Ptr{textureReference} + array::hipArray_const_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#807"}, f::Symbol) + f === :tex && return Ptr{Ptr{textureReference}}(x + 0) + f === :array && return Ptr{hipArray_const_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#807", f::Symbol) + r = Ref{var"##Ctag#807"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#807"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#807"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#808" + texRef::Ptr{textureReference} + pBorderColor::Ptr{Cfloat} +end +function Base.getproperty(x::Ptr{var"##Ctag#808"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :pBorderColor && return Ptr{Ptr{Cfloat}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#808", f::Symbol) + r = Ref{var"##Ctag#808"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#808"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#808"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#809" + texRef::Ptr{textureReference} + fm::hipTextureFilterMode +end +function Base.getproperty(x::Ptr{var"##Ctag#809"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :fm && return Ptr{hipTextureFilterMode}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#809", f::Symbol) + r = Ref{var"##Ctag#809"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#809"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#809"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#810" + texRef::Ptr{textureReference} + Flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#810"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :Flags && return Ptr{Cuint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#810", f::Symbol) + r = Ref{var"##Ctag#810"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#810"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#810"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#811" + texRef::Ptr{textureReference} + fmt::hipArray_Format + NumPackedComponents::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#811"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :fmt && return Ptr{hipArray_Format}(x + 8) + f === :NumPackedComponents && return Ptr{Cint}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#811", f::Symbol) + r = Ref{var"##Ctag#811"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#811"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#811"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#812" + texRef::Ptr{textureReference} + maxAniso::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#812"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :maxAniso && return Ptr{Cuint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#812", f::Symbol) + r = Ref{var"##Ctag#812"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#812"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#812"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#813" + texRef::Ptr{textureReference} + fm::hipTextureFilterMode +end +function Base.getproperty(x::Ptr{var"##Ctag#813"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :fm && return Ptr{hipTextureFilterMode}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#813", f::Symbol) + r = Ref{var"##Ctag#813"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#813"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#813"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#814" + texRef::Ptr{textureReference} + bias::Cfloat +end +function Base.getproperty(x::Ptr{var"##Ctag#814"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :bias && return Ptr{Cfloat}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#814", f::Symbol) + r = Ref{var"##Ctag#814"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#814"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#814"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#815" + texRef::Ptr{textureReference} + minMipMapLevelClamp::Cfloat + maxMipMapLevelClamp::Cfloat +end +function Base.getproperty(x::Ptr{var"##Ctag#815"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :minMipMapLevelClamp && return Ptr{Cfloat}(x + 8) + f === :maxMipMapLevelClamp && return Ptr{Cfloat}(x + 12) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#815", f::Symbol) + r = Ref{var"##Ctag#815"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#815"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#815"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#816" + texRef::Ptr{textureReference} + mipmappedArray::Ptr{hipMipmappedArray} + Flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#816"}, f::Symbol) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 0) + f === :mipmappedArray && return Ptr{Ptr{hipMipmappedArray}}(x + 8) + f === :Flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#816", f::Symbol) + r = Ref{var"##Ctag#816"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#816"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#816"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#817" + mode::Ptr{hipStreamCaptureMode} +end +function Base.getproperty(x::Ptr{var"##Ctag#817"}, f::Symbol) + f === :mode && return Ptr{Ptr{hipStreamCaptureMode}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#817", f::Symbol) + r = Ref{var"##Ctag#817"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#817"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#817"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#818" + tex::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#818"}, f::Symbol) + f === :tex && return Ptr{Ptr{textureReference}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#818", f::Symbol) + r = Ref{var"##Ctag#818"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#818"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#818"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#819" + object_out::Ptr{hipUserObject_t} + ptr::Ptr{Cvoid} + destroy::hipHostFn_t + initialRefcount::Cuint + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#819"}, f::Symbol) + f === :object_out && return Ptr{Ptr{hipUserObject_t}}(x + 0) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 8) + f === :destroy && return Ptr{hipHostFn_t}(x + 16) + f === :initialRefcount && return Ptr{Cuint}(x + 24) + f === :flags && return Ptr{Cuint}(x + 28) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#819", f::Symbol) + r = Ref{var"##Ctag#819"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#819"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#819"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#820" + object::hipUserObject_t + count::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#820"}, f::Symbol) + f === :object && return Ptr{hipUserObject_t}(x + 0) + f === :count && return Ptr{Cuint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#820", f::Symbol) + r = Ref{var"##Ctag#820"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#820"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#820"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#821" + object::hipUserObject_t + count::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#821"}, f::Symbol) + f === :object && return Ptr{hipUserObject_t}(x + 0) + f === :count && return Ptr{Cuint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#821", f::Symbol) + r = Ref{var"##Ctag#821"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#821"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#821"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#822" + extSemArray::Ptr{hipExternalSemaphore_t} + paramsArray::Ptr{hipExternalSemaphoreWaitParams} + numExtSems::Cuint + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#822"}, f::Symbol) + f === :extSemArray && return Ptr{Ptr{hipExternalSemaphore_t}}(x + 0) + f === :paramsArray && return Ptr{Ptr{hipExternalSemaphoreWaitParams}}(x + 8) + f === :numExtSems && return Ptr{Cuint}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#822", f::Symbol) + r = Ref{var"##Ctag#822"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#822"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#822"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#823" + x::Cint + y::Cint + z::Cint + w::Cint + f::hipChannelFormatKind +end +function Base.getproperty(x::Ptr{var"##Ctag#823"}, f::Symbol) + f === :x && return Ptr{Cint}(x + 0) + f === :y && return Ptr{Cint}(x + 4) + f === :z && return Ptr{Cint}(x + 8) + f === :w && return Ptr{Cint}(x + 12) + f === :f && return Ptr{hipChannelFormatKind}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#823", f::Symbol) + r = Ref{var"##Ctag#823"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#823"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#823"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#824" + func::hipFunction_t + globalWorkSizeX::UInt32 + globalWorkSizeY::UInt32 + globalWorkSizeZ::UInt32 + localWorkSizeX::UInt32 + localWorkSizeY::UInt32 + localWorkSizeZ::UInt32 + sharedMemBytes::Csize_t + stream::hipStream_t + kernelParams::Ptr{Ptr{Cvoid}} + extra::Ptr{Ptr{Cvoid}} + startEvent::hipEvent_t + stopEvent::hipEvent_t + flags::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#824"}, f::Symbol) + f === :func && return Ptr{hipFunction_t}(x + 0) + f === :globalWorkSizeX && return Ptr{UInt32}(x + 8) + f === :globalWorkSizeY && return Ptr{UInt32}(x + 12) + f === :globalWorkSizeZ && return Ptr{UInt32}(x + 16) + f === :localWorkSizeX && return Ptr{UInt32}(x + 20) + f === :localWorkSizeY && return Ptr{UInt32}(x + 24) + f === :localWorkSizeZ && return Ptr{UInt32}(x + 28) + f === :sharedMemBytes && return Ptr{Csize_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + f === :kernelParams && return Ptr{Ptr{Ptr{Cvoid}}}(x + 48) + f === :extra && return Ptr{Ptr{Ptr{Cvoid}}}(x + 56) + f === :startEvent && return Ptr{hipEvent_t}(x + 64) + f === :stopEvent && return Ptr{hipEvent_t}(x + 72) + f === :flags && return Ptr{UInt32}(x + 80) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#824", f::Symbol) + r = Ref{var"##Ctag#824"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#824"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#824"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#825" + func::hipFunction_t + globalWorkSizeX::UInt32 + globalWorkSizeY::UInt32 + globalWorkSizeZ::UInt32 + localWorkSizeX::UInt32 + localWorkSizeY::UInt32 + localWorkSizeZ::UInt32 + sharedMemBytes::Csize_t + stream::hipStream_t + kernelParams::Ptr{Ptr{Cvoid}} + extra::Ptr{Ptr{Cvoid}} + startEvent::hipEvent_t + stopEvent::hipEvent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#825"}, f::Symbol) + f === :func && return Ptr{hipFunction_t}(x + 0) + f === :globalWorkSizeX && return Ptr{UInt32}(x + 8) + f === :globalWorkSizeY && return Ptr{UInt32}(x + 12) + f === :globalWorkSizeZ && return Ptr{UInt32}(x + 16) + f === :localWorkSizeX && return Ptr{UInt32}(x + 20) + f === :localWorkSizeY && return Ptr{UInt32}(x + 24) + f === :localWorkSizeZ && return Ptr{UInt32}(x + 28) + f === :sharedMemBytes && return Ptr{Csize_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + f === :kernelParams && return Ptr{Ptr{Ptr{Cvoid}}}(x + 48) + f === :extra && return Ptr{Ptr{Ptr{Cvoid}}}(x + 56) + f === :startEvent && return Ptr{hipEvent_t}(x + 64) + f === :stopEvent && return Ptr{hipEvent_t}(x + 72) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#825", f::Symbol) + r = Ref{var"##Ctag#825"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#825"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#825"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#826" + dst::Ptr{Cvoid} + src::Ptr{Cvoid} + sizeBytes::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#826"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :kind && return Ptr{hipMemcpyKind}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#826", f::Symbol) + r = Ref{var"##Ctag#826"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#826"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#826"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#827" + symbol::Ptr{Cvoid} + src::Ptr{Cvoid} + sizeBytes::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#827"}, f::Symbol) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :offset && return Ptr{Csize_t}(x + 24) + f === :kind && return Ptr{hipMemcpyKind}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#827", f::Symbol) + r = Ref{var"##Ctag#827"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#827"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#827"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#828" + dst::Ptr{Cvoid} + symbol::Ptr{Cvoid} + sizeBytes::Csize_t + offset::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#828"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :offset && return Ptr{Csize_t}(x + 24) + f === :kind && return Ptr{hipMemcpyKind}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#828", f::Symbol) + r = Ref{var"##Ctag#828"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#828"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#828"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#829" + dst::Ptr{Cvoid} + dpitch::Csize_t + src::Ptr{Cvoid} + spitch::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#829"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dpitch && return Ptr{Csize_t}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :spitch && return Ptr{Csize_t}(x + 24) + f === :width && return Ptr{Csize_t}(x + 32) + f === :height && return Ptr{Csize_t}(x + 40) + f === :kind && return Ptr{hipMemcpyKind}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#829", f::Symbol) + r = Ref{var"##Ctag#829"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#829"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#829"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#830" + dst::Ptr{Cvoid} + dpitch::Csize_t + src::hipArray_const_t + wOffset::Csize_t + hOffset::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#830"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dpitch && return Ptr{Csize_t}(x + 8) + f === :src && return Ptr{hipArray_const_t}(x + 16) + f === :wOffset && return Ptr{Csize_t}(x + 24) + f === :hOffset && return Ptr{Csize_t}(x + 32) + f === :width && return Ptr{Csize_t}(x + 40) + f === :height && return Ptr{Csize_t}(x + 48) + f === :kind && return Ptr{hipMemcpyKind}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#830", f::Symbol) + r = Ref{var"##Ctag#830"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#830"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#830"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#831" + p::Ptr{hipMemcpy3DParms} +end +function Base.getproperty(x::Ptr{var"##Ctag#831"}, f::Symbol) + f === :p && return Ptr{Ptr{hipMemcpy3DParms}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#831", f::Symbol) + r = Ref{var"##Ctag#831"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#831"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#831"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#832" + dst::Ptr{Cvoid} + value::Cint + sizeBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#832"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :value && return Ptr{Cint}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#832", f::Symbol) + r = Ref{var"##Ctag#832"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#832"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#832"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#833" + dst::Ptr{Cvoid} + value::Cint + sizeBytes::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#833"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :value && return Ptr{Cint}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :stream && return Ptr{hipStream_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#833", f::Symbol) + r = Ref{var"##Ctag#833"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#833"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#833"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#834" + dst::Ptr{Cvoid} + pitch::Csize_t + value::Cint + width::Csize_t + height::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#834"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :pitch && return Ptr{Csize_t}(x + 8) + f === :value && return Ptr{Cint}(x + 16) + f === :width && return Ptr{Csize_t}(x + 24) + f === :height && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#834", f::Symbol) + r = Ref{var"##Ctag#834"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#834"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#834"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#835" + dst::Ptr{Cvoid} + pitch::Csize_t + value::Cint + width::Csize_t + height::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#835"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :pitch && return Ptr{Csize_t}(x + 8) + f === :value && return Ptr{Cint}(x + 16) + f === :width && return Ptr{Csize_t}(x + 24) + f === :height && return Ptr{Csize_t}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#835", f::Symbol) + r = Ref{var"##Ctag#835"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#835"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#835"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#836" + pitchedDevPtr::hipPitchedPtr + value::Cint + extent::hipExtent + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#836"}, f::Symbol) + f === :pitchedDevPtr && return Ptr{hipPitchedPtr}(x + 0) + f === :value && return Ptr{Cint}(x + 32) + f === :extent && return Ptr{hipExtent}(x + 40) + f === :stream && return Ptr{hipStream_t}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#836", f::Symbol) + r = Ref{var"##Ctag#836"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#836"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#836"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#837" + pitchedDevPtr::hipPitchedPtr + value::Cint + extent::hipExtent +end +function Base.getproperty(x::Ptr{var"##Ctag#837"}, f::Symbol) + f === :pitchedDevPtr && return Ptr{hipPitchedPtr}(x + 0) + f === :value && return Ptr{Cint}(x + 32) + f === :extent && return Ptr{hipExtent}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#837", f::Symbol) + r = Ref{var"##Ctag#837"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#837"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#837"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#838" + dst::Ptr{Cvoid} + src::Ptr{Cvoid} + sizeBytes::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#838"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :kind && return Ptr{hipMemcpyKind}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#838", f::Symbol) + r = Ref{var"##Ctag#838"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#838"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#838"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#839" + p::Ptr{hipMemcpy3DParms} + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#839"}, f::Symbol) + f === :p && return Ptr{Ptr{hipMemcpy3DParms}}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#839", f::Symbol) + r = Ref{var"##Ctag#839"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#839"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#839"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#840" + dst::Ptr{Cvoid} + dpitch::Csize_t + src::Ptr{Cvoid} + spitch::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#840"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dpitch && return Ptr{Csize_t}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :spitch && return Ptr{Csize_t}(x + 24) + f === :width && return Ptr{Csize_t}(x + 32) + f === :height && return Ptr{Csize_t}(x + 40) + f === :kind && return Ptr{hipMemcpyKind}(x + 48) + f === :stream && return Ptr{hipStream_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#840", f::Symbol) + r = Ref{var"##Ctag#840"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#840"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#840"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#841" + dst::Ptr{Cvoid} + symbol::Ptr{Cvoid} + sizeBytes::Csize_t + offset::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#841"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :offset && return Ptr{Csize_t}(x + 24) + f === :kind && return Ptr{hipMemcpyKind}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#841", f::Symbol) + r = Ref{var"##Ctag#841"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#841"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#841"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#842" + symbol::Ptr{Cvoid} + src::Ptr{Cvoid} + sizeBytes::Csize_t + offset::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#842"}, f::Symbol) + f === :symbol && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :sizeBytes && return Ptr{Csize_t}(x + 16) + f === :offset && return Ptr{Csize_t}(x + 24) + f === :kind && return Ptr{hipMemcpyKind}(x + 32) + f === :stream && return Ptr{hipStream_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#842", f::Symbol) + r = Ref{var"##Ctag#842"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#842"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#842"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#843" + dst::Ptr{Cvoid} + src::hipArray_const_t + wOffsetSrc::Csize_t + hOffset::Csize_t + count::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#843"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{hipArray_const_t}(x + 8) + f === :wOffsetSrc && return Ptr{Csize_t}(x + 16) + f === :hOffset && return Ptr{Csize_t}(x + 24) + f === :count && return Ptr{Csize_t}(x + 32) + f === :kind && return Ptr{hipMemcpyKind}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#843", f::Symbol) + r = Ref{var"##Ctag#843"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#843"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#843"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#844" + dst::hipArray_t + wOffset::Csize_t + hOffset::Csize_t + src::Ptr{Cvoid} + spitch::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#844"}, f::Symbol) + f === :dst && return Ptr{hipArray_t}(x + 0) + f === :wOffset && return Ptr{Csize_t}(x + 8) + f === :hOffset && return Ptr{Csize_t}(x + 16) + f === :src && return Ptr{Ptr{Cvoid}}(x + 24) + f === :spitch && return Ptr{Csize_t}(x + 32) + f === :width && return Ptr{Csize_t}(x + 40) + f === :height && return Ptr{Csize_t}(x + 48) + f === :kind && return Ptr{hipMemcpyKind}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#844", f::Symbol) + r = Ref{var"##Ctag#844"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#844"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#844"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#845" + dst::Ptr{Cvoid} + dpitch::Csize_t + src::hipArray_const_t + wOffsetSrc::Csize_t + hOffsetSrc::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#845"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dpitch && return Ptr{Csize_t}(x + 8) + f === :src && return Ptr{hipArray_const_t}(x + 16) + f === :wOffsetSrc && return Ptr{Csize_t}(x + 24) + f === :hOffsetSrc && return Ptr{Csize_t}(x + 32) + f === :width && return Ptr{Csize_t}(x + 40) + f === :height && return Ptr{Csize_t}(x + 48) + f === :kind && return Ptr{hipMemcpyKind}(x + 56) + f === :stream && return Ptr{hipStream_t}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#845", f::Symbol) + r = Ref{var"##Ctag#845"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#845"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#845"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#846" + dst::hipArray_t + wOffset::Csize_t + hOffset::Csize_t + src::Ptr{Cvoid} + spitch::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#846"}, f::Symbol) + f === :dst && return Ptr{hipArray_t}(x + 0) + f === :wOffset && return Ptr{Csize_t}(x + 8) + f === :hOffset && return Ptr{Csize_t}(x + 16) + f === :src && return Ptr{Ptr{Cvoid}}(x + 24) + f === :spitch && return Ptr{Csize_t}(x + 32) + f === :width && return Ptr{Csize_t}(x + 40) + f === :height && return Ptr{Csize_t}(x + 48) + f === :kind && return Ptr{hipMemcpyKind}(x + 56) + f === :stream && return Ptr{hipStream_t}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#846", f::Symbol) + r = Ref{var"##Ctag#846"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#846"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#846"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#847" + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#847"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#847", f::Symbol) + r = Ref{var"##Ctag#847"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#847"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#847"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#848" + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#848"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#848", f::Symbol) + r = Ref{var"##Ctag#848"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#848"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#848"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#849" + stream::hipStream_t + priority::Ptr{Cint} +end +function Base.getproperty(x::Ptr{var"##Ctag#849"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :priority && return Ptr{Ptr{Cint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#849", f::Symbol) + r = Ref{var"##Ctag#849"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#849"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#849"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#850" + stream::hipStream_t + event::hipEvent_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#850"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :event && return Ptr{hipEvent_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#850", f::Symbol) + r = Ref{var"##Ctag#850"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#850"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#850"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#851" + stream::hipStream_t + flags::Ptr{Cuint} +end +function Base.getproperty(x::Ptr{var"##Ctag#851"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :flags && return Ptr{Ptr{Cuint}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#851", f::Symbol) + r = Ref{var"##Ctag#851"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#851"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#851"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#852" + stream::hipStream_t + callback::hipStreamCallback_t + userData::Ptr{Cvoid} + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#852"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :callback && return Ptr{hipStreamCallback_t}(x + 8) + f === :userData && return Ptr{Ptr{Cvoid}}(x + 16) + f === :flags && return Ptr{Cuint}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#852", f::Symbol) + r = Ref{var"##Ctag#852"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#852"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#852"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#853" + event::hipEvent_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#853"}, f::Symbol) + f === :event && return Ptr{hipEvent_t}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#853", f::Symbol) + r = Ref{var"##Ctag#853"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#853"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#853"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#854" + func::Ptr{Cvoid} + gridDim::rocprofiler_dim3_t + blockDim::rocprofiler_dim3_t + kernelParams::Ptr{Ptr{Cvoid}} + sharedMemBytes::UInt32 + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#854"}, f::Symbol) + f === :func && return Ptr{Ptr{Cvoid}}(x + 0) + f === :gridDim && return Ptr{rocprofiler_dim3_t}(x + 8) + f === :blockDim && return Ptr{rocprofiler_dim3_t}(x + 20) + f === :kernelParams && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + f === :sharedMemBytes && return Ptr{UInt32}(x + 40) + f === :stream && return Ptr{hipStream_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#854", f::Symbol) + r = Ref{var"##Ctag#854"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#854"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#854"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#855" + function_address::Ptr{Cvoid} + numBlocks::rocprofiler_dim3_t + dimBlocks::rocprofiler_dim3_t + args::Ptr{Ptr{Cvoid}} + sharedMemBytes::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#855"}, f::Symbol) + f === :function_address && return Ptr{Ptr{Cvoid}}(x + 0) + f === :numBlocks && return Ptr{rocprofiler_dim3_t}(x + 8) + f === :dimBlocks && return Ptr{rocprofiler_dim3_t}(x + 20) + f === :args && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + f === :sharedMemBytes && return Ptr{Csize_t}(x + 40) + f === :stream && return Ptr{hipStream_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#855", f::Symbol) + r = Ref{var"##Ctag#855"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#855"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#855"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#856" + graphExec::hipGraphExec_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#856"}, f::Symbol) + f === :graphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#856", f::Symbol) + r = Ref{var"##Ctag#856"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#856"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#856"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#857" + stream::hipStream_t + mode::hipStreamCaptureMode +end +function Base.getproperty(x::Ptr{var"##Ctag#857"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :mode && return Ptr{hipStreamCaptureMode}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#857", f::Symbol) + r = Ref{var"##Ctag#857"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#857"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#857"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#858" + stream::hipStream_t + pGraph::Ptr{hipGraph_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#858"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :pGraph && return Ptr{Ptr{hipGraph_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#858", f::Symbol) + r = Ref{var"##Ctag#858"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#858"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#858"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#859" + stream::hipStream_t + pCaptureStatus::Ptr{hipStreamCaptureStatus} +end +function Base.getproperty(x::Ptr{var"##Ctag#859"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :pCaptureStatus && return Ptr{Ptr{hipStreamCaptureStatus}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#859", f::Symbol) + r = Ref{var"##Ctag#859"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#859"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#859"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#860" + stream::hipStream_t + pCaptureStatus::Ptr{hipStreamCaptureStatus} + pId::Ptr{Culonglong} +end +function Base.getproperty(x::Ptr{var"##Ctag#860"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :pCaptureStatus && return Ptr{Ptr{hipStreamCaptureStatus}}(x + 8) + f === :pId && return Ptr{Ptr{Culonglong}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#860", f::Symbol) + r = Ref{var"##Ctag#860"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#860"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#860"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#861" + stream::hipStream_t + captureStatus_out::Ptr{hipStreamCaptureStatus} + id_out::Ptr{Culonglong} + graph_out::Ptr{hipGraph_t} + dependencies_out::Ptr{Ptr{hipGraphNode_t}} + numDependencies_out::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#861"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :captureStatus_out && return Ptr{Ptr{hipStreamCaptureStatus}}(x + 8) + f === :id_out && return Ptr{Ptr{Culonglong}}(x + 16) + f === :graph_out && return Ptr{Ptr{hipGraph_t}}(x + 24) + f === :dependencies_out && return Ptr{Ptr{Ptr{hipGraphNode_t}}}(x + 32) + f === :numDependencies_out && return Ptr{Ptr{Csize_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#861", f::Symbol) + r = Ref{var"##Ctag#861"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#861"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#861"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#862" + stream::hipStream_t + fn::hipHostFn_t + userData::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#862"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :fn && return Ptr{hipHostFn_t}(x + 8) + f === :userData && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#862", f::Symbol) + r = Ref{var"##Ctag#862"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#862"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#862"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#863" + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#863"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#863", f::Symbol) + r = Ref{var"##Ctag#863"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#863"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#863"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#864" + phGraphNode::Ptr{hipGraphNode_t} + hGraph::hipGraph_t + dependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + memsetParams::Ptr{HIP_MEMSET_NODE_PARAMS} + ctx::hipCtx_t +end +function Base.getproperty(x::Ptr{var"##Ctag#864"}, f::Symbol) + f === :phGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :hGraph && return Ptr{hipGraph_t}(x + 8) + f === :dependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :memsetParams && return Ptr{Ptr{HIP_MEMSET_NODE_PARAMS}}(x + 32) + f === :ctx && return Ptr{hipCtx_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#864", f::Symbol) + r = Ref{var"##Ctag#864"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#864"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#864"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#865" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + nodeParams::Ptr{hipExternalSemaphoreWaitNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#865"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :nodeParams && return Ptr{Ptr{hipExternalSemaphoreWaitNodeParams}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#865", f::Symbol) + r = Ref{var"##Ctag#865"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#865"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#865"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#866" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + nodeParams::Ptr{hipExternalSemaphoreSignalNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#866"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :nodeParams && return Ptr{Ptr{hipExternalSemaphoreSignalNodeParams}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#866", f::Symbol) + r = Ref{var"##Ctag#866"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#866"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#866"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#867" + hNode::hipGraphNode_t + nodeParams::Ptr{hipExternalSemaphoreSignalNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#867"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :nodeParams && return Ptr{Ptr{hipExternalSemaphoreSignalNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#867", f::Symbol) + r = Ref{var"##Ctag#867"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#867"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#867"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#868" + hNode::hipGraphNode_t + nodeParams::Ptr{hipExternalSemaphoreWaitNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#868"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :nodeParams && return Ptr{Ptr{hipExternalSemaphoreWaitNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#868", f::Symbol) + r = Ref{var"##Ctag#868"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#868"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#868"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#869" + hNode::hipGraphNode_t + params_out::Ptr{hipExternalSemaphoreSignalNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#869"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :params_out && return Ptr{Ptr{hipExternalSemaphoreSignalNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#869", f::Symbol) + r = Ref{var"##Ctag#869"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#869"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#869"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#870" + hNode::hipGraphNode_t + params_out::Ptr{hipExternalSemaphoreWaitNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#870"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :params_out && return Ptr{Ptr{hipExternalSemaphoreWaitNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#870", f::Symbol) + r = Ref{var"##Ctag#870"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#870"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#870"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#871" + hGraphExec::hipGraphExec_t + hNode::hipGraphNode_t + nodeParams::Ptr{hipExternalSemaphoreSignalNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#871"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hNode && return Ptr{hipGraphNode_t}(x + 8) + f === :nodeParams && return Ptr{Ptr{hipExternalSemaphoreSignalNodeParams}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#871", f::Symbol) + r = Ref{var"##Ctag#871"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#871"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#871"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#872" + hGraphExec::hipGraphExec_t + hNode::hipGraphNode_t + nodeParams::Ptr{hipExternalSemaphoreWaitNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#872"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hNode && return Ptr{hipGraphNode_t}(x + 8) + f === :nodeParams && return Ptr{Ptr{hipExternalSemaphoreWaitNodeParams}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#872", f::Symbol) + r = Ref{var"##Ctag#872"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#872"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#872"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#873" + pGraphNode::Ptr{hipGraphNode_t} + graph::hipGraph_t + pDependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + nodeParams::Ptr{hipGraphNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#873"}, f::Symbol) + f === :pGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :pDependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :nodeParams && return Ptr{Ptr{hipGraphNodeParams}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#873", f::Symbol) + r = Ref{var"##Ctag#873"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#873"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#873"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#874" + pGraphExec::Ptr{hipGraphExec_t} + graph::hipGraph_t + instantiateParams::Ptr{hipGraphInstantiateParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#874"}, f::Symbol) + f === :pGraphExec && return Ptr{Ptr{hipGraphExec_t}}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :instantiateParams && return Ptr{Ptr{hipGraphInstantiateParams}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#874", f::Symbol) + r = Ref{var"##Ctag#874"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#874"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#874"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#875" + no_args::rocprofiler_hip_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#875"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hip_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#875", f::Symbol) + r = Ref{var"##Ctag#875"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#875"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#875"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#876" + pBorderColor::Ptr{Cfloat} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#876"}, f::Symbol) + f === :pBorderColor && return Ptr{Ptr{Cfloat}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#876", f::Symbol) + r = Ref{var"##Ctag#876"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#876"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#876"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#877" + pArray::Ptr{hipArray_t} + texRef::Ptr{textureReference} +end +function Base.getproperty(x::Ptr{var"##Ctag#877"}, f::Symbol) + f === :pArray && return Ptr{Ptr{hipArray_t}}(x + 0) + f === :texRef && return Ptr{Ptr{textureReference}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#877", f::Symbol) + r = Ref{var"##Ctag#877"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#877"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#877"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#878" + symbol::Ptr{Cchar} + pfn::Ptr{Ptr{Cvoid}} + hipVersion::Cint + flags::UInt64 + symbolStatus::Ptr{hipDriverProcAddressQueryResult} +end +function Base.getproperty(x::Ptr{var"##Ctag#878"}, f::Symbol) + f === :symbol && return Ptr{Ptr{Cchar}}(x + 0) + f === :pfn && return Ptr{Ptr{Ptr{Cvoid}}}(x + 8) + f === :hipVersion && return Ptr{Cint}(x + 16) + f === :flags && return Ptr{UInt64}(x + 24) + f === :symbolStatus && return Ptr{Ptr{hipDriverProcAddressQueryResult}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#878", f::Symbol) + r = Ref{var"##Ctag#878"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#878"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#878"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#879" + stream::hipStream_t + graph::hipGraph_t + dependencies::Ptr{hipGraphNode_t} + dependencyData::Ptr{hipGraphEdgeData} + numDependencies::Csize_t + mode::hipStreamCaptureMode +end +function Base.getproperty(x::Ptr{var"##Ctag#879"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :graph && return Ptr{hipGraph_t}(x + 8) + f === :dependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :dependencyData && return Ptr{Ptr{hipGraphEdgeData}}(x + 24) + f === :numDependencies && return Ptr{Csize_t}(x + 32) + f === :mode && return Ptr{hipStreamCaptureMode}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#879", f::Symbol) + r = Ref{var"##Ctag#879"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#879"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#879"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#880" + functionPtr::Ptr{hipFunction_t} + symbolPtr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#880"}, f::Symbol) + f === :functionPtr && return Ptr{Ptr{hipFunction_t}}(x + 0) + f === :symbolPtr && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#880", f::Symbol) + r = Ref{var"##Ctag#880"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#880"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#880"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#881" + device_arr::Ptr{Cint} + len::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#881"}, f::Symbol) + f === :device_arr && return Ptr{Ptr{Cint}}(x + 0) + f === :len && return Ptr{Cint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#881", f::Symbol) + r = Ref{var"##Ctag#881"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#881"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#881"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#882" + dstDevice::hipDeviceptr_t + srcArray::hipArray_t + srcOffset::Csize_t + ByteCount::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#882"}, f::Symbol) + f === :dstDevice && return Ptr{hipDeviceptr_t}(x + 0) + f === :srcArray && return Ptr{hipArray_t}(x + 8) + f === :srcOffset && return Ptr{Csize_t}(x + 16) + f === :ByteCount && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#882", f::Symbol) + r = Ref{var"##Ctag#882"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#882"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#882"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#883" + dstArray::hipArray_t + dstOffset::Csize_t + srcDevice::hipDeviceptr_t + ByteCount::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#883"}, f::Symbol) + f === :dstArray && return Ptr{hipArray_t}(x + 0) + f === :dstOffset && return Ptr{Csize_t}(x + 8) + f === :srcDevice && return Ptr{hipDeviceptr_t}(x + 16) + f === :ByteCount && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#883", f::Symbol) + r = Ref{var"##Ctag#883"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#883"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#883"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#884" + dstArray::hipArray_t + dstOffset::Csize_t + srcArray::hipArray_t + srcOffset::Csize_t + ByteCount::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#884"}, f::Symbol) + f === :dstArray && return Ptr{hipArray_t}(x + 0) + f === :dstOffset && return Ptr{Csize_t}(x + 8) + f === :srcArray && return Ptr{hipArray_t}(x + 16) + f === :srcOffset && return Ptr{Csize_t}(x + 24) + f === :ByteCount && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#884", f::Symbol) + r = Ref{var"##Ctag#884"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#884"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#884"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#885" + dstHost::Ptr{Cvoid} + srcArray::hipArray_t + srcOffset::Csize_t + ByteCount::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#885"}, f::Symbol) + f === :dstHost && return Ptr{Ptr{Cvoid}}(x + 0) + f === :srcArray && return Ptr{hipArray_t}(x + 8) + f === :srcOffset && return Ptr{Csize_t}(x + 16) + f === :ByteCount && return Ptr{Csize_t}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#885", f::Symbol) + r = Ref{var"##Ctag#885"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#885"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#885"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#886" + dstArray::hipArray_t + dstOffset::Csize_t + srcHost::Ptr{Cvoid} + ByteCount::Csize_t + stream::hipStream_t +end +function Base.getproperty(x::Ptr{var"##Ctag#886"}, f::Symbol) + f === :dstArray && return Ptr{hipArray_t}(x + 0) + f === :dstOffset && return Ptr{Csize_t}(x + 8) + f === :srcHost && return Ptr{Ptr{Cvoid}}(x + 16) + f === :ByteCount && return Ptr{Csize_t}(x + 24) + f === :stream && return Ptr{hipStream_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#886", f::Symbol) + r = Ref{var"##Ctag#886"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#886"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#886"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#887" + dst::hipArray_t + wOffsetDst::Csize_t + hOffsetDst::Csize_t + src::hipArray_const_t + wOffsetSrc::Csize_t + hOffsetSrc::Csize_t + width::Csize_t + height::Csize_t + kind::hipMemcpyKind +end +function Base.getproperty(x::Ptr{var"##Ctag#887"}, f::Symbol) + f === :dst && return Ptr{hipArray_t}(x + 0) + f === :wOffsetDst && return Ptr{Csize_t}(x + 8) + f === :hOffsetDst && return Ptr{Csize_t}(x + 16) + f === :src && return Ptr{hipArray_const_t}(x + 24) + f === :wOffsetSrc && return Ptr{Csize_t}(x + 32) + f === :hOffsetSrc && return Ptr{Csize_t}(x + 40) + f === :width && return Ptr{Csize_t}(x + 48) + f === :height && return Ptr{Csize_t}(x + 56) + f === :kind && return Ptr{hipMemcpyKind}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#887", f::Symbol) + r = Ref{var"##Ctag#887"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#887"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#887"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#888" + phGraphNode::Ptr{hipGraphNode_t} + hGraph::hipGraph_t + dependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + dptr::hipDeviceptr_t +end +function Base.getproperty(x::Ptr{var"##Ctag#888"}, f::Symbol) + f === :phGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :hGraph && return Ptr{hipGraph_t}(x + 8) + f === :dependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :dptr && return Ptr{hipDeviceptr_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#888", f::Symbol) + r = Ref{var"##Ctag#888"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#888"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#888"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#889" + hGraphExec::hipGraphExec_t + hNode::hipGraphNode_t + copyParams::Ptr{HIP_MEMCPY3D} + ctx::hipCtx_t +end +function Base.getproperty(x::Ptr{var"##Ctag#889"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hNode && return Ptr{hipGraphNode_t}(x + 8) + f === :copyParams && return Ptr{Ptr{HIP_MEMCPY3D}}(x + 16) + f === :ctx && return Ptr{hipCtx_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#889", f::Symbol) + r = Ref{var"##Ctag#889"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#889"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#889"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#890" + hGraphExec::hipGraphExec_t + hNode::hipGraphNode_t + memsetParams::Ptr{HIP_MEMSET_NODE_PARAMS} + ctx::hipCtx_t +end +function Base.getproperty(x::Ptr{var"##Ctag#890"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hNode && return Ptr{hipGraphNode_t}(x + 8) + f === :memsetParams && return Ptr{Ptr{HIP_MEMSET_NODE_PARAMS}}(x + 16) + f === :ctx && return Ptr{hipCtx_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#890", f::Symbol) + r = Ref{var"##Ctag#890"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#890"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#890"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#891" + graphExec::hipGraphExec_t + flags::Ptr{Culonglong} +end +function Base.getproperty(x::Ptr{var"##Ctag#891"}, f::Symbol) + f === :graphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :flags && return Ptr{Ptr{Culonglong}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#891", f::Symbol) + r = Ref{var"##Ctag#891"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#891"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#891"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#892" + node::hipGraphNode_t + nodeParams::Ptr{hipGraphNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#892"}, f::Symbol) + f === :node && return Ptr{hipGraphNode_t}(x + 0) + f === :nodeParams && return Ptr{Ptr{hipGraphNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#892", f::Symbol) + r = Ref{var"##Ctag#892"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#892"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#892"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#893" + graphExec::hipGraphExec_t + node::hipGraphNode_t + nodeParams::Ptr{hipGraphNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#893"}, f::Symbol) + f === :graphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :node && return Ptr{hipGraphNode_t}(x + 8) + f === :nodeParams && return Ptr{Ptr{hipGraphNodeParams}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#893", f::Symbol) + r = Ref{var"##Ctag#893"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#893"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#893"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#894" + mipmap::Ptr{hipMipmappedArray_t} + extMem::hipExternalMemory_t + mipmapDesc::Ptr{hipExternalMemoryMipmappedArrayDesc} +end +function Base.getproperty(x::Ptr{var"##Ctag#894"}, f::Symbol) + f === :mipmap && return Ptr{Ptr{hipMipmappedArray_t}}(x + 0) + f === :extMem && return Ptr{hipExternalMemory_t}(x + 8) + f === :mipmapDesc && return Ptr{Ptr{hipExternalMemoryMipmappedArrayDesc}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#894", f::Symbol) + r = Ref{var"##Ctag#894"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#894"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#894"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#895" + hNode::hipGraphNode_t + nodeParams::Ptr{HIP_MEMCPY3D} +end +function Base.getproperty(x::Ptr{var"##Ctag#895"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :nodeParams && return Ptr{Ptr{HIP_MEMCPY3D}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#895", f::Symbol) + r = Ref{var"##Ctag#895"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#895"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#895"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#896" + hNode::hipGraphNode_t + nodeParams::Ptr{HIP_MEMCPY3D} +end +function Base.getproperty(x::Ptr{var"##Ctag#896"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :nodeParams && return Ptr{Ptr{HIP_MEMCPY3D}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#896", f::Symbol) + r = Ref{var"##Ctag#896"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#896"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#896"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#897" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#897"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#897", f::Symbol) + r = Ref{var"##Ctag#897"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#897"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#897"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#898" + maxWidthInElements::Ptr{Csize_t} + fmtDesc::Ptr{hipChannelFormatDesc} + device::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#898"}, f::Symbol) + f === :maxWidthInElements && return Ptr{Ptr{Csize_t}}(x + 0) + f === :fmtDesc && return Ptr{Ptr{hipChannelFormatDesc}}(x + 8) + f === :device && return Ptr{Cint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#898", f::Symbol) + r = Ref{var"##Ctag#898"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#898"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#898"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#899" + stream::hipStream_t + count::Cuint + paramArray::Ptr{hipStreamBatchMemOpParams} + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#899"}, f::Symbol) + f === :stream && return Ptr{hipStream_t}(x + 0) + f === :count && return Ptr{Cuint}(x + 8) + f === :paramArray && return Ptr{Ptr{hipStreamBatchMemOpParams}}(x + 16) + f === :flags && return Ptr{Cuint}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#899", f::Symbol) + r = Ref{var"##Ctag#899"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#899"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#899"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#900" + phGraphNode::Ptr{hipGraphNode_t} + hGraph::hipGraph_t + dependencies::Ptr{hipGraphNode_t} + numDependencies::Csize_t + nodeParams::Ptr{hipBatchMemOpNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#900"}, f::Symbol) + f === :phGraphNode && return Ptr{Ptr{hipGraphNode_t}}(x + 0) + f === :hGraph && return Ptr{hipGraph_t}(x + 8) + f === :dependencies && return Ptr{Ptr{hipGraphNode_t}}(x + 16) + f === :numDependencies && return Ptr{Csize_t}(x + 24) + f === :nodeParams && return Ptr{Ptr{hipBatchMemOpNodeParams}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#900", f::Symbol) + r = Ref{var"##Ctag#900"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#900"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#900"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#901" + hNode::hipGraphNode_t + nodeParams_out::Ptr{hipBatchMemOpNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#901"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :nodeParams_out && return Ptr{Ptr{hipBatchMemOpNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#901", f::Symbol) + r = Ref{var"##Ctag#901"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#901"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#901"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#902" + hNode::hipGraphNode_t + nodeParams::Ptr{hipBatchMemOpNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#902"}, f::Symbol) + f === :hNode && return Ptr{hipGraphNode_t}(x + 0) + f === :nodeParams && return Ptr{Ptr{hipBatchMemOpNodeParams}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#902", f::Symbol) + r = Ref{var"##Ctag#902"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#902"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#902"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#903" + hGraphExec::hipGraphExec_t + hNode::hipGraphNode_t + nodeParams::Ptr{hipBatchMemOpNodeParams} +end +function Base.getproperty(x::Ptr{var"##Ctag#903"}, f::Symbol) + f === :hGraphExec && return Ptr{hipGraphExec_t}(x + 0) + f === :hNode && return Ptr{hipGraphNode_t}(x + 8) + f === :nodeParams && return Ptr{Ptr{hipBatchMemOpNodeParams}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#903", f::Symbol) + r = Ref{var"##Ctag#903"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#903"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#903"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#904" + event::hipEvent_t + stream::hipStream_t + flags::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#904"}, f::Symbol) + f === :event && return Ptr{hipEvent_t}(x + 0) + f === :stream && return Ptr{hipStream_t}(x + 8) + f === :flags && return Ptr{Cuint}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#904", f::Symbol) + r = Ref{var"##Ctag#904"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#904"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#904"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#905" + state::hipLinkState_t + type::hipJitInputType + data::Ptr{Cvoid} + size::Csize_t + name::Ptr{Cchar} + numOptions::Cuint + options::Ptr{hipJitOption} + optionValues::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#905"}, f::Symbol) + f === :state && return Ptr{hipLinkState_t}(x + 0) + f === :type && return Ptr{hipJitInputType}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + f === :size && return Ptr{Csize_t}(x + 24) + f === :name && return Ptr{Ptr{Cchar}}(x + 32) + f === :numOptions && return Ptr{Cuint}(x + 40) + f === :options && return Ptr{Ptr{hipJitOption}}(x + 48) + f === :optionValues && return Ptr{Ptr{Ptr{Cvoid}}}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#905", f::Symbol) + r = Ref{var"##Ctag#905"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#905"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#905"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#906" + state::hipLinkState_t + type::hipJitInputType + path::Ptr{Cchar} + numOptions::Cuint + options::Ptr{hipJitOption} + optionValues::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#906"}, f::Symbol) + f === :state && return Ptr{hipLinkState_t}(x + 0) + f === :type && return Ptr{hipJitInputType}(x + 8) + f === :path && return Ptr{Ptr{Cchar}}(x + 16) + f === :numOptions && return Ptr{Cuint}(x + 24) + f === :options && return Ptr{Ptr{hipJitOption}}(x + 32) + f === :optionValues && return Ptr{Ptr{Ptr{Cvoid}}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#906", f::Symbol) + r = Ref{var"##Ctag#906"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#906"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#906"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#907" + state::hipLinkState_t + hipBinOut::Ptr{Ptr{Cvoid}} + sizeOut::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#907"}, f::Symbol) + f === :state && return Ptr{hipLinkState_t}(x + 0) + f === :hipBinOut && return Ptr{Ptr{Ptr{Cvoid}}}(x + 8) + f === :sizeOut && return Ptr{Ptr{Csize_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#907", f::Symbol) + r = Ref{var"##Ctag#907"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#907"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#907"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#908" + numOptions::Cuint + options::Ptr{hipJitOption} + optionValues::Ptr{Ptr{Cvoid}} + stateOut::Ptr{hipLinkState_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#908"}, f::Symbol) + f === :numOptions && return Ptr{Cuint}(x + 0) + f === :options && return Ptr{Ptr{hipJitOption}}(x + 8) + f === :optionValues && return Ptr{Ptr{Ptr{Cvoid}}}(x + 16) + f === :stateOut && return Ptr{Ptr{hipLinkState_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#908", f::Symbol) + r = Ref{var"##Ctag#908"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#908"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#908"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#909" + state::hipLinkState_t +end +function Base.getproperty(x::Ptr{var"##Ctag#909"}, f::Symbol) + f === :state && return Ptr{hipLinkState_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#909", f::Symbol) + r = Ref{var"##Ctag#909"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#909"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#909"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#910" + config::Ptr{hipLaunchConfig_t} + fPtr::Ptr{Cvoid} + args::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#910"}, f::Symbol) + f === :config && return Ptr{Ptr{hipLaunchConfig_t}}(x + 0) + f === :fPtr && return Ptr{Ptr{Cvoid}}(x + 8) + f === :args && return Ptr{Ptr{Ptr{Cvoid}}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#910", f::Symbol) + r = Ref{var"##Ctag#910"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#910"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#910"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#911" + config::Ptr{HIP_LAUNCH_CONFIG} + f::hipFunction_t + params::Ptr{Ptr{Cvoid}} + extra::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#911"}, f::Symbol) + f === :config && return Ptr{Ptr{HIP_LAUNCH_CONFIG}}(x + 0) + f === :f && return Ptr{hipFunction_t}(x + 8) + f === :params && return Ptr{Ptr{Ptr{Cvoid}}}(x + 16) + f === :extra && return Ptr{Ptr{Ptr{Cvoid}}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#911", f::Symbol) + r = Ref{var"##Ctag#911"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#911"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#911"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#912" + HotPluggable::Cuint + HSAMMUPresent::Cuint + SharedWithGraphics::Cuint + QueueSizePowerOfTwo::Cuint + QueueSize32bit::Cuint + QueueIdleEvent::Cuint + VALimit::Cuint + WatchPointsSupported::Cuint + WatchPointsTotalBits::Cuint + DoorbellType::Cuint + AQLQueueDoubleMap::Cuint + DebugTrapSupported::Cuint + WaveLaunchTrapOverrideSupported::Cuint + WaveLaunchModeSupported::Cuint + PreciseMemoryOperationsSupported::Cuint + DEPRECATED_SRAM_EDCSupport::Cuint + Mem_EDCSupport::Cuint + RASEventNotify::Cuint + ASICRevision::Cuint + SRAM_EDCSupport::Cuint + SVMAPISupported::Cuint + CoherentHostAccess::Cuint + DebugSupportedFirmware::Cuint + PreciseALUOperationsSupported::Cuint + PerQueueResetSupported::Cuint +end +function Base.getproperty(x::Ptr{var"##Ctag#912"}, f::Symbol) + f === :HotPluggable && return (Ptr{Cuint}(x + 0), 0, 1) + f === :HSAMMUPresent && return (Ptr{Cuint}(x + 0), 1, 1) + f === :SharedWithGraphics && return (Ptr{Cuint}(x + 0), 2, 1) + f === :QueueSizePowerOfTwo && return (Ptr{Cuint}(x + 0), 3, 1) + f === :QueueSize32bit && return (Ptr{Cuint}(x + 0), 4, 1) + f === :QueueIdleEvent && return (Ptr{Cuint}(x + 0), 5, 1) + f === :VALimit && return (Ptr{Cuint}(x + 0), 6, 1) + f === :WatchPointsSupported && return (Ptr{Cuint}(x + 0), 7, 1) + f === :WatchPointsTotalBits && return (Ptr{Cuint}(x + 0), 8, 4) + f === :DoorbellType && return (Ptr{Cuint}(x + 0), 12, 2) + f === :AQLQueueDoubleMap && return (Ptr{Cuint}(x + 0), 14, 1) + f === :DebugTrapSupported && return (Ptr{Cuint}(x + 0), 15, 1) + f === :WaveLaunchTrapOverrideSupported && return (Ptr{Cuint}(x + 0), 16, 1) + f === :WaveLaunchModeSupported && return (Ptr{Cuint}(x + 0), 17, 1) + f === :PreciseMemoryOperationsSupported && return (Ptr{Cuint}(x + 0), 18, 1) + f === :DEPRECATED_SRAM_EDCSupport && return (Ptr{Cuint}(x + 0), 19, 1) + f === :Mem_EDCSupport && return (Ptr{Cuint}(x + 0), 20, 1) + f === :RASEventNotify && return (Ptr{Cuint}(x + 0), 21, 1) + f === :ASICRevision && return (Ptr{Cuint}(x + 0), 22, 4) + f === :SRAM_EDCSupport && return (Ptr{Cuint}(x + 0), 26, 1) + f === :SVMAPISupported && return (Ptr{Cuint}(x + 0), 27, 1) + f === :CoherentHostAccess && return (Ptr{Cuint}(x + 0), 28, 1) + f === :DebugSupportedFirmware && return (Ptr{Cuint}(x + 0), 29, 1) + f === :PreciseALUOperationsSupported && return (Ptr{Cuint}(x + 0), 30, 1) + f === :PerQueueResetSupported && return (Ptr{Cuint}(x + 0), 31, 1) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#912", f::Symbol) + r = Ref{var"##Ctag#912"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#912"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#912"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#914" + chroma_format_idc::UInt32 + residual_colour_transform_flag::UInt32 + gaps_in_frame_num_value_allowed_flag::UInt32 + frame_mbs_only_flag::UInt32 + mb_adaptive_frame_field_flag::UInt32 + direct_8x8_inference_flag::UInt32 + MinLumaBiPredSize8x8::UInt32 + log2_max_frame_num_minus4::UInt32 + pic_order_cnt_type::UInt32 + log2_max_pic_order_cnt_lsb_minus4::UInt32 + delta_pic_order_always_zero_flag::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#914"}, f::Symbol) + f === :chroma_format_idc && return (Ptr{UInt32}(x + 0), 0, 2) + f === :residual_colour_transform_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :MinLumaBiPredSize8x8 && return (Ptr{UInt32}(x + 0), 7, 1) + f === :log2_max_frame_num_minus4 && return (Ptr{UInt32}(x + 0), 8, 4) + f === :pic_order_cnt_type && return (Ptr{UInt32}(x + 0), 12, 2) + f === :log2_max_pic_order_cnt_lsb_minus4 && return (Ptr{UInt32}(x + 0), 14, 4) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 18, 1) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#914", f::Symbol) + r = Ref{var"##Ctag#914"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#914"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#914"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#916" + entropy_coding_mode_flag::UInt32 + weighted_pred_flag::UInt32 + weighted_bipred_idc::UInt32 + transform_8x8_mode_flag::UInt32 + field_pic_flag::UInt32 + constrained_intra_pred_flag::UInt32 + pic_order_present_flag::UInt32 + deblocking_filter_control_present_flag::UInt32 + redundant_pic_cnt_present_flag::UInt32 + reference_pic_flag::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#916"}, f::Symbol) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :weighted_bipred_idc && return (Ptr{UInt32}(x + 0), 2, 2) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_order_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :reference_pic_flag && return (Ptr{UInt32}(x + 0), 10, 1) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#916", f::Symbol) + r = Ref{var"##Ctag#916"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#916"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#916"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#917" + no_args::rocprofiler_hsa_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#917"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hsa_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#917", f::Symbol) + r = Ref{var"##Ctag#917"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#917"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#917"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#918" + no_args::rocprofiler_hsa_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#918"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_hsa_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#918", f::Symbol) + r = Ref{var"##Ctag#918"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#918"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#918"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#919" + attribute::hsa_system_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#919"}, f::Symbol) + f === :attribute && return Ptr{hsa_system_info_t}(x + 0) + f === :value && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#919", f::Symbol) + r = Ref{var"##Ctag#919"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#919"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#919"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#920" + extension::UInt16 + version_major::UInt16 + version_minor::UInt16 + result::Ptr{Bool} +end +function Base.getproperty(x::Ptr{var"##Ctag#920"}, f::Symbol) + f === :extension && return Ptr{UInt16}(x + 0) + f === :version_major && return Ptr{UInt16}(x + 2) + f === :version_minor && return Ptr{UInt16}(x + 4) + f === :result && return Ptr{Ptr{Bool}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#920", f::Symbol) + r = Ref{var"##Ctag#920"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#920"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#920"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#921" + extension::UInt16 + version_major::UInt16 + version_minor::UInt16 + table::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#921"}, f::Symbol) + f === :extension && return Ptr{UInt16}(x + 0) + f === :version_major && return Ptr{UInt16}(x + 2) + f === :version_minor && return Ptr{UInt16}(x + 4) + f === :table && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#921", f::Symbol) + r = Ref{var"##Ctag#921"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#921"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#921"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#922" + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#922"}, f::Symbol) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 0) + f === :data && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#922", f::Symbol) + r = Ref{var"##Ctag#922"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#922"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#922"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#923" + agent::hsa_agent_t + attribute::hsa_agent_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#923"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :attribute && return Ptr{hsa_agent_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#923", f::Symbol) + r = Ref{var"##Ctag#923"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#923"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#923"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#924" + agent::hsa_agent_t + size::UInt32 + type::hsa_queue_type32_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} + private_segment_size::UInt32 + group_segment_size::UInt32 + queue::Ptr{Ptr{hsa_queue_t}} +end +function Base.getproperty(x::Ptr{var"##Ctag#924"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :size && return Ptr{UInt32}(x + 8) + f === :type && return Ptr{hsa_queue_type32_t}(x + 12) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 16) + f === :data && return Ptr{Ptr{Cvoid}}(x + 24) + f === :private_segment_size && return Ptr{UInt32}(x + 32) + f === :group_segment_size && return Ptr{UInt32}(x + 36) + f === :queue && return Ptr{Ptr{Ptr{hsa_queue_t}}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#924", f::Symbol) + r = Ref{var"##Ctag#924"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#924"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#924"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#925" + region::hsa_region_t + size::UInt32 + type::hsa_queue_type32_t + features::UInt32 + doorbell_signal::hsa_signal_t + queue::Ptr{Ptr{hsa_queue_t}} +end +function Base.getproperty(x::Ptr{var"##Ctag#925"}, f::Symbol) + f === :region && return Ptr{hsa_region_t}(x + 0) + f === :size && return Ptr{UInt32}(x + 8) + f === :type && return Ptr{hsa_queue_type32_t}(x + 12) + f === :features && return Ptr{UInt32}(x + 16) + f === :doorbell_signal && return Ptr{hsa_signal_t}(x + 24) + f === :queue && return Ptr{Ptr{Ptr{hsa_queue_t}}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#925", f::Symbol) + r = Ref{var"##Ctag#925"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#925"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#925"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#926" + queue::Ptr{hsa_queue_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#926"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#926", f::Symbol) + r = Ref{var"##Ctag#926"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#926"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#926"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#927" + queue::Ptr{hsa_queue_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#927"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#927", f::Symbol) + r = Ref{var"##Ctag#927"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#927"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#927"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#928" + queue::Ptr{hsa_queue_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#928"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#928", f::Symbol) + r = Ref{var"##Ctag#928"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#928"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#928"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#929" + queue::Ptr{hsa_queue_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#929"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#929", f::Symbol) + r = Ref{var"##Ctag#929"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#929"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#929"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#930" + queue::Ptr{hsa_queue_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#930"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#930", f::Symbol) + r = Ref{var"##Ctag#930"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#930"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#930"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#931" + queue::Ptr{hsa_queue_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#931"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#931", f::Symbol) + r = Ref{var"##Ctag#931"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#931"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#931"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#932" + queue::Ptr{hsa_queue_t} + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#932"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :value && return Ptr{UInt64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#932", f::Symbol) + r = Ref{var"##Ctag#932"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#932"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#932"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#933" + queue::Ptr{hsa_queue_t} + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#933"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :value && return Ptr{UInt64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#933", f::Symbol) + r = Ref{var"##Ctag#933"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#933"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#933"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#934" + queue::Ptr{hsa_queue_t} + expected::UInt64 + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#934"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :expected && return Ptr{UInt64}(x + 8) + f === :value && return Ptr{UInt64}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#934", f::Symbol) + r = Ref{var"##Ctag#934"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#934"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#934"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#935" + queue::Ptr{hsa_queue_t} + expected::UInt64 + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#935"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :expected && return Ptr{UInt64}(x + 8) + f === :value && return Ptr{UInt64}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#935", f::Symbol) + r = Ref{var"##Ctag#935"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#935"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#935"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#936" + queue::Ptr{hsa_queue_t} + expected::UInt64 + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#936"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :expected && return Ptr{UInt64}(x + 8) + f === :value && return Ptr{UInt64}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#936", f::Symbol) + r = Ref{var"##Ctag#936"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#936"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#936"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#937" + queue::Ptr{hsa_queue_t} + expected::UInt64 + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#937"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :expected && return Ptr{UInt64}(x + 8) + f === :value && return Ptr{UInt64}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#937", f::Symbol) + r = Ref{var"##Ctag#937"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#937"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#937"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#938" + queue::Ptr{hsa_queue_t} + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#938"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :value && return Ptr{UInt64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#938", f::Symbol) + r = Ref{var"##Ctag#938"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#938"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#938"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#939" + queue::Ptr{hsa_queue_t} + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#939"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :value && return Ptr{UInt64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#939", f::Symbol) + r = Ref{var"##Ctag#939"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#939"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#939"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#940" + queue::Ptr{hsa_queue_t} + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#940"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :value && return Ptr{UInt64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#940", f::Symbol) + r = Ref{var"##Ctag#940"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#940"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#940"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#941" + queue::Ptr{hsa_queue_t} + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#941"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :value && return Ptr{UInt64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#941", f::Symbol) + r = Ref{var"##Ctag#941"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#941"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#941"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#942" + queue::Ptr{hsa_queue_t} + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#942"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :value && return Ptr{UInt64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#942", f::Symbol) + r = Ref{var"##Ctag#942"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#942"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#942"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#943" + queue::Ptr{hsa_queue_t} + value::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#943"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :value && return Ptr{UInt64}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#943", f::Symbol) + r = Ref{var"##Ctag#943"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#943"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#943"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#944" + agent::hsa_agent_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#944"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#944", f::Symbol) + r = Ref{var"##Ctag#944"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#944"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#944"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#945" + region::hsa_region_t + attribute::hsa_region_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#945"}, f::Symbol) + f === :region && return Ptr{hsa_region_t}(x + 0) + f === :attribute && return Ptr{hsa_region_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#945", f::Symbol) + r = Ref{var"##Ctag#945"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#945"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#945"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#946" + agent::hsa_agent_t + profile::hsa_profile_t + mask::Ptr{UInt16} +end +function Base.getproperty(x::Ptr{var"##Ctag#946"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :profile && return Ptr{hsa_profile_t}(x + 8) + f === :mask && return Ptr{Ptr{UInt16}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#946", f::Symbol) + r = Ref{var"##Ctag#946"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#946"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#946"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#947" + extension::UInt16 + agent::hsa_agent_t + version_major::UInt16 + version_minor::UInt16 + result::Ptr{Bool} +end +function Base.getproperty(x::Ptr{var"##Ctag#947"}, f::Symbol) + f === :extension && return Ptr{UInt16}(x + 0) + f === :agent && return Ptr{hsa_agent_t}(x + 8) + f === :version_major && return Ptr{UInt16}(x + 16) + f === :version_minor && return Ptr{UInt16}(x + 18) + f === :result && return Ptr{Ptr{Bool}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#947", f::Symbol) + r = Ref{var"##Ctag#947"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#947"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#947"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#948" + ptr::Ptr{Cvoid} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#948"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#948", f::Symbol) + r = Ref{var"##Ctag#948"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#948"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#948"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#949" + ptr::Ptr{Cvoid} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#949"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#949", f::Symbol) + r = Ref{var"##Ctag#949"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#949"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#949"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#950" + region::hsa_region_t + size::Csize_t + ptr::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#950"}, f::Symbol) + f === :region && return Ptr{hsa_region_t}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#950", f::Symbol) + r = Ref{var"##Ctag#950"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#950"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#950"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#951" + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#951"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#951", f::Symbol) + r = Ref{var"##Ctag#951"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#951"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#951"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#952" + dst::Ptr{Cvoid} + src::Ptr{Cvoid} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#952"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :src && return Ptr{Ptr{Cvoid}}(x + 8) + f === :size && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#952", f::Symbol) + r = Ref{var"##Ctag#952"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#952"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#952"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#953" + ptr::Ptr{Cvoid} + agent::hsa_agent_t + access::hsa_access_permission_t +end +function Base.getproperty(x::Ptr{var"##Ctag#953"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :agent && return Ptr{hsa_agent_t}(x + 8) + f === :access && return Ptr{hsa_access_permission_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#953", f::Symbol) + r = Ref{var"##Ctag#953"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#953"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#953"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#954" + initial_value::hsa_signal_value_t + num_consumers::UInt32 + consumers::Ptr{hsa_agent_t} + signal::Ptr{hsa_signal_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#954"}, f::Symbol) + f === :initial_value && return Ptr{hsa_signal_value_t}(x + 0) + f === :num_consumers && return Ptr{UInt32}(x + 8) + f === :consumers && return Ptr{Ptr{hsa_agent_t}}(x + 16) + f === :signal && return Ptr{Ptr{hsa_signal_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#954", f::Symbol) + r = Ref{var"##Ctag#954"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#954"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#954"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#955" + signal::hsa_signal_t +end +function Base.getproperty(x::Ptr{var"##Ctag#955"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#955", f::Symbol) + r = Ref{var"##Ctag#955"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#955"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#955"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#956" + signal::hsa_signal_t +end +function Base.getproperty(x::Ptr{var"##Ctag#956"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#956", f::Symbol) + r = Ref{var"##Ctag#956"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#956"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#956"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#957" + signal::hsa_signal_t +end +function Base.getproperty(x::Ptr{var"##Ctag#957"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#957", f::Symbol) + r = Ref{var"##Ctag#957"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#957"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#957"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#958" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#958"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#958", f::Symbol) + r = Ref{var"##Ctag#958"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#958"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#958"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#959" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#959"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#959", f::Symbol) + r = Ref{var"##Ctag#959"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#959"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#959"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#960" + signal::hsa_signal_t + condition::hsa_signal_condition_t + compare_value::hsa_signal_value_t + timeout_hint::UInt64 + wait_state_hint::hsa_wait_state_t +end +function Base.getproperty(x::Ptr{var"##Ctag#960"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :condition && return Ptr{hsa_signal_condition_t}(x + 8) + f === :compare_value && return Ptr{hsa_signal_value_t}(x + 16) + f === :timeout_hint && return Ptr{UInt64}(x + 24) + f === :wait_state_hint && return Ptr{hsa_wait_state_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#960", f::Symbol) + r = Ref{var"##Ctag#960"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#960"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#960"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#961" + signal::hsa_signal_t + condition::hsa_signal_condition_t + compare_value::hsa_signal_value_t + timeout_hint::UInt64 + wait_state_hint::hsa_wait_state_t +end +function Base.getproperty(x::Ptr{var"##Ctag#961"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :condition && return Ptr{hsa_signal_condition_t}(x + 8) + f === :compare_value && return Ptr{hsa_signal_value_t}(x + 16) + f === :timeout_hint && return Ptr{UInt64}(x + 24) + f === :wait_state_hint && return Ptr{hsa_wait_state_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#961", f::Symbol) + r = Ref{var"##Ctag#961"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#961"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#961"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#962" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#962"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#962", f::Symbol) + r = Ref{var"##Ctag#962"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#962"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#962"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#963" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#963"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#963", f::Symbol) + r = Ref{var"##Ctag#963"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#963"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#963"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#964" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#964"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#964", f::Symbol) + r = Ref{var"##Ctag#964"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#964"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#964"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#965" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#965"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#965", f::Symbol) + r = Ref{var"##Ctag#965"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#965"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#965"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#966" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#966"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#966", f::Symbol) + r = Ref{var"##Ctag#966"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#966"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#966"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#967" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#967"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#967", f::Symbol) + r = Ref{var"##Ctag#967"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#967"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#967"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#968" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#968"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#968", f::Symbol) + r = Ref{var"##Ctag#968"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#968"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#968"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#969" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#969"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#969", f::Symbol) + r = Ref{var"##Ctag#969"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#969"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#969"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#970" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#970"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#970", f::Symbol) + r = Ref{var"##Ctag#970"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#970"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#970"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#971" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#971"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#971", f::Symbol) + r = Ref{var"##Ctag#971"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#971"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#971"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#972" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#972"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#972", f::Symbol) + r = Ref{var"##Ctag#972"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#972"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#972"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#973" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#973"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#973", f::Symbol) + r = Ref{var"##Ctag#973"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#973"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#973"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#974" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#974"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#974", f::Symbol) + r = Ref{var"##Ctag#974"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#974"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#974"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#975" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#975"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#975", f::Symbol) + r = Ref{var"##Ctag#975"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#975"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#975"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#976" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#976"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#976", f::Symbol) + r = Ref{var"##Ctag#976"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#976"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#976"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#977" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#977"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#977", f::Symbol) + r = Ref{var"##Ctag#977"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#977"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#977"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#978" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#978"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#978", f::Symbol) + r = Ref{var"##Ctag#978"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#978"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#978"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#979" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#979"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#979", f::Symbol) + r = Ref{var"##Ctag#979"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#979"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#979"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#980" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#980"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#980", f::Symbol) + r = Ref{var"##Ctag#980"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#980"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#980"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#981" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#981"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#981", f::Symbol) + r = Ref{var"##Ctag#981"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#981"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#981"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#982" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#982"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#982", f::Symbol) + r = Ref{var"##Ctag#982"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#982"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#982"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#983" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#983"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#983", f::Symbol) + r = Ref{var"##Ctag#983"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#983"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#983"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#984" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#984"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#984", f::Symbol) + r = Ref{var"##Ctag#984"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#984"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#984"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#985" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#985"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#985", f::Symbol) + r = Ref{var"##Ctag#985"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#985"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#985"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#986" + signal::hsa_signal_t + expected::hsa_signal_value_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#986"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :expected && return Ptr{hsa_signal_value_t}(x + 8) + f === :value && return Ptr{hsa_signal_value_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#986", f::Symbol) + r = Ref{var"##Ctag#986"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#986"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#986"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#987" + signal::hsa_signal_t + expected::hsa_signal_value_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#987"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :expected && return Ptr{hsa_signal_value_t}(x + 8) + f === :value && return Ptr{hsa_signal_value_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#987", f::Symbol) + r = Ref{var"##Ctag#987"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#987"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#987"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#988" + signal::hsa_signal_t + expected::hsa_signal_value_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#988"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :expected && return Ptr{hsa_signal_value_t}(x + 8) + f === :value && return Ptr{hsa_signal_value_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#988", f::Symbol) + r = Ref{var"##Ctag#988"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#988"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#988"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#989" + signal::hsa_signal_t + expected::hsa_signal_value_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#989"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :expected && return Ptr{hsa_signal_value_t}(x + 8) + f === :value && return Ptr{hsa_signal_value_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#989", f::Symbol) + r = Ref{var"##Ctag#989"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#989"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#989"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#990" + name::Ptr{Cchar} + isa::Ptr{hsa_isa_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#990"}, f::Symbol) + f === :name && return Ptr{Ptr{Cchar}}(x + 0) + f === :isa && return Ptr{Ptr{hsa_isa_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#990", f::Symbol) + r = Ref{var"##Ctag#990"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#990"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#990"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#991" + isa::hsa_isa_t + attribute::hsa_isa_info_t + index::UInt32 + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#991"}, f::Symbol) + f === :isa && return Ptr{hsa_isa_t}(x + 0) + f === :attribute && return Ptr{hsa_isa_info_t}(x + 8) + f === :index && return Ptr{UInt32}(x + 12) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#991", f::Symbol) + r = Ref{var"##Ctag#991"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#991"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#991"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#992" + code_object_isa::hsa_isa_t + agent_isa::hsa_isa_t + result::Ptr{Bool} +end +function Base.getproperty(x::Ptr{var"##Ctag#992"}, f::Symbol) + f === :code_object_isa && return Ptr{hsa_isa_t}(x + 0) + f === :agent_isa && return Ptr{hsa_isa_t}(x + 8) + f === :result && return Ptr{Ptr{Bool}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#992", f::Symbol) + r = Ref{var"##Ctag#992"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#992"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#992"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#993" + code_object::hsa_code_object_t + alloc_callback::Ptr{Cvoid} + callback_data::hsa_callback_data_t + options::Ptr{Cchar} + serialized_code_object::Ptr{Ptr{Cvoid}} + serialized_code_object_size::Ptr{Csize_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#993"}, f::Symbol) + f === :code_object && return Ptr{hsa_code_object_t}(x + 0) + f === :alloc_callback && return Ptr{Ptr{Cvoid}}(x + 8) + f === :callback_data && return Ptr{hsa_callback_data_t}(x + 16) + f === :options && return Ptr{Ptr{Cchar}}(x + 24) + f === :serialized_code_object && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + f === :serialized_code_object_size && return Ptr{Ptr{Csize_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#993", f::Symbol) + r = Ref{var"##Ctag#993"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#993"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#993"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#994" + serialized_code_object::Ptr{Cvoid} + serialized_code_object_size::Csize_t + options::Ptr{Cchar} + code_object::Ptr{hsa_code_object_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#994"}, f::Symbol) + f === :serialized_code_object && return Ptr{Ptr{Cvoid}}(x + 0) + f === :serialized_code_object_size && return Ptr{Csize_t}(x + 8) + f === :options && return Ptr{Ptr{Cchar}}(x + 16) + f === :code_object && return Ptr{Ptr{hsa_code_object_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#994", f::Symbol) + r = Ref{var"##Ctag#994"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#994"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#994"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#995" + code_object::hsa_code_object_t +end +function Base.getproperty(x::Ptr{var"##Ctag#995"}, f::Symbol) + f === :code_object && return Ptr{hsa_code_object_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#995", f::Symbol) + r = Ref{var"##Ctag#995"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#995"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#995"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#996" + code_object::hsa_code_object_t + attribute::hsa_code_object_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#996"}, f::Symbol) + f === :code_object && return Ptr{hsa_code_object_t}(x + 0) + f === :attribute && return Ptr{hsa_code_object_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#996", f::Symbol) + r = Ref{var"##Ctag#996"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#996"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#996"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#997" + code_object::hsa_code_object_t + symbol_name::Ptr{Cchar} + symbol::Ptr{hsa_code_symbol_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#997"}, f::Symbol) + f === :code_object && return Ptr{hsa_code_object_t}(x + 0) + f === :symbol_name && return Ptr{Ptr{Cchar}}(x + 8) + f === :symbol && return Ptr{Ptr{hsa_code_symbol_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#997", f::Symbol) + r = Ref{var"##Ctag#997"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#997"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#997"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#998" + code_symbol::hsa_code_symbol_t + attribute::hsa_code_symbol_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#998"}, f::Symbol) + f === :code_symbol && return Ptr{hsa_code_symbol_t}(x + 0) + f === :attribute && return Ptr{hsa_code_symbol_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#998", f::Symbol) + r = Ref{var"##Ctag#998"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#998"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#998"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#999" + code_object::hsa_code_object_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#999"}, f::Symbol) + f === :code_object && return Ptr{hsa_code_object_t}(x + 0) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#999", f::Symbol) + r = Ref{var"##Ctag#999"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#999"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#999"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1000" + profile::hsa_profile_t + executable_state::hsa_executable_state_t + options::Ptr{Cchar} + executable::Ptr{hsa_executable_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1000"}, f::Symbol) + f === :profile && return Ptr{hsa_profile_t}(x + 0) + f === :executable_state && return Ptr{hsa_executable_state_t}(x + 4) + f === :options && return Ptr{Ptr{Cchar}}(x + 8) + f === :executable && return Ptr{Ptr{hsa_executable_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1000", f::Symbol) + r = Ref{var"##Ctag#1000"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1000"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1000"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1001" + executable::hsa_executable_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1001"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1001", f::Symbol) + r = Ref{var"##Ctag#1001"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1001"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1001"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1002" + executable::hsa_executable_t + agent::hsa_agent_t + code_object::hsa_code_object_t + options::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#1002"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :agent && return Ptr{hsa_agent_t}(x + 8) + f === :code_object && return Ptr{hsa_code_object_t}(x + 16) + f === :options && return Ptr{Ptr{Cchar}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1002", f::Symbol) + r = Ref{var"##Ctag#1002"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1002"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1002"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1003" + executable::hsa_executable_t + options::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#1003"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :options && return Ptr{Ptr{Cchar}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1003", f::Symbol) + r = Ref{var"##Ctag#1003"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1003"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1003"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1004" + executable::hsa_executable_t + attribute::hsa_executable_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1004"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :attribute && return Ptr{hsa_executable_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1004", f::Symbol) + r = Ref{var"##Ctag#1004"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1004"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1004"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1005" + executable::hsa_executable_t + variable_name::Ptr{Cchar} + address::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1005"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :variable_name && return Ptr{Ptr{Cchar}}(x + 8) + f === :address && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1005", f::Symbol) + r = Ref{var"##Ctag#1005"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1005"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1005"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1006" + executable::hsa_executable_t + agent::hsa_agent_t + variable_name::Ptr{Cchar} + address::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1006"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :agent && return Ptr{hsa_agent_t}(x + 8) + f === :variable_name && return Ptr{Ptr{Cchar}}(x + 16) + f === :address && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1006", f::Symbol) + r = Ref{var"##Ctag#1006"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1006"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1006"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1007" + executable::hsa_executable_t + agent::hsa_agent_t + variable_name::Ptr{Cchar} + address::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1007"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :agent && return Ptr{hsa_agent_t}(x + 8) + f === :variable_name && return Ptr{Ptr{Cchar}}(x + 16) + f === :address && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1007", f::Symbol) + r = Ref{var"##Ctag#1007"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1007"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1007"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1008" + executable::hsa_executable_t + result::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#1008"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :result && return Ptr{Ptr{UInt32}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1008", f::Symbol) + r = Ref{var"##Ctag#1008"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1008"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1008"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1009" + executable::hsa_executable_t + module_name::Ptr{Cchar} + symbol_name::Ptr{Cchar} + agent::hsa_agent_t + call_convention::Int32 + symbol::Ptr{hsa_executable_symbol_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1009"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :module_name && return Ptr{Ptr{Cchar}}(x + 8) + f === :symbol_name && return Ptr{Ptr{Cchar}}(x + 16) + f === :agent && return Ptr{hsa_agent_t}(x + 24) + f === :call_convention && return Ptr{Int32}(x + 32) + f === :symbol && return Ptr{Ptr{hsa_executable_symbol_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1009", f::Symbol) + r = Ref{var"##Ctag#1009"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1009"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1009"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1010" + executable_symbol::hsa_executable_symbol_t + attribute::hsa_executable_symbol_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1010"}, f::Symbol) + f === :executable_symbol && return Ptr{hsa_executable_symbol_t}(x + 0) + f === :attribute && return Ptr{hsa_executable_symbol_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1010", f::Symbol) + r = Ref{var"##Ctag#1010"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1010"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1010"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1011" + executable::hsa_executable_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1011"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1011", f::Symbol) + r = Ref{var"##Ctag#1011"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1011"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1011"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1012" + status::hsa_status_t + status_string::Ptr{Ptr{Cchar}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1012"}, f::Symbol) + f === :status && return Ptr{hsa_status_t}(x + 0) + f === :status_string && return Ptr{Ptr{Ptr{Cchar}}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1012", f::Symbol) + r = Ref{var"##Ctag#1012"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1012"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1012"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1013" + extension::UInt16 + name::Ptr{Ptr{Cchar}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1013"}, f::Symbol) + f === :extension && return Ptr{UInt16}(x + 0) + f === :name && return Ptr{Ptr{Ptr{Cchar}}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1013", f::Symbol) + r = Ref{var"##Ctag#1013"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1013"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1013"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1014" + extension::UInt16 + version_major::UInt16 + version_minor::Ptr{UInt16} + result::Ptr{Bool} +end +function Base.getproperty(x::Ptr{var"##Ctag#1014"}, f::Symbol) + f === :extension && return Ptr{UInt16}(x + 0) + f === :version_major && return Ptr{UInt16}(x + 2) + f === :version_minor && return Ptr{Ptr{UInt16}}(x + 8) + f === :result && return Ptr{Ptr{Bool}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1014", f::Symbol) + r = Ref{var"##Ctag#1014"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1014"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1014"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1015" + extension::UInt16 + version_major::UInt16 + table_length::Csize_t + table::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1015"}, f::Symbol) + f === :extension && return Ptr{UInt16}(x + 0) + f === :version_major && return Ptr{UInt16}(x + 2) + f === :table_length && return Ptr{Csize_t}(x + 8) + f === :table && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1015", f::Symbol) + r = Ref{var"##Ctag#1015"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1015"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1015"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1016" + extension::UInt16 + agent::hsa_agent_t + version_major::UInt16 + version_minor::Ptr{UInt16} + result::Ptr{Bool} +end +function Base.getproperty(x::Ptr{var"##Ctag#1016"}, f::Symbol) + f === :extension && return Ptr{UInt16}(x + 0) + f === :agent && return Ptr{hsa_agent_t}(x + 8) + f === :version_major && return Ptr{UInt16}(x + 16) + f === :version_minor && return Ptr{Ptr{UInt16}}(x + 24) + f === :result && return Ptr{Ptr{Bool}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1016", f::Symbol) + r = Ref{var"##Ctag#1016"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1016"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1016"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1017" + cache::hsa_cache_t + attribute::hsa_cache_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1017"}, f::Symbol) + f === :cache && return Ptr{hsa_cache_t}(x + 0) + f === :attribute && return Ptr{hsa_cache_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1017", f::Symbol) + r = Ref{var"##Ctag#1017"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1017"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1017"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1018" + agent::hsa_agent_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1018"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1018", f::Symbol) + r = Ref{var"##Ctag#1018"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1018"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1018"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1019" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1019"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1019", f::Symbol) + r = Ref{var"##Ctag#1019"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1019"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1019"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1020" + signal::hsa_signal_t + value::hsa_signal_value_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1020"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value && return Ptr{hsa_signal_value_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1020", f::Symbol) + r = Ref{var"##Ctag#1020"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1020"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1020"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1021" + num_signals::UInt32 + signals::Ptr{hsa_signal_t} + num_consumers::UInt32 + consumers::Ptr{hsa_agent_t} + signal_group::Ptr{hsa_signal_group_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1021"}, f::Symbol) + f === :num_signals && return Ptr{UInt32}(x + 0) + f === :signals && return Ptr{Ptr{hsa_signal_t}}(x + 8) + f === :num_consumers && return Ptr{UInt32}(x + 16) + f === :consumers && return Ptr{Ptr{hsa_agent_t}}(x + 24) + f === :signal_group && return Ptr{Ptr{hsa_signal_group_t}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1021", f::Symbol) + r = Ref{var"##Ctag#1021"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1021"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1021"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1022" + signal_group::hsa_signal_group_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1022"}, f::Symbol) + f === :signal_group && return Ptr{hsa_signal_group_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1022", f::Symbol) + r = Ref{var"##Ctag#1022"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1022"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1022"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1023" + signal_group::hsa_signal_group_t + conditions::Ptr{hsa_signal_condition_t} + compare_values::Ptr{hsa_signal_value_t} + wait_state_hint::hsa_wait_state_t + signal::Ptr{hsa_signal_t} + value::Ptr{hsa_signal_value_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1023"}, f::Symbol) + f === :signal_group && return Ptr{hsa_signal_group_t}(x + 0) + f === :conditions && return Ptr{Ptr{hsa_signal_condition_t}}(x + 8) + f === :compare_values && return Ptr{Ptr{hsa_signal_value_t}}(x + 16) + f === :wait_state_hint && return Ptr{hsa_wait_state_t}(x + 24) + f === :signal && return Ptr{Ptr{hsa_signal_t}}(x + 32) + f === :value && return Ptr{Ptr{hsa_signal_value_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1023", f::Symbol) + r = Ref{var"##Ctag#1023"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1023"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1023"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1024" + signal_group::hsa_signal_group_t + conditions::Ptr{hsa_signal_condition_t} + compare_values::Ptr{hsa_signal_value_t} + wait_state_hint::hsa_wait_state_t + signal::Ptr{hsa_signal_t} + value::Ptr{hsa_signal_value_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1024"}, f::Symbol) + f === :signal_group && return Ptr{hsa_signal_group_t}(x + 0) + f === :conditions && return Ptr{Ptr{hsa_signal_condition_t}}(x + 8) + f === :compare_values && return Ptr{Ptr{hsa_signal_value_t}}(x + 16) + f === :wait_state_hint && return Ptr{hsa_wait_state_t}(x + 24) + f === :signal && return Ptr{Ptr{hsa_signal_t}}(x + 32) + f === :value && return Ptr{Ptr{hsa_signal_value_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1024", f::Symbol) + r = Ref{var"##Ctag#1024"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1024"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1024"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1025" + agent::hsa_agent_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1025"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1025", f::Symbol) + r = Ref{var"##Ctag#1025"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1025"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1025"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1026" + isa::hsa_isa_t + attribute::hsa_isa_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1026"}, f::Symbol) + f === :isa && return Ptr{hsa_isa_t}(x + 0) + f === :attribute && return Ptr{hsa_isa_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1026", f::Symbol) + r = Ref{var"##Ctag#1026"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1026"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1026"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1027" + isa::hsa_isa_t + profile::hsa_profile_t + mask::Ptr{UInt16} +end +function Base.getproperty(x::Ptr{var"##Ctag#1027"}, f::Symbol) + f === :isa && return Ptr{hsa_isa_t}(x + 0) + f === :profile && return Ptr{hsa_profile_t}(x + 8) + f === :mask && return Ptr{Ptr{UInt16}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1027", f::Symbol) + r = Ref{var"##Ctag#1027"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1027"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1027"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1028" + isa::hsa_isa_t + fp_type::hsa_fp_type_t + flush_mode::hsa_flush_mode_t + round_method::Ptr{hsa_round_method_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1028"}, f::Symbol) + f === :isa && return Ptr{hsa_isa_t}(x + 0) + f === :fp_type && return Ptr{hsa_fp_type_t}(x + 8) + f === :flush_mode && return Ptr{hsa_flush_mode_t}(x + 12) + f === :round_method && return Ptr{Ptr{hsa_round_method_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1028", f::Symbol) + r = Ref{var"##Ctag#1028"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1028"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1028"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1029" + wavefront::hsa_wavefront_t + attribute::hsa_wavefront_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1029"}, f::Symbol) + f === :wavefront && return Ptr{hsa_wavefront_t}(x + 0) + f === :attribute && return Ptr{hsa_wavefront_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1029", f::Symbol) + r = Ref{var"##Ctag#1029"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1029"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1029"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1030" + isa::hsa_isa_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1030"}, f::Symbol) + f === :isa && return Ptr{hsa_isa_t}(x + 0) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1030", f::Symbol) + r = Ref{var"##Ctag#1030"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1030"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1030"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1031" + code_object::hsa_code_object_t + module_name::Ptr{Cchar} + symbol_name::Ptr{Cchar} + symbol::Ptr{hsa_code_symbol_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1031"}, f::Symbol) + f === :code_object && return Ptr{hsa_code_object_t}(x + 0) + f === :module_name && return Ptr{Ptr{Cchar}}(x + 8) + f === :symbol_name && return Ptr{Ptr{Cchar}}(x + 16) + f === :symbol && return Ptr{Ptr{hsa_code_symbol_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1031", f::Symbol) + r = Ref{var"##Ctag#1031"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1031"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1031"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1032" + file::hsa_file_t + code_object_reader::Ptr{hsa_code_object_reader_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1032"}, f::Symbol) + f === :file && return Ptr{hsa_file_t}(x + 0) + f === :code_object_reader && return Ptr{Ptr{hsa_code_object_reader_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1032", f::Symbol) + r = Ref{var"##Ctag#1032"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1032"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1032"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1033" + code_object::Ptr{Cvoid} + size::Csize_t + code_object_reader::Ptr{hsa_code_object_reader_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1033"}, f::Symbol) + f === :code_object && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :code_object_reader && return Ptr{Ptr{hsa_code_object_reader_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1033", f::Symbol) + r = Ref{var"##Ctag#1033"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1033"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1033"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1034" + code_object_reader::hsa_code_object_reader_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1034"}, f::Symbol) + f === :code_object_reader && return Ptr{hsa_code_object_reader_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1034", f::Symbol) + r = Ref{var"##Ctag#1034"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1034"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1034"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1035" + profile::hsa_profile_t + default_float_rounding_mode::hsa_default_float_rounding_mode_t + options::Ptr{Cchar} + executable::Ptr{hsa_executable_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1035"}, f::Symbol) + f === :profile && return Ptr{hsa_profile_t}(x + 0) + f === :default_float_rounding_mode && + return Ptr{hsa_default_float_rounding_mode_t}(x + 4) + f === :options && return Ptr{Ptr{Cchar}}(x + 8) + f === :executable && return Ptr{Ptr{hsa_executable_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1035", f::Symbol) + r = Ref{var"##Ctag#1035"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1035"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1035"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1036" + executable::hsa_executable_t + code_object_reader::hsa_code_object_reader_t + options::Ptr{Cchar} + loaded_code_object::Ptr{hsa_loaded_code_object_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1036"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :code_object_reader && return Ptr{hsa_code_object_reader_t}(x + 8) + f === :options && return Ptr{Ptr{Cchar}}(x + 16) + f === :loaded_code_object && return Ptr{Ptr{hsa_loaded_code_object_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1036", f::Symbol) + r = Ref{var"##Ctag#1036"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1036"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1036"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1037" + executable::hsa_executable_t + agent::hsa_agent_t + code_object_reader::hsa_code_object_reader_t + options::Ptr{Cchar} + loaded_code_object::Ptr{hsa_loaded_code_object_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1037"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :agent && return Ptr{hsa_agent_t}(x + 8) + f === :code_object_reader && return Ptr{hsa_code_object_reader_t}(x + 16) + f === :options && return Ptr{Ptr{Cchar}}(x + 24) + f === :loaded_code_object && return Ptr{Ptr{hsa_loaded_code_object_t}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1037", f::Symbol) + r = Ref{var"##Ctag#1037"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1037"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1037"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1038" + executable::hsa_executable_t + options::Ptr{Cchar} + result::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#1038"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :options && return Ptr{Ptr{Cchar}}(x + 8) + f === :result && return Ptr{Ptr{UInt32}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1038", f::Symbol) + r = Ref{var"##Ctag#1038"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1038"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1038"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1039" + executable::hsa_executable_t + symbol_name::Ptr{Cchar} + agent::Ptr{hsa_agent_t} + symbol::Ptr{hsa_executable_symbol_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1039"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :symbol_name && return Ptr{Ptr{Cchar}}(x + 8) + f === :agent && return Ptr{Ptr{hsa_agent_t}}(x + 16) + f === :symbol && return Ptr{Ptr{hsa_executable_symbol_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1039", f::Symbol) + r = Ref{var"##Ctag#1039"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1039"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1039"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1040" + executable::hsa_executable_t + agent::hsa_agent_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1040"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :agent && return Ptr{hsa_agent_t}(x + 8) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 16) + f === :data && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1040", f::Symbol) + r = Ref{var"##Ctag#1040"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1040"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1040"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1041" + executable::hsa_executable_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1041"}, f::Symbol) + f === :executable && return Ptr{hsa_executable_t}(x + 0) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1041", f::Symbol) + r = Ref{var"##Ctag#1041"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1041"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1041"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1042" + agent::hsa_agent_t + type::Ptr{hsa_amd_coherency_type_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1042"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :type && return Ptr{Ptr{hsa_amd_coherency_type_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1042", f::Symbol) + r = Ref{var"##Ctag#1042"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1042"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1042"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1043" + agent::hsa_agent_t + type::hsa_amd_coherency_type_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1043"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :type && return Ptr{hsa_amd_coherency_type_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1043", f::Symbol) + r = Ref{var"##Ctag#1043"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1043"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1043"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1044" + queue::Ptr{hsa_queue_t} + enable::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#1044"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :enable && return Ptr{Cint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1044", f::Symbol) + r = Ref{var"##Ctag#1044"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1044"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1044"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1045" + enable::Bool +end +function Base.getproperty(x::Ptr{var"##Ctag#1045"}, f::Symbol) + f === :enable && return Ptr{Bool}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1045", f::Symbol) + r = Ref{var"##Ctag#1045"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1045"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1045"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1046" + agent::hsa_agent_t + signal::hsa_signal_t + time::Ptr{hsa_amd_profiling_dispatch_time_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1046"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :signal && return Ptr{hsa_signal_t}(x + 8) + f === :time && return Ptr{Ptr{hsa_amd_profiling_dispatch_time_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1046", f::Symbol) + r = Ref{var"##Ctag#1046"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1046"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1046"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1047" + signal::hsa_signal_t + time::Ptr{hsa_amd_profiling_async_copy_time_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1047"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :time && return Ptr{Ptr{hsa_amd_profiling_async_copy_time_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1047", f::Symbol) + r = Ref{var"##Ctag#1047"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1047"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1047"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1048" + agent::hsa_agent_t + agent_tick::UInt64 + system_tick::Ptr{UInt64} +end +function Base.getproperty(x::Ptr{var"##Ctag#1048"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :agent_tick && return Ptr{UInt64}(x + 8) + f === :system_tick && return Ptr{Ptr{UInt64}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1048", f::Symbol) + r = Ref{var"##Ctag#1048"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1048"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1048"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1049" + signal::hsa_signal_t + cond::hsa_signal_condition_t + value::hsa_signal_value_t + handler::hsa_amd_signal_handler + arg::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1049"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :cond && return Ptr{hsa_signal_condition_t}(x + 8) + f === :value && return Ptr{hsa_signal_value_t}(x + 16) + f === :handler && return Ptr{hsa_amd_signal_handler}(x + 24) + f === :arg && return Ptr{Ptr{Cvoid}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1049", f::Symbol) + r = Ref{var"##Ctag#1049"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1049"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1049"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1050" + callback::Ptr{Cvoid} + arg::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1050"}, f::Symbol) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 0) + f === :arg && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1050", f::Symbol) + r = Ref{var"##Ctag#1050"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1050"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1050"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1051" + signal_count::UInt32 + signals::Ptr{hsa_signal_t} + conds::Ptr{hsa_signal_condition_t} + values::Ptr{hsa_signal_value_t} + timeout_hint::UInt64 + wait_hint::hsa_wait_state_t + satisfying_value::Ptr{hsa_signal_value_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1051"}, f::Symbol) + f === :signal_count && return Ptr{UInt32}(x + 0) + f === :signals && return Ptr{Ptr{hsa_signal_t}}(x + 8) + f === :conds && return Ptr{Ptr{hsa_signal_condition_t}}(x + 16) + f === :values && return Ptr{Ptr{hsa_signal_value_t}}(x + 24) + f === :timeout_hint && return Ptr{UInt64}(x + 32) + f === :wait_hint && return Ptr{hsa_wait_state_t}(x + 40) + f === :satisfying_value && return Ptr{Ptr{hsa_signal_value_t}}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1051", f::Symbol) + r = Ref{var"##Ctag#1051"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1051"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1051"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1052" + queue::Ptr{hsa_queue_t} + num_cu_mask_count::UInt32 + cu_mask::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#1052"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :num_cu_mask_count && return Ptr{UInt32}(x + 8) + f === :cu_mask && return Ptr{Ptr{UInt32}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1052", f::Symbol) + r = Ref{var"##Ctag#1052"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1052"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1052"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1053" + memory_pool::hsa_amd_memory_pool_t + attribute::hsa_amd_memory_pool_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1053"}, f::Symbol) + f === :memory_pool && return Ptr{hsa_amd_memory_pool_t}(x + 0) + f === :attribute && return Ptr{hsa_amd_memory_pool_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1053", f::Symbol) + r = Ref{var"##Ctag#1053"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1053"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1053"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1054" + agent::hsa_agent_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1054"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1054", f::Symbol) + r = Ref{var"##Ctag#1054"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1054"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1054"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1055" + memory_pool::hsa_amd_memory_pool_t + size::Csize_t + flags::UInt32 + ptr::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1055"}, f::Symbol) + f === :memory_pool && return Ptr{hsa_amd_memory_pool_t}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :flags && return Ptr{UInt32}(x + 16) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1055", f::Symbol) + r = Ref{var"##Ctag#1055"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1055"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1055"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1056" + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1056"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1056", f::Symbol) + r = Ref{var"##Ctag#1056"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1056"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1056"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1057" + dst::Ptr{Cvoid} + dst_agent::hsa_agent_t + src::Ptr{Cvoid} + src_agent::hsa_agent_t + size::Csize_t + num_dep_signals::UInt32 + dep_signals::Ptr{hsa_signal_t} + completion_signal::hsa_signal_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1057"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dst_agent && return Ptr{hsa_agent_t}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :src_agent && return Ptr{hsa_agent_t}(x + 24) + f === :size && return Ptr{Csize_t}(x + 32) + f === :num_dep_signals && return Ptr{UInt32}(x + 40) + f === :dep_signals && return Ptr{Ptr{hsa_signal_t}}(x + 48) + f === :completion_signal && return Ptr{hsa_signal_t}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1057", f::Symbol) + r = Ref{var"##Ctag#1057"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1057"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1057"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1058" + dst::Ptr{Cvoid} + dst_agent::hsa_agent_t + src::Ptr{Cvoid} + src_agent::hsa_agent_t + size::Csize_t + num_dep_signals::UInt32 + dep_signals::Ptr{hsa_signal_t} + completion_signal::hsa_signal_t + engine_id::hsa_amd_sdma_engine_id_t + force_copy_on_sdma::Bool +end +function Base.getproperty(x::Ptr{var"##Ctag#1058"}, f::Symbol) + f === :dst && return Ptr{Ptr{Cvoid}}(x + 0) + f === :dst_agent && return Ptr{hsa_agent_t}(x + 8) + f === :src && return Ptr{Ptr{Cvoid}}(x + 16) + f === :src_agent && return Ptr{hsa_agent_t}(x + 24) + f === :size && return Ptr{Csize_t}(x + 32) + f === :num_dep_signals && return Ptr{UInt32}(x + 40) + f === :dep_signals && return Ptr{Ptr{hsa_signal_t}}(x + 48) + f === :completion_signal && return Ptr{hsa_signal_t}(x + 56) + f === :engine_id && return Ptr{hsa_amd_sdma_engine_id_t}(x + 64) + f === :force_copy_on_sdma && return Ptr{Bool}(x + 68) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1058", f::Symbol) + r = Ref{var"##Ctag#1058"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1058"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1058"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1059" + dst_agent::hsa_agent_t + src_agent::hsa_agent_t + engine_ids_mask::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#1059"}, f::Symbol) + f === :dst_agent && return Ptr{hsa_agent_t}(x + 0) + f === :src_agent && return Ptr{hsa_agent_t}(x + 8) + f === :engine_ids_mask && return Ptr{Ptr{UInt32}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1059", f::Symbol) + r = Ref{var"##Ctag#1059"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1059"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1059"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1060" + agent::hsa_agent_t + memory_pool::hsa_amd_memory_pool_t + attribute::hsa_amd_agent_memory_pool_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1060"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :memory_pool && return Ptr{hsa_amd_memory_pool_t}(x + 8) + f === :attribute && return Ptr{hsa_amd_agent_memory_pool_info_t}(x + 16) + f === :value && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1060", f::Symbol) + r = Ref{var"##Ctag#1060"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1060"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1060"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1061" + num_agents::UInt32 + agents::Ptr{hsa_agent_t} + flags::Ptr{UInt32} + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1061"}, f::Symbol) + f === :num_agents && return Ptr{UInt32}(x + 0) + f === :agents && return Ptr{Ptr{hsa_agent_t}}(x + 8) + f === :flags && return Ptr{Ptr{UInt32}}(x + 16) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1061", f::Symbol) + r = Ref{var"##Ctag#1061"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1061"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1061"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1062" + src_memory_pool::hsa_amd_memory_pool_t + dst_memory_pool::hsa_amd_memory_pool_t + result::Ptr{Bool} +end +function Base.getproperty(x::Ptr{var"##Ctag#1062"}, f::Symbol) + f === :src_memory_pool && return Ptr{hsa_amd_memory_pool_t}(x + 0) + f === :dst_memory_pool && return Ptr{hsa_amd_memory_pool_t}(x + 8) + f === :result && return Ptr{Ptr{Bool}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1062", f::Symbol) + r = Ref{var"##Ctag#1062"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1062"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1062"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1063" + ptr::Ptr{Cvoid} + memory_pool::hsa_amd_memory_pool_t + flags::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#1063"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :memory_pool && return Ptr{hsa_amd_memory_pool_t}(x + 8) + f === :flags && return Ptr{UInt32}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1063", f::Symbol) + r = Ref{var"##Ctag#1063"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1063"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1063"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1064" + host_ptr::Ptr{Cvoid} + size::Csize_t + agents::Ptr{hsa_agent_t} + num_agent::Cint + agent_ptr::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1064"}, f::Symbol) + f === :host_ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :agents && return Ptr{Ptr{hsa_agent_t}}(x + 16) + f === :num_agent && return Ptr{Cint}(x + 24) + f === :agent_ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1064", f::Symbol) + r = Ref{var"##Ctag#1064"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1064"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1064"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1065" + host_ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1065"}, f::Symbol) + f === :host_ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1065", f::Symbol) + r = Ref{var"##Ctag#1065"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1065"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1065"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1066" + ptr::Ptr{Cvoid} + value::UInt32 + count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1066"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :value && return Ptr{UInt32}(x + 8) + f === :count && return Ptr{Csize_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1066", f::Symbol) + r = Ref{var"##Ctag#1066"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1066"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1066"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1067" + num_agents::UInt32 + agents::Ptr{hsa_agent_t} + interop_handle::Cint + flags::UInt32 + size::Ptr{Csize_t} + ptr::Ptr{Ptr{Cvoid}} + metadata_size::Ptr{Csize_t} + metadata::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1067"}, f::Symbol) + f === :num_agents && return Ptr{UInt32}(x + 0) + f === :agents && return Ptr{Ptr{hsa_agent_t}}(x + 8) + f === :interop_handle && return Ptr{Cint}(x + 16) + f === :flags && return Ptr{UInt32}(x + 20) + f === :size && return Ptr{Ptr{Csize_t}}(x + 24) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + f === :metadata_size && return Ptr{Ptr{Csize_t}}(x + 40) + f === :metadata && return Ptr{Ptr{Ptr{Cvoid}}}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1067", f::Symbol) + r = Ref{var"##Ctag#1067"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1067"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1067"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1068" + ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1068"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1068", f::Symbol) + r = Ref{var"##Ctag#1068"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1068"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1068"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1069" + agent::hsa_agent_t + image_descriptor::Ptr{hsa_ext_image_descriptor_t} + image_layout::Ptr{hsa_amd_image_descriptor_t} + image_data::Ptr{Cvoid} + access_permission::hsa_access_permission_t + image::Ptr{hsa_ext_image_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1069"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :image_descriptor && return Ptr{Ptr{hsa_ext_image_descriptor_t}}(x + 8) + f === :image_layout && return Ptr{Ptr{hsa_amd_image_descriptor_t}}(x + 16) + f === :image_data && return Ptr{Ptr{Cvoid}}(x + 24) + f === :access_permission && return Ptr{hsa_access_permission_t}(x + 32) + f === :image && return Ptr{Ptr{hsa_ext_image_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1069", f::Symbol) + r = Ref{var"##Ctag#1069"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1069"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1069"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1070" + ptr::Ptr{Cvoid} + info::Ptr{hsa_amd_pointer_info_t} + alloc::Ptr{Cvoid} + num_agents_accessible::Ptr{UInt32} + accessible::Ptr{Ptr{hsa_agent_t}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1070"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :info && return Ptr{Ptr{hsa_amd_pointer_info_t}}(x + 8) + f === :alloc && return Ptr{Ptr{Cvoid}}(x + 16) + f === :num_agents_accessible && return Ptr{Ptr{UInt32}}(x + 24) + f === :accessible && return Ptr{Ptr{Ptr{hsa_agent_t}}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1070", f::Symbol) + r = Ref{var"##Ctag#1070"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1070"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1070"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1071" + ptr::Ptr{Cvoid} + userdata::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1071"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :userdata && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1071", f::Symbol) + r = Ref{var"##Ctag#1071"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1071"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1071"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1072" + ptr::Ptr{Cvoid} + len::Csize_t + handle::Ptr{hsa_amd_ipc_memory_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1072"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :len && return Ptr{Csize_t}(x + 8) + f === :handle && return Ptr{Ptr{hsa_amd_ipc_memory_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1072", f::Symbol) + r = Ref{var"##Ctag#1072"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1072"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1072"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1073" + handle::Ptr{hsa_amd_ipc_memory_t} + len::Csize_t + num_agents::UInt32 + mapping_agents::Ptr{hsa_agent_t} + mapped_ptr::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1073"}, f::Symbol) + f === :handle && return Ptr{Ptr{hsa_amd_ipc_memory_t}}(x + 0) + f === :len && return Ptr{Csize_t}(x + 8) + f === :num_agents && return Ptr{UInt32}(x + 16) + f === :mapping_agents && return Ptr{Ptr{hsa_agent_t}}(x + 24) + f === :mapped_ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1073", f::Symbol) + r = Ref{var"##Ctag#1073"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1073"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1073"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1074" + mapped_ptr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1074"}, f::Symbol) + f === :mapped_ptr && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1074", f::Symbol) + r = Ref{var"##Ctag#1074"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1074"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1074"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1075" + initial_value::hsa_signal_value_t + num_consumers::UInt32 + consumers::Ptr{hsa_agent_t} + attributes::UInt64 + signal::Ptr{hsa_signal_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1075"}, f::Symbol) + f === :initial_value && return Ptr{hsa_signal_value_t}(x + 0) + f === :num_consumers && return Ptr{UInt32}(x + 8) + f === :consumers && return Ptr{Ptr{hsa_agent_t}}(x + 16) + f === :attributes && return Ptr{UInt64}(x + 24) + f === :signal && return Ptr{Ptr{hsa_signal_t}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1075", f::Symbol) + r = Ref{var"##Ctag#1075"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1075"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1075"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1076" + signal::hsa_signal_t + handle::Ptr{hsa_amd_ipc_signal_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1076"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :handle && return Ptr{Ptr{hsa_amd_ipc_signal_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1076", f::Symbol) + r = Ref{var"##Ctag#1076"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1076"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1076"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1077" + handle::Ptr{hsa_amd_ipc_signal_t} + signal::Ptr{hsa_signal_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1077"}, f::Symbol) + f === :handle && return Ptr{Ptr{hsa_amd_ipc_signal_t}}(x + 0) + f === :signal && return Ptr{Ptr{hsa_signal_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1077", f::Symbol) + r = Ref{var"##Ctag#1077"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1077"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1077"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1078" + callback::hsa_amd_system_event_callback_t + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1078"}, f::Symbol) + f === :callback && return Ptr{hsa_amd_system_event_callback_t}(x + 0) + f === :data && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1078", f::Symbol) + r = Ref{var"##Ctag#1078"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1078"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1078"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1079" + agent_handle::hsa_agent_t + size::UInt32 + type::hsa_queue_type32_t + callback::Ptr{Cvoid} + data::Ptr{Cvoid} + private_segment_size::UInt32 + group_segment_size::UInt32 + queue::Ptr{Ptr{hsa_queue_t}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1079"}, f::Symbol) + f === :agent_handle && return Ptr{hsa_agent_t}(x + 0) + f === :size && return Ptr{UInt32}(x + 8) + f === :type && return Ptr{hsa_queue_type32_t}(x + 12) + f === :callback && return Ptr{Ptr{Cvoid}}(x + 16) + f === :data && return Ptr{Ptr{Cvoid}}(x + 24) + f === :private_segment_size && return Ptr{UInt32}(x + 32) + f === :group_segment_size && return Ptr{UInt32}(x + 36) + f === :queue && return Ptr{Ptr{Ptr{hsa_queue_t}}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1079", f::Symbol) + r = Ref{var"##Ctag#1079"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1079"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1079"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1080" + queue::Ptr{hsa_queue_t} + callback::hsa_amd_queue_intercept_handler + user_data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1080"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :callback && return Ptr{hsa_amd_queue_intercept_handler}(x + 8) + f === :user_data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1080", f::Symbol) + r = Ref{var"##Ctag#1080"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1080"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1080"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1081" + queue::Ptr{hsa_queue_t} + priority::hsa_amd_queue_priority_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1081"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :priority && return Ptr{hsa_amd_queue_priority_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1081", f::Symbol) + r = Ref{var"##Ctag#1081"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1081"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1081"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1082" + dst::Ptr{hsa_pitched_ptr_t} + dst_offset::Ptr{hsa_dim3_t} + src::Ptr{hsa_pitched_ptr_t} + src_offset::Ptr{hsa_dim3_t} + range::Ptr{hsa_dim3_t} + copy_agent::hsa_agent_t + dir::hsa_amd_copy_direction_t + num_dep_signals::UInt32 + dep_signals::Ptr{hsa_signal_t} + completion_signal::hsa_signal_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1082"}, f::Symbol) + f === :dst && return Ptr{Ptr{hsa_pitched_ptr_t}}(x + 0) + f === :dst_offset && return Ptr{Ptr{hsa_dim3_t}}(x + 8) + f === :src && return Ptr{Ptr{hsa_pitched_ptr_t}}(x + 16) + f === :src_offset && return Ptr{Ptr{hsa_dim3_t}}(x + 24) + f === :range && return Ptr{Ptr{hsa_dim3_t}}(x + 32) + f === :copy_agent && return Ptr{hsa_agent_t}(x + 40) + f === :dir && return Ptr{hsa_amd_copy_direction_t}(x + 48) + f === :num_dep_signals && return Ptr{UInt32}(x + 52) + f === :dep_signals && return Ptr{Ptr{hsa_signal_t}}(x + 56) + f === :completion_signal && return Ptr{hsa_signal_t}(x + 64) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1082", f::Symbol) + r = Ref{var"##Ctag#1082"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1082"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1082"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1083" + callback::hsa_amd_runtime_queue_notifier + user_data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1083"}, f::Symbol) + f === :callback && return Ptr{hsa_amd_runtime_queue_notifier}(x + 0) + f === :user_data && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1083", f::Symbol) + r = Ref{var"##Ctag#1083"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1083"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1083"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1084" + host_ptr::Ptr{Cvoid} + size::Csize_t + agents::Ptr{hsa_agent_t} + num_agent::Cint + pool::hsa_amd_memory_pool_t + flags::UInt32 + agent_ptr::Ptr{Ptr{Cvoid}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1084"}, f::Symbol) + f === :host_ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :agents && return Ptr{Ptr{hsa_agent_t}}(x + 16) + f === :num_agent && return Ptr{Cint}(x + 24) + f === :pool && return Ptr{hsa_amd_memory_pool_t}(x + 32) + f === :flags && return Ptr{UInt32}(x + 40) + f === :agent_ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1084", f::Symbol) + r = Ref{var"##Ctag#1084"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1084"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1084"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1085" + ptr::Ptr{Cvoid} + callback::hsa_amd_deallocation_callback_t + user_data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1085"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :callback && return Ptr{hsa_amd_deallocation_callback_t}(x + 8) + f === :user_data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1085", f::Symbol) + r = Ref{var"##Ctag#1085"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1085"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1085"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1086" + ptr::Ptr{Cvoid} + callback::hsa_amd_deallocation_callback_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1086"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :callback && return Ptr{hsa_amd_deallocation_callback_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1086", f::Symbol) + r = Ref{var"##Ctag#1086"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1086"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1086"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1087" + signal::hsa_signal_t + value_ptr::Ptr{Ptr{hsa_signal_value_t}} +end +function Base.getproperty(x::Ptr{var"##Ctag#1087"}, f::Symbol) + f === :signal && return Ptr{hsa_signal_t}(x + 0) + f === :value_ptr && return Ptr{Ptr{Ptr{hsa_signal_value_t}}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1087", f::Symbol) + r = Ref{var"##Ctag#1087"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1087"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1087"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1088" + ptr::Ptr{Cvoid} + size::Csize_t + attribute_list::Ptr{hsa_amd_svm_attribute_pair_t} + attribute_count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1088"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :attribute_list && return Ptr{Ptr{hsa_amd_svm_attribute_pair_t}}(x + 16) + f === :attribute_count && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1088", f::Symbol) + r = Ref{var"##Ctag#1088"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1088"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1088"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1089" + ptr::Ptr{Cvoid} + size::Csize_t + attribute_list::Ptr{hsa_amd_svm_attribute_pair_t} + attribute_count::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1089"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :attribute_list && return Ptr{Ptr{hsa_amd_svm_attribute_pair_t}}(x + 16) + f === :attribute_count && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1089", f::Symbol) + r = Ref{var"##Ctag#1089"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1089"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1089"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1090" + ptr::Ptr{Cvoid} + size::Csize_t + agent::hsa_agent_t + num_dep_signals::UInt32 + dep_signals::Ptr{hsa_signal_t} + completion_signal::hsa_signal_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1090"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :agent && return Ptr{hsa_agent_t}(x + 16) + f === :num_dep_signals && return Ptr{UInt32}(x + 24) + f === :dep_signals && return Ptr{Ptr{hsa_signal_t}}(x + 32) + f === :completion_signal && return Ptr{hsa_signal_t}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1090", f::Symbol) + r = Ref{var"##Ctag#1090"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1090"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1090"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1091" + preferred_agent::hsa_agent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1091"}, f::Symbol) + f === :preferred_agent && return Ptr{hsa_agent_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1091", f::Symbol) + r = Ref{var"##Ctag#1091"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1091"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1091"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1092" + preferred_agent::hsa_agent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1092"}, f::Symbol) + f === :preferred_agent && return Ptr{hsa_agent_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1092", f::Symbol) + r = Ref{var"##Ctag#1092"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1092"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1092"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1093" + preferred_agent::hsa_agent_t + size_in_bytes::Csize_t + timeout::Ptr{UInt32} + size_copied::Ptr{UInt32} + dest::Ptr{Cvoid} + is_data_loss::Ptr{Bool} +end +function Base.getproperty(x::Ptr{var"##Ctag#1093"}, f::Symbol) + f === :preferred_agent && return Ptr{hsa_agent_t}(x + 0) + f === :size_in_bytes && return Ptr{Csize_t}(x + 8) + f === :timeout && return Ptr{Ptr{UInt32}}(x + 16) + f === :size_copied && return Ptr{Ptr{UInt32}}(x + 24) + f === :dest && return Ptr{Ptr{Cvoid}}(x + 32) + f === :is_data_loss && return Ptr{Ptr{Bool}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1093", f::Symbol) + r = Ref{var"##Ctag#1093"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1093"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1093"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1094" + queue::Ptr{hsa_queue_t} + num_cu_mask_count::UInt32 + cu_mask::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#1094"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :num_cu_mask_count && return Ptr{UInt32}(x + 8) + f === :cu_mask && return Ptr{Ptr{UInt32}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1094", f::Symbol) + r = Ref{var"##Ctag#1094"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1094"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1094"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1095" + ptr::Ptr{Cvoid} + size::Csize_t + dmabuf::Ptr{Cint} + offset::Ptr{UInt64} +end +function Base.getproperty(x::Ptr{var"##Ctag#1095"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :dmabuf && return Ptr{Ptr{Cint}}(x + 16) + f === :offset && return Ptr{Ptr{UInt64}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1095", f::Symbol) + r = Ref{var"##Ctag#1095"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1095"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1095"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1096" + dmabuf::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#1096"}, f::Symbol) + f === :dmabuf && return Ptr{Cint}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1096", f::Symbol) + r = Ref{var"##Ctag#1096"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1096"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1096"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1097" + agent::hsa_agent_t + geometry::hsa_ext_image_geometry_t + image_format::Ptr{hsa_ext_image_format_t} + capability_mask::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#1097"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :geometry && return Ptr{hsa_ext_image_geometry_t}(x + 8) + f === :image_format && return Ptr{Ptr{hsa_ext_image_format_t}}(x + 16) + f === :capability_mask && return Ptr{Ptr{UInt32}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1097", f::Symbol) + r = Ref{var"##Ctag#1097"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1097"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1097"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1098" + agent::hsa_agent_t + image_descriptor::Ptr{hsa_ext_image_descriptor_t} + access_permission::hsa_access_permission_t + image_data_info::Ptr{hsa_ext_image_data_info_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1098"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :image_descriptor && return Ptr{Ptr{hsa_ext_image_descriptor_t}}(x + 8) + f === :access_permission && return Ptr{hsa_access_permission_t}(x + 16) + f === :image_data_info && return Ptr{Ptr{hsa_ext_image_data_info_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1098", f::Symbol) + r = Ref{var"##Ctag#1098"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1098"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1098"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1099" + agent::hsa_agent_t + image_descriptor::Ptr{hsa_ext_image_descriptor_t} + image_data::Ptr{Cvoid} + access_permission::hsa_access_permission_t + image::Ptr{hsa_ext_image_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1099"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :image_descriptor && return Ptr{Ptr{hsa_ext_image_descriptor_t}}(x + 8) + f === :image_data && return Ptr{Ptr{Cvoid}}(x + 16) + f === :access_permission && return Ptr{hsa_access_permission_t}(x + 24) + f === :image && return Ptr{Ptr{hsa_ext_image_t}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1099", f::Symbol) + r = Ref{var"##Ctag#1099"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1099"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1099"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1100" + agent::hsa_agent_t + src_memory::Ptr{Cvoid} + src_row_pitch::Csize_t + src_slice_pitch::Csize_t + dst_image::hsa_ext_image_t + image_region::Ptr{hsa_ext_image_region_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1100"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :src_memory && return Ptr{Ptr{Cvoid}}(x + 8) + f === :src_row_pitch && return Ptr{Csize_t}(x + 16) + f === :src_slice_pitch && return Ptr{Csize_t}(x + 24) + f === :dst_image && return Ptr{hsa_ext_image_t}(x + 32) + f === :image_region && return Ptr{Ptr{hsa_ext_image_region_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1100", f::Symbol) + r = Ref{var"##Ctag#1100"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1100"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1100"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1101" + agent::hsa_agent_t + src_image::hsa_ext_image_t + dst_memory::Ptr{Cvoid} + dst_row_pitch::Csize_t + dst_slice_pitch::Csize_t + image_region::Ptr{hsa_ext_image_region_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1101"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :src_image && return Ptr{hsa_ext_image_t}(x + 8) + f === :dst_memory && return Ptr{Ptr{Cvoid}}(x + 16) + f === :dst_row_pitch && return Ptr{Csize_t}(x + 24) + f === :dst_slice_pitch && return Ptr{Csize_t}(x + 32) + f === :image_region && return Ptr{Ptr{hsa_ext_image_region_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1101", f::Symbol) + r = Ref{var"##Ctag#1101"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1101"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1101"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1102" + agent::hsa_agent_t + src_image::hsa_ext_image_t + src_offset::Ptr{hsa_dim3_t} + dst_image::hsa_ext_image_t + dst_offset::Ptr{hsa_dim3_t} + range::Ptr{hsa_dim3_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1102"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :src_image && return Ptr{hsa_ext_image_t}(x + 8) + f === :src_offset && return Ptr{Ptr{hsa_dim3_t}}(x + 16) + f === :dst_image && return Ptr{hsa_ext_image_t}(x + 24) + f === :dst_offset && return Ptr{Ptr{hsa_dim3_t}}(x + 32) + f === :range && return Ptr{Ptr{hsa_dim3_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1102", f::Symbol) + r = Ref{var"##Ctag#1102"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1102"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1102"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1103" + agent::hsa_agent_t + image::hsa_ext_image_t + data::Ptr{Cvoid} + image_region::Ptr{hsa_ext_image_region_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1103"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :image && return Ptr{hsa_ext_image_t}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + f === :image_region && return Ptr{Ptr{hsa_ext_image_region_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1103", f::Symbol) + r = Ref{var"##Ctag#1103"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1103"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1103"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1104" + agent::hsa_agent_t + image::hsa_ext_image_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1104"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :image && return Ptr{hsa_ext_image_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1104", f::Symbol) + r = Ref{var"##Ctag#1104"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1104"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1104"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1105" + agent::hsa_agent_t + sampler_descriptor::Ptr{hsa_ext_sampler_descriptor_t} + sampler::Ptr{hsa_ext_sampler_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1105"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :sampler_descriptor && return Ptr{Ptr{hsa_ext_sampler_descriptor_t}}(x + 8) + f === :sampler && return Ptr{Ptr{hsa_ext_sampler_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1105", f::Symbol) + r = Ref{var"##Ctag#1105"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1105"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1105"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1106" + agent::hsa_agent_t + sampler::hsa_ext_sampler_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1106"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :sampler && return Ptr{hsa_ext_sampler_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1106", f::Symbol) + r = Ref{var"##Ctag#1106"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1106"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1106"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1107" + agent::hsa_agent_t + geometry::hsa_ext_image_geometry_t + image_format::Ptr{hsa_ext_image_format_t} + image_data_layout::hsa_ext_image_data_layout_t + capability_mask::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#1107"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :geometry && return Ptr{hsa_ext_image_geometry_t}(x + 8) + f === :image_format && return Ptr{Ptr{hsa_ext_image_format_t}}(x + 16) + f === :image_data_layout && return Ptr{hsa_ext_image_data_layout_t}(x + 24) + f === :capability_mask && return Ptr{Ptr{UInt32}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1107", f::Symbol) + r = Ref{var"##Ctag#1107"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1107"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1107"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1108" + agent::hsa_agent_t + image_descriptor::Ptr{hsa_ext_image_descriptor_t} + access_permission::hsa_access_permission_t + image_data_layout::hsa_ext_image_data_layout_t + image_data_row_pitch::Csize_t + image_data_slice_pitch::Csize_t + image_data_info::Ptr{hsa_ext_image_data_info_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1108"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :image_descriptor && return Ptr{Ptr{hsa_ext_image_descriptor_t}}(x + 8) + f === :access_permission && return Ptr{hsa_access_permission_t}(x + 16) + f === :image_data_layout && return Ptr{hsa_ext_image_data_layout_t}(x + 20) + f === :image_data_row_pitch && return Ptr{Csize_t}(x + 24) + f === :image_data_slice_pitch && return Ptr{Csize_t}(x + 32) + f === :image_data_info && return Ptr{Ptr{hsa_ext_image_data_info_t}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1108", f::Symbol) + r = Ref{var"##Ctag#1108"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1108"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1108"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1109" + agent::hsa_agent_t + image_descriptor::Ptr{hsa_ext_image_descriptor_t} + image_data::Ptr{Cvoid} + access_permission::hsa_access_permission_t + image_data_layout::hsa_ext_image_data_layout_t + image_data_row_pitch::Csize_t + image_data_slice_pitch::Csize_t + image::Ptr{hsa_ext_image_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1109"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :image_descriptor && return Ptr{Ptr{hsa_ext_image_descriptor_t}}(x + 8) + f === :image_data && return Ptr{Ptr{Cvoid}}(x + 16) + f === :access_permission && return Ptr{hsa_access_permission_t}(x + 24) + f === :image_data_layout && return Ptr{hsa_ext_image_data_layout_t}(x + 28) + f === :image_data_row_pitch && return Ptr{Csize_t}(x + 32) + f === :image_data_slice_pitch && return Ptr{Csize_t}(x + 40) + f === :image && return Ptr{Ptr{hsa_ext_image_t}}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1109", f::Symbol) + r = Ref{var"##Ctag#1109"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1109"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1109"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1110" + machine_model::hsa_machine_model_t + profile::hsa_profile_t + default_float_rounding_mode::hsa_default_float_rounding_mode_t + options::Ptr{Cchar} + program::Ptr{hsa_ext_program_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1110"}, f::Symbol) + f === :machine_model && return Ptr{hsa_machine_model_t}(x + 0) + f === :profile && return Ptr{hsa_profile_t}(x + 4) + f === :default_float_rounding_mode && + return Ptr{hsa_default_float_rounding_mode_t}(x + 8) + f === :options && return Ptr{Ptr{Cchar}}(x + 16) + f === :program && return Ptr{Ptr{hsa_ext_program_t}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1110", f::Symbol) + r = Ref{var"##Ctag#1110"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1110"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1110"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1111" + program::hsa_ext_program_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1111"}, f::Symbol) + f === :program && return Ptr{hsa_ext_program_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1111", f::Symbol) + r = Ref{var"##Ctag#1111"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1111"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1111"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1112" + program::hsa_ext_program_t + _module::hsa_ext_module_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1112"}, f::Symbol) + f === :program && return Ptr{hsa_ext_program_t}(x + 0) + f === :_module && return Ptr{hsa_ext_module_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1112", f::Symbol) + r = Ref{var"##Ctag#1112"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1112"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1112"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1113" + program::hsa_ext_program_t + callback::hsa_ext_program_iterate_modules_cb_t + data::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1113"}, f::Symbol) + f === :program && return Ptr{hsa_ext_program_t}(x + 0) + f === :callback && return Ptr{hsa_ext_program_iterate_modules_cb_t}(x + 8) + f === :data && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1113", f::Symbol) + r = Ref{var"##Ctag#1113"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1113"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1113"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1114" + program::hsa_ext_program_t + attribute::hsa_ext_program_info_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1114"}, f::Symbol) + f === :program && return Ptr{hsa_ext_program_t}(x + 0) + f === :attribute && return Ptr{hsa_ext_program_info_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1114", f::Symbol) + r = Ref{var"##Ctag#1114"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1114"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1114"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1115" + program::hsa_ext_program_t + isa::hsa_isa_t + call_convention::Int32 + control_directives::hsa_ext_control_directives_t + options::Ptr{Cchar} + code_object_type::hsa_code_object_type_t + code_object::Ptr{hsa_code_object_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1115"}, f::Symbol) + f === :program && return Ptr{hsa_ext_program_t}(x + 0) + f === :isa && return Ptr{hsa_isa_t}(x + 8) + f === :call_convention && return Ptr{Int32}(x + 16) + f === :control_directives && return Ptr{hsa_ext_control_directives_t}(x + 24) + f === :options && return Ptr{Ptr{Cchar}}(x + 168) + f === :code_object_type && return Ptr{hsa_code_object_type_t}(x + 176) + f === :code_object && return Ptr{Ptr{hsa_code_object_t}}(x + 184) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1115", f::Symbol) + r = Ref{var"##Ctag#1115"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1115"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1115"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1116" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t + address::UInt64 + flags::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#1116"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :address && return Ptr{UInt64}(x + 16) + f === :flags && return Ptr{UInt64}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1116", f::Symbol) + r = Ref{var"##Ctag#1116"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1116"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1116"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1117" + ptr::Ptr{Cvoid} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1117"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1117", f::Symbol) + r = Ref{var"##Ctag#1117"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1117"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1117"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1118" + pool::hsa_amd_memory_pool_t + size::Csize_t + type::hsa_amd_memory_type_t + flags::UInt64 + memory_handle::Ptr{hsa_amd_vmem_alloc_handle_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1118"}, f::Symbol) + f === :pool && return Ptr{hsa_amd_memory_pool_t}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :type && return Ptr{hsa_amd_memory_type_t}(x + 16) + f === :flags && return Ptr{UInt64}(x + 24) + f === :memory_handle && return Ptr{Ptr{hsa_amd_vmem_alloc_handle_t}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1118", f::Symbol) + r = Ref{var"##Ctag#1118"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1118"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1118"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1119" + memory_handle::hsa_amd_vmem_alloc_handle_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1119"}, f::Symbol) + f === :memory_handle && return Ptr{hsa_amd_vmem_alloc_handle_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1119", f::Symbol) + r = Ref{var"##Ctag#1119"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1119"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1119"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1120" + va::Ptr{Cvoid} + size::Csize_t + in_offset::Csize_t + memory_handle::hsa_amd_vmem_alloc_handle_t + flags::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#1120"}, f::Symbol) + f === :va && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :in_offset && return Ptr{Csize_t}(x + 16) + f === :memory_handle && return Ptr{hsa_amd_vmem_alloc_handle_t}(x + 24) + f === :flags && return Ptr{UInt64}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1120", f::Symbol) + r = Ref{var"##Ctag#1120"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1120"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1120"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1121" + va::Ptr{Cvoid} + size::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1121"}, f::Symbol) + f === :va && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1121", f::Symbol) + r = Ref{var"##Ctag#1121"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1121"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1121"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1122" + va::Ptr{Cvoid} + size::Csize_t + desc::Ptr{hsa_amd_memory_access_desc_t} + desc_cnt::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1122"}, f::Symbol) + f === :va && return Ptr{Ptr{Cvoid}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :desc && return Ptr{Ptr{hsa_amd_memory_access_desc_t}}(x + 16) + f === :desc_cnt && return Ptr{Csize_t}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1122", f::Symbol) + r = Ref{var"##Ctag#1122"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1122"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1122"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1123" + va::Ptr{Cvoid} + perms::Ptr{hsa_access_permission_t} + agent_handle::hsa_agent_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1123"}, f::Symbol) + f === :va && return Ptr{Ptr{Cvoid}}(x + 0) + f === :perms && return Ptr{Ptr{hsa_access_permission_t}}(x + 8) + f === :agent_handle && return Ptr{hsa_agent_t}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1123", f::Symbol) + r = Ref{var"##Ctag#1123"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1123"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1123"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1124" + dmabuf_fd::Ptr{Cint} + handle::hsa_amd_vmem_alloc_handle_t + flags::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#1124"}, f::Symbol) + f === :dmabuf_fd && return Ptr{Ptr{Cint}}(x + 0) + f === :handle && return Ptr{hsa_amd_vmem_alloc_handle_t}(x + 8) + f === :flags && return Ptr{UInt64}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1124", f::Symbol) + r = Ref{var"##Ctag#1124"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1124"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1124"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1125" + dmabuf_fd::Cint + handle::Ptr{hsa_amd_vmem_alloc_handle_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1125"}, f::Symbol) + f === :dmabuf_fd && return Ptr{Cint}(x + 0) + f === :handle && return Ptr{Ptr{hsa_amd_vmem_alloc_handle_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1125", f::Symbol) + r = Ref{var"##Ctag#1125"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1125"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1125"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1126" + handle::Ptr{hsa_amd_vmem_alloc_handle_t} + addr::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1126"}, f::Symbol) + f === :handle && return Ptr{Ptr{hsa_amd_vmem_alloc_handle_t}}(x + 0) + f === :addr && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1126", f::Symbol) + r = Ref{var"##Ctag#1126"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1126"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1126"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1127" + alloc_handle::hsa_amd_vmem_alloc_handle_t + pool::Ptr{hsa_amd_memory_pool_t} + type::Ptr{hsa_amd_memory_type_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1127"}, f::Symbol) + f === :alloc_handle && return Ptr{hsa_amd_vmem_alloc_handle_t}(x + 0) + f === :pool && return Ptr{Ptr{hsa_amd_memory_pool_t}}(x + 8) + f === :type && return Ptr{Ptr{hsa_amd_memory_type_t}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1127", f::Symbol) + r = Ref{var"##Ctag#1127"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1127"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1127"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1128" + agent::hsa_agent_t + threshold::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1128"}, f::Symbol) + f === :agent && return Ptr{hsa_agent_t}(x + 0) + f === :threshold && return Ptr{Csize_t}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1128", f::Symbol) + r = Ref{var"##Ctag#1128"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1128"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1128"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1129" + queue::Ptr{hsa_queue_t} + attribute::hsa_queue_info_attribute_t + value::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1129"}, f::Symbol) + f === :queue && return Ptr{Ptr{hsa_queue_t}}(x + 0) + f === :attribute && return Ptr{hsa_queue_info_attribute_t}(x + 8) + f === :value && return Ptr{Ptr{Cvoid}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1129", f::Symbol) + r = Ref{var"##Ctag#1129"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1129"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1129"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1130" + ptr::Ptr{Ptr{Cvoid}} + size::Csize_t + address::UInt64 + alignment::UInt64 + flags::UInt64 +end +function Base.getproperty(x::Ptr{var"##Ctag#1130"}, f::Symbol) + f === :ptr && return Ptr{Ptr{Ptr{Cvoid}}}(x + 0) + f === :size && return Ptr{Csize_t}(x + 8) + f === :address && return Ptr{UInt64}(x + 16) + f === :alignment && return Ptr{UInt64}(x + 24) + f === :flags && return Ptr{UInt64}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1130", f::Symbol) + r = Ref{var"##Ctag#1130"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1130"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1130"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1131" + flags::Ptr{UInt8} + file::Ptr{Cvoid} +end +function Base.getproperty(x::Ptr{var"##Ctag#1131"}, f::Symbol) + f === :flags && return Ptr{Ptr{UInt8}}(x + 0) + f === :file && return Ptr{Ptr{Cvoid}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1131", f::Symbol) + r = Ref{var"##Ctag#1131"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1131"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1131"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1132" + signal_count::UInt32 + signals::Ptr{hsa_signal_t} + conds::Ptr{hsa_signal_condition_t} + values::Ptr{hsa_signal_value_t} + timeout_hint::UInt64 + wait_hint::hsa_wait_state_t + satisfying_values::Ptr{hsa_signal_value_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1132"}, f::Symbol) + f === :signal_count && return Ptr{UInt32}(x + 0) + f === :signals && return Ptr{Ptr{hsa_signal_t}}(x + 8) + f === :conds && return Ptr{Ptr{hsa_signal_condition_t}}(x + 16) + f === :values && return Ptr{Ptr{hsa_signal_value_t}}(x + 24) + f === :timeout_hint && return Ptr{UInt64}(x + 32) + f === :wait_hint && return Ptr{hsa_wait_state_t}(x + 40) + f === :satisfying_values && return Ptr{Ptr{hsa_signal_value_t}}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1132", f::Symbol) + r = Ref{var"##Ctag#1132"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1132"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1132"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1133" + dst_agent::hsa_agent_t + src_agent::hsa_agent_t + recommended_ids_mask::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#1133"}, f::Symbol) + f === :dst_agent && return Ptr{hsa_agent_t}(x + 0) + f === :src_agent && return Ptr{hsa_agent_t}(x + 8) + f === :recommended_ids_mask && return Ptr{Ptr{UInt32}}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1133", f::Symbol) + r = Ref{var"##Ctag#1133"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1133"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1133"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1136" + array::hipArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1136"}, f::Symbol) + f === :array && return Ptr{hipArray_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1136", f::Symbol) + r = Ref{var"##Ctag#1136"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1136"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1136"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1137" + mipmap::hipMipmappedArray_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1137"}, f::Symbol) + f === :mipmap && return Ptr{hipMipmappedArray_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1137", f::Symbol) + r = Ref{var"##Ctag#1137"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1137"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1137"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1138" + devPtr::Ptr{Cvoid} + desc::hipChannelFormatDesc + sizeInBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1138"}, f::Symbol) + f === :devPtr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :desc && return Ptr{hipChannelFormatDesc}(x + 8) + f === :sizeInBytes && return Ptr{Csize_t}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1138", f::Symbol) + r = Ref{var"##Ctag#1138"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1138"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1138"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1139" + devPtr::Ptr{Cvoid} + desc::hipChannelFormatDesc + width::Csize_t + height::Csize_t + pitchInBytes::Csize_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1139"}, f::Symbol) + f === :devPtr && return Ptr{Ptr{Cvoid}}(x + 0) + f === :desc && return Ptr{hipChannelFormatDesc}(x + 8) + f === :width && return Ptr{Csize_t}(x + 32) + f === :height && return Ptr{Csize_t}(x + 40) + f === :pitchInBytes && return Ptr{Csize_t}(x + 48) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1139", f::Symbol) + r = Ref{var"##Ctag#1139"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1139"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1139"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1140" + message::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#1140"}, f::Symbol) + f === :message && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1140", f::Symbol) + r = Ref{var"##Ctag#1140"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1140"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1140"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1141" + message::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#1141"}, f::Symbol) + f === :message && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1141", f::Symbol) + r = Ref{var"##Ctag#1141"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1141"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1141"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1142" + no_args::rocprofiler_marker_api_no_args +end +function Base.getproperty(x::Ptr{var"##Ctag#1142"}, f::Symbol) + f === :no_args && return Ptr{rocprofiler_marker_api_no_args}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1142", f::Symbol) + r = Ref{var"##Ctag#1142"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1142"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1142"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1143" + message::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#1143"}, f::Symbol) + f === :message && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1143", f::Symbol) + r = Ref{var"##Ctag#1143"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1143"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1143"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1144" + id::roctx_range_id_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1144"}, f::Symbol) + f === :id && return Ptr{roctx_range_id_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1144", f::Symbol) + r = Ref{var"##Ctag#1144"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1144"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1144"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1145" + tid::Ptr{roctx_thread_id_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1145"}, f::Symbol) + f === :tid && return Ptr{Ptr{roctx_thread_id_t}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1145", f::Symbol) + r = Ref{var"##Ctag#1145"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1145"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1145"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1146" + tid::roctx_thread_id_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1146"}, f::Symbol) + f === :tid && return Ptr{roctx_thread_id_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1146", f::Symbol) + r = Ref{var"##Ctag#1146"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1146"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1146"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1147" + tid::roctx_thread_id_t +end +function Base.getproperty(x::Ptr{var"##Ctag#1147"}, f::Symbol) + f === :tid && return Ptr{roctx_thread_id_t}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1147", f::Symbol) + r = Ref{var"##Ctag#1147"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1147"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1147"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1148" + name::Ptr{Cchar} +end +function Base.getproperty(x::Ptr{var"##Ctag#1148"}, f::Symbol) + f === :name && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1148", f::Symbol) + r = Ref{var"##Ctag#1148"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1148"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1148"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1149" + name::Ptr{Cchar} + agent::Ptr{hsa_agent_s} +end +function Base.getproperty(x::Ptr{var"##Ctag#1149"}, f::Symbol) + f === :name && return Ptr{Ptr{Cchar}}(x + 0) + f === :agent && return Ptr{Ptr{hsa_agent_s}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1149", f::Symbol) + r = Ref{var"##Ctag#1149"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1149"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1149"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1150" + name::Ptr{Cchar} + device_id::Cint +end +function Base.getproperty(x::Ptr{var"##Ctag#1150"}, f::Symbol) + f === :name && return Ptr{Ptr{Cchar}}(x + 0) + f === :device_id && return Ptr{Cint}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1150", f::Symbol) + r = Ref{var"##Ctag#1150"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1150"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1150"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1151" + name::Ptr{Cchar} + stream::Ptr{ihipStream_t} +end +function Base.getproperty(x::Ptr{var"##Ctag#1151"}, f::Symbol) + f === :name && return Ptr{Ptr{Cchar}}(x + 0) + f === :stream && return Ptr{Ptr{ihipStream_t}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1151", f::Symbol) + r = Ref{var"##Ctag#1151"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1151"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1151"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1157" + still_picture::UInt32 + use_128x128_superblock::UInt32 + enable_filter_intra::UInt32 + enable_intra_edge_filter::UInt32 + enable_interintra_compound::UInt32 + enable_masked_compound::UInt32 + enable_dual_filter::UInt32 + enable_order_hint::UInt32 + enable_jnt_comp::UInt32 + enable_cdef::UInt32 + mono_chrome::UInt32 + color_range::UInt32 + subsampling_x::UInt32 + subsampling_y::UInt32 + chroma_sample_position::UInt32 + film_grain_params_present::UInt32 + reserved::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#1157"}, f::Symbol) + f === :still_picture && return (Ptr{UInt32}(x + 0), 0, 1) + f === :use_128x128_superblock && return (Ptr{UInt32}(x + 0), 1, 1) + f === :enable_filter_intra && return (Ptr{UInt32}(x + 0), 2, 1) + f === :enable_intra_edge_filter && return (Ptr{UInt32}(x + 0), 3, 1) + f === :enable_interintra_compound && return (Ptr{UInt32}(x + 0), 4, 1) + f === :enable_masked_compound && return (Ptr{UInt32}(x + 0), 5, 1) + f === :enable_dual_filter && return (Ptr{UInt32}(x + 0), 6, 1) + f === :enable_order_hint && return (Ptr{UInt32}(x + 0), 7, 1) + f === :enable_jnt_comp && return (Ptr{UInt32}(x + 0), 8, 1) + f === :enable_cdef && return (Ptr{UInt32}(x + 0), 9, 1) + f === :mono_chrome && return (Ptr{UInt32}(x + 0), 10, 1) + f === :color_range && return (Ptr{UInt32}(x + 0), 11, 1) + f === :subsampling_x && return (Ptr{UInt32}(x + 0), 12, 1) + f === :subsampling_y && return (Ptr{UInt32}(x + 0), 13, 1) + f === :chroma_sample_position && return (Ptr{UInt32}(x + 0), 14, 1) + f === :film_grain_params_present && return (Ptr{UInt32}(x + 0), 15, 1) + f === :reserved && return (Ptr{UInt32}(x + 0), 16, 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1157", f::Symbol) + r = Ref{var"##Ctag#1157"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1157"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1157"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1159" + frame_type::UInt32 + show_frame::UInt32 + showable_frame::UInt32 + error_resilient_mode::UInt32 + disable_cdf_update::UInt32 + allow_screen_content_tools::UInt32 + force_integer_mv::UInt32 + allow_intrabc::UInt32 + use_superres::UInt32 + allow_high_precision_mv::UInt32 + is_motion_mode_switchable::UInt32 + use_ref_frame_mvs::UInt32 + disable_frame_end_update_cdf::UInt32 + uniform_tile_spacing_flag::UInt32 + allow_warped_motion::UInt32 + large_scale_tile::UInt32 + reserved::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#1159"}, f::Symbol) + f === :frame_type && return (Ptr{UInt32}(x + 0), 0, 2) + f === :show_frame && return (Ptr{UInt32}(x + 0), 2, 1) + f === :showable_frame && return (Ptr{UInt32}(x + 0), 3, 1) + f === :error_resilient_mode && return (Ptr{UInt32}(x + 0), 4, 1) + f === :disable_cdf_update && return (Ptr{UInt32}(x + 0), 5, 1) + f === :allow_screen_content_tools && return (Ptr{UInt32}(x + 0), 6, 1) + f === :force_integer_mv && return (Ptr{UInt32}(x + 0), 7, 1) + f === :allow_intrabc && return (Ptr{UInt32}(x + 0), 8, 1) + f === :use_superres && return (Ptr{UInt32}(x + 0), 9, 1) + f === :allow_high_precision_mv && return (Ptr{UInt32}(x + 0), 10, 1) + f === :is_motion_mode_switchable && return (Ptr{UInt32}(x + 0), 11, 1) + f === :use_ref_frame_mvs && return (Ptr{UInt32}(x + 0), 12, 1) + f === :disable_frame_end_update_cdf && return (Ptr{UInt32}(x + 0), 13, 1) + f === :uniform_tile_spacing_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :allow_warped_motion && return (Ptr{UInt32}(x + 0), 15, 1) + f === :large_scale_tile && return (Ptr{UInt32}(x + 0), 16, 1) + f === :reserved && return (Ptr{UInt32}(x + 0), 17, 15) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1159", f::Symbol) + r = Ref{var"##Ctag#1159"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1159"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1159"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1161" + sharpness_level::UInt8 + mode_ref_delta_enabled::UInt8 + mode_ref_delta_update::UInt8 + reserved::UInt8 +end +function Base.getproperty(x::Ptr{var"##Ctag#1161"}, f::Symbol) + f === :sharpness_level && return (Ptr{UInt8}(x + 0), 0, 3) + f === :mode_ref_delta_enabled && return (Ptr{UInt8}(x + 0), 3, 1) + f === :mode_ref_delta_update && return (Ptr{UInt8}(x + 0), 4, 1) + f === :reserved && return (Ptr{UInt8}(x + 0), 5, 3) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1161", f::Symbol) + r = Ref{var"##Ctag#1161"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1161"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1161"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1163" + using_qmatrix::UInt16 + qm_y::UInt16 + qm_u::UInt16 + qm_v::UInt16 + reserved::UInt16 +end +function Base.getproperty(x::Ptr{var"##Ctag#1163"}, f::Symbol) + f === :using_qmatrix && return (Ptr{UInt16}(x + 0), 0, 1) + f === :qm_y && return (Ptr{UInt16}(x + 0), 1, 4) + f === :qm_u && return (Ptr{UInt16}(x + 0), 5, 4) + f === :qm_v && return (Ptr{UInt16}(x + 0), 9, 4) + f === :reserved && return (Ptr{UInt16}(x + 0), 13, 3) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1163", f::Symbol) + r = Ref{var"##Ctag#1163"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1163"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1163"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1165" + delta_q_present_flag::UInt32 + log2_delta_q_res::UInt32 + delta_lf_present_flag::UInt32 + log2_delta_lf_res::UInt32 + delta_lf_multi::UInt32 + tx_mode::UInt32 + reference_select::UInt32 + reduced_tx_set_used::UInt32 + skip_mode_present::UInt32 + reserved::UInt32 +end +function Base.getproperty(x::Ptr{var"##Ctag#1165"}, f::Symbol) + f === :delta_q_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :log2_delta_q_res && return (Ptr{UInt32}(x + 0), 1, 2) + f === :delta_lf_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :log2_delta_lf_res && return (Ptr{UInt32}(x + 0), 4, 2) + f === :delta_lf_multi && return (Ptr{UInt32}(x + 0), 6, 1) + f === :tx_mode && return (Ptr{UInt32}(x + 0), 7, 2) + f === :reference_select && return (Ptr{UInt32}(x + 0), 9, 1) + f === :reduced_tx_set_used && return (Ptr{UInt32}(x + 0), 10, 1) + f === :skip_mode_present && return (Ptr{UInt32}(x + 0), 11, 1) + f === :reserved && return (Ptr{UInt32}(x + 0), 12, 20) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1165", f::Symbol) + r = Ref{var"##Ctag#1165"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1165"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1165"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1167" + yframe_restoration_type::UInt16 + cbframe_restoration_type::UInt16 + crframe_restoration_type::UInt16 + lr_unit_shift::UInt16 + lr_uv_shift::UInt16 + reserved::UInt16 +end +function Base.getproperty(x::Ptr{var"##Ctag#1167"}, f::Symbol) + f === :yframe_restoration_type && return (Ptr{UInt16}(x + 0), 0, 2) + f === :cbframe_restoration_type && return (Ptr{UInt16}(x + 0), 2, 2) + f === :crframe_restoration_type && return (Ptr{UInt16}(x + 0), 4, 2) + f === :lr_unit_shift && return (Ptr{UInt16}(x + 0), 6, 2) + f === :lr_uv_shift && return (Ptr{UInt16}(x + 0), 8, 1) + f === :reserved && return (Ptr{UInt16}(x + 0), 9, 7) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1167", f::Symbol) + r = Ref{var"##Ctag#1167"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1167"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1167"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1170" + jpeg_stream_handle::Ptr{RocJpegStreamHandle} +end +function Base.getproperty(x::Ptr{var"##Ctag#1170"}, f::Symbol) + f === :jpeg_stream_handle && return Ptr{Ptr{RocJpegStreamHandle}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1170", f::Symbol) + r = Ref{var"##Ctag#1170"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1170"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1170"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1171" + data::Ptr{Cuchar} + length::Csize_t + jpeg_stream_handle::RocJpegStreamHandle +end +function Base.getproperty(x::Ptr{var"##Ctag#1171"}, f::Symbol) + f === :data && return Ptr{Ptr{Cuchar}}(x + 0) + f === :length && return Ptr{Csize_t}(x + 8) + f === :jpeg_stream_handle && return Ptr{RocJpegStreamHandle}(x + 16) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1171", f::Symbol) + r = Ref{var"##Ctag#1171"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1171"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1171"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1172" + jpeg_stream_handle::RocJpegStreamHandle +end +function Base.getproperty(x::Ptr{var"##Ctag#1172"}, f::Symbol) + f === :jpeg_stream_handle && return Ptr{RocJpegStreamHandle}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1172", f::Symbol) + r = Ref{var"##Ctag#1172"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1172"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1172"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1173" + backend::RocJpegBackend + device_id::Cint + handle::Ptr{RocJpegHandle} +end +function Base.getproperty(x::Ptr{var"##Ctag#1173"}, f::Symbol) + f === :backend && return Ptr{RocJpegBackend}(x + 0) + f === :device_id && return Ptr{Cint}(x + 4) + f === :handle && return Ptr{Ptr{RocJpegHandle}}(x + 8) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1173", f::Symbol) + r = Ref{var"##Ctag#1173"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1173"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1173"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1174" + handle::RocJpegHandle +end +function Base.getproperty(x::Ptr{var"##Ctag#1174"}, f::Symbol) + f === :handle && return Ptr{RocJpegHandle}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1174", f::Symbol) + r = Ref{var"##Ctag#1174"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1174"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1174"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1175" + handle::RocJpegHandle + jpeg_stream_handle::RocJpegStreamHandle + num_components::Ptr{UInt8} + subsampling::Ptr{RocJpegChromaSubsampling} + widths::Ptr{UInt32} + heights::Ptr{UInt32} +end +function Base.getproperty(x::Ptr{var"##Ctag#1175"}, f::Symbol) + f === :handle && return Ptr{RocJpegHandle}(x + 0) + f === :jpeg_stream_handle && return Ptr{RocJpegStreamHandle}(x + 8) + f === :num_components && return Ptr{Ptr{UInt8}}(x + 16) + f === :subsampling && return Ptr{Ptr{RocJpegChromaSubsampling}}(x + 24) + f === :widths && return Ptr{Ptr{UInt32}}(x + 32) + f === :heights && return Ptr{Ptr{UInt32}}(x + 40) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1175", f::Symbol) + r = Ref{var"##Ctag#1175"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1175"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1175"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1176" + handle::RocJpegHandle + jpeg_stream_handle::RocJpegStreamHandle + decode_params::Ptr{RocJpegDecodeParams} + destination::Ptr{RocJpegImage} +end +function Base.getproperty(x::Ptr{var"##Ctag#1176"}, f::Symbol) + f === :handle && return Ptr{RocJpegHandle}(x + 0) + f === :jpeg_stream_handle && return Ptr{RocJpegStreamHandle}(x + 8) + f === :decode_params && return Ptr{Ptr{RocJpegDecodeParams}}(x + 16) + f === :destination && return Ptr{Ptr{RocJpegImage}}(x + 24) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1176", f::Symbol) + r = Ref{var"##Ctag#1176"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1176"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1176"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1177" + handle::RocJpegHandle + jpeg_stream_handles::Ptr{RocJpegStreamHandle} + batch_size::Cint + decode_params::Ptr{RocJpegDecodeParams} + destinations::Ptr{RocJpegImage} +end +function Base.getproperty(x::Ptr{var"##Ctag#1177"}, f::Symbol) + f === :handle && return Ptr{RocJpegHandle}(x + 0) + f === :jpeg_stream_handles && return Ptr{Ptr{RocJpegStreamHandle}}(x + 8) + f === :batch_size && return Ptr{Cint}(x + 16) + f === :decode_params && return Ptr{Ptr{RocJpegDecodeParams}}(x + 24) + f === :destinations && return Ptr{Ptr{RocJpegImage}}(x + 32) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1177", f::Symbol) + r = Ref{var"##Ctag#1177"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1177"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1177"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +struct var"##Ctag#1178" + rocjpeg_status::RocJpegStatus +end +function Base.getproperty(x::Ptr{var"##Ctag#1178"}, f::Symbol) + f === :rocjpeg_status && return Ptr{RocJpegStatus}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::var"##Ctag#1178", f::Symbol) + r = Ref{var"##Ctag#1178"}(x) + ptr = Base.unsafe_convert(Ptr{var"##Ctag#1178"}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{var"##Ctag#1178"}, f::Symbol, v) + return unsafe_store!(getproperty(x, f), v) +end + +const ROCPROFILER_SDK_BETA_COMPAT = 1 + +const ROCPROFILER_SDK_BETA_COMPAT_SUPPORTED = 1 + +const ROCPROFILER_CORRELATION_ID_INTERNAL_NONE = ROCPROFILER_UINT64_C(0) + +const ROCPROFILER_CORRELATION_ID_ANCESTOR_NONE = ROCPROFILER_UINT64_C(0) + +const ROCPROFILER_IS_ROCPROFILER_SDK = 1 + +const ROCPROFILER_VERSION_MAJOR = 1 + +const ROCPROFILER_VERSION_MINOR = 0 + +const ROCPROFILER_VERSION_PATCH = 0 + +const ROCPROFILER_SOVERSION = 1 + +const ROCPROFILER_VERSION_STRING = "1.0.0" + +const ROCPROFILER_GIT_DESCRIBE = "" + +const ROCPROFILER_GIT_REVISION = "f0fa9d078ca2dbf15e074abf8f20a4c95b118f30" + +const ROCPROFILER_LIBRARY_ARCH = "" + +const ROCPROFILER_SYSTEM_NAME = "Linux" + +const ROCPROFILER_SYSTEM_PROCESSOR = "x86_64" + +const ROCPROFILER_SYSTEM_VERSION = "6.16.0-0.rc1.250614.4774cfe3.221.vanilla.fc42.x86_64" + +const ROCPROFILER_COMPILER_ID = "GNU" + +const ROCPROFILER_COMPILER_VERSION = "12.2.1" + +const ROCPROFILER_VERSION = 10000ROCPROFILER_VERSION_MAJOR + 100ROCPROFILER_VERSION_MINOR + + ROCPROFILER_VERSION_PATCH + +const HSAKMT_VERSION_MAJOR = 0 + +const HSAKMT_VERSION_MINOR = 99 + +const INVALID_QUEUEID = Culonglong(0xffffffffffffffff) + +const INVALID_PID = 0xffffffff + +const INVALID_NODEID = 0xffffffff + +const HSA_PUBLIC_NAME_SIZE = 64 + +const HSA_CPU_SIBLINGS = 256 + +const HSA_PROCESSORID_ALL = 0xffffffff + +const HSA_RUNTIME_ENABLE_CAPS_SUPPORTS_CORE_DUMP_MASK = 0x80000000 + +const HSA_SMI_EVENT_MSG_SIZE = 96 + +const HIP_VERSION_MAJOR = 6 + +const HIP_VERSION_MINOR = 5 + +const HIP_VERSION_PATCH = 25241 + +const HIP_VERSION_GITHASH = "202eb4033" + +const HIP_VERSION_BUILD_ID = 0 + +const HIP_VERSION_BUILD_NAME = "" + +const HIP_VERSION = HIP_VERSION_MAJOR * 10000000 + HIP_VERSION_MINOR * 100000 + + HIP_VERSION_PATCH + +const __HIP_HAS_GET_PCH = 1 + +# Skipping MacroDefinition: HIP_PUBLIC_API __attribute__ ( ( visibility ( "default" ) ) ) + +# Skipping MacroDefinition: HIP_INTERNAL_EXPORTED_API __attribute__ ( ( visibility ( "default" ) ) ) + +const __HIP_ARCH_HAS_GLOBAL_INT32_ATOMICS__ = 0 + +const __HIP_ARCH_HAS_GLOBAL_FLOAT_ATOMIC_EXCH__ = 0 + +const __HIP_ARCH_HAS_SHARED_INT32_ATOMICS__ = 0 + +const __HIP_ARCH_HAS_SHARED_FLOAT_ATOMIC_EXCH__ = 0 + +const __HIP_ARCH_HAS_FLOAT_ATOMIC_ADD__ = 0 + +const __HIP_ARCH_HAS_GLOBAL_INT64_ATOMICS__ = 0 + +const __HIP_ARCH_HAS_SHARED_INT64_ATOMICS__ = 0 + +const __HIP_ARCH_HAS_DOUBLES__ = 0 + +const __HIP_ARCH_HAS_WARP_VOTE__ = 0 + +const __HIP_ARCH_HAS_WARP_BALLOT__ = 0 + +const __HIP_ARCH_HAS_WARP_SHUFFLE__ = 0 + +const __HIP_ARCH_HAS_WARP_FUNNEL_SHIFT__ = 0 + +const __HIP_ARCH_HAS_THREAD_FENCE_SYSTEM__ = 0 + +const __HIP_ARCH_HAS_SYNC_THREAD_EXT__ = 0 + +const __HIP_ARCH_HAS_SURFACE_FUNCS__ = 0 + +const __HIP_ARCH_HAS_3DGRID__ = 0 + +const __HIP_ARCH_HAS_DYNAMIC_PARALLEL__ = 0 + +const __HIP_CLANG_ONLY__ = 0 + +const hipGetDeviceProperties = hipGetDevicePropertiesR0600 + +const hipDeviceProp_t = hipDeviceProp_tR0600 + +const hipChooseDevice = hipChooseDeviceR0600 + +const GENERIC_GRID_LAUNCH = 1 + +# Skipping MacroDefinition: __forceinline__ inline + +const HIP_TRSA_OVERRIDE_FORMAT = 0x01 + +const HIP_TRSF_READ_AS_INTEGER = 0x01 + +const HIP_TRSF_NORMALIZED_COORDINATES = 0x02 + +const HIP_TRSF_SRGB = 0x10 + +const __HIP_USE_NATIVE_VECTOR__ = 1 + +const hipTextureType1D = 0x01 + +const hipTextureType2D = 0x02 + +const hipTextureType3D = 0x03 + +const hipTextureTypeCubemap = 0x0c + +const hipTextureType1DLayered = 0xf1 + +const hipTextureType2DLayered = 0xf2 + +const hipTextureTypeCubemapLayered = 0xfc + +const HIP_IMAGE_OBJECT_SIZE_DWORD = 12 + +const HIP_SAMPLER_OBJECT_SIZE_DWORD = 8 + +const HIP_SAMPLER_OBJECT_OFFSET_DWORD = HIP_IMAGE_OBJECT_SIZE_DWORD + +const HIP_TEXTURE_OBJECT_SIZE_DWORD = HIP_IMAGE_OBJECT_SIZE_DWORD + + HIP_SAMPLER_OBJECT_SIZE_DWORD + +const HIP_DEPRECATED_MSG = "This API is marked as deprecated and might not be supported in future releases. For more details please refer https://github.com/ROCm/HIP/blob/develop/docs/reference/deprecated_api_list.md" + +# Skipping MacroDefinition: HIP_LAUNCH_PARAM_BUFFER_POINTER ( ( void * ) 0x01 ) + +# Skipping MacroDefinition: HIP_LAUNCH_PARAM_BUFFER_SIZE ( ( void * ) 0x02 ) + +# Skipping MacroDefinition: HIP_LAUNCH_PARAM_END ( ( void * ) 0x03 ) + +const hipIpcMemLazyEnablePeerAccess = 0x01 + +const HIP_IPC_HANDLE_SIZE = 64 + +const hipStreamDefault = 0x00 + +const hipStreamNonBlocking = 0x01 + +const hipEventDefault = 0x00 + +const hipEventBlockingSync = 0x01 + +const hipEventDisableTiming = 0x02 + +const hipEventInterprocess = 0x04 + +const hipEventRecordDefault = 0x00 + +const hipEventRecordExternal = 0x01 + +const hipEventDisableSystemFence = 0x20000000 + +const hipEventReleaseToDevice = 0x40000000 + +const hipEventReleaseToSystem = 0x80000000 + +const hipHostAllocDefault = 0x00 + +const hipHostMallocDefault = 0x00 + +const hipHostAllocPortable = 0x01 + +const hipHostMallocPortable = 0x01 + +const hipHostAllocMapped = 0x02 + +const hipHostMallocMapped = 0x02 + +const hipHostAllocWriteCombined = 0x04 + +const hipHostMallocWriteCombined = 0x04 + +const hipHostMallocNumaUser = 0x20000000 + +const hipHostMallocCoherent = 0x40000000 + +const hipHostMallocNonCoherent = 0x80000000 + +const hipMemAttachGlobal = 0x01 + +const hipMemAttachHost = 0x02 + +const hipMemAttachSingle = 0x04 + +const hipDeviceMallocDefault = 0x00 + +const hipDeviceMallocFinegrained = 0x01 + +const hipMallocSignalMemory = 0x02 + +const hipDeviceMallocUncached = 0x03 + +const hipDeviceMallocContiguous = 0x04 + +const hipHostRegisterDefault = 0x00 + +const hipHostRegisterPortable = 0x01 + +const hipHostRegisterMapped = 0x02 + +const hipHostRegisterIoMemory = 0x04 + +const hipHostRegisterReadOnly = 0x08 + +const hipExtHostRegisterCoarseGrained = 0x08 + +const hipDeviceScheduleAuto = 0x00 + +const hipDeviceScheduleSpin = 0x01 + +const hipDeviceScheduleYield = 0x02 + +const hipDeviceScheduleBlockingSync = 0x04 + +const hipDeviceScheduleMask = 0x07 + +const hipDeviceMapHost = 0x08 + +const hipDeviceLmemResizeToMax = 0x10 + +const hipArrayDefault = 0x00 + +const hipArrayLayered = 0x01 + +const hipArraySurfaceLoadStore = 0x02 + +const hipArrayCubemap = 0x04 + +const hipArrayTextureGather = 0x08 + +const hipOccupancyDefault = 0x00 + +const hipOccupancyDisableCachingOverride = 0x01 + +const hipCooperativeLaunchMultiDeviceNoPreSync = 0x01 + +const hipCooperativeLaunchMultiDeviceNoPostSync = 0x02 + +const hipExtAnyOrderLaunch = 0x01 + +const hipStreamWaitValueGte = 0x00 + +const hipStreamWaitValueEq = 0x01 + +const hipStreamWaitValueAnd = 0x02 + +const hipStreamWaitValueNor = 0x03 + +const hipStreamPerThread = hipStream_t(2) + +const hipStreamLegacy = hipStream_t(1) + +const hipExternalMemoryDedicated = 0x01 + +const hipKernelNodeAttrID = hipLaunchAttributeID + +const hipKernelNodeAttributeAccessPolicyWindow = hipLaunchAttributeAccessPolicyWindow + +const hipKernelNodeAttributeCooperative = hipLaunchAttributeCooperative + +const hipKernelNodeAttributePriority = hipLaunchAttributePriority + +const hipKernelNodeAttrValue = hipLaunchAttributeValue + +const hipDrvLaunchAttributeCooperative = hipLaunchAttributeCooperative + +const hipDrvLaunchAttributeID = hipLaunchAttributeID + +const hipDrvLaunchAttributeValue = hipLaunchAttributeValue + +const hipDrvLaunchAttribute = hipLaunchAttribute + +const hipGraphKernelNodePortDefault = 0 + +const hipGraphKernelNodePortLaunchCompletion = 2 + +const hipGraphKernelNodePortProgrammatic = 1 + +const HIP_API_TABLE_MAJOR_VERSION = 0 + +const HIP_COMPILER_API_TABLE_MAJOR_VERSION = 0 + +const HIP_TOOLS_API_TABLE_MAJOR_VERSION = 0 + +const HIP_RUNTIME_API_TABLE_MAJOR_VERSION = 0 + +const HIP_API_TABLE_STEP_VERSION = 0 + +const HIP_COMPILER_API_TABLE_STEP_VERSION = 0 + +const HIP_TOOLS_API_TABLE_STEP_VERSION = 0 + +const HIP_RUNTIME_API_TABLE_STEP_VERSION = 11 + +const ROCPROFILER_DEFINED_AMD_INTERNAL_BUILD = 1 + +# Skipping MacroDefinition: HSA_EXPORT_DECORATOR __attribute__ ( ( visibility ( "default" ) ) ) + +const HSA_VERSION_1_0 = 1 + +const ROCPROFILER_HSA_RUNTIME_VERSION_MAJOR = 1 + +const ROCPROFILER_HSA_RUNTIME_VERSION_MINOR = 16 + +const ROCPROFILER_HSA_API_TABLE_MAJOR_VERSION = 0x03 + +const ROCPROFILER_HSA_CORE_API_TABLE_MAJOR_VERSION = 0x02 + +const ROCPROFILER_HSA_AMD_EXT_API_TABLE_MAJOR_VERSION = 0x02 + +const ROCPROFILER_HSA_FINALIZER_API_TABLE_MAJOR_VERSION = 0x02 + +const ROCPROFILER_HSA_IMAGE_API_TABLE_MAJOR_VERSION = 0x02 + +const ROCPROFILER_HSA_AQLPROFILE_API_TABLE_MAJOR_VERSION = 0x01 + +const ROCPROFILER_HSA_TOOLS_API_TABLE_MAJOR_VERSION = 0x01 + +const ROCPROFILER_HSA_API_TABLE_STEP_VERSION = 0x01 + +const ROCPROFILER_HSA_CORE_API_TABLE_STEP_VERSION = 0x00 + +const ROCPROFILER_HSA_AMD_EXT_API_TABLE_STEP_VERSION = 0x06 + +const ROCPROFILER_HSA_FINALIZER_API_TABLE_STEP_VERSION = 0x00 + +const ROCPROFILER_HSA_IMAGE_API_TABLE_STEP_VERSION = 0x01 + +const ROCPROFILER_HSA_AQLPROFILE_API_TABLE_STEP_VERSION = 0x00 + +const ROCPROFILER_HSA_TOOLS_API_TABLE_STEP_VERSION = 0x00 + +const ROCPROFILER_HSA_RUNTIME_VERSION = 10000ROCPROFILER_HSA_RUNTIME_VERSION_MAJOR + + 100ROCPROFILER_HSA_RUNTIME_VERSION_MINOR + +const HSA_API_TABLE_MAJOR_VERSION = 0x03 + +const HSA_CORE_API_TABLE_MAJOR_VERSION = 0x02 + +const HSA_AMD_EXT_API_TABLE_MAJOR_VERSION = 0x02 + +const HSA_FINALIZER_API_TABLE_MAJOR_VERSION = 0x02 + +const HSA_IMAGE_API_TABLE_MAJOR_VERSION = 0x02 + +const HSA_AQLPROFILE_API_TABLE_MAJOR_VERSION = 0x01 + +const HSA_TOOLS_API_TABLE_MAJOR_VERSION = 0x01 + +const HSA_PC_SAMPLING_API_TABLE_MAJOR_VERSION = 0x01 + +const HSA_API_TABLE_STEP_VERSION = 0x01 + +const HSA_CORE_API_TABLE_STEP_VERSION = 0x00 + +const HSA_AMD_EXT_API_TABLE_STEP_VERSION = 0x06 + +const HSA_FINALIZER_API_TABLE_STEP_VERSION = 0x00 + +const HSA_IMAGE_API_TABLE_STEP_VERSION = 0x01 + +const HSA_IMAGE_EXT_API_TABLE_STEP_VERSION = HSA_IMAGE_API_TABLE_STEP_VERSION + +const HSA_AQLPROFILE_API_TABLE_STEP_VERSION = 0x00 + +const HSA_TOOLS_API_TABLE_STEP_VERSION = 0x00 + +const HSA_PC_SAMPLING_API_TABLE_STEP_VERSION = 0x00 + +const HSA_AMD_INTERFACE_VERSION_MAJOR = 1 + +const HSA_AMD_INTERFACE_VERSION_MINOR = 8 + +const ROCPROFILER_SDK_USE_SYSTEM_ROCDECODE = 0 + +const ROCDECODE_MAJOR_VERSION = 0 + +const ROCDECODE_MINOR_VERSION = 10 + +const ROCDECODE_MICRO_VERSION = 0 + +const RocdecAvcPicture_FLAGS_INVALID = 0x00000001 + +const RocdecAvcPicture_FLAGS_TOP_FIELD = 0x00000002 + +const RocdecAvcPicture_FLAGS_BOTTOM_FIELD = 0x00000004 + +const RocdecAvcPicture_FLAGS_SHORT_TERM_REFERENCE = 0x00000008 + +const RocdecAvcPicture_FLAGS_LONG_TERM_REFERENCE = 0x00000010 + +const RocdecAvcPicture_FLAGS_NON_EXISTING = 0x00000020 + +const RocdecHevcPicture_INVALID = 0x00000001 + +const RocdecHevcPicture_FIELD_PIC = 0x00000002 + +const RocdecHevcPicture_BOTTOM_FIELD = 0x00000004 + +const RocdecHevcPicture_LONG_TERM_REFERENCE = 0x00000008 + +const RocdecHevcPicture_RPS_ST_CURR_BEFORE = 0x00000010 + +const RocdecHevcPicture_RPS_ST_CURR_AFTER = 0x00000020 + +const RocdecHevcPicture_RPS_LT_CURR = 0x00000040 + +const ROCDECODE_RUNTIME_API_TABLE_MAJOR_VERSION = 0 + +const ROCDECODE_RUNTIME_API_TABLE_STEP_VERSION = 1 + +const ROCTX_IS_ROCPROFILER_SDK = 1 + +const ROCTX_VERSION_MAJOR = 1 + +const ROCTX_VERSION_MINOR = 0 + +const ROCTX_VERSION_PATCH = 0 + +const ROCTX_SOVERSION = 10000 * 1 + +const ROCTX_VERSION_STRING = "1.0.0" + +const ROCTX_GIT_DESCRIBE = "" + +const ROCTX_GIT_REVISION = "f0fa9d078ca2dbf15e074abf8f20a4c95b118f30" + +const ROCTX_LIBRARY_ARCH = "" + +const ROCTX_SYSTEM_NAME = "Linux" + +const ROCTX_SYSTEM_PROCESSOR = "x86_64" + +const ROCTX_SYSTEM_VERSION = "6.16.0-0.rc1.250614.4774cfe3.221.vanilla.fc42.x86_64" + +const ROCTX_COMPILER_ID = "GNU" + +const ROCTX_COMPILER_VERSION = "12.2.1" + +const ROCTX_VERSION = 10000ROCTX_VERSION_MAJOR + 100ROCTX_VERSION_MINOR + + ROCTX_VERSION_PATCH + +const ROCTX_API_TABLE_VERSION_MAJOR = 0 + +const ROCTX_API_TABLE_VERSION_STEP = 0 + +const ROCTX_CORE_API_TABLE_VERSION_MAJOR = 0 + +const ROCTX_CORE_API_TABLE_VERSION_STEP = 0 + +const ROCTX_CONTROL_API_TABLE_VERSION_MAJOR = 0 + +const ROCTX_CONTROL_API_TABLE_VERSION_STEP = 0 + +const ROCTX_RESOURCE_API_TABLE_VERSION_MAJOR = 0 + +const ROCTX_RESOURCE_API_TABLE_VERSION_STEP = 0 + +# Skipping MacroDefinition: kmp_mutex_impl_macro ( impl , code ) impl = code , + +const ompt_id_none = 0 + +const ompt_time_none = 0 + +const ompt_hwid_none = 0 + +const ompt_addr_none = ~0 + +const ompt_mutex_impl_none = 0 + +const ompt_wait_id_none = 0 + +const ompd_segment_none = 0 + +const ROCPROFILER_SDK_USE_SYSTEM_RCCL = 0 + +const HIPRT_INF_FP16 = __ushort_as_half(Cushort(Cuint(0x7c00))) + +const HIPRT_MAX_NORMAL_FP16 = __ushort_as_half(Cushort(Cuint(0x7bff))) + +const HIPRT_MIN_DENORM_FP16 = __ushort_as_half(Cushort(Cuint(0x0001))) + +const HIPRT_NAN_FP16 = __ushort_as_half(Cushort(Cuint(0x7fff))) + +const HIPRT_NEG_ZERO_FP16 = __ushort_as_half(Cushort(Cuint(0x8000))) + +const HIPRT_ONE_FP16 = __ushort_as_half(Cushort(Cuint(0x3c00))) + +const HIPRT_ZERO_FP16 = __ushort_as_half(Cushort(Cuint(0x0000))) + +const NCCL_MAJOR = 2 + +const NCCL_MINOR = 20 + +const NCCL_PATCH = 5 + +const NCCL_SUFFIX = "" + +const NCCL_VERSION_CODE = 22005 + +const RCCL_BFLOAT16 = 1 + +const RCCL_FLOAT8 = 1 + +const RCCL_GATHER_SCATTER = 1 + +const RCCL_ALLTOALLV = 1 + +const NCCL_COMM_NULL = NULL + +const NCCL_UNIQUE_ID_BYTES = 128 + +const NCCL_CONFIG_UNDEF_INT = INT_MIN + +const NCCL_CONFIG_UNDEF_PTR = NULL + +const NCCL_SPLIT_NOCOLOR = -1 + +# Skipping MacroDefinition: NCCL_CONFIG_INITIALIZER { sizeof ( ncclConfig_t ) , /* size */ 0xcafebeef , /* magic */ NCCL_VERSION ( NCCL_MAJOR , NCCL_MINOR , NCCL_PATCH ) , /* version */ NCCL_CONFIG_UNDEF_INT , /* blocking */ NCCL_CONFIG_UNDEF_INT , /* cgaClusterSize */ NCCL_CONFIG_UNDEF_INT , /* minCTAs */ NCCL_CONFIG_UNDEF_INT , /* maxCTAs */ NCCL_CONFIG_UNDEF_PTR , /* netName */ NCCL_CONFIG_UNDEF_INT /* splitShare */ } + +const ROCPROFILER_SDK_USE_SYSTEM_ROCJPEG = 0 + +const ROCJPEG_MAJOR_VERSION = 0 + +const ROCJPEG_MINOR_VERSION = 6 + +const ROCJPEG_MICRO_VERSION = 0 + +const ROCJPEG_MAX_COMPONENT = 4 + +const hsa_ven_amd_loader = 0x0203 + +const ROCPROFILER_CODE_OBJECT_ID_NONE = ROCPROFILER_UINT64_C(0) diff --git a/src/profiler/profiler.jl b/src/profiler/profiler.jl new file mode 100644 index 000000000..4d553af05 --- /dev/null +++ b/src/profiler/profiler.jl @@ -0,0 +1,36 @@ +module Profiler + using AMDGPU: AMDGPU, librocprofiler_sdk_tool, @check + + const ROCPROFILER_UINT64_C = UInt64 + const ROCPROFILER_CONTEXT_NONE = typemax(UInt64) + const hipCpuDeviceId = Cint(-1) + const hipInvalidDeviceId = Cint(-2) + __ushort_as_half(x::Cushort) = reinterpret(Float16, x) + const NULL = C_NULL + const INT_MIN = typemin(Cint) + + include("librocprof.jl") + + function version() + major, minor, patch = Ref{UInt32}(), Ref{UInt32}(), Ref{UInt32}() + @check rocprofiler_get_version(major, minor, patch) + return VersionNumber(major[], minor[], patch[]) + end + + struct rocProfilerException <: Exception + status::rocprofiler_status_t + end + + function Base.showerror(io::IO, exception::rocProfilerException) + print(io, """ + MIOpenException: + - status: $(exception.status) + """) + end + + function AMDGPU.check(status::rocprofiler_status_t) + if status != ROCPROFILER_STATUS_SUCCESS + throw(rocProfilerException(status)) + end + end +end diff --git a/src/utils.jl b/src/utils.jl index 7b0291a56..b52fe4e41 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -13,6 +13,7 @@ function versioninfo() _status(functional(:rocrand)) "rocRAND" _ver(:rocrand, rocRAND.version) _libpath(librocrand); _status(functional(:rocfft)) "rocFFT" _ver(:rocfft, rocFFT.version) _libpath(librocfft); _status(functional(:MIOpen)) "MIOpen" _ver(:MIOpen, MIOpen.version) _libpath(libMIOpen_path); + _status(functional(:rocprofv3)) "rocprof-sdk-tool" _ver(:rocprofv3, Profiler.version) _libpath(librocprofiler_sdk_tool); ] PrettyTables.pretty_table(data; header=[ @@ -88,10 +89,12 @@ function functional(component::Symbol) return !isempty(librocfft) elseif component == :MIOpen return !isempty(libMIOpen_path) + elseif component == :rocprofv3 + return !isempty(librocprofiler_sdk_tool) elseif component == :all for component in ( :hip, :lld, :device_libs, :rocblas, :rocsolver, - :rocsparse, :rocrand, :rocfft, :MIOpen, + :rocsparse, :rocrand, :rocfft, :MIOpen, :rocprofv3, ) functional(component) || return false end