AMD_DBGAPI: Basic Types

AMD_DBGAPI 0.64.0

Typedefs | Enumerations
Basic Types

Types used for common properties. More...

## Typedefs
typedef uint64_t | amd_dbgapi_global_address_t
| Integral type used for a global virtual memory address in the inferior process. More...
typedef uint64_t | amd_dbgapi_size_t
| Integral type used for sizes, including memory allocations, in the inferior. More...
typedef pid_t | amd_dbgapi_os_process_id_t
| Native operating system process ID. More...
typedef int | amd_dbgapi_notifier_t
| Type used to notify the client of the library that a process may have pending events. More...
typedef uint64_t | amd_dbgapi_os_agent_id_t
| Native operating system agent ID. More...
typedef uint64_t | amd_dbgapi_os_queue_id_t
| Native operating system queue ID. More...
typedef uint64_t | amd_dbgapi_os_queue_packet_id_t
| Native operating system queue packet ID. More...

## Enumerations
enum | amd_dbgapi_changed_t { AMD_DBGAPI_CHANGED_NO = 0, AMD_DBGAPI_CHANGED_YES = 1 }
| Indication of if a value has changed. More...
enum | amd_dbgapi_os_queue_type_t { AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN = 0, AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_MULTIPLE_PRODUCER = 1, AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_SINGLE_PRODUCER = 2, AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_COOPERATIVE = 3, AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4 = 257, AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA = 513, AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA_XGMI = 514 }
| Native operating system queue type. More...

## Detailed Description

Types used for common properties.

Note that in some cases enumeration types are used as output parameters for functions using pointers. The C language does not define the underlying type used for enumeration types. This interface requires that:

- For the all enumeration types the underlying type used by the client will be `int` with a size of 32 bits.

In addition, it requires that enumeration types passed by value to functions, or returned as values from functions, will have the platform function ABI representation.

## Typedef Documentation

## ◆ amd_dbgapi_global_address_t

typedef uint64_t amd_dbgapi_global_address_t

Integral type used for a global virtual memory address in the inferior process.

## ◆ amd_dbgapi_notifier_t

typedef int amd_dbgapi_notifier_t

Type used to notify the client of the library that a process may have pending events.

A notifier is created when amd_dbgapi_process_attach is used to successfully attach to a process. It is obtained using the AMD_DBGAPI_PROCESS_INFO_NOTIFIER query. If the notifier indicates there may be pending events, then amd_dbgapi_process_next_pending_event can be used to retrieve them. The same notifier may be returned when attaching to different processes.

For Linux® this is a file descriptor number that can be used with the `poll` call to wait on events from multiple sources. The file descriptor is made to have data available when events may be added to the pending events. The client can flush the file descriptor and read the pending events until none are available. Note that the file descriptor may become ready spuriously when no pending events are available, in which case the client should simply wait again. If new pending events are added while reading the pending events, then the file descriptor will again have data available. The amount of data on the file descriptor is not an indication of the number of pending events as the file may become full and so no further data will be added. The file descriptor is simply a robust way to determine if there may be some pending events.

## ◆ amd_dbgapi_os_agent_id_t

typedef uint64_t amd_dbgapi_os_agent_id_t

Native operating system agent ID.

This is the agent ID used by the operating system AMD GPU device driver that is executing the library to specify the AMD GPU agents accessible to a process.

## ◆ amd_dbgapi_os_process_id_t

typedef pid_t amd_dbgapi_os_process_id_t

Native operating system process ID.

This is the process ID used by the operating system that is executing the library. It is used in the implementation of the library to interact with the operating system AMD GPU device driver.

## ◆ amd_dbgapi_os_queue_id_t

typedef uint64_t amd_dbgapi_os_queue_id_t

Native operating system queue ID.

This is the queue ID used by the operating system AMD GPU device driver that is executing the library to specify the AMD GPU queues of a process.

## ◆ amd_dbgapi_os_queue_packet_id_t

typedef uint64_t amd_dbgapi_os_queue_packet_id_t

Native operating system queue packet ID.

This is the queue packet ID used by the operating system AMD GPU device driver that is executing the library to specify the AMD GPU packets of a queue of a process. The meaning of the queue packet ID is dependent on the queue type. See amd_dbgapi_os_queue_type_t.

## ◆ amd_dbgapi_size_t

typedef uint64_t amd_dbgapi_size_t

Integral type used for sizes, including memory allocations, in the inferior.

## Enumeration Type Documentation

## ◆ amd_dbgapi_changed_t

enum amd_dbgapi_changed_t

Indication of if a value has changed.

Enumerator
AMD_DBGAPI_CHANGED_NO | The value has not changed.
AMD_DBGAPI_CHANGED_YES | The value has changed.

## ◆ amd_dbgapi_os_queue_type_t

enum amd_dbgapi_os_queue_type_t

Native operating system queue type.

This is used by the operating system AMD GPU device driver that is executing the library to specify the AMD GPU queue mechanics supported by the queues of a process.

Enumerator
AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN | Unknown queue type.
AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_MULTIPLE_PRODUCER | Queue supports the HSA kernel dispatch with multiple producers protocol. This follows the multiple producers mechanics described by HSA Platform System Architecture Specification: Requirement: User mode queuing and uses the HSA Architected Queuing Language (AQL) packet format described in HSA Platform System Architecture Specification: Requirement: Architected Queuing Language (AQL). For this queue type the AQL dispatch ID is used for amd_dbgapi_os_queue_packet_id_t. It is only unique within a single queue of a single process.
AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_SINGLE_PRODUCER | Queue supports the HSA kernel dispatch with single producer protocol. This follows the single producer mechanics described by HSA Platform System Architecture Specification: Requirement: User mode queuing and uses the HSA Architected Queuing Language (AQL) packet format described in HSA Platform System Architecture Specification: Requirement: Architected Queuing Language (AQL). For this queue type the AQL dispatch ID is used for amd_dbgapi_os_queue_packet_id_t. It is only unique within a single queue of a single process.
AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_COOPERATIVE | Queue supports HSA kernel dispatch with multiple producers protocol that supports cooperative dispatches. Queues of this type follow the same protocol as AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_MULTIPLE_PRODUCER. In addition, dispatches are able to use global wave synchronization (GWS) operations.
AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4 | Queue supports the AMD PM4 protocol.
AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA | Queue supports the AMD SDMA protocol.
AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA_XGMI | Queue supports the AMD SDMA XGMI protocol.