summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/MultiprocessingInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/MultiprocessingInfo.h')
-rw-r--r--common/quicktime_win32/MultiprocessingInfo.h582
1 files changed, 582 insertions, 0 deletions
diff --git a/common/quicktime_win32/MultiprocessingInfo.h b/common/quicktime_win32/MultiprocessingInfo.h
new file mode 100644
index 0000000..482fd59
--- /dev/null
+++ b/common/quicktime_win32/MultiprocessingInfo.h
@@ -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__ */
+