22 #ifndef __CONDITIONALMACROS__
43 #if PRAGMA_STRUCT_ALIGN
44 #pragma options align = mac68k
45 #elif PRAGMA_STRUCT_PACKPUSH
47 #elif PRAGMA_STRUCT_PACK
94 #if CALL_NOT_IN_CARBON
367 #if CALL_NOT_IN_CARBON
511 #if TARGET_RT_LITTLE_ENDIAN
517 struct BigEndianUnsignedLong
519 unsigned long bigEndianValue;
521 typedef struct BigEndianUnsignedLong BigEndianUnsignedLong;
522 struct BigEndianShort
524 short bigEndianValue;
526 typedef struct BigEndianShort BigEndianShort;
527 struct BigEndianUnsignedShort
529 unsigned short bigEndianValue;
531 typedef struct BigEndianUnsignedShort BigEndianUnsignedShort;
532 struct BigEndianFixed
534 Fixed bigEndianValue;
536 typedef struct BigEndianFixed BigEndianFixed;
537 struct BigEndianUnsignedFixed
539 UnsignedFixed bigEndianValue;
541 typedef struct BigEndianUnsignedFixed BigEndianUnsignedFixed;
542 struct BigEndianOSType
544 OSType bigEndianValue;
546 typedef struct BigEndianOSType BigEndianOSType;
550 typedef unsigned long BigEndianUnsignedLong;
551 typedef short BigEndianShort;
552 typedef unsigned short BigEndianUnsignedShort;
553 typedef Fixed BigEndianFixed;
554 typedef UnsignedFixed BigEndianUnsignedFixed;
555 typedef OSType BigEndianOSType;
561 #if TARGET_RT_BIG_ENDIAN
562 #define EndianS16_BtoN(value) (value)
563 #define EndianS16_NtoB(value) (value)
564 #define EndianU16_BtoN(value) (value)
565 #define EndianU16_NtoB(value) (value)
566 #define EndianS32_BtoN(value) (value)
567 #define EndianS32_NtoB(value) (value)
568 #define EndianU32_BtoN(value) (value)
569 #define EndianU32_NtoB(value) (value)
570 #define EndianS64_BtoN(value) (value)
571 #define EndianS64_NtoB(value) (value)
572 #define EndianU64_BtoN(value) (value)
573 #define EndianU64_NtoB(value) (value)
575 #define EndianS16_LtoN(value) (value)
576 #define EndianS16_NtoL(value) (value)
577 #define EndianU16_LtoN(value) (value)
578 #define EndianU16_NtoL(value) (value)
579 #define EndianS32_LtoN(value) (value)
580 #define EndianS32_NtoL(value) (value)
581 #define EndianU32_LtoN(value) (value)
582 #define EndianU32_NtoL(value) (value)
583 #define EndianS64_LtoN(value) (value)
584 #define EndianS64_NtoL(value) (value)
585 #define EndianU64_LtoN(value) (value)
586 #define EndianU64_NtoL(value) (value)
592 #if TARGET_RT_BIG_ENDIAN
593 #define EndianS16_LtoN(value) EndianS16_LtoB(value)
594 #define EndianS16_NtoL(value) EndianS16_BtoL(value)
595 #define EndianU16_LtoN(value) EndianU16_LtoB(value)
596 #define EndianU16_NtoL(value) EndianU16_BtoL(value)
597 #define EndianS32_LtoN(value) EndianS32_LtoB(value)
598 #define EndianS32_NtoL(value) EndianS32_BtoL(value)
599 #define EndianU32_LtoN(value) EndianU32_LtoB(value)
600 #define EndianU32_NtoL(value) EndianU32_BtoL(value)
601 #define EndianS64_LtoN(value) EndianS64_LtoB(value)
602 #define EndianS64_NtoL(value) EndianS64_BtoL(value)
603 #define EndianU64_LtoN(value) EndianU64_LtoB(value)
604 #define EndianU64_NtoL(value) EndianU64_BtoL(value)
606 #define EndianS16_BtoN(value) EndianS16_BtoL(value)
607 #define EndianS16_NtoB(value) EndianS16_LtoB(value)
608 #define EndianU16_BtoN(value) EndianU16_BtoL(value)
609 #define EndianU16_NtoB(value) EndianU16_LtoB(value)
610 #define EndianS32_BtoN(value) EndianS32_BtoL(value)
611 #define EndianS32_NtoB(value) EndianS32_LtoB(value)
612 #define EndianU32_BtoN(value) EndianU32_BtoL(value)
613 #define EndianU32_NtoB(value) EndianU32_LtoB(value)
614 #define EndianS64_BtoN(value) EndianS64_BtoL(value)
615 #define EndianS64_NtoB(value) EndianS64_LtoB(value)
616 #define EndianU64_BtoN(value) EndianU64_BtoL(value)
617 #define EndianU64_NtoB(value) EndianU64_LtoB(value)
623 #define EndianS16_LtoB(value) ((SInt16)Endian16_Swap(value))
624 #define EndianS16_BtoL(value) ((SInt16)Endian16_Swap(value))
625 #define EndianU16_LtoB(value) ((UInt16)Endian16_Swap(value))
626 #define EndianU16_BtoL(value) ((UInt16)Endian16_Swap(value))
627 #define EndianS32_LtoB(value) ((SInt32)Endian32_Swap(value))
628 #define EndianS32_BtoL(value) ((SInt32)Endian32_Swap(value))
629 #define EndianU32_LtoB(value) ((UInt32)Endian32_Swap(value))
630 #define EndianU32_BtoL(value) ((UInt32)Endian32_Swap(value))
631 #define EndianS64_LtoB(value) ((SInt64)Endian64_Swap((UInt64)value))
632 #define EndianS64_BtoL(value) ((SInt64)Endian64_Swap((UInt64)value))
633 #define EndianU64_LtoB(value) ((UInt64)Endian64_Swap(value))
634 #define EndianU64_BtoL(value) ((UInt64)Endian64_Swap(value))
647 #if CALL_NOT_IN_CARBON
656 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
657 #pragma parameter __D0 Endian16_Swap(__D0)
670 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
671 #pragma parameter __D0 Endian32_Swap(__D0)
679 #define Endian16_Swap(value) \
680 (((((UInt16)value) << 8) & 0xFF00) | ((((UInt16)value) >> 8) & 0x00FF))
682 #define Endian32_Swap(value) \
683 (((((UInt32)value) << 24) & 0xFF000000) | \
684 ((((UInt32)value) << 8) & 0x00FF0000) | \
685 ((((UInt32)value) >> 8) & 0x0000FF00) | \
686 ((((UInt32)value) >> 24) & 0x000000FF))
692 #elif defined(__MWERKS__) && (__MWERKS__ < 0x1800)
694 #define Endian64_Swap(value) \
695 (((((UInt64)value) << 56) & 0xFF00000000000000) | \
696 ((((UInt64)value) << 40) & 0x00FF000000000000) | \
697 ((((UInt64)value) << 24) & 0x0000FF0000000000) | \
698 ((((UInt64)value) << 8) & 0x000000FF00000000) | \
699 ((((UInt64)value) >> 8) & 0x00000000FF000000) | \
700 ((((UInt64)value) >> 24) & 0x0000000000FF0000) | \
701 ((((UInt64)value) >> 40) & 0x000000000000FF00) | \
702 ((((UInt64)value) >> 56) & 0x00000000000000FF))
704 #define Endian64_Swap(value) \
705 (((((UInt64)value) << 56) & 0xFF00000000000000ULL) | \
706 ((((UInt64)value) << 40) & 0x00FF000000000000ULL) | \
707 ((((UInt64)value) << 24) & 0x0000FF0000000000ULL) | \
708 ((((UInt64)value) << 8) & 0x000000FF00000000ULL) | \
709 ((((UInt64)value) >> 8) & 0x00000000FF000000ULL) | \
710 ((((UInt64)value) >> 24) & 0x0000000000FF0000ULL) | \
711 ((((UInt64)value) >> 40) & 0x000000000000FF00ULL) | \
712 ((((UInt64)value) >> 56) & 0x00000000000000FFULL))
728 #if CALL_NOT_IN_CARBON
745 #if PRAGMA_STRUCT_ALIGN
746 #pragma options align = reset
747 #elif PRAGMA_STRUCT_PACKPUSH
749 #elif PRAGMA_STRUCT_PACK
753 #ifdef PRAGMA_IMPORT_OFF
Set up for compiler independent conditionals.
SInt32 EndianS32_NtoB(SInt32 value)
UInt64 EndianU64_BtoL(UInt64 value)
SInt64 EndianS64_NtoL(SInt64 value)
SInt16 EndianS16_BtoL(SInt16 value)
SInt64 EndianS64_LtoN(SInt64 value)
#define EndianS16_LtoB(value)
Definition: Endian.h:623
#define EndianS16_LtoN(value)
Definition: Endian.h:575
SInt64 EndianS64_BtoL(SInt64 value)
UInt16 EndianU16_BtoN(UInt16 value)
UInt32 EndianU32_LtoB(UInt32 value)
UInt16 EndianU16_BtoL(UInt16 value)
UInt64 EndianU64_NtoB(UInt64 value)
UInt16 EndianU16_LtoN(UInt16 value)
SInt64 EndianS64_NtoB(SInt64 value)
SInt32 EndianS32_NtoL(SInt32 value)
UInt64 Endian64_Swap(UInt64 value)
SInt64 EndianS64_BtoN(SInt64 value)
UInt32 EndianU32_LtoN(UInt32 value)
SInt32 EndianS32_BtoN(SInt32 value)
SInt32 EndianS32_LtoN(SInt32 value)
UInt32 EndianU32_NtoB(UInt32 value)
UInt64 EndianU64_LtoB(UInt64 value)
UInt16 EndianU16_NtoL(UInt16 value)
UInt64 EndianU64_NtoL(UInt64 value)
UInt32 Endian32_Swap(UInt32 value)
UInt32 EndianU32_NtoL(UInt32 value)
#define EndianS16_BtoN(value)
Definition: Endian.h:606
SInt32 EndianS32_LtoB(SInt32 value)
long BigEndianLong
Definition: Endian.h:549
UInt16 EndianU16_NtoB(UInt16 value)
SInt32 EndianS32_BtoL(SInt32 value)
UInt64 EndianU64_LtoN(UInt64 value)
SInt16 EndianS16_NtoL(SInt16 value)
UInt32 EndianU32_BtoN(UInt32 value)
#define Endian16_Swap(value)
Definition: Endian.h:679
UInt16 EndianU16_LtoB(UInt16 value)
UInt64 EndianU64_BtoN(UInt64 value)
SInt16 EndianS16_NtoB(SInt16 value)
UInt32 EndianU32_BtoL(UInt32 value)
SInt64 EndianS64_LtoB(SInt64 value)
Basic Macintosh data types.
long Fixed
Definition: MacTypes.h:153
Definition: MacTypes.h:110
Definition: MacTypes.h:104