Lines Matching refs:Slab
47 // base Slab implementation, opaque to the backend used.
60 struct Slab : DoublyLinkedListLinkImpl<Slab> {
66 typedef std::pair<Slab *, ObjectLink *> ObjectInfo;
71 Slab *ConstructSlab(Slab *slab, void *pages, size_t byteCount,
73 void DestructSlab(Slab *slab);
79 typedef DoublyLinkedList<Slab> SlabList;
115 // Slab implementation, glues together the frontend, backend as
116 // well as the Slab strategy used.
128 Slab *newSlab = fStrategy.NewSlab(flags);
175 struct Slab : BaseCache::Slab {
179 BaseCache::Slab *_ConstructSlab(Slab *slab, void *pages, size_t tailSpace,
186 void _DestructSlab(BaseCache::Slab *slab)
189 Backend::FreePages(fParent, ((Slab *)slab)->id);
203 typedef typename BaseCacheStrategy<Backend>::Slab Slab;
222 Slab *slab = _SlabInPages(LowerBoundary(object, _SlabSize()));
226 BaseCache::Slab *NewSlab(uint32_t flags)
241 pages, sizeof(Slab), _Linkage, this);
244 void ReturnSlab(BaseCache::Slab *slab)
252 return BaseCacheStrategy<Backend>::SlabSize(sizeof(Slab));
261 Slab *_SlabInPages(const void *pages) const
263 return (Slab *)(((uint8_t *)pages) + _SlabSize() - sizeof(Slab));
320 BaseCache::Slab *slab;
385 typedef typename BaseCacheStrategy<Backend>::Slab Slab;
397 BaseCache::Slab *NewSlab(uint32_t flags)
401 Slab *slab = fSlabCache.Alloc(flags);
424 void ReturnSlab(BaseCache::Slab *slab)
428 fSlabCache.Free((Slab *)slab);
437 status_t _PrepareSlab(BaseCache *parent, Slab *slab, void *pages,
473 TypedCache<Slab, Backend> fSlabCache;