072f0b86f23a38efb7454da3144cbce76805be76vboxsync/* $Id$ */
072f0b86f23a38efb7454da3144cbce76805be76vboxsync
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#ifndef _DLM_H
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#define _DLM_H
072f0b86f23a38efb7454da3144cbce76805be76vboxsync
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#include "cr_dlm.h"
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#include "cr_spu.h"
072f0b86f23a38efb7454da3144cbce76805be76vboxsync
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#ifdef CHROMIUM_THREADSAFE
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#define DLM_LOCK(dlm) crLockMutex(&(dlm->dlMutex));
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#define DLM_UNLOCK(dlm) crUnlockMutex(&(dlm->dlMutex));
072f0b86f23a38efb7454da3144cbce76805be76vboxsyncextern CRtsd CRDLMTSDKey;
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#define SET_CURRENT_STATE(state) crSetTSD(&CRDLMTSDKey, (void *)state);
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#define CURRENT_STATE() ((CRDLMContextState *)crGetTSD(&CRDLMTSDKey))
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#else
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#define DLM_LOCK(dlm)
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#define DLM_UNLOCK(dlm)
072f0b86f23a38efb7454da3144cbce76805be76vboxsyncextern CRDLMContextState *CRDLMCurrentState;
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#define SET_CURRENT_STATE(state) CRDLMCurrentState = (state);
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#define CURRENT_STATE() (CRDLMCurrentState)
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#endif
072f0b86f23a38efb7454da3144cbce76805be76vboxsync
072f0b86f23a38efb7454da3144cbce76805be76vboxsync/* These routines are intended to be used within the DLM library, across
072f0b86f23a38efb7454da3144cbce76805be76vboxsync * the modules therein, but not as an API into the DLM library from
072f0b86f23a38efb7454da3144cbce76805be76vboxsync * outside.
072f0b86f23a38efb7454da3144cbce76805be76vboxsync */
072f0b86f23a38efb7454da3144cbce76805be76vboxsyncextern void crdlmWarning( int line, char *file, GLenum error, char *format, ... );
072f0b86f23a38efb7454da3144cbce76805be76vboxsyncextern void crdlm_free_list(/* DLMListInfo * */ void *listInfo);
072f0b86f23a38efb7454da3144cbce76805be76vboxsyncextern void crdlm_error(int line, const char *file, GLenum error, const char *info);
072f0b86f23a38efb7454da3144cbce76805be76vboxsync
072f0b86f23a38efb7454da3144cbce76805be76vboxsync#endif