ReactOS 0.4.15-dev-7907-g95bf896
udf_common.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _UDF_KEY_LIST
 
struct  UDF_MEDIA_CLASS_NAMES
 
struct  _UDFVolumeControlBlock
 
struct  _UDFData
 

Macros

#define MAX_UDFFSD_MEDIA_TYPE   ((ULONG)MediaFloppy)
 
#define MAX_ANCHOR_LOCATIONS   11
 
#define MAX_SPARING_TABLE_LOCATIONS   32
 
#define SYNC_CACHE_RECOVERY_NONE   0
 
#define SYNC_CACHE_RECOVERY_ATTEMPT   1
 
#define SYNC_CACHE_RECOVERY_RETRY   2
 
#define INCREMENTAL_SEEK_NONE   0
 
#define INCREMENTAL_SEEK_WORKAROUND   1
 
#define INCREMENTAL_SEEK_DONE   2
 
#define UDF_VCB_FLAGS_VOLUME_MOUNTED   (0x00000001)
 
#define UDF_VCB_FLAGS_VOLUME_LOCKED   (0x00000002)
 
#define UDF_VCB_FLAGS_BEING_DISMOUNTED   (0x00000004)
 
#define UDF_VCB_FLAGS_SHUTDOWN   (0x00000008)
 
#define UDF_VCB_FLAGS_VOLUME_READ_ONLY   (0x00000010)
 
#define UDF_VCB_FLAGS_VCB_INITIALIZED   (0x00000020)
 
#define UDF_VCB_FLAGS_OUR_DEVICE_DRIVER   (0x00000040)
 
#define UDF_VCB_FLAGS_NO_SYNC_CACHE   (0x00000080)
 
#define UDF_VCB_FLAGS_REMOVABLE_MEDIA   (0x00000100)
 
#define UDF_VCB_FLAGS_MEDIA_LOCKED   (0x00000200)
 
#define UDF_VCB_SKIP_EJECT_CHECK   (0x00000400)
 
#define UDF_VCB_LAST_WRITE   (0x00001000)
 
#define UDF_VCB_FLAGS_TRACKMAP   (0x00002000)
 
#define UDF_VCB_ASSUME_ALL_USED   (0x00004000)
 
#define UDF_VCB_FLAGS_RAW_DISK   (0x00040000)
 
#define UDF_VCB_FLAGS_USE_STD   (0x00080000)
 
#define UDF_VCB_FLAGS_STOP_WAITER_EVENT   (0x00100000)
 
#define UDF_VCB_FLAGS_NO_DELAYED_CLOSE   (0x00200000)
 
#define UDF_VCB_FLAGS_MEDIA_READ_ONLY   (0x00400000)
 
#define UDF_VCB_FLAGS_FLUSH_BREAK_REQ   (0x01000000)
 
#define UDF_VCB_FLAGS_EJECT_REQ   (0x02000000)
 
#define UDF_VCB_FLAGS_FORCE_SYNC_CACHE   (0x04000000)
 
#define UDF_VCB_FLAGS_USE_CAV   (0x08000000)
 
#define UDF_VCB_FLAGS_UNSAFE_IOCTL   (0x10000000)
 
#define UDF_VCB_FLAGS_DEAD   (0x20000000)
 
#define UDF_VCB_IC_UPDATE_ACCESS_TIME   (0x00000001)
 
#define UDF_VCB_IC_UPDATE_MODIFY_TIME   (0x00000002)
 
#define UDF_VCB_IC_UPDATE_ATTR_TIME   (0x00000004)
 
#define UDF_VCB_IC_UPDATE_ARCH_BIT   (0x00000008)
 
#define UDF_VCB_IC_UPDATE_DIR_WRITE   (0x00000010)
 
#define UDF_VCB_IC_UPDATE_DIR_READ   (0x00000020)
 
#define UDF_VCB_IC_WRITE_IN_RO_DIR   (0x00000040)
 
#define UDF_VCB_IC_UPDATE_UCHG_DIR_ACCESS_TIME   (0x00000080)
 
#define UDF_VCB_IC_W2K_COMPAT_ALLOC_DESCS   (0x00000100)
 
#define UDF_VCB_IC_HW_RO   (0x00000200)
 
