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,582 @@
|
||||
/*
|
||||
File: MultiprocessingInfo.h
|
||||
|
||||
Contains: Multiprocessing Information interfaces
|
||||
|
||||
Version: QuickTime 7.3
|
||||
|
||||
Copyright: (c) 2007 (c) 1996-2001 by Apple Computer, Inc. and (c) 1995-1997 DayStar Digital, Inc.
|
||||
|
||||
Bugs?: For bug reports, consult the following page on
|
||||
the World Wide Web:
|
||||
|
||||
http://developer.apple.com/bugreporter/
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
==========================================================================================================================
|
||||
*** WARNING: You must properly check the availability of MP services before calling them!
|
||||
See the section titled "Checking API Availability".
|
||||
==========================================================================================================================
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __MULTIPROCESSINGINFO__
|
||||
#define __MULTIPROCESSINGINFO__
|
||||
|
||||
#ifndef __MACTYPES__
|
||||
#include <MacTypes.h>
|
||||
#endif
|
||||
|
||||
#ifndef __MULTIPROCESSING__
|
||||
#include <Multiprocessing.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=power
|
||||
#elif PRAGMA_STRUCT_PACKPUSH
|
||||
#pragma pack(push, 2)
|
||||
#elif PRAGMA_STRUCT_PACK
|
||||
#pragma pack(2)
|
||||
#endif
|
||||
|
||||
/*
|
||||
==========================================================================================================================
|
||||
This is the header file for version 2.3 of the Mac OS multiprocessing information support.
|
||||
==========================================================================================================================
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
==========================================================================================================================
|
||||
The following services are new in version 2.1:
|
||||
MPGetNextTaskID
|
||||
MPGetNextCpuID
|
||||
==========================================================================================================================
|
||||
*/
|
||||
|
||||
/*
|
||||
==========================================================================================================================
|
||||
The following services are new in version 2.2:
|
||||
MPGetPageSizeClasses
|
||||
MPGetPageSize
|
||||
MPGetNextAreaID
|
||||
==========================================================================================================================
|
||||
*/
|
||||
|
||||
/*
|
||||
==========================================================================================================================
|
||||
The following services are new in version 2.3:
|
||||
MPGetNextCoherenceID
|
||||
MPGetNextProcessID
|
||||
MPGetNextAddressSpaceID
|
||||
MPGetNextQueueID
|
||||
MPGetNextSemaphoreID
|
||||
MPGetNextCriticalRegionID
|
||||
MPGetNextTimerID
|
||||
MPGetNextEventID
|
||||
MPGetNextNotificationID
|
||||
MPGetNextConsoleID
|
||||
==========================================================================================================================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
.
|
||||
==========================================================================================================================
|
||||
Page size Services
|
||||
==================
|
||||
*/
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* MPGetPageSizeClasses()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( MPPageSizeClass )
|
||||
MPGetPageSizeClasses(void);
|
||||
|
||||
|
||||
/* The number of page size classes, 1 to n.*/
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
/* -------------------------------------------------------------------------------------------*/
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* MPGetPageSize()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( ByteCount )
|
||||
MPGetPageSize(MPPageSizeClass pageClass);
|
||||
|
||||
|
||||
/* The page size in bytes.*/
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
|
||||
/*
|
||||
.
|
||||
==========================================================================================================================
|
||||
ID Iterator Services
|
||||
==========================
|
||||
*/
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* MPGetNextCoherenceID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextCoherenceID(MPCoherenceID * coherenceID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextCpuID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextCpuID(
|
||||
MPCoherenceID owningCoherenceID,
|
||||
MPCpuID * cpuID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextProcessID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextProcessID(MPProcessID * processID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextAddressSpaceID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextAddressSpaceID(
|
||||
MPProcessID owningProcessID,
|
||||
MPAddressSpaceID * addressSpaceID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextTaskID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextTaskID(
|
||||
MPProcessID owningProcessID,
|
||||
MPTaskID * taskID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextQueueID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextQueueID(
|
||||
MPProcessID owningProcessID,
|
||||
MPQueueID * queueID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextSemaphoreID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextSemaphoreID(
|
||||
MPProcessID owningProcessID,
|
||||
MPSemaphoreID * semaphoreID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextCriticalRegionID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextCriticalRegionID(
|
||||
MPProcessID owningProcessID,
|
||||
MPCriticalRegionID * criticalRegionID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextTimerID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextTimerID(
|
||||
MPProcessID owningProcessID,
|
||||
MPTimerID * timerID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextEventID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextEventID(
|
||||
MPProcessID owningProcessID,
|
||||
MPEventID * eventID);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextNotificationID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextNotificationID(
|
||||
MPProcessID owningProcessID,
|
||||
MPNotificationID * notificationID);
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* MPGetNextAreaID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API( OSStatus )
|
||||
MPGetNextAreaID(
|
||||
MPAddressSpaceID owningSpaceID,
|
||||
MPAreaID * areaID);
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* MPGetNextConsoleID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextConsoleID(MPConsoleID * consoleID);
|
||||
|
||||
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNextID()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNextID(
|
||||
MPOpaqueIDClass kind,
|
||||
MPOpaqueID * id);
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
.
|
||||
==========================================================================================================================
|
||||
Object Information Services
|
||||
===========================
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
----------------------------------------------------------------------------------------------
|
||||
! The implementation of MPGetObjectInfo assumes that all info records are in 4 byte multiples.
|
||||
*/
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
enum {
|
||||
/* The version of the MPAreaInfo structure requested.*/
|
||||
kMPQueueInfoVersion = 1L | (kOpaqueQueueID << 16),
|
||||
kMPSemaphoreInfoVersion = 1L | (kOpaqueSemaphoreID << 16),
|
||||
kMPEventInfoVersion = 1L | (kOpaqueEventID << 16),
|
||||
kMPCriticalRegionInfoVersion = 1L | (kOpaqueCriticalRegionID << 16),
|
||||
kMPNotificationInfoVersion = 1L | (kOpaqueNotificationID << 16),
|
||||
kMPAddressSpaceInfoVersion = 1L | (kOpaqueAddressSpaceID << 16)
|
||||
};
|
||||
|
||||
|
||||
struct MPQueueInfo {
|
||||
PBVersion version; /* Version of the data structure requested*/
|
||||
|
||||
MPProcessID processID; /* Owning process ID*/
|
||||
OSType queueName; /* Queue name*/
|
||||
|
||||
ItemCount nWaiting;
|
||||
MPTaskID waitingTaskID; /* First waiting task.*/
|
||||
|
||||
ItemCount nMessages;
|
||||
ItemCount nReserved;
|
||||
|
||||
void * p1; /* First message parameters...*/
|
||||
void * p2;
|
||||
void * p3;
|
||||
};
|
||||
typedef struct MPQueueInfo MPQueueInfo;
|
||||
struct MPSemaphoreInfo {
|
||||
PBVersion version; /* Version of the data structure requested*/
|
||||
|
||||
MPProcessID processID; /* Owning process ID*/
|
||||
OSType semaphoreName; /* Semaphore name*/
|
||||
|
||||
ItemCount nWaiting;
|
||||
MPTaskID waitingTaskID; /* First waiting task.*/
|
||||
|
||||
ItemCount maximum;
|
||||
ItemCount count;
|
||||
};
|
||||
typedef struct MPSemaphoreInfo MPSemaphoreInfo;
|
||||
struct MPEventInfo {
|
||||
PBVersion version; /* Version of the data structure requested*/
|
||||
|
||||
MPProcessID processID; /* Owning process ID*/
|
||||
OSType eventName; /* Event name*/
|
||||
|
||||
ItemCount nWaiting;
|
||||
MPTaskID waitingTaskID; /* First waiting task.*/
|
||||
|
||||
MPEventFlags events;
|
||||
};
|
||||
typedef struct MPEventInfo MPEventInfo;
|
||||
struct MPCriticalRegionInfo {
|
||||
PBVersion version; /* Version of the data structure requested*/
|
||||
|
||||
MPProcessID processID; /* Owning process ID*/
|
||||
OSType regionName; /* Critical region name*/
|
||||
|
||||
ItemCount nWaiting;
|
||||
MPTaskID waitingTaskID; /* First waiting task.*/
|
||||
|
||||
MPTaskID owningTask;
|
||||
ItemCount count;
|
||||
};
|
||||
typedef struct MPCriticalRegionInfo MPCriticalRegionInfo;
|
||||
struct MPNotificationInfo {
|
||||
PBVersion version; /* Version of the data structure requested*/
|
||||
|
||||
MPProcessID processID; /* Owning process ID*/
|
||||
OSType notificationName; /* Notification name*/
|
||||
|
||||
MPQueueID queueID; /* Queue to notify.*/
|
||||
void * p1;
|
||||
void * p2;
|
||||
void * p3;
|
||||
|
||||
MPEventID eventID; /* Event to set.*/
|
||||
MPEventFlags events;
|
||||
|
||||
MPSemaphoreID semaphoreID; /* Sempahore to signal. */
|
||||
};
|
||||
typedef struct MPNotificationInfo MPNotificationInfo;
|
||||
struct MPAddressSpaceInfo {
|
||||
PBVersion version; /* Version of the data structure requested*/
|
||||
|
||||
MPProcessID processID; /* Owning process ID*/
|
||||
MPCoherenceID groupID; /* Related coherence group.*/
|
||||
ItemCount nTasks; /* Number of tasks in this space.*/
|
||||
UInt32 vsid[16]; /* Segment register VSIDs.*/
|
||||
};
|
||||
typedef struct MPAddressSpaceInfo MPAddressSpaceInfo;
|
||||
/* *** We should put the task info call here instead of in MPExtractTaskState.*/
|
||||
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* MPGetQueueInfo()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetQueueInfo(
|
||||
MPQueueID id,
|
||||
PBVersion version,
|
||||
MPQueueInfo * info_o);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetSemaphoreInfo()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetSemaphoreInfo(
|
||||
MPSemaphoreID id,
|
||||
PBVersion version,
|
||||
MPSemaphoreInfo * info_o);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetEventInfo()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetEventInfo(
|
||||
MPEventID id,
|
||||
PBVersion version,
|
||||
MPEventInfo * info_o);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetCriticalRegionInfo()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetCriticalRegionInfo(
|
||||
MPCriticalRegionID id,
|
||||
PBVersion version,
|
||||
MPCriticalRegionInfo * info_o);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetNotificationInfo()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetNotificationInfo(
|
||||
MPNotificationID id,
|
||||
PBVersion version,
|
||||
MPNotificationInfo * info_o);
|
||||
|
||||
|
||||
/*
|
||||
* MPGetAddressSpaceInfo()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in MPDiagnostics 2.3 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MPGetAddressSpaceInfo(
|
||||
MPAddressSpaceID id,
|
||||
PBVersion version,
|
||||
MPAddressSpaceInfo * info_o);
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================================================================*/
|
||||
|
||||
|
||||
|
||||
#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 /* __MULTIPROCESSINGINFO__ */
|
||||
|
||||
Reference in New Issue
Block a user