sitara_depot/utils/FileToSharedMem/MemMapping.h

25 lines
965 B
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <stdint.h>
#include <fcntl.h>
#include <sys/mman.h>
class MemMapping
{
public:
/*
* memOpenFlags - параметры доступа к /dev/mem, например O_RDWR, O_SYNC
* addr - физический адрес в памяти, м.б. не кратен размеру страницы
* mmapProt - параметры mmap, например PROT_READ | PROT_WRITE
* mmapFlags - параметры mmap, например MAP_SHARED
*/
MemMapping(int memOpenFlags, size_t addr, size_t size, int mmapProt, int mmapFlags);
~MemMapping();
void * get() { return m_mapAddr + m_pageOffset; };
private:
void * m_mapAddr; //замапированный виртуальный адрес, кратный размеру страницы
size_t m_size; //замапированный размер
size_t m_pageOffset; //отступ исходного addr от начала страницы
};