25#include <rocprofiler-sdk/defines.h>
27#include <rocprofiler-sdk/hsa/api_trace_version.h>
30#include <hsa/hsa_ext_amd.h>
31#include <hsa/hsa_ext_finalize.h>
32#include <hsa/hsa_ext_image.h>
34ROCPROFILER_EXTERN_C_INIT
39typedef struct rocprofiler_hsa_api_no_args
42} rocprofiler_hsa_api_no_args;
44typedef union rocprofiler_hsa_api_retval_t
46 uint64_t uint64_t_retval;
47 uint32_t uint32_t_retval;
48 hsa_signal_value_t hsa_signal_value_t_retval;
49 hsa_status_t hsa_status_t_retval;
50} rocprofiler_hsa_api_retval_t;
54typedef hsa_status_t (*hsa_ext_program_iterate_modules_cb_t)(hsa_ext_program_t program,
55 hsa_ext_module_t module,
58typedef void (*hsa_amd_queue_intercept_packet_writer)(
const void* pkts, uint64_t pkt_count);
60typedef void (*hsa_amd_queue_intercept_handler)(
const void* pkts,
62 uint64_t user_pkt_index,
64 hsa_amd_queue_intercept_packet_writer writer);
66typedef void (*hsa_amd_runtime_queue_notifier)(
const hsa_queue_t* queue,
70typedef union rocprofiler_hsa_api_args_t
77 rocprofiler_hsa_api_no_args no_args;
83 rocprofiler_hsa_api_no_args no_args;
87 hsa_system_info_t attribute;
89 } hsa_system_get_info;
93 uint16_t version_major;
94 uint16_t version_minor;
96 } hsa_system_extension_supported;
100 uint16_t version_major;
101 uint16_t version_minor;
103 } hsa_system_get_extension_table;
106 hsa_status_t (*callback)(hsa_agent_t agent,
void* data);
108 } hsa_iterate_agents;
112 hsa_agent_info_t attribute;
114 } hsa_agent_get_info;
119 hsa_queue_type32_t type;
120 void (*callback)(hsa_status_t status, hsa_queue_t* source,
void* data);
122 uint32_t private_segment_size;
123 uint32_t group_segment_size;
130 hsa_queue_type32_t type;
132 hsa_signal_t doorbell_signal;
134 } hsa_soft_queue_create;
142 } hsa_queue_inactivate;
145 const hsa_queue_t* queue;
146 } hsa_queue_load_read_index_scacquire;
149 const hsa_queue_t* queue;
150 } hsa_queue_load_read_index_relaxed;
153 const hsa_queue_t* queue;
154 } hsa_queue_load_write_index_scacquire;
157 const hsa_queue_t* queue;
158 } hsa_queue_load_write_index_relaxed;
161 const hsa_queue_t* queue;
163 } hsa_queue_store_write_index_relaxed;
166 const hsa_queue_t* queue;
168 } hsa_queue_store_write_index_screlease;
171 const hsa_queue_t* queue;
174 } hsa_queue_cas_write_index_scacq_screl;
177 const hsa_queue_t* queue;
180 } hsa_queue_cas_write_index_scacquire;
183 const hsa_queue_t* queue;
186 } hsa_queue_cas_write_index_relaxed;
189 const hsa_queue_t* queue;
192 } hsa_queue_cas_write_index_screlease;
195 const hsa_queue_t* queue;
197 } hsa_queue_add_write_index_scacq_screl;
200 const hsa_queue_t* queue;
202 } hsa_queue_add_write_index_scacquire;
205 const hsa_queue_t* queue;
207 } hsa_queue_add_write_index_relaxed;
210 const hsa_queue_t* queue;
212 } hsa_queue_add_write_index_screlease;
215 const hsa_queue_t* queue;
217 } hsa_queue_store_read_index_relaxed;
220 const hsa_queue_t* queue;
222 } hsa_queue_store_read_index_screlease;
226 hsa_status_t (*callback)(hsa_region_t region,
void* data);
228 } hsa_agent_iterate_regions;
232 hsa_region_info_t attribute;
234 } hsa_region_get_info;
238 hsa_profile_t profile;
240 } hsa_agent_get_exception_policies;
245 uint16_t version_major;
246 uint16_t version_minor;
248 } hsa_agent_extension_supported;
253 } hsa_memory_register;
258 } hsa_memory_deregister;
264 } hsa_memory_allocate;
279 hsa_access_permission_t access;
280 } hsa_memory_assign_agent;
283 hsa_signal_value_t initial_value;
284 uint32_t num_consumers;
285 const hsa_agent_t* consumers;
286 hsa_signal_t* signal;
291 } hsa_signal_destroy;
295 } hsa_signal_load_relaxed;
299 } hsa_signal_load_scacquire;
303 hsa_signal_value_t value;
304 } hsa_signal_store_relaxed;
308 hsa_signal_value_t value;
309 } hsa_signal_store_screlease;
313 hsa_signal_condition_t condition;
314 hsa_signal_value_t compare_value;
315 uint64_t timeout_hint;
316 hsa_wait_state_t wait_state_hint;
317 } hsa_signal_wait_relaxed;
321 hsa_signal_condition_t condition;
322 hsa_signal_value_t compare_value;
323 uint64_t timeout_hint;
324 hsa_wait_state_t wait_state_hint;
325 } hsa_signal_wait_scacquire;
329 hsa_signal_value_t value;
330 } hsa_signal_and_relaxed;
334 hsa_signal_value_t value;
335 } hsa_signal_and_scacquire;
339 hsa_signal_value_t value;
340 } hsa_signal_and_screlease;
344 hsa_signal_value_t value;
345 } hsa_signal_and_scacq_screl;
349 hsa_signal_value_t value;
350 } hsa_signal_or_relaxed;
354 hsa_signal_value_t value;
355 } hsa_signal_or_scacquire;
359 hsa_signal_value_t value;
360 } hsa_signal_or_screlease;
364 hsa_signal_value_t value;
365 } hsa_signal_or_scacq_screl;
369 hsa_signal_value_t value;
370 } hsa_signal_xor_relaxed;
374 hsa_signal_value_t value;
375 } hsa_signal_xor_scacquire;
379 hsa_signal_value_t value;
380 } hsa_signal_xor_screlease;
384 hsa_signal_value_t value;
385 } hsa_signal_xor_scacq_screl;
389 hsa_signal_value_t value;
390 } hsa_signal_exchange_relaxed;
394 hsa_signal_value_t value;
395 } hsa_signal_exchange_scacquire;
399 hsa_signal_value_t value;
400 } hsa_signal_exchange_screlease;
404 hsa_signal_value_t value;
405 } hsa_signal_exchange_scacq_screl;
409 hsa_signal_value_t value;
410 } hsa_signal_add_relaxed;
414 hsa_signal_value_t value;
415 } hsa_signal_add_scacquire;
419 hsa_signal_value_t value;
420 } hsa_signal_add_screlease;
424 hsa_signal_value_t value;
425 } hsa_signal_add_scacq_screl;
429 hsa_signal_value_t value;
430 } hsa_signal_subtract_relaxed;
434 hsa_signal_value_t value;
435 } hsa_signal_subtract_scacquire;
439 hsa_signal_value_t value;
440 } hsa_signal_subtract_screlease;
444 hsa_signal_value_t value;
445 } hsa_signal_subtract_scacq_screl;
449 hsa_signal_value_t expected;
450 hsa_signal_value_t value;
451 } hsa_signal_cas_relaxed;
455 hsa_signal_value_t expected;
456 hsa_signal_value_t value;
457 } hsa_signal_cas_scacquire;
461 hsa_signal_value_t expected;
462 hsa_signal_value_t value;
463 } hsa_signal_cas_screlease;
467 hsa_signal_value_t expected;
468 hsa_signal_value_t value;
469 } hsa_signal_cas_scacq_screl;
478 hsa_isa_info_t attribute;
484 hsa_isa_t code_object_isa;
487 } hsa_isa_compatible;
490 hsa_code_object_t code_object;
491 hsa_status_t (*alloc_callback)(
size_t size, hsa_callback_data_t data,
void** address);
492 hsa_callback_data_t callback_data;
494 void** serialized_code_object;
495 size_t* serialized_code_object_size;
496 } hsa_code_object_serialize;
499 void* serialized_code_object;
500 size_t serialized_code_object_size;
502 hsa_code_object_t* code_object;
503 } hsa_code_object_deserialize;
506 hsa_code_object_t code_object;
507 } hsa_code_object_destroy;
510 hsa_code_object_t code_object;
511 hsa_code_object_info_t attribute;
513 } hsa_code_object_get_info;
516 hsa_code_object_t code_object;
517 const char* symbol_name;
518 hsa_code_symbol_t* symbol;
519 } hsa_code_object_get_symbol;
522 hsa_code_symbol_t code_symbol;
523 hsa_code_symbol_info_t attribute;
525 } hsa_code_symbol_get_info;
528 hsa_code_object_t code_object;
529 hsa_status_t (*callback)(hsa_code_object_t code_object,
530 hsa_code_symbol_t symbol,
533 } hsa_code_object_iterate_symbols;
536 hsa_profile_t profile;
537 hsa_executable_state_t executable_state;
539 hsa_executable_t* executable;
540 } hsa_executable_create;
543 hsa_executable_t executable;
544 } hsa_executable_destroy;
547 hsa_executable_t executable;
549 hsa_code_object_t code_object;
551 } hsa_executable_load_code_object;
554 hsa_executable_t executable;
556 } hsa_executable_freeze;
559 hsa_executable_t executable;
560 hsa_executable_info_t attribute;
562 } hsa_executable_get_info;
565 hsa_executable_t executable;
566 const char* variable_name;
568 } hsa_executable_global_variable_define;
571 hsa_executable_t executable;
573 const char* variable_name;
575 } hsa_executable_agent_global_variable_define;
578 hsa_executable_t executable;
580 const char* variable_name;
582 } hsa_executable_readonly_variable_define;
585 hsa_executable_t executable;
587 } hsa_executable_validate;
590 hsa_executable_t executable;
591 const char* module_name;
592 const char* symbol_name;
594 int32_t call_convention;
595 hsa_executable_symbol_t* symbol;
596 } hsa_executable_get_symbol;
599 hsa_executable_symbol_t executable_symbol;
600 hsa_executable_symbol_info_t attribute;
602 } hsa_executable_symbol_get_info;
605 hsa_executable_t executable;
606 hsa_status_t (*callback)(hsa_executable_t exec, hsa_executable_symbol_t symbol,
void* data);
608 } hsa_executable_iterate_symbols;
612 const char** status_string;
618 } hsa_extension_get_name;
622 uint16_t version_major;
623 uint16_t* version_minor;
625 } hsa_system_major_extension_supported;
629 uint16_t version_major;
632 } hsa_system_get_major_extension_table;
637 uint16_t version_major;
638 uint16_t* version_minor;
640 } hsa_agent_major_extension_supported;
644 hsa_cache_info_t attribute;
646 } hsa_cache_get_info;
650 hsa_status_t (*callback)(hsa_cache_t cache,
void* data);
652 } hsa_agent_iterate_caches;
656 hsa_signal_value_t value;
657 } hsa_signal_silent_store_relaxed;
661 hsa_signal_value_t value;
662 } hsa_signal_silent_store_screlease;
665 uint32_t num_signals;
666 const hsa_signal_t* signals;
667 uint32_t num_consumers;
668 const hsa_agent_t* consumers;
669 hsa_signal_group_t* signal_group;
670 } hsa_signal_group_create;
673 hsa_signal_group_t signal_group;
674 } hsa_signal_group_destroy;
677 hsa_signal_group_t signal_group;
678 const hsa_signal_condition_t* conditions;
679 const hsa_signal_value_t* compare_values;
680 hsa_wait_state_t wait_state_hint;
681 hsa_signal_t* signal;
682 hsa_signal_value_t* value;
683 } hsa_signal_group_wait_any_scacquire;
686 hsa_signal_group_t signal_group;
687 const hsa_signal_condition_t* conditions;
688 const hsa_signal_value_t* compare_values;
689 hsa_wait_state_t wait_state_hint;
690 hsa_signal_t* signal;
691 hsa_signal_value_t* value;
692 } hsa_signal_group_wait_any_relaxed;
696 hsa_status_t (*callback)(hsa_isa_t isa,
void* data);
698 } hsa_agent_iterate_isas;
702 hsa_isa_info_t attribute;
704 } hsa_isa_get_info_alt;
708 hsa_profile_t profile;
710 } hsa_isa_get_exception_policies;
714 hsa_fp_type_t fp_type;
715 hsa_flush_mode_t flush_mode;
716 hsa_round_method_t* round_method;
717 } hsa_isa_get_round_method;
720 hsa_wavefront_t wavefront;
721 hsa_wavefront_info_t attribute;
723 } hsa_wavefront_get_info;
727 hsa_status_t (*callback)(hsa_wavefront_t wavefront,
void* data);
729 } hsa_isa_iterate_wavefronts;
732 hsa_code_object_t code_object;
733 const char* module_name;
734 const char* symbol_name;
735 hsa_code_symbol_t* symbol;
736 } hsa_code_object_get_symbol_from_name;
740 hsa_code_object_reader_t* code_object_reader;
741 } hsa_code_object_reader_create_from_file;
744 const void* code_object;
746 hsa_code_object_reader_t* code_object_reader;
747 } hsa_code_object_reader_create_from_memory;
750 hsa_code_object_reader_t code_object_reader;
751 } hsa_code_object_reader_destroy;
754 hsa_profile_t profile;
755 hsa_default_float_rounding_mode_t default_float_rounding_mode;
757 hsa_executable_t* executable;
758 } hsa_executable_create_alt;
761 hsa_executable_t executable;
762 hsa_code_object_reader_t code_object_reader;
764 hsa_loaded_code_object_t* loaded_code_object;
765 } hsa_executable_load_program_code_object;
768 hsa_executable_t executable;
770 hsa_code_object_reader_t code_object_reader;
772 hsa_loaded_code_object_t* loaded_code_object;
773 } hsa_executable_load_agent_code_object;
776 hsa_executable_t executable;
779 } hsa_executable_validate_alt;
782 hsa_executable_t executable;
783 const char* symbol_name;
784 const hsa_agent_t* agent;
785 hsa_executable_symbol_t* symbol;
786 } hsa_executable_get_symbol_by_name;
789 hsa_executable_t executable;
791 hsa_status_t (*callback)(hsa_executable_t exec,
793 hsa_executable_symbol_t symbol,
796 } hsa_executable_iterate_agent_symbols;
799 hsa_executable_t executable;
800 hsa_status_t (*callback)(hsa_executable_t exec, hsa_executable_symbol_t symbol,
void* data);
802 } hsa_executable_iterate_program_symbols;
808 hsa_amd_coherency_type_t* type;
809 } hsa_amd_coherency_get_type;
813 hsa_amd_coherency_type_t type;
814 } hsa_amd_coherency_set_type;
819 } hsa_amd_profiling_set_profiler_enabled;
823 } hsa_amd_profiling_async_copy_enable;
828 hsa_amd_profiling_dispatch_time_t* time;
829 } hsa_amd_profiling_get_dispatch_time;
833 hsa_amd_profiling_async_copy_time_t* time;
834 } hsa_amd_profiling_get_async_copy_time;
839 uint64_t* system_tick;
840 } hsa_amd_profiling_convert_tick_to_system_domain;
844 hsa_signal_condition_t cond;
845 hsa_signal_value_t value;
846 hsa_amd_signal_handler handler;
848 } hsa_amd_signal_async_handler;
851 void (*callback)(
void* arg);
853 } hsa_amd_async_function;
856 uint32_t signal_count;
857 hsa_signal_t* signals;
858 hsa_signal_condition_t* conds;
859 hsa_signal_value_t* values;
860 uint64_t timeout_hint;
861 hsa_wait_state_t wait_hint;
862 hsa_signal_value_t* satisfying_value;
863 } hsa_amd_signal_wait_any;
866 const hsa_queue_t* queue;
867 uint32_t num_cu_mask_count;
868 const uint32_t* cu_mask;
869 } hsa_amd_queue_cu_set_mask;
872 hsa_amd_memory_pool_t memory_pool;
873 hsa_amd_memory_pool_info_t attribute;
875 } hsa_amd_memory_pool_get_info;
879 hsa_status_t (*callback)(hsa_amd_memory_pool_t memory_pool,
void* data);
881 } hsa_amd_agent_iterate_memory_pools;
884 hsa_amd_memory_pool_t memory_pool;
888 } hsa_amd_memory_pool_allocate;
892 } hsa_amd_memory_pool_free;
896 hsa_agent_t dst_agent;
898 hsa_agent_t src_agent;
900 uint32_t num_dep_signals;
901 const hsa_signal_t* dep_signals;
902 hsa_signal_t completion_signal;
903 } hsa_amd_memory_async_copy;
907 hsa_agent_t dst_agent;
909 hsa_agent_t src_agent;
911 uint32_t num_dep_signals;
912 const hsa_signal_t* dep_signals;
913 hsa_signal_t completion_signal;
914 hsa_amd_sdma_engine_id_t engine_id;
915 bool force_copy_on_sdma;
916 } hsa_amd_memory_async_copy_on_engine;
919 hsa_agent_t dst_agent;
920 hsa_agent_t src_agent;
921 uint32_t* engine_ids_mask;
922 } hsa_amd_memory_copy_engine_status;
926 hsa_amd_memory_pool_t memory_pool;
927 hsa_amd_agent_memory_pool_info_t attribute;
929 } hsa_amd_agent_memory_pool_get_info;
933 const hsa_agent_t* agents;
934 const uint32_t* flags;
936 } hsa_amd_agents_allow_access;
939 hsa_amd_memory_pool_t src_memory_pool;
940 hsa_amd_memory_pool_t dst_memory_pool;
942 } hsa_amd_memory_pool_can_migrate;
946 hsa_amd_memory_pool_t memory_pool;
948 } hsa_amd_memory_migrate;
956 } hsa_amd_memory_lock;
960 } hsa_amd_memory_unlock;
966 } hsa_amd_memory_fill;
975 size_t* metadata_size;
976 const void** metadata;
977 } hsa_amd_interop_map_buffer;
981 } hsa_amd_interop_unmap_buffer;
985 const hsa_ext_image_descriptor_t* image_descriptor;
986 const hsa_amd_image_descriptor_t* image_layout;
987 const void* image_data;
988 hsa_access_permission_t access_permission;
989 hsa_ext_image_t* image;
990 } hsa_amd_image_create;
994 hsa_amd_pointer_info_t* info;
995 void* (*alloc)(size_t);
996 uint32_t* num_agents_accessible;
997 hsa_agent_t** accessible;
998 } hsa_amd_pointer_info;
1003 } hsa_amd_pointer_info_set_userdata;
1008 hsa_amd_ipc_memory_t* handle;
1009 } hsa_amd_ipc_memory_create;
1012 const hsa_amd_ipc_memory_t* handle;
1014 uint32_t num_agents;
1015 const hsa_agent_t* mapping_agents;
1017 } hsa_amd_ipc_memory_attach;
1021 } hsa_amd_ipc_memory_detach;
1024 hsa_signal_value_t initial_value;
1025 uint32_t num_consumers;
1026 const hsa_agent_t* consumers;
1027 uint64_t attributes;
1028 hsa_signal_t* signal;
1029 } hsa_amd_signal_create;
1032 hsa_signal_t signal;
1033 hsa_amd_ipc_signal_t* handle;
1034 } hsa_amd_ipc_signal_create;
1037 const hsa_amd_ipc_signal_t* handle;
1038 hsa_signal_t* signal;
1039 } hsa_amd_ipc_signal_attach;
1042 hsa_amd_system_event_callback_t callback;
1044 } hsa_amd_register_system_event_handler;
1047 hsa_agent_t agent_handle;
1049 hsa_queue_type32_t type;
1050 void (*callback)(hsa_status_t status, hsa_queue_t* source,
void* data);
1052 uint32_t private_segment_size;
1053 uint32_t group_segment_size;
1054 hsa_queue_t** queue;
1055 } hsa_amd_queue_intercept_create;
1059 hsa_amd_queue_intercept_handler callback;
1061 } hsa_amd_queue_intercept_register;
1065 hsa_amd_queue_priority_t priority;
1066 } hsa_amd_queue_set_priority;
1069 const hsa_pitched_ptr_t* dst;
1070 const hsa_dim3_t* dst_offset;
1071 const hsa_pitched_ptr_t* src;
1072 const hsa_dim3_t* src_offset;
1073 const hsa_dim3_t* range;
1074 hsa_agent_t copy_agent;
1075 hsa_amd_copy_direction_t dir;
1076 uint32_t num_dep_signals;
1077 const hsa_signal_t* dep_signals;
1078 hsa_signal_t completion_signal;
1079 } hsa_amd_memory_async_copy_rect;
1082 hsa_amd_runtime_queue_notifier callback;
1084 } hsa_amd_runtime_queue_create_register;
1089 hsa_agent_t* agents;
1091 hsa_amd_memory_pool_t pool;
1094 } hsa_amd_memory_lock_to_pool;
1098 hsa_amd_deallocation_callback_t callback;
1100 } hsa_amd_register_deallocation_callback;
1104 hsa_amd_deallocation_callback_t callback;
1105 } hsa_amd_deregister_deallocation_callback;
1108 hsa_signal_t signal;
1109 volatile hsa_signal_value_t** value_ptr;
1110 } hsa_amd_signal_value_pointer;
1115 hsa_amd_svm_attribute_pair_t* attribute_list;
1116 size_t attribute_count;
1117 } hsa_amd_svm_attributes_set;
1122 hsa_amd_svm_attribute_pair_t* attribute_list;
1123 size_t attribute_count;
1124 } hsa_amd_svm_attributes_get;
1130 uint32_t num_dep_signals;
1131 const hsa_signal_t* dep_signals;
1132 hsa_signal_t completion_signal;
1133 } hsa_amd_svm_prefetch_async;
1136 hsa_agent_t preferred_agent;
1137 } hsa_amd_spm_acquire;
1140 hsa_agent_t preferred_agent;
1141 } hsa_amd_spm_release;
1144 hsa_agent_t preferred_agent;
1145 size_t size_in_bytes;
1147 uint32_t* size_copied;
1150 } hsa_amd_spm_set_dest_buffer;
1153 const hsa_queue_t* queue;
1154 uint32_t num_cu_mask_count;
1156 } hsa_amd_queue_cu_get_mask;
1163 } hsa_amd_portable_export_dmabuf;
1167 } hsa_amd_portable_close_dmabuf;
1173 hsa_ext_image_geometry_t geometry;
1174 const hsa_ext_image_format_t* image_format;
1175 uint32_t* capability_mask;
1176 } hsa_ext_image_get_capability;
1180 const hsa_ext_image_descriptor_t* image_descriptor;
1181 hsa_access_permission_t access_permission;
1182 hsa_ext_image_data_info_t* image_data_info;
1183 } hsa_ext_image_data_get_info;
1187 const hsa_ext_image_descriptor_t* image_descriptor;
1188 const void* image_data;
1189 hsa_access_permission_t access_permission;
1190 hsa_ext_image_t* image;
1191 } hsa_ext_image_create;
1195 const void* src_memory;
1196 size_t src_row_pitch;
1197 size_t src_slice_pitch;
1198 hsa_ext_image_t dst_image;
1199 const hsa_ext_image_region_t* image_region;
1200 } hsa_ext_image_import;
1204 hsa_ext_image_t src_image;
1206 size_t dst_row_pitch;
1207 size_t dst_slice_pitch;
1208 const hsa_ext_image_region_t* image_region;
1209 } hsa_ext_image_export;
1213 hsa_ext_image_t src_image;
1214 const hsa_dim3_t* src_offset;
1215 hsa_ext_image_t dst_image;
1216 const hsa_dim3_t* dst_offset;
1217 const hsa_dim3_t* range;
1218 } hsa_ext_image_copy;
1222 hsa_ext_image_t image;
1224 const hsa_ext_image_region_t* image_region;
1225 } hsa_ext_image_clear;
1229 hsa_ext_image_t image;
1230 } hsa_ext_image_destroy;
1234 const hsa_ext_sampler_descriptor_t* sampler_descriptor;
1235 hsa_ext_sampler_t* sampler;
1236 } hsa_ext_sampler_create;
1240 hsa_ext_sampler_t sampler;
1241 } hsa_ext_sampler_destroy;
1245 hsa_ext_image_geometry_t geometry;
1246 const hsa_ext_image_format_t* image_format;
1247 hsa_ext_image_data_layout_t image_data_layout;
1248 uint32_t* capability_mask;
1249 } hsa_ext_image_get_capability_with_layout;
1253 const hsa_ext_image_descriptor_t* image_descriptor;
1254 hsa_access_permission_t access_permission;
1255 hsa_ext_image_data_layout_t image_data_layout;
1256 size_t image_data_row_pitch;
1257 size_t image_data_slice_pitch;
1258 hsa_ext_image_data_info_t* image_data_info;
1259 } hsa_ext_image_data_get_info_with_layout;
1263 const hsa_ext_image_descriptor_t* image_descriptor;
1264 const void* image_data;
1265 hsa_access_permission_t access_permission;
1266 hsa_ext_image_data_layout_t image_data_layout;
1267 size_t image_data_row_pitch;
1268 size_t image_data_slice_pitch;
1269 hsa_ext_image_t* image;
1270 } hsa_ext_image_create_with_layout;
1274 hsa_machine_model_t machine_model;
1275 hsa_profile_t profile;
1276 hsa_default_float_rounding_mode_t default_float_rounding_mode;
1277 const char* options;
1278 hsa_ext_program_t* program;
1279 } hsa_ext_program_create;
1282 hsa_ext_program_t program;
1283 } hsa_ext_program_destroy;
1286 hsa_ext_program_t program;
1287 hsa_ext_module_t
module;
1288 } hsa_ext_program_add_module;
1291 hsa_ext_program_t program;
1292 hsa_ext_program_iterate_modules_cb_t callback;
1294 } hsa_ext_program_iterate_modules;
1297 hsa_ext_program_t program;
1298 hsa_ext_program_info_t attribute;
1300 } hsa_ext_program_get_info;
1303 hsa_ext_program_t program;
1305 int32_t call_convention;
1306 hsa_ext_control_directives_t control_directives;
1307 const char* options;
1308 hsa_code_object_type_t code_object_type;
1309 hsa_code_object_t* code_object;
1310 } hsa_ext_program_finalize;
1312#if HSA_AMD_EXT_API_TABLE_MAJOR_VERSION >= 0x02
1319 } hsa_amd_vmem_address_reserve;
1324 } hsa_amd_vmem_address_free;
1327 hsa_amd_memory_pool_t pool;
1329 hsa_amd_memory_type_t type;
1331 hsa_amd_vmem_alloc_handle_t* memory_handle;
1332 } hsa_amd_vmem_handle_create;
1335 hsa_amd_vmem_alloc_handle_t memory_handle;
1336 } hsa_amd_vmem_handle_release;
1342 hsa_amd_vmem_alloc_handle_t memory_handle;
1349 } hsa_amd_vmem_unmap;
1354 const hsa_amd_memory_access_desc_t* desc;
1356 } hsa_amd_vmem_set_access;
1360 hsa_access_permission_t* perms;
1361 hsa_agent_t agent_handle;
1362 } hsa_amd_vmem_get_access;
1366 hsa_amd_vmem_alloc_handle_t handle;
1368 } hsa_amd_vmem_export_shareable_handle;
1372 hsa_amd_vmem_alloc_handle_t* handle;
1373 } hsa_amd_vmem_import_shareable_handle;
1376 hsa_amd_vmem_alloc_handle_t* handle;
1378 } hsa_amd_vmem_retain_alloc_handle;
1381 hsa_amd_vmem_alloc_handle_t alloc_handle;
1382 hsa_amd_memory_pool_t* pool;
1383 hsa_amd_memory_type_t* type;
1384 } hsa_amd_vmem_get_alloc_properties_from_handle;
1385# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x01
1390 } hsa_amd_agent_set_async_scratch_limit;
1392# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x02
1396 hsa_queue_info_attribute_t attribute;
1398 } hsa_amd_queue_get_info;
1400# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x03
1408 } hsa_amd_vmem_address_reserve_align;
1410# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x04
1415 } hsa_amd_enable_logging;
1417# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x05
1420 uint32_t signal_count;
1421 hsa_signal_t* signals;
1422 hsa_signal_condition_t* conds;
1423 hsa_signal_value_t* values;
1424 uint64_t timeout_hint;
1425 hsa_wait_state_t wait_hint;
1426 hsa_signal_value_t* satisfying_values;
1427 } hsa_amd_signal_wait_all;
1429# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x06
1432 hsa_agent_t dst_agent;
1433 hsa_agent_t src_agent;
1434 uint32_t* recommended_ids_mask;
1435 } hsa_amd_memory_get_preferred_copy_engine;
1437# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x07
1445 } hsa_amd_portable_export_dmabuf_v2;
1447# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x08
1450 hsa_amd_ais_file_handle_t handle;
1453 int64_t file_offset;
1454 uint64_t* size_copied;
1456 } hsa_amd_ais_file_write;
1459 hsa_amd_ais_file_handle_t handle;
1462 int64_t file_offset;
1463 uint64_t* size_copied;
1465 } hsa_amd_ais_file_read;
1468} rocprofiler_hsa_api_args_t;
1470ROCPROFILER_EXTERN_C_FINI
Defines versions for external dependencies.