analyse array types better
[libfirm] / ir / adt / pdeq.h
1 /*
2  * Project:     libFIRM
3  * File name:   ir/adt/pdeq.h
4  * Purpose:     Declarations for pdeq.
5  * Author:      Christian von Roques
6  * Modified by:
7  * Created:     1999 by getting from fiasco
8  * CVS-ID:      $Id$
9  * Copyright:   (c) 1995, 1996 Christian von Roques
10  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
11  */
12
13
14 #ifndef _PDEQ_H_
15 #define _PDEQ_H_
16
17 #include <string.h>
18
19 #include "misc.h"
20
21 typedef struct pdeq pdeq;
22
23 pdeq *new_pdeq (void);
24 pdeq *new_pdeq1 (const void *);
25 void del_pdeq (pdeq *);
26 int pdeq_len (pdeq *);
27 bool pdeq_empty (pdeq *);
28 bool pdeq_contains (pdeq *, const void *);
29 void *pdeq_search (pdeq *, cmp_fun cmp, const void *key);
30 void **pdeq_copyl (pdeq *, const void **);
31 void **pdeq_copyr (pdeq *, const void **);
32 pdeq *pdeq_putl (pdeq *, const void *);
33 pdeq *pdeq_putr (pdeq *, const void *);
34 void *pdeq_getl (pdeq *);
35 void *pdeq_getr (pdeq *);
36
37 #ifdef NDEBUG
38 #define PDEQ_VRFY(deq) ((void)0)
39 #else
40 #define PDEQ_VRFY(deq) _pdeq_vrfy ((deq))
41 void _pdeq_vrfy(pdeq *dq);
42 #endif
43
44 #endif /* _PDEQ_H_ */