hmap.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include <isl/ctx.h>
  2. #include <isl/maybe.h>
  3. #include <isl/printer.h>
  4. #if defined(__cplusplus)
  5. extern "C" {
  6. #endif
  7. #define ISL_xCAT(A,B) A ## B
  8. #define ISL_CAT(A,B) ISL_xCAT(A,B)
  9. #define ISL_xFN(TYPE,NAME) TYPE ## _ ## NAME
  10. #define ISL_FN(TYPE,NAME) ISL_xFN(TYPE,NAME)
  11. struct ISL_HMAP;
  12. typedef struct ISL_HMAP ISL_HMAP;
  13. __isl_give ISL_HMAP *ISL_FN(ISL_HMAP,alloc)(isl_ctx *ctx, int min_size);
  14. __isl_give ISL_HMAP *ISL_FN(ISL_HMAP,copy)(__isl_keep ISL_HMAP *hmap);
  15. __isl_null ISL_HMAP *ISL_FN(ISL_HMAP,free)(__isl_take ISL_HMAP *hmap);
  16. isl_ctx *ISL_FN(ISL_HMAP,get_ctx)(__isl_keep ISL_HMAP *hmap);
  17. __isl_give ISL_MAYBE(ISL_VAL) ISL_FN(ISL_HMAP,try_get)(
  18. __isl_keep ISL_HMAP *hmap, __isl_keep ISL_KEY *key);
  19. isl_bool ISL_FN(ISL_HMAP,has)(__isl_keep ISL_HMAP *hmap,
  20. __isl_keep ISL_KEY *key);
  21. __isl_give ISL_VAL *ISL_FN(ISL_HMAP,get)(__isl_keep ISL_HMAP *hmap,
  22. __isl_take ISL_KEY *key);
  23. __isl_give ISL_HMAP *ISL_FN(ISL_HMAP,set)(__isl_take ISL_HMAP *hmap,
  24. __isl_take ISL_KEY *key, __isl_take ISL_VAL *val);
  25. __isl_give ISL_HMAP *ISL_FN(ISL_HMAP,drop)(__isl_take ISL_HMAP *hmap,
  26. __isl_take ISL_KEY *key);
  27. isl_stat ISL_FN(ISL_HMAP,foreach)(__isl_keep ISL_HMAP *hmap,
  28. isl_stat (*fn)(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val,
  29. void *user),
  30. void *user);
  31. __isl_give isl_printer *ISL_FN(isl_printer_print,ISL_HMAP_SUFFIX)(
  32. __isl_take isl_printer *p, __isl_keep ISL_HMAP *hmap);
  33. void ISL_FN(ISL_HMAP,dump)(__isl_keep ISL_HMAP *hmap);
  34. #undef ISL_xCAT
  35. #undef ISL_CAT
  36. #undef ISL_KEY
  37. #undef ISL_VAL
  38. #undef ISL_xFN
  39. #undef ISL_FN
  40. #undef ISL_xHMAP
  41. #undef ISL_yHMAP
  42. #undef ISL_HMAP
  43. #if defined(__cplusplus)
  44. }
  45. #endif