Bring in initiated work on IRPs in NTFS (and complete it).
This simplifies the way IRPs and their context are handled in the driver.
Only VfatDispatchRequest() is responsible of completing IRPs (if required), freeing the IRP context (if required), and queueing the IRP for later completion (if required).
This allows removing duplicated code, hacks, and so on. It might help reducing IRP leaks, or memory leaks.
By default, VfatDispatchRequest() will complete the IRP and delete the IRP context.
In case you don't want it to complete the IRP (because you passed it down, for instance), remove the IRPCONTEXT_COMPLETE flag. See for instance: VfatDeviceControl().
In case you want to queue the IRP (you previously called: VfatQueueRequest()), call the newly introduced VfatMarkIrpContextForQueue() function that will prepare it.
svn path=/trunk/; revision=67743
- Separate C++ exports per architecture, add ARM exports (that again have different mangling)
- Add symbol aliases for ARM C++ exports
- Compile in/out functions only on x86
- Add some missing exports for non-x86
svn path=/trunk/; revision=67730
setjmp is a macro expanding to _setjmp or _setjmpex. In soviet russia and on ARM builds, the compiler will convert invocation of _setjmp back into a call to setjmp. The compiler handles _setjmp and _setjmpex in the same way, generating code where r0 points to the jump_buf and r1 points to the current functions stack frame (sp on function entry). So make setjmp and _setjmp aliases to _setjmpex and make the latter use r1.
svn path=/trunk/; revision=67729
- Add some early "return" after calls to EmulatorTerminate()
- Some VDDs rely on the fact that NTVDM calls ExitProcess on Windows when it is going to quit, so let's do the same.
- Put port 61h (and 62h) support in ppi.c (programmable-peripheral-interface).
svn path=/trunk/; revision=67726
Create the "Hardware Profiles\0000" key as part of the registry setup. This must be done at this point because the "Hardware Profiles\Current" link will only be created, if the "Hardware Profiles\0000" key exists.
svn path=/trunk/; revision=67725
Partly revert previous changes, bringing back copysignf. Add global defines copysignf=_copysignf, since we have that now.
svn path=/trunk/; revision=67723
Implement basic funtions of the parallel port driver. It supports Centronics-Mode only.
You can print files using: copy <filename> lpt1:
svn path=/trunk/; revision=67713
- Remove useless copysignf invocation and the wrong defines for it
- BrokenHacksOnTopOfBrokenCode--;
- Should be sent upstream
svn path=/trunk/; revision=67709
This is evil under amd64, too... so we disable it for now.
[ROSHTTPD]
UINT -> size_t
[NCFTP]
About time to clean this mess. Are we a Unix? No sir!
svn path=/trunk/; revision=67697
Wine guys... if you put all stuff which uses one local variable in a #ifdef __i386__, then god heaven... put that one in a #ifdef, too! Should be sent upstream!
svn path=/trunk/; revision=67696