mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
24 lines
659 B
C++
24 lines
659 B
C++
/* Memory managment.
|
|
*
|
|
* Author: Daniel Krebs <github@daniel-krebs.net>
|
|
* SPDX-FileCopyrightText: 2017 Institute for Automation of Complex Power Systems, RWTH Aachen University
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <sys/mman.h>
|
|
#include <unistd.h>
|
|
|
|
#include <villas/memory.hpp>
|
|
|
|
using namespace villas;
|
|
|
|
bool HostRam::free(void *addr, size_t length) {
|
|
return munmap(addr, length) == 0;
|
|
}
|
|
|
|
void *HostRam::allocate(size_t length, int flags) {
|
|
const int mmap_flags = flags | MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT;
|
|
const int mmap_protection = PROT_READ | PROT_WRITE;
|
|
|
|
return mmap(nullptr, length, mmap_protection, mmap_flags, 0, 0);
|
|
}
|