Lines Matching refs:ref

59 typedef fssh_status_t (*cache_func)(file_cache_ref *ref, void *cookie,
83 read_from_file(file_cache_ref *ref, void *cookie, fssh_off_t offset,
90 fssh_mutex_unlock(&ref->lock);
92 fssh_status_t status = vfs_read_pages(ref->node, cookie,
95 fssh_mutex_lock(&ref->lock);
102 write_to_file(file_cache_ref *ref, void *cookie, fssh_off_t offset,
109 fssh_mutex_unlock(&ref->lock);
111 fssh_status_t status = vfs_write_pages(ref->node, cookie,
114 fssh_mutex_lock(&ref->lock);
121 satisfy_cache_io(file_cache_ref *ref, void *cookie, cache_func function,
131 fssh_status_t status = function(ref, cookie, lastOffset, lastPageOffset,
149 fssh_panic("cache_io() called with NULL ref!\n");
151 file_cache_ref *ref = (file_cache_ref *)_cacheRef;
152 fssh_off_t fileSize = ref->virtual_size;
154 TRACE(("cache_io(ref = %p, offset = %lld, buffer = %p, size = %u, %s)\n",
155 ref, offset, (void *)buffer, *_size, doWrite ? "write" : "read"));
194 MutexLocker locker(ref->lock);
210 fssh_status_t status = satisfy_cache_io(ref, cookie, function,
220 return function(ref, cookie, lastOffset, lastPageOffset, lastBuffer,
241 file_cache_ref *ref = new(nothrow) file_cache_ref;
242 if (ref == NULL)
245 ref->mountID = mountID;
246 ref->nodeID = vnodeID;
247 ref->virtual_size = size;
250 fssh_status_t error = vfs_lookup_vnode(mountID, vnodeID, &ref->node);
254 delete ref;
262 fssh_mutex_init(&ref->lock, buffer);
264 return ref;
271 file_cache_ref *ref = (file_cache_ref *)_cacheRef;
273 if (ref == NULL)
276 TRACE(("file_cache_delete(ref = %p)\n", ref));
278 fssh_mutex_lock(&ref->lock);
279 fssh_mutex_destroy(&ref->lock);
281 delete ref;
310 file_cache_ref *ref = (file_cache_ref *)_cacheRef;
312 TRACE(("file_cache_set_size(ref = %p, size = %lld)\n", ref, size));
314 if (ref == NULL)
317 fssh_mutex_lock(&ref->lock);
318 ref->virtual_size = size;
319 fssh_mutex_unlock(&ref->lock);
328 file_cache_ref *ref = (file_cache_ref *)_cacheRef;
329 if (ref == NULL)
340 file_cache_ref *ref = (file_cache_ref *)_cacheRef;
342 TRACE(("file_cache_read(ref = %p, offset = %lld, buffer = %p, size = %u)\n",
343 ref, offset, bufferBase, *_size));
345 return cache_io(ref, cookie, offset, (fssh_addr_t)bufferBase, _size, false);
353 file_cache_ref *ref = (file_cache_ref *)_cacheRef;
355 fssh_status_t status = cache_io(ref, cookie, offset,
357 TRACE(("file_cache_write(ref = %p, offset = %lld, buffer = %p, size = %u) = %d\n",
358 ref, offset, buffer, *_size, status));