#define UDF_VCB_IC_OS_NATIVE_DOS_NAME   (0x00000400)
 
#define UDF_VCB_IC_FORCE_WRITE_THROUGH   (0x00000800)
 
#define UDF_VCB_IC_FORCE_HW_RO   (0x00001000)
 
#define UDF_VCB_IC_IGNORE_SEQUENTIAL_IO   (0x00002000)
 
#define UDF_VCB_IC_NO_SYNCCACHE_AFTER_WRITE   (0x00004000)
 
#define UDF_VCB_IC_BAD_RW_SEEK   (0x00008000)
 
#define UDF_VCB_IC_FP_ADDR_PROBLEM   (0x00010000)
 
#define UDF_VCB_IC_MRW_ADDR_PROBLEM   (0x00020000)
 
#define UDF_VCB_IC_BAD_DVD_LAST_LBA   (0x00040000)
 
#define UDF_VCB_IC_SYNCCACHE_BEFORE_READ   (0x00080000)
 
#define UDF_VCB_IC_INSTANT_COMPAT_ALLOC_DESCS   (0x00100000)
 
#define UDF_VCB_IC_SOFT_RO   (0x00200000)
 
#define UDF_VCB_IC_DIRTY_RO   (0x04000000)
 
#define UDF_VCB_IC_W2K_COMPAT_VLABEL   (0x08000000)
 
#define UDF_VCB_IC_CACHE_BAD_VDS   (0x10000000)
 
#define UDF_VCB_IC_WAIT_CD_SPINUP   (0x20000000)
 
#define UDF_VCB_IC_SHOW_BLANK_CD   (0x40000000)
 
#define UDF_VCB_IC_ADAPTEC_NONALLOC_COMPAT   (0x80000000)
 
#define UDFIsDvdMedia(Vcb)   (Vcb->DVD_Mode)
 
#define UDFIsWriteParamsReq(Vcb)   (Vcb->WriteParamsReq && !Vcb->DVD_Mode)
 
#define UDF_DATA_FLAGS_RESOURCE_INITIALIZED   (0x00000001)
 
#define UDF_DATA_FLAGS_ZONES_INITIALIZED   (0x00000002)
 
#define UDF_DATA_FLAGS_BEING_UNLOADED   (0x00000004)
 
#define FILE_ID_CACHE_GRANULARITY   16
 
#define DLOC_LIST_GRANULARITY   16
 

Typedefs

typedef enum _UDFFSD_MEDIA_TYPE UDFFSD_MEDIA_TYPE
 
typedef struct _UDF_KEY_LIST UDF_KEY_LIST
 
typedef struct _UDF_KEY_LISTPUDF_KEY_LIST
 
typedef struct _UDFVolumeControlBlock VCB
 
typedef struct _UDFVolumeControlBlockPVCB
 
typedef struct _UDFData UDFData
 
typedef struct _UDFDataPtrUDFData
 
typedef LONGLONG FILE_ID
 
typedef FILE_IDPFILE_ID
 

Enumerations

enum  _UDFFSD_MEDIA_TYPE {
  MediaUnknown = 0 , MediaHdd , MediaCdr , MediaCdrw ,
  MediaCdrom , MediaZip , MediaFloppy , MediaDvdr ,
  MediaDvdrw
}
 

Functions

VOID UDFSetModified (IN PVCB Vcb)
 
VOID UDFPreClrModified (IN PVCB Vcb)
 
VOID UDFClrModified (IN PVCB Vcb)
 

Variables

struct UDF_MEDIA_CLASS_NAMES UDFMediaClassName []
 

Macro Definition Documentation

◆ DLOC_LIST_GRANULARITY

#define DLOC_LIST_GRANULARITY   16

Definition at line 654 of file udf_common.h.

◆ FILE_ID_CACHE_GRANULARITY

#define FILE_ID_CACHE_GRANULARITY   16

Definition at line 653 of file udf_common.h.

◆ INCREMENTAL_SEEK_DONE

#define INCREMENTAL_SEEK_DONE   2

Definition at line 303 of file udf_common.h.

◆ INCREMENTAL_SEEK_NONE

#define INCREMENTAL_SEEK_NONE   0

