+/* User/Group/Project ID */
+struct pcc_match_id {
+ __u32 pmi_id;
+ struct list_head pmi_linkage;
+};
+
+/* wildcard file name */
+struct pcc_match_fname {
+ char *pmf_name;
+ struct list_head pmf_linkage;
+};
+
+enum pcc_field {
+ PCC_FIELD_UID,
+ PCC_FIELD_GID,
+ PCC_FIELD_PROJID,
+ PCC_FIELD_FNAME,
+ PCC_FIELD_MAX
+};
+
+struct pcc_expression {
+ enum pcc_field pe_field;
+ struct list_head pe_cond;
+ struct list_head pe_linkage;
+};
+
+struct pcc_conjunction {
+ /* link to disjunction */
+ struct list_head pc_linkage;
+ /* list of logical conjunction */
+ struct list_head pc_expressions;
+};
+
+/**
+ * Match rule for auto PCC-cached files.
+ */
+struct pcc_match_rule {
+ char *pmr_conds_str;
+ struct list_head pmr_conds;
+};
+
+struct pcc_matcher {
+ __u32 pm_uid;
+ __u32 pm_gid;
+ __u32 pm_projid;
+ struct qstr *pm_name;
+};
+