fw.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef FW_H
  2. #define FW_H
  3. #include "compiler.h"
  4. #include "picorv32.h"
  5. #include "irq.h"
  6. extern const size_t __rom_offset;
  7. extern const uint32_t __dram_checksum;
  8. extern const char __datestamp[];
  9. extern no_return _die(void);
  10. extern no_return exit(int);
  11. extern no_return _exit(int);
  12. /* Value of an absolute symbol with one more _ than here given */
  13. #define abssymval(x) \
  14. static inline size_t x (void) { \
  15. extern const char _ ## x []; \
  16. return (size_t) _ ## x; \
  17. }
  18. extern const uint8_t _end[];
  19. extern void *_sbrk(size_t);
  20. extern uint32_t timer_irq_start;
  21. static inline uint32_t timer_count(void)
  22. {
  23. extern volatile uint32_t timer_irq_count;
  24. return timer_irq_count;
  25. }
  26. extern void init(void);
  27. extern void mount_abcdrives(void);
  28. extern void read_rtc(void);
  29. extern void write_rtc(void);
  30. extern bool do_write_rtc;
  31. extern void rtc_abc_init(void);
  32. extern void rtc_abc_io_poll(void);
  33. extern void disk_cache_init(void);
  34. extern void pun80_init(void);
  35. extern uint32_t romcopy_time[2];
  36. extern void romcopy_download(void *, size_t, size_t);
  37. extern void romcopy_bzero(void *, size_t);
  38. extern uint64_t rom_get_serial(void);
  39. extern void run_test_image(void);
  40. #endif /* FW_H */