Commit Graph
6731 Commits
Author SHA1 Message Date
ReactOS Portable Systems Group 840143e28a - Fix the way NlsOemLeadByteInfo is exported.
- Fix definition of PFAST_IO_UNLOCK_ALL_BY_KEY.
- Add IO_REPARSE and IO_REMOUNT definitions.
- Add IOCTL_CDROM_DISK_TYPE definition.
- Add FlagOn, BooleanFlagOn, SetFlag and ClearFlag definitions.
- Add FILE_READ_ONLY_VOLUME, FILE_SEQUENTIAL_WRITE_ONCE, FILE_SUPPORTS_TRANSACTIONS definitions.
- Add FSRTL_FLAG_ADVANCED_HEADER definition.
- Add FSRTL_FLAG2_PURGE_WHEN_MAPPED and FSRTL_FLAG2_IS_PAGING_FILE definitions.
- Add FILE_ID_FULL_DIR_INFORMATION and FILE_ID_BOTH_DIR_INFORMATION structures.
- Add FSRTL_FCB_HEADER_V0 and FSRTL_FCB_HEADER_V1 definitions.
- Add FSRTL_COMPARISION_RESULT enumeration.
- Add backwards compatibility support for non-AVL tree routines.
- Add RtlInsertElementGenericTableAvl, RtlDeleteElementGenericTableAvl, RtlLookupElementGenericTableAvl, RtlEnumerateGenericTableWithoutSplayingAvl prototypes.
- Add FsRtlSetupAdvancedHeader macro.
- Add FsRtlIsFatDbcsLegal prototype.
- Add FsRtlTeardownPerStreamContexts prototype.
- Add RtlFreeOemString, RtlOemStringToCountedUnicodeString, RtlUnicodeStringToCountedOemString, RtlOemToUnicodeN prototypes.
- Fix GenericTable prototypes in rtlfuncs.h
- It seems the ntoskrnl_i386.def exports file is totally incorrect with respect to mingw -- most FsRtl functions are not properly exported. We fixed the ones we need, someone needs to go fix this entire file.
- Add memcmp to the NTOS exports -- we're not entirely sure how you were even expecting 3rd party drivers to load in React?
- Fix FastFat's "VfatFastIoUnlockAllByKey" prototype to match the fixed up PFAST_IO_UNLOCK_ALL_BY_KEY definition.
- Clean-build-tested on i386.


svn path=/trunk/; revision=34611
2008-07-20 19:19:02 +00:00
Jeffrey Morlan d9c376b18d Fix memory leak in vfwprintf: Don't change 'mem' pointer before freeing it.
svn path=/trunk/; revision=34609
2008-07-20 16:48:24 +00:00
ReactOS Portable Systems Group 49de00587a - Implement DebugService2, but don't make it do anything yet.
- Add ATTEMPTED_SWITCH_FROM_DPC bugcheck code.


svn path=/trunk/; revision=34585
2008-07-19 06:53:36 +00:00
Timo Kreuzer 8bbca850f6 RtlpCreateCriticalSectionSem: use InterlockedCompareExchangePointer instead of InterlockedCompareExchange for a handle
svn path=/trunk/; revision=34581
2008-07-18 23:47:33 +00:00
Stefan Ginsberg 90f3efacc5 - Patch from Samuel "encoded" Serapion (samdwise51 at gmail dot com)
- Use "size_t" instead of "unsigned int" where appropriate

svn path=/trunk/; revision=34570
2008-07-17 22:25:03 +00:00
Colin Finck 248d39652c - Remove 2 wrong versions of wctomb and 2 wrong versions of wcstombs
- Implement new versions of wctomb and wcstombs, which consider the language set by setlocale() and work according to all behaviours I could find when testing under WinXP SP2.
  This was tested with an own test suite (which I can commit as well if anyone is interested)
- Do a real conversion to MultiByte characters using wctomb in fputwc and vfwprintf. (verified under WinXP SP2)
- Set 'MSVCRT___lc_codepage' and 'MSVCRT___lc_collate_cp' to 1252 by default ("C" locale) and not the current active codepage (which might not work with i.e. Eastern codepages)
- Add a new check for 'MultiByteCount < 0' to WideCharToMultiByte (also verified under WinXP SP2)
- Change MB_LEN_MAX back to 2, the value 5 only applies to newer CRT's (msvcrt only handles single-byte and double-byte characters)
- Don't compile the Wine-imported 'wcscpy_s', it isn't available in msvcrt

