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