Bela
Real-time, ultra-low-latency audio and sensor processing system for BeagleBone Black
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Mmap.h
1 #pragma once
2 #include <sys/mman.h>
3 class Mmap
4 {
5 public:
6  Mmap();
7  ~Mmap();
8 
17  void* map(off_t offset, size_t size);
18 
23  void unmap();
24 
28  template<typename T>
29  static int read(off_t offset, T& value)
30  {
31  Mmap mmap;
32  T* ptr = (T*)mmap.map(offset, sizeof(T));
33  if(ptr) {
34  value = ptr[0];
35  return 0;
36  } else
37  return -1;
38 
39  }
40 
44  template<typename T>
45  static int write(off_t offset, const T& value)
46  {
47  Mmap mmap;
48  T* ptr = (T*)mmap.map(offset, sizeof(T));
49  if(ptr) {
50  ptr[0] = value;
51  return 0;
52  } else
53  return -1;
54  }
55 private:
56  int fd;
57  void* ptr;
58  size_t size;
59 };
60 
static int write(off_t offset, const T &value)
Definition: Mmap.h:45
static int read(off_t offset, T &value)
Definition: Mmap.h:29
void * map(off_t offset, size_t size)
void unmap()
Definition: Mmap.h:3