summaryrefslogtreecommitdiffstats
path: root/app/prototypes.h
blob: 22a73341953f627808aa4b20ce33709d9ab4e4d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/* led.c */
extern void led_init(void);
extern void led_clear(void);
extern void led_set(void);
extern void led_slow_tick(void);
/* ticker.c */
extern volatile uint32_t ticks;
extern void delay_us(uint32_t d);
extern void sys_tick_handler(void);
extern void delay_ms(uint32_t d);
extern void ticker_init(void);
/* ring.c */
extern void ring_init(volatile ring_t *r, uint8_t *buf, size_t len);
extern int ring_write_byte(volatile ring_t *r, uint8_t c);
extern int ring_read_byte(volatile ring_t *r, uint8_t *c);
extern int ring_write(volatile ring_t *r, uint8_t *buf, size_t len, int blocking);
extern int ring_empty(volatile ring_t *r);
/* usart.c */
extern volatile ring_t rx3_ring;
extern volatile ring_t tx3_ring;
extern volatile ring_t rx1_ring;
extern volatile ring_t tx1_ring;
extern void usart3_isr(void);
extern void usart3_queue(uint8_t d);
extern void usart3_drain(void);
extern int usart3_write(char *ptr, int len, int blocking);
extern void usart1_isr(void);
extern void usart1_queue(uint8_t d);
extern void usart1_drain(void);
extern int usart1_write(char *ptr, int len, int blocking);
extern void usart_init(void);
/* stdio.c */
extern int _open(const char *name, int flags, int mode);
extern int _close(int file);
extern int _write(int file, char *buf, int nbytes);
extern int _read(int file, char *buf, int nbytes);
extern int _fstat(int file, struct stat *st);
extern int _lseek(int file, int offset, int whence);
extern int isatty(int file);
extern void stdio_drain(void);
/* lwip_glue.c */
extern struct netif if0;
extern uint32_t sys_now(void);
extern void dispatch_lwip(void);
extern void start_lwip(void);
/* steth.c */
extern _Bool phy_link_an_done(uint8_t phy);
extern void eth_isr(void);
extern void steth_isr(void);
extern err_t steth_lwip_init(struct netif *netif);
extern void eth_reset(void);
extern void eth_start_an(void);
extern void steth_init(void);
extern void steth_slow_tick(void);
/* msf.c */
extern uint64_t msf_last_second;
extern void exti0_isr(void);
extern void msf_dispatch(void);
extern void msf_init(void);
/* abs.c */
extern uint64_t abs_extend(uint32_t now);
extern void abs_meh(void);
extern uint64_t abs_get(void);
extern void abs_slow_tick(void);
/* pll.c */
extern int64_t pll_freq;
extern uint64_t pll_last_update;
extern int pll_valid;
extern void pll_meh(void);
extern void pll_dispatch(uint64_t edge);
extern void pll_set_offset(EPOCH epoch, uint64_t abs);
extern EPOCH _pll_decompose(uint64_t abs);
extern EPOCH pll_decompose_diff(int64_t diff);
extern EPOCH pll_decompose(uint64_t abs);
/* main.c */
extern int time_known;
extern int main(void);
/* time_fn.c */
extern UTC time_epoch_to_utc(EPOCH epoch);
extern EPOCH time_utc_to_epoch(UTC u);
extern void time_print_utc(const char *p, UTC u);
extern void time_print_epoch(const char *p, EPOCH e);
/* ntp.c */
extern void ntp_init(void);
/* dcf77.c */
extern uint64_t dcf77_last_second;
extern void exti15_10_isr(void);
extern void dcf77_dispatch(void);
extern void dcf77_init(void);
/* util.c */
extern int check_parity(uint8_t *d, unsigned s, unsigned e, uint8_t p);
extern unsigned bcd(uint8_t *d, unsigned s, unsigned e);
extern unsigned le_bcd(uint8_t *d, unsigned s, unsigned e);
/* stats.c */
extern void stats(void);
extern void stats_stamp(UTC m, uint64_t abs);
/* gps.c */
extern int gps_locked;
extern int gps_happy;
extern void exti2_isr(void);
extern void gps_dispatch(void);
extern void ubx_send(uint8_t class, uint8_t id, const void *_payload, unsigned len);
extern int ubx_handshake(uint8_t class, uint8_t id, const void *payload, unsigned len);
extern int ubx_handshake_xfer(uint8_t class, uint8_t id, const void *payload, unsigned len);
extern uint8_t *ubx_fetch(uint8_t class, uint8_t id, void *payload, unsigned len, unsigned *len_ptr);
extern int ubx_set_message_rate_port1(uint8_t class, uint8_t id, uint8_t rate);
extern int ubx_cfg_rst(uint16_t flags);
extern int gps_set_ref(int ref_hz);
extern int gps_init(void);
extern int gps_almanac(void);
extern void gps_reset(void);
extern int ubx_get_clock_stats(void);
/* hexdump.c */
extern void hexdump(void *_d, int len);
/* bits.c */
extern void dump_bits(char *wot, uint8_t *bits);