blkid.h revision 0ce8844d681b935caad893db8ff740400262ec8b
10ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* 20ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * blkid.h - Interface for libblkid, a library to identify block devices 30ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * 40ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * Copyright (C) 2001 Andreas Dilger 50ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * Copyright (C) 2003 Theodore Ts'o 60ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * 70ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * %Begin-Header% 80ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * This file may be redistributed under the terms of the 90ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * GNU Lesser General Public License. 100ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * %End-Header% 110ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey */ 120ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 130ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#ifndef _BLKID_BLKID_H 140ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#define _BLKID_BLKID_H 150ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 160ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#include <sys/types.h> 170ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#include <blkid/blkid_types.h> 180ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 190ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#ifdef __cplusplus 200ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern "C" { 210ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#endif 220ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 230ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#define BLKID_VERSION "1.0.0" 240ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#define BLKID_DATE "12-Feb-2003" 250ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 260ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeytypedef struct blkid_struct_dev *blkid_dev; 270ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeytypedef struct blkid_struct_cache *blkid_cache; 280ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeytypedef __s64 blkid_loff_t; 290ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 300ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeytypedef struct blkid_struct_tag_iterate *blkid_tag_iterate; 310ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeytypedef struct blkid_struct_dev_iterate *blkid_dev_iterate; 320ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 330ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* 340ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * Flags for blkid_get_dev 350ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * 360ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * BLKID_DEV_CREATE Create an empty device structure if not found 370ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * in the cache. 380ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * BLKID_DEV_VERIFY Make sure the device structure corresponds 390ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * with reality. 400ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * BLKID_DEV_FIND Just look up a device entry, and return NULL 410ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * if it is not found. 420ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * BLKID_DEV_NORMAL Get a valid device structure, either from the 430ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey * cache or by probing the device. 440ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey */ 450ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#define BLKID_DEV_FIND 0x0000 460ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#define BLKID_DEV_CREATE 0x0001 470ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#define BLKID_DEV_VERIFY 0x0002 480ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#define BLKID_DEV_NORMAL (BLKID_DEV_CREATE | BLKID_DEV_VERIFY) 490ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 500ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* cache.c */ 510ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern void blkid_put_cache(blkid_cache cache); 520ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_get_cache(blkid_cache *cache, const char *filename); 530ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern void blkid_gc_cache(blkid_cache cache); 540ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 550ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* dev.c */ 560ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern const char *blkid_dev_devname(blkid_dev dev); 570ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 580ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern blkid_dev_iterate blkid_dev_iterate_begin(blkid_cache cache); 590ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_dev_set_search(blkid_dev_iterate iter, 600ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey char *search_type, char *search_value); 610ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_dev_next(blkid_dev_iterate iterate, blkid_dev *dev); 620ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern void blkid_dev_iterate_end(blkid_dev_iterate iterate); 630ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 640ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* devno.c */ 650ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern char *blkid_devno_to_devname(dev_t devno); 660ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 670ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* devname.c */ 680ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_probe_all(blkid_cache cache); 690ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_probe_all_new(blkid_cache cache); 700ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern blkid_dev blkid_get_dev(blkid_cache cache, const char *devname, 710ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey int flags); 720ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 730ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* getsize.c */ 740ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern blkid_loff_t blkid_get_dev_size(int fd); 750ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 760ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* probe.c */ 770ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyint blkid_known_fstype(const char *fstype); 780ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern blkid_dev blkid_verify(blkid_cache cache, blkid_dev dev); 790ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 800ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* read.c */ 810ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 820ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* resolve.c */ 830ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern char *blkid_get_tag_value(blkid_cache cache, const char *tagname, 840ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey const char *devname); 850ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern char *blkid_get_devname(blkid_cache cache, const char *token, 860ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey const char *value); 870ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 880ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* tag.c */ 890ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern blkid_tag_iterate blkid_tag_iterate_begin(blkid_dev dev); 900ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_tag_next(blkid_tag_iterate iterate, 910ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey const char **type, const char **value); 920ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern void blkid_tag_iterate_end(blkid_tag_iterate iterate); 930ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_dev_has_tag(blkid_dev dev, const char *type, 940ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey const char *value); 950ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern blkid_dev blkid_find_dev_with_tag(blkid_cache cache, 960ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey const char *type, 970ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey const char *value); 980ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_parse_tag_string(const char *token, char **ret_type, 990ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey char **ret_val); 1000ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 1010ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey/* version.c */ 1020ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_parse_version_string(const char *ver_string); 1030ce8844d681b935caad893db8ff740400262ec8bJeff Sharkeyextern int blkid_get_library_version(const char **ver_string, 1040ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey const char **date_string); 1050ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 1060ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#ifdef __cplusplus 1070ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey} 1080ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#endif 1090ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey 1100ce8844d681b935caad893db8ff740400262ec8bJeff Sharkey#endif /* _BLKID_BLKID_H */ 111