/****************************************************************************/
/* Copyright 1990, 1991, 1992 MBARI                                         */
/****************************************************************************/
/* Summary  : Linked list library declarations for micro-controller         */
/* Filename : list.h                                                        */
/* Author   : Andrew Pearce                                                 */
/* Project  : Tiburon ROV                                                   */
/* Version  : 1.0                                                           */
/* Created  : 03/02/92 from Bob's oasis list library                        */
/* Modified : 03/02/92                                                      */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/* $Header: /usr/tiburon/.cvsroot/micro/h/list.h,v 1.1.1.1 1997/05/02 17:15:39 pean Exp $
 * $Log: list.h,v $
 * Revision 1.1.1.1  1997/05/02 17:15:39  pean
 * Initial release of the microcontroller software after Tiburon
 * Moolpool Dive to test IView, Lapboxes, modified Power can
 * GF/5V using bus capacitance mode.
 *
 * Revision 1.1  92/05/14  09:17:47  09:17:47  pean (Andrew Pearce 408-647-3746)
 * Initial revision
 *
*/
/****************************************************************************/

#ifndef LIST_H
#define LIST_H

typedef struct node Node;               /* Node in linked list              */

struct node                             /************************************/
{                                       /* List Node structure              */
    Node        *lst_next;              /* Pointer to next node             */
    Node        *lst_prev;              /* Pointer to previous node         */
};                                      /************************************/

typedef struct                          /************************************/
{                                       /* LstHead STRUCTURE                */
    Node        *lst_head;              /* Head of linked list of tasks     */
    Node        *lst_tail;              /* Tail of linked list of tasks     */
} LstHead;                              /************************************/

#define NULLNODE       ((Node *)NULL)   /* Link pointer value for null node */

#ifdef __STDC__                         /* ANSI C function prototypes       */

Void list_init( Reg LstHead *lp );

Node *list_head( Reg LstHead *lp );

Void list_add( Reg LstHead *lp, Reg Node *np );

Boolean list_get( Reg LstHead *lp, Reg Node *np );

#endif

#endif
