#ifndef EXEC_LISTS_H
#define EXEC_LISTS_H
/*
**	$Filename: exec/lists.h $
**	$Release: 2.02 $
**	$Revision: 36.7 $
**	$Date: 90/11/05 $
**
**	Definitions and macros for use with Exec lists
**
**	(C) Copyright 1985,1986,1987,1988,1989 Commodore-Amiga, Inc.
**	    All Rights Reserved
*/

#ifndef EXEC_NODES_H
#include "exec/nodes.h"
#endif /* EXEC_NODES_H */

/*
 *  Full featured list header.
 */
struct List {
   struct  Node *lh_Head;
   struct  Node *lh_Tail;
   struct  Node *lh_TailPred;
   UBYTE   lh_Type;
   UBYTE   l_pad;
};	/* word aligned */

/*
 * Minimal List Header - no type checking
 */
struct MinList {
   struct  MinNode *mlh_Head;
   struct  MinNode *mlh_Tail;
   struct  MinNode *mlh_TailPred;
};	/* longword aligned */



#define CheckList(x)	( ((x)->lh_TailPred) != (struct Node *)&(x) )

#define CheckMsgPort(x) (!( (x)->mp_MsgList.lh_TailPred == (struct Node *)&(x)->mp_MsgList ))


#endif	/* EXEC_LISTS_H */
