Ignore:
Timestamp:
Nov 10, 2006, 5:05:39 AM (19 years ago)
Author:
bird
Message:

bare bone dll testcase.

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/kLdr/testcase/tstDllMainStub.c

    r2841 r2863  
    22/** @file
    33 *
    4  * kLdr testcase.
     4 * kLdr testcase - DLL Stub.
    55 *
    66 * Copyright (c) 2006 knut st. osmundsen <bird-kbuild-src@anduin.net>
     
    3434# define INCL_BASE
    3535# include <os2.h>
    36 # include <string.h>
    3736
    3837#elif defined(__WIN__)
    3938# include <windows.h>
    40 # include <string.h>
    4139
    4240#else
    4341# error "port me"
    4442#endif
    45 
    46 /*******************************************************************************
    47 *   Internal Functions                                                         *
    48 *******************************************************************************/
    49 static void tstWrite(const char *psz);
    50 
    5143
    5244
     
    5749ULONG _System _DLL_InitTerm(HMODULE hmod, ULONG fFlag)
    5850{
    59     switch (fFlags)
    60     {
    61         case 0:
    62             tstWrite("init: ");
    63             tstWrite(g_pszName);
    64             tstWrite("\n");
    65             return TRUE;
    66 
    67         case 1:
    68             tstWrite("term: ");
    69             tstWrite(g_pszName);
    70             tstWrite("\n");
    71             return TRUE;
    72 
    73         default:
    74             tstWrite("!invalid!: ");
    75             tstWrite(g_pszName);
    76             tstWrite("\n");
    77             return FALSE;
    78     }
     51    return TRUE;
    7952}
    8053
     
    8255
    8356/**
    84  * OS/2 DLL 'main'
     57 * Window DLL 'main'
    8558 */
    8659BOOL __stdcall DllMain(HANDLE hDllHandle, DWORD dwReason, LPVOID lpReserved)
    8760{
    88     switch (dwReason)
    89     {
    90         case DLL_PROCESS_ATTACH:
    91             tstWrite("init: ");
    92             tstWrite(g_pszName);
    93             tstWrite("\n");
    94             return TRUE;
    95 
    96         case DLL_PROCESS_DETACH:
    97             tstWrite("term: ");
    98             tstWrite(g_pszName);
    99             tstWrite("\n");
    100             return TRUE;
    101 
    102         case DLL_THREAD_ATTACH:
    103             tstWrite("thread init: ");
    104             tstWrite(g_pszName);
    105             tstWrite("\n");
    106             return TRUE;
    107 
    108         case DLL_THREAD_DETACH:
    109             tstWrite("thread term: ");
    110             tstWrite(g_pszName);
    111             tstWrite("\n");
    112             return TRUE;
    113 
    114         default:
    115             tstWrite("!invalid!: ");
    116             tstWrite(g_pszName);
    117             tstWrite("\n");
    118             return FALSE;
    119     }
     61    return TRUE;
    12062}
    12163
     
    12466#endif
    12567
    126 
    127 /**
    128  * Writes a string with unix lineendings.
    129  *
    130  * @param   pszMsg  The string.
    131  */
    132 static void tstWrite(const char *pszMsg)
    133 {
    134 #if defined(__OS2__) || defined(__WIN__)
    135     /*
    136      * Line by line.
    137      */
    138     ULONG       cbWritten;
    139     const char *pszNl = strchr(pszMsg, '\n');
    140 
    141     while (pszNl)
    142     {
    143         cbWritten = pszNl - pszMsg;
    144 
    145 #ifdef __OS2__
    146         if (cbWritten)
    147             DosWrite((HFILE)2, pszMsg, cbWritten, &cbWritten);
    148         DosWrite((HFILE)2, "\r\n", 2, &cbWritten);
    149 #else /* __WIN32__ */
    150         if (cbWritten)
    151             WriteFile((HANDLE)STD_ERROR_HANDLE, pszMsg, cbWritten, &cbWritten, NULL);
    152         WriteFile((HANDLE)STD_ERROR_HANDLE, "\r\n", 2, &cbWritten, NULL);
    153 #endif
    154 
    155         /* next */
    156         pszMsg = pszNl + 1;
    157         pszNl = strchr(pszMsg, '\n');
    158     }
    159 
    160     /*
    161      * Remaining incomplete line.
    162      */
    163     if (*pszMsg)
    164     {
    165         cbWritten = strlen(pszMsg);
    166 #ifdef __OS2__
    167         DosWrite((HFILE)2, pszMsg, cbWritten, &cbWritten);
    168 #else /* __WIN32__ */
    169         WriteFile((HANDLE)STD_ERROR_HANDLE, pszMsg, cbWritten, &cbWritten, NULL);
    170 #endif
    171     }
    172 
    173 #else
    174 # error "port me"
    175 #endif
    176 }
    177 
    178 
Note: See TracChangeset for help on using the changeset viewer.