~ubuntu-branches/debian/squeeze/ntp/squeeze-201010051545

« back to all changes in this revision

Viewing changes to include/ntpsim.h

  • Committer: Bazaar Package Importer
  • Author(s): Matt Zimmerman
  • Date: 2004-10-11 16:10:27 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20041011161027-icyjbji8ujym633o
Tags: 1:4.2.0a-10ubuntu2
Use ntp.ubuntulinux.org instead of pool.ntp.org

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * ntpsim.h - Prototypes for ntpsim
 
3
 */
 
4
 
 
5
#ifndef __ntpsim_h
 
6
#define __ntpsim_h
 
7
 
 
8
#include <stdio.h>
 
9
#include <math.h>
 
10
#include <sys/socket.h>
 
11
#include <arpa/inet.h>
 
12
#include "ntp_syslog.h"
 
13
#include "ntp_fp.h"
 
14
#include "ntp.h"
 
15
#include "ntp_select.h"
 
16
#include "ntp_malloc.h"
 
17
#include "ntp_refclock.h"
 
18
#include "recvbuff.h"
 
19
#include "ntp_io.h"
 
20
#include "ntp_stdlib.h"
 
21
 
 
22
#define PI 3.1415926535
 
23
 
 
24
/*
 
25
 * ntpsim declarations
 
26
 */
 
27
typedef enum {
 
28
        BEEP, CLOCK, TIMER, PACKET
 
29
} funcTkn;
 
30
 
 
31
typedef struct {
 
32
        double time;
 
33
        union {
 
34
                struct pkt evnt_pkt;
 
35
                struct recvbuf evnt_buf;
 
36
        } buffer;
 
37
#define ntp_pkt buffer.evnt_pkt
 
38
#define rcv_buf buffer.evnt_buf
 
39
        funcTkn function;
 
40
} Event;
 
41
 
 
42
typedef struct List {
 
43
        Event event;
 
44
        struct List *next;
 
45
} *Queue;
 
46
 
 
47
typedef struct nde {
 
48
        double  time;                   /* simulation time */
 
49
        double  sim_time;               /* end simulation time */
 
50
        double  ntp_time;               /* client disciplined time */
 
51
        double  adj;                    /* remaining time correction */
 
52
        double  slew;                   /* correction slew rate */
 
53
 
 
54
        double  clk_time;               /* server time */
 
55
        double  ferr;                   /* frequency errort */
 
56
        double  fnse;                   /* random walk noise */
 
57
        double  ndly;                   /* network delay */
 
58
        double  snse;                   /* phase noise */
 
59
        double  pdly;                   /* processing delay */
 
60
        double  bdly;                   /* beep interval */
 
61
 
 
62
        double  last_time;              /* last clock read time */
 
63
        Queue   events;                 /* Node Event Queue */
 
64
        struct recvbuf *rbuflist;       /* Node Receive Buffer */
 
65
} Node;
 
66
 
 
67
/*
 
68
 * Function prototypes
 
69
 */
 
70
int     ntpsim          P((int argc, char *argv[]));
 
71
Event   event           P((double, funcTkn));
 
72
Queue   queue           P((Event, Queue ));
 
73
Node    node            P((void));
 
74
void    push            P((Event, Queue *));
 
75
Event   pop             P((Queue *));
 
76
void    ndbeep          P((Node *, Event));
 
77
void    ndeclk          P((Node *, Event));
 
78
void    ntptmr          P((Node *, Event));
 
79
void    netpkt          P((Node *, Event));
 
80
int     srvr_rply       P((Node *, struct sockaddr_storage *,
 
81
                            struct interface *, struct pkt *));
 
82
double  gauss           P((double, double));
 
83
double  poisson         P((double, double));
 
84
int     node_clock      P((Node *, double));
 
85
void    abortsim        P((char *));
 
86
 
 
87
/*
 
88
 * The global Node
 
89
 */
 
90
Node ntp_node;
 
91
 
 
92
#endif
 
93