1#include <isl/ctx.h>
2#include <isl_blk.h>
3
4/* "error" stores the last error that has occurred.
5 * It is reset to isl_error_none by isl_ctx_reset_error.
6 * "error_msg" stores the error message of the last error,
7 * while "error_file" and "error_line" specify where the last error occurred.
8 * "error_msg" and "error_file" always point to statically allocated
9 * strings (if not NULL).
10 */
11struct isl_ctx {
12	int			ref;
13
14	struct isl_stats	*stats;
15
16	int			 opt_allocated;
17	struct isl_options	*opt;
18	void			*user_opt;
19	struct isl_args		*user_args;
20
21	isl_int			zero;
22	isl_int			one;
23	isl_int			two;
24	isl_int			negone;
25
26	isl_int			normalize_gcd;
27
28	int			n_cached;
29	int			n_miss;
30	struct isl_blk		cache[ISL_BLK_CACHE_SIZE];
31	struct isl_hash_table	id_table;
32
33	enum isl_error		error;
34	const char		*error_msg;
35	const char		*error_file;
36	int			error_line;
37
38	int			abort;
39
40	unsigned long		operations;
41	unsigned long		max_operations;
42};
43
44int isl_ctx_next_operation(isl_ctx *ctx);
45
46void isl_ctx_set_full_error(isl_ctx *ctx, enum isl_error error, const char *msg,
47	const char *file, int line);
48