Lines Matching refs:file

24 static int dfs_devfs_open(struct dfs_file *file)  in dfs_devfs_open()  argument
28 RT_ASSERT(file != RT_NULL); in dfs_devfs_open()
29 RT_ASSERT(file->vnode->ref_count > 0); in dfs_devfs_open()
31 if (file->vnode->ref_count > 1) in dfs_devfs_open()
33 if (file->vnode->type == FT_DIRECTORY in dfs_devfs_open()
34 && !(file->flags & O_DIRECTORY)) in dfs_devfs_open()
38 file->fpos = 0; in dfs_devfs_open()
41 if (!S_ISDIR(file->vnode->mode)) in dfs_devfs_open()
44 struct dfs_dentry *de = file->dentry; in dfs_devfs_open()
58 file->vnode->data = device; in dfs_devfs_open()
62 ret = device->fops->open(file); in dfs_devfs_open()
68 else if (device->ops && file->vnode->ref_count == 1) in dfs_devfs_open()
70 if (device->ops && file->vnode->ref_count == 1) in dfs_devfs_open()
86 static int dfs_devfs_close(struct dfs_file *file) in dfs_devfs_close() argument
91 RT_ASSERT(file != RT_NULL); in dfs_devfs_close()
92 RT_ASSERT(file->vnode->ref_count > 0); in dfs_devfs_close()
94 if (file->vnode && file->vnode->data) in dfs_devfs_close()
97 device = (rt_device_t)file->vnode->data; in dfs_devfs_close()
102 ret = device->fops->close(file); in dfs_devfs_close()
104 else if (file->vnode->ref_count == 1) in dfs_devfs_close()
106 if (device->ops && file->vnode->ref_count == 1) in dfs_devfs_close()
140 static ssize_t dfs_devfs_read(struct dfs_file *file, void *buf, size_t count, off_t *pos) in dfs_devfs_read() argument
145 RT_ASSERT(file != RT_NULL); in dfs_devfs_read()
147 if (file->vnode && file->vnode->data) in dfs_devfs_read()
150 device = (rt_device_t)file->vnode->data; in dfs_devfs_read()
155 ret = device->fops->read(file, buf, count, pos); in dfs_devfs_read()
176 static ssize_t dfs_devfs_write(struct dfs_file *file, const void *buf, size_t count, off_t *pos) in dfs_devfs_write() argument
181 RT_ASSERT(file != RT_NULL); in dfs_devfs_write()
183 if(file->vnode->data) in dfs_devfs_write()
186 device = (rt_device_t)file->vnode->data; in dfs_devfs_write()
188 if ((file->dentry->pathname[0] == '/') && (file->dentry->pathname[1] == '\0')) in dfs_devfs_write()
194 ret = device->fops->write(file, buf, count, pos); in dfs_devfs_write()
216 static int dfs_devfs_ioctl(struct dfs_file *file, int cmd, void *args) in dfs_devfs_ioctl() argument
221 RT_ASSERT(file != RT_NULL); in dfs_devfs_ioctl()
223 if (file->vnode && file->vnode->data) in dfs_devfs_ioctl()
226 device = (rt_device_t)file->vnode->data; in dfs_devfs_ioctl()
228 if ((file->dentry->pathname[0] == '/') && (file->dentry->pathname[1] == '\0')) in dfs_devfs_ioctl()
234 ret = device->fops->ioctl(file, cmd, args); in dfs_devfs_ioctl()
246 static int dfs_devfs_getdents(struct dfs_file *file, struct dirent *dirp, uint32_t count) in dfs_devfs_getdents() argument
250 RT_ASSERT(file != RT_NULL); in dfs_devfs_getdents()
255 static int dfs_devfs_poll(struct dfs_file *file, struct rt_pollreq *req) in dfs_devfs_poll() argument
260 RT_ASSERT(file != RT_NULL); in dfs_devfs_poll()
262 if (file->vnode && file->vnode->data) in dfs_devfs_poll()
265 device = (rt_device_t)file->vnode->data; in dfs_devfs_poll()
270 mask = device->fops->poll(file, req); in dfs_devfs_poll()
278 static int dfs_devfs_flush(struct dfs_file *file) in dfs_devfs_flush() argument
283 RT_ASSERT(file != RT_NULL); in dfs_devfs_flush()
285 if (file->vnode && file->vnode->data) in dfs_devfs_flush()
288 device = (rt_device_t)file->vnode->data; in dfs_devfs_flush()
293 ret = device->fops->flush(file); in dfs_devfs_flush()
301 static off_t dfs_devfs_lseek(struct dfs_file *file, off_t offset, int wherece) in dfs_devfs_lseek() argument
306 RT_ASSERT(file != RT_NULL); in dfs_devfs_lseek()
308 if (file->vnode && file->vnode->data) in dfs_devfs_lseek()
311 device = (rt_device_t)file->vnode->data; in dfs_devfs_lseek()
316 ret = device->fops->lseek(file, offset, wherece); in dfs_devfs_lseek()
324 static int dfs_devfs_truncate(struct dfs_file *file, off_t offset) in dfs_devfs_truncate() argument
329 RT_ASSERT(file != RT_NULL); in dfs_devfs_truncate()
331 if (file->vnode && file->vnode->data) in dfs_devfs_truncate()
334 device = (rt_device_t)file->vnode->data; in dfs_devfs_truncate()
339 ret = device->fops->truncate(file, offset); in dfs_devfs_truncate()
347 static int dfs_devfs_mmap(struct dfs_file *file, struct lwp_avl_struct *mmap) in dfs_devfs_mmap() argument
352 RT_ASSERT(file != RT_NULL); in dfs_devfs_mmap()
354 if (file->vnode && file->vnode->data) in dfs_devfs_mmap()
357 device = (rt_device_t)file->vnode->data; in dfs_devfs_mmap()
362 ret = device->fops->mmap(file, mmap); in dfs_devfs_mmap()
370 static int dfs_devfs_lock(struct dfs_file *file, struct file_lock *flock) in dfs_devfs_lock() argument
375 RT_ASSERT(file != RT_NULL); in dfs_devfs_lock()
377 if (file->vnode && file->vnode->data) in dfs_devfs_lock()
380 device = (rt_device_t)file->vnode->data; in dfs_devfs_lock()
385 ret = device->fops->lock(file, flock); in dfs_devfs_lock()
393 static int dfs_devfs_flock(struct dfs_file *file, int operation, struct file_lock *flock) in dfs_devfs_flock() argument
398 RT_ASSERT(file != RT_NULL); in dfs_devfs_flock()
400 if (file->vnode && file->vnode->data) in dfs_devfs_flock()
403 device = (rt_device_t)file->vnode->data; in dfs_devfs_flock()
408 ret = device->fops->flock(file, operation, flock); in dfs_devfs_flock()