gem5  v20.1.0.0
Classes | Typedefs | Enumerations | Functions
Queues

Classes

struct  hsa_queue_s
 User mode queue. More...
 

Typedefs

typedef uint32_t hsa_queue_type32_t
 A fixed-size type used to represent hsa_queue_type_t constants. More...
 
typedef struct hsa_queue_s hsa_queue_t
 User mode queue. More...
 

Enumerations

enum  hsa_queue_type_t { HSA_QUEUE_TYPE_MULTI = 0, HSA_QUEUE_TYPE_SINGLE = 1 }
 Queue type. More...
 
enum  hsa_queue_feature_t { HSA_QUEUE_FEATURE_KERNEL_DISPATCH = 1, HSA_QUEUE_FEATURE_AGENT_DISPATCH = 2 }
 Queue features. More...
 

Functions

hsa_status_t HSA_API hsa_queue_create (hsa_agent_t agent, uint32_t size, hsa_queue_type32_t type, void(*callback)(hsa_status_t status, hsa_queue_t *source, void *data), void *data, uint32_t private_segment_size, uint32_t group_segment_size, hsa_queue_t **queue)
 Create a user mode queue. More...
 
hsa_status_t HSA_API hsa_soft_queue_create (hsa_region_t region, uint32_t size, hsa_queue_type32_t type, uint32_t features, hsa_signal_t doorbell_signal, hsa_queue_t **queue)
 Create a queue for which the application or a kernel is responsible for processing the AQL packets. More...
 
hsa_status_t HSA_API hsa_queue_destroy (hsa_queue_t *queue)
 Destroy a user mode queue. More...
 
hsa_status_t HSA_API hsa_queue_inactivate (hsa_queue_t *queue)
 Inactivate a queue. More...
 
uint64_t HSA_API HSA_DEPRECATED hsa_queue_load_read_index_acquire (const hsa_queue_t *queue)
 Atomically load the read index of a queue. More...
 
uint64_t HSA_API hsa_queue_load_read_index_scacquire (const hsa_queue_t *queue)
 Atomically load the read index of a queue. More...
 
uint64_t HSA_API hsa_queue_load_read_index_relaxed (const hsa_queue_t *queue)
 Atomically load the read index of a queue. More...
 
uint64_t HSA_API HSA_DEPRECATED hsa_queue_load_write_index_acquire (const hsa_queue_t *queue)
 Atomically load the write index of a queue. More...
 
uint64_t HSA_API hsa_queue_load_write_index_scacquire (const hsa_queue_t *queue)
 Atomically load the write index of a queue. More...
 
uint64_t HSA_API hsa_queue_load_write_index_relaxed (const hsa_queue_t *queue)
 Atomically load the write index of a queue. More...
 
void HSA_API hsa_queue_store_write_index_relaxed (const hsa_queue_t *queue, uint64_t value)
 Atomically set the write index of a queue. More...
 
void HSA_API HSA_DEPRECATED hsa_queue_store_write_index_release (const hsa_queue_t *queue, uint64_t value)
 Atomically set the write index of a queue. More...
 
void HSA_API hsa_queue_store_write_index_screlease (const hsa_queue_t *queue, uint64_t value)
 Atomically set the write index of a queue. More...
 
uint64_t HSA_API HSA_DEPRECATED hsa_queue_cas_write_index_acq_rel (const hsa_queue_t *queue, uint64_t expected, uint64_t value)
 Atomically set the write index of a queue if the observed value is equal to the expected value. More...
 
uint64_t HSA_API hsa_queue_cas_write_index_scacq_screl (const hsa_queue_t *queue, uint64_t expected, uint64_t value)
 Atomically set the write index of a queue if the observed value is equal to the expected value. More...
 
uint64_t HSA_API HSA_DEPRECATED hsa_queue_cas_write_index_acquire (const hsa_queue_t *queue, uint64_t expected, uint64_t value)
 Atomically set the write index of a queue if the observed value is equal to the expected value. More...
 
uint64_t HSA_API hsa_queue_cas_write_index_scacquire (const hsa_queue_t *queue, uint64_t expected, uint64_t value)
 Atomically set the write index of a queue if the observed value is equal to the expected value. More...
 
uint64_t HSA_API hsa_queue_cas_write_index_relaxed (const hsa_queue_t *queue, uint64_t expected, uint64_t value)
 Atomically set the write index of a queue if the observed value is equal to the expected value. More...
 
