types.h 652 B

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