diff --git a/tinygrad/runtime/support/hcq.py b/tinygrad/runtime/support/hcq.py index ba85faef63..b7a5cfa166 100644 --- a/tinygrad/runtime/support/hcq.py +++ b/tinygrad/runtime/support/hcq.py @@ -28,10 +28,7 @@ class FileIOInterface: def __del__(self): if hasattr(self, 'fd'): os.close(self.fd) def ioctl(self, request, arg): return fcntl.ioctl(self.fd, request, arg) - def mmap(self, start, sz, prot, flags, offset): - x = libc.mmap(start, sz, prot, flags, self.fd, offset) - if x == 0xffffffffffffffff: raise OSError(f"Failed to mmap {sz} bytes at {hex(start)}: {os.strerror(ctypes.get_errno())}") - return x + def mmap(self, start, sz, prot, flags, offset): return FileIOInterface._mmap(start, sz, prot, flags, self.fd, offset) def read(self, size=None, binary=False, offset=None): if offset is not None: self.seek(offset) with open(self.fd, "rb" if binary else "r", closefd=False) as file: return file.read(size) @@ -41,11 +38,13 @@ class FileIOInterface: def listdir(self): return os.listdir(self.path) def seek(self, offset): os.lseek(self.fd, offset, os.SEEK_SET) @staticmethod - def anon_mmap(start, sz, prot, flags, offset): - x = libc.mmap(start, sz, prot, flags, -1, offset) + def _mmap(start, sz, prot, flags, fd, offset): + x = libc.mmap(start, sz, prot, flags, fd, offset) if x == 0xffffffffffffffff: raise OSError(f"Failed to mmap {sz} bytes at {hex(start)}: {os.strerror(ctypes.get_errno())}") return x @staticmethod + def anon_mmap(start, sz, prot, flags, offset): return FileIOInterface._mmap(start, sz, prot, flags, -1, offset) + @staticmethod def munmap(buf, sz): return libc.munmap(buf, sz) @staticmethod def exists(path): return os.path.exists(path)