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