uint64_t HSA_API HSA_DEPRECATED hsa_queue_cas_write_index_release (const hsa_queue_t *queue, uint64_t expected, uint64_t value)
 Atomically set the write index of a queue if the observed value is equal to the expected value. More...
 
uint64_t HSA_API hsa_queue_cas_write_index_screlease (const hsa_queue_t *queue, uint64_t expected, uint64_t value)
 Atomically set the write index of a queue if the observed value is equal to the expected value. More...
 
uint64_t HSA_API HSA_DEPRECATED hsa_queue_add_write_index_acq_rel (const hsa_queue_t *queue, uint64_t value)
 Atomically increment the write index of a queue by an offset. More...
 
uint64_t HSA_API hsa_queue_add_write_index_scacq_screl (const hsa_queue_t *queue, uint64_t value)
 Atomically increment the write index of a queue by an offset. More...
 
uint64_t HSA_API HSA_DEPRECATED hsa_queue_add_write_index_acquire (const hsa_queue_t *queue, uint64_t value)
 Atomically increment the write index of a queue by an offset. More...
 
uint64_t HSA_API hsa_queue_add_write_index_scacquire (const hsa_queue_t *queue, uint64_t value)
 Atomically increment the write index of a queue by an offset. More...
 
uint64_t HSA_API hsa_queue_add_write_index_relaxed (const hsa_queue_t *queue, uint64_t value)
 Atomically increment the write index of a queue by an offset. More...
 
uint64_t HSA_API HSA_DEPRECATED hsa_queue_add_write_index_release (const hsa_queue_t *queue, uint64_t value)
 Atomically increment the write index of a queue by an offset. More...
 
uint64_t HSA_API hsa_queue_add_write_index_screlease (const hsa_queue_t *queue, uint64_t value)
 Atomically increment the write index of a queue by an offset. More...
 
void HSA_API hsa_queue_store_read_index_relaxed (const hsa_queue_t *queue, uint64_t value)
 Atomically set the read index of a queue. More...
 
void HSA_API HSA_DEPRECATED hsa_queue_store_read_index_release (const hsa_queue_t *queue, uint64_t value)
 Atomically set the read index of a queue. More...
 
void HSA_API hsa_queue_store_read_index_screlease (const hsa_queue_t *queue, uint64_t value)
 Atomically set the read index of a queue. More...
 

Detailed Description

Typedef Documentation

◆ hsa_queue_t

typedef struct hsa_queue_s hsa_queue_t

User mode queue.

The queue structure is read-only and allocated by the HSA runtime, but agents can directly modify the contents of the buffer pointed by base_address, or use HSA runtime APIs to access the doorbell signal.

◆ hsa_queue_type32_t

typedef uint32_t hsa_queue_type32_t

A fixed-size type used to represent hsa_queue_type_t constants.

Definition at line 2191 of file hsa.h.

Enumeration Type Documentation

◆ hsa_queue_feature_t

Queue features.

Enumerator
HSA_QUEUE_FEATURE_KERNEL_DISPATCH 

Queue supports kernel dispatch packets.

HSA_QUEUE_FEATURE_AGENT_DISPATCH 

Queue supports agent dispatch packets.

Definition at line 2196 of file hsa.h.

◆ hsa_queue_type_t

Queue type.

Intended to be used for dynamic queue protocol determination.

Enumerator
HSA_QUEUE_TYPE_MULTI 

Queue supports multiple producers.

HSA_QUEUE_TYPE_SINGLE 

Queue only supports a single producer.

In some scenarios, the application may want to limit the submission of AQL packets to a single agent. Queues that support a single producer may be more efficient than queues supporting multiple producers.

Definition at line 2174 of file hsa.h.

Function Documentation

◆ hsa_queue_add_write_index_acq_rel()

uint64_t HSA_API HSA_DEPRECATED hsa_queue_add_write_index_acq_rel ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically increment the write index of a queue by an offset.

Deprecated:
Renamed as hsa_queue_add_write_index_scacq_screl.
Parameters
[in]queuePointer to a queue.
[in]valueValue to add to the write index.
Returns
Previous value of the write index.

◆ hsa_queue_add_write_index_acquire()

uint64_t HSA_API HSA_DEPRECATED hsa_queue_add_write_index_acquire ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically increment the write index of a queue by an offset.