svn path=/trunk/; revision=34557
2008-07-16 21:40:09 +00:00
Aleksey Bragin 39f888f2b3 Yuriy Sidorov <[email protected]>
- Speed-up user mode exception handling by calling RtlDispatchException() first if there is no active user mode debugger. This avoids switches to kernel mode if exception can be handled by SEH.
See issue #3485 for more details.

svn path=/trunk/; revision=34521
2008-07-15 13:32:18 +00:00
ReactOS Portable Systems Group f0ba3800a4 - Write a DebugService routine for ARM in the RTL library and get rid of the hack in ntoskrnl.
- Just like on x86, this routine generates a breakpoint -- on ARM this is done with BKPT followed by an index.
- We use the BREAKPOINT_PRINT index just like on x86.
- This generates a prefetch abort -- so now we implement the prefetch abort handler. Thanks to the trap macros, this was 10 lines of code.
- This calls into the real C handler, which is now unimplemented and hangs the whole system, so we've regressed way back (on purpose).


svn path=/trunk/; revision=34474
2008-07-13 22:40:36 +00:00
KJK::Hyperion 70a54a9995 modified dll/win32/kernel32/misc/lang.c
modified   dll/win32/kernel32/kernel32.def
   Stubbed out GetLocaleInfoEx

modified   include/psdk/winnls.h
   Added some Vista and later NLS defines to the SDK

modified   dll/nls/idndl/idndl.rbuild
   Correctly set a NULL entry point for idndl.dll

modified   dll/nls/idndl_redist/idndl_redist.rbuild
modified   dll/nls/normaliz_redist/normaliz_redist.rbuild
   Give unique names to the redistributable versions of idndl.dll and normaliz.dll

Everything else
   Scattered NLS modules in the appropriate locations, as per standard source tree layout

svn path=/trunk/; revision=34463
2008-07-13 17:54:53 +00:00
Aleksey Bragin e00d31206e Yuriy Sidorov <[email protected]>
- Implement RtlSetUserValueHeap, RtlSetUserFlagsHeap, RtlGetUserInfoHeap functions. It is quick implementation and it works.
- It fixes "Out of memory" error in all InnoSetup based installations. A lot of software can be at least installed in ReactOS now.
- Also it fixes Delphi applications which use TMemoryStream class.
See issue #3464 for more details.

svn path=/trunk/; revision=34404
2008-07-10 09:46:25 +00:00
KJK::Hyperion 0461306bc8 modified lib/sdk/crt/crt.rbuild
modified   lib/sdk/crt/libcntpr.rbuild
   Add qsort and div to crt and libcntpr

modified   lib/sdk/crt/include/internal/tls.h
modified   lib/sdk/crt/stdlib/qsort.c
   Fixed ineptly-ported DJGPP qsort to not use TLS

svn path=/trunk/; revision=34396
2008-07-09 18:44:46 +00:00
Aleksey Bragin 876316be73 - Add CLSID_InProcFreeMarshaler
svn path=/trunk/; revision=34382
2008-07-09 08:02:08 +00:00
Aleksey Bragin be356d11cd Yuriy Sidorov <[email protected]>
- Always call ZwRaiseException in user mode and RtlDispatchException in kernel mode.
- If RtlDispatchException failed call ZwRaiseException in kernel mode. Otherwise unhandled RtlRaiseException() call in kernel mode simply ignored (do nothing)!
- Call RtlRaiseStatus in RtlRaiseException, if something went wrong.
See issue #3434 for more details.

svn path=/trunk/; revision=34377
2008-07-08 21:17:47 +00:00
Aleksey Bragin 8249e5ced9 - Add IActiveScriptSiteDebug32 IID.
svn path=/trunk/; revision=34365
2008-07-08 07:45:31 +00:00
Jeffrey Morlan f2d4e4394e Extract days-since-epoch calculation code from RtlTimeToTimeFields into own function, optimize a bit, and use it in RtlTimeFieldsToTime instead of doing a 400 iteration loop.
svn path=/trunk/; revision=34352
2008-07-07 10:23:41 +00:00
Aleksey Bragin c2eaa10731 Peter Oberndorfer <[email protected]>
- Implement %p for scanf.

