00001 00004 #ifndef _PRIOQUEUE_H 00005 #define _PRIOQUEUE_H 00006 00011 #define NIL ((philCell*)0) 00012 00013 /**************************************************************** 00014 **************************************************************** 00015 * 00016 * Gestion de files FIFO doublement chainêes circulairement 00017 * 00018 00019 ***************************************************************** 00020 *****************************************************************/ 00021 00028 typedef struct PhilCell { 00029 struct PhilCell *next; 00030 struct PhilCell * pred; 00031 long int prio; 00032 }PhilCell ; 00033 00049 #define PhilCELL PhilCell _cell 00050 00057 typedef struct PhilList 00058 { 00059 PhilCell * last; 00060 }PhilList ; 00061 00062 00063 00070 #define PhilListEmpty(Q) (((Q)->last) == (PhilCell*)0) 00071 00072 00073 00082 extern void PhilListPutLast(PhilList *q,PhilCell *b); 00083 00093 extern PhilCell * PhilListGetFirst(PhilList *q) ; 00094 00095 00096 00101 extern void PhilListInit(PhilList *q) ; 00102 00103 00104 00105 #endif