118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* 218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * blkid.h - Interface for libblkid, a library to identify block devices 318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * 418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * Copyright (C) 2001 Andreas Dilger 518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * Copyright (C) 2003 Theodore Ts'o 618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * 718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * %Begin-Header% 818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * This file may be redistributed under the terms of the 918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * GNU Lesser General Public License. 1018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * %End-Header% 1118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer */ 1218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 1318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifndef _BLKID_BLKID_H 1418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#define _BLKID_BLKID_H 1518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 1618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#include <sys/types.h> 1718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#include <blkid/blkid_types.h> 1818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 1918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __cplusplus 2018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern "C" { 2118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif 2218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 2318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#define BLKID_VERSION "1.0.0" 2418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#define BLKID_DATE "12-Feb-2003" 2518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 2618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef struct blkid_struct_dev *blkid_dev; 2718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef struct blkid_struct_cache *blkid_cache; 2818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef __s64 blkid_loff_t; 2918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 3018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef struct blkid_struct_tag_iterate *blkid_tag_iterate; 3118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzertypedef struct blkid_struct_dev_iterate *blkid_dev_iterate; 3218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 3318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* 3418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * Flags for blkid_get_dev 3518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * 3618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * BLKID_DEV_CREATE Create an empty device structure if not found 3718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * in the cache. 3818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * BLKID_DEV_VERIFY Make sure the device structure corresponds 3918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * with reality. 4018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * BLKID_DEV_FIND Just look up a device entry, and return NULL 4118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * if it is not found. 4218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * BLKID_DEV_NORMAL Get a valid device structure, either from the 4318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer * cache or by probing the device. 4418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer */ 4518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#define BLKID_DEV_FIND 0x0000 4618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#define BLKID_DEV_CREATE 0x0001 4718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#define BLKID_DEV_VERIFY 0x0002 4818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#define BLKID_DEV_NORMAL (BLKID_DEV_CREATE | BLKID_DEV_VERIFY) 4918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 5018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* cache.c */ 5118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern void blkid_put_cache(blkid_cache cache); 5218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_get_cache(blkid_cache *cache, const char *filename); 5318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern void blkid_gc_cache(blkid_cache cache); 5418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 5518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* dev.c */ 5618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern const char *blkid_dev_devname(blkid_dev dev); 5718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 5818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern blkid_dev_iterate blkid_dev_iterate_begin(blkid_cache cache); 5918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_dev_set_search(blkid_dev_iterate iter, 6018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer char *search_type, char *search_value); 6118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_dev_next(blkid_dev_iterate iterate, blkid_dev *dev); 6218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern void blkid_dev_iterate_end(blkid_dev_iterate iterate); 6318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 6418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* devno.c */ 6518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern char *blkid_devno_to_devname(dev_t devno); 6618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 6718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* devname.c */ 6818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_probe_all(blkid_cache cache); 6918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_probe_all_new(blkid_cache cache); 7018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern blkid_dev blkid_get_dev(blkid_cache cache, const char *devname, 7118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer int flags); 7218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 7318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* getsize.c */ 7418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern blkid_loff_t blkid_get_dev_size(int fd); 7518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 7618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* probe.c */ 7718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerint blkid_known_fstype(const char *fstype); 7818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern blkid_dev blkid_verify(blkid_cache cache, blkid_dev dev); 7918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 8018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* read.c */ 8118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 8218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* resolve.c */ 8318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern char *blkid_get_tag_value(blkid_cache cache, const char *tagname, 8418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer const char *devname); 8518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern char *blkid_get_devname(blkid_cache cache, const char *token, 8618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer const char *value); 8718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 8818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* tag.c */ 8918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern blkid_tag_iterate blkid_tag_iterate_begin(blkid_dev dev); 9018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_tag_next(blkid_tag_iterate iterate, 9118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer const char **type, const char **value); 9218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern void blkid_tag_iterate_end(blkid_tag_iterate iterate); 9318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_dev_has_tag(blkid_dev dev, const char *type, 9418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer const char *value); 9518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern blkid_dev blkid_find_dev_with_tag(blkid_cache cache, 9618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer const char *type, 9718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer const char *value); 9818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_parse_tag_string(const char *token, char **ret_type, 9918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer char **ret_val); 10018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 10118a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer/* version.c */ 10218a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_parse_version_string(const char *ver_string); 10318a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzerextern int blkid_get_library_version(const char **ver_string, 10418a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer const char **date_string); 10518a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 10618a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#ifdef __cplusplus 10718a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer} 10818a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif 10918a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer 11018a1444b4f1e6a0948fd38fa0de382d86cfe04deBernhard Rosenkränzer#endif /* _BLKID_BLKID_H */ 111