AMD_DBGAPI: include/amd-dbgapi.h Source File

AMD_DBGAPI 0.62.1

amd-dbgapi.h
Go to the documentation of this file.
1 /* Copyright (c) 2019-2021 Advanced Micro Devices, Inc.
2
3 Permission is hereby granted, free of charge, to any person obtaining a copy
4 of this software and associated documentation files (the "Software"), to deal
5 in the Software without restriction, including without limitation the rights
6 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 copies of the Software, and to permit persons to whom the Software is
8 furnished to do so, subject to the following conditions:
9
10 The above copyright notice and this permission notice shall be included in
11 all copies or substantial portions of the Software.
12
13 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 THE SOFTWARE. */
20
423 #ifndef AMD_DBGAPI_H
424 #define AMD_DBGAPI_H 1
425
426 /* Placeholder for calling convention and import/export macros */
427 #if !defined(AMD_DBGAPI_CALL)
428 #define AMD_DBGAPI_CALL
429 #endif /* !defined (AMD_DBGAPI_CALL) */
430
431 #if !defined(AMD_DBGAPI_EXPORT_DECORATOR)
432 #if defined(__GNUC__)
433 #define AMD_DBGAPI_EXPORT_DECORATOR __attribute__ ((visibility ("default")))
434 #elif defined(_MSC_VER)
435 #define AMD_DBGAPI_EXPORT_DECORATOR __declspec(dllexport)
436 #endif /* defined (_MSC_VER) */
437 #endif /* !defined (AMD_DBGAPI_EXPORT_DECORATOR) */
438
439 #if !defined(AMD_DBGAPI_IMPORT_DECORATOR)
440 #if defined(__GNUC__)
441 #define AMD_DBGAPI_IMPORT_DECORATOR
442 #elif defined(_MSC_VER)
443 #define AMD_DBGAPI_IMPORT_DECORATOR __declspec(dllimport)
444 #endif /* defined (_MSC_VER) */
445 #endif /* !defined (AMD_DBGAPI_IMPORT_DECORATOR) */
446
447 #define AMD_DBGAPI_EXPORT AMD_DBGAPI_EXPORT_DECORATOR AMD_DBGAPI_CALL
448 #define AMD_DBGAPI_IMPORT AMD_DBGAPI_IMPORT_DECORATOR AMD_DBGAPI_CALL
449
450 #if !defined(AMD_DBGAPI)
451 #if defined(AMD_DBGAPI_EXPORTS)
452 #define AMD_DBGAPI AMD_DBGAPI_EXPORT
453 #else /* !defined (AMD_DBGAPI_EXPORTS) */
454 #define AMD_DBGAPI AMD_DBGAPI_IMPORT
455 #endif /* !defined (AMD_DBGAPI_EXPORTS) */
456 #endif /* !defined (AMD_DBGAPI) */
457
458 #if __cplusplus >= 201103L
459 /* c++11 allows extended initializer lists. */
460 #define AMD_DBGAPI_HANDLE_LITERAL(type, value) (type{ value })
461 #elif __STDC_VERSION__ >= 199901L
462 /* c99 allows compound literals. */
463 #define AMD_DBGAPI_HANDLE_LITERAL(type, value) ((type){ value })
464 #else /* !__STDC_VERSION__ >= 199901L */
465 #define AMD_DBGAPI_HANDLE_LITERAL(type, value) {value}
466 #endif /* !__STDC_VERSION__ >= 199901L */
467
468 #if defined(__cplusplus)
469 extern "C" {
470 #endif /* defined (__cplusplus) */
471
472 #if defined(__linux__)
473 #include <sys/types.h>
474 #endif /* __linux__ */
475
476 #include <stddef.h>
477 #include <stdint.h>
478
498 #define AMD_DBGAPI_VERSION_0_54
499
504 #define AMD_DBGAPI_VERSION_0_56
505
510 #define AMD_DBGAPI_VERSION_0_58
511
516 #define AMD_DBGAPI_VERSION_0_62
517
524 typedef struct amd_dbgapi_callbacks_s amd_dbgapi_callbacks_t;
525
548 typedef uint64_t amd_dbgapi_global_address_t;
549
553 typedef uint64_t amd_dbgapi_size_t;
554
558 typedef enum
559 {
563 AMD_DBGAPI_CHANGED_NO = 0,
567 AMD_DBGAPI_CHANGED_YES = 1
568 } amd_dbgapi_changed_t;
569
577 #if defined(__linux__)
578 typedef pid_t amd_dbgapi_os_process_id_t;
579 #endif /* __linux__ */
580
605 #if defined(__linux__)
606 typedef int amd_dbgapi_notifier_t;
607 #endif /* __linux__ */
608
616 #if defined(__linux__)
617 typedef uint64_t amd_dbgapi_os_agent_id_t;
618 #endif /* __linux__ */
619
626 #if defined(__linux__)
627 typedef uint64_t amd_dbgapi_os_queue_id_t;
628 #endif /* __linux__ */
629
638 #if defined(__linux__)
639 typedef uint64_t amd_dbgapi_os_queue_packet_id_t;
640 #endif /* __linux__ */
641
649 #if defined(__linux__)
650 typedef enum
651 {
655 AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN = 0,
671 AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_MULTIPLE_PRODUCER = 1,
687 AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_SINGLE_PRODUCER = 2,
697 AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_COOPERATIVE = 3,
701 AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4 = 257,
705 AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA = 513,
709 AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA_XGMI = 514
710 } amd_dbgapi_os_queue_type_t;
711 #endif /* __linux__ */
712
725 typedef enum
726 {
730 AMD_DBGAPI_STATUS_SUCCESS = 0,
734 AMD_DBGAPI_STATUS_ERROR = -1,
756 AMD_DBGAPI_STATUS_FATAL = -2,
762 AMD_DBGAPI_STATUS_ERROR_NOT_IMPLEMENTED = -3,
766 AMD_DBGAPI_STATUS_ERROR_NOT_AVAILABLE = -4,
770 AMD_DBGAPI_STATUS_ERROR_NOT_SUPPORTED = -5,
774 AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT = -6,
778 AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT_COMPATIBILITY = -7,
782 AMD_DBGAPI_STATUS_ERROR_ALREADY_INITIALIZED = -8,
786 AMD_DBGAPI_STATUS_ERROR_NOT_INITIALIZED = -9,
802 AMD_DBGAPI_STATUS_ERROR_RESTRICTION = -10,
806 AMD_DBGAPI_STATUS_ERROR_ALREADY_ATTACHED = -11,
810 AMD_DBGAPI_STATUS_ERROR_INVALID_ARCHITECTURE_ID = -12,
814 AMD_DBGAPI_STATUS_ERROR_ILLEGAL_INSTRUCTION = -13,
818 AMD_DBGAPI_STATUS_ERROR_INVALID_CODE_OBJECT_ID = -14,
822 AMD_DBGAPI_STATUS_ERROR_INVALID_ELF_AMDGPU_MACHINE = -15,
826 AMD_DBGAPI_STATUS_ERROR_INVALID_PROCESS_ID = -16,
831 AMD_DBGAPI_STATUS_ERROR_PROCESS_EXITED = -17,
835 AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID = -18,
839 AMD_DBGAPI_STATUS_ERROR_INVALID_QUEUE_ID = -19,
843 AMD_DBGAPI_STATUS_ERROR_INVALID_DISPATCH_ID = -20,
847 AMD_DBGAPI_STATUS_ERROR_INVALID_WAVE_ID = -21,
851 AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_STOPPED = -22,
855 AMD_DBGAPI_STATUS_ERROR_WAVE_STOPPED = -23,
859 AMD_DBGAPI_STATUS_ERROR_WAVE_OUTSTANDING_STOP = -24,
863 AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_RESUMABLE = -25,
867 AMD_DBGAPI_STATUS_ERROR_INVALID_DISPLACED_STEPPING_ID = -26,
872 AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_BUFFER_NOT_AVAILABLE = -27,
876 AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_ACTIVE = -28,
881 AMD_DBGAPI_STATUS_ERROR_RESUME_DISPLACED_STEPPING = -29,
885 AMD_DBGAPI_STATUS_ERROR_INVALID_WATCHPOINT_ID = -30,
889 AMD_DBGAPI_STATUS_ERROR_NO_WATCHPOINT_AVAILABLE = -31,
893 AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_CLASS_ID = -32,
897 AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_ID = -33,
901 AMD_DBGAPI_STATUS_ERROR_INVALID_LANE_ID = -34,
905 AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_CLASS_ID = -35,
909 AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_ID = -36,
913 AMD_DBGAPI_STATUS_ERROR_MEMORY_ACCESS = -37,
917 AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_CONVERSION = -38,
921 AMD_DBGAPI_STATUS_ERROR_INVALID_EVENT_ID = -39,
925 AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID = -40,
929 AMD_DBGAPI_STATUS_ERROR_CLIENT_CALLBACK = -41,
933 AMD_DBGAPI_STATUS_ERROR_INVALID_CLIENT_PROCESS_ID = -42,
937 AMD_DBGAPI_STATUS_ERROR_SYMBOL_NOT_FOUND = -43,
942 AMD_DBGAPI_STATUS_ERROR_REGISTER_NOT_AVAILABLE = -44
943 } amd_dbgapi_status_t;
944
961 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_get_status_string (
962 amd_dbgapi_status_t status,
963 const char **status_string) AMD_DBGAPI_VERSION_0_54;
964
988 #define AMD_DBGAPI_VERSION_MAJOR 0
989
994 #define AMD_DBGAPI_VERSION_MINOR 62
995
1009 void AMD_DBGAPI amd_dbgapi_get_version (
1010 uint32_t *major, uint32_t *minor, uint32_t *patch) AMD_DBGAPI_VERSION_0_54;
1011
1020 const char AMD_DBGAPI *
1021 amd_dbgapi_get_build_name (void) AMD_DBGAPI_VERSION_0_54;
1022
1068 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_initialize (
1069 amd_dbgapi_callbacks_t *callbacks) AMD_DBGAPI_VERSION_0_54;
1070
1095 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_finalize (void)
1096 AMD_DBGAPI_VERSION_0_54;
1097
1118 typedef struct
1119 {
1120 uint64_t handle;
1121 } amd_dbgapi_architecture_id_t;
1122
1126 #define AMD_DBGAPI_ARCHITECTURE_NONE \
1127 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_architecture_id_t, 0)
1128
1136 typedef enum
1137 {
1144 AMD_DBGAPI_ARCHITECTURE_INFO_NAME = 1,
1152 AMD_DBGAPI_ARCHITECTURE_INFO_ELF_AMDGPU_MACHINE = 2,
1157 AMD_DBGAPI_ARCHITECTURE_INFO_LARGEST_INSTRUCTION_SIZE = 3,
1163 AMD_DBGAPI_ARCHITECTURE_INFO_MINIMUM_INSTRUCTION_ALIGNMENT = 4,
1168 AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_SIZE = 5,
1176 AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION = 6,
1182 AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_PC_ADJUST = 7,
1187 AMD_DBGAPI_ARCHITECTURE_INFO_PC_REGISTER = 8
1188 } amd_dbgapi_architecture_info_t;
1189
1228 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_get_info (
1229 amd_dbgapi_architecture_id_t architecture_id,
1230 amd_dbgapi_architecture_info_t query, size_t value_size,
1231 void *value) AMD_DBGAPI_VERSION_0_54;
1232
1261 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_get_architecture (
1262 uint32_t elf_amdgpu_machine,
1263 amd_dbgapi_architecture_id_t *architecture_id) AMD_DBGAPI_VERSION_0_54;
1264
1271 typedef struct amd_dbgapi_symbolizer_id_s *amd_dbgapi_symbolizer_id_t;
1272
1366 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_disassemble_instruction (
1367 amd_dbgapi_architecture_id_t architecture_id,
1368 amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1369 const void *memory, char **instruction_text,
1370 amd_dbgapi_symbolizer_id_t symbolizer_id,
1371 amd_dbgapi_status_t (*symbolizer) (
1372 amd_dbgapi_symbolizer_id_t symbolizer_id,
1373 amd_dbgapi_global_address_t address,
1374 char **symbol_text)) AMD_DBGAPI_VERSION_0_54;
1375
1379 typedef enum
1380 {
1385 AMD_DBGAPI_INSTRUCTION_KIND_UNKNOWN = 0,
1391 AMD_DBGAPI_INSTRUCTION_KIND_SEQUENTIAL = 1,
1397 AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH = 2,
1404 AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH_CONDITIONAL = 3,
1412 AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_REGISTER_PAIR = 4,
1422 AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_CONDITIONAL_REGISTER_PAIR = 5,
1433 AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_CALL_REGISTER_PAIR = 6,
1443 AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_CALL_REGISTER_PAIRS = 7,
1448 AMD_DBGAPI_INSTRUCTION_KIND_TERMINATE = 8,
1462 AMD_DBGAPI_INSTRUCTION_KIND_TRAP = 9,
1467 AMD_DBGAPI_INSTRUCTION_KIND_HALT = 10,
1474 AMD_DBGAPI_INSTRUCTION_KIND_BARRIER = 11,
1480 AMD_DBGAPI_INSTRUCTION_KIND_SLEEP = 12,
1489 AMD_DBGAPI_INSTRUCTION_KIND_SPECIAL = 13
1490 } amd_dbgapi_instruction_kind_t;
1491
1495 typedef enum
1496 {
1500 AMD_DBGAPI_INSTRUCTION_PROPERTY_NONE = 0ULL
1501 } amd_dbgapi_instruction_properties_t;
1502
1577 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_classify_instruction (
1578 amd_dbgapi_architecture_id_t architecture_id,
1579 amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1580 const void *memory, amd_dbgapi_instruction_kind_t *instruction_kind,
1581 amd_dbgapi_instruction_properties_t *instruction_properties,
1582 void **instruction_information) AMD_DBGAPI_VERSION_0_58;
1583
1605 typedef struct amd_dbgapi_client_process_s *amd_dbgapi_client_process_id_t;
1606
1617 typedef struct
1618 {
1619 uint64_t handle;
1620 } amd_dbgapi_process_id_t;
1621
1625 #define AMD_DBGAPI_PROCESS_NONE \
1626 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_process_id_t, 0)
1627
1634 typedef enum
1635 {
1640 AMD_DBGAPI_PROCESS_INFO_NOTIFIER = 1,
1646 AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_COUNT = 2,
1652 AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_SHARE = 3,
1658 AMD_DBGAPI_PROCESS_INFO_PRECISE_MEMORY_SUPPORTED = 4,
1668 AMD_DBGAPI_PROCESS_INFO_OS_ID = 5
1669 } amd_dbgapi_process_info_t;
1670
1713 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_get_info (
1714 amd_dbgapi_process_id_t process_id, amd_dbgapi_process_info_t query,
1715 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_56;
1716
1806 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_attach (
1807 amd_dbgapi_client_process_id_t client_process_id,
1808 amd_dbgapi_process_id_t *process_id) AMD_DBGAPI_VERSION_0_56;
1809
1854 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_detach (
1855 amd_dbgapi_process_id_t process_id) AMD_DBGAPI_VERSION_0_54;
1856
1871 typedef enum
1872 {
1878 AMD_DBGAPI_PROGRESS_NORMAL = 0,
1902 AMD_DBGAPI_PROGRESS_NO_FORWARD = 1
1903 } amd_dbgapi_progress_t;
1904
1929 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_set_progress (
1930 amd_dbgapi_process_id_t process_id,
1931 amd_dbgapi_progress_t progress) AMD_DBGAPI_VERSION_0_54;
1932
1944 typedef enum
1945 {
1949 AMD_DBGAPI_WAVE_CREATION_NORMAL = 0,
1953 AMD_DBGAPI_WAVE_CREATION_STOP = 1
1954 } amd_dbgapi_wave_creation_t;
1955
1980 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_set_wave_creation (
1981 amd_dbgapi_process_id_t process_id,
1982 amd_dbgapi_wave_creation_t creation) AMD_DBGAPI_VERSION_0_54;
1983
2010 typedef struct
2011 {
2012 uint64_t handle;
2013 } amd_dbgapi_code_object_id_t;
2014
2018 #define AMD_DBGAPI_CODE_OBJECT_NONE \
2019 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_code_object_id_t, 0)
2020
2027 typedef enum
2028 {
2033 AMD_DBGAPI_CODE_OBJECT_INFO_PROCESS = 1,
2089 AMD_DBGAPI_CODE_OBJECT_INFO_URI_NAME = 2,
2095 AMD_DBGAPI_CODE_OBJECT_INFO_LOAD_ADDRESS = 3
2096 } amd_dbgapi_code_object_info_t;
2097
2136 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_code_object_get_info (
2137 amd_dbgapi_code_object_id_t code_object_id,
2138 amd_dbgapi_code_object_info_t query, size_t value_size,
2139 void *value) AMD_DBGAPI_VERSION_0_54;
2140
2190 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_code_object_list (
2191 amd_dbgapi_process_id_t process_id, size_t *code_object_count,
2192 amd_dbgapi_code_object_id_t **code_objects,
2193 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
2194
2211 typedef struct
2212 {
2213 uint64_t handle;
2214 } amd_dbgapi_agent_id_t;
2215
2219 #define AMD_DBGAPI_AGENT_NONE \
2220 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_agent_id_t, 0)
2221
2228 typedef enum
2229 {
2234 AMD_DBGAPI_AGENT_INFO_PROCESS = 1,
2240 AMD_DBGAPI_AGENT_INFO_NAME = 2,
2250 AMD_DBGAPI_AGENT_INFO_ARCHITECTURE = 3,
2255 AMD_DBGAPI_AGENT_INFO_STATE = 4,
2261 AMD_DBGAPI_AGENT_INFO_PCI_SLOT = 5,
2265 AMD_DBGAPI_AGENT_INFO_PCI_VENDOR_ID = 6,
2269 AMD_DBGAPI_AGENT_INFO_PCI_DEVICE_ID = 7,
2274 AMD_DBGAPI_AGENT_INFO_EXECUTION_UNIT_COUNT = 8,
2279 AMD_DBGAPI_AGENT_INFO_MAX_WAVES_PER_EXECUTION_UNIT = 9,
2284 AMD_DBGAPI_AGENT_INFO_OS_ID = 10
2285 } amd_dbgapi_agent_info_t;
2286
2290 typedef enum
2291 {
2295 AMD_DBGAPI_AGENT_STATE_SUPPORTED = 1,
2316 AMD_DBGAPI_AGENT_STATE_NOT_SUPPORTED = 2
2317 } amd_dbgapi_agent_state_t;
2318
2361 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_agent_get_info (
2362 amd_dbgapi_agent_id_t agent_id, amd_dbgapi_agent_info_t query,
2363 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_56;
2364
2416 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_agent_list (
2417 amd_dbgapi_process_id_t process_id, size_t *agent_count,
2418 amd_dbgapi_agent_id_t **agents,
2419 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
2420
2439 typedef struct
2440 {
2441 uint64_t handle;
2442 } amd_dbgapi_queue_id_t;
2443
2447 #define AMD_DBGAPI_QUEUE_NONE \
2448 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_queue_id_t, 0)
2449
2456 typedef enum
2457 {
2462 AMD_DBGAPI_QUEUE_INFO_AGENT = 1,
2467 AMD_DBGAPI_QUEUE_INFO_PROCESS = 2,
2472 AMD_DBGAPI_QUEUE_INFO_ARCHITECTURE = 3,
2477 AMD_DBGAPI_QUEUE_INFO_TYPE = 4,
2482 AMD_DBGAPI_QUEUE_INFO_STATE = 5,
2489 AMD_DBGAPI_QUEUE_INFO_ERROR_REASON = 6,
2494 AMD_DBGAPI_QUEUE_INFO_ADDRESS = 7,
2499 AMD_DBGAPI_QUEUE_INFO_SIZE = 8,
2504 AMD_DBGAPI_QUEUE_INFO_OS_ID = 9
2505 } amd_dbgapi_queue_info_t;
2506
2545 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_get_info (
2546 amd_dbgapi_queue_id_t queue_id, amd_dbgapi_queue_info_t query,
2547 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_58;
2548
2552 typedef enum
2553 {
2557 AMD_DBGAPI_QUEUE_STATE_VALID = 1,
2571 AMD_DBGAPI_QUEUE_STATE_ERROR = 2
2572 } amd_dbgapi_queue_state_t;
2573
2578 typedef enum
2579 {
2583 AMD_DBGAPI_EXCEPTION_NONE = 0ULL,
2587 AMD_DBGAPI_EXCEPTION_WAVE_ABORT = (1ULL << 0),
2597 AMD_DBGAPI_EXCEPTION_WAVE_TRAP = (1ULL << 1),
2613 AMD_DBGAPI_EXCEPTION_WAVE_MATH_ERROR = (1ULL << 2),
2617 AMD_DBGAPI_EXCEPTION_WAVE_ILLEGAL_INSTRUCTION = (1ULL << 3),
2623 AMD_DBGAPI_EXCEPTION_WAVE_MEMORY_VIOLATION = (1ULL << 4),
2628 AMD_DBGAPI_EXCEPTION_WAVE_APERTURE_VIOLATION = (1ULL << 5),
2632 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_DIM_INVALID = (1ULL << 16),
2636 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID = (1ULL << 17),
2640 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_CODE_INVALID = (1ULL << 18),
2644 AMD_DBGAPI_EXCEPTION_PACKET_UNSUPPORTED = (1ULL << 20),
2648 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID = (1ULL << 21),
2652 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_REGISTER_COUNT_TOO_LARGE = (1ULL << 22),
2656 AMD_DBGAPI_EXCEPTION_PACKET_VENDOR_UNSUPPORTED = (1ULL << 23),
2665 AMD_DBGAPI_EXCEPTION_QUEUE_PREEMPTION_ERROR = (1ULL << 31)
2666 } amd_dbgapi_exceptions_t;
2667
2720 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_queue_list (
2721 amd_dbgapi_process_id_t process_id, size_t *queue_count,
2722 amd_dbgapi_queue_id_t **queues,
2723 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
2724
2788 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_packet_list (
2789 amd_dbgapi_queue_id_t queue_id,
2790 amd_dbgapi_os_queue_packet_id_t *read_packet_id,
2791 amd_dbgapi_os_queue_packet_id_t *write_packet_id,
2792 size_t *packets_byte_size, void **packets_bytes) AMD_DBGAPI_VERSION_0_54;
2793
2812 typedef struct
2813 {
2814 uint64_t handle;
2815 } amd_dbgapi_dispatch_id_t;
2816
2820 #define AMD_DBGAPI_DISPATCH_NONE \
2821 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_dispatch_id_t, 0)
2822
2829 typedef enum
2830 {
2835 AMD_DBGAPI_DISPATCH_INFO_QUEUE = 1,
2840 AMD_DBGAPI_DISPATCH_INFO_AGENT = 2,
2845 AMD_DBGAPI_DISPATCH_INFO_PROCESS = 3,
2850 AMD_DBGAPI_DISPATCH_INFO_ARCHITECTURE = 4,
2856 AMD_DBGAPI_DISPATCH_INFO_OS_QUEUE_PACKET_ID = 5,
2861 AMD_DBGAPI_DISPATCH_INFO_BARRIER = 6,
2866 AMD_DBGAPI_DISPATCH_INFO_ACQUIRE_FENCE = 7,
2871 AMD_DBGAPI_DISPATCH_INFO_RELEASE_FENCE = 8,
2876 AMD_DBGAPI_DISPATCH_INFO_GRID_DIMENSIONS = 9,
2881 AMD_DBGAPI_DISPATCH_INFO_WORK_GROUP_SIZES = 10,
2886 AMD_DBGAPI_DISPATCH_INFO_GRID_SIZES = 11,
2891 AMD_DBGAPI_DISPATCH_INFO_PRIVATE_SEGMENT_SIZE = 12,
2896 AMD_DBGAPI_DISPATCH_INFO_GROUP_SEGMENT_SIZE = 13,
2901 AMD_DBGAPI_DISPATCH_INFO_KERNEL_ARGUMENT_SEGMENT_ADDRESS = 14,
2906 AMD_DBGAPI_DISPATCH_INFO_KERNEL_DESCRIPTOR_ADDRESS = 15,
2911 AMD_DBGAPI_DISPATCH_INFO_KERNEL_CODE_ENTRY_ADDRESS = 16,
2921 AMD_DBGAPI_DISPATCH_INFO_KERNEL_COMPLETION_ADDRESS = 17
2922 } amd_dbgapi_dispatch_info_t;
2923
2965 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dispatch_get_info (
2966 amd_dbgapi_dispatch_id_t dispatch_id, amd_dbgapi_dispatch_info_t query,
2967 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54;
2968
2975 typedef enum
2976 {
2980 AMD_DBGAPI_DISPATCH_BARRIER_NONE = 0,
2985 AMD_DBGAPI_DISPATCH_BARRIER_PRESENT = 1
2986 } amd_dbgapi_dispatch_barrier_t;
2987
2994 typedef enum
2995 {
2999 AMD_DBGAPI_DISPATCH_FENCE_SCOPE_NONE = 0,
3003 AMD_DBGAPI_DISPATCH_FENCE_SCOPE_AGENT = 1,
3007 AMD_DBGAPI_DISPATCH_FENCE_SCOPE_SYSTEM = 2
3008 } amd_dbgapi_dispatch_fence_scope_t;
3009
3058 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_dispatch_list (
3059 amd_dbgapi_process_id_t process_id, size_t *dispatch_count,
3060 amd_dbgapi_dispatch_id_t **dispatches,
3061 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
3062
3079 typedef struct
3080 {
3081 uint64_t handle;
3082 } amd_dbgapi_wave_id_t;
3083
3087 #define AMD_DBGAPI_WAVE_NONE \
3088 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_wave_id_t, 0)
3089
3096 typedef enum
3097 {
3102 AMD_DBGAPI_WAVE_INFO_STATE = 1,
3109 AMD_DBGAPI_WAVE_INFO_STOP_REASON = 2,
3122 AMD_DBGAPI_WAVE_INFO_WATCHPOINTS = 3,
3132 AMD_DBGAPI_WAVE_INFO_DISPATCH = 4,
3137 AMD_DBGAPI_WAVE_INFO_QUEUE = 5,
3142 AMD_DBGAPI_WAVE_INFO_AGENT = 6,
3147 AMD_DBGAPI_WAVE_INFO_PROCESS = 7,
3152 AMD_DBGAPI_WAVE_INFO_ARCHITECTURE = 8,
3158 AMD_DBGAPI_WAVE_INFO_PC = 9,
3166 AMD_DBGAPI_WAVE_INFO_EXEC_MASK = 10,
3177 AMD_DBGAPI_WAVE_INFO_WORK_GROUP_COORD = 11,
3189 AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORK_GROUP = 12,
3194 AMD_DBGAPI_WAVE_INFO_LANE_COUNT = 13
3195 } amd_dbgapi_wave_info_t;
3196
3243 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_get_info (
3244 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_wave_info_t query,
3245 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_58;
3246
3250 typedef enum
3251 {
3255 AMD_DBGAPI_WAVE_STATE_RUN = 1,
3260 AMD_DBGAPI_WAVE_STATE_SINGLE_STEP = 2,
3273 AMD_DBGAPI_WAVE_STATE_STOP = 3
3274 } amd_dbgapi_wave_state_t;
3275
3282 typedef enum
3283 {
3288 AMD_DBGAPI_WAVE_STOP_REASON_NONE = 0ULL,
3294 AMD_DBGAPI_WAVE_STOP_REASON_BREAKPOINT = (1ULL << 0),
3306 AMD_DBGAPI_WAVE_STOP_REASON_WATCHPOINT = (1ULL << 1),
3310 AMD_DBGAPI_WAVE_STOP_REASON_SINGLE_STEP = (1ULL << 2),
3318 AMD_DBGAPI_WAVE_STOP_REASON_FP_INPUT_DENORMAL = (1ULL << 3),
3326 AMD_DBGAPI_WAVE_STOP_REASON_FP_DIVIDE_BY_0 = (1ULL << 4),
3334 AMD_DBGAPI_WAVE_STOP_REASON_FP_OVERFLOW = (1ULL << 5),
3342 AMD_DBGAPI_WAVE_STOP_REASON_FP_UNDERFLOW = (1ULL << 6),
3350 AMD_DBGAPI_WAVE_STOP_REASON_FP_INEXACT = (1ULL << 7),
3358 AMD_DBGAPI_WAVE_STOP_REASON_FP_INVALID_OPERATION = (1ULL << 8),
3366 AMD_DBGAPI_WAVE_STOP_REASON_INT_DIVIDE_BY_0 = (1ULL << 9),
3381 AMD_DBGAPI_WAVE_STOP_REASON_DEBUG_TRAP = (1ULL << 10),
3397 AMD_DBGAPI_WAVE_STOP_REASON_ASSERT_TRAP = (1ULL << 11),
3407 AMD_DBGAPI_WAVE_STOP_REASON_TRAP = (1ULL << 12),
3423 AMD_DBGAPI_WAVE_STOP_REASON_MEMORY_VIOLATION = (1ULL << 13),
3438 AMD_DBGAPI_WAVE_STOP_REASON_APERTURE_VIOLATION = (1ULL << 14),
3447 AMD_DBGAPI_WAVE_STOP_REASON_ILLEGAL_INSTRUCTION = (1ULL << 15),
3460 AMD_DBGAPI_WAVE_STOP_REASON_ECC_ERROR = (1ULL << 16),
3467 AMD_DBGAPI_WAVE_STOP_REASON_FATAL_HALT = (1ULL << 17)
3468 } amd_dbgapi_wave_stop_reasons_t;
3469
3517 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_wave_list (
3518 amd_dbgapi_process_id_t process_id, size_t *wave_count,
3519 amd_dbgapi_wave_id_t **waves,
3520 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
3521
3601 amd_dbgapi_status_t AMD_DBGAPI
3602 amd_dbgapi_wave_stop (amd_dbgapi_wave_id_t wave_id) AMD_DBGAPI_VERSION_0_54;
3603
3607 typedef enum
3608 {
3612 AMD_DBGAPI_RESUME_MODE_NORMAL = 0,
3616 AMD_DBGAPI_RESUME_MODE_SINGLE_STEP = 1
3617 } amd_dbgapi_resume_mode_t;
3618
3770 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_resume (
3771 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_resume_mode_t resume_mode,
3772 amd_dbgapi_exceptions_t exceptions) AMD_DBGAPI_VERSION_0_58;
3773
3874 typedef struct
3875 {
3876 uint64_t handle;
3877 } amd_dbgapi_displaced_stepping_id_t;
3878
3882 #define AMD_DBGAPI_DISPLACED_STEPPING_NONE \
3883 (amd_dbgapi_displaced_stepping_id_t{ 0 })
3884
3892 typedef enum
3893 {
3898 AMD_DBGAPI_DISPLACED_STEPPING_INFO_PROCESS = 1
3899 } amd_dbgapi_displaced_stepping_info_t;
3900
3940 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_get_info (
3941 amd_dbgapi_displaced_stepping_id_t displaced_stepping_id,
3942 amd_dbgapi_displaced_stepping_info_t query, size_t value_size,
3943 void *value) AMD_DBGAPI_VERSION_0_54;
3944
4026 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_start (
4027 amd_dbgapi_wave_id_t wave_id, const void *saved_instruction_bytes,
4028 amd_dbgapi_displaced_stepping_id_t *displaced_stepping)
4029 AMD_DBGAPI_VERSION_0_54;
4030
4081 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_complete (
4082 amd_dbgapi_wave_id_t wave_id,
4083 amd_dbgapi_displaced_stepping_id_t displaced_stepping)
4084 AMD_DBGAPI_VERSION_0_54;
4085
4119 typedef struct
4120 {
4121 uint64_t handle;
4122 } amd_dbgapi_watchpoint_id_t;
4123
4127 #define AMD_DBGAPI_WATCHPOINT_NONE \
4128 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_watchpoint_id_t, 0)
4129
4136 typedef enum
4137 {
4142 AMD_DBGAPI_WATCHPOINT_INFO_PROCESS = 1,
4147 AMD_DBGAPI_WATCHPOINT_INFO_ADDRESS = 2,
4152 AMD_DBGAPI_WATCHPOINT_INFO_SIZE = 3
4153 } amd_dbgapi_watchpoint_info_t;
4154
4193 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_watchpoint_get_info (
4194 amd_dbgapi_watchpoint_id_t watchpoint_id,
4195 amd_dbgapi_watchpoint_info_t query, size_t value_size,
4196 void *value) AMD_DBGAPI_VERSION_0_54;
4197
4204 typedef enum
4205 {
4209 AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSUPPORTED = 0,
4215 AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSHARED = 1,
4221 AMD_DBGAPI_WATCHPOINT_SHARE_KIND_SHARED = 2
4222 } amd_dbgapi_watchpoint_share_kind_t;
4223
4230 typedef enum
4231 {
4235 AMD_DBGAPI_WATCHPOINT_KIND_LOAD = 1,
4240 AMD_DBGAPI_WATCHPOINT_KIND_STORE_AND_RMW = 2,
4244 AMD_DBGAPI_WATCHPOINT_KIND_RMW = 3,
4249 AMD_DBGAPI_WATCHPOINT_KIND_ALL = 4
4250 } amd_dbgapi_watchpoint_kind_t;
4251
4258 typedef struct
4259 {
4260 size_t count;
4261 amd_dbgapi_watchpoint_id_t *watchpoint_ids;
4262 } amd_dbgapi_watchpoint_list_t;
4263
4331 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_set_watchpoint (
4332 amd_dbgapi_process_id_t process_id, amd_dbgapi_global_address_t address,
4333 amd_dbgapi_size_t size, amd_dbgapi_watchpoint_kind_t kind,
4334 amd_dbgapi_watchpoint_id_t *watchpoint_id) AMD_DBGAPI_VERSION_0_62;
4335
4360 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_remove_watchpoint (
4361 amd_dbgapi_process_id_t process_id,
4362 amd_dbgapi_watchpoint_id_t watchpoint_id) AMD_DBGAPI_VERSION_0_54;
4363
4385 typedef struct
4386 {
4387 uint64_t handle;
4388 } amd_dbgapi_register_class_id_t;
4389
4393 #define AMD_DBGAPI_REGISTER_CLASS_NONE \
4394 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_register_class_id_t, 0)
4395
4403 typedef enum
4404 {
4409 AMD_DBGAPI_REGISTER_CLASS_INFO_ARCHITECTURE = 1,
4416 AMD_DBGAPI_REGISTER_CLASS_INFO_NAME = 2
4417 } amd_dbgapi_register_class_info_t;
4418
4457 amd_dbgapi_status_t AMD_DBGAPI
4458 amd_dbgapi_architecture_register_class_get_info (
4459 amd_dbgapi_register_class_id_t register_class_id,
4460 amd_dbgapi_register_class_info_t query, size_t value_size,
4461 void *value) AMD_DBGAPI_VERSION_0_54;
4462
4503 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_class_list (
4504 amd_dbgapi_architecture_id_t architecture_id, size_t *register_class_count,
4505 amd_dbgapi_register_class_id_t **register_classes) AMD_DBGAPI_VERSION_0_54;
4506
4515 typedef struct
4516 {
4517 uint64_t handle;
4518 } amd_dbgapi_register_id_t;
4519
4523 #define AMD_DBGAPI_REGISTER_NONE \
4524 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_register_id_t, 0)
4525
4532 typedef enum
4533 {
4537 AMD_DBGAPI_REGISTER_PROPERTY_NONE = 0ULL,
4543 AMD_DBGAPI_REGISTER_PROPERTY_READONLY_BITS = (1ULL << 0),
4550 AMD_DBGAPI_REGISTER_PROPERTY_VOLATILE = (1ULL << 1),
4557 AMD_DBGAPI_REGISTER_PROPERTY_INVALIDATE_VOLATILE = (1ULL << 2)
4558 } amd_dbgapi_register_properties_t;
4559
4566 typedef enum
4567 {
4572 AMD_DBGAPI_REGISTER_INFO_ARCHITECTURE = 1,
4579 AMD_DBGAPI_REGISTER_INFO_NAME = 2,
4584 AMD_DBGAPI_REGISTER_INFO_SIZE = 3,
4645 AMD_DBGAPI_REGISTER_INFO_TYPE = 4,
4650 AMD_DBGAPI_REGISTER_INFO_DWARF = 5,
4655 AMD_DBGAPI_REGISTER_INFO_PROPERTIES = 6
4656 } amd_dbgapi_register_info_t;
4657
4697 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_get_info (
4698 amd_dbgapi_register_id_t register_id, amd_dbgapi_register_info_t query,
4699 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_58;
4700
4704 typedef enum
4705 {
4709 AMD_DBGAPI_REGISTER_ABSENT = 0,
4713 AMD_DBGAPI_REGISTER_PRESENT = 1
4714 } amd_dbgapi_register_exists_t;
4715
4749 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_exists (
4750 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
4751 amd_dbgapi_register_exists_t *exists) AMD_DBGAPI_VERSION_0_54;
4752
4797 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_list (
4798 amd_dbgapi_architecture_id_t architecture_id, size_t *register_count,
4799 amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_54;
4800
4844 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_list (
4845 amd_dbgapi_wave_id_t wave_id, size_t *register_count,
4846 amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_54;
4847
4884 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dwarf_register_to_register (
4885 amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_register,
4886 amd_dbgapi_register_id_t *register_id) AMD_DBGAPI_VERSION_0_54;
4887
4891 typedef enum
4892 {
4896 AMD_DBGAPI_REGISTER_CLASS_STATE_NOT_MEMBER = 0,
4900 AMD_DBGAPI_REGISTER_CLASS_STATE_MEMBER = 1
4901 } amd_dbgapi_register_class_state_t;
4902
4940 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_is_in_register_class (
4941 amd_dbgapi_register_class_id_t register_class_id,
4942 amd_dbgapi_register_id_t register_id,
4943 amd_dbgapi_register_class_state_t *register_class_state)
4944 AMD_DBGAPI_VERSION_0_54;
4945
5002 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_register (
5003 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
5004 amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size,
5005 void *value) AMD_DBGAPI_VERSION_0_62;
5006
5068 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_register (
5069 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
5070 amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size,
5071 const void *value) AMD_DBGAPI_VERSION_0_62;
5072
5126 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_prefetch_register (
5127 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
5128 amd_dbgapi_size_t register_count) AMD_DBGAPI_VERSION_0_62;
5129
5137 typedef struct
5138 {
5139 amd_dbgapi_global_address_t target_address;
5140 amd_dbgapi_register_id_t saved_return_address_register[2];
5141 } amd_dbgapi_direct_call_register_pair_information_t;
5142
5182 typedef uint32_t amd_dbgapi_lane_id_t;
5183
5187 #define AMD_DBGAPI_LANE_NONE ((amd_dbgapi_lane_id_t) (-1))
5188
5202 typedef struct
5203 {
5204 uint64_t handle;
5205 } amd_dbgapi_address_class_id_t;
5206
5210 #define AMD_DBGAPI_ADDRESS_CLASS_NONE \
5211 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_address_class_id_t, 0)
5212
5220 typedef enum
5221 {
5228 AMD_DBGAPI_ADDRESS_CLASS_INFO_NAME = 1,
5237 AMD_DBGAPI_ADDRESS_CLASS_INFO_ADDRESS_SPACE = 2,
5242 AMD_DBGAPI_ADDRESS_CLASS_INFO_DWARF = 3
5243 } amd_dbgapi_address_class_info_t;
5244
5284 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_class_get_info (
5285 amd_dbgapi_address_class_id_t address_class_id,
5286 amd_dbgapi_address_class_info_t query, size_t value_size,
5287 void *value) AMD_DBGAPI_VERSION_0_62;
5288
5330 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_address_class_list (
5331 amd_dbgapi_architecture_id_t architecture_id, size_t *address_class_count,
5332 amd_dbgapi_address_class_id_t **address_classes) AMD_DBGAPI_VERSION_0_54;
5333
5371 amd_dbgapi_status_t AMD_DBGAPI
5372 amd_dbgapi_dwarf_address_class_to_address_class (
5373 amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_class,
5374 amd_dbgapi_address_class_id_t *address_class_id) AMD_DBGAPI_VERSION_0_54;
5375
5387 typedef struct
5388 {
5389 uint64_t handle;
5390 } amd_dbgapi_address_space_id_t;
5391
5395 #define AMD_DBGAPI_ADDRESS_SPACE_NONE \
5396 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_address_space_id_t, 0)
5397
5404 #define AMD_DBGAPI_ADDRESS_SPACE_GLOBAL \
5405 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_address_space_id_t, 1)
5406
5410 typedef enum
5411 {
5416 AMD_DBGAPI_ADDRESS_SPACE_ACCESS_ALL = 1,
5421 AMD_DBGAPI_ADDRESS_SPACE_ACCESS_PROGRAM_CONSTANT = 2,
5426 AMD_DBGAPI_ADDRESS_SPACE_ACCESS_DISPATCH_CONSTANT = 3
5427 } amd_dbgapi_address_space_access_t;
5428
5436 typedef enum
5437 {
5444 AMD_DBGAPI_ADDRESS_SPACE_INFO_NAME = 1,
5449 AMD_DBGAPI_ADDRESS_SPACE_INFO_ADDRESS_SIZE = 2,
5454 AMD_DBGAPI_ADDRESS_SPACE_INFO_NULL_ADDRESS = 3,
5459 AMD_DBGAPI_ADDRESS_SPACE_INFO_ACCESS = 4,
5464 AMD_DBGAPI_ADDRESS_SPACE_INFO_DWARF = 5
5465 } amd_dbgapi_address_space_info_t;
5466
5505 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_space_get_info (
5506 amd_dbgapi_address_space_id_t address_space_id,
5507 amd_dbgapi_address_space_info_t query, size_t value_size,
5508 void *value) AMD_DBGAPI_VERSION_0_62;
5509
5548 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_address_space_list (
5549 amd_dbgapi_architecture_id_t architecture_id, size_t *address_space_count,
5550 amd_dbgapi_address_space_id_t **address_spaces) AMD_DBGAPI_VERSION_0_54;
5551
5590 amd_dbgapi_status_t AMD_DBGAPI
5591 amd_dbgapi_dwarf_address_space_to_address_space (
5592 amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_space,
5593 amd_dbgapi_address_space_id_t *address_space_id) AMD_DBGAPI_VERSION_0_54;
5594
5611 typedef uint64_t amd_dbgapi_segment_address_t;
5612
5717 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_convert_address_space (
5718 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id,
5719 amd_dbgapi_address_space_id_t source_address_space_id,
5720 amd_dbgapi_segment_address_t source_segment_address,
5721 amd_dbgapi_address_space_id_t destination_address_space_id,
5722 amd_dbgapi_segment_address_t *destination_segment_address,
5723 amd_dbgapi_size_t *destination_contiguous_bytes)
5724 AMD_DBGAPI_VERSION_0_62;
5725
5730 typedef enum
5731 {
5736 AMD_DBGAPI_ADDRESS_CLASS_STATE_NOT_MEMBER = 0,
5741 AMD_DBGAPI_ADDRESS_CLASS_STATE_MEMBER = 1
5742 } amd_dbgapi_address_class_state_t;
5743
5804 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_is_in_address_class (
5805 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id,
5806 amd_dbgapi_address_space_id_t address_space_id,
5807 amd_dbgapi_segment_address_t segment_address,
5808 amd_dbgapi_address_class_id_t address_class_id,
5809 amd_dbgapi_address_class_state_t *address_class_state)
5810 AMD_DBGAPI_VERSION_0_54;
5811
5907 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_memory (
5908 amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5909 amd_dbgapi_lane_id_t lane_id,
5910 amd_dbgapi_address_space_id_t address_space_id,
5911 amd_dbgapi_segment_address_t segment_address,
5912 amd_dbgapi_size_t *value_size, void *value) AMD_DBGAPI_VERSION_0_54;
5913
6009 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_memory (
6010 amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
6011 amd_dbgapi_lane_id_t lane_id,
6012 amd_dbgapi_address_space_id_t address_space_id,
6013 amd_dbgapi_segment_address_t segment_address,
6014 amd_dbgapi_size_t *value_size, const void *value) AMD_DBGAPI_VERSION_0_54;
6015
6034 typedef enum
6035 {
6040 AMD_DBGAPI_MEMORY_PRECISION_NONE = 0,
6045 AMD_DBGAPI_MEMORY_PRECISION_PRECISE = 1
6046 } amd_dbgapi_memory_precision_t;
6047
6086 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_set_memory_precision (
6087 amd_dbgapi_process_id_t process_id,
6088 amd_dbgapi_memory_precision_t memory_precision) AMD_DBGAPI_VERSION_0_54;
6089
6121 typedef struct
6122 {
6123 uint64_t handle;
6124 } amd_dbgapi_event_id_t;
6125
6129 #define AMD_DBGAPI_EVENT_NONE \
6130 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_event_id_t, 0)
6131
6135 typedef enum
6136 {
6140 AMD_DBGAPI_EVENT_KIND_NONE = 0,
6144 AMD_DBGAPI_EVENT_KIND_WAVE_STOP = 1,
6159 AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED = 2,
6181 AMD_DBGAPI_EVENT_KIND_CODE_OBJECT_LIST_UPDATED = 3,
6194 AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME = 4,
6209 AMD_DBGAPI_EVENT_KIND_RUNTIME = 5,
6243 AMD_DBGAPI_EVENT_KIND_QUEUE_ERROR = 6
6244 } amd_dbgapi_event_kind_t;
6245
6281 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_next_pending_event (
6282 amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t *event_id,
6283 amd_dbgapi_event_kind_t *kind) AMD_DBGAPI_VERSION_0_54;
6284
6288 typedef enum
6289 {
6294 AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS = 1,
6298 AMD_DBGAPI_RUNTIME_STATE_UNLOADED = 2,
6304 AMD_DBGAPI_RUNTIME_STATE_LOADED_ERROR_RESTRICTION = 3
6305 } amd_dbgapi_runtime_state_t;
6306
6313 typedef enum
6314 {
6319 AMD_DBGAPI_EVENT_INFO_PROCESS = 1,
6324 AMD_DBGAPI_EVENT_INFO_KIND = 2,
6330 AMD_DBGAPI_EVENT_INFO_WAVE = 3,
6335 AMD_DBGAPI_EVENT_INFO_BREAKPOINT = 4,
6340 AMD_DBGAPI_EVENT_INFO_CLIENT_THREAD = 5,
6347 AMD_DBGAPI_EVENT_INFO_RUNTIME_STATE = 6,
6352 AMD_DBGAPI_EVENT_INFO_QUEUE = 7
6353 } amd_dbgapi_event_info_t;
6354
6394 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_get_info (
6395 amd_dbgapi_event_id_t event_id, amd_dbgapi_event_info_t query,
6396 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54;
6397
6423 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_processed (
6424 amd_dbgapi_event_id_t event_id) AMD_DBGAPI_VERSION_0_54;
6425
6447 typedef enum
6448 {
6452 AMD_DBGAPI_LOG_LEVEL_NONE = 0,
6457 AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR = 1,
6461 AMD_DBGAPI_LOG_LEVEL_WARNING = 2,
6465 AMD_DBGAPI_LOG_LEVEL_INFO = 3,
6469 AMD_DBGAPI_LOG_LEVEL_TRACE = 4,
6473 AMD_DBGAPI_LOG_LEVEL_VERBOSE = 5
6474 } amd_dbgapi_log_level_t;
6475
6494 void AMD_DBGAPI amd_dbgapi_set_log_level (amd_dbgapi_log_level_t level)
6495 AMD_DBGAPI_VERSION_0_54;
6496
6523 typedef struct
6524 {
6525 uint64_t handle;
6526 } amd_dbgapi_breakpoint_id_t;
6527
6531 #define AMD_DBGAPI_BREAKPOINT_NONE \
6532 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_breakpoint_id_t, 0)
6533
6540 typedef enum
6541 {
6546 AMD_DBGAPI_BREAKPOINT_INFO_PROCESS = 1
6547 } amd_dbgapi_breakpoint_info_t;
6548
6587 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_breakpoint_get_info (
6588 amd_dbgapi_breakpoint_id_t breakpoint_id,
6589 amd_dbgapi_breakpoint_info_t query, size_t value_size,
6590 void *value) AMD_DBGAPI_VERSION_0_54;
6591
6595 typedef enum
6596 {
6600 AMD_DBGAPI_BREAKPOINT_ACTION_RESUME = 1,
6604 AMD_DBGAPI_BREAKPOINT_ACTION_HALT = 2
6605 } amd_dbgapi_breakpoint_action_t;
6606
6616 typedef struct amd_dbgapi_client_thread_s *amd_dbgapi_client_thread_id_t;
6617
6655 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_report_breakpoint_hit (
6656 amd_dbgapi_breakpoint_id_t breakpoint_id,
6657 amd_dbgapi_client_thread_id_t client_thread_id,
6658 amd_dbgapi_breakpoint_action_t *breakpoint_action) AMD_DBGAPI_VERSION_0_54;
6659
6666 struct amd_dbgapi_callbacks_s
6667 {
6668
6680 void *(*allocate_memory) (size_t byte_size);
6681
6698 void (*deallocate_memory) (void *data);
6699
6727 amd_dbgapi_status_t (*get_os_pid) (
6728 amd_dbgapi_client_process_id_t client_process_id,
6729 amd_dbgapi_os_process_id_t *os_pid);
6730
6766 amd_dbgapi_status_t (*insert_breakpoint) (
6767 amd_dbgapi_client_process_id_t client_process_id,
6768 amd_dbgapi_global_address_t address,
6769 amd_dbgapi_breakpoint_id_t breakpoint_id);
6770
6801 amd_dbgapi_status_t (*remove_breakpoint) (
6802 amd_dbgapi_client_process_id_t client_process_id,
6803 amd_dbgapi_breakpoint_id_t breakpoint_id);
6804
6813 void (*log_message) (amd_dbgapi_log_level_t level, const char *message);
6814 };
6815
6818 #if defined(__cplusplus)
6819 } /* extern "C" */
6820 #endif /* defined (__cplusplus) */
6821
6822 #endif /* amd-dbgapi.h */
AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_MULTIPLE_PRODUCER
@ AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_MULTIPLE_PRODUCER
Queue supports the HSA kernel dispatch with multiple producers protocol.
Definition: amd-dbgapi.h:671
amd_dbgapi_address_class_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_class_get_info(amd_dbgapi_address_class_id_t address_class_id, amd_dbgapi_address_class_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_62
Query information about a source language address class of an architecture.
amd_dbgapi_instruction_properties_t
amd_dbgapi_instruction_properties_t
A bit mask of the properties of an instruction.
Definition: amd-dbgapi.h:1496
AMD_DBGAPI_REGISTER_INFO_PROPERTIES
@ AMD_DBGAPI_REGISTER_INFO_PROPERTIES
Return the register's properties.
Definition: amd-dbgapi.h:4655
AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_COOPERATIVE
@ AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_COOPERATIVE
Queue supports HSA kernel dispatch with multiple producers protocol that supports cooperative dispatc...
Definition: amd-dbgapi.h:697
AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORK_GROUP
@ AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORK_GROUP
The wave's number in the workgroup.
Definition: amd-dbgapi.h:3189
amd_dbgapi_client_process_id_t
struct amd_dbgapi_client_process_s * amd_dbgapi_client_process_id_t
Opaque client process handle.
Definition: amd-dbgapi.h:1605
AMD_DBGAPI_ARCHITECTURE_INFO_ELF_AMDGPU_MACHINE
@ AMD_DBGAPI_ARCHITECTURE_INFO_ELF_AMDGPU_MACHINE
Return the AMD GPU ELF EF_AMDGPU_MACH value corresponding to the architecture.
Definition: amd-dbgapi.h:1152
amd_dbgapi_architecture_id_t
Opaque architecture handle.
Definition: amd-dbgapi.h:1119
amd_dbgapi_event_processed
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_processed(amd_dbgapi_event_id_t event_id) AMD_DBGAPI_VERSION_0_54
Report that an event has been processed.
AMD_DBGAPI_STATUS_FATAL
@ AMD_DBGAPI_STATUS_FATAL
A fatal error has occurred.
Definition: amd-dbgapi.h:756
amd_dbgapi_wave_creation_t
amd_dbgapi_wave_creation_t
The kinds of wave creation supported by the hardware.
Definition: amd-dbgapi.h:1945
AMD_DBGAPI_STATUS_ERROR_WAVE_OUTSTANDING_STOP
@ AMD_DBGAPI_STATUS_ERROR_WAVE_OUTSTANDING_STOP
The wave has an outstanding stop request.
Definition: amd-dbgapi.h:859
amd_dbgapi_watchpoint_list_t::count
size_t count
Definition: amd-dbgapi.h:4260
amd_dbgapi_process_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:1619
AMD_DBGAPI_EVENT_KIND_WAVE_STOP
@ AMD_DBGAPI_EVENT_KIND_WAVE_STOP
A wave has stopped.
Definition: amd-dbgapi.h:6144
AMD_DBGAPI_DISPATCH_INFO_KERNEL_DESCRIPTOR_ADDRESS
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_DESCRIPTOR_ADDRESS
Return the dispatch kernel descriptor address.
Definition: amd-dbgapi.h:2906
AMD_DBGAPI_EVENT_INFO_QUEUE
@ AMD_DBGAPI_EVENT_INFO_QUEUE
Return the queue of a AMD_DBGAPI_EVENT_KIND_QUEUE_ERROR event.
Definition: amd-dbgapi.h:6352
amd_dbgapi_dispatch_info_t
amd_dbgapi_dispatch_info_t
Dispatch queries that are supported by amd_dbgapi_dispatch_get_info.
Definition: amd-dbgapi.h:2830
AMD_DBGAPI_EXCEPTION_WAVE_ABORT
@ AMD_DBGAPI_EXCEPTION_WAVE_ABORT
A wave on the queue executed a trap instruction used to abort a dispatch.
Definition: amd-dbgapi.h:2587
AMD_DBGAPI_DISPATCH_INFO_QUEUE
@ AMD_DBGAPI_DISPATCH_INFO_QUEUE
Return the queue to which this dispatch belongs.
Definition: amd-dbgapi.h:2835
AMD_DBGAPI_ARCHITECTURE_INFO_MINIMUM_INSTRUCTION_ALIGNMENT
@ AMD_DBGAPI_ARCHITECTURE_INFO_MINIMUM_INSTRUCTION_ALIGNMENT
Return the minimum instruction alignment in bytes for the architecture.
Definition: amd-dbgapi.h:1163
AMD_DBGAPI_STATUS_ERROR_NOT_SUPPORTED
@ AMD_DBGAPI_STATUS_ERROR_NOT_SUPPORTED
The operation is not supported.
Definition: amd-dbgapi.h:770
amd_dbgapi_watchpoint_info_t
amd_dbgapi_watchpoint_info_t
Watchpoint queries that are supported by amd_dbgapi_watchpoint_get_info.
Definition: amd-dbgapi.h:4137
AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT
An invalid argument was given to the function.
Definition: amd-dbgapi.h:774
AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED
@ AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED
A command for a wave was not able to complete because the wave has terminated.
Definition: amd-dbgapi.h:6159
amd_dbgapi_register_class_state_t
amd_dbgapi_register_class_state_t
Indication of whether a register is a member of a register class.
Definition: amd-dbgapi.h:4892
amd_dbgapi_register_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:4517
amd_dbgapi_os_queue_packet_id_t
uint64_t amd_dbgapi_os_queue_packet_id_t
Native operating system queue packet ID.
Definition: amd-dbgapi.h:639
amd_dbgapi_register_class_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:4387
amd_dbgapi_read_register
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_register(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size, void *value) AMD_DBGAPI_VERSION_0_62
Read a register.
AMD_DBGAPI_STATUS_ERROR_REGISTER_NOT_AVAILABLE
@ AMD_DBGAPI_STATUS_ERROR_REGISTER_NOT_AVAILABLE
The register handle is valid, but specifies a register that is not allocated in the associated wave.
Definition: amd-dbgapi.h:942
AMD_DBGAPI_AGENT_INFO_MAX_WAVES_PER_EXECUTION_UNIT
@ AMD_DBGAPI_AGENT_INFO_MAX_WAVES_PER_EXECUTION_UNIT
Maximum number of waves supported by an execution unit.
Definition: amd-dbgapi.h:2279
AMD_DBGAPI_ADDRESS_CLASS_STATE_NOT_MEMBER
@ AMD_DBGAPI_ADDRESS_CLASS_STATE_NOT_MEMBER
The segment address in the address space is not a member of the source language address class.
Definition: amd-dbgapi.h:5736
amd_dbgapi_watchpoint_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:4121
amd_dbgapi_watchpoint_kind_t
amd_dbgapi_watchpoint_kind_t
Watchpoint memory access kinds.
Definition: amd-dbgapi.h:4231
amd_dbgapi_address_class_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:5204
AMD_DBGAPI_AGENT_STATE_NOT_SUPPORTED
@ AMD_DBGAPI_AGENT_STATE_NOT_SUPPORTED
Agent does not support debugging.
Definition: amd-dbgapi.h:2316
AMD_DBGAPI_WAVE_STOP_REASON_FP_OVERFLOW
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_OVERFLOW
The wave stopped due to triggering an enabled floating point overflow exception.
Definition: amd-dbgapi.h:3334
AMD_DBGAPI_STATUS_ERROR_ILLEGAL_INSTRUCTION
@ AMD_DBGAPI_STATUS_ERROR_ILLEGAL_INSTRUCTION
The bytes being disassembled are not a legal instruction.
Definition: amd-dbgapi.h:814
amd_dbgapi_breakpoint_action_t
amd_dbgapi_breakpoint_action_t
The action to perform after reporting a breakpoint has been hit.
Definition: amd-dbgapi.h:6596
amd_dbgapi_set_memory_precision
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_set_memory_precision(amd_dbgapi_process_id_t process_id, amd_dbgapi_memory_precision_t memory_precision) AMD_DBGAPI_VERSION_0_54
Control precision of memory access reporting.
AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID
The breakpoint handle is invalid.
Definition: amd-dbgapi.h:925
AMD_DBGAPI_WAVE_INFO_PROCESS
@ AMD_DBGAPI_WAVE_INFO_PROCESS
Return the process to which this wave belongs.
Definition: amd-dbgapi.h:3147
AMD_DBGAPI_WAVE_STOP_REASON_MEMORY_VIOLATION
@ AMD_DBGAPI_WAVE_STOP_REASON_MEMORY_VIOLATION
The wave stopped due to a memory violation.
Definition: amd-dbgapi.h:3423
AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_STOPPED
@ AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_STOPPED
The wave is not stopped.
Definition: amd-dbgapi.h:851
AMD_DBGAPI_WAVE_STOP_REASON_FP_INVALID_OPERATION
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_INVALID_OPERATION
The wave stopped due to triggering an enabled floating point invalid operation exception.
Definition: amd-dbgapi.h:3358
AMD_DBGAPI_WAVE_STOP_REASON_APERTURE_VIOLATION
@ AMD_DBGAPI_WAVE_STOP_REASON_APERTURE_VIOLATION
The wave stopped due to an aperture violation.
Definition: amd-dbgapi.h:3438
AMD_DBGAPI_EXCEPTION_WAVE_TRAP
@ AMD_DBGAPI_EXCEPTION_WAVE_TRAP
A wave on the queue executed an instruction that caused an exception.
Definition: amd-dbgapi.h:2597
amd_dbgapi_prefetch_register
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_prefetch_register(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t register_count) AMD_DBGAPI_VERSION_0_62
Prefetch register values.
amd_dbgapi_register_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_get_info(amd_dbgapi_register_id_t register_id, amd_dbgapi_register_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_58
Query information about a register.
AMD_DBGAPI_DISPLACED_STEPPING_INFO_PROCESS
@ AMD_DBGAPI_DISPLACED_STEPPING_INFO_PROCESS
Return the process to which this displaced stepping belongs.
Definition: amd-dbgapi.h:3898
amd_dbgapi_architecture_register_class_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_class_list(amd_dbgapi_architecture_id_t architecture_id, size_t *register_class_count, amd_dbgapi_register_class_id_t **register_classes) AMD_DBGAPI_VERSION_0_54
Report the list of register classes supported by the architecture.
AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_DIM_INVALID
@ AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_DIM_INVALID
A dispatch packet on the queue has an invalid dimension.
Definition: amd-dbgapi.h:2632
amd_dbgapi_write_memory
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_memory(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_segment_address_t segment_address, amd_dbgapi_size_t *value_size, const void *value) AMD_DBGAPI_VERSION_0_54
Write memory.
AMD_DBGAPI_WAVE_STOP_REASON_TRAP
@ AMD_DBGAPI_WAVE_STOP_REASON_TRAP
The wave stopped due to executing an trap instruction other than the AMD_DBGAPI_WAVE_STOP_REASON_DEBU...
Definition: amd-dbgapi.h:3407
AMD_DBGAPI_QUEUE_INFO_AGENT
@ AMD_DBGAPI_QUEUE_INFO_AGENT
Return the agent to which this queue belongs.
Definition: amd-dbgapi.h:2462
AMD_DBGAPI_ADDRESS_SPACE_INFO_NULL_ADDRESS
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_NULL_ADDRESS
Return the NULL segment address value in the address space.
Definition: amd-dbgapi.h:5454
amd_dbgapi_address_space_id_t
Opaque address space handle.
Definition: amd-dbgapi.h:5388
AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSUPPORTED
@ AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSUPPORTED
Watchpoints are not supported.
Definition: amd-dbgapi.h:4209
AMD_DBGAPI_EVENT_INFO_PROCESS
@ AMD_DBGAPI_EVENT_INFO_PROCESS
Return the process to which this event belongs.
Definition: amd-dbgapi.h:6319
AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH_CONDITIONAL
@ AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH_CONDITIONAL
The instruction conditionally branches to a literal address.
Definition: amd-dbgapi.h:1404
amd_dbgapi_displaced_stepping_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:3876
AMD_DBGAPI_WAVE_STOP_REASON_SINGLE_STEP
@ AMD_DBGAPI_WAVE_STOP_REASON_SINGLE_STEP
The wave stopped due to completing an instruction single-step.
Definition: amd-dbgapi.h:3310
amd_dbgapi_address_class_id_t
Opaque source language address class handle.
Definition: amd-dbgapi.h:5203
AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_SHARE
@ AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_SHARE
Return how watchpoints are shared between processes.
Definition: amd-dbgapi.h:1652
AMD_DBGAPI_RESUME_MODE_NORMAL
@ AMD_DBGAPI_RESUME_MODE_NORMAL
Resume normal execution.
Definition: amd-dbgapi.h:3612
AMD_DBGAPI_QUEUE_STATE_ERROR
@ AMD_DBGAPI_QUEUE_STATE_ERROR
Queue is in the queue error state.
Definition: amd-dbgapi.h:2571
AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4
@ AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4
Queue supports the AMD PM4 protocol.
Definition: amd-dbgapi.h:701
amd_dbgapi_watchpoint_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_watchpoint_get_info(amd_dbgapi_watchpoint_id_t watchpoint_id, amd_dbgapi_watchpoint_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
Query information about a watchpoint.
AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_REGISTER_PAIR
@ AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_REGISTER_PAIR
The instruction unconditionally branches to an address held in a pair of registers.
Definition: amd-dbgapi.h:1412
AMD_DBGAPI_STATUS_ERROR_INVALID_CODE_OBJECT_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_CODE_OBJECT_ID
The code object handle is invalid.
Definition: amd-dbgapi.h:818
AMD_DBGAPI_STATUS_ERROR_NOT_IMPLEMENTED
@ AMD_DBGAPI_STATUS_ERROR_NOT_IMPLEMENTED
The operation is not currently implemented.
Definition: amd-dbgapi.h:762
amd_dbgapi_register_class_id_t
Opaque register class handle.
Definition: amd-dbgapi.h:4386
amd_dbgapi_dispatch_barrier_t
amd_dbgapi_dispatch_barrier_t
Dispatch barrier.
Definition: amd-dbgapi.h:2976
AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSHARED
@ AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSHARED
The watchpoints are not shared across processes.
Definition: amd-dbgapi.h:4215
AMD_DBGAPI_EVENT_INFO_RUNTIME_STATE
@ AMD_DBGAPI_EVENT_INFO_RUNTIME_STATE
Return if the runtime loaded in the inferior is supported by the library for a AMD_DBGAPI_EVENT_KIND_...
Definition: amd-dbgapi.h:6347
amd_dbgapi_watchpoint_share_kind_t
amd_dbgapi_watchpoint_share_kind_t
The way watchpoints are shared between processes.
Definition: amd-dbgapi.h:4205
amd_dbgapi_client_thread_id_t
struct amd_dbgapi_client_thread_s * amd_dbgapi_client_thread_id_t
Opaque client thread handle.
Definition: amd-dbgapi.h:6616
AMD_DBGAPI_CODE_OBJECT_INFO_LOAD_ADDRESS
@ AMD_DBGAPI_CODE_OBJECT_INFO_LOAD_ADDRESS
The difference between the address in the ELF shared object and the address the code object is loaded...
Definition: amd-dbgapi.h:2095
amd_dbgapi_architecture_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_get_info(amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_architecture_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
Query information about an architecture.
AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_ID
The address space handle is invalid.
Definition: amd-dbgapi.h:909
amd_dbgapi_watchpoint_list_t
A set of watchpoints.
Definition: amd-dbgapi.h:4259
AMD_DBGAPI_REGISTER_PROPERTY_NONE
@ AMD_DBGAPI_REGISTER_PROPERTY_NONE
There are no properties.
Definition: amd-dbgapi.h:4537
amd_dbgapi_remove_watchpoint
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_remove_watchpoint(amd_dbgapi_process_id_t process_id, amd_dbgapi_watchpoint_id_t watchpoint_id) AMD_DBGAPI_VERSION_0_54
Remove a hardware data watchpoint previously set by amd_dbgapi_set_watchpoint.
amd_dbgapi_lane_id_t
uint32_t amd_dbgapi_lane_id_t
A wave lane handle.
Definition: amd-dbgapi.h:5182
AMD_DBGAPI_STATUS_ERROR_PROCESS_EXITED
@ AMD_DBGAPI_STATUS_ERROR_PROCESS_EXITED
The native operating system process associated with a client process has exited.
Definition: amd-dbgapi.h:831
amd_dbgapi_log_level_t
amd_dbgapi_log_level_t
The logging levels supported.
Definition: amd-dbgapi.h:6448
AMD_DBGAPI_LOG_LEVEL_VERBOSE
@ AMD_DBGAPI_LOG_LEVEL_VERBOSE
Print fatal error, warning, info, API tracing, and verbose messages.
Definition: amd-dbgapi.h:6473
AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA
@ AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA
Queue supports the AMD SDMA protocol.
Definition: amd-dbgapi.h:705
AMD_DBGAPI_LOG_LEVEL_NONE
@ AMD_DBGAPI_LOG_LEVEL_NONE
Print no messages.
Definition: amd-dbgapi.h:6452
amd_dbgapi_process_dispatch_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_dispatch_list(amd_dbgapi_process_id_t process_id, size_t *dispatch_count, amd_dbgapi_dispatch_id_t **dispatches, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
Return the list of dispatches.
AMD_DBGAPI_STATUS_ERROR_INVALID_PROCESS_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_PROCESS_ID
The process handle is invalid.
Definition: amd-dbgapi.h:826
AMD_DBGAPI_WAVE_INFO_QUEUE
@ AMD_DBGAPI_WAVE_INFO_QUEUE
Return the queue to which this wave belongs.
Definition: amd-dbgapi.h:3137
AMD_DBGAPI_WAVE_STOP_REASON_FP_INPUT_DENORMAL
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_INPUT_DENORMAL
The wave stopped due to triggering an enabled floating point input denormal exception.
Definition: amd-dbgapi.h:3318
AMD_DBGAPI_DISPATCH_FENCE_SCOPE_SYSTEM
@ AMD_DBGAPI_DISPATCH_FENCE_SCOPE_SYSTEM
There is a fence with system memory scope.
Definition: amd-dbgapi.h:3007
amd_dbgapi_architecture_info_t
amd_dbgapi_architecture_info_t
Architecture queries that are supported by amd_dbgapi_architecture_get_info.
Definition: amd-dbgapi.h:1137
amd_dbgapi_displaced_stepping_id_t
Opaque displaced stepping handle.
Definition: amd-dbgapi.h:3875
AMD_DBGAPI_WAVE_STATE_RUN
@ AMD_DBGAPI_WAVE_STATE_RUN
The wave is running.
Definition: amd-dbgapi.h:3255
AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_CALL_REGISTER_PAIR
@ AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_CALL_REGISTER_PAIR
The instruction unconditionally branches to a literal address and the address of the following instru...
Definition: amd-dbgapi.h:1433
AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_CONVERSION
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_CONVERSION
The segment address cannot be converted to the requested address space.
Definition: amd-dbgapi.h:917
amd_dbgapi_direct_call_register_pair_information_t
Instruction information for direct call instructions.
Definition: amd-dbgapi.h:5138
amd_dbgapi_dwarf_address_space_to_address_space
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dwarf_address_space_to_address_space(amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_space, amd_dbgapi_address_space_id_t *address_space_id) AMD_DBGAPI_VERSION_0_54
Return the address space from an AMD GPU DWARF address space number for an architecture.
amd_dbgapi_watchpoint_id_t
Opaque hardware data watchpoint handle.
Definition: amd-dbgapi.h:4120
amd_dbgapi_dispatch_fence_scope_t
amd_dbgapi_dispatch_fence_scope_t
Dispatch memory fence scope.
Definition: amd-dbgapi.h:2995
AMD_DBGAPI_QUEUE_INFO_ADDRESS
@ AMD_DBGAPI_QUEUE_INFO_ADDRESS
Return the base address of the memory holding the queue packets.
Definition: amd-dbgapi.h:2494
AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_ID
The register handle is invalid.
Definition: amd-dbgapi.h:897
AMD_DBGAPI_INSTRUCTION_KIND_TRAP
@ AMD_DBGAPI_INSTRUCTION_KIND_TRAP
The instruction enters the trap handler.
Definition: amd-dbgapi.h:1462
amd_dbgapi_process_queue_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_queue_list(amd_dbgapi_process_id_t process_id, size_t *queue_count, amd_dbgapi_queue_id_t **queues, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
Return the list of queues.
AMD_DBGAPI_WAVE_STOP_REASON_BREAKPOINT
@ AMD_DBGAPI_WAVE_STOP_REASON_BREAKPOINT
The wave stopped due to executing a breakpoint instruction.
Definition: amd-dbgapi.h:3294
amd_dbgapi_register_info_t
amd_dbgapi_register_info_t
Register queries that are supported by amd_dbgapi_register_get_info.
Definition: amd-dbgapi.h:4567
AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION
@ AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION
Return the breakpoint instruction for the architecture.
Definition: amd-dbgapi.h:1176
AMD_DBGAPI_AGENT_INFO_OS_ID
@ AMD_DBGAPI_AGENT_INFO_OS_ID
Native operating system agent ID.
Definition: amd-dbgapi.h:2284
amd_dbgapi_agent_id_t
Opaque agent handle.
Definition: amd-dbgapi.h:2212
amd_dbgapi_wave_info_t
amd_dbgapi_wave_info_t
Wave queries that are supported by amd_dbgapi_wave_get_info.
Definition: amd-dbgapi.h:3097
AMD_DBGAPI_ADDRESS_SPACE_ACCESS_PROGRAM_CONSTANT
@ AMD_DBGAPI_ADDRESS_SPACE_ACCESS_PROGRAM_CONSTANT
The address space is read only.
Definition: amd-dbgapi.h:5421
AMD_DBGAPI_INSTRUCTION_KIND_UNKNOWN
@ AMD_DBGAPI_INSTRUCTION_KIND_UNKNOWN
The instruction classification is unknown.
Definition: amd-dbgapi.h:1385
AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_RESUMABLE
@ AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_RESUMABLE
The wave cannot be resumed.
Definition: amd-dbgapi.h:863
AMD_DBGAPI_WATCHPOINT_KIND_LOAD
@ AMD_DBGAPI_WATCHPOINT_KIND_LOAD
Read access by load instructions.
Definition: amd-dbgapi.h:4235
AMD_DBGAPI_AGENT_INFO_PCI_DEVICE_ID
@ AMD_DBGAPI_AGENT_INFO_PCI_DEVICE_ID
PCI device ID of the agent.
Definition: amd-dbgapi.h:2269
AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT_COMPATIBILITY
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT_COMPATIBILITY
An invalid combination of arguments was given to the function.
Definition: amd-dbgapi.h:778
AMD_DBGAPI_DISPATCH_INFO_PROCESS
@ AMD_DBGAPI_DISPATCH_INFO_PROCESS
Return the process to which this dispatch belongs.
Definition: amd-dbgapi.h:2845
amd_dbgapi_agent_info_t
amd_dbgapi_agent_info_t
Agent queries that are supported by amd_dbgapi_agent_get_info.
Definition: amd-dbgapi.h:2229
AMD_DBGAPI_EVENT_KIND_NONE
@ AMD_DBGAPI_EVENT_KIND_NONE
No event.
Definition: amd-dbgapi.h:6140
AMD_DBGAPI_WAVE_INFO_STOP_REASON
@ AMD_DBGAPI_WAVE_INFO_STOP_REASON
Return the reason the wave stopped as a bit set.
Definition: amd-dbgapi.h:3109
AMD_DBGAPI_WATCHPOINT_SHARE_KIND_SHARED
@ AMD_DBGAPI_WATCHPOINT_SHARE_KIND_SHARED
The watchpoints of a process are shared between all processes.
Definition: amd-dbgapi.h:4221
amd_dbgapi_dispatch_id_t
Opaque dispatch handle.
Definition: amd-dbgapi.h:2813
AMD_DBGAPI_QUEUE_INFO_TYPE
@ AMD_DBGAPI_QUEUE_INFO_TYPE
Return the queue type.
Definition: amd-dbgapi.h:2477
amd_dbgapi_read_memory
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_memory(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_segment_address_t segment_address, amd_dbgapi_size_t *value_size, void *value) AMD_DBGAPI_VERSION_0_54
Read memory.
AMD_DBGAPI_EXCEPTION_WAVE_MATH_ERROR
@ AMD_DBGAPI_EXCEPTION_WAVE_MATH_ERROR
A wave on the queue executed an instruction that had a floating point or integer enabled exception co...
Definition: amd-dbgapi.h:2613
AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID
The agent handle is invalid.
Definition: amd-dbgapi.h:835
AMD_DBGAPI_WAVE_STOP_REASON_FATAL_HALT
@ AMD_DBGAPI_WAVE_STOP_REASON_FATAL_HALT
The wave stopped after causing a hardware fatal halt.
Definition: amd-dbgapi.h:3467
AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS
@ AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS
The inferior's runtime has been loaded and debugging is supported by the library.
Definition: amd-dbgapi.h:6294
amd_dbgapi_set_log_level
void AMD_DBGAPI amd_dbgapi_set_log_level(amd_dbgapi_log_level_t level) AMD_DBGAPI_VERSION_0_54
Set the logging level.
AMD_DBGAPI_WAVE_STOP_REASON_NONE
@ AMD_DBGAPI_WAVE_STOP_REASON_NONE
If none of the bits are set, then amd_dbgapi_wave_stop stopped the wave.
Definition: amd-dbgapi.h:3288
AMD_DBGAPI_STATUS_ERROR_INVALID_ARCHITECTURE_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ARCHITECTURE_ID
The architecture handle is invalid.
Definition: amd-dbgapi.h:810
amd_dbgapi_os_queue_id_t
uint64_t amd_dbgapi_os_queue_id_t
Native operating system queue ID.
Definition: amd-dbgapi.h:627
AMD_DBGAPI_WAVE_STOP_REASON_ILLEGAL_INSTRUCTION
@ AMD_DBGAPI_WAVE_STOP_REASON_ILLEGAL_INSTRUCTION
The wave stopped due to executing an illegal instruction.
Definition: amd-dbgapi.h:3447
amd_dbgapi_finalize
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_finalize(void) AMD_DBGAPI_VERSION_0_54
Finalize the library.
AMD_DBGAPI_STATUS_ERROR_INVALID_EVENT_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_EVENT_ID
The event handle is invalid.
Definition: amd-dbgapi.h:921
AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_BUFFER_NOT_AVAILABLE
@ AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_BUFFER_NOT_AVAILABLE
No more displaced stepping buffers are available that are suitable for the requested wave.
Definition: amd-dbgapi.h:872
AMD_DBGAPI_REGISTER_PROPERTY_READONLY_BITS
@ AMD_DBGAPI_REGISTER_PROPERTY_READONLY_BITS
At least one bit of the register value is readonly.
Definition: amd-dbgapi.h:4543
AMD_DBGAPI_WAVE_CREATION_NORMAL
@ AMD_DBGAPI_WAVE_CREATION_NORMAL
Normal wave creation allows new waves to be created.
Definition: amd-dbgapi.h:1949
AMD_DBGAPI_EXCEPTION_WAVE_ILLEGAL_INSTRUCTION
@ AMD_DBGAPI_EXCEPTION_WAVE_ILLEGAL_INSTRUCTION
A wave on the queue executed an illegal instruction.
Definition: amd-dbgapi.h:2617
AMD_DBGAPI_AGENT_INFO_ARCHITECTURE
@ AMD_DBGAPI_AGENT_INFO_ARCHITECTURE
Return the architecture of this agent.
Definition: amd-dbgapi.h:2250
amd_dbgapi_instruction_kind_t
amd_dbgapi_instruction_kind_t
The kinds of instruction classifications.
Definition: amd-dbgapi.h:1380
AMD_DBGAPI_WAVE_STOP_REASON_ECC_ERROR
@ AMD_DBGAPI_WAVE_STOP_REASON_ECC_ERROR
The wave stopped due to detecting an unrecoverable ECC error.
Definition: amd-dbgapi.h:3460
AMD_DBGAPI_AGENT_INFO_EXECUTION_UNIT_COUNT
@ AMD_DBGAPI_AGENT_INFO_EXECUTION_UNIT_COUNT
Total number of Execution Units (EUs) available in the agent.
Definition: amd-dbgapi.h:2274
AMD_DBGAPI_ARCHITECTURE_INFO_NAME
@ AMD_DBGAPI_ARCHITECTURE_INFO_NAME
Return the architecture name.
Definition: amd-dbgapi.h:1144
amd_dbgapi_address_space_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_space_get_info(amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_address_space_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_62
Query information about an address space.
amd_dbgapi_event_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_get_info(amd_dbgapi_event_id_t event_id, amd_dbgapi_event_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
Query information about an event.
AMD_DBGAPI_WAVE_STOP_REASON_WATCHPOINT
@ AMD_DBGAPI_WAVE_STOP_REASON_WATCHPOINT
The wave stopped due to triggering a data watchpoint.
Definition: amd-dbgapi.h:3306
AMD_DBGAPI_PROGRESS_NORMAL
@ AMD_DBGAPI_PROGRESS_NORMAL
Normal progress is needed.
Definition: amd-dbgapi.h:1878
amd_dbgapi_get_status_string
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_get_status_string(amd_dbgapi_status_t status, const char **status_string) AMD_DBGAPI_VERSION_0_54
Query a textual description of a status code.
AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_SIZE
@ AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_SIZE
Return the breakpoint instruction size in bytes for the architecture.
Definition: amd-dbgapi.h:1168
amd_dbgapi_resume_mode_t
amd_dbgapi_resume_mode_t
The mode in which to resuming the execution of a wave.
Definition: amd-dbgapi.h:3608
amd_dbgapi_wave_id_t
Opaque wave handle.
Definition: amd-dbgapi.h:3080
AMD_DBGAPI_INSTRUCTION_KIND_BARRIER
@ AMD_DBGAPI_INSTRUCTION_KIND_BARRIER
The instruction performs some kind of execution barrier which may result in the wave being halted unt...
Definition: amd-dbgapi.h:1474
AMD_DBGAPI_EVENT_INFO_CLIENT_THREAD
@ AMD_DBGAPI_EVENT_INFO_CLIENT_THREAD
Return the client thread of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:6340
AMD_DBGAPI_STATUS_ERROR_INVALID_WATCHPOINT_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_WATCHPOINT_ID
The watchpoint handle is invalid.
Definition: amd-dbgapi.h:885
AMD_DBGAPI_ADDRESS_SPACE_ACCESS_DISPATCH_CONSTANT
@ AMD_DBGAPI_ADDRESS_SPACE_ACCESS_DISPATCH_CONSTANT
The address space is only read the waves of a kernel dispatch.
Definition: amd-dbgapi.h:5426
AMD_DBGAPI_ADDRESS_CLASS_INFO_DWARF
@ AMD_DBGAPI_ADDRESS_CLASS_INFO_DWARF
Return the AMD GPU DWARF address class number for the address class' architecture.
Definition: amd-dbgapi.h:5242
AMD_DBGAPI_BREAKPOINT_ACTION_RESUME
@ AMD_DBGAPI_BREAKPOINT_ACTION_RESUME
Resume execution.
Definition: amd-dbgapi.h:6600
amd_dbgapi_breakpoint_id_t
Opaque breakpoint handle.
Definition: amd-dbgapi.h:6524
amd_dbgapi_exceptions_t
amd_dbgapi_exceptions_t
A bit mask of the exceptions that can cause a queue to enter the queue error state.
Definition: amd-dbgapi.h:2579
AMD_DBGAPI_RUNTIME_STATE_LOADED_ERROR_RESTRICTION
@ AMD_DBGAPI_RUNTIME_STATE_LOADED_ERROR_RESTRICTION
The inferior's runtime has been loaded but there is a restriction error that prevents debugging the p...
Definition: amd-dbgapi.h:6304
amd_dbgapi_displaced_stepping_complete
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_complete(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_displaced_stepping_id_t displaced_stepping) AMD_DBGAPI_VERSION_0_54
Complete a displaced stepping buffer for a wave.
amd_dbgapi_convert_address_space
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_convert_address_space(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t source_address_space_id, amd_dbgapi_segment_address_t source_segment_address, amd_dbgapi_address_space_id_t destination_address_space_id, amd_dbgapi_segment_address_t *destination_segment_address, amd_dbgapi_size_t *destination_contiguous_bytes) AMD_DBGAPI_VERSION_0_62
Convert a source segment address in the source address space into a destination segment address in th...
amd_dbgapi_wave_stop_reasons_t
amd_dbgapi_wave_stop_reasons_t
A bit mask of the reasons that a wave stopped.
Definition: amd-dbgapi.h:3283
AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_PC_ADJUST
@ AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_PC_ADJUST
Return the number of bytes to subtract from the PC after stopping due to a breakpoint instruction to ...
Definition: amd-dbgapi.h:1182
AMD_DBGAPI_STATUS_ERROR_INVALID_QUEUE_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_QUEUE_ID
The queue handle is invalid.
Definition: amd-dbgapi.h:839
amd_dbgapi_process_attach
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_attach(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_process_id_t *process_id) AMD_DBGAPI_VERSION_0_56
Attach to a process in order to provide debug control of the AMD GPUs it uses.
AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID
@ AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID
A dispatch packet on the queue has an invalid work-group size.
Definition: amd-dbgapi.h:2648
amd_dbgapi_dispatch_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:2814
amd_dbgapi_process_next_pending_event
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_next_pending_event(amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t *event_id, amd_dbgapi_event_kind_t *kind) AMD_DBGAPI_VERSION_0_54
Obtain the next pending event.
AMD_DBGAPI_DISPATCH_FENCE_SCOPE_AGENT
@ AMD_DBGAPI_DISPATCH_FENCE_SCOPE_AGENT
There is a fence with agent memory scope.
Definition: amd-dbgapi.h:3003
amd_dbgapi_code_object_id_t
Opaque code object handle.
Definition: amd-dbgapi.h:2011
AMD_DBGAPI_CHANGED_YES
@ AMD_DBGAPI_CHANGED_YES
The value has changed.
Definition: amd-dbgapi.h:567
amd_dbgapi_changed_t
amd_dbgapi_changed_t
Indication of if a value has changed.
Definition: amd-dbgapi.h:559
amd_dbgapi_architecture_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:1120
amd_dbgapi_address_is_in_address_class
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_is_in_address_class(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_segment_address_t segment_address, amd_dbgapi_address_class_id_t address_class_id, amd_dbgapi_address_class_state_t *address_class_state) AMD_DBGAPI_VERSION_0_54
Determine if a segment address in an address space is a member of a source language address class.
amd_dbgapi_breakpoint_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:6525
AMD_DBGAPI_REGISTER_PRESENT
@ AMD_DBGAPI_REGISTER_PRESENT
The wave has the register.
Definition: amd-dbgapi.h:4713
AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_CLASS_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_CLASS_ID
The register class handle is invalid.
Definition: amd-dbgapi.h:893
AMD_DBGAPI_AGENT_INFO_PROCESS
@ AMD_DBGAPI_AGENT_INFO_PROCESS
Return the process to which this agent belongs.
Definition: amd-dbgapi.h:2234
AMD_DBGAPI_EXCEPTION_NONE
@ AMD_DBGAPI_EXCEPTION_NONE
If none of the bits are set, then the queue is not in the error state.
Definition: amd-dbgapi.h:2583
amd_dbgapi_runtime_state_t
amd_dbgapi_runtime_state_t
Inferior's runtime state.
Definition: amd-dbgapi.h:6289
AMD_DBGAPI_DISPATCH_INFO_AGENT
@ AMD_DBGAPI_DISPATCH_INFO_AGENT
Return the agent to which this dispatch belongs.
Definition: amd-dbgapi.h:2840
AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_REGISTER_COUNT_TOO_LARGE
@ AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_REGISTER_COUNT_TOO_LARGE
A dispatch packet on the queue requires too many registers.
Definition: amd-dbgapi.h:2652
amd_dbgapi_callbacks_s::log_message
void(* log_message)(amd_dbgapi_log_level_t level, const char *message)
Report a log message.
Definition: amd-dbgapi.h:6813
amd_dbgapi_queue_state_t
amd_dbgapi_queue_state_t
Queue state.
Definition: amd-dbgapi.h:2553
amd_dbgapi_callbacks_s::get_os_pid
amd_dbgapi_status_t(* get_os_pid)(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_os_process_id_t *os_pid)
Return the native operating system process handle for the process identified by the client process ha...
Definition: amd-dbgapi.h:6727
amd_dbgapi_watchpoint_list_t::watchpoint_ids
amd_dbgapi_watchpoint_id_t * watchpoint_ids
Definition: amd-dbgapi.h:4261
amd_dbgapi_address_class_info_t
amd_dbgapi_address_class_info_t
Source language address class queries that are supported by amd_dbgapi_address_class_get_info.
Definition: amd-dbgapi.h:5221
AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR
@ AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR
Print fatal error messages.
Definition: amd-dbgapi.h:6457
AMD_DBGAPI_DISPATCH_INFO_GRID_DIMENSIONS
@ AMD_DBGAPI_DISPATCH_INFO_GRID_DIMENSIONS
Return the dispatch grid dimensionality.
Definition: amd-dbgapi.h:2876
amd_dbgapi_dwarf_register_to_register
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dwarf_register_to_register(amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_register, amd_dbgapi_register_id_t *register_id) AMD_DBGAPI_VERSION_0_54
Return a register handle from an AMD GPU DWARF register number for an architecture.
amd_dbgapi_address_class_state_t
amd_dbgapi_address_class_state_t
Indication of whether a segment address in an address space is a member of an source language address...
Definition: amd-dbgapi.h:5731
amd_dbgapi_get_version
void AMD_DBGAPI amd_dbgapi_get_version(uint32_t *major, uint32_t *minor, uint32_t *patch) AMD_DBGAPI_VERSION_0_54
Query the version of the installed library.
amd_dbgapi_wave_stop
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_stop(amd_dbgapi_wave_id_t wave_id) AMD_DBGAPI_VERSION_0_54
Request a wave to stop executing.
AMD_DBGAPI_DISPATCH_INFO_PRIVATE_SEGMENT_SIZE
@ AMD_DBGAPI_DISPATCH_INFO_PRIVATE_SEGMENT_SIZE
Return the dispatch private segment size in bytes.
Definition: amd-dbgapi.h:2891
amd_dbgapi_direct_call_register_pair_information_t::target_address
amd_dbgapi_global_address_t target_address
Definition: amd-dbgapi.h:5139
AMD_DBGAPI_CHANGED_NO
@ AMD_DBGAPI_CHANGED_NO
The value has not changed.
Definition: amd-dbgapi.h:563
AMD_DBGAPI_DISPATCH_INFO_KERNEL_CODE_ENTRY_ADDRESS
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_CODE_ENTRY_ADDRESS
Return the dispatch kernel code entry address.
Definition: amd-dbgapi.h:2911
AMD_DBGAPI_INSTRUCTION_KIND_TERMINATE
@ AMD_DBGAPI_INSTRUCTION_KIND_TERMINATE
The instruction terminates the wave execution.
Definition: amd-dbgapi.h:1448
AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_CONDITIONAL_REGISTER_PAIR
@ AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_CONDITIONAL_REGISTER_PAIR
The instruction conditionally branches to an address held in a pair of registers.
Definition: amd-dbgapi.h:1422
AMD_DBGAPI_DISPATCH_INFO_GRID_SIZES
@ AMD_DBGAPI_DISPATCH_INFO_GRID_SIZES
Return the dispatch grid size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2886
AMD_DBGAPI_QUEUE_STATE_VALID
@ AMD_DBGAPI_QUEUE_STATE_VALID
Queue is in a valid state.
Definition: amd-dbgapi.h:2557
AMD_DBGAPI_STATUS_ERROR_INVALID_LANE_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_LANE_ID
The lane handle is invalid.
Definition: amd-dbgapi.h:901
AMD_DBGAPI_WAVE_INFO_PC
@ AMD_DBGAPI_WAVE_INFO_PC
Return the current program counter value of the wave.
Definition: amd-dbgapi.h:3158
AMD_DBGAPI_STATUS_ERROR_NOT_INITIALIZED
@ AMD_DBGAPI_STATUS_ERROR_NOT_INITIALIZED
The library is not initialized.
Definition: amd-dbgapi.h:786
AMD_DBGAPI_CODE_OBJECT_INFO_PROCESS
@ AMD_DBGAPI_CODE_OBJECT_INFO_PROCESS
Return the process to which this code object belongs.
Definition: amd-dbgapi.h:2033
AMD_DBGAPI_STATUS_ERROR_INVALID_CLIENT_PROCESS_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_CLIENT_PROCESS_ID
The client process handle is invalid.
Definition: amd-dbgapi.h:933
AMD_DBGAPI_WAVE_INFO_WATCHPOINTS
@ AMD_DBGAPI_WAVE_INFO_WATCHPOINTS
Return the watchpoint(s) the wave triggered.
Definition: amd-dbgapi.h:3122
AMD_DBGAPI_ADDRESS_CLASS_STATE_MEMBER
@ AMD_DBGAPI_ADDRESS_CLASS_STATE_MEMBER
The segment address in the address space is a member of the source language address class.
Definition: amd-dbgapi.h:5741
AMD_DBGAPI_WAVE_INFO_DISPATCH
@ AMD_DBGAPI_WAVE_INFO_DISPATCH
Return the dispatch to which this wave belongs.
Definition: amd-dbgapi.h:3132
AMD_DBGAPI_RESUME_MODE_SINGLE_STEP
@ AMD_DBGAPI_RESUME_MODE_SINGLE_STEP
Resume execution in in single step mode.
Definition: amd-dbgapi.h:3616
AMD_DBGAPI_DISPATCH_FENCE_SCOPE_NONE
@ AMD_DBGAPI_DISPATCH_FENCE_SCOPE_NONE
There is no fence.
Definition: amd-dbgapi.h:2999
amd_dbgapi_callbacks_s::insert_breakpoint
amd_dbgapi_status_t(* insert_breakpoint)(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_global_address_t address, amd_dbgapi_breakpoint_id_t breakpoint_id)
Insert a breakpoint in a shared library using a global address.
Definition: amd-dbgapi.h:6766
AMD_DBGAPI_CODE_OBJECT_INFO_URI_NAME
@ AMD_DBGAPI_CODE_OBJECT_INFO_URI_NAME
The URI name of the ELF shared object from which the code object was loaded.
Definition: amd-dbgapi.h:2089
amd_dbgapi_event_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:6123
AMD_DBGAPI_BREAKPOINT_INFO_PROCESS
@ AMD_DBGAPI_BREAKPOINT_INFO_PROCESS
Return the process to which this breakpoint belongs.
Definition: amd-dbgapi.h:6546
AMD_DBGAPI_QUEUE_INFO_STATE
@ AMD_DBGAPI_QUEUE_INFO_STATE
Return the queue state.
Definition: amd-dbgapi.h:2482
AMD_DBGAPI_WAVE_STOP_REASON_FP_INEXACT
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_INEXACT
The wave stopped due to triggering an enabled floating point inexact exception.
Definition: amd-dbgapi.h:3350
AMD_DBGAPI_EVENT_INFO_KIND
@ AMD_DBGAPI_EVENT_INFO_KIND
Return the event kind.
Definition: amd-dbgapi.h:6324
AMD_DBGAPI_PROGRESS_NO_FORWARD
@ AMD_DBGAPI_PROGRESS_NO_FORWARD
No forward progress is needed.
Definition: amd-dbgapi.h:1902
amd_dbgapi_displaced_stepping_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_get_info(amd_dbgapi_displaced_stepping_id_t displaced_stepping_id, amd_dbgapi_displaced_stepping_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
Query information about a displaced stepping buffer.
amd_dbgapi_address_space_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:5389
AMD_DBGAPI_WAVE_INFO_AGENT
@ AMD_DBGAPI_WAVE_INFO_AGENT
Return the agent to which this wave belongs.
Definition: amd-dbgapi.h:3142
AMD_DBGAPI_QUEUE_INFO_SIZE
@ AMD_DBGAPI_QUEUE_INFO_SIZE
Return the size in bytes of the memory holding the queue packets.
Definition: amd-dbgapi.h:2499
AMD_DBGAPI_WAVE_INFO_ARCHITECTURE
@ AMD_DBGAPI_WAVE_INFO_ARCHITECTURE
Return the architecture of this wave.
Definition: amd-dbgapi.h:3152
AMD_DBGAPI_ADDRESS_CLASS_INFO_NAME
@ AMD_DBGAPI_ADDRESS_CLASS_INFO_NAME
Return the source language address class name.
Definition: amd-dbgapi.h:5228
AMD_DBGAPI_EXCEPTION_PACKET_UNSUPPORTED
@ AMD_DBGAPI_EXCEPTION_PACKET_UNSUPPORTED
A packet on the queue has an unsupported code.
Definition: amd-dbgapi.h:2644
amd_dbgapi_code_object_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:2012
AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_SINGLE_PRODUCER
@ AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_SINGLE_PRODUCER
Queue supports the HSA kernel dispatch with single producer protocol.
Definition: amd-dbgapi.h:687
amd_dbgapi_process_info_t
amd_dbgapi_process_info_t
Process queries that are supported by amd_dbgapi_process_get_info.
Definition: amd-dbgapi.h:1635
amd_dbgapi_breakpoint_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_breakpoint_get_info(amd_dbgapi_breakpoint_id_t breakpoint_id, amd_dbgapi_breakpoint_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
Query information about a breakpoint.
AMD_DBGAPI_ADDRESS_SPACE_ACCESS_ALL
@ AMD_DBGAPI_ADDRESS_SPACE_ACCESS_ALL
The address space supports all accesses.
Definition: amd-dbgapi.h:5416
amd_dbgapi_process_agent_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_agent_list(amd_dbgapi_process_id_t process_id, size_t *agent_count, amd_dbgapi_agent_id_t **agents, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
Return the list of agents.
amd_dbgapi_segment_address_t
uint64_t amd_dbgapi_segment_address_t
Each address space has its own linear address to access it termed a segment address.
Definition: amd-dbgapi.h:5611
AMD_DBGAPI
#define AMD_DBGAPI
Definition: amd-dbgapi.h:454
AMD_DBGAPI_STATUS_ERROR_WAVE_STOPPED
@ AMD_DBGAPI_STATUS_ERROR_WAVE_STOPPED
The wave is stopped.
Definition: amd-dbgapi.h:855
AMD_DBGAPI_WAVE_INFO_LANE_COUNT
@ AMD_DBGAPI_WAVE_INFO_LANE_COUNT
The number of lanes supported by the wave.
Definition: amd-dbgapi.h:3194
amd_dbgapi_callbacks_s::remove_breakpoint
amd_dbgapi_status_t(* remove_breakpoint)(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_breakpoint_id_t breakpoint_id)
Remove a breakpoint previously inserted by amd_dbgapi_callbacks_s::insert_breakpoint.
Definition: amd-dbgapi.h:6801
amd_dbgapi_wave_resume
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_resume(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_resume_mode_t resume_mode, amd_dbgapi_exceptions_t exceptions) AMD_DBGAPI_VERSION_0_58
Resume execution of a stopped wave.
AMD_DBGAPI_DISPATCH_INFO_RELEASE_FENCE
@ AMD_DBGAPI_DISPATCH_INFO_RELEASE_FENCE
Return the dispatch release fence.
Definition: amd-dbgapi.h:2871
amd_dbgapi_architecture_address_class_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_address_class_list(amd_dbgapi_architecture_id_t architecture_id, size_t *address_class_count, amd_dbgapi_address_class_id_t **address_classes) AMD_DBGAPI_VERSION_0_54
Report the list of source language address classes supported by the architecture.
AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_ACTIVE
@ AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_ACTIVE
The wave has an active displaced stepping buffer.
Definition: amd-dbgapi.h:876
AMD_DBGAPI_INSTRUCTION_KIND_SPECIAL
@ AMD_DBGAPI_INSTRUCTION_KIND_SPECIAL
The instruction has some form of special behavior not covered by any of the other instruction kinds.
Definition: amd-dbgapi.h:1489
AMD_DBGAPI_WAVE_STOP_REASON_ASSERT_TRAP
@ AMD_DBGAPI_WAVE_STOP_REASON_ASSERT_TRAP
The wave stopped due to executing an assert trap instruction.
Definition: amd-dbgapi.h:3397
amd_dbgapi_wave_register_exists
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_exists(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_register_exists_t *exists) AMD_DBGAPI_VERSION_0_54
Query if a register exists for a wave.
amd_dbgapi_code_object_info_t
amd_dbgapi_code_object_info_t
Code object queries that are supported by amd_dbgapi_code_object_get_info.
Definition: amd-dbgapi.h:2028
amd_dbgapi_agent_state_t
amd_dbgapi_agent_state_t
Agent state.
Definition: amd-dbgapi.h:2291
AMD_DBGAPI_EXCEPTION_WAVE_MEMORY_VIOLATION
@ AMD_DBGAPI_EXCEPTION_WAVE_MEMORY_VIOLATION
A wave on the queue had a memory violation.
Definition: amd-dbgapi.h:2623
amd_dbgapi_write_register
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_register(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size, const void *value) AMD_DBGAPI_VERSION_0_62
Write a register.
AMD_DBGAPI_REGISTER_ABSENT
@ AMD_DBGAPI_REGISTER_ABSENT
The wave does not have the register.
Definition: amd-dbgapi.h:4709
AMD_DBGAPI_DISPATCH_INFO_WORK_GROUP_SIZES
@ AMD_DBGAPI_DISPATCH_INFO_WORK_GROUP_SIZES
Return the dispatch workgroup size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2881
AMD_DBGAPI_REGISTER_CLASS_INFO_ARCHITECTURE
@ AMD_DBGAPI_REGISTER_CLASS_INFO_ARCHITECTURE
Return the architecture to which this register class belongs.
Definition: amd-dbgapi.h:4409
AMD_DBGAPI_REGISTER_INFO_TYPE
@ AMD_DBGAPI_REGISTER_INFO_TYPE
Return the register type as a C style type string.
Definition: amd-dbgapi.h:4645
AMD_DBGAPI_PROCESS_INFO_OS_ID
@ AMD_DBGAPI_PROCESS_INFO_OS_ID
Native operating system process ID.
Definition: amd-dbgapi.h:1668
AMD_DBGAPI_DISPATCH_INFO_OS_QUEUE_PACKET_ID
@ AMD_DBGAPI_DISPATCH_INFO_OS_QUEUE_PACKET_ID
Return the queue packet ID of the dispatch packet that initiated the dispatch.
Definition: amd-dbgapi.h:2856
amd_dbgapi_queue_info_t
amd_dbgapi_queue_info_t
Queue queries that are supported by amd_dbgapi_queue_get_info.
Definition: amd-dbgapi.h:2457
amd_dbgapi_register_class_info_t
amd_dbgapi_register_class_info_t
Register class queries that are supported by amd_dbgapi_architecture_register_class_get_info.
Definition: amd-dbgapi.h:4404
AMD_DBGAPI_AGENT_INFO_PCI_VENDOR_ID
@ AMD_DBGAPI_AGENT_INFO_PCI_VENDOR_ID
PCI vendor ID of the agent.
Definition: amd-dbgapi.h:2265
AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA_XGMI
@ AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA_XGMI
Queue supports the AMD SDMA XGMI protocol.
Definition: amd-dbgapi.h:709
AMD_DBGAPI_STATUS_ERROR_INVALID_DISPATCH_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_DISPATCH_ID
The dispatch handle is invalid.
Definition: amd-dbgapi.h:843
amd_dbgapi_code_object_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_code_object_get_info(amd_dbgapi_code_object_id_t code_object_id, amd_dbgapi_code_object_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
Query information about a code object.
amd_dbgapi_process_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_get_info(amd_dbgapi_process_id_t process_id, amd_dbgapi_process_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_56
Query information about a process.
amd_dbgapi_queue_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_get_info(amd_dbgapi_queue_id_t queue_id, amd_dbgapi_queue_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_58
Query information about a queue.
amd_dbgapi_address_space_access_t
amd_dbgapi_address_space_access_t
Indication of how the address space is accessed.
Definition: amd-dbgapi.h:5411
AMD_DBGAPI_ARCHITECTURE_INFO_PC_REGISTER
@ AMD_DBGAPI_ARCHITECTURE_INFO_PC_REGISTER
Return the register handle for the PC for the architecture.
Definition: amd-dbgapi.h:1187
AMD_DBGAPI_STATUS_ERROR_CLIENT_CALLBACK
@ AMD_DBGAPI_STATUS_ERROR_CLIENT_CALLBACK
A callback to the client reported an error.
Definition: amd-dbgapi.h:929
AMD_DBGAPI_WAVE_STOP_REASON_INT_DIVIDE_BY_0
@ AMD_DBGAPI_WAVE_STOP_REASON_INT_DIVIDE_BY_0
The wave stopped due to triggering an enabled integer divide by zero exception.
Definition: amd-dbgapi.h:3366
amd_dbgapi_os_queue_type_t
amd_dbgapi_os_queue_type_t
Native operating system queue type.
Definition: amd-dbgapi.h:651
AMD_DBGAPI_QUEUE_INFO_ARCHITECTURE
@ AMD_DBGAPI_QUEUE_INFO_ARCHITECTURE
Return the architecture of this queue.
Definition: amd-dbgapi.h:2472
AMD_DBGAPI_REGISTER_INFO_DWARF
@ AMD_DBGAPI_REGISTER_INFO_DWARF
Return the AMD GPU DWARF register number for the register's architecture.
Definition: amd-dbgapi.h:4650
AMD_DBGAPI_MEMORY_PRECISION_NONE
@ AMD_DBGAPI_MEMORY_PRECISION_NONE
Memory instructions execute normally and a wave does not wait for the memory access to complete.
Definition: amd-dbgapi.h:6040
AMD_DBGAPI_STATUS_ERROR_INVALID_ELF_AMDGPU_MACHINE
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ELF_AMDGPU_MACHINE
The ELF AMD GPU machine value is invalid or unsupported.
Definition: amd-dbgapi.h:822
AMD_DBGAPI_DISPATCH_BARRIER_NONE
@ AMD_DBGAPI_DISPATCH_BARRIER_NONE
Dispatch has no barrier.
Definition: amd-dbgapi.h:2980
amd_dbgapi_process_wave_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_wave_list(amd_dbgapi_process_id_t process_id, size_t *wave_count, amd_dbgapi_wave_id_t **waves, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
Return the list of existing waves.
AMD_DBGAPI_PROCESS_INFO_PRECISE_MEMORY_SUPPORTED
@ AMD_DBGAPI_PROCESS_INFO_PRECISE_MEMORY_SUPPORTED
Return if the architectures of all the agents of a process support controlling memory precision.
Definition: amd-dbgapi.h:1658
AMD_DBGAPI_WAVE_STATE_SINGLE_STEP
@ AMD_DBGAPI_WAVE_STATE_SINGLE_STEP
The wave is running in single-step mode.
Definition: amd-dbgapi.h:3260
AMD_DBGAPI_REGISTER_CLASS_STATE_NOT_MEMBER
@ AMD_DBGAPI_REGISTER_CLASS_STATE_NOT_MEMBER
The register is not a member of the register class.
Definition: amd-dbgapi.h:4896
amd_dbgapi_address_space_info_t
amd_dbgapi_address_space_info_t
Address space queries that are supported by amd_dbgapi_address_space_get_info.
Definition: amd-dbgapi.h:5437
AMD_DBGAPI_VERSION_0_58
#define AMD_DBGAPI_VERSION_0_58
The function was introduced in version 0.58 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:510
AMD_DBGAPI_WAVE_STOP_REASON_FP_DIVIDE_BY_0
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_DIVIDE_BY_0
The wave stopped due to triggering an enabled floating point divide by zero exception.
Definition: amd-dbgapi.h:3326
AMD_DBGAPI_DISPATCH_INFO_ACQUIRE_FENCE
@ AMD_DBGAPI_DISPATCH_INFO_ACQUIRE_FENCE
Return the dispatch acquire fence.
Definition: amd-dbgapi.h:2866
AMD_DBGAPI_WATCHPOINT_INFO_SIZE
@ AMD_DBGAPI_WATCHPOINT_INFO_SIZE
The byte size of the created watchpoint.
Definition: amd-dbgapi.h:4152
amd_dbgapi_event_id_t
Opaque event handle.
Definition: amd-dbgapi.h:6122
AMD_DBGAPI_REGISTER_INFO_NAME
@ AMD_DBGAPI_REGISTER_INFO_NAME
Return the register name.
Definition: amd-dbgapi.h:4579
AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_COUNT
@ AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_COUNT
Return the number of data watchpoints supported by the process.
Definition: amd-dbgapi.h:1646
AMD_DBGAPI_ADDRESS_SPACE_INFO_DWARF
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_DWARF
Return the AMD GPU DWARF address space number for the address space's architecture.
Definition: amd-dbgapi.h:5464
amd_dbgapi_symbolizer_id_t
struct amd_dbgapi_symbolizer_id_s * amd_dbgapi_symbolizer_id_t
Opaque client symbolizer handle.
Definition: amd-dbgapi.h:1271
AMD_DBGAPI_EVENT_INFO_WAVE
@ AMD_DBGAPI_EVENT_INFO_WAVE
Return the wave of a AMD_DBGAPI_EVENT_KIND_WAVE_STOP or AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED...
Definition: amd-dbgapi.h:6330
amd_dbgapi_classify_instruction
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_classify_instruction(amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size, const void *memory, amd_dbgapi_instruction_kind_t *instruction_kind, amd_dbgapi_instruction_properties_t *instruction_properties, void **instruction_information) AMD_DBGAPI_VERSION_0_58
Classify a single instruction.
AMD_DBGAPI_ADDRESS_SPACE_INFO_ACCESS
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_ACCESS
Return the address space access.
Definition: amd-dbgapi.h:5459
AMD_DBGAPI_REGISTER_INFO_ARCHITECTURE
@ AMD_DBGAPI_REGISTER_INFO_ARCHITECTURE
Return the architecture to which this register belongs.
Definition: amd-dbgapi.h:4572
AMD_DBGAPI_VERSION_0_56
#define AMD_DBGAPI_VERSION_0_56
The function was introduced in version 0.56 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:504
amd_dbgapi_set_watchpoint
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_set_watchpoint(amd_dbgapi_process_id_t process_id, amd_dbgapi_global_address_t address, amd_dbgapi_size_t size, amd_dbgapi_watchpoint_kind_t kind, amd_dbgapi_watchpoint_id_t *watchpoint_id) AMD_DBGAPI_VERSION_0_62
Set a hardware data watchpoint.
amd_dbgapi_wave_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:3081
AMD_DBGAPI_STATUS_ERROR_SYMBOL_NOT_FOUND
@ AMD_DBGAPI_STATUS_ERROR_SYMBOL_NOT_FOUND
The symbol was not found.
Definition: amd-dbgapi.h:937
amd_dbgapi_wave_register_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_list(amd_dbgapi_wave_id_t wave_id, size_t *register_count, amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_54
Report the list of registers supported by a wave.
AMD_DBGAPI_VERSION_0_62
#define AMD_DBGAPI_VERSION_0_62
The function was introduced in version 0.60 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:516
amd_dbgapi_architecture_address_space_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_address_space_list(amd_dbgapi_architecture_id_t architecture_id, size_t *address_space_count, amd_dbgapi_address_space_id_t **address_spaces) AMD_DBGAPI_VERSION_0_54
Report the list of address spaces supported by the architecture.
amd_dbgapi_dwarf_address_class_to_address_class
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dwarf_address_class_to_address_class(amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_class, amd_dbgapi_address_class_id_t *address_class_id) AMD_DBGAPI_VERSION_0_54
Return the architecture source language address class from a DWARF address class number for an archit...
AMD_DBGAPI_DISPATCH_INFO_GROUP_SEGMENT_SIZE
@ AMD_DBGAPI_DISPATCH_INFO_GROUP_SEGMENT_SIZE
Return the dispatch group segment size in bytes.
Definition: amd-dbgapi.h:2896
AMD_DBGAPI_STATUS_ERROR_MEMORY_ACCESS
@ AMD_DBGAPI_STATUS_ERROR_MEMORY_ACCESS
An error occurred while trying to access memory in the inferior.
Definition: amd-dbgapi.h:913
AMD_DBGAPI_QUEUE_INFO_PROCESS
@ AMD_DBGAPI_QUEUE_INFO_PROCESS
Return the process to which this queue belongs.
Definition: amd-dbgapi.h:2467
AMD_DBGAPI_EVENT_KIND_RUNTIME
@ AMD_DBGAPI_EVENT_KIND_RUNTIME
The runtime support in the inferior is enabled or disabled.
Definition: amd-dbgapi.h:6209
amd_dbgapi_process_set_wave_creation
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_set_wave_creation(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_creation_t creation) AMD_DBGAPI_VERSION_0_54
Set the wave creation mode for a process.
AMD_DBGAPI_AGENT_INFO_PCI_SLOT
@ AMD_DBGAPI_AGENT_INFO_PCI_SLOT
PCI slot of the agent in BDF format (see [Bus:Device.Function (BDF) Notation][bfd].
Definition: amd-dbgapi.h:2261
amd_dbgapi_agent_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_agent_get_info(amd_dbgapi_agent_id_t agent_id, amd_dbgapi_agent_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_56
Query information about an agent.
AMD_DBGAPI_WATCHPOINT_KIND_STORE_AND_RMW
@ AMD_DBGAPI_WATCHPOINT_KIND_STORE_AND_RMW
Write access by store instructions or read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:4240
AMD_DBGAPI_DISPATCH_INFO_KERNEL_COMPLETION_ADDRESS
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_COMPLETION_ADDRESS
Return the dispatch completion event address.
Definition: amd-dbgapi.h:2921
amd_dbgapi_os_process_id_t
pid_t amd_dbgapi_os_process_id_t
Native operating system process ID.
Definition: amd-dbgapi.h:578
amd_dbgapi_breakpoint_info_t
amd_dbgapi_breakpoint_info_t
Breakpoint queries that are supported by amd_dbgapi_breakpoint_get_info.
Definition: amd-dbgapi.h:6541
AMD_DBGAPI_DISPATCH_BARRIER_PRESENT
@ AMD_DBGAPI_DISPATCH_BARRIER_PRESENT
Dispatch has a barrier.
Definition: amd-dbgapi.h:2985
AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN
@ AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN
Unknown queue type.
Definition: amd-dbgapi.h:655
amd_dbgapi_progress_t
amd_dbgapi_progress_t
The kinds of progress supported by the library.
Definition: amd-dbgapi.h:1872
amd_dbgapi_queue_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:2441
amd_dbgapi_event_kind_t
amd_dbgapi_event_kind_t
The event kinds.
Definition: amd-dbgapi.h:6136
AMD_DBGAPI_EXCEPTION_PACKET_VENDOR_UNSUPPORTED
@ AMD_DBGAPI_EXCEPTION_PACKET_VENDOR_UNSUPPORTED
A packet on the queue has an invalid vendor code.
Definition: amd-dbgapi.h:2656
AMD_DBGAPI_RUNTIME_STATE_UNLOADED
@ AMD_DBGAPI_RUNTIME_STATE_UNLOADED
The inferior's runtime has been unloaded.
Definition: amd-dbgapi.h:6298
AMD_DBGAPI_VERSION_0_54
#define AMD_DBGAPI_VERSION_0_54
The function was introduced in version 0.54 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:498
AMD_DBGAPI_WATCHPOINT_KIND_ALL
@ AMD_DBGAPI_WATCHPOINT_KIND_ALL
Read, write, or read-modify-write access by load, store, or atomic instructions.
Definition: amd-dbgapi.h:4249
AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH
@ AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH
The instruction unconditionally branches to a literal address.
Definition: amd-dbgapi.h:1397
AMD_DBGAPI_WAVE_INFO_STATE
@ AMD_DBGAPI_WAVE_INFO_STATE
Return the wave's state.
Definition: amd-dbgapi.h:3102
AMD_DBGAPI_ADDRESS_SPACE_INFO_ADDRESS_SIZE
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_ADDRESS_SIZE
Return the byte size of an address in the address space.
Definition: amd-dbgapi.h:5449
amd_dbgapi_initialize
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_initialize(amd_dbgapi_callbacks_t *callbacks) AMD_DBGAPI_VERSION_0_54
Initialize the library.
AMD_DBGAPI_WAVE_CREATION_STOP
@ AMD_DBGAPI_WAVE_CREATION_STOP
Stop wave creation prevents new waves from being created.
Definition: amd-dbgapi.h:1953
AMD_DBGAPI_EVENT_KIND_QUEUE_ERROR
@ AMD_DBGAPI_EVENT_KIND_QUEUE_ERROR
The inferior's runtime has put a queue into the queue error state due to exceptions being reported fo...
Definition: amd-dbgapi.h:6243
amd_dbgapi_notifier_t
int amd_dbgapi_notifier_t
Type used to notify the client of the library that a process may have pending events.
Definition: amd-dbgapi.h:606
AMD_DBGAPI_WATCHPOINT_KIND_RMW
@ AMD_DBGAPI_WATCHPOINT_KIND_RMW
Read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:4244
amd_dbgapi_status_t
amd_dbgapi_status_t
AMD debugger API status codes.
Definition: amd-dbgapi.h:726
AMD_DBGAPI_STATUS_ERROR_NO_WATCHPOINT_AVAILABLE
@ AMD_DBGAPI_STATUS_ERROR_NO_WATCHPOINT_AVAILABLE
No more watchpoints available.
Definition: amd-dbgapi.h:889
AMD_DBGAPI_REGISTER_INFO_SIZE
@ AMD_DBGAPI_REGISTER_INFO_SIZE
Return the size of the register in bytes.
Definition: amd-dbgapi.h:4584
amd_dbgapi_size_t
uint64_t amd_dbgapi_size_t
Integral type used for sizes, including memory allocations, in the inferior.
Definition: amd-dbgapi.h:553
amd_dbgapi_process_set_progress
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_set_progress(amd_dbgapi_process_id_t process_id, amd_dbgapi_progress_t progress) AMD_DBGAPI_VERSION_0_54
Set the progress required for a process.
AMD_DBGAPI_STATUS_ERROR_INVALID_WAVE_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_WAVE_ID
The wave handle is invalid.
Definition: amd-dbgapi.h:847
AMD_DBGAPI_EVENT_KIND_CODE_OBJECT_LIST_UPDATED
@ AMD_DBGAPI_EVENT_KIND_CODE_OBJECT_LIST_UPDATED
The list of code objects has changed.
Definition: amd-dbgapi.h:6181
amd_dbgapi_register_is_in_register_class
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_is_in_register_class(amd_dbgapi_register_class_id_t register_class_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_register_class_state_t *register_class_state) AMD_DBGAPI_VERSION_0_54
Determine if a register is a member of a register class.
AMD_DBGAPI_WAVE_STATE_STOP
@ AMD_DBGAPI_WAVE_STATE_STOP
The wave is stopped.
Definition: amd-dbgapi.h:3273
amd_dbgapi_queue_id_t
Opaque queue handle.
Definition: amd-dbgapi.h:2440
AMD_DBGAPI_REGISTER_CLASS_INFO_NAME
@ AMD_DBGAPI_REGISTER_CLASS_INFO_NAME
Return the register class name.
Definition: amd-dbgapi.h:4416
amd_dbgapi_queue_packet_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_packet_list(amd_dbgapi_queue_id_t queue_id, amd_dbgapi_os_queue_packet_id_t *read_packet_id, amd_dbgapi_os_queue_packet_id_t *write_packet_id, size_t *packets_byte_size, void **packets_bytes) AMD_DBGAPI_VERSION_0_54
Return the packets for a queue.
AMD_DBGAPI_INSTRUCTION_PROPERTY_NONE
@ AMD_DBGAPI_INSTRUCTION_PROPERTY_NONE
The instruction has no properties.
Definition: amd-dbgapi.h:1500
AMD_DBGAPI_BREAKPOINT_ACTION_HALT
@ AMD_DBGAPI_BREAKPOINT_ACTION_HALT
Leave execution halted.
Definition: amd-dbgapi.h:6604
amd_dbgapi_disassemble_instruction
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_disassemble_instruction(amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size, const void *memory, char **instruction_text, amd_dbgapi_symbolizer_id_t symbolizer_id, amd_dbgapi_status_t(*symbolizer)(amd_dbgapi_symbolizer_id_t symbolizer_id, amd_dbgapi_global_address_t address, char **symbol_text)) AMD_DBGAPI_VERSION_0_54
Disassemble a single instruction.
AMD_DBGAPI_LOG_LEVEL_INFO
@ AMD_DBGAPI_LOG_LEVEL_INFO
Print fatal error, warning, and info messages.
Definition: amd-dbgapi.h:6465
AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_CALL_REGISTER_PAIRS
@ AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_CALL_REGISTER_PAIRS
The instruction unconditionally branches to an address held in a pair of source registers and the add...
Definition: amd-dbgapi.h:1443
amd_dbgapi_global_address_t
uint64_t amd_dbgapi_global_address_t
Integral type used for a global virtual memory address in the inferior process.
Definition: amd-dbgapi.h:548
AMD_DBGAPI_DISPATCH_INFO_BARRIER
@ AMD_DBGAPI_DISPATCH_INFO_BARRIER
Return the dispatch barrier setting.
Definition: amd-dbgapi.h:2861
AMD_DBGAPI_REGISTER_PROPERTY_VOLATILE
@ AMD_DBGAPI_REGISTER_PROPERTY_VOLATILE
The register value may change as a consequence of changing a register of the same wavefront with the ...
Definition: amd-dbgapi.h:4550
AMD_DBGAPI_MEMORY_PRECISION_PRECISE
@ AMD_DBGAPI_MEMORY_PRECISION_PRECISE
A wave waits for memory instructions to complete before executing further instructions.
Definition: amd-dbgapi.h:6045
AMD_DBGAPI_WATCHPOINT_INFO_PROCESS
@ AMD_DBGAPI_WATCHPOINT_INFO_PROCESS
Return the process to which this watchpoint belongs.
Definition: amd-dbgapi.h:4142
AMD_DBGAPI_AGENT_INFO_NAME
@ AMD_DBGAPI_AGENT_INFO_NAME
Agent name.
Definition: amd-dbgapi.h:2240
AMD_DBGAPI_DISPATCH_INFO_ARCHITECTURE
@ AMD_DBGAPI_DISPATCH_INFO_ARCHITECTURE
Return the architecture of this dispatch.
Definition: amd-dbgapi.h:2850
amd_dbgapi_callbacks_s
Callbacks that the client of the library must provide.
Definition: amd-dbgapi.h:6667
AMD_DBGAPI_WAVE_INFO_WORK_GROUP_COORD
@ AMD_DBGAPI_WAVE_INFO_WORK_GROUP_COORD
The wave workgroup coordinate in the dispatch grid dimensions.
Definition: amd-dbgapi.h:3177
AMD_DBGAPI_AGENT_INFO_STATE
@ AMD_DBGAPI_AGENT_INFO_STATE
Return the agent state.
Definition: amd-dbgapi.h:2255
AMD_DBGAPI_WAVE_STOP_REASON_DEBUG_TRAP
@ AMD_DBGAPI_WAVE_STOP_REASON_DEBUG_TRAP
The wave stopped due to executing a debug trap instruction.
Definition: amd-dbgapi.h:3381
amd_dbgapi_process_id_t
Opaque process handle.
Definition: amd-dbgapi.h:1618
AMD_DBGAPI_STATUS_ERROR_RESTRICTION
@ AMD_DBGAPI_STATUS_ERROR_RESTRICTION
There is a restriction error that prevents debugging the process.
Definition: amd-dbgapi.h:802
amd_dbgapi_process_code_object_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_code_object_list(amd_dbgapi_process_id_t process_id, size_t *code_object_count, amd_dbgapi_code_object_id_t **code_objects, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
Return the list of loaded code objects.
AMD_DBGAPI_REGISTER_PROPERTY_INVALIDATE_VOLATILE
@ AMD_DBGAPI_REGISTER_PROPERTY_INVALIDATE_VOLATILE
Changing the value of the register may change a register of the same wavefront with the AMD_DBGAPI_RE...
Definition: amd-dbgapi.h:4557
AMD_DBGAPI_ADDRESS_SPACE_INFO_NAME
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_NAME
Return the address space name.
Definition: amd-dbgapi.h:5444
amd_dbgapi_get_architecture
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_get_architecture(uint32_t elf_amdgpu_machine, amd_dbgapi_architecture_id_t *architecture_id) AMD_DBGAPI_VERSION_0_54
Get an architecture from the AMD GPU ELF EF_AMDGPU_MACH value corresponding to the architecture.
AMD_DBGAPI_PROCESS_INFO_NOTIFIER
@ AMD_DBGAPI_PROCESS_INFO_NOTIFIER
The notifier for the process that indicates if pending events are available.
Definition: amd-dbgapi.h:1640
AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_CODE_INVALID
@ AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_CODE_INVALID
A dispatch packet on the queue has a NULL code address.
Definition: amd-dbgapi.h:2640
amd_dbgapi_register_exists_t
amd_dbgapi_register_exists_t
Indication of if a wave has a register.
Definition: amd-dbgapi.h:4705
amd_dbgapi_get_build_name
const char AMD_DBGAPI * amd_dbgapi_get_build_name(void) AMD_DBGAPI_VERSION_0_54
Query the installed library build name.
amd_dbgapi_register_properties_t
amd_dbgapi_register_properties_t
A bit mask on register properties.
Definition: amd-dbgapi.h:4533
AMD_DBGAPI_INSTRUCTION_KIND_HALT
@ AMD_DBGAPI_INSTRUCTION_KIND_HALT
The instruction unconditionally halts the wave.
Definition: amd-dbgapi.h:1467
AMD_DBGAPI_EVENT_INFO_BREAKPOINT
@ AMD_DBGAPI_EVENT_INFO_BREAKPOINT
Return the breakpoint of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:6335
AMD_DBGAPI_INSTRUCTION_KIND_SEQUENTIAL
@ AMD_DBGAPI_INSTRUCTION_KIND_SEQUENTIAL
The instruction executes sequentially.
Definition: amd-dbgapi.h:1391
AMD_DBGAPI_STATUS_ERROR_INVALID_DISPLACED_STEPPING_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_DISPLACED_STEPPING_ID
The displaced stepping handle is invalid.
Definition: amd-dbgapi.h:867
AMD_DBGAPI_STATUS_ERROR
@ AMD_DBGAPI_STATUS_ERROR
A generic error has occurred.
Definition: amd-dbgapi.h:734
AMD_DBGAPI_STATUS_ERROR_NOT_AVAILABLE
@ AMD_DBGAPI_STATUS_ERROR_NOT_AVAILABLE
The requested information is not available.
Definition: amd-dbgapi.h:766
AMD_DBGAPI_STATUS_ERROR_ALREADY_ATTACHED
@ AMD_DBGAPI_STATUS_ERROR_ALREADY_ATTACHED
The process is already attached to the given inferior process.
Definition: amd-dbgapi.h:806
amd_dbgapi_memory_precision_t
amd_dbgapi_memory_precision_t
Memory access precision.
Definition: amd-dbgapi.h:6035
AMD_DBGAPI_ADDRESS_CLASS_INFO_ADDRESS_SPACE
@ AMD_DBGAPI_ADDRESS_CLASS_INFO_ADDRESS_SPACE
Return the architecture specific address space that is used to implement a pointer or reference to th...
Definition: amd-dbgapi.h:5237
amd_dbgapi_dispatch_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dispatch_get_info(amd_dbgapi_dispatch_id_t dispatch_id, amd_dbgapi_dispatch_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
Query information about a dispatch.
AMD_DBGAPI_INSTRUCTION_KIND_SLEEP
@ AMD_DBGAPI_INSTRUCTION_KIND_SLEEP
The instruction causes the wave to stop executing for some period of time, before continuing executio...
Definition: amd-dbgapi.h:1480
AMD_DBGAPI_WAVE_STOP_REASON_FP_UNDERFLOW
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_UNDERFLOW
The wave stopped due to triggering an enabled floating point underflow exception.
Definition: amd-dbgapi.h:3342
AMD_DBGAPI_ARCHITECTURE_INFO_LARGEST_INSTRUCTION_SIZE
@ AMD_DBGAPI_ARCHITECTURE_INFO_LARGEST_INSTRUCTION_SIZE
Return the largest instruction size in bytes for the architecture.
Definition: amd-dbgapi.h:1157
amd_dbgapi_callbacks_s::deallocate_memory
void(* deallocate_memory)(void *data)
Deallocate memory that was allocated by amd_dbgapi_callbacks_s::allocate_memory.
Definition: amd-dbgapi.h:6698
AMD_DBGAPI_WAVE_INFO_EXEC_MASK
@ AMD_DBGAPI_WAVE_INFO_EXEC_MASK
Return the current execution mask of the wave.
Definition: amd-dbgapi.h:3166
amd_dbgapi_report_breakpoint_hit
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_report_breakpoint_hit(amd_dbgapi_breakpoint_id_t breakpoint_id, amd_dbgapi_client_thread_id_t client_thread_id, amd_dbgapi_breakpoint_action_t *breakpoint_action) AMD_DBGAPI_VERSION_0_54
Report that a breakpoint inserted by the amd_dbgapi_callbacks_s::insert_breakpoint callback has been ...
AMD_DBGAPI_STATUS_SUCCESS
@ AMD_DBGAPI_STATUS_SUCCESS
The function has executed successfully.
Definition: amd-dbgapi.h:730
amd_dbgapi_process_detach
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_detach(amd_dbgapi_process_id_t process_id) AMD_DBGAPI_VERSION_0_54
Detach from a process and no longer have debug control of the AMD GPU devices it uses.
AMD_DBGAPI_STATUS_ERROR_ALREADY_INITIALIZED
@ AMD_DBGAPI_STATUS_ERROR_ALREADY_INITIALIZED
The library is already initialized.
Definition: amd-dbgapi.h:782
AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_CLASS_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_CLASS_ID
The address class handle is invalid.
Definition: amd-dbgapi.h:905
AMD_DBGAPI_AGENT_STATE_SUPPORTED
@ AMD_DBGAPI_AGENT_STATE_SUPPORTED
Agent supports debugging.
Definition: amd-dbgapi.h:2295
AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME
@ AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME
Request to resume a host breakpoint.
Definition: amd-dbgapi.h:6194
AMD_DBGAPI_EXCEPTION_WAVE_APERTURE_VIOLATION
@ AMD_DBGAPI_EXCEPTION_WAVE_APERTURE_VIOLATION
A wave on the queue had an aperture violation.
Definition: amd-dbgapi.h:2628
amd_dbgapi_wave_state_t
amd_dbgapi_wave_state_t
The execution state of a wave.
Definition: amd-dbgapi.h:3251
AMD_DBGAPI_QUEUE_INFO_OS_ID
@ AMD_DBGAPI_QUEUE_INFO_OS_ID
Native operating system queue ID.
Definition: amd-dbgapi.h:2504
AMD_DBGAPI_EXCEPTION_QUEUE_PREEMPTION_ERROR
@ AMD_DBGAPI_EXCEPTION_QUEUE_PREEMPTION_ERROR
There was an error preempting the queue.
Definition: amd-dbgapi.h:2665
AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID
@ AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID
A dispatch packet on the queue has an invalid group segment size.
Definition: amd-dbgapi.h:2636
AMD_DBGAPI_DISPATCH_INFO_KERNEL_ARGUMENT_SEGMENT_ADDRESS
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_ARGUMENT_SEGMENT_ADDRESS
Return the dispatch kernel argument segment address.
Definition: amd-dbgapi.h:2901
AMD_DBGAPI_QUEUE_INFO_ERROR_REASON
@ AMD_DBGAPI_QUEUE_INFO_ERROR_REASON
Return the set of exceptions that caused the queue to enter the queue error state.
Definition: amd-dbgapi.h:2489
AMD_DBGAPI_STATUS_ERROR_RESUME_DISPLACED_STEPPING
@ AMD_DBGAPI_STATUS_ERROR_RESUME_DISPLACED_STEPPING
The wave cannot be resumed in the manner requested due to displaced stepping restrictions.
Definition: amd-dbgapi.h:881
AMD_DBGAPI_REGISTER_CLASS_STATE_MEMBER
@ AMD_DBGAPI_REGISTER_CLASS_STATE_MEMBER
The register is a member of the register class.
Definition: amd-dbgapi.h:4900
amd_dbgapi_architecture_register_class_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_class_get_info(amd_dbgapi_register_class_id_t register_class_id, amd_dbgapi_register_class_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
Query information about a register class of an architecture.
amd_dbgapi_architecture_register_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_list(amd_dbgapi_architecture_id_t architecture_id, size_t *register_count, amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_54
Report the list of registers supported by the architecture.
amd_dbgapi_register_id_t
Opaque register handle.
Definition: amd-dbgapi.h:4516
amd_dbgapi_os_agent_id_t
uint64_t amd_dbgapi_os_agent_id_t
Native operating system agent ID.
Definition: amd-dbgapi.h:617
AMD_DBGAPI_LOG_LEVEL_TRACE
@ AMD_DBGAPI_LOG_LEVEL_TRACE
Print fatal error, warning, info, and API tracing messages.
Definition: amd-dbgapi.h:6469
AMD_DBGAPI_LOG_LEVEL_WARNING
@ AMD_DBGAPI_LOG_LEVEL_WARNING
Print fatal error and warning messages.
Definition: amd-dbgapi.h:6461
amd_dbgapi_wave_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_get_info(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_wave_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_58
Query information about a wave.
amd_dbgapi_event_info_t
amd_dbgapi_event_info_t
Event queries that are supported by amd_dbgapi_event_get_info.
Definition: amd-dbgapi.h:6314
amd_dbgapi_displaced_stepping_info_t
amd_dbgapi_displaced_stepping_info_t
Displaced stepping queries that are supported by amd_dbgapi_displaced_stepping_id_t.
Definition: amd-dbgapi.h:3893
amd_dbgapi_agent_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:2213
AMD_DBGAPI_WATCHPOINT_INFO_ADDRESS
@ AMD_DBGAPI_WATCHPOINT_INFO_ADDRESS
The base address of the created watchpoint.
Definition: amd-dbgapi.h:4147
amd_dbgapi_displaced_stepping_start
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_start(amd_dbgapi_wave_id_t wave_id, const void *saved_instruction_bytes, amd_dbgapi_displaced_stepping_id_t *displaced_stepping) AMD_DBGAPI_VERSION_0_54
Associate an active displaced stepping buffer with a wave.