Definition at line 301 of file udf_common.h.

◆ INCREMENTAL_SEEK_WORKAROUND

#define INCREMENTAL_SEEK_WORKAROUND   1

Definition at line 302 of file udf_common.h.

◆ MAX_ANCHOR_LOCATIONS

#define MAX_ANCHOR_LOCATIONS   11

Definition at line 35 of file udf_common.h.

◆ MAX_SPARING_TABLE_LOCATIONS

#define MAX_SPARING_TABLE_LOCATIONS   32

Definition at line 36 of file udf_common.h.

◆ MAX_UDFFSD_MEDIA_TYPE

#define MAX_UDFFSD_MEDIA_TYPE   ((ULONG)MediaFloppy)

Definition at line 21 of file udf_common.h.

◆ SYNC_CACHE_RECOVERY_ATTEMPT

#define SYNC_CACHE_RECOVERY_ATTEMPT   1

Definition at line 278 of file udf_common.h.

◆ SYNC_CACHE_RECOVERY_NONE

#define SYNC_CACHE_RECOVERY_NONE   0

Definition at line 277 of file udf_common.h.

◆ SYNC_CACHE_RECOVERY_RETRY

#define SYNC_CACHE_RECOVERY_RETRY   2

Definition at line 279 of file udf_common.h.

◆ UDF_DATA_FLAGS_BEING_UNLOADED

#define UDF_DATA_FLAGS_BEING_UNLOADED   (0x00000004)

Definition at line 636 of file udf_common.h.

◆ UDF_DATA_FLAGS_RESOURCE_INITIALIZED

#define UDF_DATA_FLAGS_RESOURCE_INITIALIZED   (0x00000001)

Definition at line 634 of file udf_common.h.

◆ UDF_DATA_FLAGS_ZONES_INITIALIZED

#define UDF_DATA_FLAGS_ZONES_INITIALIZED   (0x00000002)

Definition at line 635 of file udf_common.h.

◆ UDF_VCB_ASSUME_ALL_USED

#define UDF_VCB_ASSUME_ALL_USED   (0x00004000)

Definition at line 474 of file udf_common.h.

◆ UDF_VCB_FLAGS_BEING_DISMOUNTED

#define UDF_VCB_FLAGS_BEING_DISMOUNTED   (0x00000004)

Definition at line 461 of file udf_common.h.

◆ UDF_VCB_FLAGS_DEAD

#define UDF_VCB_FLAGS_DEAD   (0x20000000)

Definition at line 489 of file udf_common.h.

◆ UDF_VCB_FLAGS_EJECT_REQ

#define UDF_VCB_FLAGS_EJECT_REQ   (0x02000000)

Definition at line 484 of file udf_common.h.

◆ UDF_VCB_FLAGS_FLUSH_BREAK_REQ

#define UDF_VCB_FLAGS_FLUSH_BREAK_REQ   (0x01000000)

Definition at line 483 of file udf_common.h.

◆ UDF_VCB_FLAGS_FORCE_SYNC_CACHE

#define UDF_VCB_FLAGS_FORCE_SYNC_CACHE   (0x04000000)

Definition at line 485 of file udf_common.h.

◆ UDF_VCB_FLAGS_MEDIA_LOCKED

#define UDF_VCB_FLAGS_MEDIA_LOCKED   (0x00000200)

Definition at line 469 of file udf_common.h.

◆ UDF_VCB_FLAGS_MEDIA_READ_ONLY

#define UDF_VCB_FLAGS_MEDIA_READ_ONLY   (0x00400000)

Definition at line 481 of file udf_common.h.

◆ UDF_VCB_FLAGS_NO_DELAYED_CLOSE

#define UDF_VCB_FLAGS_NO_DELAYED_CLOSE   (0x00200000)

Definition at line 480 of file udf_common.h.

◆ UDF_VCB_FLAGS_NO_SYNC_CACHE

#define UDF_VCB_FLAGS_NO_SYNC_CACHE   (0x00000080)

Definition at line 467 of file udf_common.h.

◆ UDF_VCB_FLAGS_OUR_DEVICE_DRIVER

#define UDF_VCB_FLAGS_OUR_DEVICE_DRIVER   (0x00000040)

Definition at line 466 of file udf_common.h.

