Author: tkreuzer
Date: Sun May 10 21:02:53 2015
New Revision: 67637
URL: http://svn.reactos.org/svn/reactos?rev=67637&view=rev
Log:
[CRT]
- Add _JUMP_BUFFER for ARM
- On ARM there are no underscore prefixes
Modified:
trunk/reactos/include/crt/_mingw_mac.h
trunk/reactos/include/crt/setjmp.h
Modified: trunk/reactos/include/crt/_mingw_mac.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/_mingw_mac.h?r…
==============================================================================
--- trunk/reactos/include/crt/_mingw_mac.h [iso-8859-1] (original)
+++ trunk/reactos/include/crt/_mingw_mac.h [iso-8859-1] Sun May 10 21:02:53 2015
@@ -22,8 +22,8 @@
#define __MINGW32_MAJOR_VERSION 3
#define __MINGW32_MINOR_VERSION 11
-#ifdef _WIN64
-/* MS does not prefix symbols by underscores for 64-bit. */
+#ifndef _M_IX86
+/* MS does not prefix symbols by underscores for anything other than x86. */
#ifndef __MINGW_USE_UNDERSCORE_PREFIX
/* As we have to support older gcc version, which are using underscores
as symbol prefix for x64, we have to check here for the user label
Modified: trunk/reactos/include/crt/setjmp.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/setjmp.h?rev=6…
==============================================================================
--- trunk/reactos/include/crt/setjmp.h [iso-8859-1] (original)
+++ trunk/reactos/include/crt/setjmp.h [iso-8859-1] Sun May 10 21:02:53 2015
@@ -131,8 +131,24 @@
#elif defined(_M_ARM)
-#define _JBLEN 11
+#define _JBLEN 28
#define _JBTYPE int
+
+ typedef struct _JUMP_BUFFER {
+ unsigned long Frame;
+ unsigned long R4;
+ unsigned long R5;
+ unsigned long R6;
+ unsigned long R7;
+ unsigned long R8;
+ unsigned long R9;
+ unsigned long R10;
+ unsigned long R11;
+ unsigned long Sp;
+ unsigned long Pc;
+ unsigned long Fpscr;
+ unsigned long long D[8]; // D8-D15 VFP/NEON regs
+ } _JUMP_BUFFER;
#else
Author: pschweitzer
Date: Sun May 10 20:47:44 2015
New Revision: 67635
URL: http://svn.reactos.org/svn/reactos?rev=67635&view=rev
Log:
[NTFS]
Add two more flags (mutually exclusive) for IRP context:
- _COMPLETE will cause the IRP to be completed at the end of the dispatch, with the run-time priority boost set by caller
- _QUEUE will cause the IRP to be queued for delayed execution (not yet implemented)
This allows more flexibility for callers that can set the behavior thanks to the flags.
Default behavior is the previous one: by default the IRP is completed at the end of the dispatch
That one should really come to FastFAT...
Modified:
trunk/reactos/drivers/filesystems/ntfs/dispatch.c
trunk/reactos/drivers/filesystems/ntfs/misc.c
trunk/reactos/drivers/filesystems/ntfs/ntfs.h
Modified: trunk/reactos/drivers/filesystems/ntfs/dispatch.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/d…
==============================================================================
--- trunk/reactos/drivers/filesystems/ntfs/dispatch.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/ntfs/dispatch.c [iso-8859-1] Sun May 10 20:47:44 2015
@@ -85,8 +85,13 @@
else
Status = STATUS_INSUFFICIENT_RESOURCES;
+ ASSERT(((IrpContext->Flags & IRPCONTEXT_COMPLETE) && !(IrpContext->Flags & IRPCONTEXT_QUEUE)) ||
+ (!(IrpContext->Flags & IRPCONTEXT_COMPLETE) && (IrpContext->Flags & IRPCONTEXT_QUEUE)));
+
Irp->IoStatus.Status = Status;
- IoCompleteRequest(Irp, IrpContext->PriorityBoost);
+
+ if (IrpContext->Flags & IRPCONTEXT_COMPLETE)
+ IoCompleteRequest(Irp, IrpContext->PriorityBoost);
if (IrpContext)
ExFreePoolWithTag(IrpContext, 'PRIN');
Modified: trunk/reactos/drivers/filesystems/ntfs/misc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/m…
==============================================================================
--- trunk/reactos/drivers/filesystems/ntfs/misc.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/ntfs/misc.c [iso-8859-1] Sun May 10 20:47:44 2015
@@ -88,6 +88,7 @@
IrpContext->FileObject = IrpContext->Stack->FileObject;
IrpContext->IsTopLevel = (IoGetTopLevelIrp() == Irp);
IrpContext->PriorityBoost = IO_NO_INCREMENT;
+ IrpContext->Flags = IRPCONTEXT_COMPLETE;
if (IrpContext->MajorFunction == IRP_MJ_FILE_SYSTEM_CONTROL ||
IrpContext->MajorFunction == IRP_MJ_DEVICE_CONTROL ||
Modified: trunk/reactos/drivers/filesystems/ntfs/ntfs.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/n…
==============================================================================
--- trunk/reactos/drivers/filesystems/ntfs/ntfs.h [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/ntfs/ntfs.h [iso-8859-1] Sun May 10 20:47:44 2015
@@ -392,6 +392,8 @@
} REPARSE_POINT_ATTRIBUTE, *PREPARSE_POINT_ATTRIBUTE;
#define IRPCONTEXT_CANWAIT 0x1
+#define IRPCONTEXT_COMPLETE 0x2
+#define IRPCONTEXT_QUEUE 0x4
typedef struct
{