資源簡介
從LZMA SDK里面挑出來的,可用在純C項目里。
文件清單:
Alloc.c
Alloc.h
LzFind.c
LzFind.h
LzFindMt.c
LzFindMt.h
LzmaDec.c
LzmaDec.h
LzmaEnc.c
LzmaEnc.h
LzmaLib.c
LzmaLib.h
Threads.c
Threads.h
Types.h
文件清單:
Alloc.c
Alloc.h
LzFind.c
LzFind.h
LzFindMt.c
LzFindMt.h
LzmaDec.c
LzmaDec.h
LzmaEnc.c
LzmaEnc.h
LzmaLib.c
LzmaLib.h
Threads.c
Threads.h
Types.h
代碼片段和文件信息
/*?Alloc.c?--?Memory?allocation?functions
2008-09-24
Igor?Pavlov
Public?domain?*/
#ifdef?_WIN32
#include?
#endif
#include?
#include?“Alloc.h“
/*?#define?_SZ_ALLOC_DEBUG?*/
/*?use?_SZ_ALLOC_DEBUG?to?debug?alloc/free?operations?*/
#ifdef?_SZ_ALLOC_DEBUG
#include?
int?g_allocCount?=?0;
int?g_allocCountMid?=?0;
int?g_allocCountBig?=?0;
#endif
void?*MyAlloc(size_t?size)
{
??if?(size?==?0)
????return?0;
??#ifdef?_SZ_ALLOC_DEBUG
??{
????void?*p?=?malloc(size);
????fprintf(stderr?“\nAlloc?%10d?bytes?count?=?%10d??addr?=?%8X“?size?g_allocCount++?(unsigned)p);
????return?p;
??}
??#else
??return?malloc(size);
??#endif
}
void?MyFree(void?*address)
{
??#ifdef?_SZ_ALLOC_DEBUG
??if?(address?!=?0)
????fprintf(stderr?“\nFree;?count?=?%10d??addr?=?%8X“?--g_allocCount?(unsigned)address);
??#endif
??free(address);
}
#ifdef?_WIN32
void?*MidAlloc(size_t?size)
{
??if?(size?==?0)
????return?0;
??#ifdef?_SZ_ALLOC_DEBUG
??fprintf(stderr?“\nAlloc_Mid?%10d?bytes;??count?=?%10d“?size?g_allocCountMid++);
??#endif
??return?VirtualAlloc(0?size?MEM_COMMIT?PAGE_READWRITE);
}
void?MidFree(void?*address)
{
??#ifdef?_SZ_ALLOC_DEBUG
??if?(address?!=?0)
????fprintf(stderr?“\nFree_Mid;?count?=?%10d“?--g_allocCountMid);
??#endif
??if?(address?==?0)
????return;
??VirtualFree(address?0?MEM_RELEASE);
}
#ifndef?MEM_LARGE_PAGES
#undef?_7ZIP_LARGE_PAGES
#endif
#ifdef?_7ZIP_LARGE_PAGES
SIZE_T?g_LargePageSize?=?0;
typedef?SIZE_T?(WINAPI?*GetLargePageMinimumP)();
#endif
void?SetLargePageSize()
{
??#ifdef?_7ZIP_LARGE_PAGES
??SIZE_T?size?=?0;
??GetLargePageMinimumP?largePageMinimum?=?(GetLargePageMinimumP)
????????GetProcAddress(GetModuleHandle(TEXT(“kernel32.dll“))?“GetLargePageMinimum“);
??if?(largePageMinimum?==?0)
????return;
??size?=?largePageMinimum();
??if?(size?==?0?||?(size?&?(size?-?1))?!=?0)
????return;
??g_LargePageSize?=?size;
??#endif
}
void?*BigAlloc(size_t?size)
{
??if?(size?==?0)
????return?0;
??#ifdef?_SZ_ALLOC_DEBUG
??fprintf(stderr?“\nAlloc_Big?%10d?bytes;??count?=?%10d“?size?g_allocCountBig++);
??#endif
??
??#ifdef?_7ZIP_LARGE_PAGES
??if?(g_LargePageSize?!=?0?&&?g_LargePageSize?<=?(1?<30)?&&?size?>=?(1?<18))
??{
????void?*res?=?VirtualAlloc(0?(size?+?g_LargePageSize?-?1)?&?(~(g_LargePageSize?-?1))
????????MEM_COMMIT?|?MEM_LARGE_PAGES?PAGE_READWRITE);
????if?(res?!=?0)
??????return?res;
??}
??#endif
??return?VirtualAlloc(0?size?MEM_COMMIT?PAGE_READWRITE);
}
void?BigFree(void?*address)
{
??#ifdef?_SZ_ALLOC_DEBUG
??if?(address?!=?0)
????fprintf(stderr?“\nFree_Big;?count?=?%10d“?--g_allocCountBig);
??#endif
??
??if?(address?==?0)
????return;
??VirtualFree(address?0?MEM_RELEASE);
}
#endif
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????64757??2011-01-06?17:03??LzmaEnc.c
?????文件???????1524??2011-01-06?17:03??LzmaLib.c
?????文件???????2712??2011-01-06?17:03??Threads.c
?????文件????????660??2011-01-06?17:03??Alloc.h
?????文件???????3405??2011-01-06?17:03??LzFind.h
?????文件???????2546??2011-01-06?17:03??LzFindMt.h
?????文件???????7096??2011-01-06?17:03??LzmaDec.h
?????文件???????2985??2011-01-06?17:03??LzmaEnc.h
?????文件???????4479??2011-01-06?17:03??LzmaLib.h
?????文件???????2014??2011-01-06?17:03??Threads.h
?????文件???????5667??2011-02-18?15:56??Types.h
?????文件???????2811??2011-01-06?17:03??Alloc.c
?????文件??????20473??2011-01-06?17:03??LzFind.c
?????文件??????22964??2011-01-06?17:03??LzFindMt.c
?????文件??????28164??2011-02-18?16:42??LzmaDec.c
-----------?---------??----------?-----??----
???????????????172257????????????????????15
- 上一篇:步進電機課程設計(個人設計)
- 下一篇:Google Earth KML文件生成工具
評論
共有 條評論