Edit

kc3-lang/angle/src/compiler/osinclude.h

Branch :

  • Show log

    Commit

  • Author : alokp@chromium.org
    Date : 2010-06-02 15:50:56
    Hash : 91b72320
    Message : Removed the dependency of compiler on common. This is done to make compiler self-sufficient so that it is easier to consume by external developers. I tried to replace all instances of assert by simply redefining assert(x) to ASSERT(x), but was getting a lot of compile errors. I still need to investigate that. Review URL: http://codereview.appspot.com/1461041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@323 736b8ea6-26fd-11df-bfd4-992fa37f6226

  • src/compiler/osinclude.h
  • //
    // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    #ifndef __OSINCLUDE_H
    #define __OSINCLUDE_H
    
    //
    // This file contains contains the window's specific datatypes and
    // declares any windows specific functions.
    //
    
    #if defined(_WIN32) || defined(_WIN64)
    #define ANGLE_OS_WIN
    #elif defined(__APPLE__) || defined(__linux__) || \
          defined(__FreeBSD__) || defined(__OpenBSD__) || \
          defined(__sun)
    #define ANGLE_OS_POSIX
    #else
    #error Unsupported platform.
    #endif
    
    #if defined(ANGLE_OS_WIN)
    #define STRICT
    #define VC_EXTRALEAN 1
    #include <windows.h>
    #elif defined(ANGLE_OS_POSIX)
    #include <pthread.h>
    #include <semaphore.h>
    #include <errno.h>
    #endif  // ANGLE_OS_WIN
    
    #include "compiler/debug.h"
    
    //
    // Thread Local Storage Operations
    //
    #if defined(ANGLE_OS_WIN)
    typedef DWORD OS_TLSIndex;
    #define OS_INVALID_TLS_INDEX (TLS_OUT_OF_INDEXES)
    #elif defined(ANGLE_OS_POSIX)
    typedef unsigned int OS_TLSIndex;
    #define OS_INVALID_TLS_INDEX 0xFFFFFFFF
    #endif  // ANGLE_OS_WIN
    
    OS_TLSIndex OS_AllocTLSIndex();
    bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue);
    bool OS_FreeTLSIndex(OS_TLSIndex nIndex);
    
    inline void* OS_GetTLSValue(OS_TLSIndex nIndex)
    {
        assert(nIndex != OS_INVALID_TLS_INDEX);
    #if defined(ANGLE_OS_WIN)
        return TlsGetValue(nIndex);
    #elif defined(ANGLE_OS_POSIX)
        return pthread_getspecific(nIndex);
    #endif  // ANGLE_OS_WIN
    }
    
    #endif // __OSINCLUDE_H