Lines Matching refs:dsc
2791 static void yaffsfs_SetDirRewound(struct yaffsfs_DirSearchContxt *dsc) in yaffsfs_SetDirRewound() argument
2793 if (dsc && in yaffsfs_SetDirRewound()
2794 dsc->dirObj && in yaffsfs_SetDirRewound()
2795 dsc->dirObj->variant_type == YAFFS_OBJECT_TYPE_DIRECTORY) { in yaffsfs_SetDirRewound()
2797 dsc->offset = 0; in yaffsfs_SetDirRewound()
2799 if (list_empty(&dsc->dirObj->variant.dir_variant.children)) in yaffsfs_SetDirRewound()
2800 dsc->nextReturn = NULL; in yaffsfs_SetDirRewound()
2802 dsc->nextReturn = in yaffsfs_SetDirRewound()
2803 list_entry(dsc->dirObj->variant.dir_variant. in yaffsfs_SetDirRewound()
2811 static void yaffsfs_DirAdvance(struct yaffsfs_DirSearchContxt *dsc) in yaffsfs_DirAdvance() argument
2813 if (dsc && in yaffsfs_DirAdvance()
2814 dsc->dirObj && in yaffsfs_DirAdvance()
2815 dsc->dirObj->variant_type == YAFFS_OBJECT_TYPE_DIRECTORY) { in yaffsfs_DirAdvance()
2817 if (dsc->nextReturn == NULL || in yaffsfs_DirAdvance()
2818 list_empty(&dsc->dirObj->variant.dir_variant.children)) in yaffsfs_DirAdvance()
2819 dsc->nextReturn = NULL; in yaffsfs_DirAdvance()
2821 struct list_head *next = dsc->nextReturn->siblings.next; in yaffsfs_DirAdvance()
2823 if (next == &dsc->dirObj->variant.dir_variant.children) in yaffsfs_DirAdvance()
2824 dsc->nextReturn = NULL; /* end of list */ in yaffsfs_DirAdvance()
2826 dsc->nextReturn = list_entry(next, in yaffsfs_DirAdvance()
2839 struct yaffsfs_DirSearchContxt *dsc; in yaffsfs_RemoveObjectCallback() local
2851 dsc = list_entry(i, struct yaffsfs_DirSearchContxt, in yaffsfs_RemoveObjectCallback()
2853 if (dsc->nextReturn == obj) in yaffsfs_RemoveObjectCallback()
2854 yaffsfs_DirAdvance(dsc); in yaffsfs_RemoveObjectCallback()
2864 struct yaffsfs_DirSearchContxt *dsc = NULL; in yaffs_opendir() local
2893 for (i = 0, dsc = NULL; i < YAFFSFS_N_DSC && !dsc; i++) { in yaffs_opendir()
2895 dsc = &yaffsfs_dsc[i]; in yaffs_opendir()
2898 dir = (yaffs_DIR *) dsc; in yaffs_opendir()
2900 if (dsc) { in yaffs_opendir()
2901 memset(dsc, 0, sizeof(struct yaffsfs_DirSearchContxt)); in yaffs_opendir()
2902 dsc->inUse = 1; in yaffs_opendir()
2903 dsc->dirObj = obj; in yaffs_opendir()
2904 yaffs_strncpy(dsc->name, dirname, NAME_MAX); in yaffs_opendir()
2905 INIT_LIST_HEAD(&dsc->others); in yaffs_opendir()
2910 list_add(&dsc->others, &search_contexts); in yaffs_opendir()
2911 yaffsfs_SetDirRewound(dsc); in yaffs_opendir()
2923 struct yaffsfs_DirSearchContxt *dsc; in yaffs_readdir() local
2926 dsc = (struct yaffsfs_DirSearchContxt *) dirp; in yaffs_readdir()
2929 if (dsc && dsc->inUse) { in yaffs_readdir()
2931 if (dsc->nextReturn) { in yaffs_readdir()
2932 dsc->de.d_ino = in yaffs_readdir()
2933 yaffs_get_equivalent_obj(dsc->nextReturn)->obj_id; in yaffs_readdir()
2934 dsc->de.d_dont_use = (unsigned)dsc->nextReturn; in yaffs_readdir()
2935 dsc->de.d_off = dsc->offset++; in yaffs_readdir()
2936 yaffs_get_obj_name(dsc->nextReturn, in yaffs_readdir()
2937 dsc->de.d_name, NAME_MAX); in yaffs_readdir()
2938 if (yaffs_strnlen(dsc->de.d_name, NAME_MAX + 1) == 0) { in yaffs_readdir()
2940 yaffs_strcpy(dsc->de.d_name, _Y("zz")); in yaffs_readdir()
2942 dsc->de.d_reclen = sizeof(struct yaffs_dirent); in yaffs_readdir()
2943 retVal = &dsc->de; in yaffs_readdir()
2944 yaffsfs_DirAdvance(dsc); in yaffs_readdir()
2958 struct yaffsfs_DirSearchContxt *dsc; in yaffs_rewinddir() local
2960 dsc = (struct yaffsfs_DirSearchContxt *) dirp; in yaffs_rewinddir()
2964 yaffsfs_SetDirRewound(dsc); in yaffs_rewinddir()
2971 struct yaffsfs_DirSearchContxt *dsc; in yaffs_closedir() local
2973 dsc = (struct yaffsfs_DirSearchContxt *) dirp; in yaffs_closedir()
2975 if (!dsc) { in yaffs_closedir()
2981 dsc->inUse = 0; in yaffs_closedir()
2982 list_del(&dsc->others); /* unhook from list */ in yaffs_closedir()