Lines Matching refs:dirent

67     struct ramfs_dirent *dirent;  in dfs_ramfs_lookup()  local
79 for (dirent = rt_list_entry(ramfs->root.list.next, struct ramfs_dirent, list); in dfs_ramfs_lookup()
80 dirent != &(ramfs->root); in dfs_ramfs_lookup()
81 dirent = rt_list_entry(dirent->list.next, struct ramfs_dirent, list)) in dfs_ramfs_lookup()
83 if (rt_strcmp(dirent->name, subpath) == 0) in dfs_ramfs_lookup()
85 *size = dirent->size; in dfs_ramfs_lookup()
87 return dirent; in dfs_ramfs_lookup()
98 struct ramfs_dirent *dirent; in dfs_ramfs_read() local
100 dirent = (struct ramfs_dirent *)file->vnode->data; in dfs_ramfs_read()
101 RT_ASSERT(dirent != NULL); in dfs_ramfs_read()
109 rt_memcpy(buf, &(dirent->data[file->pos]), length); in dfs_ramfs_read()
119 struct ramfs_dirent *dirent; in dfs_ramfs_write() local
122 dirent = (struct ramfs_dirent *)fd->vnode->data; in dfs_ramfs_write()
123 RT_ASSERT(dirent != NULL); in dfs_ramfs_write()
125 ramfs = dirent->fs; in dfs_ramfs_write()
131 ptr = rt_memheap_realloc(&(ramfs->memheap), dirent->data, fd->pos + count); in dfs_ramfs_write()
140 dirent->data = ptr; in dfs_ramfs_write()
141 dirent->size = fd->pos + count; in dfs_ramfs_write()
142 fd->vnode->size = dirent->size; in dfs_ramfs_write()
146 rt_memcpy(dirent->data + fd->pos, buf, count); in dfs_ramfs_write()
183 struct ramfs_dirent *dirent; in dfs_ramfs_open() local
211 dirent = dfs_ramfs_lookup(ramfs, file->vnode->path, &size); in dfs_ramfs_open()
212 if (dirent == NULL) in dfs_ramfs_open()
214 if (dirent == &(ramfs->root)) /* it's root directory */ in dfs_ramfs_open()
225 dirent = dfs_ramfs_lookup(ramfs, file->vnode->path, &size); in dfs_ramfs_open()
226 if (dirent == &(ramfs->root)) /* it's root directory */ in dfs_ramfs_open()
231 if (dirent == NULL) in dfs_ramfs_open()
238 dirent = (struct ramfs_dirent *) in dfs_ramfs_open()
241 if (dirent == NULL) in dfs_ramfs_open()
252 strncpy(dirent->name, name_ptr, RAMFS_NAME_MAX); in dfs_ramfs_open()
254 rt_list_init(&(dirent->list)); in dfs_ramfs_open()
255 dirent->data = NULL; in dfs_ramfs_open()
256 dirent->size = 0; in dfs_ramfs_open()
257 dirent->fs = ramfs; in dfs_ramfs_open()
261 rt_list_insert_after(&(ramfs->root.list), &(dirent->list)); in dfs_ramfs_open()
272 dirent->size = 0; in dfs_ramfs_open()
273 if (dirent->data != NULL) in dfs_ramfs_open()
275 rt_memheap_free(dirent->data); in dfs_ramfs_open()
276 dirent->data = NULL; in dfs_ramfs_open()
281 file->vnode->data = dirent; in dfs_ramfs_open()
282 file->vnode->size = dirent->size; in dfs_ramfs_open()
300 struct ramfs_dirent *dirent; in dfs_ramfs_stat() local
304 dirent = dfs_ramfs_lookup(ramfs, path, &size); in dfs_ramfs_stat()
306 if (dirent == NULL) in dfs_ramfs_stat()
313 st->st_size = dirent->size; in dfs_ramfs_stat()
320 struct dirent *dirp, in dfs_ramfs_getdents()
324 struct dirent *d; in dfs_ramfs_getdents()
325 struct ramfs_dirent *dirent; in dfs_ramfs_getdents() local
328 dirent = (struct ramfs_dirent *)file->vnode->data; in dfs_ramfs_getdents()
330 ramfs = dirent->fs; in dfs_ramfs_getdents()
333 if (dirent != &(ramfs->root)) in dfs_ramfs_getdents()
337 count = (count / sizeof(struct dirent)); in dfs_ramfs_getdents()
344 for (dirent = rt_list_entry(dirent->list.next, struct ramfs_dirent, list); in dfs_ramfs_getdents()
345 dirent != &(ramfs->root) && index < end; in dfs_ramfs_getdents()
346 dirent = rt_list_entry(dirent->list.next, struct ramfs_dirent, list)) in dfs_ramfs_getdents()
353 d->d_reclen = (rt_uint16_t)sizeof(struct dirent); in dfs_ramfs_getdents()
354 rt_strncpy(d->d_name, dirent->name, RAMFS_NAME_MAX); in dfs_ramfs_getdents()
362 return count * sizeof(struct dirent); in dfs_ramfs_getdents()
369 struct ramfs_dirent *dirent; in dfs_ramfs_unlink() local
374 dirent = dfs_ramfs_lookup(ramfs, path, &size); in dfs_ramfs_unlink()
375 if (dirent == NULL) in dfs_ramfs_unlink()
378 rt_list_remove(&(dirent->list)); in dfs_ramfs_unlink()
379 if (dirent->data != NULL) in dfs_ramfs_unlink()
380 rt_memheap_free(dirent->data); in dfs_ramfs_unlink()
381 rt_memheap_free(dirent); in dfs_ramfs_unlink()
390 struct ramfs_dirent *dirent; in dfs_ramfs_rename() local
397 dirent = dfs_ramfs_lookup(ramfs, newpath, &size); in dfs_ramfs_rename()
398 if (dirent != NULL) in dfs_ramfs_rename()
401 dirent = dfs_ramfs_lookup(ramfs, oldpath, &size); in dfs_ramfs_rename()
402 if (dirent == NULL) in dfs_ramfs_rename()
405 strncpy(dirent->name, newpath, RAMFS_NAME_MAX); in dfs_ramfs_rename()