◆ UDF_VCB_FLAGS_RAW_DISK

#define UDF_VCB_FLAGS_RAW_DISK   (0x00040000)

Definition at line 476 of file udf_common.h.

◆ UDF_VCB_FLAGS_REMOVABLE_MEDIA

#define UDF_VCB_FLAGS_REMOVABLE_MEDIA   (0x00000100)

Definition at line 468 of file udf_common.h.

◆ UDF_VCB_FLAGS_SHUTDOWN

#define UDF_VCB_FLAGS_SHUTDOWN   (0x00000008)

Definition at line 462 of file udf_common.h.

◆ UDF_VCB_FLAGS_STOP_WAITER_EVENT

#define UDF_VCB_FLAGS_STOP_WAITER_EVENT   (0x00100000)

Definition at line 479 of file udf_common.h.

◆ UDF_VCB_FLAGS_TRACKMAP

#define UDF_VCB_FLAGS_TRACKMAP   (0x00002000)

Definition at line 473 of file udf_common.h.

◆ UDF_VCB_FLAGS_UNSAFE_IOCTL

#define UDF_VCB_FLAGS_UNSAFE_IOCTL   (0x10000000)

Definition at line 488 of file udf_common.h.

◆ UDF_VCB_FLAGS_USE_CAV

#define UDF_VCB_FLAGS_USE_CAV   (0x08000000)

Definition at line 487 of file udf_common.h.

◆ UDF_VCB_FLAGS_USE_STD

#define UDF_VCB_FLAGS_USE_STD   (0x00080000)

Definition at line 477 of file udf_common.h.

◆ UDF_VCB_FLAGS_VCB_INITIALIZED

#define UDF_VCB_FLAGS_VCB_INITIALIZED   (0x00000020)

Definition at line 465 of file udf_common.h.

◆ UDF_VCB_FLAGS_VOLUME_LOCKED

#define UDF_VCB_FLAGS_VOLUME_LOCKED   (0x00000002)

Definition at line 460 of file udf_common.h.

◆ UDF_VCB_FLAGS_VOLUME_MOUNTED

#define UDF_VCB_FLAGS_VOLUME_MOUNTED   (0x00000001)

Definition at line 459 of file udf_common.h.

◆ UDF_VCB_FLAGS_VOLUME_READ_ONLY

#define UDF_VCB_FLAGS_VOLUME_READ_ONLY   (0x00000010)

Definition at line 463 of file udf_common.h.

◆ UDF_VCB_IC_ADAPTEC_NONALLOC_COMPAT

#define UDF_VCB_IC_ADAPTEC_NONALLOC_COMPAT   (0x80000000)

Definition at line 521 of file udf_common.h.

◆ UDF_VCB_IC_BAD_DVD_LAST_LBA

#define UDF_VCB_IC_BAD_DVD_LAST_LBA   (0x00040000)

Definition at line 511 of file udf_common.h.

◆ UDF_VCB_IC_BAD_RW_SEEK

#define UDF_VCB_IC_BAD_RW_SEEK   (0x00008000)

Definition at line 508 of file udf_common.h.

◆ UDF_VCB_IC_CACHE_BAD_VDS

#define UDF_VCB_IC_CACHE_BAD_VDS   (0x10000000)

Definition at line 518 of file udf_common.h.

◆ UDF_VCB_IC_DIRTY_RO

#define UDF_VCB_IC_DIRTY_RO   (0x04000000)

Definition at line 516 of file udf_common.h.

◆ UDF_VCB_IC_FORCE_HW_RO

#define UDF_VCB_IC_FORCE_HW_RO   (0x00001000)

Definition at line 505 of file udf_common.h.

◆ UDF_VCB_IC_FORCE_WRITE_THROUGH

#define UDF_VCB_IC_FORCE_WRITE_THROUGH   (0x00000800)

Definition at line 504 of file udf_common.h.

◆ UDF_VCB_IC_FP_ADDR_PROBLEM

#define UDF_VCB_IC_FP_ADDR_PROBLEM   (0x00010000)

Definition at line 509 of file udf_common.h.

◆ UDF_VCB_IC_HW_RO

#define UDF_VCB_IC_HW_RO   (0x00000200)