Deprecated:
Renamed as hsa_queue_add_write_index_scacquire.
Parameters
[in]queuePointer to a queue.
[in]valueValue to add to the write index.
Returns
Previous value of the write index.

◆ hsa_queue_add_write_index_relaxed()

uint64_t HSA_API hsa_queue_add_write_index_relaxed ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically increment the write index of a queue by an offset.

Parameters
[in]queuePointer to a queue.
[in]valueValue to add to the write index.
Returns
Previous value of the write index.

◆ hsa_queue_add_write_index_release()

uint64_t HSA_API HSA_DEPRECATED hsa_queue_add_write_index_release ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically increment the write index of a queue by an offset.

Deprecated:
Renamed as hsa_queue_add_write_index_screlease.
Parameters
[in]queuePointer to a queue.
[in]valueValue to add to the write index.
Returns
Previous value of the write index.

◆ hsa_queue_add_write_index_scacq_screl()

uint64_t HSA_API hsa_queue_add_write_index_scacq_screl ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically increment the write index of a queue by an offset.

Parameters
[in]queuePointer to a queue.
[in]valueValue to add to the write index.
Returns
Previous value of the write index.

◆ hsa_queue_add_write_index_scacquire()

uint64_t HSA_API hsa_queue_add_write_index_scacquire ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically increment the write index of a queue by an offset.

Parameters
[in]queuePointer to a queue.
[in]valueValue to add to the write index.
Returns
Previous value of the write index.

◆ hsa_queue_add_write_index_screlease()

uint64_t HSA_API hsa_queue_add_write_index_screlease ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically increment the write index of a queue by an offset.

Parameters
[in]queuePointer to a queue.
[in]valueValue to add to the write index.
Returns
Previous value of the write index.

◆ hsa_queue_cas_write_index_acq_rel()

uint64_t HSA_API HSA_DEPRECATED hsa_queue_cas_write_index_acq_rel ( const hsa_queue_t queue,
uint64_t  expected,
uint64_t  value 
)

Atomically set the write index of a queue if the observed value is equal to the expected value.

Deprecated:
Renamed as hsa_queue_cas_write_index_scacq_screl.

The application can inspect the returned value to determine if the replacement was done.

Parameters
[in]queuePointer to a queue.
[in]expectedExpected value.
[in]valueValue to assign to the write index if expected matches the observed write index. Must be greater than expected.
Returns
Previous value of the write index.

◆ hsa_queue_cas_write_index_acquire()

uint64_t HSA_API HSA_DEPRECATED hsa_queue_cas_write_index_acquire ( const hsa_queue_t queue,
uint64_t  expected,
uint64_t  value 
)

Atomically set the write index of a queue if the observed value is equal to the expected value.

Deprecated:
Renamed as hsa_queue_cas_write_index_scacquire.

The application can inspect the returned value to determine if the replacement was done.

Parameters
[in]queuePointer to a queue.
[in]expectedExpected value.
[in]valueValue to assign to the write index if expected matches the observed write index. Must be greater than expected.
Returns
Previous value of the write index.

◆ hsa_queue_cas_write_index_relaxed()

uint64_t HSA_API hsa_queue_cas_write_index_relaxed ( const hsa_queue_t queue,
uint64_t  expected,
uint64_t  value 
)

Atomically set the write index of a queue if the observed value is equal to the expected value.

The application can inspect the returned value to determine if the replacement was done.

Parameters
[in]queuePointer to a queue.
[in]expectedExpected value.
[in]valueValue to assign to the write index if expected matches the observed write index. Must be greater than expected.
Returns
Previous value of the write index.

◆ hsa_queue_cas_write_index_release()

uint64_t HSA_API HSA_DEPRECATED hsa_queue_cas_write_index_release ( const hsa_queue_t queue,
uint64_t  expected,
uint64_t  value 
)

Atomically set the write index of a queue if the observed value is equal to the expected value.

Deprecated:
Renamed as hsa_queue_cas_write_index_screlease.

The application can inspect the returned value to determine if the replacement was done.

Parameters
[in]queuePointer to a queue.
[in]expectedExpected value.
[in]valueValue to assign to the write index if expected matches the observed write index. Must be greater than expected.
Returns
Previous value of the write index.

◆ hsa_queue_cas_write_index_scacq_screl()

