290 lines
10 KiB
C
Executable File
290 lines
10 KiB
C
Executable File
/******************************************************************************
|
|
*
|
|
* Copyright (c) 1994-2004 PalmSource, Inc. All rights reserved.
|
|
*
|
|
* File: PalmCompatibility.h
|
|
*
|
|
* Release: eclipse 5 SDK (68K) R4.
|
|
*
|
|
* Description:
|
|
* Type & macro definitions for compile-time compatibility between
|
|
* old and new header files.
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#ifndef __PALMCOMPATIBILITY_H__
|
|
#define __PALMCOMPATIBILITY_H__
|
|
|
|
#include <PalmTypes.h>
|
|
|
|
// The data types Byte, Word, DWord and so on are now deprecated. We
|
|
// recommend that you use the corresponding new data types: for example,
|
|
// use Int16 instead of SWord and UInt32 instead of DWord. In particular,
|
|
// the unfortunate distinction between Handle/VoidHand has been fixed:
|
|
// use MemHandle instead.
|
|
|
|
typedef Int8 SByte;
|
|
#if __DEFINE_TYPES_
|
|
typedef UInt8 Byte;
|
|
#endif
|
|
|
|
typedef Int16 SWord;
|
|
typedef UInt16 Word;
|
|
|
|
typedef Int32 SDWord;
|
|
typedef UInt32 DWord;
|
|
|
|
|
|
// Logical data types
|
|
typedef Int8 SChar;
|
|
typedef UInt8 UChar;
|
|
|
|
typedef Int16 Short;
|
|
typedef UInt16 UShort;
|
|
|
|
typedef Int16 Int;
|
|
typedef UInt16 UInt;
|
|
|
|
typedef Int32 Long;
|
|
typedef UInt32 ULong;
|
|
|
|
|
|
// Pointer Types
|
|
typedef MemPtr VoidPtr;
|
|
typedef MemHandle VoidHand;
|
|
|
|
#if __DEFINE_TYPES_
|
|
typedef MemPtr Ptr;
|
|
typedef MemHandle Handle;
|
|
#endif
|
|
|
|
|
|
// Because "const BytePtr" means "const pointer to Byte" rather than "pointer
|
|
// to const Byte", all these XXXXPtr types are deprecated: you're better off
|
|
// just using "Byte *" and so on. (Even better, use "UInt8 *"!)
|
|
|
|
typedef SByte* SBytePtr;
|
|
#if __DEFINE_TYPES_
|
|
typedef Byte* BytePtr;
|
|
#endif
|
|
|
|
typedef SWord* SWordPtr;
|
|
typedef Word* WordPtr;
|
|
typedef UInt16* UInt16Ptr;
|
|
|
|
typedef SDWord* SDWordPtr;
|
|
typedef DWord* DWordPtr;
|
|
|
|
// Logical data types
|
|
typedef Boolean* BooleanPtr;
|
|
|
|
typedef Char* CharPtr;
|
|
typedef SChar* SCharPtr;
|
|
typedef UChar* UCharPtr;
|
|
|
|
typedef WChar* WCharPtr;
|
|
|
|
typedef Short* ShortPtr;
|
|
typedef UShort* UShortPtr;
|
|
|
|
typedef Int* IntPtr;
|
|
typedef UInt* UIntPtr;
|
|
|
|
typedef Long* LongPtr;
|
|
typedef ULong* ULongPtr;
|
|
|
|
// Instead of indexing through countries and languages, developers should call
|
|
// the Locale Manager to index through known locales:
|
|
#define languageFirst lEnglish // From Preferences.h
|
|
#define languageLast lDutch // From Preferences.h
|
|
#define languageCount (languageLast - languageFirst + 1) // From Preferences.h
|
|
#define countryFirst cAustralia // From Preferences.h
|
|
#define countryLast cTaiwan // From Preferences.h
|
|
#define countryCount (countryLast - countryFirst + 1) // From Preferences.h
|
|
|
|
// Incorporated into the Locale Manager:
|
|
#define countryNameLength (kMaxCountryNameLen+1) // From Preferences.h
|
|
#define currencyNameLength (kMaxCurrencyNameLen+1) // From Preferences.h
|
|
#define currencySymbolLength (kMaxCurrencySymbolLen+1) // From Preferences.h
|
|
|
|
/********************************************************************
|
|
*
|
|
* Deprecated screen stuff
|
|
*
|
|
********************************************************************/
|
|
|
|
#define scrCopy winPaint
|
|
#define scrAND winErase
|
|
#define scrANDNOT winMask
|
|
#define scrXOR winInvert
|
|
#define scrOR winOverlay
|
|
#define scrCopyNOT winPaintInverse
|
|
|
|
#define scrDisplayModeGetDefaults winScreenModeGetDefaults
|
|
#define scrDisplayModeGet winScreenModeGet
|
|
#define scrDisplayModeSetToDefaults winScreenModeSetToDefaults
|
|
#define scrDisplayModeSet winScreenModeSet
|
|
#define scrDisplayModeGetSupportedDepths winScreenModeGetSupportedDepths
|
|
#define scrDisplayModeGetSupportsColor winScreenModeGetSupportsColor
|
|
|
|
#define ScrOperation WinDrawOperation
|
|
|
|
#define ScrDisplayMode(op, widthP, heightP, depthP, enableColorP) \
|
|
WinScreenMode(op, widthP, heightP, depthP, enableColorP)
|
|
|
|
#define ScrInit() WinScreenInit()
|
|
|
|
|
|
/********************************************************************
|
|
*
|
|
* Deprecated resource ids
|
|
*
|
|
********************************************************************/
|
|
|
|
// Resources with system ids (>= 10000) are subject to change, and
|
|
// should _not_ be relied upon.
|
|
|
|
// System date string resources. You should use DateTemplateToAscii
|
|
// (Palm OS 3.5 or later) or DateGlueTemplateToAscii (backwards
|
|
// compatible) instead of these resources.
|
|
#define daysOfWeekStrID 10000
|
|
#define dayFullNamesStrID 10001
|
|
#define monthNamesStrID 10002
|
|
#define monthFullNamesStrID 10003
|
|
|
|
// More system date string resources, introduced in Palm OS 3.5. If you use
|
|
// these, you are limiting yourself to running on nothing earlier than 3.5,
|
|
// so you likely might as well use DateTempalateToAscii instead.
|
|
#define daysOfWeekShortStrListID 10200
|
|
#define daysOfWeekStdStrListID 10201
|
|
#define daysOfWeekLongStrListID 10202
|
|
#define monthNamesShortStrListID 10203
|
|
#define monthNamesStdStrListID 10204
|
|
#define monthNamesLongStrListID 10205
|
|
|
|
// The country table resource has changed between versions, and is
|
|
// now completely obsolete. Use LmGetLocaleSetting (4.0 or later)
|
|
// or LmGlueGetLocaleSetting instead of this resource.
|
|
#define sysResTCountries 'cnty'
|
|
#define sysResIDCountries 10000
|
|
|
|
/********************************************************************
|
|
*
|
|
* Deprecated SYS_TRAP macro machinery
|
|
*
|
|
********************************************************************/
|
|
|
|
// This nWORD_INLINE stuff was never really portable to GCC. See the
|
|
// new SYS_TRAP framework in PalmTypes.h for most uses of these macros.
|
|
// Generally if you just want to use CodeWarrior, you can use these
|
|
// macros or just use the = { x, y, z} notation directly. To be
|
|
// portable between CodeWarrior and m68k-palmos-gcc, you should use
|
|
// the ={x,y,z} notation on the CW side and __attribute__((callseq))
|
|
// on the GCC side (see the Palm OS-specific manual).
|
|
|
|
#if USE_TRAPS == 0
|
|
// Disable Palm OS System and Library trap inline code
|
|
// Header files become function prototypes for direct-linking
|
|
#define ONEWORD_INLINE(trapNum)
|
|
#define TWOWORD_INLINE(w1, w2)
|
|
#define THREEWORD_INLINE(w1, w2, w3)
|
|
#define FOURWORD_INLINE(w1, w2, w3, w4)
|
|
#define FIVEWORD_INLINE(w1, w2, w3, w4, w5)
|
|
#define SIXWORD_INLINE(w1, w2, w3, w4, w5, w6)
|
|
#define SEVENWORD_INLINE(w1, w2, w3, w4, w5, w6, w7)
|
|
#define EIGHTWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8)
|
|
#define NINEWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8, w9)
|
|
#define TENWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8, w9, w10)
|
|
#define ELEVENWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11)
|
|
#define TWELVEWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12)
|
|
|
|
#else
|
|
// Enable Palm OS System and Library trap inline code
|
|
// Header files contain inline glue (opcodes) to be inserted in calling code
|
|
#define ONEWORD_INLINE(trapNum) \
|
|
= trapNum
|
|
#define TWOWORD_INLINE(w1, w2) \
|
|
= {w1,w2}
|
|
#define THREEWORD_INLINE(w1, w2, w3) \
|
|
= {w1,w2,w3}
|
|
#define FOURWORD_INLINE(w1, w2, w3, w4) \
|
|
= {w1,w2,w3,w4}
|
|
#define FIVEWORD_INLINE(w1, w2, w3, w4, w5) \
|
|
= {w1,w2,w3,w4,w5}
|
|
#define SIXWORD_INLINE(w1, w2, w3, w4, w5, w6) \
|
|
= {w1,w2,w3,w4,w5,w6}
|
|
#define SEVENWORD_INLINE(w1, w2, w3, w4, w5, w6, w7) \
|
|
= {w1,w2,w3,w4,w5,w6,w7}
|
|
#define EIGHTWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8) \
|
|
= {w1,w2,w3,w4,w5,w6,w7,w8}
|
|
#define NINEWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8, w9) \
|
|
= {w1,w2,w3,w4,w5,w6,w7,w8,w9}
|
|
#define TENWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8, w9, w10) \
|
|
= {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10}
|
|
#define ELEVENWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11) \
|
|
= {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11}
|
|
#define TWELVEWORD_INLINE(w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12) \
|
|
= {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12}
|
|
|
|
#endif
|
|
|
|
/********************************************************************
|
|
*
|
|
* Deprecated Expansion Manager names
|
|
*
|
|
********************************************************************/
|
|
|
|
// Expansion Manager
|
|
#define invalidSlotRefNum expInvalidSlotRefNum
|
|
#define expErrInvalidSlotRefNumber expErrInvalidSlotRefNum
|
|
#define ExpMediaType_Any expMediaType_Any
|
|
#define ExpMediaType_MemoryStick expMediaType_MemoryStick
|
|
#define ExpMediaType_CompactFlash expMediaType_CompactFlash
|
|
#define ExpMediaType_SecureDigital expMediaType_SecureDigital
|
|
#define ExpMediaType_MultiMediaCard expMediaType_MultiMediaCard
|
|
#define ExpMediaType_SmartMedia expMediaType_SmartMedia
|
|
#define ExpMediaType_RAMDisk expMediaType_RAMDisk
|
|
#define ExpMediaType_PoserHost expMediaType_PoserHost
|
|
#define ExpMediaType_MacSim expMediaType_MacSim
|
|
|
|
// VFS Manager:
|
|
#define VFSMountClass_SlotDriver vfsMountClass_SlotDriver
|
|
#define VFSMountClass_Simulator vfsMountClass_Simulator
|
|
#define fsOriginBeginning vfsOriginBeginning
|
|
#define fsOriginCurrent vfsOriginCurrent
|
|
#define fsOriginEnd vfsOriginEnd
|
|
#define fsFilesystemType_VFAT vfsFilesystemType_VFAT
|
|
#define fsFilesystemType_FAT vfsFilesystemType_FAT
|
|
#define fsFilesystemType_NTFS vfsFilesystemType_NTFS
|
|
#define fsFilesystemType_HFSPlus vfsFilesystemType_HFSPlus
|
|
#define fsFilesystemType_HFS vfsFilesystemType_HFS
|
|
#define fsFilesystemType_MFS vfsFilesystemType_MFS
|
|
#define fsFilesystemType_EXT2 vfsFilesystemType_EXT2
|
|
#define fsFilesystemType_FFS vfsFilesystemType_FFS
|
|
#define fsFilesystemType_NFS vfsFilesystemType_NFS
|
|
#define fsFilesystemType_AFS vfsFilesystemType_AFS
|
|
#define fsFilesystemType_Novell vfsFilesystemType_Novell
|
|
#define fsFilesystemType_HPFS vfsFilesystemType_HPFS
|
|
#define VFSFileAttributesGet VFSFileGetAttributes
|
|
#define VFSFileAttributesSet VFSFileSetAttributes
|
|
#define VFSFileDateGet VFSFileGetDate
|
|
#define VFSFileDateSet VFSFileSetDate
|
|
#define VFSVolumeLabelGet VFSVolumeGetLabel
|
|
#define VFSVolumeLabelSet VFSVolumeSetLabel
|
|
|
|
// FSLib:
|
|
#define FS_LIB_APIVersion fsLibAPIVersion
|
|
#define FSFileAttributesGet FSFileGetAttributes
|
|
#define FSFileAttributesSet FSFileSetAttributes
|
|
#define FSFileDateGet FSFileGetDate
|
|
#define FSFileDateSet FSFileSetDate
|
|
#define FSVolumeLabelGet FSVolumeGetLabel
|
|
#define FSVolumeLabelSet FSVolumeSetLabel
|
|
|
|
// SlotDrvrLib:
|
|
#define SlotDrvr_LIB_APIVersion slotDrvrAPIVersion
|
|
#define Slot_SECTOR_SIZE slotSectorSize
|
|
|
|
|
|
#endif
|