--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include <stdio.h>
+
+#include "libmount-util.h"
+
+int libmount_parse(
+ const char *path,
+ FILE *source,
+ struct libmnt_table **ret_table,
+ struct libmnt_iter **ret_iter) {
+
+ _cleanup_(mnt_free_tablep) struct libmnt_table *table = NULL;
+ _cleanup_(mnt_free_iterp) struct libmnt_iter *iter = NULL;
+ int r;
+
+ /* Older libmount seems to require this. */
+ assert(!source || path);
+
+ table = mnt_new_table();
+ iter = mnt_new_iter(MNT_ITER_FORWARD);
+ if (!table || !iter)
+ return -ENOMEM;
+
+ /* If source or path are specified, we use on the functions which ignore utab.
+ * Only if both are empty, we use mnt_table_parse_mtab(). */
+
+ if (source)
+ r = mnt_table_parse_stream(table, source, path);
+ else if (path)
+ r = mnt_table_parse_file(table, path);
+ else
+ r = mnt_table_parse_mtab(table, NULL);
+ if (r < 0)
+ return r;
+
+ *ret_table = TAKE_PTR(table);
+ *ret_iter = TAKE_PTR(iter);
+ return 0;
+}
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <stdio.h>
-
/* This needs to be after sys/mount.h */
#include <libmount.h>
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(struct libmnt_table*, mnt_free_table, NULL);
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(struct libmnt_iter*, mnt_free_iter, NULL);
-static inline int libmount_parse(
+int libmount_parse(
const char *path,
FILE *source,
struct libmnt_table **ret_table,
- struct libmnt_iter **ret_iter) {
-
- _cleanup_(mnt_free_tablep) struct libmnt_table *table = NULL;
- _cleanup_(mnt_free_iterp) struct libmnt_iter *iter = NULL;
- int r;
-
- /* Older libmount seems to require this. */
- assert(!source || path);
-
- table = mnt_new_table();
- iter = mnt_new_iter(MNT_ITER_FORWARD);
- if (!table || !iter)
- return -ENOMEM;
-
- /* If source or path are specified, we use on the functions which ignore utab.
- * Only if both are empty, we use mnt_table_parse_mtab(). */
-
- if (source)
- r = mnt_table_parse_stream(table, source, path);
- else if (path)
- r = mnt_table_parse_file(table, path);
- else
- r = mnt_table_parse_mtab(table, NULL);
- if (r < 0)
- return r;
-
- *ret_table = TAKE_PTR(table);
- *ret_iter = TAKE_PTR(iter);
- return 0;
-}
+ struct libmnt_iter **ret_iter);