- Timestamp:
- Aug 18, 1999, 11:45:14 PM (26 years ago)
- Location:
- trunk/src/NTDLL
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/NTDLL/crt.cpp
r376 r557 1 /* $Id: crt.cpp,v 1. 4 1999-07-23 18:06:25 sandervlExp $ */1 /* $Id: crt.cpp,v 1.5 1999-08-18 21:45:13 phaller Exp $ */ 2 2 3 3 /* … … 6 6 * Copyright 1999 Patrick Haller (phaller@gmx.net) 7 7 */ 8 9 /**************************************************************************** 10 * Include * 11 ****************************************************************************/ 8 12 9 13 #include <odin.h> … … 26 30 27 31 32 /**************************************************************************** 33 * Local Prototypes * 34 ****************************************************************************/ 35 36 37 LPWSTR CDECL OS2_wcsupr(LPWSTR str); 38 int CDECL OS2_wcsnicmp(LPWSTR str1, LPWSTR str2, long l); 39 40 41 42 /***************************************************************************** 43 * Name : 44 * Purpose : 45 * Parameters: 46 * Variables : 47 * Result : 48 * Remark : NTDLL.879 49 * Status : 50 * 51 * Author : Patrick Haller [Thu, 1999/06/22 20:44] 52 *****************************************************************************/ 53 54 int CDECL OS2_wcsicmp(LPWSTR str1, LPWSTR str2) 55 { 56 dprintf(("NTDLL: _wcsicmp(%08xh,%08xh)\n", 57 str1, 58 str2)); 59 60 return (OS2_wcsnicmp(str1, 61 str2, 62 wcslen((wchar_t*) str1))); 63 } 64 65 66 /***************************************************************************** 67 * Name : 68 * Purpose : 69 * Parameters: 70 * Variables : 71 * Result : 72 * Remark : NTDLL.880 73 * Status : 74 * 75 * Author : Patrick Haller [Thu, 1999/06/22 20:44] 76 *****************************************************************************/ 77 78 LPWSTR CDECL OS2_wcslwr(LPWSTR str) 79 { 80 DWORD dwIndex; 81 82 dprintf(("NTDLL: _wcslwr(%08xh)\n", 83 str)); 84 85 for (dwIndex = wcslen((const wchar_t*)str); 86 dwIndex; 87 dwIndex--) 88 { 89 towlower(str[dwIndex]); 90 } 91 92 return (str); 93 } 94 95 96 /***************************************************************************** 97 * Name : 98 * Purpose : 99 * Parameters: 100 * Variables : 101 * Result : 102 * Remark : NTDLL.881 103 * Status : 104 * 105 * Author : Patrick Haller [Thu, 1999/06/22 20:44] 106 *****************************************************************************/ 107 108 int CDECL OS2_wcsnicmp(LPWSTR str1, LPWSTR str2, long l) 109 { 110 LPWSTR w1; 111 LPWSTR w2; 112 113 dprintf(("NTDLL: _wcsnicmp(%08xh,%08xh,%08xh)\n", 114 str1, 115 str2, 116 l)); 117 118 w1 = HEAP_strdupW(GetProcessHeap(),0,str1); 119 w2 = HEAP_strdupW(GetProcessHeap(),0,str2); 120 OS2_wcsupr(w1); 121 OS2_wcsupr(w2); 122 123 return (wcsncmp((wchar_t*)w1, 124 (wchar_t*)w2, 125 l)); 126 } 127 128 28 129 /***************************************************************************** 29 130 * Name : … … 460 561 * Variables : 461 562 * Result : 563 * Remark : NTDLL.? 564 * Status : 565 * 566 * Author : Patrick Haller [Thu, 1999/06/22 20:44] 567 *****************************************************************************/ 568 569 int CDECL OS2_stricmp(const LPSTR str1, 570 const LPSTR str2) 571 { 572 dprintf(("NTDLL: _stricmp(%s,%s)\n", 573 str1, 574 str2)); 575 576 return (stricmp(str1, str2)); 577 } 578 579 580 /***************************************************************************** 581 * Name : 582 * Purpose : 583 * Parameters: 584 * Variables : 585 * Result : 462 586 * Remark : NTDLL.917 463 587 * Status : … … 997 1121 } 998 1122 1123 1124 /***************************************************************************** 1125 * Name : 1126 * Purpose : 1127 * Parameters: 1128 * Variables : 1129 * Result : 1130 * Remark : NTDLL.? 1131 * Status : 1132 * 1133 * Author : Patrick Haller [Thu, 1999/06/22 20:44] 1134 *****************************************************************************/ 1135 1136 char * CDECL OS2_itoa(int i, char *s, int r) 1137 { 1138 dprintf(("NTDLL: _itoa(%08xh, %08xh, %08xh)\n", 1139 i, 1140 s, 1141 r)); 1142 1143 return (_itoa(i,s,r)); 1144 } 1145 -
trunk/src/NTDLL/ntdll.cpp
r51 r557 1 /* $Id: ntdll.cpp,v 1. 1 1999-06-07 22:17:40 sandervlExp $ */1 /* $Id: ntdll.cpp,v 1.2 1999-08-18 21:45:13 phaller Exp $ */ 2 2 3 3 /* … … 51 51 52 52 53 /***********************************************************************54 * lstrcpynAtoW (Not a Windows API)55 * Note: this function differs from the UNIX strncpy, it _always_ writes56 * a terminating \057 */58 LPWSTR WIN32API lstrcpynAtoW(LPWSTR dst,59 LPCSTR src,60 INT n)61 {62 LPWSTR p = dst;63 while ((n-- > 1) && *src) *p++ = (WCHAR)(unsigned char)*src++;64 if (n >= 0) *p = 0;65 return dst;66 }67 68 69 /***********************************************************************70 * lstrcpynWtoA (Not a Windows API)71 * Note: this function differs from the UNIX strncpy, it _always_ writes72 * a terminating \073 */74 LPSTR WIN32API lstrcpynWtoA(LPSTR dst,75 LPCWSTR src,76 INT n)77 {78 LPSTR p = dst;79 while ((n-- > 1) && *src) *p++ = (CHAR)*src++;80 if (n >= 0) *p = 0;81 return dst;82 }83 84 85 /***********************************************************************86 * lstrncmp32W (Not a Windows API)87 */88 INT WIN32API lstrncmpW( LPCWSTR str1, LPCWSTR str2, INT n )89 {90 if (!n)91 return 0;92 93 while ((--n > 0) && *str1 && (*str1 == *str2))94 {95 str1++;96 str2++;97 }98 99 return (INT)(*str1 - *str2);100 }101 102 103 104 /***********************************************************************105 * HEAP_strdupA106 */107 LPSTR HEAP_strdupA(HANDLE heap,108 DWORD flags,109 LPCSTR str)110 {111 LPSTR p = (LPSTR)HeapAlloc(heap,112 flags,113 lstrlenA(str) + 1 );114 115 lstrcpyA(p, str);116 return p;117 }118 119 120 /***********************************************************************121 * HEAP_strdupW122 */123 LPWSTR HEAP_strdupW(HANDLE heap,124 DWORD flags,125 LPCWSTR str)126 {127 INT len = lstrlenW(str) + 1;128 LPWSTR p = (LPWSTR)HeapAlloc(heap,129 flags,130 len * sizeof(WCHAR) );131 lstrcpyW(p,132 str);133 return p;134 }135 136 137 /***********************************************************************138 * HEAP_strdupWtoA139 */140 LPSTR HEAP_strdupWtoA(HANDLE heap,141 DWORD flags,142 LPCWSTR str )143 {144 LPSTR ret;145 146 if (!str)147 return NULL;148 149 ret = (LPSTR)HeapAlloc(heap,150 flags,151 lstrlenW(str) + 1 );152 UnicodeToAscii((LPWSTR)str,153 ret);154 /* lstrcpyWtoA(ret,155 str);*/156 return ret;157 }158 159 /***********************************************************************160 * HEAP_strdupAtoW161 */162 LPWSTR HEAP_strdupAtoW(HANDLE heap,163 DWORD flags,164 LPCSTR str)165 {166 LPWSTR ret;167 168 if (!str)169 return NULL;170 171 ret = (LPWSTR)HeapAlloc(heap,172 flags,173 (lstrlenA(str)+1) * sizeof(WCHAR) );174 AsciiToUnicode((char *)str,175 ret);176 /* lstrcpyAtoW(ret,177 str );*/178 179 return ret;180 }181 -
trunk/src/NTDLL/ntdll.def
r555 r557 1 ; $Id: ntdll.def,v 1.1 2 1999-08-18 19:35:30phaller Exp $1 ; $Id: ntdll.def,v 1.13 1999-08-18 21:45:13 phaller Exp $ 2 2 3 3 ;Created by BLAST for IBM's compiler … … 16 16 fwd_RtlEnterCriticalSection = KERNEL32.EnterCriticalSection 17 17 fwd_RtlDeleteCriticalSection = KERNEL32.DeleteCriticalSection 18 18 _lstrncmpW@12 = KERNEL32.lstrncmpW 19 HEAP_strdupW = KERNEL32.HEAP_strdupW 20 HEAP_strdupWtoA = KERNEL32.HEAP_strdupWtoA 19 21 20 22 EXPORTS … … 23 25 _alldiv = _OS2_alldiv 24 26 _allmul = _OS2_allmul 25 _chkstk = _OS2_chkstk 27 26 28 RtlLargeIntegerToChar = _RtlLargeIntegerToChar@16 @425 27 29 … … 38 40 39 41 ; real functions 42 NtAlertThread = _NtAlertThread@8 @57 43 ZwAlertThread = _NtAlertThread@8 40 44 NtAllocateUuids = _NtAllocateUuids@16 @59 41 45 ZwAllocateUuids = _NtAllocateUuids@16 46 NtTestAlert = _NtTestAlert@8 @232 47 ZwTestAlert = _NtTestAlert@8 48 NtWriteRequestData = _NtWriteRequestData@20 @246 49 ZwWriteRequestData = _NtWriteRequestData@20 50 NtImpersonateClientOfPort = _NtImpersonateClientOfPort@16 @112 51 ZwImpersonateClientOfPort = _NtImpersonateClientOfPort@16 52 NtQuerySystemTime = _NtQuerySystemTime@4 @169 53 ZwQuerySystemTime = _NtQuerySystemTime@4 54 NtReadRequestData = _NtReadRequestData@20 @178 55 ZwReadRequestData = _NtReadRequestData@20 56 57 NtReplyPort = _NtReplyPort@16 @187 58 ZwReplyPort = _NtReplyPort@16 59 NtReplyWaitReplyPort = _NtReplyWaitReplyPort@16 @189 60 ZwReplyWaitReplyPort = _NtReplyWaitReplyPort@16 61 NtRequestPort = _NtRequestPort@16 @190 62 ZwRequestPort = _NtRequestPort@16 63 42 64 43 65 NtOpenFile = _NtOpenFile@24 @127 … … 142 164 NtSetEvent = _NtSetEvent@8 143 165 ZwSetEvent = _NtSetEvent@8 166 NtResetEvent = _NtResetEvent@4 @192 167 ZwResetEvent = _NtResetEvent@4 144 168 145 169 NtQueryObject = _NtQueryObject@20 @161 … … 239 263 RtlFreeAnsiString = _RtlFreeAnsiString@4 @373 240 264 RtlFreeOemString = _RtlFreeOemString@4 265 RtlUnicodeStringToOemString = _RtlUnicodeStringToOemString@12 @511 266 RtlUnicodeToMultiByteN = _RtlUnicodeToMultiByteN@20 @513 241 267 RtlUnicodeToOemN = _RtlUnicodeToOemN@20 @515 242 RtlUnicodeStringToOemString = _RtlUnicodeStringToOemString@12 @511243 268 RtlUnicodeStringToAnsiString = _RtlUnicodeStringToAnsiString@12 @507 244 269 RtlEqualUnicodeString = _RtlEqualUnicodeString@12 … … 297 322 RtlTimeToElapsedTimeFields = _RtlTimeToElapsedTimeFields@8 298 323 324 _alloca_probe = _OS2_alloca_probe @861 325 _chkstk = _OS2_chkstk @862 299 326 300 327 ; NTDLL's C runtime 301 328 ; Note: CDECL does not decorate the function names with parameter bytes! 329 _wcsicmp = _OS2_wcsicmp @879 330 _wcslwr = _OS2_wcslwr @880 331 _wcsnicmp = _OS2_wcsnicmp @881 302 332 _wcsupr = _OS2_wcsupr @882 303 333 abs = _OS2abs @883 … … 345 375 wcsstr = _OS2wcsstr @946 346 376 377 _stricmp = _OS2_stricmp 378 _itoa = _OS2_itoa -
trunk/src/NTDLL/rtl.cpp
r188 r557 1 /* $Id: rtl.cpp,v 1. 3 1999-06-25 13:59:02phaller Exp $ */1 /* $Id: rtl.cpp,v 1.4 1999-08-18 21:45:13 phaller Exp $ */ 2 2 3 3 /* … … 510 510 511 511 512 /**************************************************************************513 * NTDLL_chkstk [NTDLL.862]514 * NTDLL_alloca_probe [NTDLL.861]515 * Glorified "enter xxxx".516 */517 /* @@@PH how to port this to VAC ?518 REGS_ENTRYPOINT(NTDLL_chkstk)519 {520 ESP_reg(context) -= EAX_reg(context);521 }522 523 REGS_ENTRYPOINT(NTDLL_alloca_probe)524 {525 ESP_reg(context) -= EAX_reg(context);526 }527 */528 529 512 /****************************************************************************** 530 513 * RtlEnlargedIntegerMultiply [NTDLL.341] -
trunk/src/NTDLL/rtlstr.cpp
r553 r557 1 /* $Id: rtlstr.cpp,v 1. 6 1999-08-18 18:44:27phaller Exp $ */1 /* $Id: rtlstr.cpp,v 1.7 1999-08-18 21:45:14 phaller Exp $ */ 2 2 3 3 /* … … 338 338 339 339 dprintf(("NTDLL: RtlUnicodeToOemN(%08xh,%08xh,%08xh,%08xh,%08xh)\n", 340 oemstr, 341 oemlen, 342 reslen, 343 unistr, 344 unilen)); 345 346 len = oemlen; 347 348 if (unilen/2 < len) 349 len = unilen/2; 350 351 x=(LPSTR)HeapAlloc(GetProcessHeap(), 352 HEAP_ZERO_MEMORY, 353 len+1); 354 355 UnicodeToAsciiN(unistr, 356 x, 357 len+1); 358 359 memcpy(oemstr, 360 x, 361 len); 362 363 if (reslen) 364 *reslen = len; 365 366 return 0; 367 } 368 369 370 /************************************************************************** 371 * RtlUnicodeToMultiByteN [NTDLL.513] 372 */ 373 DWORD WINAPI RtlUnicodeToMultiByteN(LPSTR oemstr, 374 DWORD oemlen, 375 LPDWORD reslen, 376 LPWSTR unistr, 377 DWORD unilen) 378 { 379 DWORD len; 380 LPSTR x; 381 382 dprintf(("NTDLL: RtlUnicodeToMultiByteN(%08xh,%08xh,%08xh,%08xh,%08xh)\n", 340 383 oemstr, 341 384 oemlen, -
trunk/src/NTDLL/sync.cpp
r97 r557 1 /* $Id: sync.cpp,v 1. 2 1999-06-10 17:06:47phaller Exp $ */1 /* $Id: sync.cpp,v 1.3 1999-08-18 21:45:14 phaller Exp $ */ 2 2 3 3 /* … … 147 147 } 148 148 149 /************************************************************************** 150 * NtResetEvent [NTDLL.?] 151 */ 152 NTSTATUS WIN32API NtResetEvent(HANDLE hEvent) 153 { 154 dprintf(("NTDLL: NtResetEvent(%08xh) not implemented.\n", 155 hEvent)); 156 157 return 0; 158 } 159 -
trunk/src/NTDLL/time.cpp
r555 r557 1 /* $Id: time.cpp,v 1. 4 1999-08-18 19:35:30phaller Exp $ */1 /* $Id: time.cpp,v 1.5 1999-08-18 21:45:14 phaller Exp $ */ 2 2 3 3 /* … … 269 269 TimeFields)); 270 270 } 271 272 273 /***************************************************************************** 274 * Name : NtQuerySystemTime 275 * Purpose : unknown 276 * Parameters: unknown, probably wrong 277 * Variables : 278 * Result : 279 * Remark : NTDLL.? 280 * Status : UNTESTED STUB 281 * 282 * Author : Patrick Haller [Tue, 1999/06/01 09:00] 283 *****************************************************************************/ 284 285 DWORD WIN32API NtQuerySystemTime(LPFILETIME ft) 286 { 287 dprintf(("NTDLL: NtQuerySystemTime(%08xh) not implemented.\n", 288 ft)); 289 290 return 0; 291 } 292 -
trunk/src/NTDLL/unknown.cpp
r555 r557 1 /* $Id: unknown.cpp,v 1. 3 1999-08-18 19:35:31phaller Exp $ */1 /* $Id: unknown.cpp,v 1.4 1999-08-18 21:45:14 phaller Exp $ */ 2 2 3 3 /* … … 104 104 105 105 /***************************************************************************** 106 * Name : _chkstk107 * Purpose : unknown108 * Parameters: unknown, probably wrong109 * Variables :110 * Result :111 * Remark : NTDLL.?112 * Status : UNTESTED STUB113 *114 * Author : Patrick Haller [Tue, 1999/06/01 09:00]115 *****************************************************************************/116 117 void CDECL OS2_chkstk(void)118 {119 dprintf(("NTDLL: _chkstk(%08xh,%08xh) not implemented.\n"));120 }121 122 123 /*****************************************************************************124 106 * Name : RtlLargeIntegerToChar 125 107 * Purpose : unknown … … 171 153 172 154 173 174 175 176 177 155 /***************************************************************************** 156 * Name : NtAlertThread 157 * Purpose : unknown 158 * Parameters: unknown, probably wrong 159 * Variables : 160 * Result : 161 * Remark : NTDLL.? 162 * Status : UNTESTED STUB 163 * 164 * Author : Patrick Haller [Tue, 1999/06/01 09:00] 165 *****************************************************************************/ 166 167 DWORD WIN32API NtAlertThread(DWORD x1, 168 DWORD x2) 169 { 170 dprintf(("NTDLL: NtAlertThread(%08xh,%08xh) not implemented.\n", 171 x1, 172 x2)); 173 174 return 0; 175 } 176 177 178 /***************************************************************************** 179 * Name : NtTestAlert 180 * Purpose : unknown 181 * Parameters: unknown, probably wrong 182 * Variables : 183 * Result : 184 * Remark : NTDLL.? 185 * Status : UNTESTED STUB 186 * 187 * Author : Patrick Haller [Tue, 1999/06/01 09:00] 188 *****************************************************************************/ 189 190 DWORD WIN32API NtTestAlert(DWORD x1, 191 DWORD x2) 192 { 193 dprintf(("NTDLL: NtTestAlert(%08xh,%08xh) not implemented.\n", 194 x1, 195 x2)); 196 197 return 0; 198 } 199 200 201 202 /***************************************************************************** 203 * Name : NtWriteRequestData 204 * Purpose : unknown 205 * Parameters: unknown, probably wrong 206 * Variables : 207 * Result : 208 * Remark : NTDLL.? 209 * Status : UNTESTED STUB 210 * 211 * Author : Patrick Haller [Tue, 1999/06/01 09:00] 212 *****************************************************************************/ 213 214 DWORD WIN32API NtWriteRequestData(DWORD x1, 215 DWORD x2, 216 DWORD x3, 217 DWORD x4, 218 DWORD x5) 219 { 220 dprintf(("NTDLL: NtWriteRequestData(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented.\n", 221 x1, 222 x2, 223 x3, 224 x4, 225 x5)); 226 227 return 0; 228 } 229 230 231 /***************************************************************************** 232 * Name : NtImpersonateClientOfPort 233 * Purpose : unknown 234 * Parameters: unknown, probably wrong 235 * Variables : 236 * Result : 237 * Remark : NTDLL.? 238 * Status : UNTESTED STUB 239 * 240 * Author : Patrick Haller [Tue, 1999/06/01 09:00] 241 *****************************************************************************/ 242 243 DWORD WIN32API NtImpersonateClientOfPort(DWORD x1, 244 DWORD x2, 245 DWORD x3, 246 DWORD x4) 247 { 248 dprintf(("NTDLL: NtImpersonateClientOfPort(%08xh,%08xh,%08xh,%08xh) not implemented.\n", 249 x1, 250 x2, 251 x3, 252 x4)); 253 254 return 0; 255 } 256 257 258 /***************************************************************************** 259 * Name : NtReplyWaitReplyPort 260 * Purpose : unknown 261 * Parameters: unknown, probably wrong 262 * Variables : 263 * Result : 264 * Remark : NTDLL.? 265 * Status : UNTESTED STUB 266 * 267 * Author : Patrick Haller [Tue, 1999/06/01 09:00] 268 *****************************************************************************/ 269 270 DWORD WIN32API NtReplyWaitReplyPort(DWORD x1, 271 DWORD x2, 272 DWORD x3, 273 DWORD x4) 274 { 275 dprintf(("NTDLL: NtReplyWaitReplyPort(%08xh,%08xh,%08xh,%08xh) not implemented.\n", 276 x1, 277 x2, 278 x3, 279 x4)); 280 281 return 0; 282 } 283 284 285 /***************************************************************************** 286 * Name : NtReadRequestData 287 * Purpose : unknown 288 * Parameters: unknown, probably wrong 289 * Variables : 290 * Result : 291 * Remark : NTDLL.? 292 * Status : UNTESTED STUB 293 * 294 * Author : Patrick Haller [Tue, 1999/06/01 09:00] 295 *****************************************************************************/ 296 297 DWORD WIN32API NtReadRequestData(DWORD x1, 298 DWORD x2, 299 DWORD x3, 300 DWORD x4, 301 DWORD x5) 302 { 303 dprintf(("NTDLL: NtReadRequestData(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented.\n", 304 x1, 305 x2, 306 x3, 307 x4, 308 x5)); 309 310 return 0; 311 } 312 313 314 /***************************************************************************** 315 * Name : NtRequestPort 316 * Purpose : unknown 317 * Parameters: unknown, probably wrong 318 * Variables : 319 * Result : 320 * Remark : NTDLL.? 321 * Status : UNTESTED STUB 322 * 323 * Author : Patrick Haller [Tue, 1999/06/01 09:00] 324 *****************************************************************************/ 325 326 DWORD WIN32API NtRequestPort(DWORD x1, 327 DWORD x2, 328 DWORD x3, 329 DWORD x4) 330 { 331 dprintf(("NTDLL: NtRequestPort(%08xh,%08xh,%08xh,%08xh) not implemented.\n", 332 x1, 333 x2, 334 x3, 335 x4)); 336 337 return 0; 338 } 339 340 341 /***************************************************************************** 342 * Name : NtReplyPort 343 * Purpose : unknown 344 * Parameters: unknown, probably wrong 345 * Variables : 346 * Result : 347 * Remark : NTDLL.? 348 * Status : UNTESTED STUB 349 * 350 * Author : Patrick Haller [Tue, 1999/06/01 09:00] 351 *****************************************************************************/ 352 353 DWORD WIN32API NtReplyPort(DWORD x1, 354 DWORD x2, 355 DWORD x3, 356 DWORD x4) 357 { 358 dprintf(("NTDLL: NtReplyPort(%08xh,%08xh,%08xh,%08xh) not implemented.\n", 359 x1, 360 x2, 361 x3, 362 x4)); 363 364 return 0; 365 } 366 367 368 369 /************************************************************************** 370 * NTDLL_chkstk [NTDLL.862] 371 * NTDLL_alloca_probe [NTDLL.861] 372 * Glorified "enter xxxx". 373 */ 374 void CDECL OS2_chkstk(DWORD x1) 375 { 376 dprintf(("NTDLL: _chkstk(%08xh) not implemented.\n", 377 x1)); 378 379 //ESP_reg(context) -= EAX_reg(context); 380 } 381 382 void CDECL OS2_alloca_probe(DWORD x1) 383 { 384 dprintf(("NTDLL: _alloca_probe(%08xh) not implemented.\n", 385 x1)); 386 387 //ESP_reg(context) -= EAX_reg(context); 388 } 389
Note:
See TracChangeset
for help on using the changeset viewer.