#ifndef __hfs_macos_types__
#define __hfs_macos_types__
#include <sys/param.h>
#ifdef KERNEL
#include <libkern/libkern.h>
#include <sys/systm.h>
#endif
#include <sys/types.h>
#include <sys/time.h>
#include <sys/proc.h>
#include <sys/lock.h>
#if defined(__ppc__) || defined(powerpc) || defined(ppc)
#define TARGET_CPU_PPC 1
#define TARGET_CPU_68K 0
#define TARGET_CPU_X86 0
#define TARGET_CPU_MIPS 0
#define TARGET_CPU_SPARC 0
#define TARGET_CPU_ALPHA 0
#define TARGET_RT_MAC_CFM 0
#define TARGET_RT_MAC_MACHO 1
#define TARGET_RT_MAC_68881 0
#define TARGET_RT_LITTLE_ENDIAN 0
#define TARGET_RT_BIG_ENDIAN 1
#elif defined(m68k)
#define TARGET_CPU_PPC 0
#define TARGET_CPU_68K 1
#define TARGET_CPU_X86 0
#define TARGET_CPU_MIPS 0
#define TARGET_CPU_SPARC 0
#define TARGET_CPU_ALPHA 0
#define TARGET_RT_MAC_CFM 0
#define TARGET_RT_MAC_MACHO 1
#define TARGET_RT_MAC_68881 0
#define TARGET_RT_LITTLE_ENDIAN 0
#define TARGET_RT_BIG_ENDIAN 1
#elif defined(sparc)
#define TARGET_CPU_PPC 0
#define TARGET_CPU_68K 0
#define TARGET_CPU_X86 0
#define TARGET_CPU_MIPS 0
#define TARGET_CPU_SPARC 1
#define TARGET_CPU_ALPHA 0
#define TARGET_RT_MAC_CFM 0
#define TARGET_RT_MAC_MACHO 1
#define TARGET_RT_MAC_68881 0
#define TARGET_RT_LITTLE_ENDIAN 0
#define TARGET_RT_BIG_ENDIAN 1
#elif defined(__i386__) || defined(i386) || defined(intel)
#define TARGET_CPU_PPC 0
#define TARGET_CPU_68K 0
#define TARGET_CPU_X86 1
#define TARGET_CPU_MIPS 0
#define TARGET_CPU_SPARC 0
#define TARGET_CPU_ALPHA 0
#define TARGET_RT_MAC_CFM 0
#define TARGET_RT_MAC_MACHO 1
#define TARGET_RT_MAC_68881 0
#define TARGET_RT_LITTLE_ENDIAN 1
#define TARGET_RT_BIG_ENDIAN 0
#else
#error unrecognized GNU C compiler
#endif
#define TARGET_OS_MAC 0
#define TARGET_OS_WIN32 0
#define TARGET_OS_UNIX 0
#define PRAGMA_IMPORT 0
#define PRAGMA_STRUCT_ALIGN 1
#define PRAGMA_ONCE 0
#define PRAGMA_STRUCT_PACK 0
#define PRAGMA_STRUCT_PACKPUSH 0
#define PRAGMA_ENUM_PACK 0
#define PRAGMA_ENUM_ALWAYSINT 0
#define PRAGMA_ENUM_OPTIONS 0
#define FOUR_CHAR_CODE(x) (x)
#define TYPE_EXTENDED 0
#if __GNUC__ >= 2
#define TYPE_LONGLONG 1
#else
#define TYPE_LONGLONG 0
#endif
#ifdef __cplusplus
#define TYPE_BOOL 1
#else
#define TYPE_BOOL 0
#endif
#define FUNCTION_PASCAL 0
#define FUNCTION_DECLSPEC 0
#define FUNCTION_WIN32CC 0
#define EXTERN_API(_type) extern _type
#define EXTERN_API_C(_type) extern _type
#define EXTERN_API_STDCALL(_type) extern _type
#define EXTERN_API_C_STDCALL(_type) extern _type
#define DEFINE_API(_type) _type
#define DEFINE_API_C(_type) _type
#define DEFINE_API_STDCALL(_type) _type
#define DEFINE_API_C_STDCALL(_type) _type
#define CALLBACK_API(_type, _name) _type ( * _name)
#define CALLBACK_API_C(_type, _name) _type ( * _name)
#define CALLBACK_API_STDCALL(_type, _name) _type ( * _name)
#define CALLBACK_API_C_STDCALL(_type, _name) _type ( * _name)
#define TARGET_API_MACOS_X 1
#define TARGET_API_MAC_OS8 0
#define TARGET_API_MAC_CARBON 0
#define ONEWORDINLINE(w1)
#define TWOWORDINLINE(w1,w2)
#define THREEWORDINLINE(w1,w2,w3)
#define FOURWORDINLINE(w1,w2,w3,w4)
#define FIVEWORDINLINE(w1,w2,w3,w4,w5)
#define SIXWORDINLINE(w1,w2,w3,w4,w5,w6)
#define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7)
#define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8)
#define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9)
#define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10)
#define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11)
#define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12)
#define __size_t__
#if HFS_DIAGNOSTIC
#define DEBUG_BUILD 1
#else
#define DEBUG_BUILD 0
#endif
#ifndef NULL
#define NULL 0
#endif
#ifndef nil
#define nil NULL
#endif
typedef u_int8_t UInt8;
typedef int8_t SInt8;
typedef u_int16_t UInt16;
typedef int16_t SInt16;
typedef u_int32_t UInt32;
typedef int32_t SInt32;
typedef u_int64_t UInt64;
typedef int64_t SInt64;
typedef float Float32;
typedef double Float64;
struct Float80 {
SInt16 exp;
UInt16 man[4];
};
typedef struct Float80 Float80;
struct Float96 {
SInt16 exp[2];
UInt16 man[4];
};
typedef struct Float96 Float96;
typedef char * Ptr;
typedef Ptr * Handle;
typedef long Size;
typedef SInt16 OSErr;
typedef SInt32 OSStatus;
typedef void * LogicalAddress;
typedef const void * ConstLogicalAddress;
typedef void * PhysicalAddress;
typedef UInt8 * BytePtr;
typedef UInt32 ByteCount;
typedef UInt32 ByteOffset;
typedef SInt32 Duration;
typedef UInt64 AbsoluteTime;
typedef UInt32 OptionBits;
typedef UInt32 ItemCount;
typedef UInt32 PBVersion;
typedef SInt16 ScriptCode;
typedef SInt16 LangCode;
typedef SInt16 RegionCode;
typedef unsigned long FourCharCode;
typedef FourCharCode OSType;
typedef FourCharCode ResType;
typedef OSType * OSTypePtr;
typedef ResType * ResTypePtr;
#if !TYPE_BOOL
enum {
false = 0,
true = 1
};
#endif
typedef unsigned char Boolean;
typedef long (*ProcPtr)();
typedef void (*Register68kProcPtr)();
typedef ProcPtr UniversalProcPtr;
typedef ProcPtr * ProcHandle;
typedef UniversalProcPtr * UniversalProcHandle;
struct Point {
short v;
short h;
};
typedef struct Point Point;
typedef Point * PointPtr;
struct Rect {
short top;
short left;
short bottom;
short right;
};
typedef struct Rect Rect;
typedef Rect * RectPtr;
typedef short CharParameter;
enum {
normal = 0,
bold = 1,
italic = 2,
underline = 4,
outline = 8,
shadow = 0x10,
condense = 0x20,
extend = 0x40
};
typedef unsigned char Style;
typedef short StyleParameter;
typedef Style StyleField;
enum {
noErr = 0
};
enum {
kNilOptions = 0
};
#define kInvalidID 0
enum {
kVariableLengthArray = 1
};
typedef UInt16 UniChar;
typedef unsigned char Str255[256];
typedef unsigned char Str63[64];
typedef unsigned char Str32[33];
typedef unsigned char Str31[32];
typedef unsigned char Str27[28];
typedef unsigned char Str15[16];
typedef unsigned char Str32Field[34];
typedef unsigned char * StringPtr;
typedef StringPtr * StringHandle;
typedef const unsigned char * ConstStr255Param;
typedef const unsigned char * ConstStr63Param;
typedef const unsigned char * ConstStr32Param;
typedef const unsigned char * ConstStr31Param;
typedef const unsigned char * ConstStr27Param;
typedef const unsigned char * ConstStr15Param;
#ifdef __cplusplus
inline unsigned char StrLength(ConstStr255Param string) { return (*string); }
#else
#define StrLength(string) (*(unsigned char *)(string))
#endif
typedef const unsigned char * ConstUTF8Param;
typedef UInt8 Byte;
typedef SInt8 SignedByte;
typedef SInt64 * WidePtr;
typedef UInt64 * UnsignedWidePtr;
typedef Float80 extended80;
typedef Float96 extended96;
typedef SInt8 VHSelect;
EXTERN_API( void )
DebugStr (ConstStr255Param debuggerMsg);
typedef struct vnode* FileReference;
#define kNoFileReference NULL
#define HFSInstrumentation 0
#if ! defined (__size_t__)
#define __size_t__
#if defined (__xlc) || defined (__xlC) || defined (__xlC__) || defined (__MWERKS__)
typedef unsigned long size_t;
#else
typedef unsigned int size_t;
#endif
#endif
#define offsetof(structure,field) ((size_t)&((structure *) 0)->field)
enum {
paramErr = -50,
noHardwareErr = -200,
notEnoughHardwareErr = -201,
userCanceledErr = -128,
qErr = -1,
vTypErr = -2,
corErr = -3,
unimpErr = -4,
SlpTypeErr = -5,
seNoDB = -8,
controlErr = -17,
statusErr = -18,
readErr = -19,
writErr = -20,
badUnitErr = -21,
unitEmptyErr = -22,
openErr = -23,
closErr = -24,
dRemovErr = -25,
dInstErr = -26
};
enum {
iMemFullErr = -108,
iIOAbort = -27,
noScrapErr = -100,
noTypeErr = -102,
memROZWarn = -99,
memROZError = -99,
memROZErr = -99,
memFullErr = -108,
nilHandleErr = -109,
memWZErr = -111,
memPurErr = -112,
memAdrErr = -110
};
enum {
abortErr = -27,
iIOAbortErr = -27,
notOpenErr = -28,
unitTblFullErr = -29,
dceExtErr = -30,
slotNumErr = -360,
gcrOnMFMErr = -400,
dirFulErr = -33,
dskFulErr = -34,
nsvErr = -35,
ioErr = -36,
bdNamErr = -37,
fnOpnErr = -38,
eofErr = -39,
posErr = -40,
mFulErr = -41,
tmfoErr = -42,
fnfErr = -43,
wPrErr = -44,
fLckdErr = -45
};
enum {
vLckdErr = -46,
fBsyErr = -47,
dupFNErr = -48,
opWrErr = -49,
rfNumErr = -51,
gfpErr = -52,
volOffLinErr = -53,
permErr = -54,
volOnLinErr = -55,
nsDrvErr = -56,
noMacDskErr = -57,
extFSErr = -58,
fsRnErr = -59,
badMDBErr = -60,
wrPermErr = -61,
dirNFErr = -120,
tmwdoErr = -121,
badMovErr = -122,
wrgVolTypErr = -123,
volGoneErr = -124
};
enum {
notBTree = -410,
btNoSpace = -413,
btDupRecErr = -414,
btRecNotFnd = -415,
btKeyLenErr = -416,
btKeyAttrErr = -417,
unknownInsertModeErr = -20000,
recordDataTooBigErr = -20001,
invalidIndexErr = -20002
};
enum {
fidNotFound = -1300,
fidExists = -1301,
notAFileErr = -1302,
diffVolErr = -1303,
catChangedErr = -1304,
desktopDamagedErr = -1305,
sameFileErr = -1306,
badFidErr = -1307,
notARemountErr = -1308,
fileBoundsErr = -1309,
fsDataTooBigErr = -1310,
volVMBusyErr = -1311,
envNotPresent = -5500,
envBadVers = -5501,
envVersTooBig = -5502,
fontDecError = -64,
fontNotDeclared = -65,
fontSubErr = -66,
fontNotOutlineErr = -32615,
firstDskErr = -84,
lastDskErr = -64,
noDriveErr = -64,
offLinErr = -65,
noNybErr = -66
};
enum {
kTextUnsupportedEncodingErr = -8738,
kTextMalformedInputErr = -8739,
kTextUndefinedElementErr = -8740,
kTECMissingTableErr = -8745,
kTECTableChecksumErr = -8746,
kTECTableFormatErr = -8747,
kTECCorruptConverterErr = -8748,
kTECNoConversionPathErr = -8749,
kTECBufferBelowMinimumSizeErr = -8750,
kTECArrayFullErr = -8751,
kTECBadTextRunErr = -8752,
kTECPartialCharErr = -8753,
kTECUnmappableElementErr = -8754,
kTECIncompleteElementErr = -8755,
kTECDirectionErr = -8756,
kTECGlobalsUnavailableErr = -8770,
kTECItemUnavailableErr = -8771,
kTECUsedFallbacksStatus = -8783,
kTECNeedFlushStatus = -8784,
kTECOutputBufferFullStatus = -8785,
unicodeChecksumErr = -8769,
unicodeNoTableErr = -8768,
unicodeVariantErr = -8767,
unicodeFallbacksErr = -8766,
unicodePartConvertErr = -8765,
unicodeBufErr = -8764,
unicodeCharErr = -8763,
unicodeElementErr = -8762,
unicodeNotFoundErr = -8761,
unicodeTableFormatErr = -8760,
unicodeDirectionErr = -8759,
unicodeContextualErr = -8758,
unicodeTextEncodingDataErr = -8757
};
typedef unsigned short CallingConventionType;
enum {
kPascalStackBased = 0,
kCStackBased = 1,
kRegisterBased = 2,
kD0DispatchedPascalStackBased = 8,
kD1DispatchedPascalStackBased = 12,
kD0DispatchedCStackBased = 9,
kStackDispatchedPascalStackBased = 14,
kThinkCStackBased = 5
};
#define STACK_UPP_TYPE(name) name
#define REGISTER_UPP_TYPE(name) name
typedef struct QElem QElem;
typedef QElem * QElemPtr;
struct QHdr {
short qFlags;
QElemPtr qHead;
QElemPtr qTail;
};
typedef struct QHdr QHdr;
typedef QHdr * QHdrPtr;
typedef CALLBACK_API( void , DeferredTaskProcPtr )(long dtParam);
typedef REGISTER_UPP_TYPE(DeferredTaskProcPtr) DeferredTaskUPP;
enum { uppDeferredTaskProcInfo = 0x0000B802 };
#define NewDeferredTaskProc(userRoutine) (DeferredTaskUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDeferredTaskProcInfo, GetCurrentArchitecture())
#define CallDeferredTaskProc(userRoutine, dtParam) CALL_ONE_PARAMETER_UPP((userRoutine), uppDeferredTaskProcInfo, (dtParam))
struct DeferredTask {
QElemPtr qLink;
short qType;
short dtFlags;
DeferredTaskUPP dtAddr;
long dtParam;
long dtReserved;
};
typedef struct DeferredTask DeferredTask;
typedef DeferredTask * DeferredTaskPtr;
enum {
kIsOnDesk = 0x0001,
kColor = 0x000E,
kIsShared = 0x0040,
kHasBeenInited = 0x0100,
kHasCustomIcon = 0x0400,
kIsStationery = 0x0800,
kNameLocked = 0x1000,
kHasBundle = 0x2000,
kIsInvisible = 0x4000,
kIsAlias = 0x8000
};
enum {
fOnDesk = 1,
fHasBundle = 8192,
fTrash = -3,
fDesktop = -2,
fDisk = 0
};
#if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
#endif
struct FInfo {
OSType fdType;
OSType fdCreator;
unsigned short fdFlags;
Point fdLocation;
short fdFldr;
};
typedef struct FInfo FInfo;
struct FXInfo {
short fdIconID;
short fdUnused[3];
SInt8 fdScript;
SInt8 fdXFlags;
short fdComment;
long fdPutAway;
};
typedef struct FXInfo FXInfo;
struct DInfo {
Rect frRect;
unsigned short frFlags;
Point frLocation;
short frView;
};
typedef struct DInfo DInfo;
struct DXInfo {
Point frScroll;
long frOpenChain;
SInt8 frScript;
SInt8 frXFlags;
short frComment;
long frPutAway;
};
typedef struct DXInfo DXInfo;
#if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
#endif
enum {
fsRtParID = 1,
fsRtDirID = 2
};
#if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
#endif
enum {
gbDefault = 0,
gbReadBit = 0,
gbReadMask = 0x0001,
gbExistBit = 1,
gbExistMask = 0x0002,
gbNoReadBit = 2,
gbNoReadMask = 0x0004,
gbReleaseBit = 3,
gbReleaseMask = 0x0008
};
enum {
rbDefault = 0,
rbWriteBit = 0,
rbWriteMask = 0x0001,
rbTrashBit = 1,
rbTrashMask = 0x0002,
rbDirtyBit = 2,
rbDirtyMask = 0x0004,
rbFreeBit = 3,
rbFreeMask = 0x000A
};
enum {
fcDefault = 0,
fcTrashBit = 0,
fcTrashMask = 0x0001,
fcFreeBit = 1,
fcFreeMask = 0x0003
};
enum {
fcbWriteBit = 0,
fcbWriteMask = 0x01,
fcbResourceBit = 1,
fcbResourceMask = 0x02,
fcbWriteLockedBit = 2,
fcbWriteLockedMask = 0x04,
fcbSharedWriteBit = 4,
fcbSharedWriteMask = 0x10,
fcbFileLockedBit = 5,
fcbFileLockedMask = 0x20,
fcbOwnClumpBit = 6,
fcbOwnClumpMask = 0x40,
fcbModifiedBit = 7,
fcbModifiedMask = 0x80
};
typedef UInt32 LocaleIdentifier;
typedef UInt32 TextEncodingBase;
enum {
kTextEncodingMacRoman = 0L,
kTextEncodingMacJapanese = 1,
kTextEncodingMacChineseTrad = 2,
kTextEncodingMacKorean = 3,
kTextEncodingMacArabic = 4,
kTextEncodingMacHebrew = 5,
kTextEncodingMacGreek = 6,
kTextEncodingMacCyrillic = 7,
kTextEncodingMacDevanagari = 9,
kTextEncodingMacGurmukhi = 10,
kTextEncodingMacGujarati = 11,
kTextEncodingMacOriya = 12,
kTextEncodingMacBengali = 13,
kTextEncodingMacTamil = 14,
kTextEncodingMacTelugu = 15,
kTextEncodingMacKannada = 16,
kTextEncodingMacMalayalam = 17,
kTextEncodingMacSinhalese = 18,
kTextEncodingMacBurmese = 19,
kTextEncodingMacKhmer = 20,
kTextEncodingMacThai = 21,
kTextEncodingMacLaotian = 22,
kTextEncodingMacGeorgian = 23,
kTextEncodingMacArmenian = 24,
kTextEncodingMacChineseSimp = 25,
kTextEncodingMacTibetan = 26,
kTextEncodingMacMongolian = 27,
kTextEncodingMacEthiopic = 28,
kTextEncodingMacCentralEurRoman = 29,
kTextEncodingMacVietnamese = 30,
kTextEncodingMacExtArabic = 31,
kTextEncodingMacSymbol = 33,
kTextEncodingMacDingbats = 34,
kTextEncodingMacTurkish = 35,
kTextEncodingMacCroatian = 36,
kTextEncodingMacIcelandic = 37,
kTextEncodingMacRomanian = 38,
kTextEncodingMacUnicode = 0x7E,
kTextEncodingMacFarsi = 0x8C,
kTextEncodingMacUkrainian = 0x98,
kTextEncodingMacVT100 = 0xFC,
kTextEncodingMacHFS = 0xFF,
kTextEncodingUnicodeDefault = 0x0100,
kTextEncodingUnicodeV1_1 = 0x0101,
kTextEncodingISO10646_1993 = 0x0101,
kTextEncodingUnicodeV2_0 = 0x0103,
kTextEncodingISOLatin1 = 0x0201,
kTextEncodingISOLatin2 = 0x0202,
kTextEncodingISOLatinCyrillic = 0x0205,
kTextEncodingISOLatinArabic = 0x0206,
kTextEncodingISOLatinGreek = 0x0207,
kTextEncodingISOLatinHebrew = 0x0208,
kTextEncodingISOLatin5 = 0x0209,
kTextEncodingDOSLatinUS = 0x0400,
kTextEncodingDOSGreek = 0x0405,
kTextEncodingDOSBalticRim = 0x0406,
kTextEncodingDOSLatin1 = 0x0410,
kTextEncodingDOSGreek1 = 0x0411,
kTextEncodingDOSLatin2 = 0x0412,
kTextEncodingDOSCyrillic = 0x0413,
kTextEncodingDOSTurkish = 0x0414,
kTextEncodingDOSPortuguese = 0x0415,
kTextEncodingDOSIcelandic = 0x0416,
kTextEncodingDOSHebrew = 0x0417,
kTextEncodingDOSCanadianFrench = 0x0418,
kTextEncodingDOSArabic = 0x0419,
kTextEncodingDOSNordic = 0x041A,
kTextEncodingDOSRussian = 0x041B,
kTextEncodingDOSGreek2 = 0x041C,
kTextEncodingDOSThai = 0x041D,
kTextEncodingDOSJapanese = 0x0420,
kTextEncodingDOSChineseSimplif = 0x0421,
kTextEncodingDOSKorean = 0x0422,
kTextEncodingDOSChineseTrad = 0x0423,
kTextEncodingWindowsLatin1 = 0x0500,
kTextEncodingWindowsANSI = 0x0500,
kTextEncodingWindowsLatin2 = 0x0501,
kTextEncodingWindowsCyrillic = 0x0502,
kTextEncodingWindowsGreek = 0x0503,
kTextEncodingWindowsLatin5 = 0x0504,
kTextEncodingWindowsHebrew = 0x0505,
kTextEncodingWindowsArabic = 0x0506,
kTextEncodingWindowsBalticRim = 0x0507,
kTextEncodingWindowsKoreanJohab = 0x0510,
kTextEncodingUS_ASCII = 0x0600,
kTextEncodingJIS_X0201_76 = 0x0620,
kTextEncodingJIS_X0208_83 = 0x0621,
kTextEncodingJIS_X0208_90 = 0x0622,
kTextEncodingJIS_X0212_90 = 0x0623,
kTextEncodingJIS_C6226_78 = 0x0624,
kTextEncodingGB_2312_80 = 0x0630,
kTextEncodingGBK_95 = 0x0631,
kTextEncodingKSC_5601_87 = 0x0640,
kTextEncodingKSC_5601_92_Johab = 0x0641,
kTextEncodingCNS_11643_92_P1 = 0x0651,
kTextEncodingCNS_11643_92_P2 = 0x0652,
kTextEncodingCNS_11643_92_P3 = 0x0653,
kTextEncodingISO_2022_JP = 0x0820,
kTextEncodingISO_2022_JP_2 = 0x0821,
kTextEncodingISO_2022_CN = 0x0830,
kTextEncodingISO_2022_CN_EXT = 0x0831,
kTextEncodingISO_2022_KR = 0x0840,
kTextEncodingEUC_JP = 0x0920,
kTextEncodingEUC_CN = 0x0930,
kTextEncodingEUC_TW = 0x0931,
kTextEncodingEUC_KR = 0x0940,
kTextEncodingShiftJIS = 0x0A01,
kTextEncodingKOI8_R = 0x0A02,
kTextEncodingBig5 = 0x0A03,
kTextEncodingMacRomanLatin1 = 0x0A04,
kTextEncodingHZ_GB_2312 = 0x0A05,
kTextEncodingNextStepLatin = 0x0B01,
kTextEncodingEBCDIC_US = 0x0C01,
kTextEncodingEBCDIC_CP037 = 0x0C02,
kTextEncodingMultiRun = 0x0FFF,
kTextEncodingMacTradChinese = 2,
kTextEncodingMacRSymbol = 8,
kTextEncodingMacSimpChinese = 25,
kTextEncodingMacGeez = 28,
kTextEncodingMacEastEurRoman = 29,
kTextEncodingMacUninterp = 32
};
typedef UInt32 TextEncodingVariant;
enum {
kTextEncodingDefaultVariant = 0,
kMacIcelandicStandardVariant = 0,
kMacIcelandicTrueTypeVariant = 1,
kMacJapaneseStandardVariant = 0,
kMacJapaneseStdNoVerticalsVariant = 1,
kMacJapaneseBasicVariant = 2,
kMacJapanesePostScriptScrnVariant = 3,
kMacJapanesePostScriptPrintVariant = 4,
kMacJapaneseVertAtKuPlusTenVariant = 5,
kJapaneseNoOneByteKanaOption = 0x20,
kJapaneseUseAsciiBackslashOption = 0x40,
kMacArabicStandardVariant = 0,
kMacArabicTrueTypeVariant = 1,
kMacArabicThuluthVariant = 2,
kMacArabicAlBayanVariant = 3,
kMacFarsiStandardVariant = 0,
kMacFarsiTrueTypeVariant = 1,
kMacHebrewStandardVariant = 0,
kMacHebrewFigureSpaceVariant = 1,
kUnicodeNoSubset = 0,
kUnicodeNoCompatibilityVariant = 1,
kUnicodeMaxDecomposedVariant = 2,
kUnicodeNoComposedVariant = 3,
kUnicodeNoCorporateVariant = 4,
kBig5_BasicVariant = 0,
kBig5_StandardVariant = 1,
kBig5_ETenVariant = 2,
kJapaneseStandardVariant = 0,
kJapaneseStdNoVerticalsVariant = 1,
kJapaneseBasicVariant = 2,
kJapanesePostScriptScrnVariant = 3,
kJapanesePostScriptPrintVariant = 4,
kJapaneseVertAtKuPlusTenVariant = 5,
kHebrewStandardVariant = 0,
kHebrewFigureSpaceVariant = 1
};
typedef UInt32 TextEncodingFormat;
enum {
kTextEncodingDefaultFormat = 0,
kUnicode16BitFormat = 0,
kUnicodeUTF7Format = 1,
kUnicodeUTF8Format = 2,
kUnicode32BitFormat = 3
};
typedef UInt32 TextEncoding;
typedef UInt32 TextEncodingNameSelector;
enum {
kTextEncodingFullName = 0,
kTextEncodingBaseName = 1,
kTextEncodingVariantName = 2,
kTextEncodingFormatName = 3
};
struct TextEncodingRun {
ByteOffset offset;
TextEncoding textEncoding;
};
typedef struct TextEncodingRun TextEncodingRun;
typedef TextEncodingRun * TextEncodingRunPtr;
typedef const TextEncodingRun * ConstTextEncodingRunPtr;
struct ScriptCodeRun {
ByteOffset offset;
ScriptCode script;
};
typedef struct ScriptCodeRun ScriptCodeRun;
typedef ScriptCodeRun * ScriptCodeRunPtr;
typedef const ScriptCodeRun * ConstScriptCodeRunPtr;
typedef UInt8 * TextPtr;
typedef const UInt8 * ConstTextPtr;
typedef UniChar * UniCharArrayPtr;
typedef const UniChar * ConstUniCharArrayPtr;
enum {
kTextScriptDontCare = -128,
kTextLanguageDontCare = -128,
kTextRegionDontCare = -128
};
typedef struct OpaqueTextToUnicodeInfo* TextToUnicodeInfo;
typedef struct OpaqueUnicodeToTextInfo* UnicodeToTextInfo;
typedef struct OpaqueUnicodeToTextRunInfo* UnicodeToTextRunInfo;
typedef const TextToUnicodeInfo ConstTextToUnicodeInfo;
typedef const UnicodeToTextInfo ConstUnicodeToTextInfo;
typedef SInt32 UnicodeMapVersion;
enum {
kUnicodeUseLatestMapping = -1,
kUnicodeUseHFSPlusMapping = 4
};
struct UnicodeMapping {
TextEncoding unicodeEncoding;
TextEncoding otherEncoding;
UnicodeMapVersion mappingVersion;
};
typedef struct UnicodeMapping UnicodeMapping;
typedef UnicodeMapping * UnicodeMappingPtr;
typedef const UnicodeMapping * ConstUnicodeMappingPtr;
enum {
kUnicodeUseFallbacksBit = 0,
kUnicodeKeepInfoBit = 1,
kUnicodeDirectionalityBits = 2,
kUnicodeVerticalFormBit = 4,
kUnicodeLooseMappingsBit = 5,
kUnicodeStringUnterminatedBit = 6,
kUnicodeTextRunBit = 7,
kUnicodeKeepSameEncodingBit = 8
};
enum {
kUnicodeUseFallbacksMask = 1L << kUnicodeUseFallbacksBit,
kUnicodeKeepInfoMask = 1L << kUnicodeKeepInfoBit,
kUnicodeDirectionalityMask = 3L << kUnicodeDirectionalityBits,
kUnicodeVerticalFormMask = 1L << kUnicodeVerticalFormBit,
kUnicodeLooseMappingsMask = 1L << kUnicodeLooseMappingsBit,
kUnicodeStringUnterminatedMask = 1L << kUnicodeStringUnterminatedBit,
kUnicodeTextRunMask = 1L << kUnicodeTextRunBit,
kUnicodeKeepSameEncodingMask = 1L << kUnicodeKeepSameEncodingBit
};
enum {
kUnicodeDefaultDirection = 0,
kUnicodeLeftToRight = 1,
kUnicodeRightToLeft = 2
};
enum {
kUnicodeDefaultDirectionMask = kUnicodeDefaultDirection << kUnicodeDirectionalityBits,
kUnicodeLeftToRightMask = kUnicodeLeftToRight << kUnicodeDirectionalityBits,
kUnicodeRightToLeftMask = kUnicodeRightToLeft << kUnicodeDirectionalityBits
};
enum {
kUnicodeMatchUnicodeBaseBit = 0,
kUnicodeMatchUnicodeVariantBit = 1,
kUnicodeMatchUnicodeFormatBit = 2,
kUnicodeMatchOtherBaseBit = 3,
kUnicodeMatchOtherVariantBit = 4,
kUnicodeMatchOtherFormatBit = 5
};
enum {
kUnicodeMatchUnicodeBaseMask = 1L << kUnicodeMatchUnicodeBaseBit,
kUnicodeMatchUnicodeVariantMask = 1L << kUnicodeMatchUnicodeVariantBit,
kUnicodeMatchUnicodeFormatMask = 1L << kUnicodeMatchUnicodeFormatBit,
kUnicodeMatchOtherBaseMask = 1L << kUnicodeMatchOtherBaseBit,
kUnicodeMatchOtherVariantMask = 1L << kUnicodeMatchOtherVariantBit,
kUnicodeMatchOtherFormatMask = 1L << kUnicodeMatchOtherFormatBit
};
enum {
kUnicodeFallbackSequencingBits = 0
};
enum {
kUnicodeFallbackSequencingMask = 3L << kUnicodeFallbackSequencingBits
};
enum {
kUnicodeFallbackDefaultOnly = 0L,
kUnicodeFallbackCustomOnly = 1L,
kUnicodeFallbackDefaultFirst = 2L,
kUnicodeFallbackCustomFirst = 3L
};
enum {
kTMTaskActive = (1L << 15)
};
typedef struct TMTask TMTask;
typedef TMTask * TMTaskPtr;
typedef CALLBACK_API( void , TimerProcPtr )(TMTaskPtr tmTaskPtr);
typedef REGISTER_UPP_TYPE(TimerProcPtr) TimerUPP;
struct TMTask {
QElemPtr qLink;
short qType;
TimerUPP tmAddr;
long tmCount;
long tmWakeUp;
long tmReserved;
};
enum {
kTextEncodingVersion = 0
};
enum {
kTextEncodingBaseShiftBits = 0,
kTextEncodingVariantShiftBits = 16,
kTextEncodingFormatShiftBits = 26,
kTextEncodingVersionShiftBits = 30
};
enum {
kTextEncodingBaseSourceMask = 0x0000FFFF,
kTextEncodingVariantSourceMask = 0x000003FF,
kTextEncodingFormatSourceMask = 0x0000000F,
kTextEncodingVersionSourceMask = 0x00000003
};
enum {
kTextEncodingBaseMask = kTextEncodingBaseSourceMask << kTextEncodingBaseShiftBits,
kTextEncodingVariantMask = kTextEncodingVariantSourceMask << kTextEncodingVariantShiftBits,
kTextEncodingFormatMask = kTextEncodingFormatSourceMask << kTextEncodingFormatShiftBits,
kTextEncodingVersionMask = kTextEncodingVersionSourceMask << kTextEncodingVersionShiftBits
};
enum {
kTextEncodingVersionShifted = (kTextEncodingVersion & kTextEncodingVersionSourceMask) << kTextEncodingVersionShiftBits
};
#define CreateTextEncodingPriv(base,variant,format) \
( ((base & kTextEncodingBaseSourceMask) << kTextEncodingBaseShiftBits) \
| ((variant & kTextEncodingVariantSourceMask) << kTextEncodingVariantShiftBits) \
| ((format & kTextEncodingFormatSourceMask) << kTextEncodingFormatShiftBits) \
| (kTextEncodingVersionShifted) )
#define GetTextEncodingBasePriv(encoding) \
((encoding & kTextEncodingBaseMask) >> kTextEncodingBaseShiftBits)
#define GetTextEncodingVariantPriv(encoding) \
((encoding & kTextEncodingVariantMask) >> kTextEncodingVariantShiftBits)
#define GetTextEncodingFormatPriv(encoding) \
((encoding & kTextEncodingFormatMask) >> kTextEncodingFormatShiftBits)
#define IsMacTextEncoding(encoding) ((encoding & 0x0000FF00L) == 0x00000000L)
#define IsUnicodeTextEncoding(encoding) ((encoding & 0x0000FF00L) == 0x00000100L)
enum {
kMacHFSTextEncoding = 0x000000FF
};
typedef struct InstOpaqueClassRef* InstClassRef;
typedef InstClassRef InstPathClassRef;
typedef InstClassRef InstTraceClassRef;
typedef InstClassRef InstHistogramClassRef;
typedef InstClassRef InstSplitHistogramClassRef;
typedef InstClassRef InstMagnitudeClassRef;
typedef InstClassRef InstGrowthClassRef;
typedef InstClassRef InstTallyClassRef;
typedef struct InstOpaqueDataDescriptorRef* InstDataDescriptorRef;
#define kInstRootClassRef ( (InstClassRef) -1)
typedef OptionBits InstClassOptions;
enum {
kInstDisableClassMask = 0x00,
kInstEnableClassMask = 0x01,
kInstSummaryTraceClassMask = 0x20
};
EXTERN_API( Boolean )
EqualString (ConstStr255Param str1,
ConstStr255Param str2,
Boolean caseSensitive,
Boolean diacSensitive);
EXTERN_API( void )
InsTime (QElemPtr tmTaskPtr);
EXTERN_API( void )
PrimeTime (QElemPtr tmTaskPtr,
long count);
EXTERN_API( void )
RmvTime (QElemPtr tmTaskPtr);
#if HFS_DIAGNOSTIC
extern void RequireFileLock(FileReference vp, int shareable);
#define REQUIRE_FILE_LOCK(vp,s) RequireFileLock((vp),(s))
#else
#define REQUIRE_FILE_LOCK(vp,s)
#endif
EXTERN_API( void )
BlockMove (const void * srcPtr,
void * destPtr,
Size byteCount);
EXTERN_API( void )
BlockMoveData (const void * srcPtr,
void * destPtr,
Size byteCount);
EXTERN_API_C( void )
BlockMoveUncached (const void * srcPtr,
void * destPtr,
Size byteCount);
EXTERN_API_C( void )
BlockMoveDataUncached (const void * srcPtr,
void * destPtr,
Size byteCount);
EXTERN_API_C( void )
BlockZero (void * destPtr,
Size byteCount);
EXTERN_API_C( void )
BlockZeroUncached (void * destPtr,
Size byteCount);
EXTERN_API( Ptr )
NewPtr (Size byteCount);
EXTERN_API( Ptr )
NewPtrSys (Size byteCount);
EXTERN_API( Ptr )
NewPtrClear (Size byteCount);
EXTERN_API( Ptr )
NewPtrSysClear (Size byteCount);
EXTERN_API( OSErr )
MemError (void);
EXTERN_API( void )
DisposePtr (Ptr p);
EXTERN_API( Size )
GetPtrSize (Ptr p);
EXTERN_API( void )
SetPtrSize (Ptr p,
Size newSize);
EXTERN_API( void )
DisposeHandle (Handle h);
EXTERN_API( void )
SetHandleSize (Handle h,
Size newSize);
EXTERN_API( void )
GetDateTime (unsigned long * secs);
#endif