master
1/*
2 * Copyright (c) 1985-2011 by Apple Inc.. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24/*
25 File: MacTypes.h
26
27 Contains: Basic Macintosh data types.
28
29 Version: CarbonCore-769~1
30
31 Bugs?: For bug reports, consult the following page on
32 the World Wide Web:
33
34 http://developer.apple.com/bugreporter/
35
36*/
37#ifndef __MACTYPES__
38#define __MACTYPES__
39
40#if __has_include(<ConditionalMacros.h>)
41#include <ConditionalMacros.h>
42#endif
43
44#include <TargetConditionals.h>
45
46#include <stdbool.h>
47
48#include <sys/types.h>
49
50#include <Availability.h>
51
52#if PRAGMA_ONCE
53#pragma once
54#endif
55
56#ifdef __cplusplus
57extern "C" {
58#endif
59
60#pragma pack(push, 2)
61
62
63/*
64 CarbonCore Deprecation flags.
65
66 Certain Carbon API functions are deprecated in 10.3 and later
67 systems. These will produce a warning when compiling on 10.3.
68
69 Other functions and constants do not produce meaningful
70 results when building Carbon for Mac OS X. For these
71 functions, no-op macros are provided, but only when the
72 ALLOW_OBSOLETE_CARBON flag is defined to be 0: eg
73 -DALLOW_OBSOLETE_CARBON=0.
74*/
75
76#if ! defined(ALLOW_OBSOLETE_CARBON) || ! ALLOW_OBSOLETE_CARBON
77
78#define ALLOW_OBSOLETE_CARBON_MACMEMORY 0
79#define ALLOW_OBSOLETE_CARBON_OSUTILS 0
80
81#else
82
83#define ALLOW_OBSOLETE_CARBON_MACMEMORY 1 /* Removes obsolete constants; turns HLock/HUnlock into no-op macros */
84#define ALLOW_OBSOLETE_CARBON_OSUTILS 1 /* Removes obsolete structures */
85
86#endif
87
88#ifndef NULL
89#define NULL __DARWIN_NULL
90#endif /* ! NULL */
91#ifndef nil
92 #if defined(__has_feature)
93 #if __has_feature(cxx_nullptr)
94 #define nil nullptr
95 #else
96 #define nil __DARWIN_NULL
97 #endif
98 #else
99 #define nil __DARWIN_NULL
100 #endif
101#endif
102
103/********************************************************************************
104
105 Base integer types for all target OS's and CPU's
106
107 UInt8 8-bit unsigned integer
108 SInt8 8-bit signed integer
109 UInt16 16-bit unsigned integer
110 SInt16 16-bit signed integer
111 UInt32 32-bit unsigned integer
112 SInt32 32-bit signed integer
113 UInt64 64-bit unsigned integer
114 SInt64 64-bit signed integer
115
116*********************************************************************************/
117typedef unsigned char UInt8;
118typedef signed char SInt8;
119typedef unsigned short UInt16;
120typedef signed short SInt16;
121
122#if __LP64__
123typedef unsigned int UInt32;
124typedef signed int SInt32;
125#else
126typedef unsigned long UInt32;
127typedef signed long SInt32;
128#endif
129
130/* avoid redeclaration if libkern/OSTypes.h */
131#ifndef _OS_OSTYPES_H
132#if TARGET_RT_BIG_ENDIAN
133struct wide {
134 SInt32 hi;
135 UInt32 lo;
136};
137typedef struct wide wide;
138struct UnsignedWide {
139 UInt32 hi;
140 UInt32 lo;
141};
142typedef struct UnsignedWide UnsignedWide;
143#else
144struct wide {
145 UInt32 lo;
146 SInt32 hi;
147};
148typedef struct wide wide;
149struct UnsignedWide {
150 UInt32 lo;
151 UInt32 hi;
152};
153typedef struct UnsignedWide UnsignedWide;
154#endif /* TARGET_RT_BIG_ENDIAN */
155
156#endif
157
158#if TYPE_LONGLONG || 0
159/*
160 Note: wide and UnsignedWide must always be structs for source code
161 compatibility. On the other hand UInt64 and SInt64 can be
162 either a struct or a long long, depending on the compiler.
163
164 If you use UInt64 and SInt64 you should do all operations on
165 those data types through the functions/macros in Math64.h.
166 This will assure that your code compiles with compilers that
167 support long long and those that don't.
168
169 The MS Visual C/C++ compiler uses __int64 instead of long long.
170*/
171 #if defined(_MSC_VER) && !defined(__MWERKS__) && defined(_M_IX86)
172 typedef signed __int64 SInt64;
173 typedef unsigned __int64 UInt64;
174 #else
175 typedef signed long long SInt64;
176 typedef unsigned long long UInt64;
177 #endif
178#else
179
180
181typedef wide SInt64;
182typedef UnsignedWide UInt64;
183#endif
184
185/********************************************************************************
186
187 Base fixed point types
188
189 Fixed 16-bit signed integer plus 16-bit fraction
190 UnsignedFixed 16-bit unsigned integer plus 16-bit fraction
191 Fract 2-bit signed integer plus 30-bit fraction
192 ShortFixed 8-bit signed integer plus 8-bit fraction
193
194*********************************************************************************/
195typedef SInt32 Fixed;
196typedef Fixed * FixedPtr;
197typedef SInt32 Fract;
198typedef Fract * FractPtr;
199typedef UInt32 UnsignedFixed;
200typedef UnsignedFixed * UnsignedFixedPtr;
201typedef short ShortFixed;
202typedef ShortFixed * ShortFixedPtr;
203
204
205/********************************************************************************
206
207 Base floating point types
208
209 Float32 32 bit IEEE float: 1 sign bit, 8 exponent bits, 23 fraction bits
210 Float64 64 bit IEEE float: 1 sign bit, 11 exponent bits, 52 fraction bits
211 Float80 80 bit MacOS float: 1 sign bit, 15 exponent bits, 1 integer bit, 63 fraction bits
212 Float96 96 bit 68881 float: 1 sign bit, 15 exponent bits, 16 pad bits, 1 integer bit, 63 fraction bits
213
214 Note: These are fixed size floating point types, useful when writing a floating
215 point value to disk. If your compiler does not support a particular size
216 float, a struct is used instead.
217 Use one of the NCEG types (e.g. double_t) or an ANSI C type (e.g. double) if
218 you want a floating point representation that is natural for any given
219 compiler, but might be a different size on different compilers.
220
221*********************************************************************************/
222typedef float Float32;
223typedef double Float64;
224struct Float80 {
225 SInt16 exp;
226 UInt16 man[4];
227};
228typedef struct Float80 Float80;
229
230struct Float96 {
231 SInt16 exp[2]; /* the second 16-bits are undefined */
232 UInt16 man[4];
233};
234typedef struct Float96 Float96;
235struct Float32Point {
236 Float32 x;
237 Float32 y;
238};
239typedef struct Float32Point Float32Point;
240
241/********************************************************************************
242
243 MacOS Memory Manager types
244
245 Ptr Pointer to a non-relocatable block
246 Handle Pointer to a master pointer to a relocatable block
247 Size The number of bytes in a block (signed for historical reasons)
248
249*********************************************************************************/
250typedef char * Ptr;
251typedef Ptr * Handle;
252typedef long Size;
253
254/********************************************************************************
255
256 Higher level basic types
257
258 OSErr 16-bit result error code
259 OSStatus 32-bit result error code
260 LogicalAddress Address in the clients virtual address space
261 ConstLogicalAddress Address in the clients virtual address space that will only be read
262 PhysicalAddress Real address as used on the hardware bus
263 BytePtr Pointer to an array of bytes
264 ByteCount The size of an array of bytes
265 ByteOffset An offset into an array of bytes
266 ItemCount 32-bit iteration count
267 OptionBits Standard 32-bit set of bit flags
268 PBVersion ?
269 Duration 32-bit millisecond timer for drivers
270 AbsoluteTime 64-bit clock
271 ScriptCode A particular set of written characters (e.g. Roman vs Cyrillic) and their encoding
272 LangCode A particular language (e.g. English), as represented using a particular ScriptCode
273 RegionCode Designates a language as used in a particular region (e.g. British vs American
274 English) together with other region-dependent characteristics (e.g. date format)
275 FourCharCode A 32-bit value made by packing four 1 byte characters together
276 OSType A FourCharCode used in the OS and file system (e.g. creator)
277 ResType A FourCharCode used to tag resources (e.g. 'DLOG')
278
279*********************************************************************************/
280typedef SInt16 OSErr;
281typedef SInt32 OSStatus;
282typedef void * LogicalAddress;
283typedef const void * ConstLogicalAddress;
284typedef void * PhysicalAddress;
285typedef UInt8 * BytePtr;
286typedef unsigned long ByteCount;
287typedef unsigned long ByteOffset;
288typedef SInt32 Duration;
289typedef UnsignedWide AbsoluteTime;
290typedef UInt32 OptionBits;
291typedef unsigned long ItemCount;
292typedef UInt32 PBVersion;
293typedef SInt16 ScriptCode;
294typedef SInt16 LangCode;
295typedef SInt16 RegionCode;
296typedef UInt32 FourCharCode;
297typedef FourCharCode OSType;
298typedef FourCharCode ResType;
299typedef OSType * OSTypePtr;
300typedef ResType * ResTypePtr;
301/********************************************************************************
302
303 Boolean types and values
304
305 Boolean Mac OS historic type, sizeof(Boolean)==1
306 bool Defined in stdbool.h, ISO C/C++ standard type
307 false Now defined in stdbool.h
308 true Now defined in stdbool.h
309
310*********************************************************************************/
311typedef unsigned char Boolean;
312
313#if !0
314/********************************************************************************
315
316 Function Pointer Types
317
318 ProcPtr Generic pointer to a function
319 Register68kProcPtr Pointer to a 68K function that expects parameters in registers
320 UniversalProcPtr Pointer to classic 68K code or a RoutineDescriptor
321
322 ProcHandle Pointer to a ProcPtr
323 UniversalProcHandle Pointer to a UniversalProcPtr
324
325*********************************************************************************/
326typedef CALLBACK_API_C( long , ProcPtr )(void);
327typedef CALLBACK_API( void , Register68kProcPtr )(void);
328#if TARGET_RT_MAC_CFM
329/* The RoutineDescriptor structure is defined in MixedMode.h */
330typedef struct RoutineDescriptor *UniversalProcPtr;
331#else
332typedef ProcPtr UniversalProcPtr;
333#endif /* TARGET_RT_MAC_CFM */
334
335typedef ProcPtr * ProcHandle;
336typedef UniversalProcPtr * UniversalProcHandle;
337#endif
338
339/********************************************************************************
340
341 RefCon Types
342
343 For access to private data in callbacks, etc.; refcons are generally
344 used as a pointer to something, but in the 32-bit world refcons in
345 different APIs have had various types: pointer, unsigned scalar, and
346 signed scalar. The RefCon types defined here support the current 32-bit
347 usage but provide normalization to pointer types for 64-bit.
348
349 PRefCon is preferred for new APIs; URefCon and SRefCon are primarily
350 for compatibility with existing APIs.
351
352*********************************************************************************/
353typedef void * PRefCon;
354#if __LP64__
355typedef void * URefCon;
356typedef void * SRefCon;
357#else
358typedef UInt32 URefCon;
359typedef SInt32 SRefCon;
360#endif /* __LP64__ */
361
362/********************************************************************************
363
364 Common Constants
365
366 noErr OSErr: function performed properly - no error
367 kNilOptions OptionBits: all flags false
368 kInvalidID KernelID: NULL is for pointers as kInvalidID is for ID's
369 kVariableLengthArray array bounds: variable length array
370
371 Note: kVariableLengthArray was used in array bounds to specify a variable length array,
372 usually the last field in a struct. Now that the C language supports
373 the concept of flexible array members, you can instead use:
374
375 struct BarList
376 {
377 short listLength;
378 Bar elements[];
379 };
380
381 However, this changes the semantics somewhat, as sizeof( BarList ) contains
382 no space for any of the elements, so to allocate a list with space for
383 the count elements
384
385 struct BarList* l = (struct BarList*) malloc( sizeof(BarList) + count * sizeof(Bar) );
386
387*********************************************************************************/
388enum {
389 noErr = 0
390};
391
392enum {
393 kNilOptions = 0
394};
395
396#define kInvalidID 0
397enum {
398 kVariableLengthArray
399#ifdef __has_extension
400 #if __has_extension(enumerator_attributes)
401 __attribute__((deprecated))
402 #endif
403#endif
404 = 1
405};
406
407enum {
408 kUnknownType = 0x3F3F3F3F /* "????" QuickTime 3.0: default unknown ResType or OSType */
409};
410
411
412
413/********************************************************************************
414
415 String Types and Unicode Types
416
417 UnicodeScalarValue, A complete Unicode character in UTF-32 format, with
418 UTF32Char values from 0 through 0x10FFFF (excluding the surrogate
419 range 0xD800-0xDFFF and certain disallowed values).
420
421 UniChar, A 16-bit Unicode code value in the default UTF-16 format.
422 UTF16Char UnicodeScalarValues 0-0xFFFF are expressed in UTF-16
423 format using a single UTF16Char with the same value.
424 UnicodeScalarValues 0x10000-0x10FFFF are expressed in
425 UTF-16 format using a pair of UTF16Chars - one in the
426 high surrogate range (0xD800-0xDBFF) followed by one in
427 the low surrogate range (0xDC00-0xDFFF). All of the
428 characters defined in Unicode versions through 3.0 are
429 in the range 0-0xFFFF and can be expressed using a single
430 UTF16Char, thus the term "Unicode character" generally
431 refers to a UniChar = UTF16Char.
432
433 UTF8Char An 8-bit code value in UTF-8 format. UnicodeScalarValues
434 0-0x7F are expressed in UTF-8 format using one UTF8Char
435 with the same value. UnicodeScalarValues above 0x7F are
436 expressed in UTF-8 format using 2-4 UTF8Chars, all with
437 values in the range 0x80-0xF4 (UnicodeScalarValues
438 0x100-0xFFFF use two or three UTF8Chars,
439 UnicodeScalarValues 0x10000-0x10FFFF use four UTF8Chars).
440
441 UniCharCount A count of UTF-16 code values in an array or buffer.
442
443 StrNNN Pascal string holding up to NNN bytes
444 StringPtr Pointer to a pascal string
445 StringHandle Pointer to a StringPtr
446 ConstStringPtr Pointer to a read-only pascal string
447 ConstStrNNNParam For function parameters only - means string is const
448
449 CStringPtr Pointer to a C string (in C: char*)
450 ConstCStringPtr Pointer to a read-only C string (in C: const char*)
451
452 Note: The length of a pascal string is stored as the first byte.
453 A pascal string does not have a termination byte.
454 A pascal string can hold at most 255 bytes of data.
455 The first character in a pascal string is offset one byte from the start of the string.
456
457 A C string is terminated with a byte of value zero.
458 A C string has no length limitation.
459 The first character in a C string is the zeroth byte of the string.
460
461
462*********************************************************************************/
463typedef UInt32 UnicodeScalarValue;
464typedef UInt32 UTF32Char;
465typedef UInt16 UniChar;
466typedef UInt16 UTF16Char;
467typedef UInt8 UTF8Char;
468typedef UniChar * UniCharPtr;
469typedef unsigned long UniCharCount;
470typedef UniCharCount * UniCharCountPtr;
471typedef unsigned char Str255[256];
472typedef unsigned char Str63[64];
473typedef unsigned char Str32[33];
474typedef unsigned char Str31[32];
475typedef unsigned char Str27[28];
476typedef unsigned char Str15[16];
477/*
478 The type Str32 is used in many AppleTalk based data structures.
479 It holds up to 32 one byte chars. The problem is that with the
480 length byte it is 33 bytes long. This can cause weird alignment
481 problems in structures. To fix this the type "Str32Field" has
482 been created. It should only be used to hold 32 chars, but
483 it is 34 bytes long so that there are no alignment problems.
484*/
485typedef unsigned char Str32Field[34];
486/*
487 QuickTime 3.0:
488 The type StrFileName is used to make MacOS structs work
489 cross-platform. For example FSSpec or SFReply previously
490 contained a Str63 field. They now contain a StrFileName
491 field which is the same when targeting the MacOS but is
492 a 256 char buffer for Win32 and unix, allowing them to
493 contain long file names.
494*/
495typedef Str63 StrFileName;
496typedef unsigned char * StringPtr;
497typedef StringPtr * StringHandle;
498typedef const unsigned char * ConstStringPtr;
499typedef const unsigned char * ConstStr255Param;
500typedef const unsigned char * ConstStr63Param;
501typedef const unsigned char * ConstStr32Param;
502typedef const unsigned char * ConstStr31Param;
503typedef const unsigned char * ConstStr27Param;
504typedef const unsigned char * ConstStr15Param;
505typedef ConstStr63Param ConstStrFileNameParam;
506#ifdef __cplusplus
507inline unsigned char StrLength(ConstStr255Param string) { return (*string); }
508#else
509#define StrLength(string) (*(const unsigned char *)(string))
510#endif /* defined(__cplusplus) */
511
512#if OLDROUTINENAMES
513#define Length(string) StrLength(string)
514#endif /* OLDROUTINENAMES */
515
516/********************************************************************************
517
518 Process Manager type ProcessSerialNumber (previously in Processes.h)
519
520*********************************************************************************/
521/* type for unique process identifier */
522struct ProcessSerialNumber {
523 UInt32 highLongOfPSN;
524 UInt32 lowLongOfPSN;
525};
526typedef struct ProcessSerialNumber ProcessSerialNumber;
527typedef ProcessSerialNumber * ProcessSerialNumberPtr;
528/********************************************************************************
529
530 Quickdraw Types
531
532 Point 2D Quickdraw coordinate, range: -32K to +32K
533 Rect Rectangular Quickdraw area
534 Style Quickdraw font rendering styles
535 StyleParameter Style when used as a parameter (historical 68K convention)
536 StyleField Style when used as a field (historical 68K convention)
537 CharParameter Char when used as a parameter (historical 68K convention)
538
539 Note: The original Macintosh toolbox in 68K Pascal defined Style as a SET.
540 Both Style and CHAR occupy 8-bits in packed records or 16-bits when
541 used as fields in non-packed records or as parameters.
542
543*********************************************************************************/
544struct Point {
545 short v;
546 short h;
547};
548typedef struct Point Point;
549typedef Point * PointPtr;
550struct Rect {
551 short top;
552 short left;
553 short bottom;
554 short right;
555};
556typedef struct Rect Rect;
557typedef Rect * RectPtr;
558struct FixedPoint {
559 Fixed x;
560 Fixed y;
561};
562typedef struct FixedPoint FixedPoint;
563struct FixedRect {
564 Fixed left;
565 Fixed top;
566 Fixed right;
567 Fixed bottom;
568};
569typedef struct FixedRect FixedRect;
570
571typedef short CharParameter;
572enum {
573 normal = 0,
574 bold = 1,
575 italic = 2,
576 underline = 4,
577 outline = 8,
578 shadow = 0x10,
579 condense = 0x20,
580 extend = 0x40
581};
582
583typedef unsigned char Style;
584typedef short StyleParameter;
585typedef Style StyleField;
586
587
588/********************************************************************************
589
590 QuickTime TimeBase types (previously in Movies.h)
591
592 TimeValue Count of units
593 TimeScale Units per second
594 CompTimeValue 64-bit count of units (always a struct)
595 TimeValue64 64-bit count of units (long long or struct)
596 TimeBase An opaque reference to a time base
597 TimeRecord Package of TimeBase, duration, and scale
598
599*********************************************************************************/
600typedef SInt32 TimeValue;
601typedef SInt32 TimeScale;
602typedef wide CompTimeValue;
603typedef SInt64 TimeValue64;
604typedef struct TimeBaseRecord* TimeBase;
605struct TimeRecord {
606 CompTimeValue value; /* units (duration or absolute) */
607 TimeScale scale; /* units per second */
608 TimeBase base; /* refernce to the time base */
609};
610typedef struct TimeRecord TimeRecord;
611
612/********************************************************************************
613
614 THINK C base objects
615
616 HandleObject Root class for handle based THINK C++ objects
617 PascalObject Root class for pascal style objects in THINK C++
618
619*********************************************************************************/
620#if defined(__SC__) && !defined(__STDC__) && defined(__cplusplus)
621 class __machdl HandleObject {};
622 #if TARGET_CPU_68K
623 class __pasobj PascalObject {};
624 #endif
625#endif
626
627
628/********************************************************************************
629
630 MacOS versioning structures
631
632 VersRec Contents of a 'vers' resource
633 VersRecPtr Pointer to a VersRecPtr
634 VersRecHndl Resource Handle containing a VersRec
635 NumVersion Packed BCD version representation (e.g. "4.2.1a3" is 0x04214003)
636 UniversalProcPtr Pointer to classic 68K code or a RoutineDescriptor
637
638 ProcHandle Pointer to a ProcPtr
639 UniversalProcHandle Pointer to a UniversalProcPtr
640
641*********************************************************************************/
642#if TARGET_RT_BIG_ENDIAN
643struct NumVersion {
644 /* Numeric version part of 'vers' resource */
645 UInt8 majorRev; /*1st part of version number in BCD*/
646 UInt8 minorAndBugRev; /*2nd & 3rd part of version number share a byte*/
647 UInt8 stage; /*stage code: dev, alpha, beta, final*/
648 UInt8 nonRelRev; /*revision level of non-released version*/
649};
650typedef struct NumVersion NumVersion;
651#else
652struct NumVersion {
653 /* Numeric version part of 'vers' resource accessable in little endian format */
654 UInt8 nonRelRev; /*revision level of non-released version*/
655 UInt8 stage; /*stage code: dev, alpha, beta, final*/
656 UInt8 minorAndBugRev; /*2nd & 3rd part of version number share a byte*/
657 UInt8 majorRev; /*1st part of version number in BCD*/
658};
659typedef struct NumVersion NumVersion;
660#endif /* TARGET_RT_BIG_ENDIAN */
661
662enum {
663 /* Version Release Stage Codes */
664 developStage = 0x20,
665 alphaStage = 0x40,
666 betaStage = 0x60,
667 finalStage = 0x80
668};
669
670union NumVersionVariant {
671 /* NumVersionVariant is a wrapper so NumVersion can be accessed as a 32-bit value */
672 NumVersion parts;
673 UInt32 whole;
674};
675typedef union NumVersionVariant NumVersionVariant;
676typedef NumVersionVariant * NumVersionVariantPtr;
677typedef NumVersionVariantPtr * NumVersionVariantHandle;
678struct VersRec {
679 /* 'vers' resource format */
680 NumVersion numericVersion; /*encoded version number*/
681 short countryCode; /*country code from intl utilities*/
682 Str255 shortVersion; /*version number string - worst case*/
683 Str255 reserved; /*longMessage string packed after shortVersion*/
684};
685typedef struct VersRec VersRec;
686typedef VersRec * VersRecPtr;
687typedef VersRecPtr * VersRecHndl;
688/*********************************************************************************
689
690 Old names for types
691
692*********************************************************************************/
693typedef UInt8 Byte;
694typedef SInt8 SignedByte;
695typedef wide * WidePtr;
696typedef UnsignedWide * UnsignedWidePtr;
697typedef Float80 extended80;
698typedef Float96 extended96;
699typedef SInt8 VHSelect;
700
701#if !0
702/*********************************************************************************
703
704 Debugger functions
705
706*********************************************************************************/
707/*
708 * Debugger()
709 *
710 * Availability:
711 * Mac OS X: in version 10.0 and later in CoreServices.framework
712 * CarbonLib: in CarbonLib 1.0 and later
713 * Non-Carbon CFM: in InterfaceLib 7.1 and later
714 */
715extern void
716Debugger(void) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);
717
718
719/*
720 * DebugStr()
721 *
722 * Availability:
723 * Mac OS X: in version 10.0 and later in CoreServices.framework
724 * CarbonLib: in CarbonLib 1.0 and later
725 * Non-Carbon CFM: in InterfaceLib 7.1 and later
726 */
727extern void
728DebugStr(ConstStr255Param debuggerMsg) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);
729#endif
730
731/*
732 * debugstr()
733 *
734 * Availability:
735 * Mac OS X: not available
736 * CarbonLib: not available
737 * Non-Carbon CFM: in InterfaceLib 7.1 and later
738 */
739
740
741#if TARGET_CPU_PPC
742/* Only for Mac OS native drivers */
743/*
744 * SysDebug()
745 *
746 * Availability:
747 * Mac OS X: not available
748 * CarbonLib: not available
749 * Non-Carbon CFM: in DriverServicesLib 1.0 and later
750 */
751
752
753/*
754 * SysDebugStr()
755 *
756 * Availability:
757 * Mac OS X: not available
758 * CarbonLib: not available
759 * Non-Carbon CFM: in DriverServicesLib 1.0 and later
760 */
761
762
763#endif /* TARGET_CPU_PPC */
764
765/* SADE break points */
766/*
767 * SysBreak()
768 *
769 * Availability:
770 * Mac OS X: in version 10.0 and later in CoreServices.framework
771 * CarbonLib: in CarbonLib 1.0 and later
772 * Non-Carbon CFM: in InterfaceLib 7.1 and later
773 */
774extern void
775SysBreak(void) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);
776
777
778/*
779 * SysBreakStr()
780 *
781 * Availability:
782 * Mac OS X: in version 10.0 and later in CoreServices.framework
783 * CarbonLib: in CarbonLib 1.0 and later
784 * Non-Carbon CFM: in InterfaceLib 7.1 and later
785 */
786extern void
787SysBreakStr(ConstStr255Param debuggerMsg) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);
788
789
790/*
791 * SysBreakFunc()
792 *
793 * Availability:
794 * Mac OS X: in version 10.0 and later in CoreServices.framework
795 * CarbonLib: in CarbonLib 1.0 and later
796 * Non-Carbon CFM: in InterfaceLib 7.1 and later
797 */
798extern void
799SysBreakFunc(ConstStr255Param debuggerMsg) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);
800
801
802/* old names for Debugger and DebugStr */
803#if OLDROUTINENAMES && TARGET_CPU_68K
804 #define Debugger68k() Debugger()
805 #define DebugStr68k(s) DebugStr(s)
806#endif
807
808
809#pragma pack(pop)
810
811#ifdef __cplusplus
812}
813#endif
814
815#endif /* __MACTYPES__ */
816