docs: def futimens(fd, ns):
      """
      set inode atime and mtime
  
      ns is (atime, mtime), a pair of struct timespec
      with nanosecond resolution.
      """
  
      # ctime can't easily be reset
      # also, we have no way to do mandatory locking without
      # changing the ctime.
      times = ffi.new('struct timespec[2]')
      atime, mtime = ns
      assert 0 <= atime.tv_nsec < 1e9
      assert 0 <= mtime.tv_nsec < 1e9
      times[0] = atime
      times[1] = mtime
      if lib.futimens(fd, times) != 0:
          raise IOError(
              ffi.errno, os.strerror(ffi.errno),
              (fd, atime.tv_sec, atime.tv_nsec, mtime.tv_sec, mtime.tv_nsec))