Definition at line 502 of file udf_common.h.

◆ UDF_VCB_IC_IGNORE_SEQUENTIAL_IO

#define UDF_VCB_IC_IGNORE_SEQUENTIAL_IO   (0x00002000)

Definition at line 506 of file udf_common.h.

◆ UDF_VCB_IC_INSTANT_COMPAT_ALLOC_DESCS

#define UDF_VCB_IC_INSTANT_COMPAT_ALLOC_DESCS   (0x00100000)

Definition at line 513 of file udf_common.h.

◆ UDF_VCB_IC_MRW_ADDR_PROBLEM

#define UDF_VCB_IC_MRW_ADDR_PROBLEM   (0x00020000)

Definition at line 510 of file udf_common.h.

◆ UDF_VCB_IC_NO_SYNCCACHE_AFTER_WRITE

#define UDF_VCB_IC_NO_SYNCCACHE_AFTER_WRITE   (0x00004000)

Definition at line 507 of file udf_common.h.

◆ UDF_VCB_IC_OS_NATIVE_DOS_NAME

#define UDF_VCB_IC_OS_NATIVE_DOS_NAME   (0x00000400)

Definition at line 503 of file udf_common.h.

◆ UDF_VCB_IC_SHOW_BLANK_CD

#define UDF_VCB_IC_SHOW_BLANK_CD   (0x40000000)

Definition at line 520 of file udf_common.h.

◆ UDF_VCB_IC_SOFT_RO

#define UDF_VCB_IC_SOFT_RO   (0x00200000)

Definition at line 514 of file udf_common.h.

◆ UDF_VCB_IC_SYNCCACHE_BEFORE_READ

#define UDF_VCB_IC_SYNCCACHE_BEFORE_READ   (0x00080000)

Definition at line 512 of file udf_common.h.

◆ UDF_VCB_IC_UPDATE_ACCESS_TIME

#define UDF_VCB_IC_UPDATE_ACCESS_TIME   (0x00000001)

Definition at line 493 of file udf_common.h.

◆ UDF_VCB_IC_UPDATE_ARCH_BIT

#define UDF_VCB_IC_UPDATE_ARCH_BIT   (0x00000008)

Definition at line 496 of file udf_common.h.

◆ UDF_VCB_IC_UPDATE_ATTR_TIME

#define UDF_VCB_IC_UPDATE_ATTR_TIME   (0x00000004)

Definition at line 495 of file udf_common.h.

◆ UDF_VCB_IC_UPDATE_DIR_READ

#define UDF_VCB_IC_UPDATE_DIR_READ   (0x00000020)

Definition at line 498 of file udf_common.h.

◆ UDF_VCB_IC_UPDATE_DIR_WRITE

#define UDF_VCB_IC_UPDATE_DIR_WRITE   (0x00000010)

Definition at line 497 of file udf_common.h.

◆ UDF_VCB_IC_UPDATE_MODIFY_TIME

#define UDF_VCB_IC_UPDATE_MODIFY_TIME   (0x00000002)

Definition at line 494 of file udf_common.h.

◆ UDF_VCB_IC_UPDATE_UCHG_DIR_ACCESS_TIME

#define UDF_VCB_IC_UPDATE_UCHG_DIR_ACCESS_TIME   (0x00000080)

Definition at line 500 of file udf_common.h.

◆ UDF_VCB_IC_W2K_COMPAT_ALLOC_DESCS

#define UDF_VCB_IC_W2K_COMPAT_ALLOC_DESCS   (0x00000100)

Definition at line 501 of file udf_common.h.

◆ UDF_VCB_IC_W2K_COMPAT_VLABEL

#define UDF_VCB_IC_W2K_COMPAT_VLABEL   (0x08000000)

Definition at line 517 of file udf_common.h.

◆ UDF_VCB_IC_WAIT_CD_SPINUP

#define UDF_VCB_IC_WAIT_CD_SPINUP   (0x20000000)

Definition at line 519 of file udf_common.h.

◆ UDF_VCB_IC_WRITE_IN_RO_DIR

#define UDF_VCB_IC_WRITE_IN_RO_DIR   (0x00000040)

Definition at line 499 of file udf_common.h.

