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>