X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=qgroup.h;h=875fbdf37f5fa737a9949eaf7725a666e69cf26c;hb=7a8d5d50145e6f3898bb382360857dcc080a4a78;hp=ad14c888aa16387c825509609d1ee3fd5004104f;hpb=9886166880ad36f586edd8f9fd220cc416b0d594;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/qgroup.h b/qgroup.h index ad14c88..875fbdf 100644 --- a/qgroup.h +++ b/qgroup.h @@ -16,16 +16,81 @@ * Boston, MA 021110-1307, USA. */ -#ifndef _BTRFS_QGROUP_H -#define _BTRFS_QGROUP_H +#ifndef __BTRFS_QGROUP_H__ +#define __BTRFS_QGROUP_H__ -#include "ioctl.h" #include "kerncompat.h" +#include "ioctl.h" + +struct btrfs_qgroup; + +typedef int (*btrfs_qgroup_filter_func)(struct btrfs_qgroup *, u64); +typedef int (*btrfs_qgroup_comp_func)(struct btrfs_qgroup *, + struct btrfs_qgroup *, int); + + +struct btrfs_qgroup_filter { + btrfs_qgroup_filter_func filter_func; + u64 data; +}; + +struct btrfs_qgroup_comparer { + btrfs_qgroup_comp_func comp_func; + int is_descending; +}; + +struct btrfs_qgroup_filter_set { + int total; + int nfilters; + struct btrfs_qgroup_filter filters[0]; +}; + +struct btrfs_qgroup_comparer_set { + int total; + int ncomps; + struct btrfs_qgroup_comparer comps[0]; +}; + +enum btrfs_qgroup_column_enum { + BTRFS_QGROUP_QGROUPID, + BTRFS_QGROUP_RFER, + BTRFS_QGROUP_EXCL, + BTRFS_QGROUP_MAX_RFER, + BTRFS_QGROUP_MAX_EXCL, + BTRFS_QGROUP_PARENT, + BTRFS_QGROUP_CHILD, + BTRFS_QGROUP_ALL, +}; + +enum btrfs_qgroup_comp_enum { + BTRFS_QGROUP_COMP_QGROUPID, + BTRFS_QGROUP_COMP_RFER, + BTRFS_QGROUP_COMP_EXCL, + BTRFS_QGROUP_COMP_MAX_RFER, + BTRFS_QGROUP_COMP_MAX_EXCL, + BTRFS_QGROUP_COMP_MAX +}; + +enum btrfs_qgroup_filter_enum { + BTRFS_QGROUP_FILTER_PARENT, + BTRFS_QGROUP_FILTER_ALL_PARENT, + BTRFS_QGROUP_FILTER_MAX, +}; -u64 parse_qgroupid(char *p); +int btrfs_qgroup_parse_sort_string(const char *opt_arg, + struct btrfs_qgroup_comparer_set **comps); +int btrfs_show_qgroups(int fd, struct btrfs_qgroup_filter_set *, + struct btrfs_qgroup_comparer_set *); +void btrfs_qgroup_setup_print_column(enum btrfs_qgroup_column_enum column); +void btrfs_qgroup_setup_units(unsigned unit_mode); +struct btrfs_qgroup_filter_set *btrfs_qgroup_alloc_filter_set(void); +int btrfs_qgroup_setup_filter(struct btrfs_qgroup_filter_set **filter_set, + enum btrfs_qgroup_filter_enum, u64 data); +struct btrfs_qgroup_comparer_set *btrfs_qgroup_alloc_comparer_set(void); +int btrfs_qgroup_setup_comparer(struct btrfs_qgroup_comparer_set **comp_set, + enum btrfs_qgroup_comp_enum comparer, + int is_descending); int qgroup_inherit_size(struct btrfs_qgroup_inherit *p); -int qgroup_inherit_realloc(struct btrfs_qgroup_inherit **inherit, - int incgroups, int inccopies); int qgroup_inherit_add_group(struct btrfs_qgroup_inherit **inherit, char *arg); int qgroup_inherit_add_copy(struct btrfs_qgroup_inherit **inherit, char *arg, int type);