AMD_DBGAPI: include/amd-dbgapi.h Source File

AMD_DBGAPI 0.64.0

amd-dbgapi.h
Go to the documentation of this file.
1 /* Copyright (c) 2019-2022 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
432 #ifndef AMD_DBGAPI_H
433 #define AMD_DBGAPI_H 1
434
435 /* Placeholder for calling convention and import/export macros */
436 #if !defined(AMD_DBGAPI_CALL)
437 #define AMD_DBGAPI_CALL
438 #endif /* !defined (AMD_DBGAPI_CALL) */
439
440 #if !defined(AMD_DBGAPI_EXPORT_DECORATOR)
441 #if defined(__GNUC__)
442 #define AMD_DBGAPI_EXPORT_DECORATOR __attribute__ ((visibility ("default")))
443 #elif defined(_MSC_VER)
444 #define AMD_DBGAPI_EXPORT_DECORATOR __declspec(dllexport)
445 #endif /* defined (_MSC_VER) */
446 #endif /* !defined (AMD_DBGAPI_EXPORT_DECORATOR) */
447
448 #if !defined(AMD_DBGAPI_IMPORT_DECORATOR)
449 #if defined(__GNUC__)
450 #define AMD_DBGAPI_IMPORT_DECORATOR
451 #elif defined(_MSC_VER)
452 #define AMD_DBGAPI_IMPORT_DECORATOR __declspec(dllimport)
453 #endif /* defined (_MSC_VER) */
454 #endif /* !defined (AMD_DBGAPI_IMPORT_DECORATOR) */
455
456 #define AMD_DBGAPI_EXPORT AMD_DBGAPI_EXPORT_DECORATOR AMD_DBGAPI_CALL
457 #define AMD_DBGAPI_IMPORT AMD_DBGAPI_IMPORT_DECORATOR AMD_DBGAPI_CALL
458
459 #if !defined(AMD_DBGAPI)
460 #if defined(AMD_DBGAPI_EXPORTS)
461 #define AMD_DBGAPI AMD_DBGAPI_EXPORT
462 #else /* !defined (AMD_DBGAPI_EXPORTS) */
463 #define AMD_DBGAPI AMD_DBGAPI_IMPORT
464 #endif /* !defined (AMD_DBGAPI_EXPORTS) */
465 #endif /* !defined (AMD_DBGAPI) */
466
467 #if __cplusplus >= 201103L
468 /* c++11 allows extended initializer lists. */
469 #define AMD_DBGAPI_HANDLE_LITERAL(type, value) (type{ value })
470 #elif __STDC_VERSION__ >= 199901L
471 /* c99 allows compound literals. */
472 #define AMD_DBGAPI_HANDLE_LITERAL(type, value) ((type){ value })
473 #else /* !__STDC_VERSION__ >= 199901L */
474 #define AMD_DBGAPI_HANDLE_LITERAL(type, value) {value}
475 #endif /* !__STDC_VERSION__ >= 199901L */
476
477 #if defined(__cplusplus)
478 extern "C" {
479 #endif /* defined (__cplusplus) */
480
481 #if defined(__linux__)
482 #include <sys/types.h>
483 #endif /* __linux__ */
484
485 #include <stddef.h>
486 #include <stdint.h>
487
507 #define AMD_DBGAPI_VERSION_0_54
508
513 #define AMD_DBGAPI_VERSION_0_56
514
519 #define AMD_DBGAPI_VERSION_0_58
520
525 #define AMD_DBGAPI_VERSION_0_62
526
531 #define AMD_DBGAPI_VERSION_0_64
532
539 typedef struct amd_dbgapi_callbacks_s amd_dbgapi_callbacks_t;
540
563 typedef uint64_t amd_dbgapi_global_address_t;
564
568 typedef uint64_t amd_dbgapi_size_t;
569
573 typedef enum
574 {
578 AMD_DBGAPI_CHANGED_NO = 0,
582 AMD_DBGAPI_CHANGED_YES = 1
583 } amd_dbgapi_changed_t;
584
592 #if defined(__linux__)
593 typedef pid_t amd_dbgapi_os_process_id_t;
594 #endif /* __linux__ */
595
620 #if defined(__linux__)
621 typedef int amd_dbgapi_notifier_t;
622 #endif /* __linux__ */
623
631 #if defined(__linux__)
632 typedef uint64_t amd_dbgapi_os_agent_id_t;
633 #endif /* __linux__ */
634
641 #if defined(__linux__)
642 typedef uint64_t amd_dbgapi_os_queue_id_t;
643 #endif /* __linux__ */
644
653 #if defined(__linux__)
654 typedef uint64_t amd_dbgapi_os_queue_packet_id_t;
655 #endif /* __linux__ */
656
664 #if defined(__linux__)
665 typedef enum
666 {
670 AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN = 0,
686 AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_MULTIPLE_PRODUCER = 1,
702 AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_SINGLE_PRODUCER = 2,
712 AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_COOPERATIVE = 3,
716 AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4 = 257,
720 AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA = 513,
724 AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA_XGMI = 514
725 } amd_dbgapi_os_queue_type_t;
726 #endif /* __linux__ */
727
740 typedef enum
741 {
745 AMD_DBGAPI_STATUS_SUCCESS = 0,
749 AMD_DBGAPI_STATUS_ERROR = -1,
771 AMD_DBGAPI_STATUS_FATAL = -2,
777 AMD_DBGAPI_STATUS_ERROR_NOT_IMPLEMENTED = -3,
781 AMD_DBGAPI_STATUS_ERROR_NOT_AVAILABLE = -4,
785 AMD_DBGAPI_STATUS_ERROR_NOT_SUPPORTED = -5,
789 AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT = -6,
793 AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT_COMPATIBILITY = -7,
797 AMD_DBGAPI_STATUS_ERROR_ALREADY_INITIALIZED = -8,
801 AMD_DBGAPI_STATUS_ERROR_NOT_INITIALIZED = -9,
817 AMD_DBGAPI_STATUS_ERROR_RESTRICTION = -10,
821 AMD_DBGAPI_STATUS_ERROR_ALREADY_ATTACHED = -11,
825 AMD_DBGAPI_STATUS_ERROR_INVALID_ARCHITECTURE_ID = -12,
829 AMD_DBGAPI_STATUS_ERROR_ILLEGAL_INSTRUCTION = -13,
833 AMD_DBGAPI_STATUS_ERROR_INVALID_CODE_OBJECT_ID = -14,
837 AMD_DBGAPI_STATUS_ERROR_INVALID_ELF_AMDGPU_MACHINE = -15,
841 AMD_DBGAPI_STATUS_ERROR_INVALID_PROCESS_ID = -16,
846 AMD_DBGAPI_STATUS_ERROR_PROCESS_EXITED = -17,
850 AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID = -18,
854 AMD_DBGAPI_STATUS_ERROR_INVALID_QUEUE_ID = -19,
858 AMD_DBGAPI_STATUS_ERROR_INVALID_DISPATCH_ID = -20,
862 AMD_DBGAPI_STATUS_ERROR_INVALID_WAVE_ID = -21,
866 AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_STOPPED = -22,
870 AMD_DBGAPI_STATUS_ERROR_WAVE_STOPPED = -23,
874 AMD_DBGAPI_STATUS_ERROR_WAVE_OUTSTANDING_STOP = -24,
878 AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_RESUMABLE = -25,
882 AMD_DBGAPI_STATUS_ERROR_INVALID_DISPLACED_STEPPING_ID = -26,
887 AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_BUFFER_NOT_AVAILABLE = -27,
891 AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_ACTIVE = -28,
896 AMD_DBGAPI_STATUS_ERROR_RESUME_DISPLACED_STEPPING = -29,
900 AMD_DBGAPI_STATUS_ERROR_INVALID_WATCHPOINT_ID = -30,
904 AMD_DBGAPI_STATUS_ERROR_NO_WATCHPOINT_AVAILABLE = -31,
908 AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_CLASS_ID = -32,
912 AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_ID = -33,
916 AMD_DBGAPI_STATUS_ERROR_INVALID_LANE_ID = -34,
920 AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_CLASS_ID = -35,
924 AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_ID = -36,
928 AMD_DBGAPI_STATUS_ERROR_MEMORY_ACCESS = -37,
932 AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_CONVERSION = -38,
936 AMD_DBGAPI_STATUS_ERROR_INVALID_EVENT_ID = -39,
940 AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID = -40,
944 AMD_DBGAPI_STATUS_ERROR_CLIENT_CALLBACK = -41,
948 AMD_DBGAPI_STATUS_ERROR_INVALID_CLIENT_PROCESS_ID = -42,
952 AMD_DBGAPI_STATUS_ERROR_SYMBOL_NOT_FOUND = -43,
957 AMD_DBGAPI_STATUS_ERROR_REGISTER_NOT_AVAILABLE = -44,
961 AMD_DBGAPI_STATUS_ERROR_INVALID_WORKGROUP_ID = -45,
962 } amd_dbgapi_status_t;
963
980 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_get_status_string (
981 amd_dbgapi_status_t status,
982 const char **status_string) AMD_DBGAPI_VERSION_0_54;
983
1007 #define AMD_DBGAPI_VERSION_MAJOR 0
1008
1013 #define AMD_DBGAPI_VERSION_MINOR 64
1014
1028 void AMD_DBGAPI amd_dbgapi_get_version (
1029 uint32_t *major, uint32_t *minor, uint32_t *patch) AMD_DBGAPI_VERSION_0_54;
1030
1039 const char AMD_DBGAPI *
1040 amd_dbgapi_get_build_name (void) AMD_DBGAPI_VERSION_0_54;
1041
1087 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_initialize (
1088 amd_dbgapi_callbacks_t *callbacks) AMD_DBGAPI_VERSION_0_54;
1089
1114 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_finalize (void)
1115 AMD_DBGAPI_VERSION_0_54;
1116
1138 typedef struct
1139 {
1140 uint64_t handle;
1141 } amd_dbgapi_architecture_id_t;
1142
1146 #define AMD_DBGAPI_ARCHITECTURE_NONE \
1147 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_architecture_id_t, 0)
1148
1156 typedef enum
1157 {
1164 AMD_DBGAPI_ARCHITECTURE_INFO_NAME = 1,
1172 AMD_DBGAPI_ARCHITECTURE_INFO_ELF_AMDGPU_MACHINE = 2,
1177 AMD_DBGAPI_ARCHITECTURE_INFO_LARGEST_INSTRUCTION_SIZE = 3,
1183 AMD_DBGAPI_ARCHITECTURE_INFO_MINIMUM_INSTRUCTION_ALIGNMENT = 4,
1188 AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_SIZE = 5,
1196 AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION = 6,
1202 AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_PC_ADJUST = 7,
1207 AMD_DBGAPI_ARCHITECTURE_INFO_PC_REGISTER = 8
1208 } amd_dbgapi_architecture_info_t;
1209
1248 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_get_info (
1249 amd_dbgapi_architecture_id_t architecture_id,
1250 amd_dbgapi_architecture_info_t query, size_t value_size,
1251 void *value) AMD_DBGAPI_VERSION_0_54;
1252
1281 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_get_architecture (
1282 uint32_t elf_amdgpu_machine,
1283 amd_dbgapi_architecture_id_t *architecture_id) AMD_DBGAPI_VERSION_0_54;
1284
1291 typedef struct amd_dbgapi_symbolizer_id_s *amd_dbgapi_symbolizer_id_t;
1292
1386 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_disassemble_instruction (
1387 amd_dbgapi_architecture_id_t architecture_id,
1388 amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1389 const void *memory, char **instruction_text,
1390 amd_dbgapi_symbolizer_id_t symbolizer_id,
1391 amd_dbgapi_status_t (*symbolizer) (
1392 amd_dbgapi_symbolizer_id_t symbolizer_id,
1393 amd_dbgapi_global_address_t address,
1394 char **symbol_text)) AMD_DBGAPI_VERSION_0_54;
1395
1399 typedef enum
1400 {
1405 AMD_DBGAPI_INSTRUCTION_KIND_UNKNOWN = 0,
1411 AMD_DBGAPI_INSTRUCTION_KIND_SEQUENTIAL = 1,
1417 AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH = 2,
1424 AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH_CONDITIONAL = 3,
1432 AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_REGISTER_PAIR = 4,
1442 AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_CONDITIONAL_REGISTER_PAIR = 5,
1453 AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_CALL_REGISTER_PAIR = 6,
1463 AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_CALL_REGISTER_PAIRS = 7,
1468 AMD_DBGAPI_INSTRUCTION_KIND_TERMINATE = 8,
1482 AMD_DBGAPI_INSTRUCTION_KIND_TRAP = 9,
1487 AMD_DBGAPI_INSTRUCTION_KIND_HALT = 10,
1494 AMD_DBGAPI_INSTRUCTION_KIND_BARRIER = 11,
1500 AMD_DBGAPI_INSTRUCTION_KIND_SLEEP = 12,
1509 AMD_DBGAPI_INSTRUCTION_KIND_SPECIAL = 13
1510 } amd_dbgapi_instruction_kind_t;
1511
1515 typedef enum
1516 {
1520 AMD_DBGAPI_INSTRUCTION_PROPERTY_NONE = 0
1521 } amd_dbgapi_instruction_properties_t;
1522
1597 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_classify_instruction (
1598 amd_dbgapi_architecture_id_t architecture_id,
1599 amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1600 const void *memory, amd_dbgapi_instruction_kind_t *instruction_kind,
1601 amd_dbgapi_instruction_properties_t *instruction_properties,
1602 void **instruction_information) AMD_DBGAPI_VERSION_0_58;
1603
1625 typedef struct amd_dbgapi_client_process_s *amd_dbgapi_client_process_id_t;
1626
1637 typedef struct
1638 {
1639 uint64_t handle;
1640 } amd_dbgapi_process_id_t;
1641
1645 #define AMD_DBGAPI_PROCESS_NONE \
1646 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_process_id_t, 0)
1647
1654 typedef enum
1655 {
1660 AMD_DBGAPI_PROCESS_INFO_NOTIFIER = 1,
1666 AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_COUNT = 2,
1672 AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_SHARE = 3,
1678 AMD_DBGAPI_PROCESS_INFO_PRECISE_MEMORY_SUPPORTED = 4,
1688 AMD_DBGAPI_PROCESS_INFO_OS_ID = 5
1689 } amd_dbgapi_process_info_t;
1690
1733 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_get_info (
1734 amd_dbgapi_process_id_t process_id, amd_dbgapi_process_info_t query,
1735 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_56;
1736
1826 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_attach (
1827 amd_dbgapi_client_process_id_t client_process_id,
1828 amd_dbgapi_process_id_t *process_id) AMD_DBGAPI_VERSION_0_56;
1829
1874 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_detach (
1875 amd_dbgapi_process_id_t process_id) AMD_DBGAPI_VERSION_0_54;
1876
1891 typedef enum
1892 {
1898 AMD_DBGAPI_PROGRESS_NORMAL = 0,
1922 AMD_DBGAPI_PROGRESS_NO_FORWARD = 1
1923 } amd_dbgapi_progress_t;
1924
1949 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_set_progress (
1950 amd_dbgapi_process_id_t process_id,
1951 amd_dbgapi_progress_t progress) AMD_DBGAPI_VERSION_0_54;
1952
1964 typedef enum
1965 {
1969 AMD_DBGAPI_WAVE_CREATION_NORMAL = 0,
1973 AMD_DBGAPI_WAVE_CREATION_STOP = 1
1974 } amd_dbgapi_wave_creation_t;
1975
2000 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_set_wave_creation (
2001 amd_dbgapi_process_id_t process_id,
2002 amd_dbgapi_wave_creation_t creation) AMD_DBGAPI_VERSION_0_54;
2003
2030 typedef struct
2031 {
2032 uint64_t handle;
2033 } amd_dbgapi_code_object_id_t;
2034
2038 #define AMD_DBGAPI_CODE_OBJECT_NONE \
2039 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_code_object_id_t, 0)
2040
2047 typedef enum
2048 {
2053 AMD_DBGAPI_CODE_OBJECT_INFO_PROCESS = 1,
2109 AMD_DBGAPI_CODE_OBJECT_INFO_URI_NAME = 2,
2115 AMD_DBGAPI_CODE_OBJECT_INFO_LOAD_ADDRESS = 3
2116 } amd_dbgapi_code_object_info_t;
2117
2156 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_code_object_get_info (
2157 amd_dbgapi_code_object_id_t code_object_id,
2158 amd_dbgapi_code_object_info_t query, size_t value_size,
2159 void *value) AMD_DBGAPI_VERSION_0_54;
2160
2210 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_code_object_list (
2211 amd_dbgapi_process_id_t process_id, size_t *code_object_count,
2212 amd_dbgapi_code_object_id_t **code_objects,
2213 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
2214
2231 typedef struct
2232 {
2233 uint64_t handle;
2234 } amd_dbgapi_agent_id_t;
2235
2239 #define AMD_DBGAPI_AGENT_NONE \
2240 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_agent_id_t, 0)
2241
2248 typedef enum
2249 {
2254 AMD_DBGAPI_AGENT_INFO_PROCESS = 1,
2260 AMD_DBGAPI_AGENT_INFO_NAME = 2,
2270 AMD_DBGAPI_AGENT_INFO_ARCHITECTURE = 3,
2275 AMD_DBGAPI_AGENT_INFO_STATE = 4,
2281 AMD_DBGAPI_AGENT_INFO_PCI_SLOT = 5,
2285 AMD_DBGAPI_AGENT_INFO_PCI_VENDOR_ID = 6,
2289 AMD_DBGAPI_AGENT_INFO_PCI_DEVICE_ID = 7,
2294 AMD_DBGAPI_AGENT_INFO_EXECUTION_UNIT_COUNT = 8,
2299 AMD_DBGAPI_AGENT_INFO_MAX_WAVES_PER_EXECUTION_UNIT = 9,
2304 AMD_DBGAPI_AGENT_INFO_OS_ID = 10
2305 } amd_dbgapi_agent_info_t;
2306
2310 typedef enum
2311 {
2315 AMD_DBGAPI_AGENT_STATE_SUPPORTED = 1,
2336 AMD_DBGAPI_AGENT_STATE_NOT_SUPPORTED = 2
2337 } amd_dbgapi_agent_state_t;
2338
2381 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_agent_get_info (
2382 amd_dbgapi_agent_id_t agent_id, amd_dbgapi_agent_info_t query,
2383 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_56;
2384
2436 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_agent_list (
2437 amd_dbgapi_process_id_t process_id, size_t *agent_count,
2438 amd_dbgapi_agent_id_t **agents,
2439 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
2440
2459 typedef struct
2460 {
2461 uint64_t handle;
2462 } amd_dbgapi_queue_id_t;
2463
2467 #define AMD_DBGAPI_QUEUE_NONE \
2468 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_queue_id_t, 0)
2469
2476 typedef enum
2477 {
2482 AMD_DBGAPI_QUEUE_INFO_AGENT = 1,
2487 AMD_DBGAPI_QUEUE_INFO_PROCESS = 2,
2492 AMD_DBGAPI_QUEUE_INFO_ARCHITECTURE = 3,
2497 AMD_DBGAPI_QUEUE_INFO_TYPE = 4,
2502 AMD_DBGAPI_QUEUE_INFO_STATE = 5,
2509 AMD_DBGAPI_QUEUE_INFO_ERROR_REASON = 6,
2514 AMD_DBGAPI_QUEUE_INFO_ADDRESS = 7,
2519 AMD_DBGAPI_QUEUE_INFO_SIZE = 8,
2524 AMD_DBGAPI_QUEUE_INFO_OS_ID = 9
2525 } amd_dbgapi_queue_info_t;
2526
2565 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_get_info (
2566 amd_dbgapi_queue_id_t queue_id, amd_dbgapi_queue_info_t query,
2567 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_58;
2568
2572 typedef enum
2573 {
2577 AMD_DBGAPI_QUEUE_STATE_VALID = 1,
2591 AMD_DBGAPI_QUEUE_STATE_ERROR = 2
2592 } amd_dbgapi_queue_state_t;
2593
2598 typedef enum
2599 {
2603 AMD_DBGAPI_EXCEPTION_NONE = 0,
2607 AMD_DBGAPI_EXCEPTION_WAVE_ABORT = (1 << 0),
2617 AMD_DBGAPI_EXCEPTION_WAVE_TRAP = (1 << 1),
2633 AMD_DBGAPI_EXCEPTION_WAVE_MATH_ERROR = (1 << 2),
2637 AMD_DBGAPI_EXCEPTION_WAVE_ILLEGAL_INSTRUCTION = (1 << 3),
2643 AMD_DBGAPI_EXCEPTION_WAVE_MEMORY_VIOLATION = (1 << 4),
2648 AMD_DBGAPI_EXCEPTION_WAVE_APERTURE_VIOLATION = (1 << 5),
2652 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_DIM_INVALID = (1 << 16),
2656 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID = (1 << 17),
2660 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_CODE_INVALID = (1 << 18),
2664 AMD_DBGAPI_EXCEPTION_PACKET_UNSUPPORTED = (1 << 20),
2668 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_WORKGROUP_SIZE_INVALID = (1 << 21),
2672 AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_REGISTER_COUNT_TOO_LARGE = (1 << 22),
2676 AMD_DBGAPI_EXCEPTION_PACKET_VENDOR_UNSUPPORTED = (1 << 23),
2685 AMD_DBGAPI_EXCEPTION_QUEUE_PREEMPTION_ERROR = (1 << 31)
2686 } amd_dbgapi_exceptions_t;
2687
2740 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_queue_list (
2741 amd_dbgapi_process_id_t process_id, size_t *queue_count,
2742 amd_dbgapi_queue_id_t **queues,
2743 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
2744
2808 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_packet_list (
2809 amd_dbgapi_queue_id_t queue_id,
2810 amd_dbgapi_os_queue_packet_id_t *read_packet_id,
2811 amd_dbgapi_os_queue_packet_id_t *write_packet_id,
2812 size_t *packets_byte_size, void **packets_bytes) AMD_DBGAPI_VERSION_0_54;
2813
2832 typedef struct
2833 {
2834 uint64_t handle;
2835 } amd_dbgapi_dispatch_id_t;
2836
2840 #define AMD_DBGAPI_DISPATCH_NONE \
2841 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_dispatch_id_t, 0)
2842
2849 typedef enum
2850 {
2855 AMD_DBGAPI_DISPATCH_INFO_QUEUE = 1,
2860 AMD_DBGAPI_DISPATCH_INFO_AGENT = 2,
2865 AMD_DBGAPI_DISPATCH_INFO_PROCESS = 3,
2870 AMD_DBGAPI_DISPATCH_INFO_ARCHITECTURE = 4,
2876 AMD_DBGAPI_DISPATCH_INFO_OS_QUEUE_PACKET_ID = 5,
2881 AMD_DBGAPI_DISPATCH_INFO_BARRIER = 6,
2886 AMD_DBGAPI_DISPATCH_INFO_ACQUIRE_FENCE = 7,
2891 AMD_DBGAPI_DISPATCH_INFO_RELEASE_FENCE = 8,
2896 AMD_DBGAPI_DISPATCH_INFO_GRID_DIMENSIONS = 9,
2901 AMD_DBGAPI_DISPATCH_INFO_WORKGROUP_SIZES = 10,
2906 AMD_DBGAPI_DISPATCH_INFO_GRID_SIZES = 11,
2911 AMD_DBGAPI_DISPATCH_INFO_PRIVATE_SEGMENT_SIZE = 12,
2916 AMD_DBGAPI_DISPATCH_INFO_GROUP_SEGMENT_SIZE = 13,
2921 AMD_DBGAPI_DISPATCH_INFO_KERNEL_ARGUMENT_SEGMENT_ADDRESS = 14,
2926 AMD_DBGAPI_DISPATCH_INFO_KERNEL_DESCRIPTOR_ADDRESS = 15,
2931 AMD_DBGAPI_DISPATCH_INFO_KERNEL_CODE_ENTRY_ADDRESS = 16,
2941 AMD_DBGAPI_DISPATCH_INFO_KERNEL_COMPLETION_ADDRESS = 17
2942 } amd_dbgapi_dispatch_info_t;
2943
2985 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dispatch_get_info (
2986 amd_dbgapi_dispatch_id_t dispatch_id, amd_dbgapi_dispatch_info_t query,
2987 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54;
2988
2995 typedef enum
2996 {
3000 AMD_DBGAPI_DISPATCH_BARRIER_NONE = 0,
3005 AMD_DBGAPI_DISPATCH_BARRIER_PRESENT = 1
3006 } amd_dbgapi_dispatch_barrier_t;
3007
3014 typedef enum
3015 {
3019 AMD_DBGAPI_DISPATCH_FENCE_SCOPE_NONE = 0,
3023 AMD_DBGAPI_DISPATCH_FENCE_SCOPE_AGENT = 1,
3027 AMD_DBGAPI_DISPATCH_FENCE_SCOPE_SYSTEM = 2
3028 } amd_dbgapi_dispatch_fence_scope_t;
3029
3078 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_dispatch_list (
3079 amd_dbgapi_process_id_t process_id, size_t *dispatch_count,
3080 amd_dbgapi_dispatch_id_t **dispatches,
3081 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
3082
3099 typedef struct
3100 {
3101 uint64_t handle;
3102 } amd_dbgapi_workgroup_id_t;
3103
3107 #define AMD_DBGAPI_WORKGROUP_NONE \
3108 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_workgroup_id_t, 0)
3109
3116 typedef enum
3117 {
3127 AMD_DBGAPI_WORKGROUP_INFO_DISPATCH = 1,
3132 AMD_DBGAPI_WORKGROUP_INFO_QUEUE = 2,
3137 AMD_DBGAPI_WORKGROUP_INFO_AGENT = 3,
3142 AMD_DBGAPI_WORKGROUP_INFO_PROCESS = 4,
3147 AMD_DBGAPI_WORKGROUP_INFO_ARCHITECTURE = 5,
3158 AMD_DBGAPI_WORKGROUP_INFO_WORKGROUP_COORD = 6
3159 } amd_dbgapi_workgroup_info_t;
3160
3203 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_workgroup_get_info (
3204 amd_dbgapi_workgroup_id_t workgroup_id, amd_dbgapi_workgroup_info_t query,
3205 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_64;
3206
3256 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_workgroup_list (
3257 amd_dbgapi_process_id_t process_id, size_t *workgroup_count,
3258 amd_dbgapi_workgroup_id_t **workgroups,
3259 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_64;
3260
3277 typedef struct
3278 {
3279 uint64_t handle;
3280 } amd_dbgapi_wave_id_t;
3281
3285 #define AMD_DBGAPI_WAVE_NONE \
3286 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_wave_id_t, 0)
3287
3294 typedef enum
3295 {
3300 AMD_DBGAPI_WAVE_INFO_STATE = 1,
3307 AMD_DBGAPI_WAVE_INFO_STOP_REASON = 2,
3320 AMD_DBGAPI_WAVE_INFO_WATCHPOINTS = 3,
3330 AMD_DBGAPI_WAVE_INFO_WORKGROUP = 4,
3340 AMD_DBGAPI_WAVE_INFO_DISPATCH = 5,
3345 AMD_DBGAPI_WAVE_INFO_QUEUE = 6,
3350 AMD_DBGAPI_WAVE_INFO_AGENT = 7,
3355 AMD_DBGAPI_WAVE_INFO_PROCESS = 8,
3360 AMD_DBGAPI_WAVE_INFO_ARCHITECTURE = 9,
3366 AMD_DBGAPI_WAVE_INFO_PC = 10,
3374 AMD_DBGAPI_WAVE_INFO_EXEC_MASK = 11,
3385 AMD_DBGAPI_WAVE_INFO_WORKGROUP_COORD = 12,
3397 AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORKGROUP = 13,
3402 AMD_DBGAPI_WAVE_INFO_LANE_COUNT = 14
3403 } amd_dbgapi_wave_info_t;
3404
3451 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_get_info (
3452 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_wave_info_t query,
3453 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_64;
3454
3458 typedef enum
3459 {
3463 AMD_DBGAPI_WAVE_STATE_RUN = 1,
3468 AMD_DBGAPI_WAVE_STATE_SINGLE_STEP = 2,
3481 AMD_DBGAPI_WAVE_STATE_STOP = 3
3482 } amd_dbgapi_wave_state_t;
3483
3490 typedef enum
3491 {
3496 AMD_DBGAPI_WAVE_STOP_REASON_NONE = 0,
3502 AMD_DBGAPI_WAVE_STOP_REASON_BREAKPOINT = (1 << 0),
3514 AMD_DBGAPI_WAVE_STOP_REASON_WATCHPOINT = (1 << 1),
3518 AMD_DBGAPI_WAVE_STOP_REASON_SINGLE_STEP = (1 << 2),
3526 AMD_DBGAPI_WAVE_STOP_REASON_FP_INPUT_DENORMAL = (1 << 3),
3534 AMD_DBGAPI_WAVE_STOP_REASON_FP_DIVIDE_BY_0 = (1 << 4),
3542 AMD_DBGAPI_WAVE_STOP_REASON_FP_OVERFLOW = (1 << 5),
3550 AMD_DBGAPI_WAVE_STOP_REASON_FP_UNDERFLOW = (1 << 6),
3558 AMD_DBGAPI_WAVE_STOP_REASON_FP_INEXACT = (1 << 7),
3566 AMD_DBGAPI_WAVE_STOP_REASON_FP_INVALID_OPERATION = (1 << 8),
3574 AMD_DBGAPI_WAVE_STOP_REASON_INT_DIVIDE_BY_0 = (1 << 9),
3589 AMD_DBGAPI_WAVE_STOP_REASON_DEBUG_TRAP = (1 << 10),
3605 AMD_DBGAPI_WAVE_STOP_REASON_ASSERT_TRAP = (1 << 11),
3615 AMD_DBGAPI_WAVE_STOP_REASON_TRAP = (1 << 12),
3631 AMD_DBGAPI_WAVE_STOP_REASON_MEMORY_VIOLATION = (1 << 13),
3646 AMD_DBGAPI_WAVE_STOP_REASON_APERTURE_VIOLATION = (1 << 14),
3655 AMD_DBGAPI_WAVE_STOP_REASON_ILLEGAL_INSTRUCTION = (1 << 15),
3668 AMD_DBGAPI_WAVE_STOP_REASON_ECC_ERROR = (1 << 16),
3675 AMD_DBGAPI_WAVE_STOP_REASON_FATAL_HALT = (1 << 17)
3676 } amd_dbgapi_wave_stop_reasons_t;
3677
3725 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_wave_list (
3726 amd_dbgapi_process_id_t process_id, size_t *wave_count,
3727 amd_dbgapi_wave_id_t **waves,
3728 amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54;
3729
3807 amd_dbgapi_status_t AMD_DBGAPI
3808 amd_dbgapi_wave_stop (amd_dbgapi_wave_id_t wave_id) AMD_DBGAPI_VERSION_0_54;
3809
3813 typedef enum
3814 {
3818 AMD_DBGAPI_RESUME_MODE_NORMAL = 0,
3822 AMD_DBGAPI_RESUME_MODE_SINGLE_STEP = 1
3823 } amd_dbgapi_resume_mode_t;
3824
3976 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_resume (
3977 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_resume_mode_t resume_mode,
3978 amd_dbgapi_exceptions_t exceptions) AMD_DBGAPI_VERSION_0_58;
3979
4081 typedef struct
4082 {
4083 uint64_t handle;
4084 } amd_dbgapi_displaced_stepping_id_t;
4085
4089 #define AMD_DBGAPI_DISPLACED_STEPPING_NONE \
4090 (amd_dbgapi_displaced_stepping_id_t{ 0 })
4091
4099 typedef enum
4100 {
4105 AMD_DBGAPI_DISPLACED_STEPPING_INFO_PROCESS = 1
4106 } amd_dbgapi_displaced_stepping_info_t;
4107
4147 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_get_info (
4148 amd_dbgapi_displaced_stepping_id_t displaced_stepping_id,
4149 amd_dbgapi_displaced_stepping_info_t query, size_t value_size,
4150 void *value) AMD_DBGAPI_VERSION_0_54;
4151
4233 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_start (
4234 amd_dbgapi_wave_id_t wave_id, const void *saved_instruction_bytes,
4235 amd_dbgapi_displaced_stepping_id_t *displaced_stepping)
4236 AMD_DBGAPI_VERSION_0_54;
4237
4288 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_complete (
4289 amd_dbgapi_wave_id_t wave_id,
4290 amd_dbgapi_displaced_stepping_id_t displaced_stepping)
4291 AMD_DBGAPI_VERSION_0_54;
4292
4326 typedef struct
4327 {
4328 uint64_t handle;
4329 } amd_dbgapi_watchpoint_id_t;
4330
4334 #define AMD_DBGAPI_WATCHPOINT_NONE \
4335 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_watchpoint_id_t, 0)
4336
4343 typedef enum
4344 {
4349 AMD_DBGAPI_WATCHPOINT_INFO_PROCESS = 1,
4354 AMD_DBGAPI_WATCHPOINT_INFO_ADDRESS = 2,
4359 AMD_DBGAPI_WATCHPOINT_INFO_SIZE = 3
4360 } amd_dbgapi_watchpoint_info_t;
4361
4400 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_watchpoint_get_info (
4401 amd_dbgapi_watchpoint_id_t watchpoint_id,
4402 amd_dbgapi_watchpoint_info_t query, size_t value_size,
4403 void *value) AMD_DBGAPI_VERSION_0_54;
4404
4411 typedef enum
4412 {
4416 AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSUPPORTED = 0,
4422 AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSHARED = 1,
4428 AMD_DBGAPI_WATCHPOINT_SHARE_KIND_SHARED = 2
4429 } amd_dbgapi_watchpoint_share_kind_t;
4430
4437 typedef enum
4438 {
4442 AMD_DBGAPI_WATCHPOINT_KIND_LOAD = 1,
4447 AMD_DBGAPI_WATCHPOINT_KIND_STORE_AND_RMW = 2,
4451 AMD_DBGAPI_WATCHPOINT_KIND_RMW = 3,
4456 AMD_DBGAPI_WATCHPOINT_KIND_ALL = 4
4457 } amd_dbgapi_watchpoint_kind_t;
4458
4465 typedef struct
4466 {
4467 size_t count;
4468 amd_dbgapi_watchpoint_id_t *watchpoint_ids;
4469 } amd_dbgapi_watchpoint_list_t;
4470
4538 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_set_watchpoint (
4539 amd_dbgapi_process_id_t process_id, amd_dbgapi_global_address_t address,
4540 amd_dbgapi_size_t size, amd_dbgapi_watchpoint_kind_t kind,
4541 amd_dbgapi_watchpoint_id_t *watchpoint_id) AMD_DBGAPI_VERSION_0_62;
4542
4567 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_remove_watchpoint (
4568 amd_dbgapi_process_id_t process_id,
4569 amd_dbgapi_watchpoint_id_t watchpoint_id) AMD_DBGAPI_VERSION_0_54;
4570
4592 typedef struct
4593 {
4594 uint64_t handle;
4595 } amd_dbgapi_register_class_id_t;
4596
4600 #define AMD_DBGAPI_REGISTER_CLASS_NONE \
4601 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_register_class_id_t, 0)
4602
4610 typedef enum
4611 {
4616 AMD_DBGAPI_REGISTER_CLASS_INFO_ARCHITECTURE = 1,
4623 AMD_DBGAPI_REGISTER_CLASS_INFO_NAME = 2
4624 } amd_dbgapi_register_class_info_t;
4625
4664 amd_dbgapi_status_t AMD_DBGAPI
4665 amd_dbgapi_architecture_register_class_get_info (
4666 amd_dbgapi_register_class_id_t register_class_id,
4667 amd_dbgapi_register_class_info_t query, size_t value_size,
4668 void *value) AMD_DBGAPI_VERSION_0_54;
4669
4710 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_class_list (
4711 amd_dbgapi_architecture_id_t architecture_id, size_t *register_class_count,
4712 amd_dbgapi_register_class_id_t **register_classes) AMD_DBGAPI_VERSION_0_54;
4713
4722 typedef struct
4723 {
4724 uint64_t handle;
4725 } amd_dbgapi_register_id_t;
4726
4730 #define AMD_DBGAPI_REGISTER_NONE \
4731 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_register_id_t, 0)
4732
4739 typedef enum
4740 {
4744 AMD_DBGAPI_REGISTER_PROPERTY_NONE = 0,
4750 AMD_DBGAPI_REGISTER_PROPERTY_READONLY_BITS = (1 << 0),
4757 AMD_DBGAPI_REGISTER_PROPERTY_VOLATILE = (1 << 1),
4764 AMD_DBGAPI_REGISTER_PROPERTY_INVALIDATE_VOLATILE = (1 << 2)
4765 } amd_dbgapi_register_properties_t;
4766
4773 typedef enum
4774 {
4779 AMD_DBGAPI_REGISTER_INFO_ARCHITECTURE = 1,
4786 AMD_DBGAPI_REGISTER_INFO_NAME = 2,
4791 AMD_DBGAPI_REGISTER_INFO_SIZE = 3,
4852 AMD_DBGAPI_REGISTER_INFO_TYPE = 4,
4857 AMD_DBGAPI_REGISTER_INFO_DWARF = 5,
4862 AMD_DBGAPI_REGISTER_INFO_PROPERTIES = 6
4863 } amd_dbgapi_register_info_t;
4864
4904 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_get_info (
4905 amd_dbgapi_register_id_t register_id, amd_dbgapi_register_info_t query,
4906 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_58;
4907
4911 typedef enum
4912 {
4916 AMD_DBGAPI_REGISTER_ABSENT = 0,
4920 AMD_DBGAPI_REGISTER_PRESENT = 1
4921 } amd_dbgapi_register_exists_t;
4922
4956 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_exists (
4957 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
4958 amd_dbgapi_register_exists_t *exists) AMD_DBGAPI_VERSION_0_54;
4959
5004 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_list (
5005 amd_dbgapi_architecture_id_t architecture_id, size_t *register_count,
5006 amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_54;
5007
5051 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_list (
5052 amd_dbgapi_wave_id_t wave_id, size_t *register_count,
5053 amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_54;
5054
5091 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dwarf_register_to_register (
5092 amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_register,
5093 amd_dbgapi_register_id_t *register_id) AMD_DBGAPI_VERSION_0_54;
5094
5098 typedef enum
5099 {
5103 AMD_DBGAPI_REGISTER_CLASS_STATE_NOT_MEMBER = 0,
5107 AMD_DBGAPI_REGISTER_CLASS_STATE_MEMBER = 1
5108 } amd_dbgapi_register_class_state_t;
5109
5147 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_is_in_register_class (
5148 amd_dbgapi_register_class_id_t register_class_id,
5149 amd_dbgapi_register_id_t register_id,
5150 amd_dbgapi_register_class_state_t *register_class_state)
5151 AMD_DBGAPI_VERSION_0_54;
5152
5209 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_register (
5210 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
5211 amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size,
5212 void *value) AMD_DBGAPI_VERSION_0_62;
5213
5275 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_register (
5276 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
5277 amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size,
5278 const void *value) AMD_DBGAPI_VERSION_0_62;
5279
5333 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_prefetch_register (
5334 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
5335 amd_dbgapi_size_t register_count) AMD_DBGAPI_VERSION_0_62;
5336
5344 typedef struct
5345 {
5346 amd_dbgapi_global_address_t target_address;
5347 amd_dbgapi_register_id_t saved_return_address_register[2];
5348 } amd_dbgapi_direct_call_register_pair_information_t;
5349
5389 typedef uint32_t amd_dbgapi_lane_id_t;
5390
5394 #define AMD_DBGAPI_LANE_NONE ((amd_dbgapi_lane_id_t) (-1))
5395
5409 typedef struct
5410 {
5411 uint64_t handle;
5412 } amd_dbgapi_address_class_id_t;
5413
5417 #define AMD_DBGAPI_ADDRESS_CLASS_NONE \
5418 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_address_class_id_t, 0)
5419
5427 typedef enum
5428 {
5435 AMD_DBGAPI_ADDRESS_CLASS_INFO_NAME = 1,
5444 AMD_DBGAPI_ADDRESS_CLASS_INFO_ADDRESS_SPACE = 2,
5449 AMD_DBGAPI_ADDRESS_CLASS_INFO_DWARF = 3
5450 } amd_dbgapi_address_class_info_t;
5451
5491 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_class_get_info (
5492 amd_dbgapi_address_class_id_t address_class_id,
5493 amd_dbgapi_address_class_info_t query, size_t value_size,
5494 void *value) AMD_DBGAPI_VERSION_0_62;
5495
5537 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_address_class_list (
5538 amd_dbgapi_architecture_id_t architecture_id, size_t *address_class_count,
5539 amd_dbgapi_address_class_id_t **address_classes) AMD_DBGAPI_VERSION_0_54;
5540
5578 amd_dbgapi_status_t AMD_DBGAPI
5579 amd_dbgapi_dwarf_address_class_to_address_class (
5580 amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_class,
5581 amd_dbgapi_address_class_id_t *address_class_id) AMD_DBGAPI_VERSION_0_54;
5582
5594 typedef struct
5595 {
5596 uint64_t handle;
5597 } amd_dbgapi_address_space_id_t;
5598
5602 #define AMD_DBGAPI_ADDRESS_SPACE_NONE \
5603 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_address_space_id_t, 0)
5604
5611 #define AMD_DBGAPI_ADDRESS_SPACE_GLOBAL \
5612 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_address_space_id_t, 1)
5613
5617 typedef enum
5618 {
5623 AMD_DBGAPI_ADDRESS_SPACE_ACCESS_ALL = 1,
5628 AMD_DBGAPI_ADDRESS_SPACE_ACCESS_PROGRAM_CONSTANT = 2,
5633 AMD_DBGAPI_ADDRESS_SPACE_ACCESS_DISPATCH_CONSTANT = 3
5634 } amd_dbgapi_address_space_access_t;
5635
5643 typedef enum
5644 {
5651 AMD_DBGAPI_ADDRESS_SPACE_INFO_NAME = 1,
5656 AMD_DBGAPI_ADDRESS_SPACE_INFO_ADDRESS_SIZE = 2,
5661 AMD_DBGAPI_ADDRESS_SPACE_INFO_NULL_ADDRESS = 3,
5666 AMD_DBGAPI_ADDRESS_SPACE_INFO_ACCESS = 4,
5671 AMD_DBGAPI_ADDRESS_SPACE_INFO_DWARF = 5
5672 } amd_dbgapi_address_space_info_t;
5673
5712 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_space_get_info (
5713 amd_dbgapi_address_space_id_t address_space_id,
5714 amd_dbgapi_address_space_info_t query, size_t value_size,
5715 void *value) AMD_DBGAPI_VERSION_0_62;
5716
5755 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_address_space_list (
5756 amd_dbgapi_architecture_id_t architecture_id, size_t *address_space_count,
5757 amd_dbgapi_address_space_id_t **address_spaces) AMD_DBGAPI_VERSION_0_54;
5758
5797 amd_dbgapi_status_t AMD_DBGAPI
5798 amd_dbgapi_dwarf_address_space_to_address_space (
5799 amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_space,
5800 amd_dbgapi_address_space_id_t *address_space_id) AMD_DBGAPI_VERSION_0_54;
5801
5818 typedef uint64_t amd_dbgapi_segment_address_t;
5819
5934 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_convert_address_space (
5935 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id,
5936 amd_dbgapi_address_space_id_t source_address_space_id,
5937 amd_dbgapi_segment_address_t source_segment_address,
5938 amd_dbgapi_address_space_id_t destination_address_space_id,
5939 amd_dbgapi_segment_address_t *destination_segment_address,
5940 amd_dbgapi_size_t *destination_contiguous_bytes)
5941 AMD_DBGAPI_VERSION_0_62;
5942
5948 typedef enum
5949 {
5953 AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_NONE = 0,
5957 AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_LANE = 1,
5961 AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_WAVE = 2,
5965 AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_WORKGROUP = 3,
5969 AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_AGENT = 4,
5973 AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_PROCESS = 5
5974 } amd_dbgapi_segment_address_dependency_t;
5975
6014 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_dependency (
6015 amd_dbgapi_address_space_id_t address_space_id,
6016 amd_dbgapi_segment_address_t segment_address,
6017 amd_dbgapi_segment_address_dependency_t *segment_address_dependency)
6018 AMD_DBGAPI_VERSION_0_64;
6019
6024 typedef enum
6025 {
6030 AMD_DBGAPI_ADDRESS_CLASS_STATE_NOT_MEMBER = 0,
6035 AMD_DBGAPI_ADDRESS_CLASS_STATE_MEMBER = 1
6036 } amd_dbgapi_address_class_state_t;
6037
6109 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_is_in_address_class (
6110 amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id,
6111 amd_dbgapi_address_space_id_t address_space_id,
6112 amd_dbgapi_segment_address_t segment_address,
6113 amd_dbgapi_address_class_id_t address_class_id,
6114 amd_dbgapi_address_class_state_t *address_class_state)
6115 AMD_DBGAPI_VERSION_0_54;
6116
6215 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_memory (
6216 amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
6217 amd_dbgapi_lane_id_t lane_id,
6218 amd_dbgapi_address_space_id_t address_space_id,
6219 amd_dbgapi_segment_address_t segment_address,
6220 amd_dbgapi_size_t *value_size, void *value) AMD_DBGAPI_VERSION_0_54;
6221
6320 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_memory (
6321 amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
6322 amd_dbgapi_lane_id_t lane_id,
6323 amd_dbgapi_address_space_id_t address_space_id,
6324 amd_dbgapi_segment_address_t segment_address,
6325 amd_dbgapi_size_t *value_size, const void *value) AMD_DBGAPI_VERSION_0_54;
6326
6345 typedef enum
6346 {
6351 AMD_DBGAPI_MEMORY_PRECISION_NONE = 0,
6356 AMD_DBGAPI_MEMORY_PRECISION_PRECISE = 1
6357 } amd_dbgapi_memory_precision_t;
6358
6397 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_set_memory_precision (
6398 amd_dbgapi_process_id_t process_id,
6399 amd_dbgapi_memory_precision_t memory_precision) AMD_DBGAPI_VERSION_0_54;
6400
6432 typedef struct
6433 {
6434 uint64_t handle;
6435 } amd_dbgapi_event_id_t;
6436
6440 #define AMD_DBGAPI_EVENT_NONE \
6441 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_event_id_t, 0)
6442
6446 typedef enum
6447 {
6451 AMD_DBGAPI_EVENT_KIND_NONE = 0,
6455 AMD_DBGAPI_EVENT_KIND_WAVE_STOP = 1,
6470 AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED = 2,
6492 AMD_DBGAPI_EVENT_KIND_CODE_OBJECT_LIST_UPDATED = 3,
6505 AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME = 4,
6520 AMD_DBGAPI_EVENT_KIND_RUNTIME = 5,
6554 AMD_DBGAPI_EVENT_KIND_QUEUE_ERROR = 6
6555 } amd_dbgapi_event_kind_t;
6556
6592 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_next_pending_event (
6593 amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t *event_id,
6594 amd_dbgapi_event_kind_t *kind) AMD_DBGAPI_VERSION_0_54;
6595
6599 typedef enum
6600 {
6605 AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS = 1,
6609 AMD_DBGAPI_RUNTIME_STATE_UNLOADED = 2,
6615 AMD_DBGAPI_RUNTIME_STATE_LOADED_ERROR_RESTRICTION = 3
6616 } amd_dbgapi_runtime_state_t;
6617
6624 typedef enum
6625 {
6630 AMD_DBGAPI_EVENT_INFO_PROCESS = 1,
6635 AMD_DBGAPI_EVENT_INFO_KIND = 2,
6641 AMD_DBGAPI_EVENT_INFO_WAVE = 3,
6646 AMD_DBGAPI_EVENT_INFO_BREAKPOINT = 4,
6651 AMD_DBGAPI_EVENT_INFO_CLIENT_THREAD = 5,
6658 AMD_DBGAPI_EVENT_INFO_RUNTIME_STATE = 6,
6663 AMD_DBGAPI_EVENT_INFO_QUEUE = 7
6664 } amd_dbgapi_event_info_t;
6665
6705 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_get_info (
6706 amd_dbgapi_event_id_t event_id, amd_dbgapi_event_info_t query,
6707 size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54;
6708
6734 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_processed (
6735 amd_dbgapi_event_id_t event_id) AMD_DBGAPI_VERSION_0_54;
6736
6758 typedef enum
6759 {
6763 AMD_DBGAPI_LOG_LEVEL_NONE = 0,
6768 AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR = 1,
6772 AMD_DBGAPI_LOG_LEVEL_WARNING = 2,
6776 AMD_DBGAPI_LOG_LEVEL_INFO = 3,
6780 AMD_DBGAPI_LOG_LEVEL_TRACE = 4,
6784 AMD_DBGAPI_LOG_LEVEL_VERBOSE = 5
6785 } amd_dbgapi_log_level_t;
6786
6805 void AMD_DBGAPI amd_dbgapi_set_log_level (amd_dbgapi_log_level_t level)
6806 AMD_DBGAPI_VERSION_0_54;
6807
6833 typedef struct
6834 {
6835 uint64_t handle;
6836 } amd_dbgapi_breakpoint_id_t;
6837
6841 #define AMD_DBGAPI_BREAKPOINT_NONE \
6842 AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_breakpoint_id_t, 0)
6843
6850 typedef enum
6851 {
6856 AMD_DBGAPI_BREAKPOINT_INFO_PROCESS = 1
6857 } amd_dbgapi_breakpoint_info_t;
6858
6897 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_breakpoint_get_info (
6898 amd_dbgapi_breakpoint_id_t breakpoint_id,
6899 amd_dbgapi_breakpoint_info_t query, size_t value_size,
6900 void *value) AMD_DBGAPI_VERSION_0_54;
6901
6905 typedef enum
6906 {
6910 AMD_DBGAPI_BREAKPOINT_ACTION_RESUME = 1,
6914 AMD_DBGAPI_BREAKPOINT_ACTION_HALT = 2
6915 } amd_dbgapi_breakpoint_action_t;
6916
6926 typedef struct amd_dbgapi_client_thread_s *amd_dbgapi_client_thread_id_t;
6927
6965 amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_report_breakpoint_hit (
6966 amd_dbgapi_breakpoint_id_t breakpoint_id,
6967 amd_dbgapi_client_thread_id_t client_thread_id,
6968 amd_dbgapi_breakpoint_action_t *breakpoint_action) AMD_DBGAPI_VERSION_0_54;
6969
6976 struct amd_dbgapi_callbacks_s
6977 {
6978
6990 void *(*allocate_memory) (size_t byte_size);
6991
7008 void (*deallocate_memory) (void *data);
7009
7037 amd_dbgapi_status_t (*get_os_pid) (
7038 amd_dbgapi_client_process_id_t client_process_id,
7039 amd_dbgapi_os_process_id_t *os_pid);
7040
7076 amd_dbgapi_status_t (*insert_breakpoint) (
7077 amd_dbgapi_client_process_id_t client_process_id,
7078 amd_dbgapi_global_address_t address,
7079 amd_dbgapi_breakpoint_id_t breakpoint_id);
7080
7111 amd_dbgapi_status_t (*remove_breakpoint) (
7112 amd_dbgapi_client_process_id_t client_process_id,
7113 amd_dbgapi_breakpoint_id_t breakpoint_id);
7114
7123 void (*log_message) (amd_dbgapi_log_level_t level, const char *message);
7124 };
7125
7128 #if defined(__cplusplus)
7129 } /* extern "C" */
7130 #endif /* defined (__cplusplus) */
7131
7132 #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:686
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:1516
AMD_DBGAPI_REGISTER_INFO_PROPERTIES
@ AMD_DBGAPI_REGISTER_INFO_PROPERTIES
Return the register's properties.
Definition: amd-dbgapi.h:4862
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:712
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:1625
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:1172
amd_dbgapi_architecture_id_t
Opaque architecture handle.
Definition: amd-dbgapi.h:1139
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:771
amd_dbgapi_wave_creation_t
amd_dbgapi_wave_creation_t
The kinds of wave creation supported by the hardware.
Definition: amd-dbgapi.h:1965
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:874
amd_dbgapi_watchpoint_list_t::count
size_t count
Definition: amd-dbgapi.h:4467
amd_dbgapi_process_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:1639
AMD_DBGAPI_EVENT_KIND_WAVE_STOP
@ AMD_DBGAPI_EVENT_KIND_WAVE_STOP
A wave has stopped.
Definition: amd-dbgapi.h:6455
AMD_DBGAPI_DISPATCH_INFO_KERNEL_DESCRIPTOR_ADDRESS
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_DESCRIPTOR_ADDRESS
Return the dispatch kernel descriptor address.
Definition: amd-dbgapi.h:2926
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:6663
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:2850
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:2607
AMD_DBGAPI_DISPATCH_INFO_QUEUE
@ AMD_DBGAPI_DISPATCH_INFO_QUEUE
Return the queue to which this dispatch belongs.
Definition: amd-dbgapi.h:2855
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:1183
AMD_DBGAPI_STATUS_ERROR_NOT_SUPPORTED
@ AMD_DBGAPI_STATUS_ERROR_NOT_SUPPORTED
The operation is not supported.
Definition: amd-dbgapi.h:785
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:4344
AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT
An invalid argument was given to the function.
Definition: amd-dbgapi.h:789
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:6470
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:5099
amd_dbgapi_register_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:4724
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:654
AMD_DBGAPI_WORKGROUP_INFO_WORKGROUP_COORD
@ AMD_DBGAPI_WORKGROUP_INFO_WORKGROUP_COORD
The workgroup workgroup coordinate in the dispatch grid dimensions.
Definition: amd-dbgapi.h:3158
amd_dbgapi_register_class_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:4594
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:957
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:2299
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:6030
amd_dbgapi_watchpoint_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:4328
amd_dbgapi_watchpoint_kind_t
amd_dbgapi_watchpoint_kind_t
Watchpoint memory access kinds.
Definition: amd-dbgapi.h:4438
amd_dbgapi_address_class_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:5411
AMD_DBGAPI_AGENT_STATE_NOT_SUPPORTED
@ AMD_DBGAPI_AGENT_STATE_NOT_SUPPORTED
Agent does not support debugging.
Definition: amd-dbgapi.h:2336
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:3542
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:829
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:6906
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:940
AMD_DBGAPI_WAVE_INFO_PROCESS
@ AMD_DBGAPI_WAVE_INFO_PROCESS
Return the process to which this wave belongs.
Definition: amd-dbgapi.h:3355
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:3631
AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_STOPPED
@ AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_STOPPED
The wave is not stopped.
Definition: amd-dbgapi.h:866
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:3566
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:3646
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:2617
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 buffer belongs.
Definition: amd-dbgapi.h:4105
amd_dbgapi_workgroup_id_t
Opaque workgroup handle.
Definition: amd-dbgapi.h:3100
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:2652
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 a trap instruction other than the AMD_DBGAPI_WAVE_STOP_REASON_DEBUG...
Definition: amd-dbgapi.h:3615
AMD_DBGAPI_WORKGROUP_INFO_AGENT
@ AMD_DBGAPI_WORKGROUP_INFO_AGENT
Return the agent to which this workgroup belongs.
Definition: amd-dbgapi.h:3137
AMD_DBGAPI_QUEUE_INFO_AGENT
@ AMD_DBGAPI_QUEUE_INFO_AGENT
Return the agent to which this queue belongs.
Definition: amd-dbgapi.h:2482
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:5661
amd_dbgapi_address_space_id_t
Opaque address space handle.
Definition: amd-dbgapi.h:5595
AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSUPPORTED
@ AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSUPPORTED
Watchpoints are not supported.
Definition: amd-dbgapi.h:4416
AMD_DBGAPI_EVENT_INFO_PROCESS
@ AMD_DBGAPI_EVENT_INFO_PROCESS
Return the process to which this event belongs.
Definition: amd-dbgapi.h:6630
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:1424
amd_dbgapi_displaced_stepping_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:4083
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:3518
amd_dbgapi_address_class_id_t
Opaque source language address class handle.
Definition: amd-dbgapi.h:5410
AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_SHARE
@ AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_SHARE
Return how watchpoints are shared between processes.
Definition: amd-dbgapi.h:1672
AMD_DBGAPI_RESUME_MODE_NORMAL
@ AMD_DBGAPI_RESUME_MODE_NORMAL
Resume normal execution.
Definition: amd-dbgapi.h:3818
AMD_DBGAPI_QUEUE_STATE_ERROR
@ AMD_DBGAPI_QUEUE_STATE_ERROR
Queue is in the queue error state.
Definition: amd-dbgapi.h:2591
AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4
@ AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4
Queue supports the AMD PM4 protocol.
Definition: amd-dbgapi.h:716
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:1432
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:833
AMD_DBGAPI_STATUS_ERROR_NOT_IMPLEMENTED
@ AMD_DBGAPI_STATUS_ERROR_NOT_IMPLEMENTED
The operation is not currently implemented.
Definition: amd-dbgapi.h:777
amd_dbgapi_register_class_id_t
Opaque register class handle.
Definition: amd-dbgapi.h:4593
amd_dbgapi_process_workgroup_list
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_workgroup_list(amd_dbgapi_process_id_t process_id, size_t *workgroup_count, amd_dbgapi_workgroup_id_t **workgroups, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_64
Return the list of existing workgroups.
amd_dbgapi_dispatch_barrier_t
amd_dbgapi_dispatch_barrier_t
Dispatch barrier.
Definition: amd-dbgapi.h:2996
AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSHARED
@ AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSHARED
The watchpoints are not shared across processes.
Definition: amd-dbgapi.h:4422
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:6658
amd_dbgapi_watchpoint_share_kind_t
amd_dbgapi_watchpoint_share_kind_t
The way watchpoints are shared between processes.
Definition: amd-dbgapi.h:4412
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:6926
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:2115
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_64
Query information about a wave.
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:924
amd_dbgapi_watchpoint_list_t
A set of watchpoints.
Definition: amd-dbgapi.h:4466
AMD_DBGAPI_REGISTER_PROPERTY_NONE
@ AMD_DBGAPI_REGISTER_PROPERTY_NONE
There are no properties.
Definition: amd-dbgapi.h:4744
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:5389
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:846
amd_dbgapi_log_level_t
amd_dbgapi_log_level_t
The logging levels supported.
Definition: amd-dbgapi.h:6759
AMD_DBGAPI_LOG_LEVEL_VERBOSE
@ AMD_DBGAPI_LOG_LEVEL_VERBOSE
Print fatal error, warning, info, API tracing, and verbose messages.
Definition: amd-dbgapi.h:6784
AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA
@ AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA
Queue supports the AMD SDMA protocol.
Definition: amd-dbgapi.h:720
AMD_DBGAPI_LOG_LEVEL_NONE
@ AMD_DBGAPI_LOG_LEVEL_NONE
Print no messages.
Definition: amd-dbgapi.h:6763
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:841
AMD_DBGAPI_WAVE_INFO_QUEUE
@ AMD_DBGAPI_WAVE_INFO_QUEUE
Return the queue to which this wave belongs.
Definition: amd-dbgapi.h:3345
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:3526
AMD_DBGAPI_DISPATCH_FENCE_SCOPE_SYSTEM
@ AMD_DBGAPI_DISPATCH_FENCE_SCOPE_SYSTEM
There is a fence with system memory scope.
Definition: amd-dbgapi.h:3027
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:1157
amd_dbgapi_displaced_stepping_id_t
Opaque displaced stepping handle.
Definition: amd-dbgapi.h:4082
AMD_DBGAPI_WAVE_STATE_RUN
@ AMD_DBGAPI_WAVE_STATE_RUN
The wave is running.
Definition: amd-dbgapi.h:3463
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:1453
AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_LANE
@ AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_LANE
Reading or writing the segment address depends on the lane.
Definition: amd-dbgapi.h:5957
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:932
amd_dbgapi_direct_call_register_pair_information_t
Instruction information for direct call instructions.
Definition: amd-dbgapi.h:5345
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:4327
amd_dbgapi_dispatch_fence_scope_t
amd_dbgapi_dispatch_fence_scope_t
Dispatch memory fence scope.
Definition: amd-dbgapi.h:3015
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:2514
AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_ID
The register handle is invalid.
Definition: amd-dbgapi.h:912
AMD_DBGAPI_INSTRUCTION_KIND_TRAP
@ AMD_DBGAPI_INSTRUCTION_KIND_TRAP
The instruction enters the trap handler.
Definition: amd-dbgapi.h:1482
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:3502
amd_dbgapi_workgroup_get_info
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_workgroup_get_info(amd_dbgapi_workgroup_id_t workgroup_id, amd_dbgapi_workgroup_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_64
Query information about a workgroup.
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:4774
AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION
@ AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION
Return the breakpoint instruction for the architecture.
Definition: amd-dbgapi.h:1196
AMD_DBGAPI_AGENT_INFO_OS_ID
@ AMD_DBGAPI_AGENT_INFO_OS_ID
Native operating system agent ID.
Definition: amd-dbgapi.h:2304
amd_dbgapi_agent_id_t
Opaque agent handle.
Definition: amd-dbgapi.h:2232
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:3295
AMD_DBGAPI_ADDRESS_SPACE_ACCESS_PROGRAM_CONSTANT
@ AMD_DBGAPI_ADDRESS_SPACE_ACCESS_PROGRAM_CONSTANT
The address space is read only.
Definition: amd-dbgapi.h:5628
AMD_DBGAPI_INSTRUCTION_KIND_UNKNOWN
@ AMD_DBGAPI_INSTRUCTION_KIND_UNKNOWN
The instruction classification is unknown.
Definition: amd-dbgapi.h:1405
AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_RESUMABLE
@ AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_RESUMABLE
The wave cannot be resumed.
Definition: amd-dbgapi.h:878
AMD_DBGAPI_WATCHPOINT_KIND_LOAD
@ AMD_DBGAPI_WATCHPOINT_KIND_LOAD
Read access by load instructions.
Definition: amd-dbgapi.h:4442
AMD_DBGAPI_AGENT_INFO_PCI_DEVICE_ID
@ AMD_DBGAPI_AGENT_INFO_PCI_DEVICE_ID
PCI device ID of the agent.
Definition: amd-dbgapi.h:2289
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:793
AMD_DBGAPI_DISPATCH_INFO_PROCESS
@ AMD_DBGAPI_DISPATCH_INFO_PROCESS
Return the process to which this dispatch belongs.
Definition: amd-dbgapi.h:2865
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:2249
AMD_DBGAPI_EVENT_KIND_NONE
@ AMD_DBGAPI_EVENT_KIND_NONE
No event.
Definition: amd-dbgapi.h:6451
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:3307
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:4428
amd_dbgapi_workgroup_info_t
amd_dbgapi_workgroup_info_t
Workgroup queries that are supported by amd_dbgapi_workgroup_get_info.
Definition: amd-dbgapi.h:3117
amd_dbgapi_dispatch_id_t
Opaque dispatch handle.
Definition: amd-dbgapi.h:2833
AMD_DBGAPI_QUEUE_INFO_TYPE
@ AMD_DBGAPI_QUEUE_INFO_TYPE
Return the queue type.
Definition: amd-dbgapi.h:2497
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:2633
AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID
The agent handle is invalid.
Definition: amd-dbgapi.h:850
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:3675
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:6605
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:3496
AMD_DBGAPI_STATUS_ERROR_INVALID_ARCHITECTURE_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ARCHITECTURE_ID
The architecture handle is invalid.
Definition: amd-dbgapi.h:825
amd_dbgapi_os_queue_id_t
uint64_t amd_dbgapi_os_queue_id_t
Native operating system queue ID.
Definition: amd-dbgapi.h:642
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:3655
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:936
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:887
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:4750
AMD_DBGAPI_WAVE_CREATION_NORMAL
@ AMD_DBGAPI_WAVE_CREATION_NORMAL
Normal wave creation allows new waves to be created.
Definition: amd-dbgapi.h:1969
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:2637
AMD_DBGAPI_AGENT_INFO_ARCHITECTURE
@ AMD_DBGAPI_AGENT_INFO_ARCHITECTURE
Return the architecture of this agent.
Definition: amd-dbgapi.h:2270
amd_dbgapi_instruction_kind_t
amd_dbgapi_instruction_kind_t
The kinds of instruction classifications.
Definition: amd-dbgapi.h:1400
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:3668
AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_AGENT
@ AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_AGENT
Reading or writing the segment address depends on the agent.
Definition: amd-dbgapi.h:5969
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:2294
AMD_DBGAPI_ARCHITECTURE_INFO_NAME
@ AMD_DBGAPI_ARCHITECTURE_INFO_NAME
Return the architecture name.
Definition: amd-dbgapi.h:1164
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_SEGMENT_ADDRESS_DEPENDENCE_WORKGROUP
@ AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_WORKGROUP
Reading or writing the segment address depends on the workgroup.
Definition: amd-dbgapi.h:5965
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:3514
AMD_DBGAPI_PROGRESS_NORMAL
@ AMD_DBGAPI_PROGRESS_NORMAL
Normal progress is needed.
Definition: amd-dbgapi.h:1898
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:1188
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:3814
AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_WAVE
@ AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_WAVE
Reading or writing the segment address depends on the wavefront.
Definition: amd-dbgapi.h:5961
amd_dbgapi_wave_id_t
Opaque wave handle.
Definition: amd-dbgapi.h:3278
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:1494
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:6651
AMD_DBGAPI_STATUS_ERROR_INVALID_WATCHPOINT_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_WATCHPOINT_ID
The watchpoint handle is invalid.
Definition: amd-dbgapi.h:900
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:5633
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:5449
AMD_DBGAPI_BREAKPOINT_ACTION_RESUME
@ AMD_DBGAPI_BREAKPOINT_ACTION_RESUME
Resume execution.
Definition: amd-dbgapi.h:6910
amd_dbgapi_breakpoint_id_t
Opaque breakpoint handle.
Definition: amd-dbgapi.h:6834
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:2599
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:6615
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:3491
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:1202
AMD_DBGAPI_STATUS_ERROR_INVALID_QUEUE_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_QUEUE_ID
The queue handle is invalid.
Definition: amd-dbgapi.h:854
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_dispatch_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:2834
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:3023
amd_dbgapi_code_object_id_t
Opaque code object handle.
Definition: amd-dbgapi.h:2031
AMD_DBGAPI_CHANGED_YES
@ AMD_DBGAPI_CHANGED_YES
The value has changed.
Definition: amd-dbgapi.h:582
amd_dbgapi_changed_t
amd_dbgapi_changed_t
Indication of if a value has changed.
Definition: amd-dbgapi.h:574
amd_dbgapi_architecture_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:1140
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:6835
AMD_DBGAPI_REGISTER_PRESENT
@ AMD_DBGAPI_REGISTER_PRESENT
The wave has the register.
Definition: amd-dbgapi.h:4920
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:908
AMD_DBGAPI_AGENT_INFO_PROCESS
@ AMD_DBGAPI_AGENT_INFO_PROCESS
Return the process to which this agent belongs.
Definition: amd-dbgapi.h:2254
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:2603
amd_dbgapi_runtime_state_t
amd_dbgapi_runtime_state_t
Inferior's runtime state.
Definition: amd-dbgapi.h:6600
AMD_DBGAPI_DISPATCH_INFO_AGENT
@ AMD_DBGAPI_DISPATCH_INFO_AGENT
Return the agent to which this dispatch belongs.
Definition: amd-dbgapi.h:2860
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:2672
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:7123
amd_dbgapi_queue_state_t
amd_dbgapi_queue_state_t
Queue state.
Definition: amd-dbgapi.h:2573
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:7037
amd_dbgapi_watchpoint_list_t::watchpoint_ids
amd_dbgapi_watchpoint_id_t * watchpoint_ids
Definition: amd-dbgapi.h:4468
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:5428
AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR
@ AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR
Print fatal error messages.
Definition: amd-dbgapi.h:6768
AMD_DBGAPI_DISPATCH_INFO_GRID_DIMENSIONS
@ AMD_DBGAPI_DISPATCH_INFO_GRID_DIMENSIONS
Return the dispatch grid dimensionality.
Definition: amd-dbgapi.h:2896
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:6025
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:2911
amd_dbgapi_direct_call_register_pair_information_t::target_address
amd_dbgapi_global_address_t target_address
Definition: amd-dbgapi.h:5346
AMD_DBGAPI_CHANGED_NO
@ AMD_DBGAPI_CHANGED_NO
The value has not changed.
Definition: amd-dbgapi.h:578
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:2931
AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_PROCESS
@ AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_PROCESS
Reading or writing the segment address depends on the process.
Definition: amd-dbgapi.h:5973
AMD_DBGAPI_INSTRUCTION_KIND_TERMINATE
@ AMD_DBGAPI_INSTRUCTION_KIND_TERMINATE
The instruction terminates the wave execution.
Definition: amd-dbgapi.h:1468
amd_dbgapi_workgroup_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:3101
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:1442
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:2906
AMD_DBGAPI_QUEUE_STATE_VALID
@ AMD_DBGAPI_QUEUE_STATE_VALID
Queue is in a valid state.
Definition: amd-dbgapi.h:2577
AMD_DBGAPI_STATUS_ERROR_INVALID_LANE_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_LANE_ID
The lane handle is invalid.
Definition: amd-dbgapi.h:916
AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_NONE
@ AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_NONE
No dependence is available.
Definition: amd-dbgapi.h:5953
AMD_DBGAPI_WAVE_INFO_PC
@ AMD_DBGAPI_WAVE_INFO_PC
Return the current program counter value of the wave.
Definition: amd-dbgapi.h:3366
AMD_DBGAPI_STATUS_ERROR_NOT_INITIALIZED
@ AMD_DBGAPI_STATUS_ERROR_NOT_INITIALIZED
The library is not initialized.
Definition: amd-dbgapi.h:801
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:2053
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:948
AMD_DBGAPI_WAVE_INFO_WATCHPOINTS
@ AMD_DBGAPI_WAVE_INFO_WATCHPOINTS
Return the watchpoint(s) the wave triggered.
Definition: amd-dbgapi.h:3320
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:6035
AMD_DBGAPI_WAVE_INFO_DISPATCH
@ AMD_DBGAPI_WAVE_INFO_DISPATCH
Return the dispatch to which this wave belongs.
Definition: amd-dbgapi.h:3340
AMD_DBGAPI_RESUME_MODE_SINGLE_STEP
@ AMD_DBGAPI_RESUME_MODE_SINGLE_STEP
Resume execution in in single step mode.
Definition: amd-dbgapi.h:3822
AMD_DBGAPI_WAVE_INFO_WORKGROUP_COORD
@ AMD_DBGAPI_WAVE_INFO_WORKGROUP_COORD
The wave workgroup coordinate in the dispatch grid dimensions.
Definition: amd-dbgapi.h:3385
AMD_DBGAPI_DISPATCH_FENCE_SCOPE_NONE
@ AMD_DBGAPI_DISPATCH_FENCE_SCOPE_NONE
There is no fence.
Definition: amd-dbgapi.h:3019
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:7076
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:2109
AMD_DBGAPI_WORKGROUP_INFO_DISPATCH
@ AMD_DBGAPI_WORKGROUP_INFO_DISPATCH
Return the dispatch to which this workgroup belongs.
Definition: amd-dbgapi.h:3127
amd_dbgapi_event_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:6434
AMD_DBGAPI_BREAKPOINT_INFO_PROCESS
@ AMD_DBGAPI_BREAKPOINT_INFO_PROCESS
Return the process to which this breakpoint belongs.
Definition: amd-dbgapi.h:6856
AMD_DBGAPI_QUEUE_INFO_STATE
@ AMD_DBGAPI_QUEUE_INFO_STATE
Return the queue state.
Definition: amd-dbgapi.h:2502
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:3558
AMD_DBGAPI_EVENT_INFO_KIND
@ AMD_DBGAPI_EVENT_INFO_KIND
Return the event kind.
Definition: amd-dbgapi.h:6635
AMD_DBGAPI_PROGRESS_NO_FORWARD
@ AMD_DBGAPI_PROGRESS_NO_FORWARD
No forward progress is needed.
Definition: amd-dbgapi.h:1922
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:5596
AMD_DBGAPI_WAVE_INFO_AGENT
@ AMD_DBGAPI_WAVE_INFO_AGENT
Return the agent to which this wave belongs.
Definition: amd-dbgapi.h:3350
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:2519
AMD_DBGAPI_WAVE_INFO_ARCHITECTURE
@ AMD_DBGAPI_WAVE_INFO_ARCHITECTURE
Return the architecture of this wave.
Definition: amd-dbgapi.h:3360
AMD_DBGAPI_ADDRESS_CLASS_INFO_NAME
@ AMD_DBGAPI_ADDRESS_CLASS_INFO_NAME
Return the source language address class name.
Definition: amd-dbgapi.h:5435
AMD_DBGAPI_EXCEPTION_PACKET_UNSUPPORTED
@ AMD_DBGAPI_EXCEPTION_PACKET_UNSUPPORTED
A packet on the queue has an unsupported code.
Definition: amd-dbgapi.h:2664
AMD_DBGAPI_WORKGROUP_INFO_QUEUE
@ AMD_DBGAPI_WORKGROUP_INFO_QUEUE
Return the queue to which this workgroup belongs.
Definition: amd-dbgapi.h:3132
amd_dbgapi_code_object_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:2032
AMD_DBGAPI_WORKGROUP_INFO_ARCHITECTURE
@ AMD_DBGAPI_WORKGROUP_INFO_ARCHITECTURE
Return the architecture of this workgroup.
Definition: amd-dbgapi.h:3147
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:702
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:1655
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:5623
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_WORKGROUP_INFO_PROCESS
@ AMD_DBGAPI_WORKGROUP_INFO_PROCESS
Return the process to which this workgroup belongs.
Definition: amd-dbgapi.h:3142
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:5818
AMD_DBGAPI
#define AMD_DBGAPI
Definition: amd-dbgapi.h:463
AMD_DBGAPI_STATUS_ERROR_WAVE_STOPPED
@ AMD_DBGAPI_STATUS_ERROR_WAVE_STOPPED
The wave is stopped.
Definition: amd-dbgapi.h:870
AMD_DBGAPI_WAVE_INFO_LANE_COUNT
@ AMD_DBGAPI_WAVE_INFO_LANE_COUNT
The number of lanes supported by the wave.
Definition: amd-dbgapi.h:3402
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:7111
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_EXCEPTION_PACKET_DISPATCH_WORKGROUP_SIZE_INVALID
@ AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_WORKGROUP_SIZE_INVALID
A dispatch packet on the queue has an invalid workgroup size.
Definition: amd-dbgapi.h:2668
AMD_DBGAPI_DISPATCH_INFO_RELEASE_FENCE
@ AMD_DBGAPI_DISPATCH_INFO_RELEASE_FENCE
Return the dispatch release fence.
Definition: amd-dbgapi.h:2891
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:891
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:1509
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:3605
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:2048
amd_dbgapi_agent_state_t
amd_dbgapi_agent_state_t
Agent state.
Definition: amd-dbgapi.h:2311
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:2643
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:4916
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:4616
AMD_DBGAPI_REGISTER_INFO_TYPE
@ AMD_DBGAPI_REGISTER_INFO_TYPE
Return the register type as a C style type string.
Definition: amd-dbgapi.h:4852
AMD_DBGAPI_PROCESS_INFO_OS_ID
@ AMD_DBGAPI_PROCESS_INFO_OS_ID
Native operating system process ID.
Definition: amd-dbgapi.h:1688
AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORKGROUP
@ AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORKGROUP
The wave's number in the workgroup.
Definition: amd-dbgapi.h:3397
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:2876
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:2477
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:4611
AMD_DBGAPI_AGENT_INFO_PCI_VENDOR_ID
@ AMD_DBGAPI_AGENT_INFO_PCI_VENDOR_ID
PCI vendor ID of the agent.
Definition: amd-dbgapi.h:2285
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:724
AMD_DBGAPI_STATUS_ERROR_INVALID_DISPATCH_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_DISPATCH_ID
The dispatch handle is invalid.
Definition: amd-dbgapi.h:858
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:5618
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:1207
AMD_DBGAPI_STATUS_ERROR_CLIENT_CALLBACK
@ AMD_DBGAPI_STATUS_ERROR_CLIENT_CALLBACK
A callback to the client reported an error.
Definition: amd-dbgapi.h:944
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:3574
amd_dbgapi_os_queue_type_t
amd_dbgapi_os_queue_type_t
Native operating system queue type.
Definition: amd-dbgapi.h:666
AMD_DBGAPI_QUEUE_INFO_ARCHITECTURE
@ AMD_DBGAPI_QUEUE_INFO_ARCHITECTURE
Return the architecture of this queue.
Definition: amd-dbgapi.h:2492
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:4857
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:6351
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:837
AMD_DBGAPI_DISPATCH_BARRIER_NONE
@ AMD_DBGAPI_DISPATCH_BARRIER_NONE
Dispatch has no barrier.
Definition: amd-dbgapi.h:3000
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:1678
AMD_DBGAPI_WAVE_STATE_SINGLE_STEP
@ AMD_DBGAPI_WAVE_STATE_SINGLE_STEP
The wave is running in single-step mode.
Definition: amd-dbgapi.h:3468
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:5103
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:5644
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:519
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:3534
AMD_DBGAPI_DISPATCH_INFO_ACQUIRE_FENCE
@ AMD_DBGAPI_DISPATCH_INFO_ACQUIRE_FENCE
Return the dispatch acquire fence.
Definition: amd-dbgapi.h:2886
AMD_DBGAPI_WATCHPOINT_INFO_SIZE
@ AMD_DBGAPI_WATCHPOINT_INFO_SIZE
The byte size of the created watchpoint.
Definition: amd-dbgapi.h:4359
amd_dbgapi_event_id_t
Opaque event handle.
Definition: amd-dbgapi.h:6433
AMD_DBGAPI_REGISTER_INFO_NAME
@ AMD_DBGAPI_REGISTER_INFO_NAME
Return the register name.
Definition: amd-dbgapi.h:4786
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:1666
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:5671
amd_dbgapi_symbolizer_id_t
struct amd_dbgapi_symbolizer_id_s * amd_dbgapi_symbolizer_id_t
Opaque client symbolizer handle.
Definition: amd-dbgapi.h:1291
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:6641
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:5666
AMD_DBGAPI_REGISTER_INFO_ARCHITECTURE
@ AMD_DBGAPI_REGISTER_INFO_ARCHITECTURE
Return the architecture to which this register belongs.
Definition: amd-dbgapi.h:4779
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:513
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:3279
AMD_DBGAPI_STATUS_ERROR_SYMBOL_NOT_FOUND
@ AMD_DBGAPI_STATUS_ERROR_SYMBOL_NOT_FOUND
The symbol was not found.
Definition: amd-dbgapi.h:952
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.62 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:525
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:2916
amd_dbgapi_segment_address_dependency_t
amd_dbgapi_segment_address_dependency_t
The dependency when reading or writing a specific segment address of an address space using the amd_d...
Definition: amd-dbgapi.h:5949
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:928
AMD_DBGAPI_QUEUE_INFO_PROCESS
@ AMD_DBGAPI_QUEUE_INFO_PROCESS
Return the process to which this queue belongs.
Definition: amd-dbgapi.h:2487
AMD_DBGAPI_EVENT_KIND_RUNTIME
@ AMD_DBGAPI_EVENT_KIND_RUNTIME
The runtime support in the inferior is enabled or disabled.
Definition: amd-dbgapi.h:6520
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:2281
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:4447
AMD_DBGAPI_DISPATCH_INFO_KERNEL_COMPLETION_ADDRESS
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_COMPLETION_ADDRESS
Return the dispatch completion event address.
Definition: amd-dbgapi.h:2941
amd_dbgapi_os_process_id_t
pid_t amd_dbgapi_os_process_id_t
Native operating system process ID.
Definition: amd-dbgapi.h:593
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:6851
AMD_DBGAPI_DISPATCH_BARRIER_PRESENT
@ AMD_DBGAPI_DISPATCH_BARRIER_PRESENT
Dispatch has a barrier.
Definition: amd-dbgapi.h:3005
AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN
@ AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN
Unknown queue type.
Definition: amd-dbgapi.h:670
amd_dbgapi_progress_t
amd_dbgapi_progress_t
The kinds of progress supported by the library.
Definition: amd-dbgapi.h:1892
amd_dbgapi_queue_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:2461
amd_dbgapi_event_kind_t
amd_dbgapi_event_kind_t
The event kinds.
Definition: amd-dbgapi.h:6447
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:2676
AMD_DBGAPI_RUNTIME_STATE_UNLOADED
@ AMD_DBGAPI_RUNTIME_STATE_UNLOADED
The inferior's runtime has been unloaded.
Definition: amd-dbgapi.h:6609
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:507
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:4456
AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH
@ AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH
The instruction unconditionally branches to a literal address.
Definition: amd-dbgapi.h:1417
AMD_DBGAPI_WAVE_INFO_STATE
@ AMD_DBGAPI_WAVE_INFO_STATE
Return the wave's state.
Definition: amd-dbgapi.h:3300
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:5656
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:1973
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:6554
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:621
AMD_DBGAPI_WATCHPOINT_KIND_RMW
@ AMD_DBGAPI_WATCHPOINT_KIND_RMW
Read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:4451
amd_dbgapi_status_t
amd_dbgapi_status_t
AMD debugger API status codes.
Definition: amd-dbgapi.h:741
AMD_DBGAPI_STATUS_ERROR_NO_WATCHPOINT_AVAILABLE
@ AMD_DBGAPI_STATUS_ERROR_NO_WATCHPOINT_AVAILABLE
No more watchpoints available.
Definition: amd-dbgapi.h:904
AMD_DBGAPI_REGISTER_INFO_SIZE
@ AMD_DBGAPI_REGISTER_INFO_SIZE
Return the size of the register in bytes.
Definition: amd-dbgapi.h:4791
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:568
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:862
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:6492
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:3481
amd_dbgapi_queue_id_t
Opaque queue handle.
Definition: amd-dbgapi.h:2460
AMD_DBGAPI_REGISTER_CLASS_INFO_NAME
@ AMD_DBGAPI_REGISTER_CLASS_INFO_NAME
Return the register class name.
Definition: amd-dbgapi.h:4623
AMD_DBGAPI_WAVE_INFO_WORKGROUP
@ AMD_DBGAPI_WAVE_INFO_WORKGROUP
Return the workgroup to which this wave belongs.
Definition: amd-dbgapi.h:3330
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_address_dependency
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_dependency(amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_segment_address_t segment_address, amd_dbgapi_segment_address_dependency_t *segment_address_dependency) AMD_DBGAPI_VERSION_0_64
Determine the dependency of a segment address value in a particular address space.
AMD_DBGAPI_INSTRUCTION_PROPERTY_NONE
@ AMD_DBGAPI_INSTRUCTION_PROPERTY_NONE
The instruction has no properties.
Definition: amd-dbgapi.h:1520
AMD_DBGAPI_BREAKPOINT_ACTION_HALT
@ AMD_DBGAPI_BREAKPOINT_ACTION_HALT
Leave execution halted.
Definition: amd-dbgapi.h:6914
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:6776
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:1463
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:563
AMD_DBGAPI_DISPATCH_INFO_BARRIER
@ AMD_DBGAPI_DISPATCH_INFO_BARRIER
Return the dispatch barrier setting.
Definition: amd-dbgapi.h:2881
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:4757
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:6356
AMD_DBGAPI_WATCHPOINT_INFO_PROCESS
@ AMD_DBGAPI_WATCHPOINT_INFO_PROCESS
Return the process to which this watchpoint belongs.
Definition: amd-dbgapi.h:4349
AMD_DBGAPI_AGENT_INFO_NAME
@ AMD_DBGAPI_AGENT_INFO_NAME
Agent name.
Definition: amd-dbgapi.h:2260
AMD_DBGAPI_DISPATCH_INFO_ARCHITECTURE
@ AMD_DBGAPI_DISPATCH_INFO_ARCHITECTURE
Return the architecture of this dispatch.
Definition: amd-dbgapi.h:2870
amd_dbgapi_callbacks_s
Callbacks that the client of the library must provide.
Definition: amd-dbgapi.h:6977
AMD_DBGAPI_AGENT_INFO_STATE
@ AMD_DBGAPI_AGENT_INFO_STATE
Return the agent state.
Definition: amd-dbgapi.h:2275
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:3589
amd_dbgapi_process_id_t
Opaque process handle.
Definition: amd-dbgapi.h:1638
AMD_DBGAPI_STATUS_ERROR_RESTRICTION
@ AMD_DBGAPI_STATUS_ERROR_RESTRICTION
There is a restriction error that prevents debugging the process.
Definition: amd-dbgapi.h:817
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:4764
AMD_DBGAPI_ADDRESS_SPACE_INFO_NAME
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_NAME
Return the address space name.
Definition: amd-dbgapi.h:5651
AMD_DBGAPI_DISPATCH_INFO_WORKGROUP_SIZES
@ AMD_DBGAPI_DISPATCH_INFO_WORKGROUP_SIZES
Return the dispatch workgroup size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2901
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_VERSION_0_64
#define AMD_DBGAPI_VERSION_0_64
The function was introduced in version 0.64 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:531
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:1660
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:2660
amd_dbgapi_register_exists_t
amd_dbgapi_register_exists_t
Indication of if a wave has a register.
Definition: amd-dbgapi.h:4912
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:4740
AMD_DBGAPI_INSTRUCTION_KIND_HALT
@ AMD_DBGAPI_INSTRUCTION_KIND_HALT
The instruction unconditionally halts the wave.
Definition: amd-dbgapi.h:1487
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:6646
AMD_DBGAPI_STATUS_ERROR_INVALID_WORKGROUP_ID
@ AMD_DBGAPI_STATUS_ERROR_INVALID_WORKGROUP_ID
The workgroup handle is invalid.
Definition: amd-dbgapi.h:961
AMD_DBGAPI_INSTRUCTION_KIND_SEQUENTIAL
@ AMD_DBGAPI_INSTRUCTION_KIND_SEQUENTIAL
The instruction executes sequentially.
Definition: amd-dbgapi.h:1411
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:882
AMD_DBGAPI_STATUS_ERROR
@ AMD_DBGAPI_STATUS_ERROR
A generic error has occurred.
Definition: amd-dbgapi.h:749
AMD_DBGAPI_STATUS_ERROR_NOT_AVAILABLE
@ AMD_DBGAPI_STATUS_ERROR_NOT_AVAILABLE
The requested information is not available.
Definition: amd-dbgapi.h:781
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:821
amd_dbgapi_memory_precision_t
amd_dbgapi_memory_precision_t
Memory access precision.
Definition: amd-dbgapi.h:6346
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:5444
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:1500
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:3550
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:1177
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:7008
AMD_DBGAPI_WAVE_INFO_EXEC_MASK
@ AMD_DBGAPI_WAVE_INFO_EXEC_MASK
Return the current execution mask of the wave.
Definition: amd-dbgapi.h:3374
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:745
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:797
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:920
AMD_DBGAPI_AGENT_STATE_SUPPORTED
@ AMD_DBGAPI_AGENT_STATE_SUPPORTED
Agent supports debugging.
Definition: amd-dbgapi.h:2315
AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME
@ AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME
Request to resume a host breakpoint.
Definition: amd-dbgapi.h:6505
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:2648
amd_dbgapi_wave_state_t
amd_dbgapi_wave_state_t
The execution state of a wave.
Definition: amd-dbgapi.h:3459
AMD_DBGAPI_QUEUE_INFO_OS_ID
@ AMD_DBGAPI_QUEUE_INFO_OS_ID
Native operating system queue ID.
Definition: amd-dbgapi.h:2524
AMD_DBGAPI_EXCEPTION_QUEUE_PREEMPTION_ERROR
@ AMD_DBGAPI_EXCEPTION_QUEUE_PREEMPTION_ERROR
There was an error preempting the queue.
Definition: amd-dbgapi.h:2685
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:2656
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:2921
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:2509
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:896
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:5107
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:4723
amd_dbgapi_os_agent_id_t
uint64_t amd_dbgapi_os_agent_id_t
Native operating system agent ID.
Definition: amd-dbgapi.h:632
AMD_DBGAPI_LOG_LEVEL_TRACE
@ AMD_DBGAPI_LOG_LEVEL_TRACE
Print fatal error, warning, info, and API tracing messages.
Definition: amd-dbgapi.h:6780
AMD_DBGAPI_LOG_LEVEL_WARNING
@ AMD_DBGAPI_LOG_LEVEL_WARNING
Print fatal error and warning messages.
Definition: amd-dbgapi.h:6772
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:6625
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:4100
amd_dbgapi_agent_id_t::handle
uint64_t handle
Definition: amd-dbgapi.h:2233
AMD_DBGAPI_WATCHPOINT_INFO_ADDRESS
@ AMD_DBGAPI_WATCHPOINT_INFO_ADDRESS
The base address of the created watchpoint.
Definition: amd-dbgapi.h:4354
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.