There are two executables (SysGen.Designer) and (SysGen.Make)
SysGen.Designer is a windows forms tool that allows to generate customized reactos images, it is similar in concept to Windows CE Platfom Builder. SysGen.Make is the actual Rbuild clone, It has three main parts, the .rbuild file parser + in-memory tree representation, the backends , and the auto generated files. The Mingw backend used to work 1'5 years ago and produced a 100% valid makefile.auto but have to be updated to be able to build a recent revision. Rewriting parts of it to take advantage of C# 3.5 extension methods would probably reduce the code by 50%. The other two parts are quite stable.
This code was only a proof of concept and was never intended to be released so there is a ton of unpolished code and hacks required by the current C++ implementation that should be removed.
How to test it:
Select SysGen.Make as the Start-up Project in Visual Studio and edit Program.cs to point to the correct path to ReactOS-i386.rbuild Edit SysGenEngine.cs:639 to enable/disable specific backends, The HtmlBackend in \SysGen.BuildEngine\Backends\Html\HtmlBackend.cs is a very simple illustration of how powerful this framework is.
Happy hacking!
svn path=/trunk/; revision=46862
- Add prepared file association failure text plus some translations from Wine
- Prevents completely empty message boxes
See issue #4572 for more details.
svn path=/trunk/; revision=46851
[NTOS]: Use PnpBusTypeGuidList->Lock instead of PnpBusTypeGuidListLock.
[NTOS]: Implement PipAllocateDeviceNode for setting up device nodes and linking them to a PDO. Only used for Root PnP now. Main ABI change is that allocate in ReactOS right now includes "insert". These will be seperate in the new PnP ABI.
[NTOS]: Implement IopInitializePnpServices to replace PnpInit. Mostly the same work is done, but using new PnP ABI.
[NTOS]: Implement new helper: IopCreateRegistryKeyEx.
svn path=/trunk/; revision=46845
- Use IopDeviceNodeSetFlag to set the DNF_HAS_BOOT_CONFIG flag
- Set DNF_START_FAILED and print a warning if we fail to start a device
- Clear the DNF_ASSIGNING_RESOURCES flag before failing
- TODO: Release device resources when start fails
svn path=/trunk/; revision=46844
[NTOS]: Switch to PnP Add Device routine, currently mostly a copy of the original ReactOS code. However, PnP now tries to open all the required registry keys before attempting to start the device. Failures are reported and load cancelled. More work TBD.
svn path=/trunk/; revision=46841
- Comment it out from the bootloader.
- Remove it from machine.inf.
- This "driver" introduces significant delay at every boot due to i/o space scanning every time at every boot, however there is no real benefit (it always fails). Inclusion of this driver into default boot process might be reconsidered only after it starts providing some advantages. For now please test this driver in your own working copies.
svn path=/trunk/; revision=46837
- Handle keyboard input when no windows are present
- Patch by Andrey Ivanov with changes suggested in the bug report
See issue #3560 for more details.
svn path=/trunk/; revision=46836
- Implement dispatching of enable/disable event properties for filters/pins
- Add new pins to list of instantiated pins when a new pin is created
- Remove pin on close and decrement instance count. Fixes instantiating pin for 2nd time
- Rewrite handling of pin property/method/events
- ks is now able to deliver signal statistics in XP SP3
svn path=/trunk/; revision=46824
- Add routine to query process index from performance data
- Remove process page index caching, query the index using the new routine
- Fixes "ghost processes" in the task manager, which were shown due to data access with invalid indexes
- Some changes for improved performance: use local process id's where suitable, only start checking for new processes if the item performance data and listview counts differ
See issue #4661 for more details.
svn path=/trunk/; revision=46812
MSVC backend:
- Fix compilation when using paths with spaces
- Fix spec and pspec rules to generate correctly the def and stubs file
- Group auto-generated files together
- Rename some user macros to more appropriate names
- Some cleanup
svn path=/trunk/; revision=46809
- Cache the next instance value in the the registry so we don't have to go searching for an unused instance number every time we add a new device
svn path=/trunk/; revision=46808
- Create registry values for legacy drivers
- Handle raw devices properly
- Don't set DNF_STARTED before actually calling IopStartDevice
- Don't set DNF_STARTED for legacy drivers inside IopCreateDeviceNode
- Fixes missing entries in Device Manager for raw devices
svn path=/trunk/; revision=46798
Fix msvc versions of Ke386GetGlobalDescriptorTable and Ke386SetGlobalDescriptorTable. Patch by Jose Catena.
See issue #5071 for more details.
svn path=/trunk/; revision=46797
- Return status success from unimplemented IKsClock_DispatchClose
- Implement handling of KSPROPERTY_PIN_CONSTRAINEDDATARANGES property
- Forward unhandled irps to lower device object
- Fix asserts in KspHandleDataIntersection. The function is still a grotesk hack
- Simply handling of property requests by merging filter properties into filter descriptor
- Implement KsMethodHandler, KsMethodHandlerWithAllocator, KsFastMethodHandler
- Fix a bug in KsPinGetFirstCloneStreamPointer
- Implement handling of KSPROPSETID_Topology (KspTopologyHandler)
svn path=/trunk/; revision=46794
- Don't try to query a performance index when switching from application to process tab
- Query a process index instead: "go to process" works now
svn path=/trunk/; revision=46782
- Fix tons of bugs in KsMergeAutomationTable
- Implement removing instantiated filter from filter factory when filter is about to be closed
- Fix a memory corrupion bug in KspHandleDataIntersection
svn path=/trunk/; revision=46780
- Implement IKsDevice::GetAdapterObject, IKsDevice::ArbitrateAdapterChannel
- Store device interface guid in the symbolic link list entry, which is used by KsFilterFactoryUpdateCacheData
- Implement KsFilterFactoryUpdateCacheData, which is used to dynamically propagate format / medium changes to directshow components
- Move stream pointer preparation to an own function, which is called by KsPinGetLeadingEdgeStreamPointer / KsStreamPointerClone / KsStreamPointerAdvanceOffsets
- Fix locating correct offset in KsStreamPointerScheduleTimeout, KsStreamPointerCancelTimeout, KsStreamPointerGetNextClone
- Further BDA support is on hold until ReactOS supports s/g in hal
svn path=/trunk/; revision=46774