toolMacros.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:1k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* toolMacros.h - compile time macros for GNU C compiler */
  2. /* Copyright 2001 Wind River Systems, Alameda, CA */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,26nov01,dat  New macros for alignment checking and unaligned copies
  7. 01b,14nov01,dat  Adding underscores to macro names
  8. 01a,18apr01,dat  written
  9. */
  10. #ifndef __INCtoolMacrosh
  11. #define __INCtoolMacrosh
  12. #define _WRS_PACK_ALIGN(x) __attribute__((packed, aligned(x)))
  13. #define _WRS_ASM(x) __asm__ volatile (x)
  14. #define _WRS_DATA_ALIGN_BYTES(x) __attribute__((aligned(x)))
  15. #define _WRS_GNU_VAR_MACROS
  16. /* New macros for alignment issues */
  17. #define _WRS_ALIGNOF(x)  __alignof__(x)
  18. #define _WRS_ALIGN_CHECK(ptr, type) 
  19. (((int)(ptr) & ( _WRS_ALIGNOF(type) - 1)) == 0 ? TRUE : FALSE)
  20. #define _WRS_UNALIGNED_COPY(pSrc, pDest, size) 
  21. ( __builtin_memcpy ((pDest), (void *)(pSrc), size))
  22. /*
  23.  * For compatibility with v5 of portable C coding guide
  24.  *
  25.  * These versions are obsolete, please don't use them
  26.  */
  27. #define WRS_PACK_ALIGN(x) _WRS_PACK_ALIGN(x)
  28. #define WRS_ASM(x) _WRS_ASM(x)
  29. #define WRS_DATA_ALIGN_BYTES(x) _WRS_DATA_ALIGN_BYTES(x)
  30. #define WRS_GNU_VAR_MACROS
  31. #endif /* __INCtoolMacrosh */