#include "proto.h" /************************************************************************** Entry point **************************************************************************/ DLLMOD int PROTOAPI PROTO_Interface(protoContext context, int command) { if (((protoInfo *) context)->version >= 2) ((protoInfo *) context)->apiversion = PROTO_VERSION; return PROTO_Init(context, command); } /************************************************************************** Generic functions **************************************************************************/ DLLMOD int PROTOAPI PROTO_RequestVersion(protoContext context, int version) { if (((protoInfo *) context)->version < 2) return PROTO_FAIL; if (((protoInfo *) context)->version < version) return PROTO_FAIL; return PROTO_OK; } DLLMOD void * PROTOAPI PROTO_Alloc(protoContext context, protoSizeT size) { return (*((protoInfo *) context)->alloc) (context, size); } DLLMOD void PROTOAPI PROTO_Free(protoContext context, void * ptr) { (*((protoInfo *) context)->free) (context, ptr); } DLLMOD void PROTOAPI PROTO_SetDefaultLevel(protoContext context, int level) { (*((protoInfo *) context)->setDefaultLevel) (context, level); } DLLMOD void PROTOAPI PROTO_Parse(protoContext context, protoPtr result, char * names, int flags) { (*((protoInfo *) context)->parse) (context, result, names, flags); } DLLMOD void PROTOAPI PROTO_RegisterProcessCallback(protoContext context, protoSizeT (PROTOAPI *callback)(protoContext context, protoPtr arrayOut, protoSizeT arrayOutSize, protoPtr arrayIn, protoSizeT arrayInSize, protoPtr localdata), protoPtr localdata, protoSizeT size, int flags) { (*((protoInfo *) context)->registerProcessCallback) (context, callback, localdata, size, flags); } DLLMOD void PROTOAPI PROTO_RegisterDisplayCallback(protoContext context, void (PROTOAPI *callback)(protoContext context, protoPtr data, protoPtr localdata), protoPtr localdata, int flags) { (*((protoInfo *) context)->registerDisplayCallback) (context, callback, localdata, flags); } DLLMOD void PROTOAPI PROTO_RegisterChartCallback(protoContext context, const char * (PROTOAPI *callback)(protoContext context, protoPtr data, protoPtr localdata), protoPtr localdata, int flags) { (*((protoInfo *) context)->registerChartCallback) (context, callback, localdata, flags); } DLLMOD void PROTOAPI PROTO_RegisterProfileChartCallback(protoContext context, const char * (PROTOAPI *callback)(protoContext context, protoPtr data, int * color, protoPtr localdata), protoPtr localdata, int flags) { if (((protoInfo *) context)->version >= 2) (*((protoInfo *) context)->registerProfileChartCallback) (context, callback, localdata, flags); } DLLMOD void PROTOAPI PROTO_RegisterDrawCallback(protoContext context, int (PROTOAPI *callback)(protoContext context, protoPtr data, protoPtr localdata, int * result), protoPtr localdata, int flags, int channels, int low, int high) { (*((protoInfo *) context)->registerDrawCallback) (context, callback, localdata, flags, channels, low, high); } DLLMOD void PROTOAPI PROTO_RegisterFindCallback(protoContext context, int (PROTOAPI *callback)(protoContext context, protoPtr data, protoPtr localdata), protoPtr localdata, int flags) { (*((protoInfo *) context)->registerFindCallback) (context, callback, localdata, flags); } DLLMOD void PROTOAPI PROTO_RegisterExportCallback(protoContext context, void (PROTOAPI *callback)(protoContext context, protoPtr data, protoPtr localdata), protoPtr localdata, int flags) { (*((protoInfo *) context)->registerExportCallback) (context, callback, localdata, flags); } DLLMOD void PROTOAPI PROTO_RegisterShareCallback(protoContext context, int (PROTOAPI *callback)(protoContext context, protoPtr sharedata, protoPtr localdata), protoPtr localdata, int flags) { if (((protoInfo *) context)->version >= 2) (*((protoInfo *) context)->registerShareCallback) (context, callback, localdata, flags); } DLLMOD int PROTOAPI PROTO_Cancel(protoContext context) { return (*((protoInfo *) context)->cancel) (context); } DLLMOD protoSizeT PROTOAPI PROTO_ReadTrace(protoContext context, protoSizeT index, protoTime * timestamp, int * data) { return (*((protoInfo *) context)->readTrace) (context, index, timestamp, data); } DLLMOD protoSizeT PROTOAPI PROTO_FindTrace(protoContext context, protoSizeT index, int signal, protoTime * timestamp, int * data) { return (*((protoInfo *) context)->findTrace) (context, index, signal, timestamp, data); } DLLMOD void PROTOAPI PROTO_Puts(protoContext context, const char *text) { (*((protoInfo *) context)->puts) (context, text); } DLLMOD void PROTOAPI PROTO_Printf(protoContext context, const char *format, ...) { va_list ap; va_start(ap, format); (*((protoInfo *) context)->printf) (context, format, ap); va_end(ap); } DLLMOD void PROTOAPI PROTO_Control(protoContext context, int controlcode) { (*((protoInfo *) context)->control) (context, controlcode); }