Changeset 4069 for trunk/src


Ignore:
Timestamp:
Aug 22, 2000, 10:09:21 AM (25 years ago)
Author:
phaller
Message:

Restructured

Location:
trunk/src/msvcrt
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/msvcrt/makefile

    r3864 r4069  
    1 # $Id: makefile,v 1.17 2000-07-19 19:05:10 sandervl Exp $
     1# $Id: makefile,v 1.18 2000-08-22 08:09:21 phaller Exp $
    22
    33#
     
    2828OBJS = \
    2929$(OBJDIR)\msvcrt.obj \
     30$(OBJDIR)\critsec.obj \
    3031$(OBJDIR)\util.obj \
    3132$(OBJDIR)\$(TARGET)rsrc.obj \
  • trunk/src/msvcrt/msvcrt.cpp

    r4067 r4069  
    1 /* $Id: msvcrt.cpp,v 1.13 2000-08-22 02:45:40 phaller Exp $ */
     1/* $Id: msvcrt.cpp,v 1.14 2000-08-22 08:09:21 phaller Exp $ */
    22
    33/*
     
    2424
    2525ODINDEBUGCHANNEL(msvcrt)
     26
     27
     28/*****************************************************************************
     29 * local variables                                                           *
     30 *****************************************************************************/
     31
     32wchar_t ** __wargv;
     33wchar_t * _wpgmptr;
     34wchar_t ** _wenviron;
     35
     36int __app_type;
     37int __usermatherr;
     38
     39static new_handler_type new_handler;
     40
     41// var Defs
     42UINT    MSVCRT___argc;     
     43LPSTR   *MSVCRT___argv;     
     44int     MSVCRT___mb_cur_max;
     45LPSTR   MSVCRT__acmdln;     
     46UINT    MSVCRT__basemajor; 
     47UINT    MSVCRT__baseminor; 
     48UINT    MSVCRT__baseversion;
     49UINT    MSVCRT__commode;   
     50UINT    MSVCRT__daylight;   
     51LPSTR   MSVCRT__environ;   
     52LPSTR   MSVCRT__fileinfo;   
     53UINT    MSVCRT__fmode;     
     54double  *MSVCRT__HUGE;     
     55UINT    MSVCRT__osmajor;   
     56UINT    MSVCRT__osminor;   
     57UINT    MSVCRT__osmode;     
     58UINT    MSVCRT__osver;     
     59UINT    MSVCRT__osversion; 
     60USHORT  MSVCRT__pctype[] = {0,0};
     61LPSTR   MSVCRT__pgmptr;     
     62USHORT *MSVCRT__pwctype;     
     63UINT    MSVCRT__timezone;   
     64LPSTR   MSVCRT__tzname;
     65UINT    MSVCRT__winmajor;   
     66UINT    MSVCRT__winminor;   
     67UINT    MSVCRT__winver;     
     68
     69
     70// syserr / sysnerr Defs
     71const char *MSVCRT_sys_errlist[] = {
     72__syserr00, __syserr01, __syserr02, __syserr03, __syserr04,
     73__syserr05, __syserr06, __syserr07, __syserr08, __syserr09,
     74__syserr10, __syserr11, __syserr12, __syserr13, __syserr14,
     75__syserr15, __syserr16, __syserr17, __syserr18, __syserr19,
     76__syserr20, __syserr21, __syserr22, __syserr23, __syserr24,
     77__syserr25, __syserr26, __syserr27, __syserr28, __syserr29,
     78__syserr30, __syserr31, __syserr32, __syserr33, __syserr34,
     79__syserr35, __syserr36, __syserr37, __syserr38
     80};
     81int __sys_nerr = sizeof(MSVCRT_sys_errlist) / sizeof(MSVCRT_sys_errlist[0]);
     82int*    MSVCRT__sys_nerr = &__sys_nerr;
     83
     84
    2685
    2786/*********************************************************************
     
    12511310
    12521311/*********************************************************************
    1253  *                  _unlock    (MSVCRT.480)
    1254  */
    1255 // Note: PH 2000/08/22 array size is probably larger than 0x12!
    1256 static CRITICAL_SECTION* arrpCriticalSections[0x12] = {0};
    1257 
    1258 #define CRITSEC_TABLE_LOCK 0x11
    1259  
    1260 VOID CDECL MSVCRT__unlock(unsigned long ulIndex)
    1261 {
    1262   dprintf(("MSVCRT: _unlock\n"));
    1263  
    1264   CRITICAL_SECTION *pCS = arrpCriticalSections[ulIndex];
    1265   LeaveCriticalSection(pCS);
    1266 }
    1267 
    1268 
    1269 /*********************************************************************
    1270  *                  _lock    (MSVCRT.318)
    1271  */
    1272 // Prototype from CRTDLL.CPP
    1273 VOID CDECL amsg_exit(int errnum);
    1274 
    1275 VOID CDECL MSVCRT__lock(unsigned long ulIndex)
    1276 {
    1277   dprintf(("MSVCRT: _lock\n"));
    1278  
    1279   CRITICAL_SECTION *pCS = arrpCriticalSections[ulIndex];
    1280   if (pCS == NULL)
    1281   {
    1282     CRITICAL_SECTION *pCSNew;
    1283    
    1284     pCSNew = (CRITICAL_SECTION*)malloc( sizeof(CRITICAL_SECTION) );
    1285     if (pCSNew == NULL)
    1286       amsg_exit(0x11); // yield error message
    1287    
    1288     MSVCRT__lock(CRITSEC_TABLE_LOCK); // lock table
    1289     if (pCS != NULL) // has been modified meanwhile by other thread ?
    1290       free(pCSNew);
    1291     else
    1292     {
    1293       InitializeCriticalSection(pCSNew);
    1294       arrpCriticalSections[ulIndex] = pCSNew;
    1295     }
    1296      
    1297     MSVCRT__unlock(CRITSEC_TABLE_LOCK); // unlock table
    1298   }
    1299    
    1300   EnterCriticalSection(pCS);
    1301 }
    1302 
    1303 
    1304 /*********************************************************************
    13051312 *                  _lseeki64    (MSVCRT.326)
    13061313 */
  • trunk/src/msvcrt/msvcrt.h

    r1896 r4069  
    1 /* $Id: msvcrt.h,v 1.2 1999-11-30 19:44:04 sandervl Exp $ */
     1/* $Id: msvcrt.h,v 1.3 2000-08-22 08:09:21 phaller Exp $ */
    22
    33/* Definitions for the MS Visual C-Runtime library (MSVCRT/MSVCRT20/MSVCRT40)
    44 *
    55 * Copyright 1999 Jens Wiessner
     6 * Copyright 2000 Patrick Haller
    67 */
     8
     9#ifndef _H_MSVCRT_
     10#define _H_MSVCRT_
     11
    712
    813typedef struct
     
    1217} CRTDLL_FILE, *PCRTDLL_FILE;
    1318
    14 wchar_t ** __wargv;
    15 wchar_t * _wpgmptr;
    16 wchar_t ** _wenviron;
    17 
    18 int __app_type;
    19 int __usermatherr;
    20 
    2119typedef VOID (*new_handler_type)(VOID);
    22 static new_handler_type new_handler;
    23 
    24 // var Defs
    25 UINT    MSVCRT___argc;     
    26 LPSTR   *MSVCRT___argv;     
    27 int     MSVCRT___mb_cur_max;
    28 LPSTR   MSVCRT__acmdln;     
    29 UINT    MSVCRT__basemajor; 
    30 UINT    MSVCRT__baseminor; 
    31 UINT    MSVCRT__baseversion;
    32 UINT    MSVCRT__commode;   
    33 UINT    MSVCRT__daylight;   
    34 LPSTR   MSVCRT__environ;   
    35 LPSTR   MSVCRT__fileinfo;   
    36 UINT    MSVCRT__fmode;     
    37 double  *MSVCRT__HUGE;     
    38 UINT    MSVCRT__osmajor;   
    39 UINT    MSVCRT__osminor;   
    40 UINT    MSVCRT__osmode;     
    41 UINT    MSVCRT__osver;     
    42 UINT    MSVCRT__osversion; 
    43 USHORT  MSVCRT__pctype[] = {0,0};
    44 LPSTR   MSVCRT__pgmptr;     
    45 USHORT *MSVCRT__pwctype;     
    46 UINT    MSVCRT__timezone;   
    47 LPSTR   MSVCRT__tzname;
    48 UINT    MSVCRT__winmajor;   
    49 UINT    MSVCRT__winminor;   
    50 UINT    MSVCRT__winver;     
    51 
    52 
    53 // syserr / sysnerr Defs
    54 const char *MSVCRT_sys_errlist[] = {
    55 __syserr00, __syserr01, __syserr02, __syserr03, __syserr04,
    56 __syserr05, __syserr06, __syserr07, __syserr08, __syserr09,
    57 __syserr10, __syserr11, __syserr12, __syserr13, __syserr14,
    58 __syserr15, __syserr16, __syserr17, __syserr18, __syserr19,
    59 __syserr20, __syserr21, __syserr22, __syserr23, __syserr24,
    60 __syserr25, __syserr26, __syserr27, __syserr28, __syserr29,
    61 __syserr30, __syserr31, __syserr32, __syserr33, __syserr34,
    62 __syserr35, __syserr36, __syserr37, __syserr38
    63 };
    64 int __sys_nerr = sizeof(MSVCRT_sys_errlist) / sizeof(MSVCRT_sys_errlist[0]);
    65 int*    MSVCRT__sys_nerr = &__sys_nerr;
    6620
    6721// extern Defs
    6822extern CRTDLL_FILE _iob;
     23
     24
     25#endif /* _H_MSVCRT_ */
Note: See TracChangeset for help on using the changeset viewer.