Harlequin RIP SDK

Implementation of a filesystem device tied to in-memory data. More...

#include <string.h>
#include <stdio.h>
#include "skinkit.h"
#include "mem.h"
#include "memfs.h"
#include "swdevice.h"
#include "skindevs.h"
#include "devutils.h"
#include "kitdevs.h"
#include "file.h"
#include "sync.h"
#include "hqmemcpy.h"

Data Structures

struct  _RAMDeviceState
 Encapsulates the state of a single instance of the RAM device. More...
 

Macros

#define PARAM_TYPE   "Type"
 Name of the read-only type device parameter for this device.
 
#define PARAM_PREFIX   "Prefix"
 Name of the prefix device parameter for this device.
 
#define PARAM_TYPE_VALUE   "FileSystem"
 Constant value of the /Type device parameter. This allows the RIP to classify this device as a storage medium.
 

Typedefs

typedef struct _RAMDeviceState RAMDeviceState
 Encapsulates the state of a single instance of the RAM device.
 

Variables

DEVICETYPE RAM_Device_Type
 The RAM input device type structure.
 

Detailed Description

Implementation of a filesystem device tied to in-memory data.

This RAM device implementation implements a file system using compressed RAM storage. The Harlequin RIP SDK comes with an import tool that can be used to compress and pre-compile a directory tree into a RAM device file system.

This is useful for backending the %os% device for embedded systems for which there is no disk, or to help avoid multiple RIP implementations writing caches to a single shared installation.

The current implementation of the RAM device uses multiple filesystem roots. If the RIP is built with a SW folder in RAM, then the first instance mounted will refer to the SW-in-RAM tree. Other device instances will refer to newly instantiated RAM devices. Like the file device, the RAM device supports prefixes. Therefore, even with a single root, it is possible for multiple instances of the RAM device to exist independently of each other, using prefixes to navigate down to a specified node under the base root.