mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
When the series of commits is complete, things like https://cert.litnet.lt/en/docs/ntp-distributed-reflection-dos-attacks should be fixed. PR: bin/148836 (except that we import a newer version) Asked by: Too many MFC after: 2 weeks
53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
/* ntp_data_structures.h
|
|
*
|
|
* This file contains the structures and function prototypes for the data
|
|
* structures used by the ntp configuration code and the discrete event
|
|
* simulator.
|
|
*
|
|
* Written By: Sachin Kamboj
|
|
* University of Delaware
|
|
* Newark, DE 19711
|
|
* Copyright (c) 2006
|
|
*/
|
|
|
|
#ifndef __NTP_DATA_STRUCTURES_H__
|
|
#define __NTP_DATA_STRUCTURES_H__
|
|
|
|
|
|
/* Structures for storing a priority queue
|
|
* ---------------------------------------
|
|
*/
|
|
|
|
typedef struct node {
|
|
union {
|
|
struct node *next;
|
|
double d;
|
|
} nodeu;
|
|
} node;
|
|
#define node_next nodeu.next
|
|
|
|
typedef struct Queue {
|
|
int (*get_order)(void *, void *);
|
|
node *front;
|
|
int no_of_elements;
|
|
} queue;
|
|
|
|
|
|
/* FUNCTION PROTOTYPES
|
|
* -------------------
|
|
*/
|
|
queue *create_priority_queue(int (*get_order)(void *, void *));
|
|
void destroy_queue(queue *my_queue);
|
|
void *get_node(size_t size);
|
|
void free_node(void *my_node);
|
|
void *next_node(void *my_node);
|
|
int empty(queue *my_queue);
|
|
void *queue_head(queue *my_queue);
|
|
queue *enqueue(queue *my_queue, void *my_node);
|
|
void *dequeue(queue *my_queue);
|
|
int get_no_of_elements(queue *my_queue);
|
|
void append_queue(queue *q1, queue *q2);
|
|
int get_fifo_order(void *el1, void *el2);
|
|
queue *create_queue(void);
|
|
|
|
#endif
|