svn path=/trunk/; revision=34293
2008-07-04 12:39:43 +00:00
Colin Finck 57e8b1c4e5 Remove the strsafe library, it was imported from a dubious source, which is incompatible with the LGPL
svn path=/trunk/; revision=34290
2008-07-04 08:24:37 +00:00
Aleksey Bragin 4b6c66431e - Fix double linking of snprintf (_snprintf should be used in CRT).
- Add a #undef guard for snprintf in consistency with how it previously was implemented in CRT.

svn path=/trunk/; revision=34282
2008-07-03 12:07:12 +00:00
Colin Finck d1a42af5b7 Simplify the code for fputwc, when the file is opened in text mode.
I verified this behaviour with a test app under Windows XP SP2. This is also the code used by the fputwc function of our previous msvcrt.

svn path=/trunk/; revision=34266
2008-07-02 16:07:01 +00:00
Aleksey Bragin fc3136e93d - Prevent crashes when heapPtr is NULL, also fix broken heap magic output. Thanks Mephisto!
svn path=/trunk/; revision=34256
2008-07-02 10:00:12 +00:00
Jeffrey Morlan d4687baa63 Get explorer working again, by making wmain explicitly call the C++ initialization function __main. gcc only adds the call automatically in a function called main.
svn path=/trunk/; revision=34222
2008-06-30 16:18:46 +00:00
Hervé Poussineau 7689eddcc2 Link C++ programs against target libraries, not host ones
Remove most of <linkerflag> usage

svn path=/trunk/; revision=34187
2008-06-29 12:47:22 +00:00
Aleksey Bragin 0bb26e2025 - Revert 22081 by Magnus Olsen:
"fixing two hiden bug in reactos, null termante the string right at end, code tested in vs, but it seam no affact on wine test mscvrt printf test. What hell is the snprintf  function call to ??".
Instead of fixing "hidden bugs", it introduced a real very well hidden bug, which was overwriting the target buffer and thus corrupting everything starting from the heap, and ending with pools. It's possible to install and run OO2 Writer now.
See issue #3311 for more details.

svn path=/trunk/; revision=34180
2008-06-29 09:39:06 +00:00
ReactOS Portable Systems Group c50bcc2c12 - Implement beginnings of Ramdisk Port Driver. Planning compatibility with ISO, SDI and WIM files and full Windows support.
- New license for our code.


svn path=/trunk/; revision=34170
2008-06-29 02:58:05 +00:00
ReactOS Portable Systems Group 7675e2b8be - Implement VidResetDisplay in BootVid-arm.
- Implement KiSaveProcessorControlState and make the appropriate changes to KPROCESSOR_STATE and KSPECIAL_REGISTERS on ARM to support this, as well as moving the ARM Register definitions from ntos to NDK.
- Implement RtlCaptureContext.
- With these changes, BSODs now work, but because of missing palette code, they are actually R(Red)SODs, which is awesome.
- Remove debug prints from system call code -- this ends up somehow corrupting the return values *sigh*. More work to be done there, defintely. We have now regressed but we have an RSOD.


svn path=/trunk/; revision=34120
2008-06-27 03:06:11 +00:00
Johannes Anderwald eb0b862540 - check for a valid file descriptor
svn path=/trunk/; revision=34070
2008-06-24 12:42:22 +00:00
ReactOS Portable Systems Group 8df8940a6e - The CRT sync by "fireball" is incorrect and results in a broken ntos kernel. Although it may work on i386 builds, it results in a corrupted kernel anyways. On ARM, we try to hackfix around it by not including some routines that should not be in the kernel but were being imported due to the broken crt changes.
- We do not attemp to build world anymore. We have handwritten a new ARM rbuild file that only builds what we need for our current ARM work.
- HAL and FreeLDR do not seem to have an "installpath"... why not? Added one at least for our ARM stuff, so that "make install" can drop the binaries.
- Fixed some ARM DDK macro inconsistencies, allow more drivers to build.
- It is now possible to use "make install -k" to drop a completely working ARM build onto an image due to all these changes.

svn path=/trunk/; revision=34055
2008-06-23 03:57:50 +00:00
Colin Finck 955672158d Build host_wcsfuncs as a host static library, not a target static library
Fixes build for all non-Win32 hosts

svn path=/trunk/; revision=34051
2008-06-22 21:41:25 +00:00
Colin Finck 8d9b815544 Add a library "host_wcsfuncs" with implementations for UTF-16 string functions needed for some host tools
Instead of copying those functions into every host tool, which needs it (as we did previously), we can now implement them all in this library and link the host tools to it.
If USE_HOST_WCSFUNCS is not defined, the "wcsfuncs.h" file will define them to the CRT functions (so this library does not create overhead, when the code is built for the target platform)

See issue #3285 for more details.

svn path=/trunk/; revision=34050
2008-06-22 20:58:56 +00:00
Aleksey Bragin e1419be7cd SVN Maintenance: set eol-style:native for lib/sdk/crt.
svn path=/trunk/; revision=34046
2008-06-22 12:08:15 +00:00
Aleksey Bragin 3ee18cdb67 - Provide a real fix for fwprintf and fputwc in case the output stream is in TEXT mode by doing a widechar to multibyte conversion.
- This should be submitted to Wine to close their bug.
See issue #3353 for more details.

svn path=/trunk/; revision=34042
2008-06-21 15:58:00 +00:00
Aleksey Bragin cdd5ae5641 - vsn[w]printf -> _vsn[w]printf.
svn path=/trunk/; revision=34038
2008-06-21 10:00:59 +00:00
Aleksey Bragin a04bcca3a3 Jeffrey Morlan <[email protected]>
- Wrap libwine's memory allocations, avoiding msvcrt imports in kernel32
- The cause is that libwine/debug.c uses functions (malloc, free, realloc, _strdup) which are only present in a complete CRT, creating imports from msvcrt.dll in any module that uses it, including kernel32.dll. Since kernel32 is currently importing from msvcrt, kernel32 gets DLL_PROCESS_DETACHed first, creating a problem for msvcrt's DLL_PROCESS_DETACH which, as a result of a recent bugfix, now uses kernel32 functions that depend on the resources that were freed.
- Fix this by implementing those 4 functions as wrappers around the Local* APIs, in order to avoid the problematic imports.
See issue #3373 for more details.

svn path=/trunk/; revision=34037
2008-06-20 19:00:37 +00:00
Aleksey Bragin a00a86834c - Remove all string msvcrt->ntdll forwards: let's be consistent, either forward everything, or forward only something. I left assembly math functions though, since they are standalone and 100% identical.
- As a result, fixed a couple of incorrect functions linkage.
- Fixed a name of vsnprintf, so really msvcrt's version is used now, not RTL's one.

