Files
hl2_src-leak-2017/src/public/gcsdk/gcsteamdefines.h
BotoX 60f625f414 import hl2_src from full.7z
source: magnet:?xt=urn:btih:21DDA6847DDE983F2F8063739249D2D1D09A5DDA
2020-12-25 16:26:23 +01:00

48 lines
1.2 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Defines a bunch of stuff that would be defined in Steam, but
// isn't in Source.
//
//=============================================================================
#ifndef GCSTEAMDEFINES_H
#define GCSTEAMDEFINES_H
#ifdef _WIN32
#pragma once
#endif
#include "tier0/memalloc.h"
// steam defines some things that games don't
#ifndef STEAM
#define PvAlloc(x) malloc(x)
#define PvRealloc(x, y) realloc(x, y)
#define FreePv(x) free(x)
// auto-lock class for read-write locks
template< class T >
class CRWLockAutoWrite
{
T &m_RWLock;
public:
CRWLockAutoWrite( T &RWLock ) : m_RWLock( RWLock )
{
m_RWLock.LockForWrite();
}
~CRWLockAutoWrite()
{
m_RWLock.UnlockWrite();
}
};
#define AUTO_LOCK_WRITE( mutex ) CRWLockAutoWrite<CThreadRWLock> UNIQUE_ID( mutex )
#define AUTO_LOCK_SPIN_WRITE( mutex ) CRWLockAutoWrite<CThreadSpinRWLock> UNIQUE_ID( mutex )
inline void *MemAlloc_AllocAligned( size_t size, size_t align, bool bCanFail ) { return MemAlloc_AllocAligned( size, align ); }
inline void MemAlloc_FreeAligned( void *pMemBlock, bool bOperatorNew ) { MemAlloc_FreeAligned( pMemBlock ); }
#endif
#endif // GCSTEAMDEFINES_H