Change fdt-specific loader into a generic setup_data loader
[profile/ivi/syslinux.git] / libfat / searchdir.c
index 6fcde13..4964120 100644 (file)
 int32_t libfat_searchdir(struct libfat_filesystem *fs, int32_t dirclust,
                         const void *name, struct libfat_direntry *direntry)
 {
-  struct fat_dirent *dep;
-  int nent;
-  libfat_sector_t s = libfat_clustertosector(fs, dirclust);
-
-  while ( 1 ) {
-    if ( s == 0 )
-      return -2;               /* Not found */
-    else if ( s == (libfat_sector_t)-1 )
-      return -1;               /* Error */
-
-    dep = libfat_get_sector(fs, s);
-    if ( !dep )
-      return -1;               /* Read error */
-
-    for ( nent = 0 ; nent < LIBFAT_SECTOR_SIZE ;
-         nent += sizeof(struct fat_dirent) ) {
-      if ( !memcmp(dep->name, name, 11) ) {
-       if ( direntry ) {
-         memcpy(direntry->entry, dep, sizeof (*dep));
-         direntry->sector = s;
-         direntry->offset = nent;
-       }
-       if ( read32(&dep->size) == 0 )
-         return 0;             /* An empty file has no clusters */
-       else
-         return read16(&dep->clustlo) + (read16(&dep->clusthi) << 16);
-      }
+    struct fat_dirent *dep;
+    int nent;
+    libfat_sector_t s = libfat_clustertosector(fs, dirclust);
 
-      if ( dep->name[0] == 0 )
-       return -2;              /* Hit high water mark */
+    while (1) {
+       if (s == 0)
+           return -2;          /* Not found */
+       else if (s == (libfat_sector_t) - 1)
+           return -1;          /* Error */
 
-      dep++;
-    }
+       dep = libfat_get_sector(fs, s);
+       if (!dep)
+           return -1;          /* Read error */
+
+       for (nent = 0; nent < LIBFAT_SECTOR_SIZE;
+            nent += sizeof(struct fat_dirent)) {
+           if (!memcmp(dep->name, name, 11)) {
+               if (direntry) {
+                   memcpy(direntry->entry, dep, sizeof(*dep));
+                   direntry->sector = s;
+                   direntry->offset = nent;
+               }
+               if (read32(&dep->size) == 0)
+                   return 0;   /* An empty file has no clusters */
+               else
+                   return read16(&dep->clustlo) +
+                       (read16(&dep->clusthi) << 16);
+           }
+
+           if (dep->name[0] == 0)
+               return -2;      /* Hit high water mark */
 
-    s = libfat_nextsector(fs, s);
-  }
+           dep++;
+       }
+
+       s = libfat_nextsector(fs, s);
+    }
 }