types.h 594 B

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