Lines Matching defs:dirent
537 struct dosDirEntry dirent, *d;
734 memset(&dirent, 0, sizeof dirent);
740 dirent.flags = p[11];
746 dirent.name[j] = p[j];
747 dirent.name[8] = '\0';
748 for (k = 7; k >= 0 && dirent.name[k] == ' '; k--)
749 dirent.name[k] = '\0';
750 if (k < 0 || dirent.name[k] != '\0')
752 if (dirent.name[0] == SLOT_E5)
753 dirent.name[0] = 0xe5;
755 if (dirent.flags & ATTR_VOLUME) {
768 dirent.name[k++] = '.';
770 dirent.name[k++] = p[j+8];
771 dirent.name[k] = '\0';
772 for (k--; k >= 0 && dirent.name[k] == ' '; k--)
773 dirent.name[k] = '\0';
782 dirent.head = p[26] | (p[27] << 8);
784 dirent.head |= (p[20] << 16) | (p[21] << 24);
785 dirent.size = p[28] | (p[29] << 8) | (p[30] << 16) | (p[31] << 24);
787 strlcpy(dirent.lname, longName,
788 sizeof(dirent.lname));
793 dirent.parent = dir;
794 dirent.next = dir->child;
800 fullpath(&dirent), 0);
832 if (!(dirent.flags & ATTR_DIRECTORY) ||
833 (strcmp(dirent.name, ".") != 0 &&
834 strcmp(dirent.name, "..") != 0)) {
835 if ((dirent.size != 0 || (dirent.flags & ATTR_DIRECTORY)) &&
836 ((!fat_is_valid_cl(fat, dirent.head) ||
837 !fat_is_cl_head(fat, dirent.head)))) {
838 if (!fat_is_valid_cl(fat, dirent.head)) {
840 fullpath(&dirent),
841 dirent.head);
844 fullpath(&dirent));
847 if (dirent.flags & ATTR_DIRECTORY) {
860 dirent.size = 0;
861 dirent.head = 0;
868 if (dirent.flags & ATTR_DIRECTORY) {
874 if (dirent.size) {
876 fullpath(&dirent));
879 dirent.size = 0;
887 if (strcmp(dirent.name, ".") == 0) {
888 if (dirent.head != dir->head) {
892 dirent.head = dir->head;
893 p[26] = (u_char)dirent.head;
894 p[27] = (u_char)(dirent.head >> 8);
896 p[20] = (u_char)(dirent.head >> 16);
897 p[21] = (u_char)(dirent.head >> 24);
904 } else if (strcmp(dirent.name, "..") == 0) {
907 if (dirent.head) {
911 dirent.head = 0;
919 } else if (dirent.head != dir->parent->head) {
923 dirent.head = dir->parent->head;
924 p[26] = (u_char)dirent.head;
925 p[27] = (u_char)(dirent.head >> 8);
927 p[20] = (u_char)(dirent.head >> 16);
928 p[21] = (u_char)(dirent.head >> 24);
941 if (dirent.head == dir->head) {
943 dirent.name, fullpath(dir));
951 &dirent) & FSERROR) == FSERROR) {
973 memcpy(d, &dirent, sizeof(struct dosDirEntry));
986 mod |= k = checksize(fat, p, &dirent);