]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/dev/random/YarrowCoreLib/include/macos_defs.h
xnu-201.tar.gz
[apple/xnu.git] / bsd / dev / random / YarrowCoreLib / include / macos_defs.h
diff --git a/bsd/dev/random/YarrowCoreLib/include/macos_defs.h b/bsd/dev/random/YarrowCoreLib/include/macos_defs.h
new file mode 100644 (file)
index 0000000..73aa2dd
--- /dev/null
@@ -0,0 +1,1658 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * The contents of this file constitute Original Code as defined in and
+ * are subject to the Apple Public Source License Version 1.1 (the
+ * "License").  You may not use this file except in compliance with the
+ * License.  Please obtain a copy of the License at
+ * http://www.apple.com/publicsource and read it before using this file.
+ * 
+ * This Original Code and all software distributed under the License are
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*
+       File:           hfs_macos_types.h
+       Contains:       Basic Macintosh OS data types.
+       Version:        System 7.5
+       DRI:            Nick Kledzik
+       History:
+       12-Aug-1999     Scott Roberts   Created from ConditionalMacros.h, MacOSStubs.h, MacOSTypes.h
+
+*/
+
+
+#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>
+
+/****** START OF CONDITIONALMACROS *********/
+
+       #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)
+       
+
+/****** START OF MACOSTYPES *********/
+
+
+/*
+   4.4BSD's sys/types.h defines size_t without defining __size_t__:
+   Things are a lot clearer from here on if we define __size_t__ now.
+ */
+#define __size_t__
+
+/*
+       Convert kernel's diagnostic flag to MacOS's
+*/
+#if HFS_DIAGNOSTIC
+    #define DEBUG_BUILD 1
+#else
+    #define DEBUG_BUILD 0
+#endif /* DIAGNOSTIC */
+
+/********************************************************************************
+
+       Special values in C
+       
+               NULL            The C standard for an impossible pointer value
+               nil                     A carry over from pascal, NULL is prefered for C
+               
+*********************************************************************************/
+#ifndef NULL
+       #define NULL 0
+#endif
+
+#ifndef nil
+       #define nil NULL
+#endif
+
+
+/********************************************************************************
+
+       Base integer types for all target OS's and CPU's
+       
+               UInt8                    8-bit unsigned integer 
+               SInt8                    8-bit signed integer
+               UInt16                  16-bit unsigned integer 
+               SInt16                  16-bit signed integer                   
+               UInt32                  32-bit unsigned integer 
+               SInt32                  32-bit signed integer   
+               UInt64                  64-bit unsigned integer 
+               SInt64                  64-bit signed integer   
+
+*********************************************************************************/
+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;
+
+
+
+/********************************************************************************
+
+       Base floating point types 
+       
+               Float32                 32 bit IEEE float:  1 sign bit, 8 exponent bits, 23 fraction bits
+               Float64                 64 bit IEEE float:  1 sign bit, 11 exponent bits, 52 fraction bits      
+               Float80                 80 bit MacOS float: 1 sign bit, 15 exponent bits, 1 integer bit, 63 fraction bits
+               Float96                 96 bit 68881 float: 1 sign bit, 15 exponent bits, 16 pad bits, 1 integer bit, 63 fraction bits
+               
+       Note: These are fixed size floating point types, useful when writing a floating
+                 point value to disk.  If your compiler does not support a particular size 
+                 float, a struct is used instead.
+                 Use of of the NCEG types (e.g. double_t) or an ANSI C type (e.g. double) if
+                 you want a floating point representation that is natural for any given
+                 compiler, but might be a different size on different compilers.
+
+*********************************************************************************/
+typedef float                          Float32;
+typedef double                         Float64;
+
+struct Float80 {
+       SInt16  exp;
+       UInt16  man[4];
+};
+typedef struct Float80 Float80;
+
+struct Float96 {
+       SInt16  exp[2];         /* the second 16-bits is always zero */
+       UInt16  man[4];
+};
+typedef struct Float96 Float96;
+
+
+
+/********************************************************************************
+
+       MacOS Memory Manager types
+       
+               Ptr                             Pointer to a non-relocatable block
+               Handle                  Pointer to a master pointer to a relocatable block
+               Size                    The number of bytes in a block (signed for historical reasons)
+               
+*********************************************************************************/
+typedef char *                                                 Ptr;
+typedef Ptr *                                                  Handle;
+typedef long                                                   Size;
+/********************************************************************************
+
+       Higher level basic types
+       
+               OSErr                                   16-bit result error code
+               OSStatus                                32-bit result error code
+               LogicalAddress                  Address in the clients virtual address space
+               ConstLogicalAddress             Address in the clients virtual address space that will only be read
+               PhysicalAddress                 Real address as used on the hardware bus
+               BytePtr                                 Pointer to an array of bytes
+               ByteCount                               The size of an array of bytes
+               ByteOffset                              An offset into an array of bytes
+               ItemCount                               32-bit iteration count
+               OptionBits                              Standard 32-bit set of bit flags
+               PBVersion                               ?
+               Duration                                32-bit millisecond timer for drivers
+               AbsoluteTime                    64-bit clock
+               ScriptCode                              The coarse features of a written language (e.g. Roman vs Cyrillic)
+               LangCode                                A particular language (e.g. English)
+               RegionCode                              A variation of a language (British vs American English)
+               FourCharCode                    A 32-bit value made by packing four 1 byte characters together
+               OSType                                  A FourCharCode used in the OS and file system (e.g. creator)
+               ResType                                 A FourCharCode used to tag resources (e.g. 'DLOG')
+               
+*********************************************************************************/
+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;
+
+
+/********************************************************************************
+
+       Boolean types and values
+       
+               Boolean                 A one byte value, holds "false" (0) or "true" (1)
+               false                   The Boolean value of zero (0)
+               true                    The Boolean value of one (1)
+               
+*********************************************************************************/
+/*
+       The identifiers "true" and "false" are becoming keywords in C++
+       and work with the new built-in type "bool"
+       "Boolean" will remain an unsigned char for compatibility with source
+       code written before "bool" existed.
+*/
+#if !TYPE_BOOL
+
+enum {
+       false                                           = 0,
+       true                                            = 1
+};
+
+#endif  /*  !TYPE_BOOL */
+
+typedef unsigned char                                  Boolean;
+
+
+/********************************************************************************
+
+       Function Pointer Types
+       
+               ProcPtr                                 Generic pointer to a function
+               Register68kProcPtr              Pointer to a 68K function that expects parameters in registers
+               UniversalProcPtr                Pointer to classic 68K code or a RoutineDescriptor
+               
+               ProcHandle                              Pointer to a ProcPtr
+               UniversalProcHandle             Pointer to a UniversalProcPtr
+               
+*********************************************************************************/
+typedef long (*ProcPtr)();
+typedef void (*Register68kProcPtr)();
+
+typedef ProcPtr                                                UniversalProcPtr;
+
+typedef ProcPtr *                                              ProcHandle;
+typedef UniversalProcPtr *                             UniversalProcHandle;
+
+/********************************************************************************
+
+       Quickdraw Types
+       
+               Point                           2D Quickdraw coordinate, range: -32K to +32K
+               Rect                            Rectangluar Quickdraw area
+               Style                           Quickdraw font rendering styles
+               StyleParameter          Style when used as a parameter (historical 68K convention)
+               StyleField                      Style when used as a field (historical 68K convention)
+               CharParameter           Char when used as a parameter (historical 68K convention)
+               
+       Note:   The original Macintosh toolbox in 68K Pascal defined Style as a SET.  
+                       Both Style and CHAR occupy 8-bits in packed records or 16-bits when 
+                       used as fields in non-packed records or as parameters. 
+               
+*********************************************************************************/
+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;
+
+
+/********************************************************************************
+
+       Common Constants
+       
+               noErr                                   OSErr: function performed properly - no error
+               kNilOptions                             OptionBits: all flags false
+               kInvalidID                              KernelID: NULL is for pointers as kInvalidID is for ID's
+               kVariableLengthArray    array bounds: variable length array
+
+       Note: kVariableLengthArray is used in array bounds to specify a variable length array.
+                 It is ususally used in variable length structs when the last field is an array
+                 of any size.  Before ANSI C, we used zero as the bounds of variable length 
+                 array, but zero length array are illegal in ANSI C.  Example usage:
+       
+               struct FooList 
+               {
+                       short   listLength;
+                       Foo             elements[kVariableLengthArray];
+               };
+               
+*********************************************************************************/
+
+enum {
+       noErr                                           = 0
+};
+
+
+enum {
+       kNilOptions                                     = 0
+};
+
+#define kInvalidID      0
+
+enum {
+       kVariableLengthArray            = 1
+};
+
+
+
+/********************************************************************************
+
+       String Types
+       
+               UniChar                                 A single UniCode character (16-bits)
+
+               StrNNN                                  Pascal string holding up to NNN bytes
+               StringPtr                               Pointer to a pascal string
+               StringHandle                    Pointer to a StringPtr
+               ConstStrNNNParam                For function parameters only - means string is const
+               
+               CStringPtr                              Pointer to a C string       (same as:  char*)
+               ConstCStringPtr                 Pointer to a const C string (same as:  const char*)
+               
+       Note: The length of a pascal string is stored in the first byte.
+                 A pascal string does not have a termination byte and can be at most 255 bytes long.
+                 The first character in a pascal string is offset one byte from the start of the string. 
+                 
+                 A C string is terminated with a byte of value zero.  
+                 A C string has no length limitation.
+                 The first character in a C string is the first byte of the string. 
+                 
+               
+*********************************************************************************/
+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];
+/*
+       The type Str32 is used in many AppleTalk based data structures.
+       It holds up to 32 one byte chars.  The problem is that with the
+       length byte it is 33 bytes long.  This can cause weird alignment
+       problems in structures.  To fix this the type "Str32Field" has
+       been created.  It should only be used to hold 32 chars, but
+       it is 34 bytes long so that there are no alignment problems.
+*/
+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  /*  defined(__cplusplus)  */
+
+typedef const unsigned char *                  ConstUTF8Param;
+
+/*********************************************************************************
+
+       Old names for types
+               
+*********************************************************************************/
+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);
+
+/*********************************************************************************
+
+       Added types for HFSPlus MacOS X functionality. Needs to be incorporated to
+       other places
+               
+*********************************************************************************/
+
+    typedef struct vnode* FileReference;
+    #define kNoFileReference NULL
+
+
+#define HFSInstrumentation 0
+
+
+/***** START OF MACOSSTUBS ********/
+
+
+/*
+       SizeTDef.h -- Common definitions
+       
+       size_t - this type is defined by several ANSI headers.
+*/
+#if ! defined (__size_t__)
+       #define __size_t__
+        #if defined (__xlc) || defined (__xlC) || defined (__xlC__) || defined (__MWERKS__)
+               typedef unsigned long size_t;
+        #else  /* __xlC */
+               typedef unsigned int size_t;
+       #endif  /* __xlC */
+#endif /* __size_t__ */
+
+
+/*
+       StdDef.h -- Common definitions
+       
+*/
+
+#define offsetof(structure,field) ((size_t)&((structure *) 0)->field)
+
+
+
+/*
+       File:           Errors.h
+*/
+enum {
+       paramErr                                        = -50,                                                  /*error in user parameter list*/
+       noHardwareErr                           = -200,                                                 /*Sound Manager Error Returns*/
+       notEnoughHardwareErr            = -201,                                                 /*Sound Manager Error Returns*/
+       userCanceledErr                         = -128,
+       qErr                                            = -1,                                                   /*queue element not found during deletion*/
+       vTypErr                                         = -2,                                                   /*invalid queue element*/
+       corErr                                          = -3,                                                   /*core routine number out of range*/
+       unimpErr                                        = -4,                                                   /*unimplemented core routine*/
+       SlpTypeErr                                      = -5,                                                   /*invalid queue element*/
+       seNoDB                                          = -8,                                                   /*no debugger installed to handle debugger command*/
+       controlErr                                      = -17,                                                  /*I/O System Errors*/
+       statusErr                                       = -18,                                                  /*I/O System Errors*/
+       readErr                                         = -19,                                                  /*I/O System Errors*/
+       writErr                                         = -20,                                                  /*I/O System Errors*/
+       badUnitErr                                      = -21,                                                  /*I/O System Errors*/
+       unitEmptyErr                            = -22,                                                  /*I/O System Errors*/
+       openErr                                         = -23,                                                  /*I/O System Errors*/
+       closErr                                         = -24,                                                  /*I/O System Errors*/
+       dRemovErr                                       = -25,                                                  /*tried to remove an open driver*/
+       dInstErr                                        = -26                                                   /*DrvrInstall couldn't find driver in resources*/
+};
+
+enum {                                                                                                                         /* Printing Errors */
+       iMemFullErr                                     = -108,
+       iIOAbort                                        = -27,                                                  /*Scrap Manager errors*/
+       noScrapErr                                      = -100,                                                 /*No scrap exists error*/
+       noTypeErr                                       = -102,                                                 /*No object of that type in scrap*/
+       memROZWarn                                      = -99,                                                  /*soft error in ROZ*/
+       memROZError                                     = -99,                                                  /*hard error in ROZ*/
+       memROZErr                                       = -99,                                                  /*hard error in ROZ*/
+       memFullErr                                      = -108,                                                 /*Not enough room in heap zone*/
+       nilHandleErr                            = -109,                                                 /*Master Pointer was NIL in HandleZone or other*/
+       memWZErr                                        = -111,                                                 /*WhichZone failed (applied to free block)*/
+       memPurErr                                       = -112,                                                 /*trying to purge a locked or non-purgeable block*/
+       memAdrErr                                       = -110                                                  /*address was odd; or out of range*/
+};
+
+
+
+enum {
+       abortErr                                        = -27,                                                  /*IO call aborted by KillIO*/
+       iIOAbortErr                                     = -27,                                                  /*IO abort error (Printing Manager)*/
+       notOpenErr                                      = -28,                                                  /*Couldn't rd/wr/ctl/sts cause driver not opened*/
+       unitTblFullErr                          = -29,                                                  /*unit table has no more entries*/
+       dceExtErr                                       = -30,                                                  /*dce extension error*/
+       slotNumErr                                      = -360,                                                 /*invalid slot # error*/
+       gcrOnMFMErr                                     = -400,                                                 /*gcr format on high density media error*/
+       dirFulErr                                       = -33,                                                  /*Directory full*/
+       dskFulErr                                       = -34,                                                  /*disk full*/
+       nsvErr                                          = -35,                                                  /*no such volume*/
+       ioErr                                           = -36,                                                  /*I/O error (bummers)*/
+       bdNamErr                                        = -37,                                                  /*there may be no bad names in the final system!*/
+       fnOpnErr                                        = -38,                                                  /*File not open*/
+       eofErr                                          = -39,                                                  /*End of file*/
+       posErr                                          = -40,                                                  /*tried to position to before start of file (r/w)*/
+       mFulErr                                         = -41,                                                  /*memory full (open) or file won't fit (load)*/
+       tmfoErr                                         = -42,                                                  /*too many files open*/
+       fnfErr                                          = -43,                                                  /*File not found*/
+       wPrErr                                          = -44,                                                  /*diskette is write protected.*/
+       fLckdErr                                        = -45                                                   /*file is locked*/
+};
+
+
+enum {
+       vLckdErr                                        = -46,                                                  /*volume is locked*/
+       fBsyErr                                         = -47,                                                  /*File is busy (delete)*/
+       dupFNErr                                        = -48,                                                  /*duplicate filename (rename)*/
+       opWrErr                                         = -49,                                                  /*file already open with with write permission*/
+       rfNumErr                                        = -51,                                                  /*refnum error*/
+       gfpErr                                          = -52,                                                  /*get file position error*/
+       volOffLinErr                            = -53,                                                  /*volume not on line error (was Ejected)*/
+       permErr                                         = -54,                                                  /*permissions error (on file open)*/
+       volOnLinErr                                     = -55,                                                  /*drive volume already on-line at MountVol*/
+       nsDrvErr                                        = -56,                                                  /*no such drive (tried to mount a bad drive num)*/
+       noMacDskErr                                     = -57,                                                  /*not a mac diskette (sig bytes are wrong)*/
+       extFSErr                                        = -58,                                                  /*volume in question belongs to an external fs*/
+       fsRnErr                                         = -59,                                                  /*file system internal error:during rename the old entry was deleted but could not be restored.*/
+       badMDBErr                                       = -60,                                                  /*bad master directory block*/
+       wrPermErr                                       = -61,                                                  /*write permissions error*/
+       dirNFErr                                        = -120,                                                 /*Directory not found*/
+       tmwdoErr                                        = -121,                                                 /*No free WDCB available*/
+       badMovErr                                       = -122,                                                 /*Move into offspring error*/
+       wrgVolTypErr                            = -123,                                                 /*Wrong volume type error [operation not supported for MFS]*/
+       volGoneErr                                      = -124                                                  /*Server volume has been disconnected.*/
+};
+
+enum {
+                                                                                                                               /*Dictionary Manager errors*/
+       notBTree                                        = -410,                                                 /*The file is not a dictionary.*/
+       btNoSpace                                       = -413,                                                 /*Can't allocate disk space.*/
+       btDupRecErr                                     = -414,                                                 /*Record already exists.*/
+       btRecNotFnd                                     = -415,                                                 /*Record cannot be found.*/
+       btKeyLenErr                                     = -416,                                                 /*Maximum key length is too long or equal to zero.*/
+       btKeyAttrErr                            = -417,                                                 /*There is no such a key attribute.*/
+       unknownInsertModeErr            = -20000,                                               /*There is no such an insert mode.*/
+       recordDataTooBigErr                     = -20001,                                               /*The record data is bigger than buffer size (1024 bytes).*/
+       invalidIndexErr                         = -20002                                                /*The recordIndex parameter is not valid.*/
+};
+
+
+enum {
+       fidNotFound                                     = -1300,                                                /*no file thread exists.*/
+       fidExists                                       = -1301,                                                /*file id already exists*/
+       notAFileErr                                     = -1302,                                                /*directory specified*/
+       diffVolErr                                      = -1303,                                                /*files on different volumes*/
+       catChangedErr                           = -1304,                                                /*the catalog has been modified*/
+       desktopDamagedErr                       = -1305,                                                /*desktop database files are corrupted*/
+       sameFileErr                                     = -1306,                                                /*can't exchange a file with itself*/
+       badFidErr                                       = -1307,                                                /*file id is dangling or doesn't match with the file number*/
+       notARemountErr                          = -1308,                                                /*when _Mount allows only remounts and doesn't get one*/
+       fileBoundsErr                           = -1309,                                                /*file's EOF, offset, mark or size is too big*/
+       fsDataTooBigErr                         = -1310,                                                /*file or volume is too big for system*/
+       volVMBusyErr                            = -1311,                                                /*can't eject because volume is in use by VM*/
+       envNotPresent                           = -5500,                                                /*returned by glue.*/
+       envBadVers                                      = -5501,                                                /*Version non-positive*/
+       envVersTooBig                           = -5502,                                                /*Version bigger than call can handle*/
+       fontDecError                            = -64,                                                  /*error during font declaration*/
+       fontNotDeclared                         = -65,                                                  /*font not declared*/
+       fontSubErr                                      = -66,                                                  /*font substitution occured*/
+       fontNotOutlineErr                       = -32615,                                               /*bitmap font passed to routine that does outlines only*/
+       firstDskErr                                     = -84,                                                  /*I/O System Errors*/
+       lastDskErr                                      = -64,                                                  /*I/O System Errors*/
+       noDriveErr                                      = -64,                                                  /*drive not installed*/
+       offLinErr                                       = -65,                                                  /*r/w requested for an off-line drive*/
+       noNybErr                                        = -66                                                   /*couldn't find 5 nybbles in 200 tries*/
+};
+
+enum {
+                                                                                                                               /* general text errors*/
+       kTextUnsupportedEncodingErr     = -8738,                                                /* specified encoding not supported for this operation*/
+       kTextMalformedInputErr          = -8739,                                                /* in DBCS, for example, high byte followed by invalid low byte*/
+       kTextUndefinedElementErr        = -8740,                                                /* text conversion errors*/
+       kTECMissingTableErr                     = -8745,
+       kTECTableChecksumErr            = -8746,
+       kTECTableFormatErr                      = -8747,
+       kTECCorruptConverterErr         = -8748,                                                /* invalid converter object reference*/
+       kTECNoConversionPathErr         = -8749,
+       kTECBufferBelowMinimumSizeErr = -8750,                                          /* output buffer too small to allow processing of first input text element*/
+       kTECArrayFullErr                        = -8751,                                                /* supplied name buffer or TextRun, TextEncoding, or UnicodeMapping array is too small*/
+       kTECBadTextRunErr                       = -8752,
+       kTECPartialCharErr                      = -8753,                                                /* input buffer ends in the middle of a multibyte character, conversion stopped*/
+       kTECUnmappableElementErr        = -8754,
+       kTECIncompleteElementErr        = -8755,                                                /* text element may be incomplete or is too long for internal buffers*/
+       kTECDirectionErr                        = -8756,                                                /* direction stack overflow, etc.*/
+       kTECGlobalsUnavailableErr       = -8770,                                                /* globals have already been deallocated (premature TERM)*/
+       kTECItemUnavailableErr          = -8771,                                                /* item (e.g. name) not available for specified region (& encoding if relevant)*/
+                                                                                                                               /* text conversion status codes*/
+       kTECUsedFallbacksStatus         = -8783,
+       kTECNeedFlushStatus                     = -8784,
+       kTECOutputBufferFullStatus      = -8785,                                                /* output buffer has no room for conversion of next input text element (partial conversion)*/
+                                                                                                                               /* deprecated error & status codes for low-level converter*/
+       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
+};
+
+
+/*
+       File:           MacMemory.h
+*/
+
+
+/*
+       File:           MixedMode.h
+*/
+
+/* Calling Conventions */
+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
+
+
+/*
+       File:           OSUtils.h
+*/
+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);
+/*
+       WARNING: DeferredTaskProcPtr uses register based parameters under classic 68k
+                        and cannot be written in a high-level language without 
+                        the help of mixed mode or assembly glue.
+*/
+typedef REGISTER_UPP_TYPE(DeferredTaskProcPtr)                                         DeferredTaskUPP;
+enum { uppDeferredTaskProcInfo = 0x0000B802 };                                         /* register no_return_value Func(4_bytes:A1) */
+#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;
+
+/*
+       File:           Finder.h
+*/
+
+/*     
+       The following declerations used to be in Files.\89
+       but are Finder specific and were moved here.
+*/
+
+enum {
+                                                                /* Finder Flags */
+    kIsOnDesk                                  = 0x0001,
+    kColor                                             = 0x000E,
+    kIsShared                                  = 0x0040,                                               /* bit 0x0080 is hasNoINITS */
+    kHasBeenInited                             = 0x0100,                                               /* bit 0x0200 was the letter bit for AOCE, but is now reserved for future use */
+    kHasCustomIcon                             = 0x0400,
+    kIsStationery                              = 0x0800,
+    kNameLocked                                        = 0x1000,
+    kHasBundle                                 = 0x2000,
+    kIsInvisible                               = 0x4000,
+    kIsAlias                                   = 0x8000
+};
+
+
+enum {
+                                                                                                                               /* Finder Constants */
+       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;                                         /*the type of the file*/
+       OSType                                                  fdCreator;                                      /*file's creator*/
+       unsigned short                                  fdFlags;                                        /*flags ex. hasbundle,invisible,locked, etc.*/
+       Point                                                   fdLocation;                                     /*file's location in folder*/
+       short                                                   fdFldr;                                         /*folder containing file*/
+};
+typedef struct FInfo FInfo;
+
+struct FXInfo {
+       short                                                   fdIconID;                                       /*Icon ID*/
+       short                                                   fdUnused[3];                            /*unused but reserved 6 bytes*/
+       SInt8                                                   fdScript;                                       /*Script flag and number*/
+       SInt8                                                   fdXFlags;                                       /*More flag bits*/
+       short                                                   fdComment;                                      /*Comment ID*/
+       long                                                    fdPutAway;                                      /*Home Dir ID*/
+};
+typedef struct FXInfo FXInfo;
+
+struct DInfo {
+       Rect                                                    frRect;                                         /*folder rect*/
+       unsigned short                                  frFlags;                                        /*Flags*/
+       Point                                                   frLocation;                                     /*folder location*/
+       short                                                   frView;                                         /*folder view*/
+};
+typedef struct DInfo DInfo;
+
+struct DXInfo {
+       Point                                                   frScroll;                                       /*scroll position*/
+       long                                                    frOpenChain;                            /*DirID chain of open folders*/
+       SInt8                                                   frScript;                                       /*Script flag and number*/
+       SInt8                                                   frXFlags;                                       /*More flag bits*/
+       short                                                   frComment;                                      /*comment*/
+       long                                                    frPutAway;                                      /*DirID*/
+};
+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
+
+
+/*
+ * UTGetBlock options
+ */
+
+enum {
+       gbDefault                                       = 0,                                                    /* default value - read if not found */
+                                                                                                                               /*      bits and masks */
+       gbReadBit                                       = 0,                                                    /* read block from disk (forced read) */
+       gbReadMask                                      = 0x0001,
+       gbExistBit                                      = 1,                                                    /* get existing cache block */
+       gbExistMask                                     = 0x0002,
+       gbNoReadBit                                     = 2,                                                    /* don't read block from disk if not found in cache */
+       gbNoReadMask                            = 0x0004,
+       gbReleaseBit                            = 3,                                                    /* release block immediately after GetBlock */
+       gbReleaseMask                           = 0x0008
+};
+
+
+/*
+ * UTReleaseBlock options
+ */
+
+enum {
+       rbDefault                                       = 0,                                                    /* default value - just mark the buffer not in-use */
+                                                                                                                               /*      bits and masks */
+       rbWriteBit                                      = 0,                                                    /* force write buffer to disk */
+       rbWriteMask                                     = 0x0001,
+       rbTrashBit                                      = 1,                                                    /* trash buffer contents after release */
+       rbTrashMask                                     = 0x0002,
+       rbDirtyBit                                      = 2,                                                    /* mark buffer dirty */
+       rbDirtyMask                                     = 0x0004,
+       rbFreeBit                                       = 3,                                                    /* free the buffer (save in the hash) */
+       rbFreeMask                                      = 0x000A                                                /* rbFreeMask (rbFreeBit + rbTrashBit) works as rbTrash on < System 7.0 RamCache; on >= System 7.0, rbfreeMask overrides rbTrash */
+};
+
+/*
+ * UTFlushCache options
+ */
+
+enum {
+       fcDefault                                       = 0,                                                    /* default value - pass this fcOption to just flush any dirty buffers */
+                                                                                                                               /*      bits and masks */
+       fcTrashBit                                      = 0,                                                    /* (don't pass this as fcOption, use only for testing bit) */
+       fcTrashMask                                     = 0x0001,                                               /* pass this fcOption value to flush and trash cache blocks */
+       fcFreeBit                                       = 1,                                                    /* (don't pass this as fcOption, use only for testing bit) */
+       fcFreeMask                                      = 0x0003                                                /* pass this fcOption to flush and free cache blocks (Note: both fcTrash and fcFree bits are set) */
+};
+
+
+
+/*
+ * FCBRec.fcbFlags bits
+ */
+
+enum {
+       fcbWriteBit                                     = 0,                                                    /* Data can be written to this file */
+       fcbWriteMask                            = 0x01,
+       fcbResourceBit                          = 1,                                                    /* This file is a resource fork */
+       fcbResourceMask                         = 0x02,
+       fcbWriteLockedBit                       = 2,                                                    /* File has a locked byte range */
+       fcbWriteLockedMask                      = 0x04,
+       fcbSharedWriteBit                       = 4,                                                    /* File is open for shared write access */
+       fcbSharedWriteMask                      = 0x10,
+       fcbFileLockedBit                        = 5,                                                    /* File is locked (write-protected) */
+       fcbFileLockedMask                       = 0x20,
+       fcbOwnClumpBit                          = 6,                                                    /* File has clump size specified in FCB */
+       fcbOwnClumpMask                         = 0x40,
+       fcbModifiedBit                          = 7,                                                    /* File has changed since it was last flushed */
+       fcbModifiedMask                         = 0x80
+};
+
+
+/*
+       File:           TextCommon.h
+*/
+
+/* LocaleIdentifier is an obsolete Copland typedef, will be removed soon*/
+typedef UInt32                                                         LocaleIdentifier;
+/* TextEncodingBase type & values */
+/* (values 0-32 correspond to the Script Codes defined in Inside Macintosh: Text pages 6-52 and 6-53 */
+typedef UInt32                                                         TextEncodingBase;
+
+enum {
+                                                                                                                               /* Mac OS encodings*/
+       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,                                                   /* The following use script code 0, smRoman*/
+       kTextEncodingMacSymbol          = 33,
+       kTextEncodingMacDingbats        = 34,
+       kTextEncodingMacTurkish         = 35,
+       kTextEncodingMacCroatian        = 36,
+       kTextEncodingMacIcelandic       = 37,
+       kTextEncodingMacRomanian        = 38,                                                   /* The following use script code 4, smArabic*/
+       kTextEncodingMacFarsi           = 0x8C,                                                 /* Like MacArabic but uses Farsi digits*/
+                                                                                                                               /* The following use script code 7, smCyrillic*/
+       kTextEncodingMacUkrainian       = 0x98,                                                 /* The following use script code 32, smUnimplemented*/
+       kTextEncodingMacVT100           = 0xFC,                                                 /* VT100/102 font from Comm Toolbox: Latin-1 repertoire + box drawing etc*/
+                                                                                                                               /* Special Mac OS encodings*/
+       kTextEncodingMacHFS                     = 0xFF,                                                 /* Meta-value, should never appear in a table.*/
+                                                                                                                               /* Unicode & ISO UCS encodings begin at 0x100*/
+       kTextEncodingUnicodeDefault     = 0x0100,                                               /* Meta-value, should never appear in a table.*/
+       kTextEncodingUnicodeV1_1        = 0x0101,
+       kTextEncodingISO10646_1993      = 0x0101,                                               /* Code points identical to Unicode 1.1*/
+       kTextEncodingUnicodeV2_0        = 0x0103,                                               /* New location for Korean Hangul*/
+                                                                                                                               /* ISO 8-bit and 7-bit encodings begin at 0x200*/
+       kTextEncodingISOLatin1          = 0x0201,                                               /* ISO 8859-1*/
+       kTextEncodingISOLatin2          = 0x0202,                                               /* ISO 8859-2*/
+       kTextEncodingISOLatinCyrillic = 0x0205,                                         /* ISO 8859-5*/
+       kTextEncodingISOLatinArabic     = 0x0206,                                               /* ISO 8859-6, = ASMO 708, =DOS CP 708*/
+       kTextEncodingISOLatinGreek      = 0x0207,                                               /* ISO 8859-7*/
+       kTextEncodingISOLatinHebrew     = 0x0208,                                               /* ISO 8859-8*/
+       kTextEncodingISOLatin5          = 0x0209,                                               /* ISO 8859-9*/
+                                                                                                                               /* MS-DOS & Windows encodings begin at 0x400*/
+       kTextEncodingDOSLatinUS         = 0x0400,                                               /* code page 437*/
+       kTextEncodingDOSGreek           = 0x0405,                                               /* code page 737 (formerly code page 437G)*/
+       kTextEncodingDOSBalticRim       = 0x0406,                                               /* code page 775*/
+       kTextEncodingDOSLatin1          = 0x0410,                                               /* code page 850, "Multilingual"*/
+       kTextEncodingDOSGreek1          = 0x0411,                                               /* code page 851*/
+       kTextEncodingDOSLatin2          = 0x0412,                                               /* code page 852, Slavic*/
+       kTextEncodingDOSCyrillic        = 0x0413,                                               /* code page 855, IBM Cyrillic*/
+       kTextEncodingDOSTurkish         = 0x0414,                                               /* code page 857, IBM Turkish*/
+       kTextEncodingDOSPortuguese      = 0x0415,                                               /* code page 860*/
+       kTextEncodingDOSIcelandic       = 0x0416,                                               /* code page 861*/
+       kTextEncodingDOSHebrew          = 0x0417,                                               /* code page 862*/
+       kTextEncodingDOSCanadianFrench = 0x0418,                                        /* code page 863*/
+       kTextEncodingDOSArabic          = 0x0419,                                               /* code page 864*/
+       kTextEncodingDOSNordic          = 0x041A,                                               /* code page 865*/
+       kTextEncodingDOSRussian         = 0x041B,                                               /* code page 866*/
+       kTextEncodingDOSGreek2          = 0x041C,                                               /* code page 869, IBM Modern Greek*/
+       kTextEncodingDOSThai            = 0x041D,                                               /* code page 874, also for Windows*/
+       kTextEncodingDOSJapanese        = 0x0420,                                               /* code page 932, also for Windows*/
+       kTextEncodingDOSChineseSimplif = 0x0421,                                        /* code page 936, also for Windows*/
+       kTextEncodingDOSKorean          = 0x0422,                                               /* code page 949, also for Windows; Unified Hangul Code*/
+       kTextEncodingDOSChineseTrad     = 0x0423,                                               /* code page 950, also for Windows*/
+       kTextEncodingWindowsLatin1      = 0x0500,                                               /* code page 1252*/
+       kTextEncodingWindowsANSI        = 0x0500,                                               /* code page 1252 (alternate name)*/
+       kTextEncodingWindowsLatin2      = 0x0501,                                               /* code page 1250, Central Europe*/
+       kTextEncodingWindowsCyrillic = 0x0502,                                          /* code page 1251, Slavic Cyrillic*/
+       kTextEncodingWindowsGreek       = 0x0503,                                               /* code page 1253*/
+       kTextEncodingWindowsLatin5      = 0x0504,                                               /* code page 1254, Turkish*/
+       kTextEncodingWindowsHebrew      = 0x0505,                                               /* code page 1255*/
+       kTextEncodingWindowsArabic      = 0x0506,                                               /* code page 1256*/
+       kTextEncodingWindowsBalticRim = 0x0507,                                         /* code page 1257*/
+       kTextEncodingWindowsKoreanJohab = 0x0510,                                       /* code page 1361, for Windows NT*/
+                                                                                                                               /* Various national standards begin at 0x600*/
+       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,                                               /* annex to GB 13000-93; for Windows 95*/
+       kTextEncodingKSC_5601_87        = 0x0640,                                               /* same as KSC 5601-92 without Johab annex*/
+       kTextEncodingKSC_5601_92_Johab = 0x0641,                                        /* KSC 5601-92 Johab annex*/
+       kTextEncodingCNS_11643_92_P1 = 0x0651,                                          /* CNS 11643-1992 plane 1*/
+       kTextEncodingCNS_11643_92_P2 = 0x0652,                                          /* CNS 11643-1992 plane 2*/
+       kTextEncodingCNS_11643_92_P3 = 0x0653,                                          /* CNS 11643-1992 plane 3 (was plane 14 in 1986 version)*/
+                                                                                                                               /* ISO 2022 collections begin at 0x800*/
+       kTextEncodingISO_2022_JP        = 0x0820,
+       kTextEncodingISO_2022_JP_2      = 0x0821,
+       kTextEncodingISO_2022_CN        = 0x0830,
+       kTextEncodingISO_2022_CN_EXT = 0x0831,
+       kTextEncodingISO_2022_KR        = 0x0840,                                               /* EUC collections begin at 0x900*/
+       kTextEncodingEUC_JP                     = 0x0920,                                               /* ISO 646, 1-byte katakana, JIS 208, JIS 212*/
+       kTextEncodingEUC_CN                     = 0x0930,                                               /* ISO 646, GB 2312-80*/
+       kTextEncodingEUC_TW                     = 0x0931,                                               /* ISO 646, CNS 11643-1992 Planes 1-16*/
+       kTextEncodingEUC_KR                     = 0x0940,                                               /* ISO 646, KS C 5601-1987*/
+                                                                                                                               /* Misc standards begin at 0xA00*/
+       kTextEncodingShiftJIS           = 0x0A01,                                               /* plain Shift-JIS*/
+       kTextEncodingKOI8_R                     = 0x0A02,                                               /* Russian internet standard*/
+       kTextEncodingBig5                       = 0x0A03,                                               /* Big-5 (has variants)*/
+       kTextEncodingMacRomanLatin1     = 0x0A04,                                               /* Mac OS Roman permuted to align with ISO Latin-1*/
+       kTextEncodingHZ_GB_2312         = 0x0A05,                                               /* HZ (RFC 1842, for Chinese mail & news)*/
+                                                                                                                               /* Other platform encodings*/
+       kTextEncodingNextStepLatin      = 0x0B01,                                               /* NextStep encoding*/
+                                                                                                                               /* EBCDIC & IBM host encodings begin at 0xC00*/
+       kTextEncodingEBCDIC_US          = 0x0C01,                                               /* basic EBCDIC-US*/
+       kTextEncodingEBCDIC_CP037       = 0x0C02,                                               /* code page 037, extended EBCDIC (Latin-1 set) for US,Canada...*/
+                                                                                                                               /* Special value*/
+       kTextEncodingMultiRun           = 0x0FFF,                                               /* Multi-encoding text with external run info*/
+                                                                                                                               /* The following are older names for backward compatibility*/
+       kTextEncodingMacTradChinese     = 2,
+       kTextEncodingMacRSymbol         = 8,
+       kTextEncodingMacSimpChinese     = 25,
+       kTextEncodingMacGeez            = 28,
+       kTextEncodingMacEastEurRoman = 29,
+       kTextEncodingMacUninterp        = 32
+};
+
+/* TextEncodingVariant type & values */
+typedef UInt32                                                         TextEncodingVariant;
+
+enum {
+                                                                                                                               /* Default TextEncodingVariant, for any TextEncodingBase*/
+       kTextEncodingDefaultVariant     = 0,                                                    /* Variants of kTextEncodingMacIcelandic                                                                                                        */
+       kMacIcelandicStandardVariant = 0,                                                       /* 0xBB & 0xBC are fem./masc. ordinal indicators*/
+       kMacIcelandicTrueTypeVariant = 1,                                                       /* 0xBB & 0xBC are fi/fl ligatures*/
+                                                                                                                               /* Variants of kTextEncodingMacJapanese*/
+       kMacJapaneseStandardVariant     = 0,
+       kMacJapaneseStdNoVerticalsVariant = 1,
+       kMacJapaneseBasicVariant        = 2,
+       kMacJapanesePostScriptScrnVariant = 3,
+       kMacJapanesePostScriptPrintVariant = 4,
+       kMacJapaneseVertAtKuPlusTenVariant = 5,                                         /* Variant options for most Japanese encodings (MacJapanese, ShiftJIS, EUC-JP, ISO 2022-JP)     */
+                                                                                                                               /* These can be OR-ed into the variant value in any combination*/
+       kJapaneseNoOneByteKanaOption = 0x20,
+       kJapaneseUseAsciiBackslashOption = 0x40,                                        /* Variants of kTextEncodingMacArabic*/
+       kMacArabicStandardVariant       = 0,                                                    /* 0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Cairo)*/
+       kMacArabicTrueTypeVariant       = 1,                                                    /* 0xC0 is asterisk, 0x2A & 0xAA are multiply signs (e.g. Baghdad)*/
+       kMacArabicThuluthVariant        = 2,                                                    /* 0xC0 is Arabic five-point star, 0x2A & 0xAA are multiply signs*/
+       kMacArabicAlBayanVariant        = 3,                                                    /* 8-spoke asterisk, multiply sign, Koranic ligatures & parens*/
+                                                                                                                               /* Variants of kTextEncodingMacFarsi*/
+       kMacFarsiStandardVariant        = 0,                                                    /* 0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Tehran)*/
+       kMacFarsiTrueTypeVariant        = 1,                                                    /* asterisk, multiply signs, Koranic ligatures, geometric shapes*/
+                                                                                                                               /* Variants of kTextEncodingMacHebrew*/
+       kMacHebrewStandardVariant       = 0,
+       kMacHebrewFigureSpaceVariant = 1,                                                       /* Variants of Unicode & ISO 10646 encodings*/
+       kUnicodeNoSubset                        = 0,
+       kUnicodeNoCompatibilityVariant = 1,
+       kUnicodeMaxDecomposedVariant = 2,
+       kUnicodeNoComposedVariant       = 3,
+       kUnicodeNoCorporateVariant      = 4,                                                    /* Variants of Big-5 encoding*/
+       kBig5_BasicVariant                      = 0,
+       kBig5_StandardVariant           = 1,                                                    /* 0xC6A1-0xC7FC: kana, Cyrillic, enclosed numerics*/
+       kBig5_ETenVariant                       = 2,                                                    /* adds kana, Cyrillic, radicals, etc with hi bytes C6-C8,F9*/
+                                                                                                                               /* The following are older names for backward compatibility*/
+       kJapaneseStandardVariant        = 0,
+       kJapaneseStdNoVerticalsVariant = 1,
+       kJapaneseBasicVariant           = 2,
+       kJapanesePostScriptScrnVariant = 3,
+       kJapanesePostScriptPrintVariant = 4,
+       kJapaneseVertAtKuPlusTenVariant = 5,                                            /* kJapaneseStdNoOneByteKanaVariant = 6,        // replaced by kJapaneseNoOneByteKanaOption*/
+                                                                                                                               /* kJapaneseBasicNoOneByteKanaVariant = 7,      // replaced by kJapaneseNoOneByteKanaOption     */
+       kHebrewStandardVariant          = 0,
+       kHebrewFigureSpaceVariant       = 1
+};
+
+/* TextEncodingFormat type & values */
+typedef UInt32                                                         TextEncodingFormat;
+
+enum {
+                                                                                                                               /* Default TextEncodingFormat for any TextEncodingBase*/
+       kTextEncodingDefaultFormat      = 0,                                                    /* Formats for Unicode & ISO 10646*/
+       kUnicode16BitFormat                     = 0,
+       kUnicodeUTF7Format                      = 1,
+       kUnicodeUTF8Format                      = 2,
+       kUnicode32BitFormat                     = 3
+};
+
+/* TextEncoding type */
+typedef UInt32                                                         TextEncoding;
+/* name part selector for GetTextEncodingName*/
+typedef UInt32                                                         TextEncodingNameSelector;
+
+enum {
+       kTextEncodingFullName           = 0,
+       kTextEncodingBaseName           = 1,
+       kTextEncodingVariantName        = 2,
+       kTextEncodingFormatName         = 3
+};
+
+/* Types used in conversion */
+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;
+/* Basic types for Unicode characters and strings: */
+typedef UniChar *                                              UniCharArrayPtr;
+typedef const UniChar *                                        ConstUniCharArrayPtr;
+/* enums for TextEncoding Conversion routines*/
+
+enum {
+       kTextScriptDontCare                     = -128,
+       kTextLanguageDontCare           = -128,
+       kTextRegionDontCare                     = -128
+};
+
+
+
+/*
+       File:           UnicodeConverter.h
+*/
+
+/* Unicode conversion contexts: */
+typedef struct OpaqueTextToUnicodeInfo*  TextToUnicodeInfo;
+typedef struct OpaqueUnicodeToTextInfo*  UnicodeToTextInfo;
+typedef struct OpaqueUnicodeToTextRunInfo*  UnicodeToTextRunInfo;
+typedef const TextToUnicodeInfo                ConstTextToUnicodeInfo;
+typedef const UnicodeToTextInfo                ConstUnicodeToTextInfo;
+/* UnicodeMapVersion type & values */
+typedef SInt32                                                         UnicodeMapVersion;
+
+enum {
+       kUnicodeUseLatestMapping        = -1,
+       kUnicodeUseHFSPlusMapping       = 4
+};
+
+/* Types used in conversion */
+struct UnicodeMapping {
+       TextEncoding                                    unicodeEncoding;
+       TextEncoding                                    otherEncoding;
+       UnicodeMapVersion                               mappingVersion;
+};
+typedef struct UnicodeMapping UnicodeMapping;
+
+typedef UnicodeMapping *                               UnicodeMappingPtr;
+typedef const UnicodeMapping *                 ConstUnicodeMappingPtr;
+/* Control flags for ConvertFromUnicodeToText and ConvertFromTextToUnicode */
+
+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
+};
+
+/* Values for kUnicodeDirectionality field */
+
+enum {
+       kUnicodeDefaultDirection        = 0,
+       kUnicodeLeftToRight                     = 1,
+       kUnicodeRightToLeft                     = 2
+};
+
+/* Directionality masks for control flags */
+
+enum {
+       kUnicodeDefaultDirectionMask = kUnicodeDefaultDirection << kUnicodeDirectionalityBits,
+       kUnicodeLeftToRightMask         = kUnicodeLeftToRight << kUnicodeDirectionalityBits,
+       kUnicodeRightToLeftMask         = kUnicodeRightToLeft << kUnicodeDirectionalityBits
+};
+
+/* Control flags for TruncateForUnicodeToText: */
+/*
+   Now TruncateForUnicodeToText uses control flags from the same set as used by
+   ConvertFromTextToUnicode, ConvertFromUnicodeToText, etc., but only
+   kUnicodeStringUnterminatedMask is meaningful for TruncateForUnicodeToText.
+   
+   Previously two special control flags were defined for TruncateForUnicodeToText:
+               kUnicodeTextElementSafeBit = 0
+               kUnicodeRestartSafeBit = 1
+   However, neither of these was implemented.
+   Instead of implementing kUnicodeTextElementSafeBit, we now use
+   kUnicodeStringUnterminatedMask since it accomplishes the same thing and avoids
+   having special flags just for TruncateForUnicodeToText
+   Also, kUnicodeRestartSafeBit is unnecessary, since restart-safeness is handled by
+   setting kUnicodeKeepInfoBit with ConvertFromUnicodeToText.
+   If TruncateForUnicodeToText is called with one or both of the old special control
+   flags set (bits 0 or 1), it will not generate a paramErr, but the old bits have no
+   effect on its operation.
+*/
+
+/* Filter bits for filter field in QueryUnicodeMappings and CountUnicodeMappings: */
+
+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
+};
+
+/* Control flags for SetFallbackUnicodeToText */
+
+enum {
+       kUnicodeFallbackSequencingBits = 0
+};
+
+
+enum {
+       kUnicodeFallbackSequencingMask = 3L << kUnicodeFallbackSequencingBits
+};
+
+/* values for kUnicodeFallbackSequencing field */
+
+enum {
+       kUnicodeFallbackDefaultOnly     = 0L,
+       kUnicodeFallbackCustomOnly      = 1L,
+       kUnicodeFallbackDefaultFirst = 2L,
+       kUnicodeFallbackCustomFirst     = 3L
+};
+
+
+
+/*
+       File:           Timer.h
+*/
+
+
+enum {
+                                                                                                                               /* high bit of qType is set if task is active */
+       kTMTaskActive                           = (1L << 15)
+};
+
+typedef struct TMTask                                  TMTask;
+typedef TMTask *                                               TMTaskPtr;
+typedef CALLBACK_API( void , TimerProcPtr )(TMTaskPtr tmTaskPtr);
+/*
+       WARNING: TimerProcPtr uses register based parameters under classic 68k
+                        and cannot be written in a high-level language without 
+                        the help of mixed mode or assembly glue.
+*/
+typedef REGISTER_UPP_TYPE(TimerProcPtr)                                                TimerUPP;
+struct TMTask {
+       QElemPtr                                                qLink;
+       short                                                   qType;
+       TimerUPP                                                tmAddr;
+       long                                                    tmCount;
+       long                                                    tmWakeUp;
+       long                                                    tmReserved;
+};
+
+
+/*
+       File:           TextCommonPriv.h
+*/
+
+
+/*
+   -----------------------------------------------------------------------------------------------------------
+   TextEncoding creation & extraction macros.
+   Current packed format:
+               31 30 29    26 25                 16 15                             0
+               |pack| format |       variant       |              base              |
+               |vers|        |                     |                                |
+               |2bit| 4 bits |       10 bits       |            16 bits             |
+   Unpacked elements
+               base                                 15                             0
+               |                0                  |            16 bits             |
+               variant                                              9              0
+               |                0                                  |      10 bits   |
+               format                                                       3      0
+               |                0                                          | 4 bits |
+   -----------------------------------------------------------------------------------------------------------
+*/
+
+enum {
+       kTextEncodingVersion            = 0
+};
+
+
+enum {
+       kTextEncodingBaseShiftBits      = 0,                                                    /*      <13>*/
+       kTextEncodingVariantShiftBits = 16,                                                     /*      <13>*/
+       kTextEncodingFormatShiftBits = 26,                                                      /*      <13><16>*/
+       kTextEncodingVersionShiftBits = 30
+};
+
+
+
+enum {
+       kTextEncodingBaseSourceMask     = 0x0000FFFF,                                   /*      16 bits <13>*/
+       kTextEncodingVariantSourceMask = 0x000003FF,                            /*      10 bits <13><16>*/
+       kTextEncodingFormatSourceMask = 0x0000000F,                                     /*       4 bits <13><16>*/
+       kTextEncodingVersionSourceMask = 0x00000003                                     /*       2 bits*/
+};
+
+
+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)
+/* TextEncoding used by HFS*/
+
+enum {
+       kMacHFSTextEncoding                     = 0x000000FF
+};
+
+
+/*
+       File:           Instrumentation.h
+
+
+*/
+/*******************************************************************/
+/*                        Types                                                       */
+/*******************************************************************/
+/* Reference to an instrumentation class */
+typedef struct InstOpaqueClassRef* InstClassRef;
+
+/* Aliases to the generic instrumentation class for each type of class */
+typedef InstClassRef InstPathClassRef;
+typedef InstClassRef InstTraceClassRef;
+typedef InstClassRef InstHistogramClassRef;
+typedef InstClassRef InstSplitHistogramClassRef;
+typedef InstClassRef InstMagnitudeClassRef;
+typedef InstClassRef InstGrowthClassRef;
+typedef InstClassRef InstTallyClassRef;
+
+/* Reference to a data descriptor */
+typedef struct InstOpaqueDataDescriptorRef* InstDataDescriptorRef;
+
+
+/*******************************************************************/
+/*            Constant Definitions                                 */
+/*******************************************************************/
+
+/* Reference to the root of the class hierarchy */
+#define kInstRootClassRef       ( (InstClassRef) -1)
+
+/* Options used for creating classes */
+typedef OptionBits InstClassOptions;
+
+
+enum {
+       kInstDisableClassMask                   = 0x00,                 /* Create the class disabled */
+       kInstEnableClassMask                    = 0x01,                 /* Create the class enabled */
+
+       kInstSummaryTraceClassMask              = 0x20                  /* Create a summary trace class instead of a regular one */
+};
+
+                                                               
+
+EXTERN_API( Boolean )
+EqualString                                            (ConstStr255Param               str1,
+                                                                ConstStr255Param               str2,
+                                                                Boolean                                caseSensitive,
+                                                                Boolean                                diacSensitive);
+
+                                                                
+
+
+/*
+       File:           LowMemPriv.h
+*/
+
+/* The following replace storage used in low-mem on MacOS: */
+extern struct FSVarsRec * gFSMVars;
+
+
+#define LMGetFSMVars() gFSMVars
+
+
+
+EXTERN_API( void )
+InsTime                                                        (QElemPtr                               tmTaskPtr);
+EXTERN_API( void )
+PrimeTime                                              (QElemPtr                               tmTaskPtr,
+                                                                long                                   count);
+EXTERN_API( void )
+RmvTime                                                        (QElemPtr                               tmTaskPtr);
+
+
+                                                                
+
+/* PROTOTYPES */
+
+#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);
+
+/*
+       File:           DateTimeUtils.h
+*/
+EXTERN_API( void )
+GetDateTime                                            (unsigned long *                secs);
+
+
+
+#endif /* __hfs_macos_types__ */