Skip to main content
Skip table of contents

(v13) PostScript Device Data Structures

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

This  describes the data structures that the RIP and a PSDEV plugin use to share data.


Once instantiated by the PostScript language, the interpreter maintains a C structure for each device. This structure is passed to most of the functions which implement the device type, and is as follows:

      typedef struct devicelist { int32 flags;
      uint8 *name;
      DEVICETYPE *devicetype; uint8 *private;
      struct devicelist *next;

These structures are maintained by the RIP, and should not be altered. The name field points to the nullā€terminated device name, excluding any leading and trailing % characters. For example, when opening a file on the device %mydevice0%, the name field of the dev parameter passed to the open call of the %mydevice0% device type points to the C string "mydevice0" . The encoding of the device name, like the name itself, will be determined by the plugin. It is the responsibility of the plugin to ensure that the encoding scheme selected is appropriate to the environment; the platform's native language encoding is recommended.

devicetype points to the DEVICETYPE structure for this device. private points to the private area of memory allocated by the RIP when this device was created. See the description of the sizeof_private field in the description of the DEVICETYPE structure.

JavaScript errors detected

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

If this problem persists, please contact our support.