mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-07 17:29:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,775 @@
|
||||
/*
|
||||
File: OSUtils.h
|
||||
|
||||
Contains: OS Utilities Interfaces.
|
||||
|
||||
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 __OSUTILS__
|
||||
#define __OSUTILS__
|
||||
|
||||
#ifndef __MACTYPES__
|
||||
#include <MacTypes.h>
|
||||
#endif
|
||||
|
||||
#ifndef __MIXEDMODE__
|
||||
#include <MixedMode.h>
|
||||
#endif
|
||||
|
||||
/* HandToHand and other memory utilties were moved to MacMemory.h */
|
||||
#ifndef __MACMEMORY__
|
||||
#include <MacMemory.h>
|
||||
#endif
|
||||
|
||||
/* GetTrapAddress and other trap table utilties were moved to Patches.h */
|
||||
#ifndef __PATCHES__
|
||||
#include <Patches.h>
|
||||
#endif
|
||||
|
||||
/* Date and Time utilties were moved to DateTimeUtils.h */
|
||||
#ifndef __DATETIMEUTILS__
|
||||
#include <DateTimeUtils.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CFSTRING__
|
||||
#include <CFString.h>
|
||||
#endif
|
||||
|
||||
#if !TARGET_OS_MAC
|
||||
#ifndef __ENDIAN__
|
||||
#include <Endian.h>
|
||||
#endif
|
||||
|
||||
#endif /* !TARGET_OS_MAC */
|
||||
|
||||
|
||||
|
||||
#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
|
||||
|
||||
enum {
|
||||
useFree = 0,
|
||||
useATalk = 1,
|
||||
useAsync = 2,
|
||||
useExtClk = 3, /*Externally clocked*/
|
||||
useMIDI = 4
|
||||
};
|
||||
|
||||
enum {
|
||||
false32b = 0, /*24 bit addressing error*/
|
||||
true32b = 1 /*32 bit addressing error*/
|
||||
};
|
||||
|
||||
enum {
|
||||
/* result types for RelString Call */
|
||||
sortsBefore = -1, /*first string < second string*/
|
||||
sortsEqual = 0, /*first string = second string*/
|
||||
sortsAfter = 1 /*first string > second string*/
|
||||
};
|
||||
|
||||
enum {
|
||||
dummyType = 0,
|
||||
vType = 1,
|
||||
ioQType = 2,
|
||||
drvQType = 3,
|
||||
evType = 4,
|
||||
fsQType = 5,
|
||||
sIQType = 6,
|
||||
dtQType = 7,
|
||||
nmType = 8
|
||||
};
|
||||
|
||||
typedef SignedByte QTypes;
|
||||
struct SysParmType {
|
||||
UInt8 valid;
|
||||
UInt8 aTalkA;
|
||||
UInt8 aTalkB;
|
||||
UInt8 config;
|
||||
short portA;
|
||||
short portB;
|
||||
long alarm;
|
||||
short font;
|
||||
short kbdPrint;
|
||||
short volClik;
|
||||
short misc;
|
||||
};
|
||||
typedef struct SysParmType SysParmType;
|
||||
typedef SysParmType * SysPPtr;
|
||||
struct QElem {
|
||||
struct QElem * qLink;
|
||||
short qType;
|
||||
short qData[1];
|
||||
};
|
||||
typedef struct QElem QElem;
|
||||
typedef QElem * QElemPtr;
|
||||
#if TARGET_OS_MAC
|
||||
struct QHdr {
|
||||
volatile short qFlags;
|
||||
volatile QElemPtr qHead;
|
||||
volatile QElemPtr qTail;
|
||||
};
|
||||
typedef struct QHdr QHdr;
|
||||
typedef QHdr * QHdrPtr;
|
||||
#else
|
||||
/*
|
||||
QuickTime 3.0
|
||||
this version of QHdr contains the Mutex necessary for
|
||||
non-mac non-interrupt code
|
||||
*/
|
||||
struct QHdr {
|
||||
volatile short qFlags;
|
||||
short pad;
|
||||
long MutexID;
|
||||
volatile QElemPtr qHead;
|
||||
volatile QElemPtr qTail;
|
||||
};
|
||||
typedef struct QHdr QHdr;
|
||||
typedef QHdr * QHdrPtr;
|
||||
#endif /* TARGET_OS_MAC */
|
||||
|
||||
typedef CALLBACK_API_REGISTER68K( void , DeferredTaskProcPtr, (long dtParam) );
|
||||
typedef REGISTER_UPP_TYPE(DeferredTaskProcPtr) DeferredTaskUPP;
|
||||
/*
|
||||
* NewDeferredTaskUPP()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: available as macro/inline
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( DeferredTaskUPP )
|
||||
NewDeferredTaskUPP(DeferredTaskProcPtr userRoutine);
|
||||
#if !OPAQUE_UPP_TYPES
|
||||
enum { uppDeferredTaskProcInfo = 0x0000B802 }; /* register no_return_value Func(4_bytes:A1) */
|
||||
#ifdef __cplusplus
|
||||
inline DEFINE_API_C(DeferredTaskUPP) NewDeferredTaskUPP(DeferredTaskProcPtr userRoutine) { return (DeferredTaskUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDeferredTaskProcInfo, GetCurrentArchitecture()); }
|
||||
#else
|
||||
#define NewDeferredTaskUPP(userRoutine) (DeferredTaskUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDeferredTaskProcInfo, GetCurrentArchitecture())
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* DisposeDeferredTaskUPP()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: available as macro/inline
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( void )
|
||||
DisposeDeferredTaskUPP(DeferredTaskUPP userUPP);
|
||||
#if !OPAQUE_UPP_TYPES
|
||||
#ifdef __cplusplus
|
||||
inline DEFINE_API_C(void) DisposeDeferredTaskUPP(DeferredTaskUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
|
||||
#else
|
||||
#define DisposeDeferredTaskUPP(userUPP) DisposeRoutineDescriptor(userUPP)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* InvokeDeferredTaskUPP()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: available as macro/inline
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter InvokeDeferredTaskUPP(__A1, __A0)
|
||||
#endif
|
||||
EXTERN_API_C( void )
|
||||
InvokeDeferredTaskUPP(
|
||||
long dtParam,
|
||||
DeferredTaskUPP userUPP) ONEWORDINLINE(0x4E90);
|
||||
#if !OPAQUE_UPP_TYPES && (!TARGET_OS_MAC || !TARGET_CPU_68K || TARGET_RT_MAC_CFM)
|
||||
#ifdef __cplusplus
|
||||
inline DEFINE_API_C(void) InvokeDeferredTaskUPP(long dtParam, DeferredTaskUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppDeferredTaskProcInfo, dtParam); }
|
||||
#else
|
||||
#define InvokeDeferredTaskUPP(dtParam, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppDeferredTaskProcInfo, (dtParam))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
|
||||
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
|
||||
#define NewDeferredTaskProc(userRoutine) NewDeferredTaskUPP(userRoutine)
|
||||
#define CallDeferredTaskProc(userRoutine, dtParam) InvokeDeferredTaskUPP(dtParam, userRoutine)
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
struct DeferredTask {
|
||||
volatile QElemPtr qLink;
|
||||
short qType;
|
||||
volatile short dtFlags;
|
||||
DeferredTaskUPP dtAddr;
|
||||
long dtParam;
|
||||
long dtReserved;
|
||||
};
|
||||
typedef struct DeferredTask DeferredTask;
|
||||
typedef DeferredTask * DeferredTaskPtr;
|
||||
/*
|
||||
In order for MachineLocation to be endian-safe, a new member
|
||||
has been added to the 'u' union in the structure. You are
|
||||
encouraged to use the new member instead of the old one.
|
||||
|
||||
If your code looked like this:
|
||||
|
||||
MachineLocation.u.dlsDelta = 1;
|
||||
|
||||
you should change it to this:
|
||||
|
||||
MachineLocation.u.dls.Delta = 1;
|
||||
|
||||
to be endian safe. The gmtDelta remains the same; the low 24-bits
|
||||
are used. Remember that order of assignment DOES matter:
|
||||
|
||||
This will overwrite results:
|
||||
|
||||
MachineLocation.u.dls.Delta = 0xAA; // u = 0xAAGGGGGG; G=Garbage
|
||||
MachineLocation.u.gmtDelta = 0xBBBBBB; // u = 0x00BBBBBB;
|
||||
|
||||
when in fact reversing the assignment would have preserved the values:
|
||||
|
||||
MachineLocation.u.gmtDelta = 0xBBBBBB; // u = 0x00BBBBBB;
|
||||
MachineLocation.u.dls.Delta = 0xAA; // u = 0xAABBBBBB;
|
||||
*/
|
||||
#if TARGET_OS_MAC
|
||||
struct MachineLocation {
|
||||
Fract latitude;
|
||||
Fract longitude;
|
||||
union {
|
||||
#if TARGET_RT_BIG_ENDIAN
|
||||
SInt8 dlsDelta;
|
||||
#endif
|
||||
long gmtDelta; /* use low 24-bits only */
|
||||
struct {
|
||||
#if TARGET_RT_LITTLE_ENDIAN
|
||||
SInt8 pad[3];
|
||||
#endif
|
||||
SInt8 Delta; /* signed byte; daylight savings delta */
|
||||
} dls;
|
||||
} u;
|
||||
};
|
||||
typedef struct MachineLocation MachineLocation;
|
||||
#else
|
||||
/*
|
||||
QuickTime 3.0:
|
||||
Alignment of MachineLocation is weird. The union above used for delta
|
||||
tends not to work on non-Mac compilers.
|
||||
*/
|
||||
struct MachineLocation {
|
||||
Fract latitude;
|
||||
Fract longitude;
|
||||
BigEndianLong delta; /* high byte is daylight savings delta, low 24-bits is GMT delta */
|
||||
};
|
||||
typedef struct MachineLocation MachineLocation;
|
||||
#endif /* TARGET_OS_MAC */
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* IsMetric()
|
||||
*
|
||||
* 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( Boolean )
|
||||
IsMetric(void) THREEWORDINLINE(0x3F3C, 0x0004, 0xA9ED);
|
||||
|
||||
|
||||
/*
|
||||
* GetSysPPtr()
|
||||
*
|
||||
* 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( SysPPtr )
|
||||
GetSysPPtr(void) THREEWORDINLINE(0x2EBC, 0x0000, 0x01F8);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
NOTE: SysBeep() has been moved to Sound.h.
|
||||
We could not automatically #include Sound.h in this file
|
||||
because Sound.h indirectly #include's OSUtils.h which
|
||||
would make a circular include.
|
||||
*/
|
||||
/*
|
||||
* DTInstall()
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter __D0 DTInstall(__A0)
|
||||
#endif
|
||||
EXTERN_API( OSErr )
|
||||
DTInstall(DeferredTaskPtr dtTaskPtr) ONEWORDINLINE(0xA082);
|
||||
|
||||
|
||||
|
||||
|
||||
#if TARGET_CPU_PPC || !TARGET_OS_MAC
|
||||
#define GetMMUMode() ((SInt8)true32b)
|
||||
#define SwapMMUMode(x) (*(SInt8*)(x) = true32b)
|
||||
#else
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* GetMMUMode()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API( SInt8 )
|
||||
GetMMUMode(void) TWOWORDINLINE(0x1EB8, 0x0CB2);
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* SwapMMUMode()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter SwapMMUMode(__A0)
|
||||
#endif
|
||||
EXTERN_API( void )
|
||||
SwapMMUMode(SInt8 * mode) THREEWORDINLINE(0x1010, 0xA05D, 0x1080);
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
#endif
|
||||
/*
|
||||
* Delay()
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter Delay(__A0, __A1)
|
||||
#endif
|
||||
EXTERN_API( void )
|
||||
Delay(
|
||||
unsigned long numTicks,
|
||||
unsigned long * finalTicks) TWOWORDINLINE(0xA03B, 0x2280);
|
||||
|
||||
|
||||
/*
|
||||
* WriteParam()
|
||||
*
|
||||
* 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( OSErr )
|
||||
WriteParam(void);
|
||||
|
||||
|
||||
/*
|
||||
* Enqueue()
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter Enqueue(__A0, __A1)
|
||||
#endif
|
||||
EXTERN_API( void )
|
||||
Enqueue(
|
||||
QElemPtr qElement,
|
||||
QHdrPtr qHeader) ONEWORDINLINE(0xA96F);
|
||||
|
||||
|
||||
/*
|
||||
* Dequeue()
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter __D0 Dequeue(__A0, __A1)
|
||||
#endif
|
||||
EXTERN_API( OSErr )
|
||||
Dequeue(
|
||||
QElemPtr qElement,
|
||||
QHdrPtr qHeader) ONEWORDINLINE(0xA96E);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* SetCurrentA5()
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter __D0 SetCurrentA5
|
||||
#endif
|
||||
EXTERN_API( long )
|
||||
SetCurrentA5(void) THREEWORDINLINE(0x200D, 0x2A78, 0x0904);
|
||||
|
||||
|
||||
/*
|
||||
* SetA5()
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter __D0 SetA5(__D0)
|
||||
#endif
|
||||
EXTERN_API( long )
|
||||
SetA5(long newA5) ONEWORDINLINE(0xC18D);
|
||||
|
||||
|
||||
/*
|
||||
* InitUtil()
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter __D0 InitUtil
|
||||
#endif
|
||||
EXTERN_API( OSErr )
|
||||
InitUtil(void) ONEWORDINLINE(0xA03F);
|
||||
|
||||
|
||||
|
||||
#if !TARGET_CPU_68K
|
||||
/*
|
||||
* MakeDataExecutable()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.5 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API( void )
|
||||
MakeDataExecutable(
|
||||
void * baseAddress,
|
||||
unsigned long length);
|
||||
|
||||
|
||||
#endif /* !TARGET_CPU_68K */
|
||||
|
||||
|
||||
#if TARGET_CPU_68K
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* SwapInstructionCache()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API( Boolean )
|
||||
SwapInstructionCache(Boolean cacheEnable);
|
||||
|
||||
|
||||
/*
|
||||
* SwapDataCache()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API( Boolean )
|
||||
SwapDataCache(Boolean cacheEnable);
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* FlushInstructionCache()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API( void )
|
||||
FlushInstructionCache(void) TWOWORDINLINE(0x7001, 0xA098);
|
||||
|
||||
|
||||
/*
|
||||
* FlushDataCache()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API( void )
|
||||
FlushDataCache(void) TWOWORDINLINE(0x7003, 0xA098);
|
||||
|
||||
|
||||
/*
|
||||
* FlushCodeCache()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API( void )
|
||||
FlushCodeCache(void) ONEWORDINLINE(0xA0BD);
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
#endif /* TARGET_CPU_68K */
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* FlushCodeCacheRange()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 8.5 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter __D0 FlushCodeCacheRange(__A0, __A1)
|
||||
#endif
|
||||
EXTERN_API( OSErr )
|
||||
FlushCodeCacheRange(
|
||||
void * address,
|
||||
unsigned long count) TWOWORDINLINE(0x7009, 0xA098);
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
/*
|
||||
* ReadLocation()
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter ReadLocation(__A0)
|
||||
#endif
|
||||
EXTERN_API( void )
|
||||
ReadLocation(MachineLocation * loc) FOURWORDINLINE(0x203C, 0x000C, 0x00E4, 0xA051);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* WriteLocation()
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter WriteLocation(__A0)
|
||||
#endif
|
||||
EXTERN_API( void )
|
||||
WriteLocation(const MachineLocation * loc) FOURWORDINLINE(0x203C, 0x000C, 0x00E4, 0xA052);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* TickCount()
|
||||
*
|
||||
* 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( UInt32 )
|
||||
TickCount(void) ONEWORDINLINE(0xA975);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* CSCopyUserName()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: in CarbonLib 1.5 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( CFStringRef )
|
||||
CSCopyUserName(Boolean useShortName);
|
||||
|
||||
|
||||
/*
|
||||
* CSCopyMachineName()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: in CarbonLib 1.5 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( CFStringRef )
|
||||
CSCopyMachineName(void);
|
||||
|
||||
|
||||
|
||||
#if OLDROUTINENAMES
|
||||
#define IUMetric() IsMetric()
|
||||
#endif /* OLDROUTINENAMES */
|
||||
|
||||
/*
|
||||
NOTE: SysEnvirons is obsolete. You should be using Gestalt.
|
||||
*/
|
||||
/* Environs Equates */
|
||||
enum {
|
||||
curSysEnvVers = 2 /*Updated to equal latest SysEnvirons version*/
|
||||
};
|
||||
|
||||
struct SysEnvRec {
|
||||
short environsVersion;
|
||||
short machineType;
|
||||
short systemVersion;
|
||||
short processor;
|
||||
Boolean hasFPU;
|
||||
Boolean hasColorQD;
|
||||
short keyBoardType;
|
||||
short atDrvrVersNum;
|
||||
short sysVRefNum;
|
||||
};
|
||||
typedef struct SysEnvRec SysEnvRec;
|
||||
enum {
|
||||
/* Machine Types */
|
||||
envMac = -1,
|
||||
envXL = -2,
|
||||
envMachUnknown = 0,
|
||||
env512KE = 1,
|
||||
envMacPlus = 2,
|
||||
envSE = 3,
|
||||
envMacII = 4,
|
||||
envMacIIx = 5,
|
||||
envMacIIcx = 6,
|
||||
envSE30 = 7,
|
||||
envPortable = 8,
|
||||
envMacIIci = 9,
|
||||
envMacIIfx = 11
|
||||
};
|
||||
|
||||
enum {
|
||||
/* CPU types */
|
||||
envCPUUnknown = 0,
|
||||
env68000 = 1,
|
||||
env68010 = 2,
|
||||
env68020 = 3,
|
||||
env68030 = 4,
|
||||
env68040 = 5
|
||||
};
|
||||
|
||||
enum {
|
||||
/* Keyboard types */
|
||||
envUnknownKbd = 0,
|
||||
envMacKbd = 1,
|
||||
envMacAndPad = 2,
|
||||
envMacPlusKbd = 3,
|
||||
envAExtendKbd = 4,
|
||||
envStandADBKbd = 5,
|
||||
envPrtblADBKbd = 6,
|
||||
envPrtblISOKbd = 7,
|
||||
envStdISOADBKbd = 8,
|
||||
envExtISOADBKbd = 9
|
||||
};
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* SysEnvirons()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter __D0 SysEnvirons(__D0, __A0)
|
||||
#endif
|
||||
EXTERN_API( OSErr )
|
||||
SysEnvirons(
|
||||
short versionRequested,
|
||||
SysEnvRec * theWorld) ONEWORDINLINE(0xA090);
|
||||
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
|
||||
|
||||
|
||||
#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 /* __OSUTILS__ */
|
||||
|
||||
Reference in New Issue
Block a user