types.h 634 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include "bitmap.h"
  3. #include "buffer.h"
  4. #include "size.h"
  5. #include "status.h"
  6. #include "stdint.h"
  7. #ifdef __GNUC__
  8. #define NORETURN __attribute__((noreturn))
  9. #else
  10. #error "no definition for ((NORETURN))"
  11. #endif
  12. #ifdef __GNUC__
  13. #define SECTION(x) __attribute__((section(x)))
  14. #else
  15. #error "no definition for ((SECTION))"
  16. #endif
  17. #ifdef __GNUC__
  18. #define likely(expr) (__builtin_expect(!!(expr), 1))
  19. #define unlikely(expr) (__builtin_expect(!!(expr), 0))
  20. #else
  21. #define likely(expr) (!!(expr))
  22. #define unlikely(expr) (!!(expr))
  23. #endif
  24. #ifdef __cplusplus
  25. #include <types/allocator.hpp>
  26. #include <types/cplusplus.hpp>
  27. #endif