◆ UDF_VCB_LAST_WRITE

#define UDF_VCB_LAST_WRITE   (0x00001000)

Definition at line 472 of file udf_common.h.

◆ UDF_VCB_SKIP_EJECT_CHECK

#define UDF_VCB_SKIP_EJECT_CHECK   (0x00000400)

Definition at line 470 of file udf_common.h.

◆ UDFIsDvdMedia

#define UDFIsDvdMedia (   Vcb)    (Vcb->DVD_Mode)

Definition at line 524 of file udf_common.h.

◆ UDFIsWriteParamsReq

#define UDFIsWriteParamsReq (   Vcb)    (Vcb->WriteParamsReq && !Vcb->DVD_Mode)

Definition at line 525 of file udf_common.h.

Typedef Documentation

◆ FILE_ID

typedef LONGLONG FILE_ID

Definition at line 656 of file udf_common.h.

◆ PFILE_ID

typedef FILE_ID* PFILE_ID

Definition at line 657 of file udf_common.h.

◆ PtrUDFData

◆ PUDF_KEY_LIST

◆ PVCB

◆ UDF_KEY_LIST

◆ UDFData

◆ UDFFSD_MEDIA_TYPE

◆ VCB

Enumeration Type Documentation

◆ _UDFFSD_MEDIA_TYPE

Enumerator
MediaUnknown 
MediaHdd 
MediaCdr 
MediaCdrw 
MediaCdrom 
MediaZip 
MediaFloppy 
MediaDvdr 
MediaDvdrw 

Definition at line 9 of file udf_common.h.

9 {
10 MediaUnknown = 0,
enum _UDFFSD_MEDIA_TYPE UDFFSD_MEDIA_TYPE
@ MediaHdd
Definition: udf_common.h:11
@ MediaCdr
Definition: udf_common.h:12
@ MediaUnknown
Definition: udf_common.h:10
@ MediaCdrw
Definition: udf_common.h:13
@ MediaZip
Definition: udf_common.h:15
@ MediaCdrom
Definition: udf_common.h:14
@ MediaDvdrw
Definition: udf_common.h:18
@ MediaFloppy
Definition: udf_common.h:16
@ MediaDvdr
Definition: udf_common.h:17

Function Documentation

◆ UDFClrModified()

VOID UDFClrModified ( IN PVCB  Vcb)

Definition at line 26 of file misc_common.cpp.

29{
30 UDFPrint(("ClrModified\n"));
31 UDFInterlockedDecrement((PLONG)&(Vcb->Modified));
32} // end UDFClrModified()
#define UDFInterlockedDecrement(addr)
Definition: env_spec_w32.h:677
#define Vcb
Definition: cdprocs.h:1415
int32_t * PLONG
Definition: typedefs.h:58
#define UDFPrint(Args)
Definition: udffs.h:223

Referenced by UDFCompleteMount(), UDFEjectReqWaiter(), UDFFlushLogicalVolume(), UDFLoadPartDesc(), and UDFProcessSequence().

◆ UDFPreClrModified()

VOID UDFPreClrModified ( IN PVCB  Vcb)

Definition at line 18 of file misc_common.cpp.

21{
22 Vcb->Modified = 1;
23} // end UDFPreClrModified()

Referenced by UDFCompleteMount(), UDFEjectReqWaiter(), UDFFlushLogicalVolume(), UDFLoadPartDesc(), and UDFProcessSequence().

◆ UDFSetModified()

VOID UDFSetModified ( IN PVCB  Vcb)

Definition at line 9 of file misc_common.cpp.

12{
13 if(UDFInterlockedIncrement((PLONG)&(Vcb->Modified)) & 0x80000000)
14 Vcb->Modified = 2;
15} // end UDFSetModified()
#define UDFInterlockedIncrement(addr)
Definition: env_spec_w32.h:675

Referenced by UDFMarkSpaceAsXXXNoProtect_(), UDFSetLabelInfo(), UDFWriteInSector(), and UDFWriteSectors().

Variable Documentation

◆ UDFMediaClassName

struct UDF_MEDIA_CLASS_NAMES UDFMediaClassName[]
extern

Definition at line 29 of file udfinit.cpp.

Referenced by UDFReadRegKeys().