2 * declarations for realtime daemon
9 #include "auproto-pic.h"
20 #include <sys/types.h>
23 #include "../layout/layout-data.h"
25 typedef struct Segment Segment;
26 typedef struct Train Train;
28 /*---------- from retransmit.c ----------*/
30 typedef struct RetransmitRelaxedNode RetransmitRelaxedNode;
31 typedef union RetransmitUrgentNode RetransmitUrgentNode;
32 typedef unsigned Retransmit__Time;
34 struct RetransmitRelaxedNode { /* all for use by retransmit.c only */
36 DLIST_NODE(RetransmitRelaxedNode) rr;
38 union RetransmitUrgentNode { /* all for use by retransmit.c only */
41 RetransmitRelaxedNode relaxed;
43 Retransmit__Time when;
44 DLIST_NODE(RetransmitUrgentNode) queue;
48 void retransmit_relaxed_queue(RetransmitRelaxedNode *rn, const Nmra *n);
49 void retransmit_relaxed_requeue(RetransmitRelaxedNode *rn, const Nmra *n);
50 void retransmit_relaxed_cancel(RetransmitRelaxedNode *rn);
52 void retransmit_urgent_queue(RetransmitUrgentNode *rn, const Nmra *n);
53 void retransmit_urgent_queue_relaxed(RetransmitUrgentNode *urg, const Nmra *n);
54 void retransmit_urgent_requeue(RetransmitUrgentNode *rn, const Nmra *n);
55 void retransmit_urgent_cancel(RetransmitUrgentNode *rn);
57 /* ... NB: these are NOT idempotent. Use _requeue it's queued;
58 * _requeue is just _cancel followed by queue. */
60 /*---------- global variables, in realtime.c ----------*/
62 extern CommandInput cmdi;
64 #define UPO (&(cmdi.out))
66 /*---------- from/for startup.c ----------*/
68 typedef enum { /* sta_toev ping_toev */
69 Sta_Flush, /* R 300 I ? */
70 Sta_Off, /* I ? I ? */
71 Sta_Ping, /* I ? I ? */
72 Sta_Fault, /* I ? R set */
73 Sta_Settling, /* I ? R set */
74 Sta_Resolving, /* I ? R set */
75 Sta_Run /* I ? R set */
78 void sta_startup(void);
79 void serial_moredata(PicInsn *buf);
81 extern StartupState sta_state;
83 /*---------- from/for record.c ----------*/
85 void records_parse(const char **argv);
87 /*---------- from/for realtime.c ----------*/
89 void oupicio(const char *dirn, const PicInsnInfo *pii, int objnum);
90 void ouhex(const char *word, const Byte *command, int length);
92 void serial_transmit(const PicInsn *pi);
94 /*---------- from actual.c ----------*/
96 int picinsn_polarity_testbit(const PicInsn *pi, const SegmentInfo *segi);
97 /* this belongs in {au,skel}proto-pic.[ch] really but it's
98 * more convenient here. */
100 /*---------- tbi ----------*/
102 void abandon_run(void);
108 #endif /*REALTIME_H*/