Lines Matching defs:Files
384 static FILESEM Files[FF_FS_LOCK]; /* Open object lock semaphores */
778 if (Files[i].fs) { /* Existing entry */
779 if (Files[i].fs == dp->obj.fs && /* Check if the object matches with an open object */
780 Files[i].clu == dp->obj.sclust &&
781 Files[i].ofs == dp->dptr) break;
791 return (acc != 0 || Files[i].ctr == 0x100) ? FR_LOCKED : FR_OK;
799 for (i = 0; i < FF_FS_LOCK && Files[i].fs; i++) ; /* Find a free entry */
813 if (Files[i].fs == dp->obj.fs
814 && Files[i].clu == dp->obj.sclust
815 && Files[i].ofs == dp->dptr) break;
819 for (i = 0; i < FF_FS_LOCK && Files[i].fs; i++) ; /* Find a free entry */
821 Files[i].fs = dp->obj.fs;
822 Files[i].clu = dp->obj.sclust;
823 Files[i].ofs = dp->dptr;
824 Files[i].ctr = 0;
827 if (acc >= 1 && Files[i].ctr) return 0; /* Access violation (int err) */
829 Files[i].ctr = acc ? 0x100 : Files[i].ctr + 1; /* Set semaphore value */
844 n = Files[i].ctr;
847 Files[i].ctr = n;
849 Files[i].fs = 0; /* Free the entry <<<If this memory write operation is not in atomic, FF_FS_REENTRANT == 1 and FF_VOLUMES > 1, there is a potential error in this process >>> */
866 if (Files[i].fs == fs) Files[i].fs = 0;
876 if (Files[i].fs == fs) return FR_LOCKED;