Files
compute-runtime/runtime/os_interface/32bit_memory.h
Filip Hazubski 8b57d28116 clang-format: enable sorting includes
Include files are now grouped and sorted in following order:
1. Header file of the class the current file implements
2. Project files
3. Third party files
4. Standard library

Change-Id: If31af05652184169f7fee1d7ad08f1b2ed602cf0
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2019-02-27 11:50:07 +01:00

38 lines
829 B
C++

/*
* Copyright (C) 2017-2019 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "runtime/utilities/heap_allocator.h"
#include <memory>
#include <stdint.h>
namespace OCLRT {
const uintptr_t max32BitAddress = 0xffffffff;
extern bool is32BitOsAllocatorAvailable;
class Allocator32bit {
protected:
class OsInternals;
public:
Allocator32bit(uint64_t base, uint64_t size);
Allocator32bit(Allocator32bit::OsInternals *osInternals);
Allocator32bit();
MOCKABLE_VIRTUAL ~Allocator32bit();
uint64_t allocate(size_t &size);
uintptr_t getBase() const;
int free(uint64_t ptr, size_t size);
protected:
std::unique_ptr<OsInternals> osInternals;
std::unique_ptr<HeapAllocator> heapAllocator;
uint64_t base = 0;
uint64_t size = 0;
};
} // namespace OCLRT