Lines Matching refs:dir

1702 	dp->dir = fs->win + (ofs % SS(fs));	/* Pointer to the entry in the win[] */  in dir_sdi()
1762 dp->dir = fs->win + ofs % SS(fs); /* Pointer to the entry in the win[] */ in dir_next()
1792 …((fs->fs_type == FS_EXFAT) ? (int)((dp->dir[XDIR_Type] & 0x80) == 0) : (int)(dp->dir[DIR_Name] == …
1794 if (dp->dir[DIR_Name] == DDEM || dp->dir[DIR_Name] == 0) { /* Is the entry free? */
1819 const BYTE* dir /* Pointer to the key entry */ argument
1824 cl = ld_word(dir + DIR_FstClusLO);
1826 cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16;
1836 BYTE* dir, /* Pointer to the key entry */ argument
1840 st_word(dir + DIR_FstClusLO, (WORD)cl);
1842 st_word(dir + DIR_FstClusHI, (WORD)(cl >> 16));
1856 BYTE* dir /* Pointer to the directory entry containing the part of LFN */ argument
1863 if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO */
1865 i = ((dir[LDIR_Ord] & 0x3F) - 1) * 13; /* Offset in the LFN buffer */
1868 uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */
1879 …if ((dir[LDIR_Ord] & LLEF) && wc && lfnbuf[i]) return 0; /* Last segment matched but different len…
1892 BYTE* dir /* Pointer to the LFN entry */ argument
1899 if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO is 0 */
1901 i = ((dir[LDIR_Ord] & ~LLEF) - 1) * 13; /* Offset in the LFN buffer */
1904 uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */
1913 …if (dir[LDIR_Ord] & LLEF && wc != 0) { /* Put terminator if it is the last LFN part and not termin…
1930 BYTE* dir, /* Pointer to the LFN entry to be created */ argument
1939 dir[LDIR_Chksum] = sum; /* Set checksum */
1940 dir[LDIR_Attr] = AM_LFN; /* Set attribute. LFN entry */
1941 dir[LDIR_Type] = 0;
1942 st_word(dir + LDIR_FstClusLO, 0);
1948 st_word(dir + LfnOfs[s], wc); /* Put it */
1952 dir[LDIR_Ord] = ord; /* Set the LFN order */
2023 const BYTE* dir /* Pointer to the SFN entry */ argument
2030 sum = (sum >> 1) + (sum << 7) + *dir++;
2045 const BYTE* dir /* Directory entry block to be calculated */ argument
2052 szblk = (dir[XDIR_NumSec] + 1) * SZDIRE; /* Number of bytes of the entry block */
2057 sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + dir[i];
2111 if (dp->dir[XDIR_Type] != ET_FILEDIR) return FR_INT_ERR; /* Invalid order */
2112 memcpy(dirb + 0 * SZDIRE, dp->dir, SZDIRE);
2122 if (dp->dir[XDIR_Type] != ET_STREAM) return FR_INT_ERR; /* Invalid order */
2123 memcpy(dirb + 1 * SZDIRE, dp->dir, SZDIRE);
2134 if (dp->dir[XDIR_Type] != ET_FILENAME) return FR_INT_ERR; /* Invalid order */
2135 if (i < MAXDIRB(FF_MAX_LFN)) memcpy(dirb + i, dp->dir, SZDIRE);
2214 memcpy(dp->dir, dirb, SZDIRE);
2290 b = dp->dir[DIR_Name]; /* Test for the entry type */
2311 dp->obj.attr = attr = dp->dir[DIR_Attr] & AM_MASK; /* Get attribute */
2318 sum = dp->dir[LDIR_Chksum];
2323 … ord = (b == ord && sum == dp->dir[LDIR_Chksum] && pick_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF;
2325 if (ord != 0 || sum != sum_sfn(dp->dir)) { /* Is there a valid LFN? */
2393 c = dp->dir[DIR_Name];
2396 dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK;
2403 sum = dp->dir[LDIR_Chksum];
2408 … ord = (c == ord && sum == dp->dir[LDIR_Chksum] && cmp_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF;
2411 if (ord == 0 && sum == sum_sfn(dp->dir)) break; /* LFN matched? */
2412 if (!(dp->fn[NSFLAG] & NS_LOSS) && !memcmp(dp->dir, dp->fn, 11)) break; /* SFN matched? */
2417 dp->obj.attr = dp->dir[DIR_Attr] & AM_MASK;
2418 …if (!(dp->dir[DIR_Attr] & AM_VOL) && !memcmp(dp->dir, dp->fn, 11)) break; /* Is it a valid entry? …
2503 put_lfn(fs->lfnbuf, dp->dir, (BYTE)n_ent, sum);
2519 memset(dp->dir, 0, SZDIRE); /* Clean the entry */
2520 memcpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */
2522 dp->dir[DIR_NTres] = dp->fn[NSFLAG] & (NS_BODY | NS_EXT); /* Put NT flag */
2555 dp->dir[XDIR_Type] &= 0x7F; /* Clear the entry InUse flag. */
2557 dp->dir[DIR_Name] = DDEM; /* Mark the entry 'deleted'. */
2569 dp->dir[DIR_Name] = DDEM; /* Mark the entry 'deleted'.*/
2657 wc = dp->dir[si++]; /* Get a char */
2662 if (dbc_1st((BYTE)wc) && si != 8 && si != 11 && dbc_2nd(dp->dir[si])) { /* Make a DBC if needed */
2663 wc = wc << 8 | dp->dir[si++];
2683 if (IsUpper(wc) && (dp->dir[DIR_NTres] & lcf)) wc += 0x20;
2688 …if (!dp->dir[DIR_NTres]) fno->altname[0] = 0; /* Altname is not needed if neither LFN nor case inf…
2694 c = (TCHAR)dp->dir[si++];
2703 fno->fattrib = dp->dir[DIR_Attr] & AM_MASK; /* Attribute */
2704 fno->fsize = ld_dword(dp->dir + DIR_FileSize); /* Size */
2705 fno->ftime = ld_word(dp->dir + DIR_ModTime + 0); /* Time */
2706 fno->fdate = ld_word(dp->dir + DIR_ModTime + 2); /* Date */
3731 st_dword(dj.dir + DIR_CrtTime, tm);
3732 st_dword(dj.dir + DIR_ModTime, tm);
3733 cl = ld_clust(fs, dj.dir); /* Get current cluster chain */
3734 dj.dir[DIR_Attr] = AM_ARC; /* Reset attribute */
3735 st_clust(fs, dj.dir, 0); /* Reset file allocation info */
3736 st_dword(dj.dir + DIR_FileSize, 0);
3763 fp->dir_ptr = dj.dir;
3791 fp->obj.sclust = ld_clust(fs, dj.dir); /* Get object allocation info */
3792 fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize);
4078 BYTE *dir; local
4126 dir = fp->dir_ptr;
4127dir[DIR_Attr] |= AM_ARC; /* Set archive attribute to indicate that the file has been changed …
4128 st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation information */
4129 st_dword(dir + DIR_FileSize, (DWORD)fp->obj.objsize); /* Update file size */
4130 st_dword(dir + DIR_ModTime, tm); /* Update modified time */
4131 st_word(dir + DIR_LstAccDate, 0);
4245 fs->cdir = ld_clust(fs, dj.dir); /* Sub-directory cluster */
4304 dj.obj.sclust = ld_clust(fs, dj.dir); /* Goto parent directory */
4310 if (ccl == ld_clust(fs, dj.dir)) break; /* Found the entry */
4561 dp->obj.sclust = ld_clust(fs, dp->dir); /* Get object allocation info */
4952 dclst = ld_clust(fs, dj.dir);
5062 st_dword(dj.dir + DIR_ModTime, tm); /* Created time */
5063 st_clust(fs, dj.dir, dcl); /* Table start cluster */
5064 dj.dir[DIR_Attr] = AM_DIR; /* Attribute */
5095 BYTE buf[FF_FS_EXFAT ? SZDIRE * 2 : SZDIRE], *dir; local
5140 memcpy(buf, djo.dir, SZDIRE); /* Save directory entry of the object */
5149 dir = djn.dir; /* Copy directory entry of the object except name */
5150 memcpy(dir + 13, buf + 13, SZDIRE - 13);
5151 dir[DIR_Attr] = buf[DIR_Attr];
5152 …if (!(dir[DIR_Attr] & AM_DIR)) dir[DIR_Attr] |= AM_ARC; /* Set archive attribute if it is a file */
5154 …if ((dir[DIR_Attr] & AM_DIR) && djo.obj.sclust != djn.obj.sclust) { /* Update .. entry in the sub-…
5155 sect = clst2sect(fs, ld_clust(fs, dir));
5161 dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */
5162 if (res == FR_OK && dir[1] == '.') {
5163 st_clust(fs, dir, djn.obj.sclust);
5224 … dj.dir[DIR_Attr] = (attr & mask) | (dj.dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */
5269 st_dword(dj.dir + DIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime);
5318 …for (si = di = hs = 0; si < dj.dir[XDIR_NumLabel]; si++) { /* Extract volume label from 83 entry */
5319 wc = ld_word(dj.dir + XDIR_Label + si * 2);
5335 wc = dj.dir[si++];
5337 if (dbc_1st((BYTE)wc) && si < 11) wc = wc << 8 | dj.dir[si++]; /* Is it a DBC? */
5461 dj.dir[XDIR_NumLabel] = (BYTE)di; /* Change the volume label */
5462 memcpy(dj.dir + XDIR_Label, dirvn, 22);
5465 memcpy(dj.dir, dirvn, 11); /* Change the volume label */
5467 dj.dir[DIR_Name] = DDEM; /* Remove the volume label */
5478 memset(dj.dir, 0, SZDIRE); /* Clean the entry */
5480 dj.dir[XDIR_Type] = ET_VLABEL; /* Create volume label entry */
5481 dj.dir[XDIR_NumLabel] = (BYTE)di;
5482 memcpy(dj.dir + XDIR_Label, dirvn, 22);
5484 dj.dir[DIR_Attr] = AM_VOL; /* Create volume label entry */
5485 memcpy(dj.dir, dirvn, 11);