Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
linklist.h File Reference
#include "erglob.h"
Include dependency graph for linklist.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  lst_itm
struct  lnk_lst
struct  lnk_lst_ary

Defines

#define LNK_LST_CHECK
#define STORE_LIST_LEN
#define LST_Len(lst)   ((lst)->len)
#define incr_LST_len(l)   ( ++((l)->len) )
#define decr_LST_len(l)   ( --((l)->len) )
#define clr_LST_len(l)   ((l)->len = 0)
#define NULL_ITEM   ((tlst_val) -1)
#define Valid_Item(val)   (((tlst_val) (val)) != NULL_ITEM)
#define Invalid_Item(val)   (((tlst_val) (val)) == NULL_ITEM)
#define LST_val(itm)   ((itm)->val)
#define LST_next(itm)   ((itm)->next)
#define LST_first(lst)   ((lst)->first)
#define LST_nxt(lst)   ((lst)->nxt)
#define LST_Empty(lst)   ( LST_first(lst) == NULL )
#define ARY_LST_n_elems(a)   ((a)->n_elems)
#define LST_lists(a)   ((a)->lists)
#define _ary_lst_bnds_chk(a, i)
#define ARY_LST_Elem(a, i)
#define First_Item(l)
#define Next_Item(l)
#define First_Item_Fast(l, t)   ( (t) = LST_first(l) )
#define Next_Item_Fast(l, t)   ( (t) = LST_next(t) )
#define Valid_Item_Fast(v, t)   ( t )
#define Get_Item_Fast(l, t)   ( LST_val(t) )
#define ARY_First_Item(a, i)   ( First_Item(ARY_LST_Elem(a,i)) )
#define ARY_Next_Item(a, i)   ( Next_Item(ARY_LST_Elem(a,i)) )
#define ARY_Del_List(a, i)   Free_List(ARY_LST_Elem(a,i))
#define First_Item_Strg(l, s)
#define Next_Item_Strg(l, s)
#define ARY_First_Item_Strg(a, i, s)   ( First_Item_Strg(ARY_LST_Elem(a,i),s) )
#define ARY_Next_Item_Strg(a, i, s)   ( Next_Item_Strg(ARY_LST_Elem(a,i),s) )
#define ARY_LST_Len(a, i)   LST_Len(ARY_LST_Elem(a,i))
#define ARY_Add_Item(a, i, v)   Add_Item(ARY_LST_Elem(a,i),v)
#define ARY_Add_Item_Validate(a, i, v)   Add_Item_Validate(ARY_LST_Elem(a,i),v)
#define ARY_Add_Item_Dup(a, i, v)   Add_Item_Dup(ARY_LST_Elem(a,i),v)
#define ARY_Add_First_Item(a, i, v)   Add_First_Item(ARY_LST_Elem(a,i),v)
#define ARY_Add_Ordered_Item(a, i, v)   Add_Ordered_Item(ARY_LST_Elem(a,i),v)
#define ARY_Add_Ordered_Item_Dupl(a, i, v)   Add_Ordered_Item_Dupl(ARY_LST_Elem(a,i),v)
#define ARY_Del_Item(a, i, v)   Del_Item(ARY_LST_Elem(a,i),v);
#define ARY_Del_Cur_Item(a, i)   Del_Cur_Item(ARY_LST_Elem(a,i));
#define Init_List(l)

Typedefs

typedef mINT32 tlst_val
typedef struct lst_itm LST_ITM
typedef struct lnk_lst LNK_LST
typedef struct lnk_lst_ary LNK_LST_ARY

Functions

void ARY_Init_List (LNK_LST_ARY *ary, INT32 n_elems)
void Free_List (LNK_LST *lst)
void ARY_Free_List (LNK_LST_ARY *ary)
BOOL Validate_List (LNK_LST *lst)
BOOL Add_Item (LNK_LST *lst, tlst_val val)
BOOL Add_Item_Validate (LNK_LST *lst, tlst_val val)
void Add_Item_Dup (LNK_LST *lst, tlst_val val)
void Add_First_Item (LNK_LST *lst, tlst_val val)
BOOL Add_Ordered_Item (LNK_LST *lst, tlst_val val)
void Add_Ordered_Item_Dupl (LNK_LST *lst, tlst_val val)
BOOL Del_Item (LNK_LST *lst, tlst_val val)
BOOL Del_Cur_Item (LNK_LST *lst)
BOOL Item_In_List (LNK_LST *lst, tlst_val val)
BOOL ARY_Item_In_List (LNK_LST_ARY *ary, INT32 i, tlst_val val)
void Free_All_List_Items (void)
void List_Print (LNK_LST *lst, char *msg,...)
void ARY_List_Print (LNK_LST_ARY *ary, char *msg,...)

