19a44fdc9SAxel Dörfler /* 28c5a0accSAxel Dörfler * Copyright 2006-2011, Haiku, Inc. All Rights Reserved. 39a44fdc9SAxel Dörfler * Distributed under the terms of the MIT License. 49a44fdc9SAxel Dörfler * 59a44fdc9SAxel Dörfler * Authors: 69a44fdc9SAxel Dörfler * Axel Dörfler, axeld@pinc-software.de 79a44fdc9SAxel Dörfler */ 89a44fdc9SAxel Dörfler #ifndef SERVER_MEMORY_ALLOCATOR_H 99a44fdc9SAxel Dörfler #define SERVER_MEMORY_ALLOCATOR_H 109a44fdc9SAxel Dörfler 119a44fdc9SAxel Dörfler 129a44fdc9SAxel Dörfler #include <OS.h> 139a44fdc9SAxel Dörfler #include <List.h> 149a44fdc9SAxel Dörfler 15*cefef1c3SAxel Dörfler 169a44fdc9SAxel Dörfler namespace BPrivate { 179a44fdc9SAxel Dörfler 18*cefef1c3SAxel Dörfler 199a44fdc9SAxel Dörfler class ServerMemoryAllocator { 209a44fdc9SAxel Dörfler public: 219a44fdc9SAxel Dörfler ServerMemoryAllocator(); 229a44fdc9SAxel Dörfler ~ServerMemoryAllocator(); 239a44fdc9SAxel Dörfler 249a44fdc9SAxel Dörfler status_t InitCheck(); 259a44fdc9SAxel Dörfler 26*cefef1c3SAxel Dörfler status_t AddArea(area_id serverArea, area_id& _localArea, 27*cefef1c3SAxel Dörfler uint8*& _base, size_t size, 28*cefef1c3SAxel Dörfler bool readOnly = false); 299a44fdc9SAxel Dörfler void RemoveArea(area_id serverArea); 309a44fdc9SAxel Dörfler 31*cefef1c3SAxel Dörfler status_t AreaAndBaseFor(area_id serverArea, 32*cefef1c3SAxel Dörfler area_id& area, uint8*& base); 339a44fdc9SAxel Dörfler 349a44fdc9SAxel Dörfler private: 359a44fdc9SAxel Dörfler BList fAreas; 369a44fdc9SAxel Dörfler }; 379a44fdc9SAxel Dörfler 38*cefef1c3SAxel Dörfler 399a44fdc9SAxel Dörfler } // namespace BPrivate 409a44fdc9SAxel Dörfler 41*cefef1c3SAxel Dörfler 42*cefef1c3SAxel Dörfler #endif // SERVER_MEMORY_ALLOCATOR_H 43