int main(int argc, char **argv) { char *value; blkid_cache cache; blkid_init_debug(BLKID_DEBUG_ALL); if (argc != 2 && argc != 3) { fprintf(stderr, "Usage:\t%s tagname=value\n" "\t%s tagname devname\n" "Find which device holds a given token or\n" "Find what the value of a tag is in a device\n", argv[0], argv[0]); exit(1); } if (blkid_get_cache(&cache, "/dev/null") < 0) { fprintf(stderr, "Couldn't get blkid cache\n"); exit(1); } if (argv[2]) { value = blkid_get_tag_value(cache, argv[1], argv[2]); printf("%s has tag %s=%s\n", argv[2], argv[1], value ? value : "<missing>"); } else { value = blkid_get_devname(cache, argv[1], NULL); printf("%s has tag %s\n", value ? value : "<none>", argv[1]); } blkid_put_cache(cache); return value ? 0 : 1; }
/** * blkid_evaluate_tag: * @token: token name (e.g "LABEL" or "UUID") * @value: token data * @cache: pointer to cache (or NULL when you don't want to re-use the cache) * * Returns: allocated string with a device name. */ char *blkid_evaluate_tag(const char *token, const char *value, blkid_cache *cache) { struct blkid_config *conf = NULL; char *t = NULL, *v = NULL; char *ret = NULL; int i; if (!token) return NULL; if (!cache || !*cache) blkid_init_debug(0); DBG(DEBUG_EVALUATE, printf("evaluating %s%s%s\n", token, value ? "=" : "", value ? value : "")); if (!value) { if (!strchr(token, '=')) { ret = blkid_strdup(token); goto out; } blkid_parse_tag_string(token, &t, &v); if (!t || !v) goto out; token = t; value = v; } conf = blkid_read_config(NULL); if (!conf) goto out; for (i = 0; i < conf->nevals; i++) { if (conf->eval[i] == BLKID_EVAL_UDEV) ret = evaluate_by_udev(token, value, conf->uevent); else if (conf->eval[i] == BLKID_EVAL_SCAN) ret = evaluate_by_scan(token, value, cache, conf); if (ret) break; } DBG(DEBUG_EVALUATE, printf("%s=%s evaluated as %s\n", token, value, ret)); out: blkid_free_config(conf); free(t); free(v); return ret; }
int main(int argc, char** argv) { char *devname, *tmp; char diskname[PATH_MAX]; int major, minor; dev_t devno, disk_devno; const char *errmsg = "Couldn't parse %s: %s\n"; blkid_init_debug(BLKID_DEBUG_ALL); if ((argc != 2) && (argc != 3)) { fprintf(stderr, "Usage:\t%s device_number\n\t%s major minor\n" "Resolve a device number to a device name\n", argv[0], argv[0]); exit(1); } if (argc == 2) { devno = strtoul(argv[1], &tmp, 0); if (*tmp) { fprintf(stderr, errmsg, "device number", argv[1]); exit(1); } } else { major = strtoul(argv[1], &tmp, 0); if (*tmp) { fprintf(stderr, errmsg, "major number", argv[1]); exit(1); } minor = strtoul(argv[2], &tmp, 0); if (*tmp) { fprintf(stderr, errmsg, "minor number", argv[2]); exit(1); } devno = makedev(major, minor); } printf("Looking for device 0x%04llx\n", (long long)devno); devname = blkid_devno_to_devname(devno); free(devname); printf("Looking for whole-device for 0x%04llx\n", (long long)devno); if (blkid_devno_to_wholedisk(devno, diskname, sizeof(diskname), &disk_devno) == 0) printf("found devno 0x%04llx as /dev/%s\n", (long long) disk_devno, diskname); return 0; }
int main(int argc, char**argv) { blkid_cache cache = NULL; int ret; blkid_init_debug(BLKID_DEBUG_ALL); if (argc > 2) { fprintf(stderr, "Usage: %s [filename]\n" "Test parsing of the cache (filename)\n", argv[0]); exit(1); } if ((ret = blkid_get_cache(&cache, argv[1])) < 0) fprintf(stderr, "error %d reading cache file %s\n", ret, argv[1] ? argv[1] : blkid_get_cache_filename(NULL)); blkid_put_cache(cache); return ret; }
int main(int argc, char *argv[]) { blkid_cache cache = NULL; char *res; if (argc < 3) { fprintf(stderr, "usage: %s <token> <value>\n", argv[0]); return EXIT_FAILURE; } blkid_init_debug(0); res = blkid_evaluate_tag(argv[1], argv[2], &cache); if (res) printf("%s\n", res); if (cache) blkid_put_cache(cache); return res ? EXIT_SUCCESS : EXIT_FAILURE; }
int main(int argc, char** argv) { char *devname, *tmp; int major, minor; dev_t devno; const char *errmsg = "Couldn't parse %s: %s\n"; blkid_init_debug(DEBUG_ALL); if ((argc != 2) && (argc != 3)) { fprintf(stderr, "Usage:\t%s device_number\n\t%s major minor\n" "Resolve a device number to a device name\n", argv[0], argv[0]); exit(1); } if (argc == 2) { devno = strtoul(argv[1], &tmp, 0); if (*tmp) { fprintf(stderr, errmsg, "device number", argv[1]); exit(1); } } else { major = strtoul(argv[1], &tmp, 0); if (*tmp) { fprintf(stderr, errmsg, "major number", argv[1]); exit(1); } minor = strtoul(argv[2], &tmp, 0); if (*tmp) { fprintf(stderr, errmsg, "minor number", argv[2]); exit(1); } devno = makedev(major, minor); } printf("Looking for device 0x%04llx\n", (long long)devno); devname = blkid_devno_to_devname(devno); free(devname); return 0; }