diff options
Diffstat (limited to 'extras/volume_id/lib/libvolume_id.h')
-rw-r--r-- | extras/volume_id/lib/libvolume_id.h | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/extras/volume_id/lib/libvolume_id.h b/extras/volume_id/lib/libvolume_id.h index adfc75cb99..c0ab29e0f7 100644 --- a/extras/volume_id/lib/libvolume_id.h +++ b/extras/volume_id/lib/libvolume_id.h @@ -16,9 +16,38 @@ typedef void (*volume_id_log_fn_t)(int priority, const char *file, int line, const char *format, ...) __attribute__ ((format(printf, 4, 5))); - extern volume_id_log_fn_t volume_id_log_fn; +struct volume_id; +typedef int (*volume_id_probe_fn_t)(struct volume_id *id, uint64_t off, uint64_t size); +typedef int (*all_probers_fn_t)(volume_id_probe_fn_t probe_fn, + struct volume_id *id, uint64_t off, uint64_t size, + void *data); + +extern struct volume_id *volume_id_open_fd(int fd); +extern void volume_id_close(struct volume_id *id); +extern int volume_id_probe_filesystem(struct volume_id *id, uint64_t off, uint64_t size); +extern int volume_id_probe_raid(struct volume_id *id, uint64_t off, uint64_t size); +extern int volume_id_probe_all(struct volume_id *id, uint64_t off, uint64_t size); +extern const volume_id_probe_fn_t *volume_id_get_prober_by_type(const char *type); +extern void volume_id_all_probers(all_probers_fn_t all_probers_fn, + struct volume_id *id, uint64_t off, uint64_t size, + void *data); +extern int volume_id_get_label(struct volume_id *id, const char **label); +extern int volume_id_get_label_raw(struct volume_id *id, const uint8_t **label, size_t *len); +extern int volume_id_get_uuid(struct volume_id *id, const char **uuid); +extern int volume_id_get_uuid_raw(struct volume_id *id, const uint8_t **uuid, size_t *len); +extern int volume_id_get_usage(struct volume_id *id, const char **usage); +extern int volume_id_get_type(struct volume_id *id, const char **type); +extern int volume_id_get_type_version(struct volume_id *id, const char **type_version); + +/* + * Note: everything below will be made private or removed from + * a future version, and a new major release of libvolume_id + */ + +extern struct volume_id *volume_id_open_node(const char *path); + #define VOLUME_ID_LABEL_SIZE 64 #define VOLUME_ID_UUID_SIZE 36 #define VOLUME_ID_FORMAT_SIZE 32 @@ -56,21 +85,6 @@ struct volume_id { int fd_close:1; }; -extern int volume_id_get_label(struct volume_id *id, const char **label); -extern int volume_id_get_label_raw(struct volume_id *id, const uint8_t **label, size_t *len); -extern int volume_id_get_uuid(struct volume_id *id, const char **uuid); -extern int volume_id_get_uuid_raw(struct volume_id *id, const uint8_t **uuid, size_t *len); -extern int volume_id_get_usage(struct volume_id *id, const char **usage); -extern int volume_id_get_type(struct volume_id *id, const char **type); -extern int volume_id_get_type_version(struct volume_id *id, const char **type_version); - -extern struct volume_id *volume_id_open_fd(int fd); -extern struct volume_id *volume_id_open_node(const char *path); -extern int volume_id_probe_all(struct volume_id *id, uint64_t off, uint64_t size); -extern int volume_id_probe_filesystem(struct volume_id *id, uint64_t off, uint64_t size); -extern int volume_id_probe_raid(struct volume_id *id, uint64_t off, uint64_t size); -extern void volume_id_close(struct volume_id *id); - /* filesystems */ extern int volume_id_probe_cramfs(struct volume_id *id, uint64_t off, uint64_t size); extern int volume_id_probe_ext(struct volume_id *id, uint64_t off, uint64_t size); |