Variables

LST_ITM_lst_itm
char * _ary_lst_bounds_msg

Define Documentation

#define _ary_lst_bnds_chk (   a,
 
)
Value:
Is_True ( ((i) >= 0) && ((i)<ARY_LST_n_elems(a)), \
                (_ary_lst_bounds_msg, (i), (ARY_LST_n_elems(a)-1) ) )

Definition at line 397 of file linklist.h.

#define ARY_Add_First_Item (   a,
  i,
 
)    Add_First_Item(ARY_LST_Elem(a,i),v)

Definition at line 442 of file linklist.h.

#define ARY_Add_Item (   a,
  i,
 
)    Add_Item(ARY_LST_Elem(a,i),v)

Definition at line 439 of file linklist.h.

#define ARY_Add_Item_Dup (   a,
  i,
 
)    Add_Item_Dup(ARY_LST_Elem(a,i),v)

Definition at line 441 of file linklist.h.

#define ARY_Add_Item_Validate (   a,
  i,
 
)    Add_Item_Validate(ARY_LST_Elem(a,i),v)

Definition at line 440 of file linklist.h.

#define ARY_Add_Ordered_Item (   a,
  i,
 
)    Add_Ordered_Item(ARY_LST_Elem(a,i),v)

Definition at line 443 of file linklist.h.

#define ARY_Add_Ordered_Item_Dupl (   a,
  i,
 
)    Add_Ordered_Item_Dupl(ARY_LST_Elem(a,i),v)

Definition at line 445 of file linklist.h.

#define ARY_Del_Cur_Item (   a,
 
)    Del_Cur_Item(ARY_LST_Elem(a,i));

Definition at line 448 of file linklist.h.

#define ARY_Del_Item (   a,
  i,
 
)    Del_Item(ARY_LST_Elem(a,i),v);

Definition at line 447 of file linklist.h.

#define ARY_Del_List (   a,
 
)    Free_List(ARY_LST_Elem(a,i))

Definition at line 425 of file linklist.h.

#define ARY_First_Item (   a,
 
)    ( First_Item(ARY_LST_Elem(a,i)) )

Definition at line 423 of file linklist.h.

#define ARY_First_Item_Strg (   a,
  i,
  s 
)    ( First_Item_Strg(ARY_LST_Elem(a,i),s) )

Definition at line 436 of file linklist.h.

#define ARY_LST_Elem (   a,
 
)
Value:
( _ary_lst_bnds_chk((a),(i)), \
                                (((a)->lists)+(i)) )

Definition at line 404 of file linklist.h.

#define ARY_LST_Len (   a,
 
)    LST_Len(ARY_LST_Elem(a,i))

Definition at line 438 of file linklist.h.

#define ARY_LST_n_elems (   a)    ((a)->n_elems)

Definition at line 392 of file linklist.h.

#define ARY_Next_Item (   a,
 
)    ( Next_Item(ARY_LST_Elem(a,i)) )

Definition at line 424 of file linklist.h.

#define ARY_Next_Item_Strg (   a,
  i,
  s 
)    ( Next_Item_Strg(ARY_LST_Elem(a,i),s) )

Definition at line 437 of file linklist.h.

#define clr_LST_len (   l)    ((l)->len = 0)

Definition at line 371 of file linklist.h.

#define decr_LST_len (   l)    ( --((l)->len) )

Definition at line 370 of file linklist.h.

#define First_Item (   l)
Value:
( (_lst_itm = LST_first(l)) ? \
                                 ( (LST_nxt(l) = LST_next(_lst_itm)), \
                                   LST_val(_lst_itm) ) : NULL_ITEM )

Definition at line 406 of file linklist.h.

#define First_Item_Fast (   l,
 
)    ( (t) = LST_first(l) )

Definition at line 419 of file linklist.h.

#define First_Item_Strg (   l,
  s 
)
Value:
( (s = _lst_itm = LST_first(l)) ? \
                                        ((s = LST_next(s)), \
                                        LST_val(_lst_itm)) : NULL_ITEM )

