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. | |
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.