/* 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 void usb_set_config(usbd_device *usbd_dev, uint16_t wValue); extern void usb_init(void); extern void usb_run(void); /* led.c */ extern void led_init(void); extern void led_blink(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 */ extern int i2c_bb(int scl, int sda); extern void i2c_bb_start(void); extern void i2c_bb_stop(void); extern int i2c_bb_send_data(uint8_t v); extern int i2c_bb_start_transaction(uint8_t a, int wnr); extern void i2c_bb_init(void); /* lcd.c */ extern uint8_t fb[2][16]; extern uint8_t shadow[2][16]; extern void lcd_refresh(void); extern void lcd_tick(void); extern void lcd_write_char(uint8_t c, int x, int y); extern void lcd_erase(int x, int y, int w); extern void lcd_erase_line(int w, int y); extern void lcd_erase_all(void); extern void lcd_write(char *c, int x, int y); extern void lcd_backlight(int i); extern void lcd_reset(void); extern void lcd_init(void); extern void lcd_shutdown(void); /* adc.c */ extern int host_has_power; extern void adc_tick(void); extern void adc_init(void); /* state.c */ extern uint32_t up_time; extern uint32_t down_time; extern int locked; extern void state_show(void); extern void state_tick(void); extern void state_init(void); /* key.c */ extern int have_key; extern void key_wipe(void); extern void key_set(char *in, size_t len); extern void key_send(void); extern void key_init(void); /* keyboard.c */ extern const struct usb_endpoint_descriptor keyboard_endpoint; extern const struct usb_interface_descriptor keyboard_iface; extern void keyboard_get_descriptor(uint8_t **buf, uint16_t *len); extern void keyboard_keypress(int m, int k); /* crypto.c */ extern int crypto_control(uint8_t request, uint16_t value, uint16_t index, void *buf, size_t len); extern int vendor_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)); /* map.c */ extern void send_ascii(unsigned char a); extern void send_str(const char *c);