radeon_hd: Style fix in new ring code
* Thanks Axel for catching this.
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user