Python mmap.MAP_SHARED Examples
The following are 30
code examples of mmap.MAP_SHARED().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
mmap
, or try the search function
.
Example #1
Source File: simple-touch.py From pywayland with Apache License 2.0 | 8 votes |
def create_shm_buffer(touch, width, height): stride = width * 4 size = stride * height with tempfile.TemporaryFile() as f: f.write(b"\x64" * size) f.flush() fd = f.fileno() touch["data"] = mmap.mmap( fd, size, mmap.MAP_SHARED, mmap.PROT_READ | mmap.PROT_WRITE ) pool = touch["shm"].create_pool(fd, size) touch["buffer"] = pool.create_buffer( 0, width, height, stride, WlShm.format.argb8888.value ) pool.destroy()
Example #2
Source File: RemoteGraphicsView.py From tf-pose with Apache License 2.0 | 6 votes |
def __init__(self, *args, **kwds): ## Create shared memory for rendered image #pg.dbg(namespace={'r': self}) if sys.platform.startswith('win'): self.shmtag = "pyqtgraph_shmem_" + ''.join([chr((random.getrandbits(20)%25) + 97) for i in range(20)]) self.shm = mmap.mmap(-1, mmap.PAGESIZE, self.shmtag) # use anonymous mmap on windows else: self.shmFile = tempfile.NamedTemporaryFile(prefix='pyqtgraph_shmem_') self.shmFile.write(b'\x00' * (mmap.PAGESIZE+1)) fd = self.shmFile.fileno() self.shm = mmap.mmap(fd, mmap.PAGESIZE, mmap.MAP_SHARED, mmap.PROT_WRITE) atexit.register(self.close) GraphicsView.__init__(self, *args, **kwds) self.scene().changed.connect(self.update) self.img = None self.renderTimer = QtCore.QTimer() self.renderTimer.timeout.connect(self.renderView) self.renderTimer.start(16)
Example #3
Source File: qemu.py From redqueen with GNU Affero General Public License v3.0 | 6 votes |
def init(self): self.control = safe_socket(socket.AF_UNIX) self.control.settimeout(None) self.control.setblocking(1) while True: try: self.control.connect(self.control_filename) break except socket_error: pass self.kafl_shm_f = os.open(self.bitmap_filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) self.fs_shm_f = os.open(self.payload_filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(self.kafl_shm_f, self.bitmap_size) os.ftruncate(self.fs_shm_f, (128 << 10)) self.kafl_shm = mmap.mmap(self.kafl_shm_f, self.bitmap_size, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) self.fs_shm = mmap.mmap(self.fs_shm_f, (128 << 10), mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) return True
Example #4
Source File: qemu.py From redqueen with GNU Affero General Public License v3.0 | 6 votes |
def __set_binary(self, filename, binaryfile, max_size): shm_fd = os.open(filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(shm_fd, max_size) shm = mmap.mmap(shm_fd, max_size, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) shm.seek(0x0) shm.write('\x00' * max_size) shm.seek(0x0) f = open(binaryfile, "rb") bytes = f.read(1024) if bytes: shm.write(bytes) while bytes != "": bytes = f.read(1024) if bytes: shm.write(bytes) shm.flush() f.close() shm.close() os.close(shm_fd)
Example #5
Source File: master.py From redqueen with GNU Affero General Public License v3.0 | 6 votes |
def wipe(self): filter_bitmap_fd = os.open("/dev/shm/kafl_filter0", os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(filter_bitmap_fd, self.config.config_values['BITMAP_SHM_SIZE']) filter_bitmap = mmap.mmap(filter_bitmap_fd, self.config.config_values['BITMAP_SHM_SIZE'], mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) for i in range(self.config.config_values['BITMAP_SHM_SIZE']): filter_bitmap[i] = '\x00' filter_bitmap.close() os.close(filter_bitmap_fd) filter_bitmap_fd = os.open("/dev/shm/kafl_tfilter", os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(filter_bitmap_fd, 0x1000000) filter_bitmap = mmap.mmap(filter_bitmap_fd, 0x1000000, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) for i in range(0x1000000): filter_bitmap[i] = '\x00' filter_bitmap.close() os.close(filter_bitmap_fd)
Example #6
Source File: RemoteGraphicsView.py From qgisSpaceSyntaxToolkit with GNU General Public License v3.0 | 6 votes |
def __init__(self, *args, **kwds): ## Create shared memory for rendered image #pg.dbg(namespace={'r': self}) if sys.platform.startswith('win'): self.shmtag = "pyqtgraph_shmem_" + ''.join([chr((random.getrandbits(20)%25) + 97) for i in range(20)]) self.shm = mmap.mmap(-1, mmap.PAGESIZE, self.shmtag) # use anonymous mmap on windows else: self.shmFile = tempfile.NamedTemporaryFile(prefix='pyqtgraph_shmem_') self.shmFile.write(b'\x00' * (mmap.PAGESIZE+1)) fd = self.shmFile.fileno() self.shm = mmap.mmap(fd, mmap.PAGESIZE, mmap.MAP_SHARED, mmap.PROT_WRITE) atexit.register(self.close) GraphicsView.__init__(self, *args, **kwds) self.scene().changed.connect(self.update) self.img = None self.renderTimer = QtCore.QTimer() self.renderTimer.timeout.connect(self.renderView) self.renderTimer.start(16)
Example #7
Source File: RemoteGraphicsView.py From qgisSpaceSyntaxToolkit with GNU General Public License v3.0 | 6 votes |
def remoteSceneChanged(self, data): w, h, size, newfile = data #self._sizeHint = (whint, hhint) if self.shm is None or self.shm.size != size: if self.shm is not None: self.shm.close() if sys.platform.startswith('win'): self.shmtag = newfile ## on windows, we create a new tag for every resize self.shm = mmap.mmap(-1, size, self.shmtag) ## can't use tmpfile on windows because the file can only be opened once. elif sys.platform == 'darwin': self.shmFile.close() self.shmFile = open(self._view.shmFileName(), 'r') self.shm = mmap.mmap(self.shmFile.fileno(), size, mmap.MAP_SHARED, mmap.PROT_READ) else: self.shm = mmap.mmap(self.shmFile.fileno(), size, mmap.MAP_SHARED, mmap.PROT_READ) self.shm.seek(0) data = self.shm.read(w*h*4) self._img = QtGui.QImage(data, w, h, QtGui.QImage.Format_ARGB32) self._img.data = data # data must be kept alive or PySide 1.2.1 (and probably earlier) will crash. self.update()
Example #8
Source File: views.py From supervisoradmin with GNU General Public License v3.0 | 6 votes |
def get(self,request): n=12 try: size = os.path.getsize(ACTIVITY_LOG) with open(ACTIVITY_LOG, "rb") as f: # for Windows the mmap parameters are different fm = mmap.mmap(f.fileno(), 0, mmap.MAP_SHARED, mmap.PROT_READ) for i in xrange(size - 1, -1, -1): if fm[i] == '\n': n -= 1 if n == -1: break lines = fm[i + 1 if i else 0:].splitlines() return JsonResponse({'status': "success", 'log': lines}) except Exception as err: return JsonResponse({'status' : "error",'messagge' : err}) finally: try: fm.close() except (UnboundLocalError, TypeError): return JsonResponse({'status':"error", 'message': "Activity log file is empty"}) #index
Example #9
Source File: RemoteGraphicsView.py From soapy with GNU General Public License v3.0 | 6 votes |
def __init__(self, *args, **kwds): ## Create shared memory for rendered image #pg.dbg(namespace={'r': self}) if sys.platform.startswith('win'): self.shmtag = "pyqtgraph_shmem_" + ''.join([chr((random.getrandbits(20)%25) + 97) for i in range(20)]) self.shm = mmap.mmap(-1, mmap.PAGESIZE, self.shmtag) # use anonymous mmap on windows else: self.shmFile = tempfile.NamedTemporaryFile(prefix='pyqtgraph_shmem_') self.shmFile.write(b'\x00' * (mmap.PAGESIZE+1)) fd = self.shmFile.fileno() self.shm = mmap.mmap(fd, mmap.PAGESIZE, mmap.MAP_SHARED, mmap.PROT_WRITE) atexit.register(self.close) GraphicsView.__init__(self, *args, **kwds) self.scene().changed.connect(self.update) self.img = None self.renderTimer = QtCore.QTimer() self.renderTimer.timeout.connect(self.renderView) self.renderTimer.start(16)
Example #10
Source File: RemoteGraphicsView.py From soapy with GNU General Public License v3.0 | 6 votes |
def remoteSceneChanged(self, data): w, h, size, newfile = data #self._sizeHint = (whint, hhint) if self.shm is None or self.shm.size != size: if self.shm is not None: self.shm.close() if sys.platform.startswith('win'): self.shmtag = newfile ## on windows, we create a new tag for every resize self.shm = mmap.mmap(-1, size, self.shmtag) ## can't use tmpfile on windows because the file can only be opened once. elif sys.platform == 'darwin': self.shmFile.close() self.shmFile = open(self._view.shmFileName(), 'r') self.shm = mmap.mmap(self.shmFile.fileno(), size, mmap.MAP_SHARED, mmap.PROT_READ) else: self.shm = mmap.mmap(self.shmFile.fileno(), size, mmap.MAP_SHARED, mmap.PROT_READ) self.shm.seek(0) data = self.shm.read(w*h*4) self._img = QtGui.QImage(data, w, h, QtGui.QImage.Format_ARGB32) self._img.data = data # data must be kept alive or PySide 1.2.1 (and probably earlier) will crash. self.update()
Example #11
Source File: motordevice.py From ev3 with Apache License 2.0 | 6 votes |
def open_device(): global _initialized if not _initialized: global _pwmfile _pwmfile = os.open(lms2012.PWM_DEVICE_NAME, os.O_RDWR | os.O_SYNC) global _motorfile _motorfile = os.open(lms2012.MOTOR_DEVICE_NAME, os.O_RDWR | os.O_SYNC) MOTORDATAArrray = lms2012.MOTORDATA * 4 global _motormm _motormm = mmap(fileno=_motorfile, length=sizeof(MOTORDATAArrray), flags=MAP_SHARED, prot=PROT_READ | PROT_WRITE, offset=0) global _motordata _motordata = MOTORDATAArrray.from_buffer(_motormm) _initialized = True os.write(_pwmfile, struct.pack('B', lms2012.opPROGRAM_START)) # This does not look required. Types are TACHO (for the big engines) and MINITACHO for the gun one # and firmware should recognize them properly. # def set_types(types): # os.write(_pwmfile, struct.pack('5B', lms2012.opOUTPUT_SET_TYPE, *types))
Example #12
Source File: reader.py From hase with BSD 2-Clause "Simplified" License | 6 votes |
def perf_events(trace_file: str) -> Generator[ct.Structure, None, None]: with open(trace_file, "rb+") as f: fd = f.fileno() size = os.fstat(fd).st_size with MMap(fd, size, mmap.PROT_READ, mmap.MAP_SHARED) as mm: header_size = ct.sizeof(perf_event_header) i = 0 while i != size: assert (size - i) >= header_size ev = perf_event_header.from_address(mm.addr + i) struct_factory = EVENTS.get(ev.type) if struct_factory is None: raise Exception("unexpected perf_event type: %d", ev.type) struct_type = struct_factory(ev.size) struct_size = ct.sizeof(struct_type) assert (size - i) >= struct_size struct = struct_type.from_address(mm.addr + i) yield struct i += ev.size
Example #13
Source File: shell_logger.py From thefuck with MIT License | 6 votes |
def shell_logger(output): """Logs shell output to the `output`. Works like unix script command with `-f` flag. """ if not os.environ.get('SHELL'): logs.warn("Shell logger doesn't support your platform.") sys.exit(1) fd = os.open(output, os.O_CREAT | os.O_TRUNC | os.O_RDWR) os.write(fd, b'\x00' * const.LOG_SIZE_IN_BYTES) buffer = mmap.mmap(fd, const.LOG_SIZE_IN_BYTES, mmap.MAP_SHARED, mmap.PROT_WRITE) return_code = _spawn(os.environ['SHELL'], partial(_read, buffer)) sys.exit(return_code)
Example #14
Source File: Overclock.py From PyMenu with GNU General Public License v3.0 | 6 votes |
def setClockPython(newClock): with open("/dev/mem", os.O_RDWR) as f: CPPCR = (0x10 >> 2) m = newClock / 6 if(m >= 200): m = 200 if(m < 4): m = 4 try: map.mmap(1024, mmap.MAP_SHARED, mmap.PROT_READ | mmap.PROT_WRITE, 0x10000000) map.seek(CPPCR) map.write((m << 24) | 0x090520) map.close() except Exception as ex: print(str(ex))
Example #15
Source File: qemu.py From kAFL with GNU General Public License v2.0 | 6 votes |
def init(self): self.control = socket.socket(socket.AF_UNIX) while True: try: self.control.connect(self.control_filename) #self.control.connect(self.control_filename) break except socket_error: pass #time.sleep(0.01) self.kafl_shm_f = os.open(self.bitmap_filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) self.fs_shm_f = os.open(self.payload_filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) #argv_fd = os.open(self.argv_filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(self.kafl_shm_f, self.bitmap_size) os.ftruncate(self.fs_shm_f, (128 << 10)) #os.ftruncate(argv_fd, (4 << 10)) self.kafl_shm = mmap.mmap(self.kafl_shm_f, self.bitmap_size, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) self.fs_shm = mmap.mmap(self.fs_shm_f, (128 << 10), mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) return True
Example #16
Source File: qemu.py From kAFL with GNU General Public License v2.0 | 6 votes |
def __set_binary(self, filename, binaryfile, max_size): shm_fd = os.open(filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(shm_fd, max_size) shm = mmap.mmap(shm_fd, max_size, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) shm.seek(0x0) shm.write('\x00' * max_size) shm.seek(0x0) f = open(binaryfile, "rb") bytes = f.read(1024) if bytes: shm.write(bytes) while bytes != "": bytes = f.read(1024) if bytes: shm.write(bytes) f.close() shm.close() os.close(shm_fd)
Example #17
Source File: master.py From kAFL with GNU General Public License v2.0 | 6 votes |
def wipe(self): filter_bitmap_fd = os.open("/dev/shm/kafl_filter0", os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(filter_bitmap_fd, self.config.config_values['BITMAP_SHM_SIZE']) filter_bitmap = mmap.mmap(filter_bitmap_fd, self.config.config_values['BITMAP_SHM_SIZE'], mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) for i in range(self.config.config_values['BITMAP_SHM_SIZE']): filter_bitmap[i] = '\x00' filter_bitmap.close() os.close(filter_bitmap_fd) filter_bitmap_fd = os.open("/dev/shm/kafl_tfilter", os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(filter_bitmap_fd, 0x1000000) filter_bitmap = mmap.mmap(filter_bitmap_fd, 0x1000000, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) for i in range(0x1000000): filter_bitmap[i] = '\x00' filter_bitmap.close() os.close(filter_bitmap_fd)
Example #18
Source File: RemoteGraphicsView.py From tf-pose with Apache License 2.0 | 6 votes |
def remoteSceneChanged(self, data): w, h, size, newfile = data #self._sizeHint = (whint, hhint) if self.shm is None or self.shm.size != size: if self.shm is not None: self.shm.close() if sys.platform.startswith('win'): self.shmtag = newfile ## on windows, we create a new tag for every resize self.shm = mmap.mmap(-1, size, self.shmtag) ## can't use tmpfile on windows because the file can only be opened once. elif sys.platform == 'darwin': self.shmFile.close() self.shmFile = open(self._view.shmFileName(), 'r') self.shm = mmap.mmap(self.shmFile.fileno(), size, mmap.MAP_SHARED, mmap.PROT_READ) else: self.shm = mmap.mmap(self.shmFile.fileno(), size, mmap.MAP_SHARED, mmap.PROT_READ) self.shm.seek(0) data = self.shm.read(w*h*4) self._img = QtGui.QImage(data, w, h, QtGui.QImage.Format_ARGB32) self._img.data = data # data must be kept alive or PySide 1.2.1 (and probably earlier) will crash. self.update()
Example #19
Source File: communicator.py From kAFL with GNU General Public License v2.0 | 5 votes |
def __get_shm(self, type_id, slave_id): if slave_id in self.tmp_shm[type_id]: shm = self.tmp_shm[type_id][slave_id] else: shm_fd = os.open(self.files[type_id] + str(slave_id), os.O_RDWR | os.O_SYNC) shm = mmap.mmap(shm_fd, self.sizes[type_id]*self.tasks_per_requests, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) self.tmp_shm[type_id][slave_id] = shm return shm
Example #20
Source File: client.py From HRShell with GNU General Public License v3.0 | 5 votes |
def create_shellcode_Func(restype=c_int64, argtypes=()): if not is_os_64bit(): restype = c_int32 mm = mmap.mmap(-1, len(shellcode), flags=mmap.MAP_SHARED | mmap.MAP_ANONYMOUS, prot=mmap.PROT_WRITE | mmap.PROT_READ | mmap.PROT_EXEC) mm.write(shellcode) ctypes_buffer = c_int.from_buffer(mm) function = CFUNCTYPE(restype, *argtypes)(addressof(ctypes_buffer)) function._avoid_gc_for_mmap = mm return function
Example #21
Source File: mmio.py From throttled with MIT License | 5 votes |
def _open(self, physaddr, size): if not isinstance(physaddr, (int, long)): raise TypeError("Invalid physaddr type, should be integer.") if not isinstance(size, (int, long)): raise TypeError("Invalid size type, should be integer.") pagesize = os.sysconf(os.sysconf_names['SC_PAGESIZE']) self._physaddr = physaddr self._size = size self._aligned_physaddr = physaddr - (physaddr % pagesize) self._aligned_size = size + (physaddr - self._aligned_physaddr) try: fd = os.open("/dev/mem", os.O_RDWR | os.O_SYNC) except OSError as e: raise MMIOError(e.errno, "Opening /dev/mem: " + e.strerror) try: self.mapping = mmap.mmap( fd, self._aligned_size, flags=mmap.MAP_SHARED, prot=mmap.PROT_WRITE, offset=self._aligned_physaddr) except OSError as e: raise MMIOError(e.errno, "Mapping /dev/mem: " + e.strerror) try: os.close(fd) except OSError as e: raise MMIOError(e.errno, "Closing /dev/mem: " + e.strerror) # Methods
Example #22
Source File: qemu.py From redqueen with GNU Affero General Public License v3.0 | 5 votes |
def open_global_bitmap(self): self.global_bitmap_fd = os.open(self.config.argument_values['work_dir'] + "/bitmaps/bitmap", os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(self.global_bitmap_fd, self.bitmap_size) self.global_bitmap = mmap.mmap(self.global_bitmap_fd, self.bitmap_size, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ)
Example #23
Source File: communicator.py From redqueen with GNU Affero General Public License v3.0 | 5 votes |
def __get_shm(self, type_id, slave_id): if slave_id in self.tmp_shm[type_id]: shm = self.tmp_shm[type_id][slave_id] else: shm_fd = os.open(self.files[type_id] + str(slave_id), os.O_RDWR | os.O_SYNC) shm = mmap.mmap(shm_fd, self.sizes[type_id]*self.tasks_per_requests, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) self.tmp_shm[type_id][slave_id] = shm return shm
Example #24
Source File: bitmap.py From grimoire with GNU Affero General Public License v3.0 | 5 votes |
def create_bitmap(self, name): self.bitmap_fd = os.open(self.config.argument_values['work_dir'] + "/bitmaps/" + name, os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(self.bitmap_fd, self.config.config_values['BITMAP_SHM_SIZE']) self.bitmap = mmap.mmap(self.bitmap_fd, self.bitmap_size, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ)
Example #25
Source File: qemu.py From grimoire with GNU Affero General Public License v3.0 | 5 votes |
def init(self): self.control = safe_socket(socket.AF_UNIX) self.control.settimeout(None) self.control.setblocking(1) while True: try: self.control.connect(self.control_filename) # self.control.connect(self.control_filename) break except socket_error: pass # time.sleep(0.01) self.kafl_shm_f = os.open(self.bitmap_filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) self.fs_shm_f = os.open(self.payload_filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) open(self.tracedump_filename, "wb").close() os.symlink(self.tracedump_filename, self.config.argument_values['work_dir'] + "/pt_trace_dump_" + self.qemu_id) os.symlink(self.payload_filename, self.config.argument_values['work_dir'] + "/payload_" + self.qemu_id) os.symlink(self.bitmap_filename, self.config.argument_values['work_dir'] + "/bitmap_" + self.qemu_id) # argv_fd = os.open(self.argv_filename, os.O_RDWR | os.O_SYNC | os.O_CREAT) os.ftruncate(self.kafl_shm_f, self.bitmap_size) os.ftruncate(self.fs_shm_f, (128 << 10)) # os.ftruncate(argv_fd, (4 << 10)) self.kafl_shm = mmap.mmap(self.kafl_shm_f, self.bitmap_size, mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) self.c_bitmap = (ctypes.c_uint8 * self.bitmap_size).from_buffer(self.kafl_shm) self.last_bitmap_wrapper = ExecutionResult(None, None, None, None) self.fs_shm = mmap.mmap(self.fs_shm_f, (128 << 10), mmap.MAP_SHARED, mmap.PROT_WRITE | mmap.PROT_READ) return True
Example #26
Source File: rpgpio_private.py From PyCNC with MIT License | 5 votes |
def __init__(self, phys_address, size=PAGE_SIZE): """ Create object which maps physical memory to Python's mmap object. :param phys_address: based address of physical memory """ self._size = size phys_address -= phys_address % PAGE_SIZE fd = self._open_dev("/dev/mem") self._memmap = mmap.mmap(fd, size, flags=mmap.MAP_SHARED, prot=mmap.PROT_READ | mmap.PROT_WRITE, offset=phys_address) self._close_dev(fd) atexit.register(self.cleanup)
Example #27
Source File: mmio.py From python-periphery with MIT License | 5 votes |
def _open(self, physaddr, size): if not isinstance(physaddr, (int, long)): raise TypeError("Invalid physaddr type, should be integer.") if not isinstance(size, (int, long)): raise TypeError("Invalid size type, should be integer.") pagesize = os.sysconf(os.sysconf_names['SC_PAGESIZE']) self._physaddr = physaddr self._size = size self._aligned_physaddr = physaddr - (physaddr % pagesize) self._aligned_size = size + (physaddr - self._aligned_physaddr) try: fd = os.open("/dev/mem", os.O_RDWR | os.O_SYNC) except OSError as e: raise MMIOError(e.errno, "Opening /dev/mem: " + e.strerror) try: self.mapping = mmap.mmap(fd, self._aligned_size, flags=mmap.MAP_SHARED, prot=(mmap.PROT_READ | mmap.PROT_WRITE), offset=self._aligned_physaddr) except OSError as e: raise MMIOError(e.errno, "Mapping /dev/mem: " + e.strerror) try: os.close(fd) except OSError as e: raise MMIOError(e.errno, "Closing /dev/mem: " + e.strerror) # Methods
Example #28
Source File: sharedbuffer.py From pycopia with Apache License 2.0 | 5 votes |
def __init__(self, size=8192): assert size % os.sysconf("SC_PAGESIZE") == 0, "size must be a multiple of system's page size." self.bufsize = size self._buf = mmap.mmap(-1, size, flags=mmap.MAP_SHARED|mmap.MAP_ANONYMOUS, prot=mmap.PROT_READ|mmap.PROT_WRITE ) self._lock = 0 # simple locking
Example #29
Source File: ttf.py From flappy-bird-py with GNU General Public License v2.0 | 5 votes |
def __init__(self, filename): """Read the given TrueType file. :Parameters: `filename` The name of any Windows, OS2 or Macintosh Truetype file. The object must be closed (see `close`) after use. An exception will be raised if the file does not exist or cannot be read. """ if not filename: filename = '' len = os.stat(filename).st_size self._fileno = os.open(filename, os.O_RDONLY) if hasattr(mmap, 'MAP_SHARED'): self._data = mmap.mmap(self._fileno, len, mmap.MAP_SHARED, mmap.PROT_READ) else: self._data = mmap.mmap(self._fileno, len, None, mmap.ACCESS_READ) offsets = _read_offset_table(self._data, 0) self._tables = {} for table in _read_table_directory_entry.array(self._data, offsets.size, offsets.num_tables): self._tables[table.tag] = table self._names = None self._horizontal_metrics = None self._character_advances = None self._character_kernings = None self._glyph_kernings = None self._character_map = None self._glyph_map = None self._font_selection_flags = None self.header = \ _read_head_table(self._data, self._tables['head'].offset) self.horizontal_header = \ _read_horizontal_header(self._data, self._tables['hhea'].offset)
Example #30
Source File: v3d.py From py-videocore with MIT License | 5 votes |
def __enter__(self): self.lib.bcm_host_init() peri_addr = self.lib.bcm_host_get_peripheral_address() peri_size = self.lib.bcm_host_get_peripheral_size() page_size = os.sysconf("SC_PAGE_SIZE") assert(not (peri_addr & (page_size - 1))) fd = os.open('/dev/mem', os.O_RDWR) self.peri = mmap.mmap(fd, peri_size, mmap.MAP_SHARED, mmap.PROT_READ|mmap.PROT_WRITE, offset = peri_addr) self.peri_arr = np.frombuffer(self.peri, dtype=np.uint32) os.close(fd) return self