You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
779 lines
29 KiB
779 lines
29 KiB
/*
|
|
File: MacTypes.h
|
|
|
|
Contains: Basic Macintosh data types.
|
|
|
|
Version: QuickTime 7.3
|
|
|
|
Copyright: (c) 2007 (c) 1985-2001 by Apple Computer, Inc., all rights reserved.
|
|
|
|
Bugs?: For bug reports, consult the following page on
|
|
the World Wide Web:
|
|
|
|
http://developer.apple.com/bugreporter/
|
|
|
|
*/
|
|
#ifndef __MACTYPES__
|
|
#define __MACTYPES__
|
|
|
|
#ifndef __CONDITIONALMACROS__
|
|
#include <ConditionalMacros.h>
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#if PRAGMA_ONCE
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if PRAGMA_IMPORT
|
|
#pragma import on
|
|
#endif
|
|
|
|
#if PRAGMA_STRUCT_ALIGN
|
|
#pragma options align=mac68k
|
|
#elif PRAGMA_STRUCT_PACKPUSH
|
|
#pragma pack(push, 2)
|
|
#elif PRAGMA_STRUCT_PACK
|
|
#pragma pack(2)
|
|
#endif
|
|
|
|
/********************************************************************************
|
|
|
|
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
|
|
#if !defined(__cplusplus) && (defined(__SC__) || defined(THINK_C))
|
|
/* Symantec C compilers (but not C++) want NULL and nil to be (void*)0 */
|
|
#define NULL ((void *) 0)
|
|
#else
|
|
/* in case int is 16-bits, make sure NULL is 32-bits */
|
|
#define NULL 0L
|
|
#endif
|
|
#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 unsigned char UInt8;
|
|
typedef signed char SInt8;
|
|
typedef unsigned short UInt16;
|
|
typedef signed short SInt16;
|
|
typedef unsigned long UInt32;
|
|
typedef signed long SInt32;
|
|
#if TARGET_RT_BIG_ENDIAN
|
|
struct wide {
|
|
SInt32 hi;
|
|
UInt32 lo;
|
|
};
|
|
typedef struct wide wide;
|
|
struct UnsignedWide {
|
|
UInt32 hi;
|
|
UInt32 lo;
|
|
};
|
|
typedef struct UnsignedWide UnsignedWide;
|
|
#else
|
|
struct wide {
|
|
UInt32 lo;
|
|
SInt32 hi;
|
|
};
|
|
typedef struct wide wide;
|
|
struct UnsignedWide {
|
|
UInt32 lo;
|
|
UInt32 hi;
|
|
};
|
|
typedef struct UnsignedWide UnsignedWide;
|
|
#endif /* TARGET_RT_BIG_ENDIAN */
|
|
|
|
|
|
#if TYPE_LONGLONG
|
|
/*
|
|
Note: wide and UnsignedWide must always be structs for source code
|
|
compatibility. On the other hand UInt64 and SInt64 can be
|
|
either a struct or a long long, depending on the compiler.
|
|
|
|
If you use UInt64 and SInt64 you should do all operations on
|
|
those data types through the functions/macros in Math64.h.
|
|
This will assure that your code compiles with compilers that
|
|
support long long and those that don't.
|
|
|
|
The MS Visual C/C++ compiler uses __int64 instead of long long.
|
|
*/
|
|
#if defined(_MSC_VER) && !defined(__MWERKS__) && defined(_M_IX86)
|
|
typedef signed __int64 SInt64;
|
|
typedef unsigned __int64 UInt64;
|
|
#else
|
|
typedef signed long long SInt64;
|
|
typedef unsigned long long UInt64;
|
|
#endif
|
|
#else
|
|
|
|
|
|
typedef wide SInt64;
|
|
typedef UnsignedWide UInt64;
|
|
#endif /* TYPE_LONGLONG */
|
|
|
|
/********************************************************************************
|
|
|
|
Base fixed point types
|
|
|
|
Fixed 16-bit signed integer plus 16-bit fraction
|
|
UnsignedFixed 16-bit unsigned integer plus 16-bit fraction
|
|
Fract 2-bit signed integer plus 30-bit fraction
|
|
ShortFixed 8-bit signed integer plus 8-bit fraction
|
|
|
|
*********************************************************************************/
|
|
typedef long Fixed;
|
|
typedef Fixed * FixedPtr;
|
|
typedef long Fract;
|
|
typedef Fract * FractPtr;
|
|
typedef unsigned long UnsignedFixed;
|
|
typedef UnsignedFixed * UnsignedFixedPtr;
|
|
typedef short ShortFixed;
|
|
typedef ShortFixed * ShortFixedPtr;
|
|
|
|
|
|
/********************************************************************************
|
|
|
|
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 are undefined */
|
|
UInt16 man[4];
|
|
};
|
|
typedef struct Float96 Float96;
|
|
struct Float32Point {
|
|
Float32 x;
|
|
Float32 y;
|
|
};
|
|
typedef struct Float32Point Float32Point;
|
|
|
|
/********************************************************************************
|
|
|
|
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 A particular set of written characters (e.g. Roman vs Cyrillic) and their encoding
|
|
LangCode A particular language (e.g. English), as represented using a particular ScriptCode
|
|
RegionCode Designates a language as used in a particular region (e.g. British vs American
|
|
English) together with other region-dependent characteristics (e.g. date format)
|
|
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 UnsignedWide 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
|
|
#if TARGET_OS_WIN32
|
|
/* MS VC normally warns if true or false is defined */
|
|
#pragma warning (disable: 4237)
|
|
#endif
|
|
enum {
|
|
false = 0,
|
|
true = 1
|
|
};
|
|
|
|
#if TARGET_OS_WIN32
|
|
#pragma warning (default: 4237)
|
|
#endif
|
|
#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 CALLBACK_API_C( long , ProcPtr )();
|
|
typedef CALLBACK_API( void , Register68kProcPtr )();
|
|
#if TARGET_OS_MAC && TARGET_RT_MAC_CFM
|
|
/* The RoutineDescriptor structure is defined in MixedMode.h */
|
|
typedef struct RoutineDescriptor *UniversalProcPtr;
|
|
#else
|
|
typedef ProcPtr UniversalProcPtr;
|
|
#endif /* TARGET_OS_MAC && TARGET_RT_MAC_CFM */
|
|
|
|
typedef ProcPtr * ProcHandle;
|
|
typedef UniversalProcPtr * UniversalProcHandle;
|
|
|
|
|
|
/********************************************************************************
|
|
|
|
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
|
|
};
|
|
|
|
enum {
|
|
kUnknownType = 0x3F3F3F3F /* "????" QuickTime 3.0: default unknown ResType or OSType */
|
|
};
|
|
|
|
|
|
|
|
/********************************************************************************
|
|
|
|
String Types and Unicode Types
|
|
|
|
UnicodeScalarValue, A complete Unicode character in UTF-32 format, with
|
|
UTF32Char values from 0 through 0x10FFFF (excluding the surrogate
|
|
range 0xD800-0xDFFF and certain disallowed values).
|
|
|
|
UniChar, A 16-bit Unicode code value in the default UTF-16 format.
|
|
UTF16Char UnicodeScalarValues 0-0xFFFF are expressed in UTF-16
|
|
format using a single UTF16Char with the same value.
|
|
UnicodeScalarValues 0x10000-0x10FFFF are expressed in
|
|
UTF-16 format using a pair of UTF16Chars - one in the
|
|
high surrogate range (0xD800-0xDBFF) followed by one in
|
|
the low surrogate range (0xDC00-0xDFFF). All of the
|
|
characters defined in Unicode versions through 3.0 are
|
|
in the range 0-0xFFFF and can be expressed using a single
|
|
UTF16Char, thus the term "Unicode character" generally
|
|
refers to a UniChar = UTF16Char.
|
|
|
|
UTF8Char An 8-bit code value in UTF-8 format. UnicodeScalarValues
|
|
0-0x7F are expressed in UTF-8 format using one UTF8Char
|
|
with the same value. UnicodeScalarValues above 0x7F are
|
|
expressed in UTF-8 format using 2-4 UTF8Chars, all with
|
|
values in the range 0x80-0xF4 (UnicodeScalarValues
|
|
0x100-0xFFFF use two or three UTF8Chars,
|
|
UnicodeScalarValues 0x10000-0x10FFFF use four UTF8Chars).
|
|
|
|
UniCharCount A count of UTF-16 code values in an array or buffer.
|
|
|
|
StrNNN Pascal string holding up to NNN bytes
|
|
StringPtr Pointer to a pascal string
|
|
StringHandle Pointer to a StringPtr
|
|
ConstStringPtr Pointer to a read-only pascal string
|
|
ConstStrNNNParam For function parameters only - means string is const
|
|
|
|
CStringPtr Pointer to a C string (in C: char*)
|
|
ConstCStringPtr Pointer to a read-only C string (in C: const char*)
|
|
|
|
Note: The length of a pascal string is stored as the first byte.
|
|
A pascal string does not have a termination byte.
|
|
A pascal string can hold at most 255 bytes of data.
|
|
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 zeroth byte of the string.
|
|
|
|
|
|
*********************************************************************************/
|
|
typedef UInt32 UnicodeScalarValue;
|
|
typedef UInt32 UTF32Char;
|
|
typedef UInt16 UniChar;
|
|
typedef UInt16 UTF16Char;
|
|
typedef UInt8 UTF8Char;
|
|
typedef UniChar * UniCharPtr;
|
|
typedef UInt32 UniCharCount;
|
|
typedef UniCharCount * UniCharCountPtr;
|
|
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];
|
|
/*
|
|
QuickTime 3.0:
|
|
The type StrFileName is used to make MacOS structs work
|
|
cross-platform. For example FSSpec or SFReply previously
|
|
contained a Str63 field. They now contain a StrFileName
|
|
field which is the same when targeting the MacOS but is
|
|
a 256 char buffer for Win32 and unix, allowing them to
|
|
contain long file names.
|
|
*/
|
|
#if TARGET_OS_MAC
|
|
typedef Str63 StrFileName;
|
|
#else
|
|
typedef Str255 StrFileName;
|
|
#endif /* TARGET_OS_MAC */
|
|
|
|
typedef unsigned char * StringPtr;
|
|
typedef StringPtr * StringHandle;
|
|
typedef const unsigned char * ConstStringPtr;
|
|
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;
|
|
#if TARGET_OS_MAC
|
|
typedef ConstStr63Param ConstStrFileNameParam;
|
|
#else
|
|
typedef ConstStr255Param ConstStrFileNameParam;
|
|
#endif /* TARGET_OS_MAC */
|
|
|
|
#ifdef __cplusplus
|
|
inline unsigned char StrLength(ConstStr255Param string) { return (*string); }
|
|
#else
|
|
#define StrLength(string) (*(unsigned char *)(string))
|
|
#endif /* defined(__cplusplus) */
|
|
|
|
#if OLDROUTINENAMES
|
|
#define Length(string) StrLength(string)
|
|
#endif /* OLDROUTINENAMES */
|
|
|
|
/********************************************************************************
|
|
|
|
Quickdraw Types
|
|
|
|
Point 2D Quickdraw coordinate, range: -32K to +32K
|
|
Rect Rectangular 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;
|
|
struct FixedPoint {
|
|
Fixed x;
|
|
Fixed y;
|
|
};
|
|
typedef struct FixedPoint FixedPoint;
|
|
struct FixedRect {
|
|
Fixed left;
|
|
Fixed top;
|
|
Fixed right;
|
|
Fixed bottom;
|
|
};
|
|
typedef struct FixedRect FixedRect;
|
|
|
|
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;
|
|
|
|
|
|
/********************************************************************************
|
|
|
|
QuickTime TimeBase types (previously in Movies.h)
|
|
|
|
TimeValue Count of units
|
|
TimeScale Units per second
|
|
CompTimeValue 64-bit count of units (always a struct)
|
|
TimeValue64 64-bit count of units (long long or struct)
|
|
TimeBase An opaque reference to a time base
|
|
TimeRecord Package of TimeBase, duration, and scale
|
|
|
|
*********************************************************************************/
|
|
typedef long TimeValue;
|
|
typedef long TimeScale;
|
|
typedef wide CompTimeValue;
|
|
typedef SInt64 TimeValue64;
|
|
typedef struct TimeBaseRecord* TimeBase;
|
|
struct TimeRecord {
|
|
CompTimeValue value; /* units (duration or absolute) */
|
|
TimeScale scale; /* units per second */
|
|
TimeBase base; /* refernce to the time base */
|
|
};
|
|
typedef struct TimeRecord TimeRecord;
|
|
|
|
/********************************************************************************
|
|
|
|
THINK C base objects
|
|
|
|
HandleObject Root class for handle based THINK C++ objects
|
|
PascalObject Root class for pascal style objects in THINK C++
|
|
|
|
*********************************************************************************/
|
|
#if defined(__SC__) && !defined(__STDC__) && defined(__cplusplus)
|
|
class __machdl HandleObject {};
|
|
#if TARGET_CPU_68K
|
|
class __pasobj PascalObject {};
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/********************************************************************************
|
|
|
|
MacOS versioning structures
|
|
|
|
VersRec Contents of a 'vers' resource
|
|
VersRecPtr Pointer to a VersRecPtr
|
|
VersRecHndl Resource Handle containing a VersRec
|
|
NumVersion Packed BCD version representation (e.g. "4.2.1a3" is 0x04214003)
|
|
UniversalProcPtr Pointer to classic 68K code or a RoutineDescriptor
|
|
|
|
ProcHandle Pointer to a ProcPtr
|
|
UniversalProcHandle Pointer to a UniversalProcPtr
|
|
|
|
*********************************************************************************/
|
|
#if TARGET_RT_BIG_ENDIAN
|
|
struct NumVersion {
|
|
/* Numeric version part of 'vers' resource */
|
|
UInt8 majorRev; /*1st part of version number in BCD*/
|
|
UInt8 minorAndBugRev; /*2nd & 3rd part of version number share a byte*/
|
|
UInt8 stage; /*stage code: dev, alpha, beta, final*/
|
|
UInt8 nonRelRev; /*revision level of non-released version*/
|
|
};
|
|
typedef struct NumVersion NumVersion;
|
|
#else
|
|
struct NumVersion {
|
|
/* Numeric version part of 'vers' resource accessable in little endian format */
|
|
UInt8 nonRelRev; /*revision level of non-released version*/
|
|
UInt8 stage; /*stage code: dev, alpha, beta, final*/
|
|
UInt8 minorAndBugRev; /*2nd & 3rd part of version number share a byte*/
|
|
UInt8 majorRev; /*1st part of version number in BCD*/
|
|
};
|
|
typedef struct NumVersion NumVersion;
|
|
#endif /* TARGET_RT_BIG_ENDIAN */
|
|
|
|
enum {
|
|
/* Version Release Stage Codes */
|
|
developStage = 0x20,
|
|
alphaStage = 0x40,
|
|
betaStage = 0x60,
|
|
finalStage = 0x80
|
|
};
|
|
|
|
union NumVersionVariant {
|
|
/* NumVersionVariant is a wrapper so NumVersion can be accessed as a 32-bit value */
|
|
NumVersion parts;
|
|
unsigned long whole;
|
|
};
|
|
typedef union NumVersionVariant NumVersionVariant;
|
|
typedef NumVersionVariant * NumVersionVariantPtr;
|
|
typedef NumVersionVariantPtr * NumVersionVariantHandle;
|
|
struct VersRec {
|
|
/* 'vers' resource format */
|
|
NumVersion numericVersion; /*encoded version number*/
|
|
short countryCode; /*country code from intl utilities*/
|
|
Str255 shortVersion; /*version number string - worst case*/
|
|
Str255 reserved; /*longMessage string packed after shortVersion*/
|
|
};
|
|
typedef struct VersRec VersRec;
|
|
typedef VersRec * VersRecPtr;
|
|
typedef VersRecPtr * VersRecHndl;
|
|
/*********************************************************************************
|
|
|
|
Old names for types
|
|
|
|
*********************************************************************************/
|
|
typedef UInt8 Byte;
|
|
typedef SInt8 SignedByte;
|
|
typedef wide * WidePtr;
|
|
typedef UnsignedWide * UnsignedWidePtr;
|
|
typedef Float80 extended80;
|
|
typedef Float96 extended96;
|
|
typedef SInt8 VHSelect;
|
|
/*********************************************************************************
|
|
|
|
Debugger functions
|
|
|
|
*********************************************************************************/
|
|
/*
|
|
* Debugger()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( void )
|
|
Debugger(void) ONEWORDINLINE(0xA9FF);
|
|
|
|
|
|
/*
|
|
* DebugStr()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( void )
|
|
DebugStr(ConstStr255Param debuggerMsg) ONEWORDINLINE(0xABFF);
|
|
|
|
|
|
#if TARGET_OS_MAC
|
|
#if CALL_NOT_IN_CARBON
|
|
/*
|
|
* debugstr()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API_C( void )
|
|
debugstr(const char * debuggerMsg);
|
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */
|
|
|
|
#if TARGET_CPU_PPC
|
|
/* Only for Mac OS native drivers */
|
|
#if CALL_NOT_IN_CARBON
|
|
/*
|
|
* SysDebug()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in DriverServicesLib 1.0 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API_C( void )
|
|
SysDebug(void);
|
|
|
|
|
|
/*
|
|
* SysDebugStr()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in DriverServicesLib 1.0 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API_C( void )
|
|
SysDebugStr(ConstStr255Param str);
|
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */
|
|
|
|
#endif /* TARGET_CPU_PPC */
|
|
|
|
/* SADE break points */
|
|
/*
|
|
* SysBreak()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( void )
|
|
SysBreak(void) THREEWORDINLINE(0x303C, 0xFE16, 0xA9C9);
|
|
|
|
|
|
/*
|
|
* SysBreakStr()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( void )
|
|
SysBreakStr(ConstStr255Param debuggerMsg) THREEWORDINLINE(0x303C, 0xFE15, 0xA9C9);
|
|
|
|
|
|
/*
|
|
* SysBreakFunc()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( void )
|
|
SysBreakFunc(ConstStr255Param debuggerMsg) THREEWORDINLINE(0x303C, 0xFE14, 0xA9C9);
|
|
|
|
|
|
/* old names for Debugger and DebugStr */
|
|
#if OLDROUTINENAMES && TARGET_CPU_68K
|
|
#define Debugger68k() Debugger()
|
|
#define DebugStr68k(s) DebugStr(s)
|
|
#endif
|
|
#endif /* TARGET_OS_MAC */
|
|
|
|
|
|
|
|
#if PRAGMA_STRUCT_ALIGN
|
|
#pragma options align=reset
|
|
#elif PRAGMA_STRUCT_PACKPUSH
|
|
#pragma pack(pop)
|
|
#elif PRAGMA_STRUCT_PACK
|
|
#pragma pack()
|
|
#endif
|
|
|
|
#ifdef PRAGMA_IMPORT_OFF
|
|
#pragma import off
|
|
#elif PRAGMA_IMPORT
|
|
#pragma import reset
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __MACTYPES__ */
|
|
|