Alexandre Julliard <julliard@winehq.org>
- Generate 16-bit spec files as assembly code too.
- Output the resource data in assembly too.
- Factor out a couple of useful helper functions.
- Store RVAs instead of pointers wherever possible in the generated NT
header and directories.
- Output constant strings in a more appropriate section than .text.
- Make sure that values of absolute symbols fit in 16 bits.
- Implemented import thunks for x86-64.
- Generate stub functions directly in assembly.
- Moved stub function generation to import.c. Added a get_stub_name
function to ensure naming consistency.
- Now that everything is done in assembly in the spec file, directly
generate a .s file to bypass gcc inefficiency with large data
structures.
- Added support for 64-bit format NT header and export/import tables.
- Now that we have to be able to run the assembler from winebuild, added
an option to generate a .spec.o file in a single step.
Added --save-temps and --verbose options for easier debugging.
- Added an entry point routine for native drivers.
- Added a bit of framework for future x86_64 support.
- Create an assembly file with all undefined symbols and add it to the
link command so that the symbols show up in the final undefined list.
Use that list to create thunks for all exported but undefined symbols,
to make sure all export RVAs point somewhere inside the module.
- Take into account -noname functions when checking for duplicate export
names. Fixed a couple of issues found by the stricter check.
- Generate the NT header in assembly instead of using a C structure.
- Don't remove ignored symbols from the undefined list, simply skip them
when resolving imports.
Added get_temp_file_name utility function.
- Fixed stack offset of %eax register.
- Output the delayed import table using assembly too.
- Added a common function to declare global symbols, and make them
hidden on platforms that support it.
- Fixed a number of pointer to integer conversions that wouldn't work
right on a 64-bit platform.
- Output the import directory using assembly instead of C structures.
- Defined a proper structure for debug channels.
Also put all the function pointers inside a structure and added
__wine_dbg_set_functions to change them instead of exporting the
pointers directly.
- Moved return value handling to the individual relay thunks so that we
only need one version of wine_call_from_16.
Patch the wine_call_from_16 address along with the cs value directly
in the 16-bit code segment to avoid the need for special magic in the
import thunks.
- Moved the spec file init function and constructor to winecrt0.
- Make the users of wine_call_from_32_regs save %eax so that we don't
need a special hack in the import thunk.
Added a get_pc_thunk_eax function to simplify the code a bit.
- Get rid of the debug channels support.
svn path=/trunk/; revision=18325
Alexandre Julliard <julliard@winehq.org>
- Now that we are requiring bison anyway, make the .tab.c file use the
same base name as the .y file, so that we can generate correct
dependencies in all cases.
svn path=/trunk/; revision=18322
- NtGdiDdGetBltStatus
- NtGdiDdGetFlipStatus
- NtGdiDdSetOverlayPosition
Write some code for NtGdiDdDestroySurface and NtGdiDdCreateSurface, we got now basic all nt4 api implemet and unstested for directdraw in the kernel
svn path=/trunk/; revision=18317
implemet follow but not tested
- NtGdiDdCreateSurface, NtGdiDdDestroySurface
some part it need fill the info right before it call on DdCreateSurface
- NtGdiDdFlip done
- NtGdiDdGetScanLine done
- NtGdiDdSetColorKey done
- NtGdiDdUnlock done
- NtGdiDdUpdateOverlay done
- NtGdiDdSetExclusiveMode done (need setup the callback)
- NtGdiDdLock done
svn path=/trunk/; revision=18313
- Full support of ParentIdPrefix value in registry
- Implement IRP_MJ_PNP/IRP_MN_QUERY_CAPABILITIES for PDOs enumerated by Root bus
- Add a temporary hack in pci driver as long as Plug and Play is not ready
=> This would allow to have two identical devices plugged on different buses (for example, two USB mices plugged on different hubs)
svn path=/trunk/; revision=18309
- AddDriverToList:
Define a unique return point for the function
- GetVersionInformationFromInfFile:
Return driver date (still doesn't return driver version)
- SetupDiCallClassInstaller:
Change device and class co-installers messages (they were swapped)
- SetupDiInstallDevice:
Create driver key in HKLM\System\CurrentControlSet\Control\Class and write values to it
Add missing informations to enum key (HKLM\System\CurrentControlSet\Enum)
Define a unique return point for the function
svn path=/trunk/; revision=18304
KiCheckFPU: Change calculation of DummyArea/FxSaveArea (avoid conditional)
KeSaveFloatingPointState: Allocate NonPagedPool for the saved state because function can be called only at IRQL >= DISPATCH
svn path=/trunk/; revision=18286