xref: /haiku/src/add-ons/kernel/file_systems/ramfs/AllocationInfo.h (revision b55a57da7173b9af0432bd3e148d03f06161d036)
1 // AllocationInfo.h
2 
3 #ifndef ALLOCATION_INFO_H
4 #define ALLOCATION_INFO_H
5 
6 #include <SupportDefs.h>
7 
8 class AllocationInfo {
9 public:
10 	AllocationInfo();
11 	~AllocationInfo();
12 
13 	void AddNodeTableAllocation(size_t arraySize, size_t vectorSize,
14 								size_t elementSize, size_t elementCount);
15 	void AddDirectoryEntryTableAllocation(size_t arraySize, size_t vectorSize,
16 										  size_t elementSize,
17 										  size_t elementCount);
18 	void AddNodeAttributeTableAllocation(size_t arraySize, size_t vectorSize,
19 										 size_t elementSize,
20 										 size_t elementCount);
21 
22 	void AddAttributeAllocation(size_t size);
23 	void AddDirectoryAllocation();
24 	void AddEntryAllocation();
25 	void AddFileAllocation(size_t size);
26 	void AddSymLinkAllocation(size_t size);
27 
28 	void AddAreaAllocation(size_t size, size_t count = 1);
29 	void AddBlockAllocation(size_t size);
30 	void AddListAllocation(size_t capacity, size_t elementSize);
31 	void AddOtherAllocation(size_t size, size_t count = 1);
32 	void AddStringAllocation(size_t size);
33 
34 	void Dump() const;
35 
36 private:
37 	size_t	fNodeTableArraySize;
38 	size_t	fNodeTableVectorSize;
39 	size_t	fNodeTableElementCount;
40 	size_t	fDirectoryEntryTableArraySize;
41 	size_t	fDirectoryEntryTableVectorSize;
42 	size_t	fDirectoryEntryTableElementCount;
43 	size_t	fNodeAttributeTableArraySize;
44 	size_t	fNodeAttributeTableVectorSize;
45 	size_t	fNodeAttributeTableElementCount;
46 
47 	size_t	fAttributeCount;
48 	size_t	fAttributeSize;
49 	size_t	fDirectoryCount;
50 	size_t	fEntryCount;
51 	size_t	fFileCount;
52 	size_t	fFileSize;
53 	size_t	fSymLinkCount;
54 	size_t	fSymLinkSize;
55 
56 	size_t	fAreaCount;
57 	size_t	fAreaSize;
58 	size_t	fBlockCount;
59 	size_t	fBlockSize;
60 	size_t	fListCount;
61 	size_t	fListSize;
62 	size_t	fOtherCount;
63 	size_t	fOtherSize;
64 	size_t	fStringCount;
65 	size_t	fStringSize;
66 };
67 
68 #endif	// ALLOCATION_INFO_H
69