Make HostQueue::queue_count_ a portable atomic type.

Also make lint happy.

Change-Id: I0f965df6a76fd959df9eb411d1f1b11847159790
Tento commit je obsažen v:
Sean Keely
2017-10-31 02:34:47 -05:00
rodič ce6aee01ed
revize d93f92f42d
4 změnil soubory, kde provedl 15 přidání a 13 odebrání
+1 -1
Zobrazit soubor
@@ -166,7 +166,7 @@ class HostQueue : public Queue {
// Host queue id counter, starting from 0x80000000 to avoid overlaping
// with aql queue id.
static volatile uint32_t queue_count_;
static std::atomic<uint32_t> queue_count_;
DISALLOW_COPY_AND_ASSIGN(HostQueue);
};
+3 -1
Zobrazit soubor
@@ -317,7 +317,9 @@ class Runtime {
ExtensionEntryPoints extensions_;
hsa_status_t SetCustomVMFaultHandler(hsa_status_t (*callback)(const void* event_specific_data, void* data), void* data);
hsa_status_t SetCustomVMFaultHandler(hsa_status_t (*callback)(const void* event_specific_data,
void* data),
void* data);
protected:
static void AsyncEventsLoop(void*);
+2 -2
Zobrazit soubor
@@ -47,7 +47,7 @@
namespace core {
volatile uint32_t HostQueue::queue_count_ = 0x80000000;
std::atomic<uint32_t> HostQueue::queue_count_(0x80000000);
HostQueue::HostQueue(hsa_region_t region, uint32_t ring_size,
hsa_queue_type32_t type, uint32_t features,
@@ -73,7 +73,7 @@ HostQueue::HostQueue(hsa_region_t region, uint32_t ring_size,
amd_queue_.hsa_queue.base_address = ring_;
amd_queue_.hsa_queue.size = size_;
amd_queue_.hsa_queue.doorbell_signal = doorbell_signal;
amd_queue_.hsa_queue.id = atomic::Increment(&queue_count_);
amd_queue_.hsa_queue.id = queue_count_++;
amd_queue_.hsa_queue.type = type;
amd_queue_.hsa_queue.features = features;
#ifdef HSA_LARGE_MODEL
+9 -9
Zobrazit soubor
@@ -92,21 +92,21 @@ void HsaApiTable::CloneExts(void* ext_table, uint32_t table_id) {
// Update HSA Extension Finalizer Api table
if (table_id == HSA_EXT_FINALIZER_API_TABLE_ID) {
finalizer_api = (*(FinalizerExtTable *)ext_table);
finalizer_api = *reinterpret_cast<FinalizerExtTable*>(ext_table);
hsa_api.finalizer_ext_ = &finalizer_api;
return;
}
// Update HSA Extension Image Api table
if (table_id == HSA_EXT_IMAGE_API_TABLE_ID) {
image_api = (*(ImageExtTable *)ext_table);
image_api = *reinterpret_cast<ImageExtTable*>(ext_table);
hsa_api.image_ext_ = &image_api;
return;
}
// Update HSA Extension AqlProfile Api table
if (table_id == HSA_EXT_AQLPROFILE_API_TABLE_ID) {
aqlprofile_api = (*(AqlProfileExtTable *)ext_table);
aqlprofile_api = *reinterpret_cast<AqlProfileExtTable*>(ext_table);
hsa_api.aqlprofile_ext_ = &aqlprofile_api;
return;
}
@@ -118,22 +118,22 @@ void HsaApiTable::LinkExts(void* ext_table, uint32_t table_id) {
// Update HSA Extension Finalizer Api table
if (table_id == HSA_EXT_FINALIZER_API_TABLE_ID) {
finalizer_api = (*(FinalizerExtTable *)ext_table);
hsa_api.finalizer_ext_ = (FinalizerExtTable *)ext_table;
finalizer_api = *reinterpret_cast<FinalizerExtTable*>(ext_table);
hsa_api.finalizer_ext_ = reinterpret_cast<FinalizerExtTable*>(ext_table);
return;
}
// Update HSA Extension Image Api table
if (table_id == HSA_EXT_IMAGE_API_TABLE_ID) {
image_api = (*(ImageExtTable *)ext_table);
hsa_api.image_ext_ = (ImageExtTable *)ext_table;
image_api = *reinterpret_cast<ImageExtTable*>(ext_table);
hsa_api.image_ext_ = reinterpret_cast<ImageExtTable*>(ext_table);
return;
}
// Update HSA Extension AqlProfile Api table
if (table_id == HSA_EXT_AQLPROFILE_API_TABLE_ID) {
aqlprofile_api = (*(AqlProfileExtTable *)ext_table);
hsa_api.aqlprofile_ext_ = (AqlProfileExtTable *)ext_table;
aqlprofile_api = *reinterpret_cast<AqlProfileExtTable*>(ext_table);
hsa_api.aqlprofile_ext_ = reinterpret_cast<AqlProfileExtTable*>(ext_table);
return;
}
}