add isl_qpolynomial_fold_scale_val
[platform/upstream/isl.git] / isl_id_private.h
index c89773e..6266b47 100644 (file)
 
 #include <isl/id.h>
 
+/* Represent a name and/or user pointer.
+ *
+ * If "free_user" is set, then it will be called on "user" when
+ * the last instance of the isl_id is freed.
+ */
 struct isl_id {
        int ref;
        isl_ctx *ctx;
@@ -19,8 +24,15 @@ struct isl_id {
        const char *name;
        void *user;
        uint32_t hash;
+
+       __isl_give void (*free_user)(void *user);
 };
 
+#undef EL
+#define EL isl_id
+
+#include <isl_list_templ.h>
+
 uint32_t isl_hash_id(uint32_t hash, __isl_keep isl_id *id);
 
 extern isl_id isl_id_none;