Cache
inline void Cache(const T &data)
ASSERT(page->Cache() == this);
VMCache* Cache() const
ACPI_MEMORY_LIST *Cache;
Cache = AcpiOsAllocate (sizeof (ACPI_MEMORY_LIST));
if (!Cache)
memset (Cache, 0, sizeof (ACPI_MEMORY_LIST));
Cache->ListName = CacheName;
Cache->ObjectSize = ObjectSize;
Cache->MaxDepth = MaxDepth;
*ReturnCache = Cache;
ACPI_MEMORY_LIST *Cache)
if (!Cache)
while (Cache->ListHead)
Next = ACPI_GET_DESCRIPTOR_PTR (Cache->ListHead);
ACPI_FREE (Cache->ListHead);
Cache->ListHead = Next;
Cache->CurrentDepth--;
ACPI_MEMORY_LIST *Cache)
Status = AcpiOsPurgeCache (Cache);
AcpiOsFree (Cache);
ACPI_MEMORY_LIST *Cache,
if (!Cache || !Object)
if (Cache->CurrentDepth >= Cache->MaxDepth)
ACPI_MEM_TRACKING (Cache->TotalFreed++);
memset (Object, 0xCA, Cache->ObjectSize);
ACPI_SET_DESCRIPTOR_PTR (Object, Cache->ListHead);
Cache->ListHead = Object;
Cache->CurrentDepth++;
ACPI_MEMORY_LIST *Cache)
if (!Cache)
ACPI_MEM_TRACKING (Cache->Requests++);
if (Cache->ListHead)
Object = Cache->ListHead;
Cache->ListHead = ACPI_GET_DESCRIPTOR_PTR (Object);
Cache->CurrentDepth--;
ACPI_MEM_TRACKING (Cache->Hits++);
ACPI_GET_FUNCTION_NAME, Object, Cache->ListName));
memset (Object, 0, Cache->ObjectSize);
ACPI_MEM_TRACKING (Cache->TotalAllocated++);
if ((Cache->TotalAllocated - Cache->TotalFreed) > Cache->MaxOccupied)
Cache->MaxOccupied = Cache->TotalAllocated - Cache->TotalFreed;
Object = ACPI_ALLOCATE_ZEROED (Cache->ObjectSize);
ACPI_MEMORY_LIST *Cache;
Cache = AcpiOsAllocateZeroed (sizeof (ACPI_MEMORY_LIST));
if (!Cache)
Cache->ListName = ListName;
Cache->ObjectSize = ObjectSize;
*ReturnCache = Cache;
ACPI_MEMORY_LIST *Cache);
ACPI_OBJECT_CACHE_LIST Cache;
ACPI_CACHE_T *Cache);
ACPI_CACHE_T *Cache);
ACPI_CACHE_T *Cache);
ACPI_CACHE_T *Cache,
if (page->Cache() != NULL)
&& page->Cache() == fCache,
static object_cache* s##CLASS##Cache = NULL; \
if (s##CLASS##Cache == NULL) { \
s##CLASS##Cache = create_object_cache("pkgfs " #CLASS "s", \
return object_cache_alloc(s##CLASS##Cache, 0); \
object_cache_free(s##CLASS##Cache, block, 0); \
: Cache<off_t>(),
Cache<off_t>::Cacheable *
CacheableNode *node = (CacheableNode *)Cache<off_t>::Get(offset);
class NodeCache : public Cache<off_t> {
template<class T> class Cache
Cache(int32 max = 20)
virtual ~Cache()
: Cache<block_run>(),
Cache<block_run>::Cacheable *BlockRunCache::NewCacheable(block_run run)
class BlockRunCache : public Cache<block_run>
if (page->Cache() != NULL)
&& page->Cache() == fCache,
fPage->Cache()->ReleaseRefAndUnlock();
VMAnonymousCache* cache = dynamic_cast<VMAnonymousCache*>(page->Cache());
return insertAreaEntry->Cache();
if (createEntry->Cache() == cache)
return addEntry->Cache();
if (cache == page->Cache()) {
if (page != NULL && page->Cache() != this)
page, this, page->Cache());
if (page->Cache() != this) {
this, page->Cache());
VMCache* oldCache = page->Cache();
VMCache* cache = page->Cache();
if (page->Cache()->temporary)
} else if (page->Cache() != context.topCache && context.isWrite) {
sourcePage->Cache()->MarkPageUnbusy(sourcePage);
sourcePage->Cache()->IncrementCopiedPagesCount();
TPF(PageFaultDone(area->id, context.topCache, context.page->Cache(),
if (context.page->Cache() != context.topCache && !isWrite)
context.page->Cache()->IncrementFaultCount();
if (info->page->Cache() != cache) {
bool unmapPage = page->Cache() != topCache
if (page->Cache() != area->cache)
&& sPages[i].Cache() != NULL
&& sPages[i].Cache()->temporary && sPages[i].WiredCount() == 0) {
VMCache* cache = page->Cache();
VMCache* cache = page->Cache();
VMCache* cache = page->Cache();
PAGE_ASSERT(page, page->Cache() != NULL);
page->Cache()->AssertLocked();
kprintf("cache: %p\n", page->Cache());
set_debug_variable("_cache", (addr_t)page->Cache());
kprintf("%p %p %-7s %8s %5d %5d\n", page, page->Cache(),
vm_cache_type_to_string(page->Cache()->type),
fCache = page->Cache();
fCache = page->Cache();
if (page->Cache() != fCache
page->Cache()->MaxPagesPerAsyncWrite());
transfer.Cache()->Lock();
transfer.Cache()->Unlock();
struct VMCache* cache = transfer.Cache();
fCache(page->Cache()),
VMCache *cache = page->Cache();
typedef Cache<MallocMergedCacheStrategy> MallocMergedCache;
typedef Cache<MallocHashCacheStrategy> MallocHashCache;
Cache<HashCacheStrategy<AreaBackend> > cache("512byte hash cache", 512, 0, NULL,
class Cache : protected BaseCache {
Cache(const char *_name, size_t objectSize, size_t alignment,
class TypedCache : public Cache<MergedLinkCacheStrategy<Backend> > {
typedef Cache<Strategy> BaseType;