Lines Matching refs:dir

1751 	dp->dir = fs->win + (ofs % SS(fs));	/* Pointer to the entry in the win[] */  in dir_sdi()
1811 dp->dir = fs->win + ofs % SS(fs); /* Pointer to the entry in the win[] */ in dir_next()
1841 …((fs->fs_type == FS_EXFAT) ? (int)((dp->dir[XDIR_Type] & 0x80) == 0) : (int)(dp->dir[DIR_Name] == …
1843 if (dp->dir[DIR_Name] == DDEM || dp->dir[DIR_Name] == 0) { /* Is the entry free? */
1868 const BYTE* dir /* Pointer to the key entry */ argument
1873 cl = ld_word(dir + DIR_FstClusLO);
1875 cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16;
1885 BYTE* dir, /* Pointer to the key entry */ argument
1889 st_word(dir + DIR_FstClusLO, (WORD)cl);
1891 st_word(dir + DIR_FstClusHI, (WORD)(cl >> 16));
1905 BYTE* dir /* Pointer to the LFN entry */ argument
1912 if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check if LDIR_FstClusLO is 0 */
1914 ni = (UINT)((dir[LDIR_Ord] & 0x3F) - 1) * 13; /* Offset in the name to be compared */
1917 chr = ld_word(dir + LfnOfs[di]); /* Pick a character from the entry */
1928 …if ((dir[LDIR_Ord] & LLEF) && pchr && lfnbuf[ni]) return 0; /* Last name segment matched but diffe…
1941 const BYTE* dir /* Pointer to the LFN entry */ argument
1948 if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check if LDIR_FstClusLO is 0 */
1950 ni = (UINT)((dir[LDIR_Ord] & ~LLEF) - 1) * 13; /* Offset in the name buffer */
1953 chr = ld_word(dir + LfnOfs[di]); /* Pick a character from the entry */
1962 …if (dir[LDIR_Ord] & LLEF && pchr != 0) { /* Put terminator if it is the last LFN part and not term…
1979 BYTE* dir, /* Pointer to the LFN entry to be created */ argument
1988 dir[LDIR_Chksum] = sum; /* Set checksum */
1989 dir[LDIR_Attr] = AM_LFN; /* Set attribute */
1990 dir[LDIR_Type] = 0;
1991 st_word(dir + LDIR_FstClusLO, 0);
1997 st_word(dir + LfnOfs[di], chr); /* Set it */
2001 dir[LDIR_Ord] = ord; /* Set order in the entry set */
2072 const BYTE* dir /* Pointer to the SFN entry */ argument
2079 sum = (sum >> 1) + (sum << 7) + *dir++;
2094 const BYTE* dir /* Directory entry block to be calculated */ argument
2101 szblk = ((UINT)dir[XDIR_NumSec] + 1) * SZDIRE; /* Number of bytes of the entry block */
2106 sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + dir[i];
2160 if (dp->dir[XDIR_Type] != ET_FILEDIR) return FR_INT_ERR; /* Invalid order? */
2161 memcpy(dirb + 0 * SZDIRE, dp->dir, SZDIRE);
2171 if (dp->dir[XDIR_Type] != ET_STREAM) return FR_INT_ERR; /* Invalid order? */
2172 memcpy(dirb + 1 * SZDIRE, dp->dir, SZDIRE);
2183 if (dp->dir[XDIR_Type] != ET_FILENAME) return FR_INT_ERR; /* Invalid order? */
2184 …if (i < MAXDIRB(FF_MAX_LFN)) memcpy(dirb + i, dp->dir, SZDIRE); /* Load name entries only if the o…
2265 memcpy(dp->dir, dirb, SZDIRE);
2342 b = dp->dir[DIR_Name]; /* Test for the entry type */
2363 dp->obj.attr = attr = dp->dir[DIR_Attr] & AM_MASK; /* Get attribute */
2370 sum = dp->dir[LDIR_Chksum];
2375 … ord = (b == ord && sum == dp->dir[LDIR_Chksum] && pick_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF;
2377 if (ord != 0 || sum != sum_sfn(dp->dir)) { /* Is there a valid LFN? */
2445 c = dp->dir[DIR_Name];
2448 dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK;
2458 sum = dp->dir[LDIR_Chksum]; /* Sum of the SFN */
2461 … ord = (c == ord && sum == dp->dir[LDIR_Chksum] && cmp_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF;
2464 if (ord == 0 && sum == sum_sfn(dp->dir)) break; /* LFN matched? */
2465 if (!(dp->fn[NSFLAG] & NS_LOSS) && !memcmp(dp->dir, dp->fn, 11)) break; /* SFN matched? */
2470 dp->obj.attr = dp->dir[DIR_Attr] & AM_MASK;
2471 …if (!(dp->dir[DIR_Attr] & AM_VOL) && !memcmp(dp->dir, dp->fn, 11)) break; /* Is it a valid entry? …
2556 put_lfn(fs->lfnbuf, dp->dir, (BYTE)n_ent, sum);
2572 memset(dp->dir, 0, SZDIRE); /* Clean the entry */
2573 memcpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */
2575 dp->dir[DIR_NTres] = dp->fn[NSFLAG] & (NS_BODY | NS_EXT); /* Put NT flag */
2608 dp->dir[XDIR_Type] &= 0x7F; /* Clear the entry InUse flag. */
2610 dp->dir[DIR_Name] = DDEM; /* Mark the entry 'deleted'. */
2622 dp->dir[DIR_Name] = DDEM; /* Mark the entry 'deleted'.*/
2716 wc = dp->dir[si++]; /* Get a char */
2721 if (dbc_1st((BYTE)wc) && si != 8 && si != 11 && dbc_2nd(dp->dir[si])) { /* Make a DBC if needed */
2722 wc = wc << 8 | dp->dir[si++];
2746 if (IsUpper(wc) && (dp->dir[DIR_NTres] & lcf)) wc += 0x20;
2751 …if (!dp->dir[DIR_NTres]) fno->altname[0] = 0; /* Altname is not needed if neither LFN nor case inf…
2757 c = (TCHAR)dp->dir[si++];
2766 fno->fattrib = dp->dir[DIR_Attr] & AM_MASK; /* Attribute */
2767 fno->fsize = ld_dword(dp->dir + DIR_FileSize); /* Size */
2768 fno->ftime = ld_word(dp->dir + DIR_ModTime + 0); /* Time */
2769 fno->fdate = ld_word(dp->dir + DIR_ModTime + 2); /* Date */
3810 st_dword(dj.dir + DIR_CrtTime, tm);
3811 st_dword(dj.dir + DIR_ModTime, tm);
3812 cl = ld_clust(fs, dj.dir); /* Get current cluster chain */
3813 dj.dir[DIR_Attr] = AM_ARC; /* Reset attribute */
3814 st_clust(fs, dj.dir, 0); /* Reset file allocation info */
3815 st_dword(dj.dir + DIR_FileSize, 0);
3842 fp->dir_ptr = dj.dir;
3870 fp->obj.sclust = ld_clust(fs, dj.dir); /* Get object allocation info */
3871 fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize);
4157 BYTE *dir; local
4205 dir = fp->dir_ptr;
4206dir[DIR_Attr] |= AM_ARC; /* Set archive attribute to indicate that the file has been changed …
4207 st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation information */
4208 st_dword(dir + DIR_FileSize, (DWORD)fp->obj.objsize); /* Update file size */
4209 st_dword(dir + DIR_ModTime, tm); /* Update modified time */
4210 st_word(dir + DIR_LstAccDate, 0);
4324 fs->cdir = ld_clust(fs, dj.dir); /* Sub-directory cluster */
4383 dj.obj.sclust = ld_clust(fs, dj.dir); /* Goto parent directory */
4389 if (ccl == ld_clust(fs, dj.dir)) break; /* Found the entry */
4642 dp->obj.sclust = ld_clust(fs, dp->dir); /* Get object allocation info */
5020 dclst = ld_clust(fs, dj.dir);
5130 st_dword(dj.dir + DIR_ModTime, tm); /* Created time */
5131 st_clust(fs, dj.dir, dcl); /* Table start cluster */
5132 dj.dir[DIR_Attr] = AM_DIR; /* Attribute */
5163 BYTE buf[FF_FS_EXFAT ? SZDIRE * 2 : SZDIRE], *dir; local
5208 memcpy(buf, djo.dir, SZDIRE); /* Save directory entry of the object */
5217 dir = djn.dir; /* Copy directory entry of the object except name */
5218 memcpy(dir + 13, buf + 13, SZDIRE - 13);
5219 dir[DIR_Attr] = buf[DIR_Attr];
5220 …if (!(dir[DIR_Attr] & AM_DIR)) dir[DIR_Attr] |= AM_ARC; /* Set archive attribute if it is a file */
5222 …if ((dir[DIR_Attr] & AM_DIR) && djo.obj.sclust != djn.obj.sclust) { /* Update .. entry in the sub-…
5223 sect = clst2sect(fs, ld_clust(fs, dir));
5229 dir = fs->win + SZDIRE * 1; /* Pointer to .. entry */
5230 if (res == FR_OK && dir[1] == '.') {
5231 st_clust(fs, dir, djn.obj.sclust);
5292 … dj.dir[DIR_Attr] = (attr & mask) | (dj.dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */
5337 st_dword(dj.dir + DIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime);
5386 …for (si = di = hs = 0; si < dj.dir[XDIR_NumLabel]; si++) { /* Extract volume label from 83 entry */
5387 wc = ld_word(dj.dir + XDIR_Label + si * 2);
5405 wc = dj.dir[si++];
5407 if (dbc_1st((BYTE)wc) && si < 11) wc = wc << 8 | dj.dir[si++]; /* Is it a DBC? */
5536 dj.dir[XDIR_NumLabel] = (BYTE)di; /* Change the volume label */
5537 memcpy(dj.dir + XDIR_Label, dirvn, 22);
5540 memcpy(dj.dir, dirvn, 11); /* Change the volume label */
5542 dj.dir[DIR_Name] = DDEM; /* Remove the volume label */
5553 memset(dj.dir, 0, SZDIRE); /* Clean the entry */
5555 dj.dir[XDIR_Type] = ET_VLABEL; /* Create volume label entry */
5556 dj.dir[XDIR_NumLabel] = (BYTE)di;
5557 memcpy(dj.dir + XDIR_Label, dirvn, 22);
5559 dj.dir[DIR_Attr] = AM_VOL; /* Create volume label entry */
5560 memcpy(dj.dir, dirvn, 11);