4c457fbdfb98057a5e64af380350fd121574def2
[isl.git] / include / isl / id.h
blob4c457fbdfb98057a5e64af380350fd121574def2
1 #ifndef ISL_ID_H
2 #define ISL_ID_H
4 #include <isl/ctx.h>
5 #include <isl/list.h>
6 #include <isl/printer.h>
8 #if defined(__cplusplus)
9 extern "C" {
10 #endif
12 struct isl_id;
13 typedef struct isl_id isl_id;
15 ISL_DECLARE_LIST(id)
17 isl_ctx *isl_id_get_ctx(__isl_keep isl_id *id);
19 __isl_give isl_id *isl_id_alloc(isl_ctx *ctx,
20 __isl_keep const char *name, void *user);
21 __isl_give isl_id *isl_id_copy(isl_id *id);
22 void *isl_id_free(__isl_take isl_id *id);
24 void *isl_id_get_user(__isl_keep isl_id *id);
25 __isl_keep const char *isl_id_get_name(__isl_keep isl_id *id);
27 __isl_give isl_id *isl_id_set_free_user(__isl_take isl_id *id,
28 __isl_give void (*free_user)(void *user));
30 __isl_give isl_printer *isl_printer_print_id(__isl_take isl_printer *p,
31 __isl_keep isl_id *id);
32 void isl_id_dump(__isl_keep isl_id *id);
34 #if defined(__cplusplus)
36 #endif
38 #endif