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