nut_types.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef _SYS_NUT_TYPES_H_
  2. #define _SYS_NUT_TYPES_H_
  3. /*
  4. * nut-specific sys/types.h definitions that are not available on in unix sys/types.h
  5. */
  6. /*!
  7. * \brief Unsigned register type.
  8. *
  9. * The size of this type is equal to the size of a register,
  10. * the hardware datapath or whatever might fit to give optimum
  11. * performance for values from 0 to 255.
  12. *
  13. * Typically 8 bit CPUs will use unsigned characters, 16 bit
  14. * CPUs will use unsigned shorts etc.
  15. */
  16. #if defined(__AVR__)
  17. typedef unsigned char ureg_t;
  18. #elif defined(__arm__)
  19. typedef unsigned short ureg_t;
  20. #elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__)
  21. typedef unsigned short ureg_t;
  22. #elif defined(__m68k__)
  23. typedef unsigned short ureg_t;
  24. #elif defined(__linux__) || defined(__APPLE__)
  25. typedef unsigned short ureg_t;
  26. #endif
  27. /*!
  28. * \brief Signed register type.
  29. *
  30. * Similar to ureg_t, but for signed values from -128 to +127.
  31. */
  32. #if defined(__AVR__)
  33. typedef unsigned char reg_t;
  34. #elif defined(__arm__)
  35. typedef unsigned short reg_t;
  36. #elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__)
  37. typedef unsigned short reg_t;
  38. #elif defined(__m68k__)
  39. typedef unsigned short reg_t;
  40. #elif defined(__linux__) || defined(__APPLE__)
  41. typedef unsigned short reg_t;
  42. #endif
  43. /*!
  44. * \brief Unsigned pointer value type.
  45. *
  46. * The size of this type is at least the size of a memory pointer.
  47. * For CPUs with 16 address bits this will be an unsigned short.
  48. */
  49. #if defined(__AVR__)
  50. typedef unsigned short uptr_t;
  51. #else
  52. /*
  53. * For remaining MCUs GCC is assumed where __PTRDIFF_TYPE__ macro is defined
  54. */
  55. typedef unsigned __PTRDIFF_TYPE__ uptr_t;
  56. #endif
  57. /*! \brief Void pointer */
  58. typedef void *HANDLE;
  59. #endif