diff --git a/script/provider.py b/script/provider.py index 15d6d04..26083b7 100755 --- a/script/provider.py +++ b/script/provider.py @@ -263,8 +263,9 @@ class FilesystemProvider: 0x11: FilesystemProvider.write, 0x12: FilesystemProvider.mkdir, 0x13: FilesystemProvider.readdir, - 0x14: FilesystemProvider.rmdir, - 0x15: FilesystemProvider.statfs + 0x14: FilesystemProvider.rmdir, + 0x15: FilesystemProvider.statfs, + 0x15: FilesystemProvider.utimens, } async def run(self): @@ -411,6 +412,21 @@ class FilesystemProvider: result = -ex.errno writer.write_result(result) + def utimens(self, reader, writer): + path = reader.read_path(self.root) + atime = reader.read_u64() + atime_ns = reader.read_u32() + mtime = reader.read_u64() + mtime_ns = reader.read_u32() + fd = reader.read_u64() + result = 0 + try: + os.utime(path, (atime, mtime), ns = (atime_ns, mtime_ns)) + except OSError as ex: + result = -ex.errno + writer.write_result(result) + + def open(self, reader, writer): path = reader.read_path(self.root) flags = reader.read_openflags()