/* dfu.c */ extern const struct usb_dfu_descriptor dfu_function; extern const struct usb_interface_descriptor dfu_iface; extern int dfu_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, int (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req)); /* main.c */ extern int main(void); /* usb.c */ extern const struct usb_device_descriptor dev; extern const struct usb_interface ifaces[]; extern const struct usb_config_descriptor config; extern usbd_device *usbd_dev; extern int usb_is_suspended; extern int usb_running; extern void usb_tick(void); extern int usb_wakeup_host(void); extern int class_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, int (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req)); extern void usb_set_config(usbd_device *usbd_dev, uint16_t wValue); extern uint8_t usbd_control_buffer[128]; extern void usb_init(void); extern void usb_run(void); /* led.c */ extern void led_init(void); extern void led_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 int timed_out(uint32_t then, unsigned int ms); extern void ticker_init(void); /* i2c.c */ /* lcd.c */ /* cdcacm.c */ extern const struct usb_interface_descriptor comm_iface[]; extern const struct usb_interface_descriptor data_iface[]; extern int cdcacm_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, int (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req)); extern void cdcacm_data_tx(void *buf, size_t len); extern void cdcacm_data_rx_cb(usbd_device *usbd_dev, uint8_t ep); /* usart.c */ extern ring_t rx1_ring; extern ring_t tx1_ring; extern ring_t rx2_ring; extern ring_t tx2_ring; extern void usart1_isr(void); extern void usart2_isr(void); extern int _write(int file, char *ptr, int len); extern int usart1_tx(void *ptr, int len); extern int usart2_tx(void *buf, size_t len); extern void usart1_queue(uint8_t d); extern void usart2_queue(uint8_t d); extern void usart2_drain(void); extern void usart1_drain(void); extern void usart_init(void); /* ring.c */ extern void ring_init(ring_t *r, uint8_t *buf, size_t len); extern int ring_write_byte(ring_t *r, uint8_t c); extern int ring_read_byte(ring_t *r, uint8_t *c); extern int ring_write(ring_t *r, uint8_t *buf, size_t len); extern int ring_empty(ring_t *r); /* serial.c */ extern void serial_poll(void); /* gpio.c */ extern int hook; extern void exti9_5_isr(void); extern void exti15_10_isr(void); extern void toggle_fake_hook(void); extern void gpio_tick(void); extern void gpio_init(void); /* console.c */ extern int console_tx(void *buf, size_t len); /* ringer.c */ extern int ringing; extern void ringer_tick(void); extern void ringer_off(void); extern void ringer_ring(int l); extern void ringer_disable(void); extern void ringer_enable(void); extern void ringer_init(void); /* modem.c */ extern int in_call; extern int dialtone; extern void modem_send(void); extern void modem_cmd(char *buf); extern void modem_dial(char *buf); extern void modem_tone_off(void); extern void modem_tone(int i); extern void modem_tone_nu(void); extern void modem_line(void); extern void modem_byte(uint8_t b); extern void answer_call(void); extern void terminate_call(void); extern void dialtone_on(void); extern void dialtone_off(void); extern void modem_tick(void); extern void modem_init(void); /* dialstr.c */ extern void dialstr_clear(void); extern void dialstr_digit(char digit); extern void dialstr_dial(void); extern void dialstr_tick(void);