radeon_hd: Style fix in new ring code

* Thanks Axel for catching this.
This commit is contained in:
Alexander von Gluck IV
2012-04-11 14:23:45 -05:00
parent 745450ade8
commit 5af067fba4
2 changed files with 47 additions and 47 deletions
+37 -37
View File
@@ -45,46 +45,46 @@ compute_order(unsigned long size)
RingQueue::RingQueue(size_t sizeBytes, uint32 queueType) RingQueue::RingQueue(size_t sizeBytes, uint32 queueType)
: :
_queueType(queueType), fQueueType(queueType),
_readPtr(0), fReadPtr(0),
_writePtr(0) fWritePtr(0)
{ {
TRACE("%s: Requested %d bytes for %s RingQueue.\n", __func__, sizeBytes, TRACE("%s: Requested %d bytes for %s RingQueue.\n", __func__, sizeBytes,
queueName[_queueType]); queueName[fQueueType]);
size_t renderQueueSize = compute_order(sizeBytes / 8); size_t renderQueueSize = compute_order(sizeBytes / 8);
_size = (1 << (renderQueueSize + 1)) * 4; fSize = (1 << (renderQueueSize + 1)) * 4;
_writeBytesAvail = _size; fWriteBytesAvail = fSize;
_alignMask = 16 - 1; fAlignMask = 16 - 1;
TRACE("%s: Allocating %d bytes for %s RingQueue.\n", __func__, _size, TRACE("%s: Allocating %d bytes for %s RingQueue.\n", __func__, fSize,
queueName[_queueType]); queueName[fQueueType]);
// Allocate buffer memory // Allocate buffer memory
_data = (unsigned char*)malloc(_size); fData = (unsigned char*)malloc(fSize);
// Clear buffer // Clear buffer
memset(_data, 0, _size); memset(fData, 0, fSize);
} }
RingQueue::~RingQueue() RingQueue::~RingQueue()
{ {
TRACE("%s: Closing %s RingQueue.\n", __func__, queueName[_queueType]); TRACE("%s: Closing %s RingQueue.\n", __func__, queueName[fQueueType]);
free(_data); free(fData);
} }
status_t status_t
RingQueue::Empty() RingQueue::Empty()
{ {
TRACE("%s: Clearing %s RingQueue\n", __func__, queueName[_queueType]); TRACE("%s: Clearing %s RingQueue\n", __func__, queueName[fQueueType]);
// Clear buffer // Clear buffer
memset(_data, 0, _size); memset(fData, 0, fSize);
// Reset counters // Reset counters
_readPtr = 0; fReadPtr = 0;
_writePtr = 0; fWritePtr = 0;
_writeBytesAvail = _size; fWriteBytesAvail = fSize;
return B_OK; return B_OK;
} }
@@ -93,26 +93,26 @@ size_t
RingQueue::Read(unsigned char* dataPtr, size_t bytes) RingQueue::Read(unsigned char* dataPtr, size_t bytes)
{ {
// If there is no data or nothing to read, return 0 bytes // If there is no data or nothing to read, return 0 bytes
if (dataPtr == 0 || bytes <= 0 || _writeBytesAvail == _size) if (dataPtr == 0 || bytes <= 0 || fWriteBytesAvail == fSize)
return 0; return 0;
size_t readBytesAvail = _size - _writeBytesAvail; size_t readBytesAvail = fSize - fWriteBytesAvail;
// Set a high threshold of total available bytes available. // Set a high threshold of total available bytes available.
if (bytes > readBytesAvail) if (bytes > readBytesAvail)
bytes = readBytesAvail; bytes = readBytesAvail;
// Keep track of position and pull needed data // Keep track of position and pull needed data
if (bytes > _size - _readPtr) { if (bytes > fSize - fReadPtr) {
size_t len = _size - _readPtr; size_t len = fSize - fReadPtr;
memcpy(dataPtr, _data + _readPtr, len); memcpy(dataPtr, fData + fReadPtr, len);
memcpy(dataPtr + len, _data, bytes - len); memcpy(dataPtr + len, fData, bytes - len);
} else { } else {
memcpy(dataPtr, _data + _readPtr, bytes); memcpy(dataPtr, fData + fReadPtr, bytes);
} }
_readPtr = (_readPtr + bytes) % _size; fReadPtr = (fReadPtr + bytes) % fSize;
_writeBytesAvail += bytes; fWriteBytesAvail += bytes;
return bytes; return bytes;
} }
@@ -122,23 +122,23 @@ size_t
RingQueue::Write(unsigned char* dataPtr, size_t bytes) RingQueue::Write(unsigned char* dataPtr, size_t bytes)
{ {
// If there is no data, or no room available, 0 bytes written. // If there is no data, or no room available, 0 bytes written.
if (dataPtr == 0 || bytes <= 0 || _writeBytesAvail == 0) if (dataPtr == 0 || bytes <= 0 || fWriteBytesAvail == 0)
return 0; return 0;
// Set a high threshold of the number of bytes available. // Set a high threshold of the number of bytes available.
if (bytes > _writeBytesAvail) if (bytes > fWriteBytesAvail)
bytes = _writeBytesAvail; bytes = fWriteBytesAvail;
// Keep track of position and push needed data // Keep track of position and push needed data
if (bytes > _size - _writePtr) { if (bytes > fSize - fWritePtr) {
size_t len = _size - _writePtr; size_t len = fSize - fWritePtr;
memcpy(_data + _writePtr, dataPtr, len); memcpy(fData + fWritePtr, dataPtr, len);
memcpy(_data, dataPtr + len, bytes - len); memcpy(fData, dataPtr + len, bytes - len);
} else } else
memcpy(_data + _writePtr, dataPtr, bytes); memcpy(fData + fWritePtr, dataPtr, bytes);
_writePtr = (_writePtr + bytes) % _size; fWritePtr = (fWritePtr + bytes) % fSize;
_writeBytesAvail -= bytes; fWriteBytesAvail -= bytes;
return bytes; return bytes;
} }
+10 -10
View File
@@ -30,19 +30,19 @@ public:
size_t Write(unsigned char* data, size_t bytes); size_t Write(unsigned char* data, size_t bytes);
status_t Empty(); status_t Empty();
size_t GetSize() {return _size;}; size_t GetSize() {return fSize;};
size_t GetWriteAvail() {return _writeBytesAvail;} size_t GetWriteAvail() {return fWriteBytesAvail;}
size_t GetReadAvail() {return _size - _writeBytesAvail;} size_t GetReadAvail() {return fSize - fWriteBytesAvail;}
private: private:
uint32 _queueType; uint32 fQueueType;
unsigned char* _data; unsigned char* fData;
size_t _size; size_t fSize;
size_t _writeBytesAvail; size_t fWriteBytesAvail;
int _readPtr; int fReadPtr;
int _writePtr; int fWritePtr;
uint32 _alignMask; uint32 fAlignMask;
}; };