20 #define UDF_BUG_CHECK_ID UDF_FILE_UDF_INFO_ALLOC 23 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
24 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
25 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
26 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
27 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
28 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
29 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
30 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
32 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
33 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
34 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
35 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
36 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
37 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
38 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
39 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8
53 #if defined (_X86_) && defined (_MSC_VER) && !defined(__clang__) 73 mov ecx,[ecx]
Vcb.LB2B_Bits
97 #else // NO X86 optimization , use generic C/C++ 100 for(
i=PartNum;
i<
Vcb->PartitionMaps;
i++,
pm++) {
101 if(
pm->PartitionNum == PartNum)
103 return (Addr -
pm->PartitionRoot) >>
Vcb->LB2B_Bits;
120 if(Addr->partitionReferenceNum >=
Vcb->PartitionMaps) {
121 AdPrint((
"UDFPartLbaToPhys: part %x, lbn %x (err)\n",
122 Addr->partitionReferenceNum, Addr->logicalBlockNum));
123 if(
Vcb->PartitionMaps &&
125 AdPrint((
"UDFPartLbaToPhys: try to recover: part %x -> %x\n",
126 Addr->partitionReferenceNum,
Vcb->PartitionMaps-1));
127 Addr->partitionReferenceNum = (
USHORT)(
Vcb->PartitionMaps-1);
134 for(
i=Addr->partitionReferenceNum; i<Vcb->PartitionMaps;
i++) {
135 if(
Vcb->Partitions[
i].PartitionNum == Addr->partitionReferenceNum) {
136 a =
Vcb->Partitions[
i].PartitionRoot +
137 (Addr->logicalBlockNum <<
Vcb->LB2B_Bits);
138 if(
a >
Vcb->LastPossibleLBA) {
139 AdPrint((
"UDFPartLbaToPhys: root %x, lbn %x, lba %x (err1)\n",
140 Vcb->Partitions[
i].PartitionRoot, Addr->logicalBlockNum,
a));
147 a =
Vcb->Partitions[
i-1].PartitionRoot +
148 (Addr->logicalBlockNum <<
Vcb->LB2B_Bits);
149 if(
a >
Vcb->LastPossibleLBA) {
150 AdPrint((
"UDFPartLbaToPhys: i %x, root %x, lbn %x, lba %x (err2)\n",
151 i,
Vcb->Partitions[
i-1].PartitionRoot, Addr->logicalBlockNum,
a));
209 for(;
i!=0xffffffff;
i--,
pm--) {
210 if( ((
root =
pm->PartitionRoot) <= Lba) &&
211 ((
root +
pm->PartitionLen) > Lba) )
return (
uint16)
pm->PartitionNum;
228 if(PartNum == (
uint32)-1)
return 0;
229 if(PartNum == (
uint32)-2)
return Vcb->Partitions[0].PartitionRoot;
230 for(
i=PartNum;
i<
Vcb->PartitionMaps;
i++) {
231 if(
Vcb->Partitions[
i].PartitionNum == PartNum)
return Vcb->Partitions[
i].PartitionRoot;
248 if(PartNum == (
uint32)-1)
return Vcb->LastLBA;
249 if(PartNum == (
uint32)-2) PartNum =
Vcb->PartitionMaps-1;
250 for(
i=PartNum;
i<
Vcb->PartitionMaps;
i++) {
251 if(
Vcb->Partitions[
i].PartitionNum == PartNum)
252 return (
Vcb->Partitions[
i].PartitionRoot +
253 Vcb->Partitions[
i].PartitionLen);
255 return (
Vcb->Partitions[
i-1].PartitionRoot +
256 Vcb->Partitions[
i-1].PartitionLen);
309 if(PartNum == (
uint32)-1)
return Vcb->LastLBA;
310 for(
i=PartNum;
i<
Vcb->PartitionMaps;
i++) {
311 if(
Vcb->Partitions[
i].PartitionNum == PartNum)
312 return Vcb->Partitions[
i].PartitionLen;
314 return (
Vcb->Partitions[
i-1].PartitionRoot +
315 Vcb->Partitions[
i-1].PartitionLen);
324 #if defined (_X86_) && defined (_MSC_VER) 492 #else // NO X86 optimization , use generic C/C++ 515 ASSERT((bit == 0) || (bit == 1));
523 while(
j < ((
i<Lim) ? 32 : lLim) ) {
536 if((bit && (
a==0xffffffff)) ||
550 #ifndef UDF_READ_ONLY_BUILD 584 i = (1<<
Vcb->LB2B_Bits)-1;
605 if(!best_len || (best_len >
len)) {
620 if(
Vcb->CDR_Mode)
break;
626 if(!best_len &&
align) {
632 (*MaxExtLen) = best_len;
636 (*MaxExtLen) = max_len;
639 #endif //UDF_READ_ONLY_BUILD 641 #ifdef UDF_CHECK_DISK_ALLOCATION 646 UDFCheckSpaceAllocation_(
650 #ifdef UDF_TRACK_ONDISK_ALLOCATION
664 BSh =
Vcb->BlockSizeBits;
668 #ifdef UDF_TRACK_ONDISK_ALLOCATION 669 AdPrint((
"ChkAlloc:Map:%x:File:%x:Line:%d\n",
674 #endif //UDF_TRACK_ONDISK_ALLOCATION 677 #ifdef UDF_TRACK_ONDISK_ALLOCATION 678 AdPrint((
"ChkAlloc:%x:%s:%x:@:%x:(%x):File:%x:Line:%d\n",
683 (Map[
i].extLength >> 30),
687 #endif //UDF_TRACK_ONDISK_ALLOCATION 705 #ifdef UDF_CHECK_EXTENT_SIZE_ALIGNMENT 707 #endif //UDF_CHECK_EXTENT_SIZE_ALIGNMENT 709 lba = Map[
i].extLocation;
712 if(
lba >
Vcb->LastPossibleLBA) {
725 if(
lba+
j >
Vcb->LastPossibleLBA) {
727 AdPrint((
"USED Mapping covers block(s) beyond media @%x\n",
lba+
j));
732 AdPrint((
"USED Mapping covers FREE block(s) @%x\n",
lba+
j));
741 if(
lba+
j >
Vcb->LastPossibleLBA) {
743 AdPrint((
"USED Mapping covers block(s) beyond media @%x\n",
lba+
j));
748 AdPrint((
"FREE Mapping covers USED block(s) @%x\n",
lba+
j));
758 #endif //UDF_CHECK_DISK_ALLOCATION 768 #define BIT_C (sizeof(Vcb->BSBM_Bitmap[0])*8) 770 if(
Vcb->BSBM_Bitmap) {
772 Vcb->FSBM_Bitmap[
j] &= ~
Vcb->BSBM_Bitmap[
j];
786 #ifdef UDF_TRACK_ONDISK_ALLOCATION
797 #ifdef UDF_TRACK_ONDISK_ALLOCATION 799 #endif //UDF_TRACK_ONDISK_ALLOCATION 806 BSh =
Vcb->BlockSizeBits;
818 #ifdef UDF_TRACK_ONDISK_ALLOCATION 819 AdPrint((
"Alloc:%x:%s:%x:@:%x:File:%x:Line:%d\n",
821 asUsed ? ((asXXX &
AS_BAD) ?
"B" :
"U") :
"F",
827 #endif //UDF_TRACK_ONDISK_ALLOCATION 830 #ifdef UDF_CHECK_EXTENT_SIZE_ALIGNMENT 832 #endif //UDF_CHECK_EXTENT_SIZE_ALIGNMENT 838 lba = Map[
i].extLocation;
841 if(
lba >
Vcb->LastPossibleLBA) {
849 #ifdef UDF_TRACK_ONDISK_ALLOCATION 853 #endif //UDF_TRACK_ONDISK_ALLOCATION 862 #ifdef UDF_TRACK_ONDISK_ALLOCATION 866 #endif //UDF_TRACK_ONDISK_ALLOCATION 884 #ifdef UDF_TRACK_ONDISK_ALLOCATION 888 #endif //UDF_TRACK_ONDISK_ALLOCATION 910 Map[
i].extLocation = 0;
913 #ifdef UDF_TRACK_ONDISK_ALLOCATION 917 #endif //UDF_TRACK_ONDISK_ALLOCATION 932 #ifdef UDF_TRACK_ONDISK_ALLOCATION
940 if(!Map[0].extLength) {
942 ASSERT(!Map[0].extLocation);
948 #ifdef UDF_TRACK_ONDISK_ALLOCATION 950 #else //UDF_TRACK_ONDISK_ALLOCATION 952 #endif //UDF_TRACK_ONDISK_ALLOCATION 957 #ifndef UDF_READ_ONLY_BUILD 970 #ifdef UDF_TRACK_ALLOC_FREE_EXTENT
980 LBS =
Vcb->LBlockSize;
981 BSh =
Vcb->BlockSizeBits;
983 ExtInfo->Mapping =
NULL;
991 goto no_free_space_err;
997 SearchLim, &
len, AllocFlags);
1002 Ext.extLength = blen<<BSh;
1007 Ext.extLength =
len<<BSh;
1012 if(ExtInfo->Mapping) {
1015 ExtInfo->Mapping =
NULL;
1018 ExtInfo->Length = 0;
1031 AdPrint((
"newly allocated extent contains BB\n"));
1035 blen +=
Ext.extLength>>BSh;
1041 if(!(ExtInfo->Mapping)) {
1043 #ifdef UDF_TRACK_ALLOC_FREE_EXTENT 1045 #else // UDF_TRACK_ALLOC_FREE_EXTENT 1047 #endif // UDF_TRACK_ALLOC_FREE_EXTENT 1048 if(!ExtInfo->Mapping) {
1051 ExtInfo->Length = 0;
1068 if(!ExtInfo->Mapping) {
1071 ExtInfo->Length = 0;
1076 ExtInfo->Length =
Length;
1079 #endif //UDF_READ_ONLY_BUILD 1113 if(!
Vcb->CDR_Mode &&
1115 for(
i=0;
i<
Vcb->PartitionMaps;
i++) {
1130 return s >>
Vcb->LB2B_Bits;
1146 s=
Vcb->LastPossibleLBA;
1147 }
else if(!
Vcb->CDR_Mode) {
1148 for(
i=0;
i<
Vcb->PartitionMaps;
i++) {
1149 s+=
Vcb->Partitions[
i].PartitionLen;
1153 s=
Vcb->LastPossibleLBA -
Vcb->Partitions[0].PartitionRoot;
1155 return s >>
Vcb->LB2B_Bits;
1174 if((bm = (
uint32*)(((
PVCB)_Vcb)->FSBM_Bitmap)))
1177 if((bm = (
uint32*)(((
PVCB)_Vcb)->ZSBM_Bitmap)))
1199 #pragma warning(disable:4035) // re-enable below 1234 return ((
BOOLEAN)(((((
uint32*)(arr))[(bit)>>5]) >> ((bit)&31)) &1));
1272 (((
uint32*)(arr))[(bit)>>5]) |= (((
uint32)1) << ((bit)&31));
1283 #if defined(_MSC_VER) && !defined(__clang__) 1306 jnz
short sb_loop_cont
1309 jb
short sb_loop_cont
1327 jnz
short sb_loop_cont
1380 (((
uint32*)(arr))[(bit)>>5]) &= (~(((
uint32)1) << ((bit)&31)));
1391 #if defined(_MSC_VER) && !defined(__clang__) 1414 jnz
short cp_loop_cont
1417 jb
short cp_loop_cont
1435 jnz
short cp_loop_cont
1455 #pragma warning(default:4035) #define UDFAcquireResourceExclusive(Resource, CanWait)
#define EXTENT_FLAG_VERIFY
#define STATUS_INSUFFICIENT_RESOURCES
_In_ ULONG _In_ ULONG _In_ ULONG Length
static void xor(unsigned char *dst, const unsigned char *a, const unsigned char *b, const int count)
ecx edi ebx edx edi decl ecx esi eax jecxz decl eax andl eax esi movl edx movl TEMP incl eax andl eax ecx incl ebx eax jnz xchgl ecx incl TEMP esp ecx subl ebx pushl ecx ecx edx ecx ecx mm0 mm4 mm0 mm4 mm1 mm5 mm1 mm5 mm2 mm6 mm2 mm6 mm3 mm7 mm3 mm7 paddd mm0 paddd mm4 paddd mm0 paddd mm4 paddd mm0 paddd mm4 movq mm1 movq mm5 mm1 mm5 paddd mm0 paddd mm4 mm0 mm4 packssdw mm0 packssdw mm4 mm1 punpckldq mm0 pand mm1 pand mm0 por mm1 movq edi esi edx edi decl ecx jnz popl ecx ecx jecxz mm0 mm0 mm1 mm1 mm2 mm2 mm3 mm3 paddd mm0 paddd mm0 paddd mm0 movq mm1 mm1 paddd mm0 mm0 packssdw mm0 movd eax movw edi esi edx esi ecx mm0 mm4 mm0 mm4 mm1 mm5 mm1 mm5 mm2 mm6 mm2 mm6 mm3 mm7 mm3 mm7 paddd mm0 paddd mm4 paddd mm0 paddd mm4 paddd mm0 paddd mm4 movq mm1 movq mm5 mm1 mm5 paddd mm1 paddd mm5 mm1 mm5 packssdw mm1 packssdw mm5 psubd mm0 psubd mm4 psubsw mm0 psubsw mm4 mm1 punpckldq mm0 pand mm1 pand mm0 por mm1 movq edi esi edx edi decl ecx jnz mm0 mm0 mm1 mm1 mm2 mm2 mm3 mm3 paddd mm0 paddd mm0 paddd mm0 movq mm1 mm1 paddd mm1 mm1 packssdw mm1 psubd mm0 psubsw mm0 movd eax movw edi emms popl ebx popl esi popl edi mov ebp
int64 __fastcall UDFGetFreeSpace(IN PVCB Vcb)
ecx edi ebx edx edi decl ecx esi eax jecxz decl eax andl eax esi movl edx movl TEMP incl eax andl eax ecx incl ebx eax jnz xchgl ecx incl TEMP esi
#define UDFReleaseResource(Resource)
void UDFMarkSpaceAsXXX_(IN PVCB Vcb, IN PEXTENT_MAP Map, IN uint32 asXXX)
#define WCACHE_BLOCK_USED
struct _EXCEPTION_POINTERS *_CRTIMP __declspec(noreturn) void __cdecl terminate(void)
#define UDFCheckFreeBitOwner(Vcb, i)
ios_base &_STLP_CALL dec(ios_base &__s)
int align(int length, int align)
#define cmp(status, error)
static calc_node_t * pop(void)
void UDFMarkBadSpaceAsUsed(IN PVCB Vcb, IN lba_t lba, IN ULONG len)
#define UDF_VCB_FLAGS_RAW_DISK
#define UDF_VAT_FREE_ENTRY
uint32 __fastcall UDFGetPartFreeSpace(IN PVCB Vcb, IN uint32 partNum)
#define UDFSetZeroBits(arr, bit, bc)
SIZE_T UDFFindMinSuitableExtent(IN PVCB Vcb, IN uint32 Length, IN uint32 SearchStart, IN uint32 SearchLim, OUT uint32 *MaxExtLen, IN uint8 AllocFlags)
uint32 UDFIsBlockAllocated(IN void *_Vcb, IN uint32 Lba)
uint32 __fastcall UDFPartLbaToPhys(IN PVCB Vcb, IN lb_addr *Addr)
#define UDFClrBit(arr, bit)
struct _ACPI_EFI_BOOT_SERVICES * BS
#define UDFSetBits(arr, bit, bc)
#define EXTENT_NOT_RECORDED_NOT_ALLOCATED
#define UDFMarkSpaceAsXXXNoProtect(Vcb, FileInfo, Map, asXXX)
PEXTENT_MAP __fastcall UDFExtentToMapping_(IN PEXTENT_AD Extent)
int64 UDFGetExtentLength(IN PEXTENT_MAP Extent)
uint32 __fastcall UDFPartStart(PVCB Vcb, uint32 PartNum)
#define UDFSetBit(arr, bit)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define UDFSetUsedBits(arr, bit, bc)
VOID WCacheDiscardBlocks__(IN PW_CACHE Cache, IN PVOID Context, IN lba_t ReqLba, IN ULONG BCount)
ecx edi ebx edx edi decl ecx esi eax jecxz decl eax andl eax esi movl eax
OSSTATUS UDFAllocFreeExtent_(IN PVCB Vcb, IN int64 Length, IN uint32 SearchStart, IN uint32 SearchLim, OUT PEXTENT_INFO ExtInfo, IN uint8 AllocFlags)
ecx edi ebx edx edi decl ecx esi eax jecxz decl eax andl eax esi movl edx movl TEMP incl eax andl eax ecx incl ebx eax jnz xchgl ecx incl TEMP esp ecx subl ebx pushl ecx ecx edx ecx ecx mm0 mm4 mm0 mm4 mm1 mm5 mm1 mm5 mm2 mm6 mm2 mm6 mm3 mm7 mm3 mm7 paddd mm0 paddd mm4 paddd mm0 paddd mm4 paddd mm0 paddd mm4 movq mm1 movq mm5 mm1 mm5 paddd mm0 paddd mm4 mm0 mm4 packssdw mm0 packssdw mm4 mm1 punpckldq mm0 pand mm1 pand mm0 por mm1 movq edi esi edx edi decl ecx jnz popl ecx ecx jecxz mm0 mm0 mm1 mm1 mm2 mm2 mm3 mm3 paddd mm0 paddd mm0 paddd mm0 movq mm1 mm1 paddd mm0 mm0 packssdw mm0 movd eax movw edi esi edx edi
PEXTENT_MAP __fastcall UDFMergeMappings(IN PEXTENT_MAP Extent, IN PEXTENT_MAP Extent2)
#define WCACHE_BLOCK_ZERO
#define UDFCheckUsedBitOwner(Vcb, i, o)
static const int8 bit_count_tab[]
#define UDF_VCB_IC_INSTANT_COMPAT_ALLOC_DESCS
#define EXTENT_NOT_RECORDED_ALLOCATED
uint32 __fastcall UDFPartLen(PVCB Vcb, uint32 PartNum)
#define UDFExtentToMapping(e)
ecx edi ebx edx edi decl ecx esi eax jecxz decl eax andl ebx
static struct proto Ext[]
#define UDF_VCB_ASSUME_ALL_USED
#define UDF_MAX_EXTENT_LENGTH
#define UDFAcquireResourceShared(Resource, CanWait)
#define UDFSetFreeBits(arr, bit, bc)
VOID UDFSetModified(IN PVCB Vcb)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
uint32 __fastcall UDFPartEnd(PVCB Vcb, uint32 PartNum)
#define UDFGetUsedBit(arr, bit)
uint16 partitionReferenceNum
OSSTATUS __fastcall UDFUnmapRange(IN PVCB Vcb, IN uint32 Lba, IN uint32 BCount)
#define UDF_CHECK_BITMAP_RESOURCE(Vcb)
#define UDFGetZeroBit(arr, bit)
#define UDFGetFreeBit(arr, bit)
uint32 __fastcall UDFGetPartNumByPhysLba(IN PVCB Vcb, IN uint32 Lba)
void UDFMarkSpaceAsXXXNoProtect_(IN PVCB Vcb, IN PEXTENT_MAP Map, IN uint32 asXXX)
GLboolean GLboolean GLboolean GLboolean a
ecx edi ebx edx edi decl ecx esi eax jecxz decl eax andl eax esi movl edx
#define EXTENT_FLAG_ALLOC_SEQUENTIAL
#define UDFGetBit(arr, bit)
static void push(calc_node_t *op)
BOOLEAN __fastcall UDFCheckArea(IN PVCB Vcb, IN lba_t LBA, IN uint32 BCount)
#define UDF_EXTENT_LENGTH_MASK
SIZE_T __stdcall UDFGetBitmapLen(uint32 *Bitmap, SIZE_T Offs, SIZE_T Lim)
uint32 UDFPhysLbaToPart(IN PVCB Vcb, IN uint32 PartNum, IN uint32 Addr)
int64 __fastcall UDFGetTotalSpace(IN PVCB Vcb)
#define LBA_OUT_OF_EXTENT