Definition at line 426 of file linklist.h.

#define Get_Item_Fast (   l,
 
)    ( LST_val(t) )

Definition at line 422 of file linklist.h.

#define incr_LST_len (   l)    ( ++((l)->len) )

Definition at line 369 of file linklist.h.

#define Init_List (   l)
Value:
( (LST_nxt(l) = LST_first(l) = NULL), \
                                        clr_LST_len(l) )

Definition at line 450 of file linklist.h.

#define Invalid_Item (   val)    (((tlst_val) (val)) == NULL_ITEM)

Definition at line 386 of file linklist.h.

#define LNK_LST_CHECK

Definition at line 275 of file linklist.h.

#define LST_Empty (   lst)    ( LST_first(lst) == NULL )

Definition at line 391 of file linklist.h.

#define LST_first (   lst)    ((lst)->first)

Definition at line 389 of file linklist.h.

#define LST_Len (   lst)    ((lst)->len)

Definition at line 368 of file linklist.h.

#define LST_lists (   a)    ((a)->lists)

Definition at line 393 of file linklist.h.

#define LST_next (   itm)    ((itm)->next)

Definition at line 388 of file linklist.h.

Referenced by check_linked_list_free().

#define LST_nxt (   lst)    ((lst)->nxt)

Definition at line 390 of file linklist.h.

#define LST_val (   itm)    ((itm)->val)

Definition at line 387 of file linklist.h.

#define Next_Item (   l)
Value:
( (_lst_itm = LST_nxt(l)) ? \
                                 ( (LST_nxt(l) = LST_next(_lst_itm)), \
                                      LST_val(_lst_itm) ) : NULL_ITEM )

Definition at line 409 of file linklist.h.

#define Next_Item_Fast (   l,
 
)    ( (t) = LST_next(t) )

Definition at line 420 of file linklist.h.

#define Next_Item_Strg (   l,
  s 
)
Value:
( (_lst_itm = s) ? \
                                        ((s = LST_next(s)), \
                                        LST_val(_lst_itm)) : NULL_ITEM )

Definition at line 433 of file linklist.h.

#define NULL_ITEM   ((tlst_val) -1)

Definition at line 384 of file linklist.h.

#define STORE_LIST_LEN

Definition at line 296 of file linklist.h.

#define Valid_Item (   val)    (((tlst_val) (val)) != NULL_ITEM)

Definition at line 385 of file linklist.h.

#define Valid_Item_Fast (   v,
 
)    ( t )

Definition at line 421 of file linklist.h.


Typedef Documentation

typedef struct lnk_lst LNK_LST
typedef struct lnk_lst_ary LNK_LST_ARY
typedef struct lst_itm LST_ITM
typedef mINT32 tlst_val

Definition at line 299 of file linklist.h.


Function Documentation

void Add_First_Item ( LNK_LST lst,
tlst_val  val 
)
BOOL Add_Item ( LNK_LST lst,
tlst_val  val 
)
void Add_Item_Dup ( LNK_LST lst,
tlst_val  val 
)
BOOL Add_Item_Validate ( LNK_LST lst,
tlst_val  val 
)
BOOL Add_Ordered_Item ( LNK_LST lst,
tlst_val  val 
)
void Add_Ordered_Item_Dupl ( LNK_LST lst,
tlst_val  val 
)
void ARY_Free_List ( LNK_LST_ARY ary)
void ARY_Init_List ( LNK_LST_ARY ary,
INT32  n_elems 
)
BOOL ARY_Item_In_List ( LNK_LST_ARY ary,
INT32  i,
tlst_val  val 
)
void ARY_List_Print ( LNK_LST_ARY ary,
char *  msg,
  ... 
)
BOOL Del_Item ( LNK_LST lst,
tlst_val  val 
)
void Free_All_List_Items ( void  )

Definition at line 256 of file linklist.c.

References BLK_next, check_linked_list_free(), lnk_lst_free, and NULL.

Here is the call graph for this function:

void Free_List ( LNK_LST lst)
BOOL Item_In_List ( LNK_LST lst,
tlst_val  val 
)
void List_Print ( LNK_LST lst,
char *  msg,
  ... 
)

Variable Documentation

Definition at line 45 of file linklist.c.

Definition at line 69 of file linklist.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines