- reactos.diff was pushed upstream, so it's not needed anymore.
- Add a missing section.
- Include sect_attribs.h into tlssup.c
svn path=/trunk/; revision=48130
Move #include <precomp.h> to the top, as precompiled headers must be the first thing that is included or it won't take advantage of being precompiled
svn path=/trunk/; revision=48082
Added a library containing GUIDs for PnP notifications
[BUGCODES]
Added missing bugcheck code for PnP manager
[NTOSKRNL]
- Implemented FsRtlNotifyVolumeEvent()
- Implemented IoReportTargetDeviceChange(), IoReportTargetDeviceChangeAsynchronous()
- Craplemented PpSetCustomTargetEvent() to match our actual PnP manager notifications system. This is to be rewritten
- Added support for custom notifications in IopNotifyPlugPlayNotification()
- Added use of FsRtlNotifyVolumeEvent() in RawUserFsCtrl() to notify volume state changes
- Added use of IoEvent library to ntoskrnl
[FASTFAT]
- Added use of FsRtlNotifyVolumeEvent() when successfully mounting a volume
Finally, purpose of that patch is to implement volumes events notifications. Behaviour and implementation is correct till PpSetCustomTargetEvent(). The PnP notifications manager should be rewritten to match Microsoft's one. Furthermore, it appears that in Windows, those notifications are asynchronous.
svn path=/trunk/; revision=47837
- CRT update part 1/x
- sync C++ / exception related CRT code with wine
- add support for non-underscored symbols
- Patch by Samuel Serapion, slightly modified by me
svn path=/trunk/; revision=47770
- Get rid of the hard-coded sector size as large sector (4KB) harddisks are already available.
- When a partition is formatted, choose the FAT type according to the partition type. The size of the partition does not matter here as it is up to the caller to set the right partition type according to its size.
svn path=/trunk/; revision=47765
- Handle socket operations that can be completed immediately before terminating the socket to avoid losing data sitting in the receive buffer
svn path=/trunk/; revision=47704
- Fix a overlooked change needed due to mbstowcs fix. Use the number of WCHARs vice number of bytes to calculate end of xmlbuf.
svn path=/trunk/; revision=47613
- len returned from mbstowcs is the required size of the destination string, so only allocate the needed size.
- When doing the actual conversion pass in the size of the ansi string not the needed size of destination.
- These changes were missed in 47527.
svn path=/trunk/; revision=47529
- mbstowcs: Fix incorrect size passed as the second parameter for call to RtlMultiByteToUnicodeN.
Fixes loading assemblies when manifest is in a manifest file due to parsing failure.
svn path=/trunk/; revision=47527
Remove a ";" after an if (), that makes no sense and caused GetNt4SoundDeviceCapabilities to always return without doing anything.
svn path=/trunk/; revision=47494
Improve the reactos-hack, by changing the ";" after an "if (...)" to "(void)0;" to tell the compiler that we intentionally do nothing in the if body.
svn path=/trunk/; revision=47493
- add clang compatible asm version of ldexp and make the code more readable
- constify strndup parameter to match standard
- fix broken pointer comparison in signal()
svn path=/trunk/; revision=47479
- Implement BreakOnTermination case for NtQueryInformationProcess and NtSetInformationProcess.
- Implement RtlSetProcessIsCritical.
svn path=/trunk/; revision=47423
- Return STATUS_INVALID_ADDRESS if the caller tries to get a non-local address
- Return STATUS_ADDRESS_ALREADY_EXISTS if the caller uses an address that is in use
[MSAFD]
- Translate STATUS_ADDRESS_ALREADY_EXISTS -> WSAEADDRINUSE, STATUS_LOCAL_DISCONNECT -> WSAECONNABORTED, and STATUS_REMOTE_DISCONNECT -> WSAECONNRESET
[IP]
- Translate OSK_EADDRINUSE -> STATUS_ADDRESS_ALREADY_EXISTS, OSK_ECONNABORTED -> STATUS_LOCAL_DISCONNECT, and OSK_ECONNRESET -> STATUS_REMOTE_DISCONNECT
- Fixes waiting for binding during ws2_32 sock winetest
svn path=/trunk/; revision=47379
- Cleanup old files
- Remove setjmplongjmp.s
- Correction to last commit message: the conversion patch was already applied
svn path=/trunk/; revision=47361
Patch by Jerome Gardou: Update freetype to 2.3.9
The FT_MulFix patch is not neccessary anymore, the 1BPP -> 8BPP conversion patch will be applied again right after this.
See issue #4537 for more details.
svn path=/trunk/; revision=47360
- Make cmlib, newinflib and mkhive use the Wine unicode lib instead of the host_wcsfuncs lib.
- Only the header file include/host/wcsfuncs.h is still used to map str*W functions to wcs* functions in WIN32 builds.
- Remove obsolete rtl functions.
- Make mkhive use the newinflib instead of inflib.
ATTENTION: This might break the build bot although it has been tested on Windows and Linux!!!
svn path=/trunk/; revision=47076
- Change Unicode string functions from wcs* to str*W because glibc (Linux build) provides the wcs* functions but they use a wchar_t size of 32 bits instead of the required 16 bits.
- Add a str*W to wcs* wrapper (infrosrtl.c) in order to use the wcs* function for the WIN32 build.
- Add required str*W functions to the host library.
ATTENTION: This might break the build bot although it has been tested on Windows and Linux!!!
svn path=/trunk/; revision=47071
- Fix buffer size calculation for the parser.
- Do not try to execute an empty registry instruction
Patches by Roel Messiant.
- Stop the parser at the first NULL character.
Patch by me.
svn path=/trunk/; revision=47053
Add a UNICODE-aware version of the inflib library.
It is not used by other components yet but usetup and mkhive will use it in the future.
ATTENTION: This commit might break the build bot because I could not test a build on a Linux system.
svn path=/trunk/; revision=47016
- Flusher lock fixes: wrong kind of lock,total mess (and the wrong kind of lock). Properly fixed throughout cmapi.c, but still missing in many other places.
- Add support for detecting loading of an already loaded hive.
- Start adding calls to CmpReportNotify to support registry callbacks.
- Do work needed to flush notifications for a deleted node (but CmpFlushNotify not yet implemented).
- Add support for adding each newly loaded hive to the HiveList key in the registry (but CmpAddHiveToFileList not yet implemented).
- Add some ViewLock acquire/releases where needed.
- Load the key in a faster way (Ob vs Zw)
- Add checks everywhere for HvMarkCellDirty success. In future (when log/backup file is enabled), it can return FALSE (e.g. when we are out of space).
- Change logic in CmpDoFlushAll to only flush a hive if it won't shrink (in the future, flushing may lead to hive shrinkage for efficiency).
- Add SEH2 protection to all CmApis that may deal with user-mode data.
- Add HvTrackCellRef/HvReleaseCellRef for tracking cell references in scenarios where we might need many GetCell/ReleaseCell calls. For now stubbed to only work with up to 4 static references.
- Properly unlock/free in some failure paths in some of the CM APIs.
- Add some missing HvReleaseCell in paths where it was missing.
- Try to fix hack in enumerate key.
- Fix wrong usage of KeQuerySystemTime. It was called twice to save it in 2 different places. Instead, there should be only one call, and then duplicate the value across.
- Fix logic in CmpSetValueExistingData/Key.
Tested with winetests and .NET framework 1.1 installation which fully completes.
svn path=/trunk/; revision=46702
44467, 44468, 44470, 44471, 46524
[OLDNAMES]
Update moldname-msvcrt.def
Add a proper oldnames lib, instead of implicitly including it with mingw.
46526
[FTP/DHCP]
- remove the oldnames hack, as we now have a proper oldnames lib (included in mingw_common)
- protect struct timezone from redefinition
svn path=/trunk/; revision=46592
46483 (tkreuzer)
[CRT]
- add _wctype table, it's not identical to _ctype as assumed before
- point _pwctype to _wctype instead of _ctype
- implement __pctype_func and __pwctype_func
46502 (tkreuzer)
[MSVCRT]
- enable exports for __pctype_func, __pwctype_func, _wctype
svn path=/trunk/; revision=46504
- add _wctype table, it's not identical to _ctype as assumed before
- point _pwctype to _wctype instead of _ctype
- implement __pctype_func and __pwctype_func
svn path=/branches/ros-amd64-bringup/; revision=46483
- define _CRTBLD
- rename float_t/double_t/long_double_t to float_s/double_s/long_double_s to avoid name conflicts
svn path=/branches/ros-amd64-bringup/; revision=46478
Since we have switched to non-prefixed symbols, we need to deal with 2 kinds of symbols that the compiler doesn't handle for us. 1.) __image_base__ is still defined the same way by ld, but since gcc doesn't give us an underscore anymore, we need to specify it on our own. 2.) __MINGW_IMP_SYMBOL, which is a hacky way of declaring a symbol dllimport, by prefixing it with __imp_ also needs special treatment. Fix these issues by adding appropriate macros to _mingw.h and removing the broken and duplicate definitions from multiple .c files.
svn path=/branches/ros-amd64-bringup/; revision=46460
Import x87 asm version of pow() from glibc. Replaces our broken implementation, fixing a bunch of winetests (oleaut32 vartest)
svn path=/trunk/; revision=46283
When adding new glyph cache entry convert the glyph bitmap with proper alignment to comply with the new code in EngCreateBitmap and remove the corresponding hack from SURFMEM_bCreateDib.
[FREETYPE]
When doing 1BPP -> 8BPP conversion set all 8 bits not only the LSB. (Freetype devs were notified of this issue)
See issue #5244 for more details.
svn path=/trunk/; revision=46246
Reintegrate header-work branch. Thanks to hours of boring work on the ddk headers (Most of it done by Amine Khaldi), we have now a decent set, which is still incomplete but already relatively close to latest WDK. A clean rebuild is recommended.
svn path=/trunk/; revision=46155
- Fix Samuel's mistake of assuming that xmlstrs are zero-terminated by adding a xmlstr2unicode function, which returns a UNICODE_STRING representation of xmlstr suitable for printing. No debug log garbage now (disadvantage: more code changes compared to the original code).
svn path=/trunk/; revision=45845
- Whilst this is non-standard and potentially makes the code less portable, it's supported by both gcc and msvc and should bringg increased compilation speed due to its optimized behaviour (doesn't need to invoke the preprocessor)
- Patch by Amine Khaldi [amine.khaldi@reactos.org]
svn path=/trunk/; revision=45685
- Replace mixer / wave support code by mmixer library
[MMIXER]
- Compare device name from 2 character onwards as there are difference in paths in user mode / kernel mode
- Invoke create pin callback if the caller provides it
[WDMAUD.DRV]
- Apply changes from mmixer library
-- Tested in Vbox with Winamp / ReactOS mplay32
svn path=/trunk/; revision=45579
- Set the minimum GCC version to 4.4.0 and minimum Binutils version to 20091016.
- Remove the -fno-unit-at-a-time hacks.
- Remove dgorbachev's temporary hacks for user-mode C++ applications.
- Merge ntoskrnl's "precomp.h" and "ntoskrnl.h" again, the PCH issues have been fixed.
- Use our "ofmt_stub.a" to be compatible with newer MinGW Runtime versions.
- Use LD's new -exclude-all-symbols option to not auto-export all symbols in case no DEF file or __declspec(dllexport) was specified.
We used to patch our LD version to work around this problem.
- Use LD's --start-group and --end-group parameters to allow a more flexible linking order.
- Use GCC's -fno-set-stack-executable for amd64 and i386 targets to disable adding the __enable_execute_stack code.
- Change the makefile's name to "makefile-$(ARCH).auto" for all architectures.
- Remove some -Wno-error flags.
See issue #4810 for more details.
svn path=/trunk/; revision=45535
- Hackfix corruption of audio buffer list which made the playback thread spin forever on an already played buffer.
- Tested with Winamp / VLC / mplay32 with Vbox 3.1.2
svn path=/trunk/; revision=45360
Implement sin() in C. Code is actually 99% identical to cos.
Note: We are using even exponents for sin, too, as this results in higher precision than using uneven exponents.
svn path=/branches/ros-amd64-bringup/; revision=45294
- implement generic C version of cos(). On amd64 machines it will compile into very optimized SSE2 code. No need to use assembly.
svn path=/branches/ros-amd64-bringup/; revision=45290
Although the idea of using mingw-w64's routines is good, we can't because it's using x87. We need SSE2.
svn path=/branches/ros-amd64-bringup/; revision=45255
New noteworthy improvements include (in addition to the other improvements made in the commits that were reverted in trunk):
- Support for sending/receiving packets > 16KB in size
- Samba-tng works
- Tracert works
- Major speed and stability improvements (especially for TCP connections)
- Use ExAllocatePoolWithTag/ExFreePoolWithTag instead of memtrack
svn path=/trunk/; revision=45172
Patch by Jose Catena:
allmul produced wrong results when the higher 32 bits of any of the 64 bit operands are not zero. As the comment correctly said the definition of param locations must change
since esp was altered, but the definitions were not actually changed
See issue #5121 for more details.
svn path=/trunk/; revision=45088
__wine_push_frame and __wine_pop_frame are only used in x86 specific code in cppexcept.c. Move them there instead of trying to implement them for other architectures.
svn path=/branches/ros-amd64-bringup/; revision=45053
Patch by Stefan Ginsberg:
Don't use double in rtl's sprintf / swprintf, use double_t union instead. Minor modifications by me.
svn path=/branches/ros-amd64-bringup/; revision=44968
- Implement registering hardware events (volume / mute control changes)
- Fix a bug when querying a source mixer line. The wrong line id was passed which caused the call to fail.
svn path=/trunk/; revision=44872
- Lsalib: Combine request and reply data of the register request into a connection info struct.
My test application can now connect to the LsaAuthenticationPort.
svn path=/trunk/; revision=44793
- Fix broken check in MMixerAddMixerControl, which only copied the node name on failure
- Add initialization of LineControlsExtraDat LIST_ENTRY type, which resulted in a crash
svn path=/trunk/; revision=44659
- Open all filters before starting enumeration. The advantage is that some filters are not opened twice
- Query the Mixer Name from Registry by opening the device interface registry key and querying for the value of FriendlyName. If it cannot be found, try to find the key under the sub key 'Device Parameters'
svn path=/trunk/; revision=44646
- Add more error checks
- Fix a bug MMixerGetControlsFromPinByConnectionIndex which pre-early stopped the enumeration of mixer controls
- Only add guids which can be later be resolved to mixer control
- Check if no a topology connection has no links connected
svn path=/trunk/; revision=44559
-Black list gcc below 4.4.2
-Black list ld below 20091119.
-99.99% Based on bug 4810
-Speeds up my build by 3 minutes
svn path=/branches/ros-amd64-bringup/; revision=44550
- Add mixerline for audio filters which expose their topology on the same filter such as usb audio cards
- Retrieve pin name of the target pin in order to display the correct name for the destination audio mixer line
svn path=/trunk/; revision=44538
- Store MixerList in MixerContext member
- Fix a lot of bugs
- MMixer is now able to enumerate mixers and their associated controls
svn path=/trunk/; revision=44522
Rewrite the rtl bitmap implementation.
The old one was a little .... suboptimal. The new one should outperform the old one by several orders of magnitude, especially RtlFindClearBits that was literally searching bit by bit.
svn path=/trunk/; revision=44464
- Update status to error mapping tables and functions to current Wine sources
- Needed to for ERROR_TIMEOUT, ERROR_SXS_CANT_GEN_ACTCTX, ERROR_MR_MID_NOT_FOUND and several others
- Remove RtlNtStatusToPsxErrno - nobody will miss it
- Fixes ~20 kernel32 actctx winetests
svn path=/trunk/; revision=44410
- Remove the "kernel32" library reference in all .rbuild files of user-mode modules, because this one is already added by "mingw_common". Also fix the indentation in some files.
svn path=/trunk/; revision=44368
[lib/rtl]
- Import Rtlxx and related functions for Activation Context Support from WINE.
- Implement RtlAllocateActivationContextStack.
- Modify get_manifest_in_manifest_file function to use FileStandardInformation vice FileEndOfFileInformation (currently unsupported) in call to NtQueryInformationFile.
- Add structs RTL_ACTIVATION_CONTEXT_STACK_FRAME and ACTIVATION_CONTEXT_STACK from WINE.
- Add ActivationContextStackPointer to TEB.
- Define QUERY_ACTCTX_FLAG_NO_ADDREF.Will become active with changes to ntdll loader in Part 2.
svn path=/trunk/; revision=44359
- TSVN choked repeatedly when attempting to merge ~9000 revs into the branch (tried 3 times on 2 different computers)
- If someone wants to delete aicom-network-fixes, they are welcome to
- Lesson learned: Letting a branch get thousands of revs out of date is a horrible idea
svn path=/branches/aicom-network-branch/; revision=44353
- Logic change of r37554 is correct, RtlTimeFieldsToTime doesn't normalize invalid input values - remove these codes
- Related to bug #4917, part 1
svn path=/trunk/; revision=44344
- Fix buffer calculation in argvtoW, missed unicode character size
- Fixes another crash during GIMP startup, now GIMP starts (bug #3503, part 2)
- Fix same problem in valisttoA/W
svn path=/trunk/; revision=44307
- use these for ExpInterlocked*
- remove a bunch of Interlocked* functions from amd64 kernel exports
svn path=/branches/ros-amd64-bringup/; revision=44289
- Signal the connection directly from TCPSocketState
- Remove some unused code
- Queue completion requests on a separate list so we don't have to keep locking and unlocking while completing
- Add better locking to tcpip (not the lib)
- Remove some unused variables
- Don't hold the cancel spin lock longer than necessary
- Check that we successfully got the device description
svn path=/trunk/; revision=44250
- Use OskitTCPGetSocketError to get the actual socket error which occurred when get SEL_FIN
- Add more cases to TCPTranslateError
svn path=/trunk/; revision=44199
- Remove the now unused recursive mutex code
- Don't clear the SS_ISCONNECTING flag when soconnect returns EINPROGRESS because it causes a crash during soreceive
- Lock CONNECTION_ENDPOINT and ADDRESS_FILE structs better
- Remove incorrect IoMarkIrpPending calls
- Remove useless ASSERT_LOCKED
- Don't destroy so_connection when we close a connection
- Remove useless FileFindConnectionByContext
- Remove SignalledConnectionsList and SignalledConnectionsLock and simply loop through ConnectionEndpointList for signalled connections
- Add connections to ConnectionEndpointList in TCPAllocateConnectionEndpoint instead of FileOpenConnection so we don't miss listeners
- Remove connections from ConnectionEndpointList in TCPFreeConnectionEndpoint instead of FileCloseConnection so we don't miss listeners
- Use ExInterlockedRemoveHeadList to remove entries in the address file's request lists
- Remove useless members, flags, and variables in titypes.h and tcp.h
- Fixes bug 4955 and 4434
svn path=/trunk/; revision=44163
oldnames is not an import library and dlltool --add-underscore is not an appropriate way to build it. Delete it for now
modified base/applications/network/ftp/ftp.rbuild
modified base/applications/winhlp32/winhlp32.rbuild
modified base/services/dhcp/dhcp.rbuild
modified dll/win32/crypt32/crypt32.rbuild
modified dll/win32/mshtml/mshtml.rbuild
modified dll/win32/setupapi/setupapi.rbuild
modified dll/win32/wininet/wininet.rbuild
modified lib/3rdparty/libxml2/libxml2.rbuild
Workarounds for the removal of oldnames
modified dll/directx/d3d8/d3d8.rbuild
Use a file that actually exists
modified dll/win32/crtdll/crtdll.rbuild
modified dll/win32/msvcrt/msvcrt.rbuild
"mangledsymbols" never did anything: remove it
modified dll/win32/msvcrt/msvcrt.def
modified lib/sdk/crt/crt.rbuild
We don't actually implement j0/j1/jn/y0/y1/yn: _j0 calls __imp__j0, which is an alias for __imp___j0, which redirects back to _j0 in a perfect loop. Remove them for the time being
modified lib/3rdparty/bzip2/bzip2.rbuild
This was actually called unbzip2.dll. Who knew
svn path=/trunk/; revision=44090
- SignalledConnectionsList is now only used for connections that have pending requests
- Remove another unused member from CONNECTION_ENDPOINT
svn path=/trunk/; revision=43926
- Call HandleSignalledConnection directly because the connection may not be in the signalled connections list
- Remove State from CONNECTION_ENDPOINT to prevent this from happening again
svn path=/trunk/; revision=43922
- Re-enable the breakpoint in vDbgPrintExWithPrefixInternal() as this works properly now. Without this breakpoint some break-in requests got lost if the break-in occurred when handling a debug print (happened a lot at boot).
- Implement Command String support for DbgCommandString() -- we now handle every debug service call.
- Implement NtSetDebugFilterState() and NtQueryDebugFilterState() for KD, meaning we now support debug filters properly.
- Implement KdRefreshDebuggerNotPresent(), KdChangeOption() and KdPowerTransition(). Stub KdSystemDebugControl() to return error status instead of hanging the system.
- Stub the rest of the KD API to print a warning and return a failure packet instead of hanging.
- Set and respect KdpContextSent when getting and setting the thread context -- WinDbg doesn't seem to rely on this, but better safe than sorry.
- Support MP when getting and setting the thread context too -- if the context is operation is for another processor than the current, just get it through the KiProcessorBlock array.
- Initialize the MajorVersion in the KD version block more properly -- the high byte is the major identifier (0 for NT). Add the required DBGKD_MAJOR_TYPES enumeration to wdbgexts.h.
- Simplify setting and clearing the InDbgPrint flag in the TEB to minimize the impact on kernel execution; use 2 dedicated routines instead of a generic one.
- KdpSymbol doesn't return anything, so don't return an ignore status from KdpReportLoadSymbolsStateChange.
- Expose the KdpDefaultRetries and Kd_WIN2000_Mask variables to the registry and add them to KDBG too (unused there).
- No reason to implement KdpSysGetVersion per architecture; move it back to the generic code.
- Add some ARM offsets to the debugger data block that (N/A on other architectures).
- Fix the default size of the DbgPrint log buffer for free builds to save some space. It should be 4 KB for a free build and 32 KB for a checked build.
- Move KeDisableInterrupts to cpu.c as it fits here more than in the IRQ support code in irqobj.c.
- Use KeDisableInterrupts in KeFreezeExecution instead of checking the x86 EFLAG directly.
svn path=/trunk/; revision=43912
- RosBE doesn't support __ImageBase, so use GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS) instead.
- Implement CAtlBaseModule constructor.
[browseui]
- Since RosBE built DLLs don't run global constructors, use placement new to construct them in DllMain. This is a *HACK* and a better solution should be found.
- Change DllMain be be extern C so it actually gets used.
svn path=/trunk/; revision=43890
- Don't clear other socket state flags when enabling non-blocking mode
- Remove some incorrect code that plays tricks on oskittcp
svn path=/trunk/; revision=43877
- Convert browseui to C++/ATL. As part of this, classes in browseui and now registered with .rgs files.
- Add AddressBand, AddressEditBox, BandProxy, BaseBar, BaseBarSite, BrandBand, InternetToolbar, ShellBrowser, ToolsBand, and TravelLog.
- Add stub implementations of commonbrowser, globalfoldersettings, and regtreeoptions.
- Clean up some msvc compile problems in a few files.
- Reorganize some headers to make them better match the Platform SDK.
- Move InlineIsEqualGUID to guiddef.h.
- Create new header files shlguid_undoc.h, shlobj_undoc.h, and shlwapi_undoc.h to hold undocumented types, functions, and GUIDs.
- Move some undocumented definitions declared in explorer_new/todo.h and undoc.h to new headers.
- Rename a few interfaces in explorer_new to the correct name
- Add definition of RBSTR_CHANGERECT to commctrl.h
- IDeskBarClient inherits from IOleWindow, not IUnknown
- HMONITOR was declared in both dxsdk/axextend.idl and wine/wined3d.idl, but not in wtypes.idl where it belongs
- Added Init and Term to CComModule
- Thanks to encoded for solving the browseui linking problem!
svn path=/trunk/; revision=43872
- Remove an unused parameter from OskitTCPBind
- Return a status value from OskitTCPGetAddress
- Add debug print for unhandled error codes
svn path=/trunk/; revision=43864