svn path=/trunk/; revision=34026
2008-06-19 13:08:46 +00:00
Aleksey Bragin 57da8d9f18 - Formatting cleanup for the previously patched functions.
svn path=/trunk/; revision=33946
2008-06-12 09:40:33 +00:00
Aleksey Bragin 3da8a2640d Oriol Pique <[email protected]>
- Minor patch to HEAP_GetPtr to include magic value in debug output.
- Fixing the parameters checking in HEAP_InitSubHeap (it is currently not used - put between #if 0 / #endif ).
- Correcting HEAP_FindFreeBlock which was logging error message as warning (while still returning NULL to caller) by changing severity of logged message.
- Implementing RtlEnumProcessHeaps (previously stubbed out).
- Fixing sanity checks in and implementation of RtlGetProcessHeaps (previously
the function was not checking for the counter value, and also was not assigning anything to the returned value; now this seems to be corrected.
- Fixing RtlValidateProcessHeaps implementation (the function was stubbed out because (most probably, I wasn't able to find a bug mentioning this) it was previously using a global lock for all heaps (which probably could cause some problems in the kernel), now it only locks heaps belonging to the given process - and this is the correct behaviour.

Aleksey Bragin <[email protected]>
- Fix typo in ntuser.c, and low severity of debug message.
See issue #2964 for more details.

svn path=/trunk/; revision=33945
2008-06-12 09:35:24 +00:00
ReactOS Portable Systems Group e6d9765059 - Fix build on ARM:
- _iob is already defined as a dll_import
  - _rotl intrinsic is now implemented (should use rol instruction, but not sure on the syntax!)
  - Add a stub psctx.h for ARM
  - Added InterlockedEXchangePointers
  - Fix uninitialized variable warning in ex/resource.c
- Start to implement interrupt handling:
  - We now have a rudimentary interrupt handler that takes care of software interrupts
  - We now have a rudimentary DPC handler which takes care of switching to the next thread, if any
  - We now setup the HAL Interrupt Source -> IRQL Table (The IRQLMask Table).
  - Implemented HalGetInterruptSource, which allows us to get the interrupt # that cause the IRQ.
    Note: this wasn't needed on Alpha/PPC/MIPS NT ports, because that information is stored on the CPU,
    and the kernel could read it -- we must abstract it through the HAL.
  - Add the OldIrql to the TRAP_FRAME, we don't use it yet.
- We are now ready to context switch to the Phase 1 thread.

svn path=/trunk/; revision=33933
2008-06-11 16:48:07 +00:00
Aleksey Bragin 7b57917c46 - Completely rewrite most of stdio functions by merging Wine's msvcrt code adapted for ReactOS.
- Leave and refactor existing underlying linux-code based sprintf implementation into lnx_ prefixed functions.
- Misc source code and headers cleanup.
- Fixes bugs 2910, 2803.
See issue #2803 for more details.

svn path=/trunk/; revision=33927
2008-06-11 08:54:46 +00:00
Aleksey Bragin d409591250 - Update RtlIsTextUnicode (fixes some ntdll rtlstr winetests).
svn path=/trunk/; revision=33868
2008-06-06 21:33:43 +00:00
Aleksey Bragin 45ebe0ccc2 - Update many parts of CRT, and misc cleanup.
- Largely based on the patch by Samuel Serapion.
- Include file.c from Wine's msvcrt, but exclude its contents from the build process for now.

svn path=/trunk/; revision=33866
2008-06-06 17:49:24 +00:00
Aleksey Bragin 3f2bc58da5 - Move scanf.c into strings, it belongs there.
- Move thread.c to process, and remove outdated/duplicated copy.
- Sync threadx with Wine.
- Update README.WINE accordingly.

svn path=/trunk/; revision=33865
2008-06-06 12:20:28 +00:00
Aleksey Bragin bcd6451e5b - libcntpr does not need console/file versions of scanf.
svn path=/trunk/; revision=33854
2008-06-04 10:52:54 +00:00
Aleksey Bragin 170743424f - Misc ctype wine sync.
svn path=/trunk/; revision=33851
2008-06-04 09:45:12 +00:00
Aleksey Bragin 683a6c4181 - Remove duplicated sscanf wrapper.
- Sync scanf.c / scanf.h with Wine.

svn path=/trunk/; revision=33850
2008-06-04 09:10:40 +00:00
Aleksey Bragin 204acf76b0 Stefan Ginsberg <[email protected]>
- Remove ExTryToAcquireResourceExclusiveLite from NDK since it's not exported by NT kernel.
- Add ObSetSecurityObjectByPointer, RtlInitAnsiStringEx (and implement it, rather straightforward) to NDK.
- Uncomment exports in ntoskrnl_i386.def which are already implemented.
- Add KeInvalidateAllCaches to ARM's stubs.

svn path=/trunk/; revision=33825
2008-06-02 10:21:49 +00:00
Colin Finck d7e28db400 Sorry, forgot this file
svn path=/trunk/; revision=33748
2008-05-28 21:37:05 +00:00
Colin Finck 1e95911991 Samuel Serapión (samdwise51 AT gmail DOT com):
- Sync parts of msvcrt with Wine (more will follow)
  This makes us passing a lot more msvcrt Wine tests (like all heap tests)

svn path=/trunk/; revision=33747
2008-05-28 21:08:23 +00:00
Aleksey Bragin 6fdb1140a3 Daniel Zimmermann <[email protected]>
- Sync setlocale from Wine.
See issue #3254 for more details.

svn path=/trunk/; revision=33724
2008-05-27 08:11:06 +00:00
Hervé Poussineau b18f57e3fc Disable precompiled headers for files which are in more than one module
(Precompiled header name have a fixed name, but modules may have different compile options)

svn path=/trunk/; revision=33626
2008-05-21 17:57:24 +00:00
Hervé Poussineau 06094f3e4d Fix some .rbuild file problems
See issue #2710 for more details.

svn path=/trunk/; revision=33366
2008-05-08 16:01:30 +00:00