Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

89 lines
2.4 KiB

//========== Copyright © Valve Corporation, All rights reserved. ========
#ifndef VJOB_SPURS_UTILS_HDR
#define VJOB_SPURS_UTILS_HDR
#ifndef _PS3
#error "This is PS3 specific header"
#endif
#include "vjobs_interface.h"
#include "ps3/vjobutils_shared.h"
#ifdef VJOBS_ON_SPURS
#include "tier0/logging.h"
#include "tier0/dbg.h"
#include "spu_printf.h"
#include "tier0/memalloc.h"
#include <cell/spurs.h>
#include <cell/spurs/system_workload.h>
using namespace ::cell::Spurs;
DECLARE_LOGGING_CHANNEL( LOG_VJOBS );
extern const char * HumanReadableCellResult( int nCellResult );
inline int CellVerify( int nResult, const char * pCmd, LoggingSeverity_t severity )
{
Assert( nResult == CELL_OK );
if( nResult != CELL_OK )
{
InternalMsg( LOG_VJOBS, severity, "Cell error %08X (%s) in\n\t%s\n", nResult, HumanReadableCellResult(nResult), pCmd );
}
return nResult;
}
inline int CellVerify2( int nResult, const char * pCmd, const char * pFile, const int nLine, LoggingSeverity_t severity )
{
Assert( nResult == CELL_OK );
if( nResult != CELL_OK )
{
InternalMsg( LOG_VJOBS, severity, "Cell error %08X (%s) in\n\t%s\n\t%s:%d", nResult, HumanReadableCellResult(nResult), pCmd, pFile, nLine );
}
return nResult;
}
#define CELL_VERIFY( CMD ) CellVerify2( CMD, #CMD, __FILE__, __LINE__, LS_ASSERT )
#define CELL_MUST_SUCCEED( CMD ) CellVerify2( CMD, #CMD, __FILE__, __LINE__, LS_ERROR )
#define CELL_MUST_SUCCEED2( CMD, DESC ) CellVerify2( CMD, DESC, __FILE__, __LINE__, LS_ERROR )
inline CellSpursJob64* NewJob64( const CellSpursJobHeader & jobHeader )
{
CellSpursJob64 * pJob = (CellSpursJob64 *)MemAlloc_AllocAligned( sizeof(CellSpursJob64), sizeof(CellSpursJob64) );
pJob->header = jobHeader;
pJob->workArea.dmaList[0] = 0;
pJob->workArea.dmaList[1] = 0;
return pJob;
};
inline CellSpursJob128* NewJob128( const CellSpursJobHeader & jobHeader )
{
CellSpursJob128 * pJob = (CellSpursJob128 *)MemAlloc_AllocAligned( sizeof(CellSpursJob128), sizeof(CellSpursJob128) );
__dcbz( pJob );
pJob->header = jobHeader;
return pJob;
};
inline CellSpursJob256* NewJob256( const CellSpursJobHeader & jobHeader )
{
CellSpursJob256 * pJob = (CellSpursJob256 *)MemAlloc_AllocAligned( sizeof(CellSpursJob256), sizeof(CellSpursJob256) );
__dcbz( pJob );
__dcbz( ((uint8*)pJob) + 128 );
pJob->header = jobHeader;
return pJob;
};
template <typename T>
inline void DeleteJob( T * pJob )
{
MemAlloc_FreeAligned( pJob );
}
#endif // VJOBS_ON_SPURS
DECLARE_LOGGING_CHANNEL(LOG_VJOBS);
#endif