Platform Utilities

API Documentation

Starting / Stopping the Sandpiper Device Support

struct SPPlatform* SPInitPlatform();

Opens hardware devices and sets up necessary internals so that we can start using the custom video and audio circuitry.

void SPShutdownPlatform(struct SPPlatform* _platform);

Relinquishes control back to the caller by releasing memory. However it will not close the device connections, which the platform driver at /dev/sandpiper handles. This is done so that there is always a visible terminal window and silent audio when an application crashes or exits due to unknown reasons.

Shared Memory Allocation / Deallocation

int SPAllocateBuffer(struct SPPlatform* _platform, struct SPSizeAlloc *_sizealloc);

Allocates a portion of physical memory with proper DMA alignment, and populates the SPSizeAlloc structure with matching physical / CPU address pairs for use with devices and the ARM cores.

void SPFreeBuffer(struct SPPlatform* _platform, struct SPSizeAlloc *_sizealloc);

Hands back the previously allocated buffer.