summaryrefslogtreecommitdiffstats
path: root/discover/parser.h
diff options
context:
space:
mode:
authorGeoff Levand <geoff@infradead.org>2018-08-02 17:29:34 +0000
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2018-08-07 11:30:36 +1000
commite38a41e8478093acd67d86c5dba4492370004500 (patch)
treeafc953acdae42c5c2f202c130cde8eab1e8107e5 /discover/parser.h
parent70a58a78c951403ae67c44c839caf0e77d0d84db (diff)
downloadtalos-petitboot-e38a41e8478093acd67d86c5dba4492370004500.tar.gz
talos-petitboot-e38a41e8478093acd67d86c5dba4492370004500.zip
discover/parser: Add new parser_is_unique
Add a new routine parser_is_unique that tests a file's inode against a list of known file inodes. Useful when searching case-insensitive filesystems. Signed-off-by: Geoff Levand <geoff@infradead.org> Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'discover/parser.h')
-rw-r--r--discover/parser.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/discover/parser.h b/discover/parser.h
index bff52e3..e7d52fe 100644
--- a/discover/parser.h
+++ b/discover/parser.h
@@ -45,6 +45,12 @@ enum generic_icon_type {
ICON_TYPE_UNKNOWN
};
+struct parser_found_file {
+ const char *filename;
+ unsigned ino;
+ struct list_item list;
+};
+
#define streq(a,b) (!strcasecmp((a),(b)))
void parser_init(void);
@@ -85,4 +91,12 @@ int parser_scandir(struct discover_context *ctx, const char *dirname,
struct dirent ***files, int (*filter)(const struct dirent *),
int (*comp)(const struct dirent **, const struct dirent **));
+/* parser_is_unique - Test a file against a list of known files.
+ * If the file @filename exists and the file is not in @found_list add the
+ * file to @found_list and return true. Use when searching case-insensitive
+ * filesystems.
+ */
+bool parser_is_unique(struct discover_context *ctx, struct discover_device *dev, const char *filename,
+ struct list *found_list);
+
#endif /* _PARSER_H */
OpenPOWER on IntegriCloud