pointer-set.h revision 171825
1221431Sjonathan/* Set operations on pointers
2221431Sjonathan   Copyright (C) 2004 Free Software Foundation, Inc.
3224651Sjonathan
4221431SjonathanThis file is part of GCC.
5221431Sjonathan
6221431SjonathanGCC is free software; you can redistribute it and/or modify it under
7221431Sjonathanthe terms of the GNU General Public License as published by the Free
8221431SjonathanSoftware Foundation; either version 2, or (at your option) any later
9221431Sjonathanversion.
10221431Sjonathan
11221431SjonathanGCC is distributed in the hope that it will be useful, but WITHOUT ANY
12221431SjonathanWARRANTY; without even the implied warranty of MERCHANTABILITY or
13221431SjonathanFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14221431Sjonathanfor more details.
15221431Sjonathan
16221431SjonathanYou should have received a copy of the GNU General Public License
17221431Sjonathanalong with GCC; see the file COPYING.  If not, write to the Free
18221431SjonathanSoftware Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
19221431Sjonathan02110-1301, USA.  */
20221431Sjonathan
21221431Sjonathan#ifndef POINTER_SET_H
22221431Sjonathan#define POINTER_SET_H
23221431Sjonathan
24221431Sjonathanstruct pointer_set_t;
25221431Sjonathanstruct pointer_set_t *pointer_set_create (void);
26221431Sjonathanvoid pointer_set_destroy (struct pointer_set_t *pset);
27221431Sjonathan
28221431Sjonathanint pointer_set_contains (struct pointer_set_t *pset, void *p);
29221431Sjonathanint pointer_set_insert (struct pointer_set_t *pset, void *p);
30221431Sjonathanvoid pointer_set_traverse (struct pointer_set_t *, bool (*) (void *, void *),
31221431Sjonathan			   void *);
32221431Sjonathan
33224651Sjonathanstruct pointer_map_t;
34221431Sjonathanstruct pointer_map_t *pointer_map_create (void);
35224651Sjonathanvoid pointer_map_destroy (struct pointer_map_t *pmap);
36224651Sjonathan
37224651Sjonathanvoid **pointer_map_contains (struct pointer_map_t *pmap, void *p);
38224651Sjonathanvoid **pointer_map_insert (struct pointer_map_t *pmap, void *p);
39224651Sjonathanvoid pointer_map_traverse (struct pointer_map_t *,
40224651Sjonathan			   bool (*) (void *, void **, void *), void *);
41224651Sjonathan
42224651Sjonathan#endif  /* POINTER_SET_H  */
43224651Sjonathan