- Timestamp:
- Aug 22, 2000, 10:09:21 AM (25 years ago)
- Location:
- trunk/src/msvcrt
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/msvcrt/makefile
r3864 r4069 1 # $Id: makefile,v 1.1 7 2000-07-19 19:05:10 sandervlExp $1 # $Id: makefile,v 1.18 2000-08-22 08:09:21 phaller Exp $ 2 2 3 3 # … … 28 28 OBJS = \ 29 29 $(OBJDIR)\msvcrt.obj \ 30 $(OBJDIR)\critsec.obj \ 30 31 $(OBJDIR)\util.obj \ 31 32 $(OBJDIR)\$(TARGET)rsrc.obj \ -
trunk/src/msvcrt/msvcrt.cpp
r4067 r4069 1 /* $Id: msvcrt.cpp,v 1.1 3 2000-08-22 02:45:40phaller Exp $ */1 /* $Id: msvcrt.cpp,v 1.14 2000-08-22 08:09:21 phaller Exp $ */ 2 2 3 3 /* … … 24 24 25 25 ODINDEBUGCHANNEL(msvcrt) 26 27 28 /***************************************************************************** 29 * local variables * 30 *****************************************************************************/ 31 32 wchar_t ** __wargv; 33 wchar_t * _wpgmptr; 34 wchar_t ** _wenviron; 35 36 int __app_type; 37 int __usermatherr; 38 39 static new_handler_type new_handler; 40 41 // var Defs 42 UINT MSVCRT___argc; 43 LPSTR *MSVCRT___argv; 44 int MSVCRT___mb_cur_max; 45 LPSTR MSVCRT__acmdln; 46 UINT MSVCRT__basemajor; 47 UINT MSVCRT__baseminor; 48 UINT MSVCRT__baseversion; 49 UINT MSVCRT__commode; 50 UINT MSVCRT__daylight; 51 LPSTR MSVCRT__environ; 52 LPSTR MSVCRT__fileinfo; 53 UINT MSVCRT__fmode; 54 double *MSVCRT__HUGE; 55 UINT MSVCRT__osmajor; 56 UINT MSVCRT__osminor; 57 UINT MSVCRT__osmode; 58 UINT MSVCRT__osver; 59 UINT MSVCRT__osversion; 60 USHORT MSVCRT__pctype[] = {0,0}; 61 LPSTR MSVCRT__pgmptr; 62 USHORT *MSVCRT__pwctype; 63 UINT MSVCRT__timezone; 64 LPSTR MSVCRT__tzname; 65 UINT MSVCRT__winmajor; 66 UINT MSVCRT__winminor; 67 UINT MSVCRT__winver; 68 69 70 // syserr / sysnerr Defs 71 const 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 }; 81 int __sys_nerr = sizeof(MSVCRT_sys_errlist) / sizeof(MSVCRT_sys_errlist[0]); 82 int* MSVCRT__sys_nerr = &__sys_nerr; 83 84 26 85 27 86 /********************************************************************* … … 1251 1310 1252 1311 /********************************************************************* 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 0x111259 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.CPP1273 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 message1287 1288 MSVCRT__lock(CRITSEC_TABLE_LOCK); // lock table1289 if (pCS != NULL) // has been modified meanwhile by other thread ?1290 free(pCSNew);1291 else1292 {1293 InitializeCriticalSection(pCSNew);1294 arrpCriticalSections[ulIndex] = pCSNew;1295 }1296 1297 MSVCRT__unlock(CRITSEC_TABLE_LOCK); // unlock table1298 }1299 1300 EnterCriticalSection(pCS);1301 }1302 1303 1304 /*********************************************************************1305 1312 * _lseeki64 (MSVCRT.326) 1306 1313 */ -
trunk/src/msvcrt/msvcrt.h
r1896 r4069 1 /* $Id: msvcrt.h,v 1. 2 1999-11-30 19:44:04 sandervlExp $ */1 /* $Id: msvcrt.h,v 1.3 2000-08-22 08:09:21 phaller Exp $ */ 2 2 3 3 /* Definitions for the MS Visual C-Runtime library (MSVCRT/MSVCRT20/MSVCRT40) 4 4 * 5 5 * Copyright 1999 Jens Wiessner 6 * Copyright 2000 Patrick Haller 6 7 */ 8 9 #ifndef _H_MSVCRT_ 10 #define _H_MSVCRT_ 11 7 12 8 13 typedef struct … … 12 17 } CRTDLL_FILE, *PCRTDLL_FILE; 13 18 14 wchar_t ** __wargv;15 wchar_t * _wpgmptr;16 wchar_t ** _wenviron;17 18 int __app_type;19 int __usermatherr;20 21 19 typedef VOID (*new_handler_type)(VOID); 22 static new_handler_type new_handler;23 24 // var Defs25 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 Defs54 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, __syserr3863 };64 int __sys_nerr = sizeof(MSVCRT_sys_errlist) / sizeof(MSVCRT_sys_errlist[0]);65 int* MSVCRT__sys_nerr = &__sys_nerr;66 20 67 21 // extern Defs 68 22 extern CRTDLL_FILE _iob; 23 24 25 #endif /* _H_MSVCRT_ */
Note:
See TracChangeset
for help on using the changeset viewer.