-static inline boolean_t
-usprop_check(zfs_userquota_prop_t p, unsigned types, unsigned props)
-{
- unsigned type;
- unsigned prop;
-
- switch (p) {
- case ZFS_PROP_USERUSED:
- type = USTYPE_USR;
- prop = USPROP_USED;
- break;
- case ZFS_PROP_USERQUOTA:
- type = USTYPE_USR;
- prop = USPROP_QUOTA;
- break;
- case ZFS_PROP_GROUPUSED:
- type = USTYPE_GRP;
- prop = USPROP_USED;
- break;
- case ZFS_PROP_GROUPQUOTA:
- type = USTYPE_GRP;
- prop = USPROP_QUOTA;
- break;
- default: /* ALL */
- return (B_TRUE);
- };
-
- return (type & types && prop & props);
-}
-
-#define USFIELD_TYPE (1 << 0)
-#define USFIELD_NAME (1 << 1)
-#define USFIELD_USED (1 << 2)
-#define USFIELD_QUOTA (1 << 3)
-#define USFIELD_ALL (USFIELD_TYPE | USFIELD_NAME | USFIELD_USED | USFIELD_QUOTA)
-
-static int
-parsefields(unsigned *fieldsp, char **names, unsigned *bits, size_t len)
-{
- char *field = optarg;
- char *delim;
-
- do {
- int i;
- boolean_t found = B_FALSE;
- delim = strchr(field, ',');
- if (delim != NULL)
- *delim = '\0';
-
- for (i = 0; i < len; i++)
- if (0 == strcmp(field, names[i])) {
- found = B_TRUE;
- *fieldsp |= bits[i];
- break;
- }
-
- if (!found) {
- (void) fprintf(stderr, gettext("invalid type '%s'"
- "for -t option\n"), field);
- return (-1);
- }
-
- field = delim + 1;
- } while (delim);
-
- return (0);
-}
-
-
-static char *type_names[] = { "posixuser", "smbuser", "posixgroup", "smbgroup",
- "all" };
-static unsigned type_bits[] = {
- USTYPE_PSX_USR,
- USTYPE_SMB_USR,
- USTYPE_PSX_GRP,
- USTYPE_SMB_GRP,
- USTYPE_ALL
-};
-
-static char *us_field_names[] = { "type", "name", "used", "quota" };
-static unsigned us_field_bits[] = {
- USFIELD_TYPE,
- USFIELD_NAME,
- USFIELD_USED,
- USFIELD_QUOTA
-};
-