uint64_t HSA_API hsa_queue_cas_write_index_scacq_screl ( const hsa_queue_t queue,
uint64_t  expected,
uint64_t  value 
)

Atomically set the write index of a queue if the observed value is equal to the expected value.

The application can inspect the returned value to determine if the replacement was done.

Parameters
[in]queuePointer to a queue.
[in]expectedExpected value.
[in]valueValue to assign to the write index if expected matches the observed write index. Must be greater than expected.
Returns
Previous value of the write index.

◆ hsa_queue_cas_write_index_scacquire()

uint64_t HSA_API hsa_queue_cas_write_index_scacquire ( const hsa_queue_t queue,
uint64_t  expected,
uint64_t  value 
)

Atomically set the write index of a queue if the observed value is equal to the expected value.

The application can inspect the returned value to determine if the replacement was done.

Parameters
[in]queuePointer to a queue.
[in]expectedExpected value.
[in]valueValue to assign to the write index if expected matches the observed write index. Must be greater than expected.
Returns
Previous value of the write index.

◆ hsa_queue_cas_write_index_screlease()

uint64_t HSA_API hsa_queue_cas_write_index_screlease ( const hsa_queue_t queue,
uint64_t  expected,
uint64_t  value 
)

Atomically set the write index of a queue if the observed value is equal to the expected value.

The application can inspect the returned value to determine if the replacement was done.

Parameters
[in]queuePointer to a queue.
[in]expectedExpected value.
[in]valueValue to assign to the write index if expected matches the observed write index. Must be greater than expected.
Returns
Previous value of the write index.

◆ hsa_queue_create()

