X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=qgroup.h;h=875fbdf37f5fa737a9949eaf7725a666e69cf26c;hb=35a629514ee0902171a4f76cd8145af6c750b3ac;hp=bcc2b4b4f1c5687d63eaacde7423f388fc7d6d4b;hpb=737a373638329138caa4fbd45299a8f4bab7925e;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/qgroup.h b/qgroup.h index bcc2b4b..875fbdf 100644 --- a/qgroup.h +++ b/qgroup.h @@ -16,27 +16,41 @@ * 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, @@ -48,19 +62,34 @@ enum btrfs_qgroup_column_enum { 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 btrfs_get_path_rootid(int fd); -int btrfs_show_qgroups(int fd, struct btrfs_qgroup_filter_set *); +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); -void btrfs_qgroup_free_filter_set(struct btrfs_qgroup_filter_set *filter_set); int btrfs_qgroup_setup_filter(struct btrfs_qgroup_filter_set **filter_set, enum btrfs_qgroup_filter_enum, u64 data); -u64 parse_qgroupid(char *p); +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_add_group(struct btrfs_qgroup_inherit **inherit, char *arg); int qgroup_inherit_add_copy(struct btrfs_qgroup_inherit **inherit, char *arg,