e2p.h revision a6ce1349539f866334ef3d5758bc2ee44a454acd
19e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/*
29e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project * e2p.h --- header file for the e2p library
304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes *
49e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project * %Begin-Header%
504351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes * This file may be redistributed under the terms of the GNU Library
69e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project * General Public License, version 2.
79e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project * %End-Header%
89e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project */
99e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <sys/types.h>		/* Needed by dirent.h on netbsd */
119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdio.h>
129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <dirent.h>
139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <ext2fs/ext2_fs.h>
159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define E2P_FEATURE_COMPAT	0
179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define E2P_FEATURE_INCOMPAT	1
189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define E2P_FEATURE_RO_INCOMPAT	2
199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define E2P_FEATURE_TYPE_MASK	0x03
209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define E2P_FEATURE_NEGATE_FLAG	0x80
229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define E2P_FS_FEATURE		0
249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define E2P_JOURNAL_FEATURE	1
259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* `options' for print_flags() */
279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define PFOPT_LONG  1 /* Must be 1 for compatibility with `int long_format'. */
299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint fgetflags (const char * name, unsigned long * flags);
329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint fgetversion (const char * name, unsigned long * version);
339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint fsetflags (const char * name, unsigned long flags);
349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint fsetversion (const char * name, unsigned long version);
359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint getflags (int fd, unsigned long * flags);
369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint getversion (int fd, unsigned long * version);
379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint iterate_on_dir (const char * dir_name,
389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project		    int (*func) (const char *, struct dirent *, void *),
399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project		    void * private);
409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectvoid list_super(struct ext2_super_block * s);
419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectvoid list_super2(struct ext2_super_block * s, FILE *f);
429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectvoid print_fs_errors (FILE * f, unsigned short errors);
439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectvoid print_flags (FILE * f, unsigned long flags, unsigned options);
449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectvoid print_fs_state (FILE * f, unsigned short state);
459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint setflags (int fd, unsigned long flags);
469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint setversion (int fd, unsigned long version);
479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectconst char *e2p_feature2string(int compat, unsigned int mask);
499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectconst char *e2p_jrnl_feature2string(int compat, unsigned int mask);
509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint e2p_string2feature(char *string, int *compat, unsigned int *mask);
519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint e2p_jrnl_string2feature(char *string, int *compat_type, unsigned int *mask);
52ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesint e2p_edit_feature(const char *str, __u32 *compat_array, __u32 *ok_array);
539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint e2p_edit_feature2(const char *str, __u32 *compat_array, __u32 *ok_array,
54ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes		      __u32 *clear_ok_array, int *type_err,
559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project		      unsigned int *mask_err);
569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint e2p_is_null_uuid(void *uu);
589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectvoid e2p_uuid_to_str(void *uu, char *out);
599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectconst char *e2p_uuid2str(void *uu);
609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectconst char *e2p_hash2string(int num);
629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint e2p_string2hash(char *string);
639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
64381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesconst char *e2p_mntopt2string(unsigned int mask);
65381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesint e2p_string2mntopt(char *string, unsigned int *mask);
66381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesint e2p_edit_mntopts(const char *str, __u32 *mntopts, __u32 ok);
67381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes
68381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesunsigned long parse_num_blocks(const char *arg, int log_block_size);
69381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes
70381716e9396b55b1adb8235b020c37344f60ab07Elliott Hugheschar *e2p_os2string(int os_type);
71381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesint e2p_string2os(char *str);
72ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
73ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesunsigned int e2p_percent(int percent, unsigned int base);
74ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes