Home | History | Annotate | Line # | Download | only in dist
      1 /*
      2  * Copyright 2008-2009 Katholieke Universiteit Leuven
      3  *
      4  * Use of this software is governed by the MIT license
      5  *
      6  * Written by Sven Verdoolaege, K.U.Leuven, Departement
      7  * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
      8  */
      9 
     10 #ifndef ISL_ID_PRIVATE_H
     11 #define ISL_ID_PRIVATE_H
     12 
     13 #include <isl/id.h>
     14 #include <isl/stream.h>
     15 
     16 /* Represent a name and/or user pointer.
     17  *
     18  * If "free_user" is set, then it will be called on "user" when
     19  * the last instance of the isl_id is freed.
     20  */
     21 struct isl_id {
     22 	int ref;
     23 	isl_ctx *ctx;
     24 
     25 	const char *name;
     26 	void *user;
     27 	uint32_t hash;
     28 
     29 	__isl_give void (*free_user)(void *user);
     30 };
     31 
     32 #undef EL
     33 #define EL isl_id
     34 
     35 #include <isl_list_templ.h>
     36 
     37 uint32_t isl_hash_id(uint32_t hash, __isl_keep isl_id *id);
     38 int isl_id_cmp(__isl_keep isl_id *id1, __isl_keep isl_id *id2);
     39 
     40 extern isl_id isl_id_none;
     41 
     42 #undef BASE
     43 #define BASE id
     44 
     45 #include <isl_multi_templ.h>
     46 
     47 #endif
     48