# IShSMPUtilities Struct Reference
[Shell Utilities]

SMP Utilities - Utilities for dealing with SMP systems. More...

Inheritance diagram for IShSMPUtilities:

List of all members.

## Public Member Functions
virtual uint32 MCCOMAPI | GetNumberOfCPUs ()=0
virtual boolean MCCOMAPI | AreSystemCallsSafe ()=0
virtual int32 MCCOMAPI | LaunchSMPThread (ISMPThread *thread, uint32 stackSize, IShSMPRemoteLauncher *remoteLauncher, ESmpThreadPriority threadPriority, boolean *abortFlagPtr)=0
virtual void MCCOMAPI | CreateCriticalSection (IShCriticalSection **criticalSection)=0
virtual void MCCOMAPI | CreateLocalStorage (IShLocalStorage **localStorage)=0
virtual void MCCOMAPI | CreateLocalStorageWithRelease (IShLocalStorage **localStorage)=0
virtual void MCCOMAPI | CreateAtomicCounter (IShAtomicCounter **atomicCounter)=0
virtual void MCCOMAPI | CreateSemaphore (IShSemaphore **semaphore, int32 maxValue, int32 initialValue)=0
virtual void MCCOMAPI | CreateRemoteLauncher (IShSMPRemoteLauncher **remoteLauncher, int32 pauseThreadID)=0
virtual void *MCCOMAPI | DoRemoteInstructions (ISMPRemoteInstructions *remoteInstructions, boolean forceRemote, boolean returnImmediatly)=0
virtual TMCLocalStorage *MCCOMAPI | NewTLS (DeleteProc deleteProc)=0
| Create a new TLS.
virtual void MCCOMAPI | DeleteTLS (TMCLocalStorage *aTLS)=0
| Delete the TLS.
virtual void MCCOMAPI | SetupSmpThreadLocalStorage ()=0
virtual void *MCCOMAPI | GetPlatformData ()=0
virtual void *MCCOMAPI | GetMacTLSIndex ()=0
virtual ISMPJobWorkers *MCCOMAPI | GetSMPWorkers ()=0

## Detailed Description

SMP Utilities - Utilities for dealing with SMP systems.

## Member Function Documentation

virtual boolean MCCOMAPI IShSMPUtilities::AreSystemCallsSafe | ( |  | ) | `[pure virtual]`

virtual void MCCOMAPI IShSMPUtilities::CreateAtomicCounter | ( | IShAtomicCounter ** | atomicCounter | ) | `[pure virtual]`

virtual void MCCOMAPI IShSMPUtilities::CreateCriticalSection | ( | IShCriticalSection ** | criticalSection | ) | `[pure virtual]`

virtual void MCCOMAPI IShSMPUtilities::CreateLocalStorage | ( | IShLocalStorage ** | localStorage | ) | `[pure virtual]`

virtual void MCCOMAPI IShSMPUtilities::CreateLocalStorageWithRelease | ( | IShLocalStorage ** | localStorage | ) | `[pure virtual]`

virtual void MCCOMAPI IShSMPUtilities::CreateRemoteLauncher | ( | IShSMPRemoteLauncher ** | remoteLauncher,
|  | int32 | pauseThreadID |
| ) |  |  | `[pure virtual]`

Creates an IShSMPRemoteLauncher

Parameters:

  | remoteLauncher | Returns a pointer to the launcher created
  | pauseThreadID | If this != 0, it defines the ID of a thread (see IShThreadUtilities.h). This thread will be automatically paused and resumed as needed

virtual void MCCOMAPI IShSMPUtilities::CreateSemaphore | ( | IShSemaphore ** | semaphore,
|  | int32 | maxValue,
|  | int32 | initialValue |
| ) |  |  | `[pure virtual]`

virtual void MCCOMAPI IShSMPUtilities::DeleteTLS | ( | TMCLocalStorage * | aTLS | ) | `[pure virtual]`

Delete the TLS.

virtual void* MCCOMAPI IShSMPUtilities::DoRemoteInstructions | ( | ISMPRemoteInstructions * | remoteInstructions,
|  | boolean | forceRemote,
|  | boolean | returnImmediatly |
| ) |  |  | `[pure virtual]`

virtual void* MCCOMAPI IShSMPUtilities::GetMacTLSIndex | ( |  | ) | `[pure virtual]`

virtual uint32 MCCOMAPI IShSMPUtilities::GetNumberOfCPUs | ( |  | ) | `[pure virtual]`

virtual void* MCCOMAPI IShSMPUtilities::GetPlatformData | ( |  | ) | `[pure virtual]`

virtual ISMPJobWorkers* MCCOMAPI IShSMPUtilities::GetSMPWorkers | ( |  | ) | `[pure virtual]`

virtual int32 MCCOMAPI IShSMPUtilities::LaunchSMPThread | ( | ISMPThread * | thread,
|  | uint32 | stackSize,
|  | IShSMPRemoteLauncher * | remoteLauncher,
|  | ESmpThreadPriority | threadPriority,
|  | boolean * | abortFlagPtr |
| ) |  |  | `[pure virtual]`

Launches a SMP thread

Parameters:

  | thread | The thread to launch
  | stackSize | The memory to allocate for the thread's stack
  | remoteLauncher | the remote launcher to the application (for things that cannot be done in SMP like UI and asserts) If the remoteLauncher is NULL then the default remote launcher is used.
  | threadPriority | The priority of the thread.
  | abortFlagPtr | Pointer to abort flag (indicates that the thread should abort)

Returns:
  The ID of the launched thread

virtual TMCLocalStorage* MCCOMAPI IShSMPUtilities::NewTLS | ( | DeleteProc | deleteProc | ) | `[pure virtual]`

Create a new TLS.

virtual void MCCOMAPI IShSMPUtilities::SetupSmpThreadLocalStorage | ( |  | ) | `[pure virtual]`

The documentation for this struct was generated from the following file:

- IShSMP.h