VirtualBox

Changeset 9 in kStuff


Ignore:
Timestamp:
Apr 20, 2008 3:47:01 AM (17 years ago)
Author:
bird
Message:

Use the kStuff template instead of cooking our own compiler setup.

Location:
trunk/kProfiler2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/kProfiler2/Makefile.kmk

    r5 r9  
    3838#
    3939TEMPLATE_kPrf2 = kProfiler Template
     40if1of ($(BUILD_TARGET), win)
     41TEMPLATE_kPrf2_EXTENDS = kStuff
     42
     43else # Eliminate these
    4044TEMPLATE_kPrf2_TOOL             = GCC3
    4145TEMPLATE_kPrf2_TOOL.os2         = GCC3OMF
     
    4751TEMPLATE_kPrf2_SDKS.win         = WINPSDK
    4852
    49 TEMPLATE_kPrf2_DEFS.freebsd     = KPRF_OS_FREEBSD
    50 TEMPLATE_kPrf2_DEFS.linux       = KPRF_OS_LINUX
    51 TEMPLATE_kPrf2_DEFS.os2         = KPRF_OS_OS2
    52 TEMPLATE_kPrf2_DEFS.win         = KPRF_OS_WINDOWS
    53 
    5453TEMPLATE_kPrf2_CXXFLAGS.freebsd = -g
    5554TEMPLATE_kPrf2_CXXFLAGS.linux   = -g
    5655TEMPLATE_kPrf2_CXXFLAGS.os2     = -g
    57 TEMPLATE_kPrf2_CXXFLAGS.win     = -Zi -Zl -MD -W3 -GF -GR-
     56TEMPLATE_kPrf2_CXXFLAGS.win     = -Zi -Zl -W3 -GF -GR-
    5857TEMPLATE_kPrf2_CXXFLAGS.win.amd64 = -GS- #-FAcs
    5958ifneq ($(BUILD_TYPE),debug)
     
    6160TEMPLATE_kPrf2_CXXFLAGS.linux  += -O3
    6261TEMPLATE_kPrf2_CXXFLAGS.os2    += -O3
    63 TEMPLATE_kPrf2_CXXFLAGS.win    += -O2xtg -Oi -Ob2
     62TEMPLATE_kPrf2_CXXFLAGS.win    += -O2b2
    6463endif
    6564
     
    8180TEMPLATE_kPrf2_LIBS.linux       =
    8281TEMPLATE_kPrf2_LIBS.os2         =
    83 TEMPLATE_kPrf2_LIBS.win        = \
     82TEMPLATE_kPrf2_LIBS.win         = \
    8483        $(PATH_SDK_WINPSDK_LIB)/psapi.Lib
    8584TEMPLATE_kPrf2_LIBS.win.x86     = \
    86         $(PATH_TOOL_VCC70_LIB)/msvcrt.lib \
    87         $(PATH_TOOL_VCC70_LIB)/msvcprt.lib \
     85        $(PATH_TOOL_VCC70_LIB)/libcmt.lib \
    8886        $(PATH_TOOL_VCC70_LIB)/oldnames.lib
     87TEMPLATE_kPrf2_LIBS.win.amd64   = \
     88        $(PATH_TOOL_VCC80AMD64_LIB)/oldnames.lib \
     89        $(PATH_TOOL_VCC80AMD64_LIB)/libcmt.lib
     90endif
    8991
    9092
     
    116118# kPrf2Read - The read & producer of statistics.
    117119#
    118 #kPrf2Read_TEMPLATE = kPrf2
    119120kPrf2Read_TEMPLATE = kStuffEXE
    120121kPrf2Read_SOURCES  = \
     
    132133tst_TOOL = VCC70
    133134tst_SDKS = WINPSDK
    134 tst_CFLAGS = -GH -Gh -Zi -Zl -GR- -GX- -GF- -MD -W3 -wd4244
     135tst_CFLAGS = -GH -Gh -Zi -Zl -GR- -GX- -GF- -W3 -wd4244
    135136tst_SOURCES = tst.c
    136137tst.c_CFLAGS = -Od
  • trunk/kProfiler2/kProfileR3.cpp

    r2 r9  
    2929*   Header Files                                                               *
    3030*******************************************************************************/
    31 #if defined(KPRF_OS_WINDOWS)
     31#include <k/kDefs.h>
     32#if K_OS == K_OS_WINDOWS
    3233# include <windows.h>
    3334# include <psapi.h>
     
    3839# endif
    3940
    40 #elif defined(KPRF_OS_LINUX) || defined(KPRF_OS_FREEBSD)
     41#elif K_OS == K_OS_LINUX || K_OS == K_OS_FREEBSD
    4142# define KPRF_USE_PTHREAD
    4243# include <pthread.h>
     
    5152# endif
    5253
    53 #elif defined(KPRF_OS_OS2)
     54#elif K_OS == K_OS_OS2
    5455# define INCL_BASE
    5556# include <os2.h>
     
    6970#define KPRF_NAME(Suffix)               KPrf##Suffix
    7071#define KPRF_TYPE(Prefix,Suffix)        Prefix##KPRF##Suffix
    71 #if defined(KPRF_OS_WINDOWS) || defined(KPRF_OS_OS2)
     72#if K_OS == K_OS_WINDOWS || K_OS == K_OS_OS2
    7273# define KPRF_DECL_FUNC(type, name)     extern "C"  __declspec(dllexport) type __cdecl KPRF_NAME(name)
    7374#else
     
    9495#if defined(KPRF_USE_PTHREAD)
    9596typedef pthread_mutex_t     KPRF_TYPE(,MUTEX);
    96 #elif defined(KPRF_OS_WINDOWS)
     97#elif K_OS == K_OS_WINDOWS
    9798typedef CRITICAL_SECTION    KPRF_TYPE(,MUTEX);
    98 #elif defined(KPRF_OS_OS2)
     99#elif K_OS == K_OS_OS2
    99100typedef struct _fmutex      KPRF_TYPE(,MUTEX);
    100101#endif
     
    106107/** Read/Write lock type. */
    107108typedef pthread_rwlock_t    KPRF_TYPE(,RWLOCK);
    108 #elif defined(KPRF_OS_WINDOWS) || defined(KPRF_OS_OS2)
     109#elif K_OS == K_OS_WINDOWS || K_OS == K_OS_OS2
    109110/** Read/Write lock state. */
    110111typedef enum KPRF_TYPE(,RWLOCKSTATE)
     
    132133    /** The current number of waiting writers. */
    133134    KU32                    cWritersWaiting;
    134 # if defined(KPRF_OS_WINDOWS)
     135# if K_OS == K_OS_WINDOWS
    135136    /** The handle of the event object on which the waiting readers block. (manual reset). */
    136137    HANDLE                  hevReaders;
    137138    /** The handle of the event object on which the waiting writers block. (manual reset). */
    138139    HANDLE                  hevWriters;
    139 # elif defined(KPRF_OS_OS2)
     140# elif K_OS == K_OS_OS2
    140141    /** The handle of the event semaphore on which the waiting readers block. */
    141142    HEV                     hevReaders;
     
    156157*******************************************************************************/
    157158/** The TLS index / key. */
    158 #if defined(KPRF_OS_WINDOWS)
     159#if K_OS == K_OS_WINDOWS
    159160static DWORD                g_dwThreadTLS = TLS_OUT_OF_INDEXES;
    160161
     
    162163static pthread_key_t        g_ThreadKey = (pthread_key_t)-1;
    163164
    164 #elif defined(KPRF_OS_OS2)
     165#elif K_OS == K_OS_OS2
    165166static KPRF_TYPE(P,THREAD) *g_ppThread = NULL;
    166167
     
    211212
    212213/* Win32/64 */
    213 #if defined(KPRF_OS_WINDOWS)
     214#if K_OS == K_OS_WINDOWS
    214215    pThread = (KPRF_TYPE(P,THREAD))TlsGetValue(g_dwThreadTLS);
    215216
     
    218219    pThread = (KPRF_TYPE(P,THREAD))pthread_getspecific(g_ThreadKey);
    219220
    220 #elif defined(KPRF_OS_OS2)
     221#elif K_OS == K_OS_OS2
    221222    pThread = *g_ppThread;
    222223
     
    239240{
    240241/* Win32/64 */
    241 #if defined(KPRF_OS_WINDOWS)
     242#if K_OS == K_OS_WINDOWS
    242243    KUPTR ThreadId = (KUPTR)GetCurrentThreadId();
    243244
     
    246247    KUPTR ThreadId = (KUPTR)pthread_self();
    247248
    248 #elif defined(KPRF_OS_OS2)
     249#elif K_OS == K_OS_OS2
    249250    PTIB pTib;
    250251    PPIB pPib;
     
    269270{
    270271/* Win32/64 */
    271 #if defined(KPRF_OS_WINDOWS)
     272#if K_OS == K_OS_WINDOWS
    272273    KUPTR ThreadId = (KUPTR)GetProcessId(GetCurrentProcess());
    273274
    274 #elif defined(KPRF_OS_OS2)
     275#elif K_OS == K_OS_OS2
    275276    PTIB pTib;
    276277    PPIB pPib;
     
    299300{
    300301/* Win32/64 */
    301 #if defined(KPRF_OS_WINDOWS)
     302#if K_OS == K_OS_WINDOWS
    302303    BOOL fRc = TlsSetValue(g_dwThreadTLS, pThread);
    303304
     
    306307    int rc = pthread_setspecific(g_ThreadKey, pThread);
    307308
    308 #elif defined(KPRF_OS_OS2)
     309#elif K_OS == K_OS_OS2
    309310    *g_ppThread = pThread;
    310311
     
    506507    return -1;
    507508
    508 #elif defined(KPRF_OS_WINDOWS)
     509#elif K_OS == K_OS_WINDOWS
    509510    InitializeCriticalSection(pMutex);
    510511    return 0;
    511512
    512 #elif defined(KPRF_OS_OS2)
     513#elif K_OS == K_OS_OS2
    513514    if (!_fmutex_create(pMutex, 0))
    514515        return 0;
     
    527528    pthread_mutex_destroy(pMutex);
    528529
    529 #elif defined(KPRF_OS_WINDOWS)
     530#elif K_OS == K_OS_WINDOWS
    530531    DeleteCriticalSection(pMutex);
    531532
    532 #elif defined(KPRF_OS_OS2)
     533#elif K_OS == K_OS_OS2
    533534    _fmutex_close(pMutex);
    534535#endif
     
    541542static inline void kPrfMutexAcquire(KPRF_TYPE(P,MUTEX) pMutex)
    542543{
    543 #if defined(KPRF_OS_WINDOWS)
     544#if K_OS == K_OS_WINDOWS
    544545    EnterCriticalSection(pMutex);
    545546
     
    547548    pthread_mutex_lock(pMutex);
    548549
    549 #elif defined(KPRF_OS_OS2)
     550#elif K_OS == K_OS_OS2
    550551    fmutex_request(pMutex);
    551552#endif
     
    559560static inline void kPrfMutexRelease(KPRF_TYPE(P,MUTEX) pMutex)
    560561{
    561 #if defined(KPRF_OS_WINDOWS)
     562#if K_OS == K_OS_WINDOWS
    562563    LeaveCriticalSection(pMutex);
    563564
     
    565566    pthread_mutex_lock(pMutex);
    566567
    567 #elif defined(KPRF_OS_OS2)
     568#elif K_OS == K_OS_OS2
    568569    fmutex_request(pMutex);
    569570#endif
     
    592593    return -1;
    593594
    594 #elif defined(KPRF_OS_WINDOWS) || defined(KPRF_OS_OS2)
     595#elif K_OS == K_OS_WINDOWS || K_OS == K_OS_OS2
    595596    if (kPrfMutexInit(&pRWLock->Mutex))
    596597        return -1;
     
    599600    pRWLock->cWritersWaiting = 0;
    600601    pRWLock->enmState = RWLOCK_STATE_SHARED;
    601 # if defined(KPRF_OS_WINDOWS)
     602# if K_OS == K_OS_WINDOWS
    602603    pRWLock->hevReaders = CreateEvent(NULL, TRUE, TRUE, NULL);
    603604    pRWLock->hevWriters = CreateEvent(NULL, FALSE, FALSE, NULL);
     
    608609    CloseHandle(pRWLock->hevWriters);
    609610
    610 # elif defined(KPRF_OS_OS2)
     611# elif K_OS == K_OS_OS2
    611612    APIRET rc = DosCreateEventSem(NULL, &pRWLock->hevReaders, 0, TRUE);
    612613    if (!rc)
     
    638639    pthread_rwlock_destroy(pRWLock);
    639640
    640 #elif defined(KPRF_OS_WINDOWS) || defined(KPRF_OS_OS2)
     641#elif K_OS == K_OS_WINDOWS || K_OS == K_OS_OS2
    641642    if (pRWLock->enmState == RWLOCK_STATE_UNINITIALIZED)
    642643        return;
     
    647648    pRWLock->cReadersWaiting = 0;
    648649    pRWLock->cWritersWaiting = 0;
    649 # if defined(KPRF_OS_WINDOWS)
     650# if K_OS == K_OS_WINDOWS
    650651    CloseHandle(pRWLock->hevReaders);
    651652    pRWLock->hevReaders = INVALID_HANDLE_VALUE;
     
    653654    pRWLock->hevWriters = INVALID_HANDLE_VALUE;
    654655
    655 # elif defined(KPRF_OS_OS2)
     656# elif K_OS == K_OS_OS2
    656657    DosCloseEventSem(pRWLock->hevReaders);
    657658    pRWLock->hevReaders = NULLHANDLE;
     
    672673    pthread_rwlock_rdlock(pRWLock);
    673674
    674 #elif defined(KPRF_OS_WINDOWS) || defined(KPRF_OS_OS2)
     675#elif K_OS == K_OS_WINDOWS || K_OS == K_OS_OS2
    675676    if (pRWLock->enmState == RWLOCK_STATE_UNINITIALIZED)
    676677        return;
     
    688689        /* have to wait */
    689690        KPRF_ATOMIC_INC32(&pRWLock->cReadersWaiting);
    690 # if defined(KPRF_OS_WINDOWS)
     691# if K_OS == K_OS_WINDOWS
    691692        HANDLE hev = pRWLock->hevReaders;
    692693        ResetEvent(hev);
    693694
    694 # elif defined(KPRF_OS_OS2)
     695# elif K_OS == K_OS_OS2
    695696        HEV    hev = pRWLock->hevReaders;
    696697        ULONG cIgnored;
     
    700701        kPrfMutexRelease(&pRWLock->Mutex);
    701702
    702 # if defined(KPRF_OS_WINDOWS)
     703# if K_OS == K_OS_WINDOWS
    703704        switch (WaitForSingleObject(hev, INFINITE))
    704705        {
     
    712713        }
    713714
    714 # elif defined(KPRF_OS_OS2)
     715# elif K_OS == K_OS_OS2
    715716        switch (DosWaitEventSem(hev, SEM_INDEFINITE_WAIT))
    716717        {
     
    747748    pthread_rwlock_unlock(pRWLock);
    748749
    749 #elif defined(KPRF_OS_WINDOWS) || defined(KPRF_OS_OS2)
     750#elif K_OS == K_OS_WINDOWS || K_OS == K_OS_OS2
    750751    if (pRWLock->enmState == RWLOCK_STATE_UNINITIALIZED)
    751752        return;
     
    771772     * Wake up one (or more on OS/2) waiting writers.
    772773     */
    773 # if defined(KPRF_OS_WINDOWS)
     774# if K_OS == K_OS_WINDOWS
    774775    SetEvent(pRWLock->hevWriters);
    775 # elif defined(KPRF_OS_OS2)
     776# elif K_OS == K_OS_OS2
    776777    DosPostEvent(pRWLock->hevwriters);
    777778# endif
     
    791792    pthread_rwlock_wrlock(pRWLock);
    792793
    793 #elif defined(KPRF_OS_WINDOWS) || defined(KPRF_OS_OS2)
     794#elif K_OS == K_OS_WINDOWS || K_OS == K_OS_OS2
    794795    if (pRWLock->enmState == RWLOCK_STATE_UNINITIALIZED)
    795796        return;
     
    814815    for (;;)
    815816    {
    816 # if defined(KPRF_OS_WINDOWS)
     817# if K_OS == K_OS_WINDOWS
    817818        HANDLE hev = pRWLock->hevWriters;
    818 # elif defined(KPRF_OS_OS2)
     819# elif K_OS == K_OS_OS2
    819820        HEV    hev = pRWLock->hevWriters;
    820821# endif
    821822        kPrfMutexRelease(&pRWLock->Mutex);
    822 # if defined(KPRF_OS_WINDOWS)
     823# if K_OS == K_OS_WINDOWS
    823824        switch (WaitForSingleObject(hev, INFINITE))
    824825        {
     
    833834        }
    834835
    835 # elif defined(KPRF_OS_OS2)
     836# elif K_OS == K_OS_OS2
    836837        switch (DosWaitEventSem(hev, SEM_INDEFINITE_WAIT))
    837838        {
     
    877878    pthread_rwlock_unlock(pRWLock);
    878879
    879 #elif defined(KPRF_OS_WINDOWS) || defined(KPRF_OS_OS2)
     880#elif K_OS == K_OS_WINDOWS || K_OS == K_OS_OS2
    880881    if (pRWLock->enmState == RWLOCK_STATE_UNINITIALIZED)
    881882        return;
     
    902903     * Someone is waiting, wake them up as we change the state.
    903904     */
    904 # if defined(KPRF_OS_WINDOWS)
     905# if K_OS == K_OS_WINDOWS
    905906    HANDLE hev = INVALID_HANDLE_VALUE;
    906 # elif defined(KPRF_OS_OS2)
     907# elif K_OS == K_OS_OS2
    907908    HEV    hev = NULLHANDLE;
    908909# endif
     
    918919        hev = pRWLock->hevReaders;
    919920    }
    920 # if defined(KPRF_OS_WINDOWS)
     921# if K_OS == K_OS_WINDOWS
    921922    SetEvent(hev);
    922 # elif defined(KPRF_OS_OS2)
     923# elif K_OS == K_OS_OS2
    923924    DosPostEvent(pRWLock->hevwriters);
    924925# endif
     
    943944                         KPRF_TYPE(P,UPTR) puBasePtr, KPRF_TYPE(P,UPTR) pcbSegmentMinusOne)
    944945{
    945 #if defined(KPRF_OS_WINDOWS)
     946#if K_OS == K_OS_WINDOWS
    946947    /*
    947948     * Enumerate the module handles.
     
    10611062    }
    10621063
    1063 #elif defined(KPRF_OS_OS2)
     1064#elif K_OS == K_OS_OS2
    10641065    /*
    10651066     * Just ask the loader.
     
    11421143     * Some limit stuff in posix / ansi also comes to mind... */
    11431144
    1144 #elif defined(KPRF_OS_OS2)
     1145#elif K_OS == K_OS_OS2
    11451146    PTIB pTib;
    11461147    PPIB pPib;
     
    11721173static char *kPrfGetEnvString(const char *pszVar, char *pszValue, KU32 cchValue, const char *pszDefault)
    11731174{
    1174 #if defined(KPRF_OS_WINDOWS)
     1175#if K_OS == K_OS_WINDOWS
    11751176    if (GetEnvironmentVariable(pszVar, pszValue, cchValue))
    11761177        return pszValue;
    11771178
    1178 #elif defined(KPRF_OS_OS2)
     1179#elif K_OS == K_OS_OS2
    11791180    PSZ pszValue;
    11801181    if (    !DosScanEnv((PCSZ)pszVar, &pszValue)
     
    12111212static KU32 kPrfGetEnvValue(const char *pszVar, KU32 uDefault)
    12121213{
    1213 #if defined(KPRF_OS_WINDOWS)
     1214#if K_OS == K_OS_WINDOWS
    12141215    char szBuf[128];
    12151216    const char *pszValue = szBuf;
     
    12171218        pszValue = NULL;
    12181219
    1219 #elif defined(KPRF_OS_OS2)
     1220#elif K_OS == K_OS_OS2
    12201221    PSZ pszValue;
    12211222    if (DosScanEnv((PCSZ)pszVar, &pszValue))
     
    13001301static void *kPrfAllocMem(KU32 cb)
    13011302{
    1302 #if defined(KPRF_OS_WINDOWS)
     1303#if K_OS == K_OS_WINDOWS
    13031304    void *pv = VirtualAlloc(NULL, cb, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    13041305
     
    13061307    void *pv = mmap(NULL, cb, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
    13071308
    1308 #elif defined(KPRF_OS_OS2)
     1309#elif K_OS == K_OS_OS2
    13091310    void *pv;
    13101311# ifdef INCL_DOSEXAPIS
     
    13291330static void kPrfFreeMem(void *pv)
    13301331{
    1331 #if defined(KPRF_OS_WINDOWS)
     1332#if K_OS == K_OS_WINDOWS
    13321333    VirtualFree(pv, 0, MEM_RELEASE);
    13331334
     
    13351336    munmap(pv, 0); /** @todo check if 0 is allowed here.. */
    13361337
    1337 #elif defined(KPRF_OS_OS2)
     1338#elif K_OS == K_OS_OS2
    13381339# ifdef INCL_DOSEXAPIS
    13391340    DosFreeMemEx(&pv);
     
    13631364static int kPrfWriteFile(const char *pszName, const void *pvData, KU32 cbData)
    13641365{
    1365 #if defined(KPRF_OS_WINDOWS)
     1366#if K_OS == K_OS_WINDOWS
    13661367    int rc = -1;
    13671368    HANDLE hFile = CreateFile(pszName,GENERIC_WRITE, FILE_SHARE_READ, NULL,
     
    13771378    return rc;
    13781379
    1379 #elif defined(KPRF_OS_OS2)
     1380#elif K_OS == K_OS_OS2
    13801381    HFILE hFile;
    13811382    ULONG ulAction = 0;
     
    14621463                     * Allocate the TLS entry.
    14631464                     */
    1464 #if defined(KPRF_OS_WINDOWS)
     1465#if K_OS == K_OS_WINDOWS
    14651466                    g_dwThreadTLS = TlsAlloc();
    14661467                    if (g_dwThreadTLS != TLS_OUT_OF_INDEXES)
     
    14701471                    if (!rc)
    14711472
    1472 #elif defined(KPRF_OS_OS2)
     1473#elif K_OS == K_OS_OS2
    14731474                    int rc = DosAllocThreadLocalMemory(sizeof(void *), (PULONG*)&g_ppThread); /** @todo check if this is a count or a size. */
    14741475                    if (!rc)
     
    14811482                        if (fAffinity)
    14821483                        {
    1483 #if defined(KPRF_OS_WINDOWS)
     1484#if K_OS == K_OS_WINDOWS
    14841485                            SetProcessAffinityMask(GetCurrentProcess(), fAffinity);
    14851486#endif
     
    15251526        return -1;
    15261527
    1527 #if defined(KPRF_OS_WINDOWS)
     1528#if K_OS == K_OS_WINDOWS
    15281529    Sleep(10);
    1529 #elif defined(KPRF_OS_OS2)
     1530#elif K_OS == K_OS_OS2
    15301531    DosSleep(10);
    15311532#else
     
    15411542     * Use the stack space to fill in process details.
    15421543     */
    1543 #if defined(KPRF_OS_WINDOWS)
     1544#if K_OS == K_OS_WINDOWS
    15441545    /* all is one single string */
    15451546    const char *pszCommandLine = GetCommandLine();
     
    15471548        KPRF_NAME(SetCommandLine)(pHdr, 1, &pszCommandLine);
    15481549
    1549 #elif defined(KPRF_OS_OS2) || defined(KPRF_OS_OS2)
     1550#elif K_OS == K_OS_OS2 || K_OS == K_OS_OS2
    15501551    PTIB pTib;
    15511552    PPIB pPib;
     
    16111612     */
    16121613    kPrfFreeMem(pHdr);
    1613 #if defined(KPRF_OS_WINDOWS)
     1614#if K_OS == K_OS_WINDOWS
    16141615    TlsFree(g_dwThreadTLS);
    16151616    g_dwThreadTLS = TLS_OUT_OF_INDEXES;
     
    16191620    g_ThreadKey = (pthread_key_t)-1;
    16201621
    1621 #elif defined(KPRF_OS_OS2)
     1622#elif K_OS == K_OS_OS2
    16221623    DosFreeThreadLocalMemory((PULONG)g_ppThread);
    16231624    g_ppThread = NULL;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette