X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=qgroup.h;h=875fbdf37f5fa737a9949eaf7725a666e69cf26c;hb=510bb4ccc4258567e731b81c4722a6adc7faec8b;hp=5fcdd8abe22426d4a517a3fd79eba6b31e062c12;hpb=d118b9490ba3ae567db81a0fe21058ca2dad7027;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/qgroup.h b/qgroup.h index 5fcdd8a..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,20 +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,