summaryrefslogtreecommitdiffstats
path: root/src/lib/kernel/slist.h
blob: 708105f88536ef8b48a0df044a7ef1393dd78b7c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* SList -- simple list for students. 
 * This list was not originally in the pintos implementation. 
 */
typedef void * ListElement;

#ifndef _SList_H
#define _SList_H

struct Node;
typedef struct Node *PtrToNode;
typedef PtrToNode SList;
typedef PtrToNode Position;

SList MakeEmpty( SList L );
int IsEmpty( SList L );
int IsLast( Position P,  SList L);
Position Find( ListElement X, SList L );
void Delete( ListElement X, SList L );
Position FindPrevious( ListElement X, SList L );
void Insert( ListElement X, SList L, Position P );
void DeleteList( SList L );
Position Header( SList L );
Position First( SList L );
Position Advance( Position P );
ListElement Retrieve( Position P );

#endif    /* _SList_H */