hsa_status_t HSA_API hsa_queue_create ( hsa_agent_t  agent,
uint32_t  size,
hsa_queue_type32_t  type,
void(*)(hsa_status_t status, hsa_queue_t *source, void *data callback,
void *  data,
uint32_t  private_segment_size,
uint32_t  group_segment_size,
hsa_queue_t **  queue 
)

Create a user mode queue.

The HSA runtime creates the queue structure, the underlying packet buffer, the completion signal, and the write and read indexes. The initial value of the write and read indexes is 0. The type of every packet in the buffer is initialized to HSA_PACKET_TYPE_INVALID.

The application should only rely on the error code returned to determine if the queue is valid.

Parameters
[in]agentAgent where to create the queue.
[in]sizeNumber of packets the queue is expected to hold. Must be a power of 2 between 1 and the value of HSA_AGENT_INFO_QUEUE_MAX_SIZE in agent. The size of the newly created queue is the maximum of size and the value of HSA_AGENT_INFO_QUEUE_MIN_SIZE in agent.
[in]typeType of the queue. If the value of HSA_AGENT_INFO_QUEUE_TYPE in agent is HSA_QUEUE_TYPE_SINGLE, then type must also be HSA_QUEUE_TYPE_SINGLE.
[in]callbackCallback invoked by the HSA runtime for every asynchronous event related to the newly created queue. May be NULL. The HSA runtime passes three arguments to the callback: a code identifying the event that triggered the invocation, a pointer to the queue where the event originated, and the application data.
[in]dataApplication data that is passed to callback on every iteration. May be NULL.
[in]private_segment_sizeHint indicating the maximum expected private segment usage per work-item, in bytes. There may be performance degradation if the application places a kernel dispatch packet in the queue and the corresponding private segment usage exceeds private_segment_size. If the application does not want to specify any particular value for this argument, private_segment_size must be UINT32_MAX. If the queue does not support kernel dispatch packets, this argument is ignored.
[in]group_segment_sizeHint indicating the maximum expected group segment usage per work-group, in bytes. There may be performance degradation if the application places a kernel dispatch packet in the queue and the corresponding group segment usage exceeds group_segment_size. If the application does not want to specify any particular value for this argument, group_segment_size must be UINT32_MAX. If the queue does not support kernel dispatch packets, this argument is ignored.
[out]queueMemory location where the HSA runtime stores a pointer to the newly created queue.
Return values
HSA_STATUS_SUCCESSThe function has been executed successfully.
HSA_STATUS_ERROR_NOT_INITIALIZEDThe HSA runtime has not been initialized.
HSA_STATUS_ERROR_OUT_OF_RESOURCESThe HSA runtime failed to allocate the required resources.
HSA_STATUS_ERROR_INVALID_AGENTThe agent is invalid.
HSA_STATUS_ERROR_INVALID_QUEUE_CREATIONagent does not support queues of the given type.
HSA_STATUS_ERROR_INVALID_ARGUMENTsize is not a power of two, size is 0, type is an invalid queue type, or queue is NULL.

◆ hsa_queue_destroy()

hsa_status_t HSA_API hsa_queue_destroy ( hsa_queue_t queue)

Destroy a user mode queue.

When a queue is destroyed, the state of the AQL packets that have not been yet fully processed (their completion phase has not finished) becomes undefined. It is the responsibility of the application to ensure that all pending queue operations are finished if their results are required.

The resources allocated by the HSA runtime during queue creation (queue structure, ring buffer, doorbell signal) are released. The queue should not be accessed after being destroyed.

Parameters
[in]queuePointer to a queue created using hsa_queue_create.
Return values
HSA_STATUS_SUCCESSThe function has been executed successfully.
HSA_STATUS_ERROR_NOT_INITIALIZEDThe HSA runtime has not been initialized.
HSA_STATUS_ERROR_INVALID_QUEUEThe queue is invalid.
HSA_STATUS_ERROR_INVALID_ARGUMENTqueue is NULL.

◆ hsa_queue_inactivate()

hsa_status_t HSA_API hsa_queue_inactivate ( hsa_queue_t queue)

Inactivate a queue.

Inactivating the queue aborts any pending executions and prevent any new packets from being processed. Any more packets written to the queue once it is inactivated will be ignored by the packet processor.

Parameters
[in]queuePointer to a queue.
Return values
HSA_STATUS_SUCCESSThe function has been executed successfully.
HSA_STATUS_ERROR_NOT_INITIALIZEDThe HSA runtime has not been initialized.
HSA_STATUS_ERROR_INVALID_QUEUEThe queue is invalid.
HSA_STATUS_ERROR_INVALID_ARGUMENTqueue is NULL.

◆ hsa_queue_load_read_index_acquire()

uint64_t HSA_API HSA_DEPRECATED hsa_queue_load_read_index_acquire ( const hsa_queue_t queue)

Atomically load the read index of a queue.

Deprecated:
Renamed as hsa_queue_load_read_index_scacquire.
Parameters
[in]queuePointer to a queue.
Returns
Read index of the queue pointed by queue.

◆ hsa_queue_load_read_index_relaxed()

uint64_t HSA_API hsa_queue_load_read_index_relaxed ( const hsa_queue_t queue)

Atomically load the read index of a queue.

Parameters
[in]queuePointer to a queue.
Returns
Read index of the queue pointed by queue.

◆ hsa_queue_load_read_index_scacquire()

uint64_t HSA_API hsa_queue_load_read_index_scacquire ( const hsa_queue_t queue)

Atomically load the read index of a queue.

Parameters
[in]queuePointer to a queue.
Returns
Read index of the queue pointed by queue.

◆ hsa_queue_load_write_index_acquire()

uint64_t HSA_API HSA_DEPRECATED hsa_queue_load_write_index_acquire ( const hsa_queue_t queue)

Atomically load the write index of a queue.

Deprecated:
Renamed as hsa_queue_load_write_index_scacquire.
Parameters
[in]queuePointer to a queue.
Returns
Write index of the queue pointed by queue.

◆ hsa_queue_load_write_index_relaxed()

uint64_t HSA_API hsa_queue_load_write_index_relaxed ( const hsa_queue_t queue)

Atomically load the write index of a queue.

Parameters
[in]queuePointer to a queue.
Returns
Write index of the queue pointed by queue.

◆ hsa_queue_load_write_index_scacquire()

uint64_t HSA_API hsa_queue_load_write_index_scacquire ( const hsa_queue_t queue)

Atomically load the write index of a queue.

Parameters
[in]queuePointer to a queue.
Returns
Write index of the queue pointed by queue.

◆ hsa_queue_store_read_index_relaxed()

void HSA_API hsa_queue_store_read_index_relaxed ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically set the read index of a queue.

Modifications of the read index are not allowed and result in undefined behavior if the queue is associated with an agent for which only the corresponding packet processor is permitted to update the read index.

Parameters
[in]queuePointer to a queue.
[in]valueValue to assign to the read index.

◆ hsa_queue_store_read_index_release()

void HSA_API HSA_DEPRECATED hsa_queue_store_read_index_release ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically set the read index of a queue.

Deprecated:
Renamed as hsa_queue_store_read_index_screlease.

Modifications of the read index are not allowed and result in undefined behavior if the queue is associated with an agent for which only the corresponding packet processor is permitted to update the read index.

Parameters
[in]queuePointer to a queue.
[in]valueValue to assign to the read index.

◆ hsa_queue_store_read_index_screlease()

void HSA_API hsa_queue_store_read_index_screlease ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically set the read index of a queue.

Modifications of the read index are not allowed and result in undefined behavior if the queue is associated with an agent for which only the corresponding packet processor is permitted to update the read index.

Parameters
[in]queuePointer to a queue.
[in]valueValue to assign to the read index.

◆ hsa_queue_store_write_index_relaxed()

void HSA_API hsa_queue_store_write_index_relaxed ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically set the write index of a queue.

It is recommended that the application uses this function to update the write index when there is a single agent submitting work to the queue (the queue type is HSA_QUEUE_TYPE_SINGLE).

Parameters
[in]queuePointer to a queue.
[in]valueValue to assign to the write index.

◆ hsa_queue_store_write_index_release()

void HSA_API HSA_DEPRECATED hsa_queue_store_write_index_release ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically set the write index of a queue.

Deprecated:
Renamed as hsa_queue_store_write_index_screlease.

It is recommended that the application uses this function to update the write index when there is a single agent submitting work to the queue (the queue type is HSA_QUEUE_TYPE_SINGLE).

Parameters
[in]queuePointer to a queue.
[in]valueValue to assign to the write index.

◆ hsa_queue_store_write_index_screlease()

void HSA_API hsa_queue_store_write_index_screlease ( const hsa_queue_t queue,
uint64_t  value 
)

Atomically set the write index of a queue.

It is recommended that the application uses this function to update the write index when there is a single agent submitting work to the queue (the queue type is HSA_QUEUE_TYPE_SINGLE).

Parameters
[in]queuePointer to a queue.
[in]valueValue to assign to the write index.

◆ hsa_soft_queue_create()

hsa_status_t HSA_API hsa_soft_queue_create ( hsa_region_t  region,
uint32_t  size,
hsa_queue_type32_t  type,
uint32_t  features,
hsa_signal_t  doorbell_signal,
hsa_queue_t **  queue 
)

Create a queue for which the application or a kernel is responsible for processing the AQL packets.

The application can use this function to create queues where AQL packets are not parsed by the packet processor associated with an agent, but rather by a unit of execution running on that agent (for example, a thread in the host application).

The application is responsible for ensuring that all the producers and consumers of the resulting queue can access the provided doorbell signal and memory region. The application is also responsible for ensuring that the unit of execution processing the queue packets supports the indicated features (AQL packet types).

When the queue is created, the HSA runtime allocates the packet buffer using region, and the write and read indexes. The initial value of the write and read indexes is 0, and the type of every packet in the buffer is initialized to HSA_PACKET_TYPE_INVALID. The value of the size, type, features, and doorbell_signal fields in the returned queue match the values passed by the application.

Parameters
[in]regionMemory region that the HSA runtime should use to allocate the AQL packet buffer and any other queue metadata.
[in]sizeNumber of packets the queue is expected to hold. Must be a power of 2 greater than 0.
[in]typeQueue type.
[in]featuresSupported queue features. This is a bit-field of hsa_queue_feature_t values.
[in]doorbell_signalDoorbell signal that the HSA runtime must associate with the returned queue. The signal handle must not be 0.
[out]queueMemory location where the HSA runtime stores a pointer to the newly created queue. The application should not rely on the value returned for this argument but only in the status code to determine if the queue is valid. Must not be NULL.
Return values
HSA_STATUS_SUCCESSThe function has been executed successfully.
HSA_STATUS_ERROR_NOT_INITIALIZEDThe HSA runtime has not been initialized.
HSA_STATUS_ERROR_OUT_OF_RESOURCESThe HSA runtime failed to allocate the required resources.
HSA_STATUS_ERROR_INVALID_ARGUMENTsize is not a power of two, size is 0, type is an invalid queue type, the doorbell signal handle is 0, or queue is NULL.

Generated on Wed Sep 30 2020 14:02:20 for gem5 by doxygen 1.8.17