fw.h 826 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef FW_H
  2. #define FW_H
  3. #include <stdarg.h>
  4. #include <stddef.h>
  5. #include <stdint.h>
  6. #include <stdbool.h>
  7. #include "picorv32.h"
  8. #include "irq.h"
  9. #define likely(x) __builtin_expect(!!(x), 1)
  10. #define unlikely(x) __builtin_expect(!!(x), 0)
  11. /* Handy composite pointer types */
  12. typedef union xptr {
  13. uint32_t *l;
  14. uint16_t *w;
  15. uint8_t *b;
  16. void *v;
  17. size_t a;
  18. } xptr_t;
  19. typedef union xcptr {
  20. const uint32_t *l;
  21. const uint16_t *w;
  22. const uint8_t *b;
  23. const void *v;
  24. size_t a;
  25. } xcptr_t;
  26. extern void __attribute__((noreturn)) _die(void);
  27. extern void __attribute__((noreturn)) exit(int);
  28. extern void __attribute__((noreturn)) _exit(int);
  29. extern const uint8_t _end[];
  30. extern void *_sbrk(size_t);
  31. extern int disk_init(void);
  32. extern void read_rtc(void);
  33. #endif /* FW_H */