[ros-dev] headers suggestion
ionucu at videotron.ca
Fri Nov 19 11:30:15 CET 2004
I am already working on a complete header system overhaul that's been
approved and very much requested by the other developers.
Thanks for your suggestions. Some of them aren't so right, but the main
parts of what you said I'm already doing, but in a more orderly and
simplified fashion to guarnatee support with MS PSDK/DDK/IFS.
I invite you to read one of my older blog entries to find out more about it.
Jonathan Wilson wrote:
> In light of e.g.
> I would like to suggest the following header ideas.
> Currently MingW has:
> 1.A set of headers that contain a copy of part of the platform SDK
> 2.Some extra stuff (like that ntdll.h)
> 3.A set of headers that contain a copy of part of the windows DDK
> 4.Mabie again some extra stuff MS doesnt have (I dont know)
> 5.A set of headers that contain a copy of part of the visual C++
> runtime library
> 6.Some extra stuff (mainly bits required to deal with differences
> between GCC and Visual C I think)
> WINE has:
> 1.A set of headers that are supposed to contain a copy of part of the
> platform SDK (although some things have been claimed to be wrong)
> 2.A set of headers that are supposed to contain a copy of part of the
> visual C++ runtime library (although again there may be things that
> are wrong)
> and 3.Extra definitions for stuff in both header sets microsoft doesnt
> define in the platform SDK (e.g. internal bits, functions microsoft
> doesnt document etc)
> ReactOS has:
> w32api (the ROS import of it)
> include/ddk (the ReactOS version of the windows DDK)
> include/wine (the WINE windows API headers)
> include/msvcrt (the MSVCRT headers ROS uses to build and link with
> include (various misc ReactOS specific headers)
> What I suggest for ReactOS (and I think some of this is already being
> done) is as follows:
> grab any headers from include/* that are public DDK headers (if there
> are any) and make sure they are all in include/ddk
> grab everything from the current WINE headers MingW is missing. Check
> that its all correct and stuff and add it to the ReactOS import of
> w32api. (if anything is found to be wrong in the wine headers, it
> should be fixed)
> grab anything from include itself and add to w32api as needed
> Get permission to relicence the stuff and contribute back to the main
> w32api tree.
> grab contents of include/msvcrt on ReactOS plus include/msvcrt on WINE
> and also mingw-runtime.
> Create one set of header files from the 3 sets such that it matches
> the microsoft headers as closely as possible.
> Merge w32api DDK headers with ROS DDK headers and create one set that,
> again, matches the MS headers.
> For w32api/mingw-runtime, the suggestion is that they look at all the
> "new stuff" generated by the merging of the 3 sets of msvcrt headers
> plus the ROS/WINE/w32api merger plus the DDK merger and look at
> acccepting it.
> For WINE, I suggest they start using the new "merged" headers if at
> all possible.
> Basicly, the idea is that mingw-runtime would become the "definitive"
> set of msvcrt.dll headers out there and that ReactOS, MingW and WINE
> would start using it for any case where you are talking to msvcrt.dll
> from the public side.
> both ROS and WINE would then have their own internal msvcrt headers as
> necessary to build their msvcrt* builds
> Then, w32api would become the "definitive" set of win32 api headers
> and would contain as much of the Microsoft Platform SDK as people have
> legally cloned. All userland components of ReactOS (as well as
> kernel-side bits that need the stuff in the userland headers e.g.
> win32k.sys) would use this. Be nice if WINE were to use this too but
> because of what WINE is and how it is built/used, there may be reasons
> for the WINE team not to use w32api as the build headers used to build
> And, there would be one "definitive" set of DDK headers which would be
> good enough for building ReactOS with. And for building any
> kernel-side stuff WINE decides to add (e.g. that stuff to load the
> device drivers for vaerious copy protection systems that was being
> worked on). And for anyone using MingW and MingW GCC to build
> kernel-mode stuff.
> Anything private or project specific would go into a set of private
> headers as needed for the different projects and sub-sections (dlls
> etc) within them
> Anything exported by microsoft but undocumented would go into a set of
> "undocumented" headers (which could then be shared between ReactOS and
> WINE since I dont think w32api would accept anything not documented
> in MSDN)
> Just suggestions btw, if they are good, say so
> If they are bad, say so (and say why)
> If there are issues with my idea, say what they are.
> Ros-dev mailing list
> Ros-dev at reactos.com
More information about the Ros-dev