Mac OS 9
MultiprocessingInfo.h
Go to the documentation of this file.
1 
58 #ifndef __MULTIPROCESSINGINFO__
59 #define __MULTIPROCESSINGINFO__
60 
61 #ifndef __MACTYPES__
62 #include <MacTypes.h>
63 #endif
64 
65 #ifndef __MULTIPROCESSING__
66 #include <Multiprocessing.h>
67 #endif
68 
69 #if PRAGMA_ONCE
70 #pragma once
71 #endif
72 
73 #ifdef __cplusplus
74 extern "C"
75 {
76 #endif
77 
78 #if PRAGMA_IMPORT
79 #pragma import on
80 #endif
81 
82 #if PRAGMA_STRUCT_ALIGN
83 #pragma options align = power
84 #elif PRAGMA_STRUCT_PACKPUSH
85 #pragma pack(push, 2)
86 #elif PRAGMA_STRUCT_PACK
87 #pragma pack(2)
88 #endif
89 
94 #if CALL_NOT_IN_CARBON
104  MPPageSizeClass MPGetPageSizeClasses(void);
105 #endif /* CALL_NOT_IN_CARBON */
106 
107 #if CALL_NOT_IN_CARBON
116  ByteCount MPGetPageSize(MPPageSizeClass pageClass);
117 
118 #endif /* CALL_NOT_IN_CARBON */
119 
124 #if CALL_NOT_IN_CARBON
133  OSStatus MPGetNextCoherenceID(MPCoherenceID *coherenceID);
134 
143  OSStatus MPGetNextCpuID(MPCoherenceID owningCoherenceID, MPCpuID *cpuID);
144 
153  OSStatus MPGetNextProcessID(MPProcessID *processID);
154 
163  OSStatus MPGetNextAddressSpaceID(MPProcessID owningProcessID,
164  MPAddressSpaceID *addressSpaceID);
165 
174  OSStatus MPGetNextTaskID(MPProcessID owningProcessID, MPTaskID *taskID);
175 
184  OSStatus MPGetNextQueueID(MPProcessID owningProcessID, MPQueueID *queueID);
185 
194  OSStatus MPGetNextSemaphoreID(MPProcessID owningProcessID, MPSemaphoreID *semaphoreID);
195 
204  OSStatus MPGetNextCriticalRegionID(MPProcessID owningProcessID,
205  MPCriticalRegionID *criticalRegionID);
206 
215  OSStatus MPGetNextTimerID(MPProcessID owningProcessID, MPTimerID *timerID);
216 
225  OSStatus MPGetNextEventID(MPProcessID owningProcessID, MPEventID *eventID);
226 
234  OSStatus MPGetNextNotificationID(MPProcessID owningProcessID,
235  MPNotificationID *notificationID);
236 
237 #endif /* CALL_NOT_IN_CARBON */
238 
239 #if CALL_NOT_IN_CARBON
248  OSStatus
249  MPGetNextAreaID(MPAddressSpaceID owningSpaceID, MPAreaID *areaID);
250 
251 #endif /* CALL_NOT_IN_CARBON */
252 
253 #if CALL_NOT_IN_CARBON
262  OSStatus MPGetNextConsoleID(MPConsoleID *consoleID);
263 
272  OSStatus MPGetNextID(MPOpaqueIDClass kind, MPOpaqueID *id);
273 
279 #endif /* CALL_NOT_IN_CARBON */
280 
281  enum
282  {
283  /* The version of the MPAreaInfo structure requested.*/
284  kMPQueueInfoVersion = 1L | (kOpaqueQueueID << 16),
285  kMPSemaphoreInfoVersion = 1L | (kOpaqueSemaphoreID << 16),
286  kMPEventInfoVersion = 1L | (kOpaqueEventID << 16),
287  kMPCriticalRegionInfoVersion = 1L | (kOpaqueCriticalRegionID << 16),
288  kMPNotificationInfoVersion = 1L | (kOpaqueNotificationID << 16),
289  kMPAddressSpaceInfoVersion = 1L | (kOpaqueAddressSpaceID << 16)
290  };
291 
292  struct MPQueueInfo
293  {
294  PBVersion version; /* Version of the data structure requested*/
295 
296  MPProcessID processID; /* Owning process ID*/
297  OSType queueName; /* Queue name*/
298 
299  ItemCount nWaiting;
300  MPTaskID waitingTaskID; /* First waiting task.*/
301 
302  ItemCount nMessages;
303  ItemCount nReserved;
304 
305  void *p1; /*< First message parameters...*/
306  void *p2;
307  void *p3;
308  };
309  typedef struct MPQueueInfo MPQueueInfo;
311  {
312  PBVersion version; /*< Version of the data structure requested*/
313 
314  MPProcessID processID; /*< Owning process ID*/
315  OSType semaphoreName; /*< Semaphore name*/
316 
317  ItemCount nWaiting;
318  MPTaskID waitingTaskID; /*< First waiting task.*/
319 
320  ItemCount maximum;
321  ItemCount count;
322  };
323  typedef struct MPSemaphoreInfo MPSemaphoreInfo;
324  struct MPEventInfo
325  {
326  PBVersion version; /*< Version of the data structure requested*/
327 
328  MPProcessID processID; /*< Owning process ID*/
329  OSType eventName; /*< Event name*/
330 
331  ItemCount nWaiting;
332  MPTaskID waitingTaskID; /*< First waiting task.*/
333 
334  MPEventFlags events;
335  };
336  typedef struct MPEventInfo MPEventInfo;
338  {
339  PBVersion version; /*< Version of the data structure requested*/
340 
341  MPProcessID processID; /*< Owning process ID*/
342  OSType regionName; /*< Critical region name*/
343 
344  ItemCount nWaiting;
345  MPTaskID waitingTaskID; /*< First waiting task.*/
346 
347  MPTaskID owningTask;
348  ItemCount count;
349  };
352  {
353  PBVersion version; /*< Version of the data structure requested*/
354 
355  MPProcessID processID; /*< Owning process ID*/
356  OSType notificationName; /*< Notification name*/
357 
358  MPQueueID queueID; /*< Queue to notify.*/
359  void *p1;
360  void *p2;
361  void *p3;
362 
363  MPEventID eventID; /*< Event to set.*/
364  MPEventFlags events;
365 
366  MPSemaphoreID semaphoreID; /*< Sempahore to signal. */
367  };
368  typedef struct MPNotificationInfo MPNotificationInfo;
370  {
371  PBVersion version; /*< Version of the data structure requested*/
372 
373  MPProcessID processID; /*< Owning process ID*/
374  MPCoherenceID groupID; /*< Related coherence group.*/
375  ItemCount nTasks; /*< Number of tasks in this space.*/
376  UInt32 vsid[16]; /*< Segment register VSIDs.*/
377  };
378  typedef struct MPAddressSpaceInfo MPAddressSpaceInfo;
379  /* *** We should put the task info call here instead of in MPExtractTaskState.*/
380 
381 #if CALL_NOT_IN_CARBON
390  OSStatus MPGetQueueInfo(MPQueueID id, PBVersion version, MPQueueInfo *info_o);
391 
400  OSStatus MPGetSemaphoreInfo(MPSemaphoreID id, PBVersion version,
401  MPSemaphoreInfo *info_o);
402 
411  OSStatus MPGetEventInfo(MPEventID id, PBVersion version, MPEventInfo *info_o);
412 
421  OSStatus MPGetCriticalRegionInfo(MPCriticalRegionID id, PBVersion version,
422  MPCriticalRegionInfo *info_o);
423 
432  OSStatus MPGetNotificationInfo(MPNotificationID id, PBVersion version,
433  MPNotificationInfo *info_o);
434 
443  OSStatus MPGetAddressSpaceInfo(MPAddressSpaceID id, PBVersion version,
444  MPAddressSpaceInfo *info_o);
445 
446 #endif /* CALL_NOT_IN_CARBON */
447 
448 #if PRAGMA_STRUCT_ALIGN
449 #pragma options align = reset
450 #elif PRAGMA_STRUCT_PACKPUSH
451 #pragma pack(pop)
452 #elif PRAGMA_STRUCT_PACK
453 #pragma pack()
454 #endif
455 
456 #ifdef PRAGMA_IMPORT_OFF
457 #pragma import off
458 #elif PRAGMA_IMPORT
459 #pragma import reset
460 #endif
461 
462 #ifdef __cplusplus
463 }
464 #endif
465 
466 #endif /* __MULTIPROCESSINGINFO__ */
Basic Macintosh data types.
OSStatus MPGetNextProcessID(MPProcessID *processID)
OSStatus MPGetNextEventID(MPProcessID owningProcessID, MPEventID *eventID)
OSStatus MPGetNextID(MPOpaqueIDClass kind, MPOpaqueID *id)
OSStatus MPGetNextAreaID(MPAddressSpaceID owningSpaceID, MPAreaID *areaID)
OSStatus MPGetNextCoherenceID(MPCoherenceID *coherenceID)
OSStatus MPGetEventInfo(MPEventID id, PBVersion version, MPEventInfo *info_o)
OSStatus MPGetNextAddressSpaceID(MPProcessID owningProcessID, MPAddressSpaceID *addressSpaceID)
OSStatus MPGetNextTaskID(MPProcessID owningProcessID, MPTaskID *taskID)
OSStatus MPGetNextQueueID(MPProcessID owningProcessID, MPQueueID *queueID)
OSStatus MPGetNextCriticalRegionID(MPProcessID owningProcessID, MPCriticalRegionID *criticalRegionID)
OSStatus MPGetNextNotificationID(MPProcessID owningProcessID, MPNotificationID *notificationID)
ByteCount MPGetPageSize(MPPageSizeClass pageClass)
OSStatus MPGetAddressSpaceInfo(MPAddressSpaceID id, PBVersion version, MPAddressSpaceInfo *info_o)
OSStatus MPGetNextTimerID(MPProcessID owningProcessID, MPTimerID *timerID)
OSStatus MPGetSemaphoreInfo(MPSemaphoreID id, PBVersion version, MPSemaphoreInfo *info_o)
OSStatus MPGetQueueInfo(MPQueueID id, PBVersion version, MPQueueInfo *info_o)
OSStatus MPGetNextSemaphoreID(MPProcessID owningProcessID, MPSemaphoreID *semaphoreID)
MPPageSizeClass MPGetPageSizeClasses(void)
OSStatus MPGetNotificationInfo(MPNotificationID id, PBVersion version, MPNotificationInfo *info_o)
OSStatus MPGetCriticalRegionInfo(MPCriticalRegionID id, PBVersion version, MPCriticalRegionInfo *info_o)
OSStatus MPGetNextCpuID(MPCoherenceID owningCoherenceID, MPCpuID *cpuID)
OSStatus MPGetNextConsoleID(MPConsoleID *consoleID)
Multiprocessing interfaces.
Definition: MultiprocessingInfo.h:370
Definition: MultiprocessingInfo.h:338
Definition: MultiprocessingInfo.h:325
Definition: MultiprocessingInfo.h:352
Definition: MultiprocessingInfo.h:293
Definition: MultiprocessingInfo.h:311