Annotation of embedaddon/ntp/include/ntp_data_structures.h, revision 1.1.1.1

1.1       misho       1: /* ntp_data_structures.h
                      2:  *
                      3:  * This file contains the structures and function prototypes for the data 
                      4:  * structures used by the ntp configuration code and the discrete event 
                      5:  * simulator.
                      6:  *
                      7:  * Written By: Sachin Kamboj
                      8:  *             University of Delaware
                      9:  *             Newark, DE 19711
                     10:  * Copyright (c) 2006
                     11:  */
                     12: 
                     13: #ifndef __NTP_DATA_STRUCTURES_H__
                     14: #define __NTP_DATA_STRUCTURES_H__
                     15: 
                     16: 
                     17: /* Structures for storing a priority queue 
                     18:  * ---------------------------------------
                     19:  */
                     20: 
                     21: typedef struct node {
                     22:        union {
                     23:                struct node *next;
                     24:                double d;
                     25:        } nodeu;
                     26: } node;
                     27: #define node_next nodeu.next
                     28:     
                     29: typedef struct Queue {
                     30:     int (*get_order)(void *, void *);
                     31:     node *front;
                     32:     int no_of_elements;
                     33: } queue;
                     34: 
                     35: 
                     36: /* FUNCTION PROTOTYPES
                     37:  * -------------------
                     38:  */
                     39: queue *create_priority_queue(int (*get_order)(void *, void *));
                     40: void destroy_queue(queue *my_queue);
                     41: void *get_node(size_t size);
                     42: void free_node(void *my_node);
                     43: void *next_node(void *my_node);
                     44: int empty(queue *my_queue);
                     45: void *queue_head(queue *my_queue);
                     46: queue *enqueue(queue *my_queue, void *my_node);
                     47: void *dequeue(queue *my_queue);
                     48: int get_no_of_elements(queue *my_queue);
                     49: void append_queue(queue *q1, queue *q2);
                     50: int get_fifo_order(void *el1, void *el2);
                     51: queue *create_queue(void);
                     52: 
                     53: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>