[CDFS]
[reactos.git] / reactos / drivers / filesystems / cdfs / cdfs.h
index aede6db..3d77e5b 100644 (file)
@@ -5,6 +5,12 @@
 #include <ntddcdrm.h>
 #include <pseh/pseh2.h>
 
+#ifdef __GNUC__
+#define INIT_SECTION __attribute__((section ("INIT")))
+#else
+#define INIT_SECTION /* Done via alloc_text for MSC */
+#endif
+
 #define CDFS_BASIC_SECTOR 2048
 #define CDFS_PRIMARY_DESCRIPTOR_LOCATION 16
 #define BLOCKSIZE CDFS_BASIC_SECTOR
@@ -214,6 +220,7 @@ typedef struct _FCB
 
   ERESOURCE  NameListResource;
   LIST_ENTRY ShortNameList;
+  FILE_LOCK FileLock;
 } FCB, *PFCB;
 
 
@@ -241,7 +248,8 @@ typedef struct _CCB
 typedef struct _CDFS_GLOBAL_DATA
 {
   PDRIVER_OBJECT DriverObject;
-  PDEVICE_OBJECT DeviceObject;
+  PDEVICE_OBJECT CdFsDeviceObject;
+  PDEVICE_OBJECT HddFsDeviceObject;
   ULONG Flags;
   CACHE_MANAGER_CALLBACKS CacheMgrCallbacks;
   FAST_IO_DISPATCH FastIoDispatch;
@@ -281,22 +289,18 @@ DriverEntry(
 
 /* cleanup.c */
 
-DRIVER_DISPATCH CdfsCleanup;
-
 NTSTATUS
 NTAPI
-CdfsCleanup(PDEVICE_OBJECT DeviceObject,
-            PIRP Irp);
+CdfsCleanup(
+    PCDFS_IRP_CONTEXT IrpContext);
 
 
 /* close.c */
 
-DRIVER_DISPATCH CdfsClose;
-
 NTSTATUS
 NTAPI
-CdfsClose(PDEVICE_OBJECT DeviceObject,
-          PIRP Irp);
+CdfsClose(
+    PCDFS_IRP_CONTEXT IrpContext);
 
 NTSTATUS
 CdfsCloseFile(PDEVICE_EXTENSION DeviceExt,
@@ -323,12 +327,10 @@ CdfsDeviceIoControl (IN PDEVICE_OBJECT DeviceObject,
 
 /* create.c */
 
-DRIVER_DISPATCH CdfsCreate;
-
 NTSTATUS
 NTAPI
-CdfsCreate(PDEVICE_OBJECT DeviceObject,
-           PIRP Irp);
+CdfsCreate(
+    PCDFS_IRP_CONTEXT IrpContext);
 
 /* devctrl.c */
 
@@ -486,21 +488,26 @@ CdfsShortNameCacheGet
  PUNICODE_STRING LongName,
  PUNICODE_STRING ShortName);
 
-/* rw.c */
+BOOLEAN
+CdfsIsRecordValid(IN PDEVICE_EXTENSION DeviceExt,
+                  IN PDIR_RECORD Record);
+
+VOID
+CdfsGetDirEntryName(PDEVICE_EXTENSION DeviceExt,
+                    PDIR_RECORD Record,
+                    PWSTR Name);
 
-DRIVER_DISPATCH CdfsRead;
+/* rw.c */
 
 NTSTATUS
 NTAPI
-CdfsRead(PDEVICE_OBJECT DeviceObject,
-         PIRP Irp);
-
-DRIVER_DISPATCH CdfsWrite;
+CdfsRead(
+    PCDFS_IRP_CONTEXT IrpContext);
 
 NTSTATUS
 NTAPI
-CdfsWrite(PDEVICE_OBJECT DeviceObject,
-          PIRP Irp);
+CdfsWrite(
+    PCDFS_IRP_CONTEXT IrpContext);
 
 
 /* volinfo.c */