int main(int argc, char *argv[]) { struct libmnt_context *cxt; int rc; mnt_init_debug(0); cxt = mnt_new_context(); if (!cxt) { nfs_error(_("Can't initilize libmount: %s"), strerror(errno)); rc = EX_FAIL; goto done; } progname = basename(argv[0]); nfs_mount_data_version = discover_nfs_mount_data_version(&string); if(strncmp(progname, "umount", 6) == 0) rc = umount_main(cxt, argc, argv); else rc = mount_main(cxt, argc, argv); done: mnt_free_context(cxt); return rc; }
int main (int argc, char *argv[]) { struct libmnt_fs *fs; struct libmnt_table *tab; mnt_init_debug(0xffff); tab = mnt_new_table_from_file("/proc/self/mounts"); fs = mnt_table_find_target(tab, argv[2], MNT_ITER_BACKWARD); char *source = mnt_fs_get_source(fs); if (strcmp(source, argv[1]) == 0) printf("is mounted\n"); else printf("could not find fs in tab\n"); mnt_free_table(tab); #if 0 int rc; struct libmnt_fs *fs; struct libmnt_context *cxt = mnt_new_context(); mnt_init_debug(0xffff); mnt_context_set_source(cxt, argv[1]); mnt_context_set_target(cxt, argv[2]); fs = mnt_context_get_fs(cxt); if (fs != NULL) { if (mnt_context_is_fs_mounted(cxt, fs, &rc)) rc = 1; else printf("can't find fs in mtab\n"); } else printf("Can't get fs from mnt context\n"); mnt_free_context(cxt); #endif return 0; }
static int get_debugfs(char **path) { struct libmnt_context *cxt; struct libmnt_table *tb; struct libmnt_iter *itr = NULL; struct libmnt_fs *fs; int found = 0, ret; cxt = mnt_new_context(); if (!cxt) err(EXIT_FAILURE, "libmount context allocation failed"); itr = mnt_new_iter(MNT_ITER_FORWARD); if (!itr) err(EXIT_FAILURE, "failed to initialize libmount iterator"); if (mnt_context_get_mtab(cxt, &tb)) err(EXIT_FAILURE, "failed to read mtab"); while (mnt_table_next_fs(tb, itr, &fs) == 0) { const char *type = mnt_fs_get_fstype(fs); if (!strcmp(type, "debugfs")) { found = 1; break; } } if (found) { ret = asprintf(path, "%s/gpio", mnt_fs_get_target(fs)); if (ret < 0) err(EXIT_FAILURE, "failed to format string"); } mnt_free_iter(itr); mnt_free_context(cxt); if (!found) return -1; return 0; }