Skip to main content
Skip table of contents

(v13) Memory initialization APIs

This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP.

The Harlequin Core source code SDK contains the skinkit component, which provides higher-level APIs to configure the RIP than is supplied by the core library. The second call used to initialize the RIP SDK is SwLeSDKStart(), defined in the source file skinkit.c. This call initializes the MPS first and then several other support libraries used by the RIP. The RIP SDK initialization is separate from RIP initialization because several of the libraries and components are useful outside of the scope of the RIP, and also provide information that the RIP may require during initialization. We encourage you to consider whether the MPS, RDR, Event, Timeline, and Timer components initialized by SwLeSDKStart() may be useful in their own code.

The SwLeSDKStart() API call has four memory-related parameters:

size_t *RIP_maxAddressSpaceInBytes

A pointer to the size of the maximum address space the RIP can use, measured in bytes. If the value referenced is zero on entry, the RIP sets a size based on the address space available on the operating system and the working space size. You may want to adjust this if you link large libraries into the RIP executable. On a successful exit, the value is set to the actual size of address space reserved for the RIP.

size_t *RIP_workingSizeInBytes

A pointer to the size of working memory permitted for the RIP, measured in bytes. If the value referenced is zero on entry, the RIP calculates a default size suitable for testing the RIP running as the sole application using all the memory resources of the machine. On a successful exit, the value is set to the actual size of working memory applied for the RIP.

void *pMemory

Points to a caller-allocated memory block that the RIP should use. If this is non-NULL, the RIP works within this memory block, rather than allocating its own memory. The size of the block is defined by RIP_workingSizeInBytes, which must not be zero. If this pointer is NULL, then the RIP will allocate and manage its own memory, suitably constrained by RIP_maxAddressSpaceInBytes and RIP_workingSizeInByte.

SysMemFns *pSysMemFns

This is an input parameter, which sets up callback functions used by the SDK skin components for memory allocation. The SDK skin components use these callback functions; the RIP core library uses the MPS for allocation. Providing callback functions allows you, the RIP integrator, to control how and where skin component allocations are placed and managed.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.