153 lines
7.6 KiB
C
153 lines
7.6 KiB
C
|
/* Copyright 2011-2020 The MathWorks, Inc. */
|
||
|
|
||
|
#ifndef __XILUTILS_SL_H__
|
||
|
#define __XILUTILS_SL_H__
|
||
|
|
||
|
#ifndef EXTERN_C
|
||
|
#ifdef __cplusplus
|
||
|
|
||
|
#define EXTERN_C extern "C"
|
||
|
#else
|
||
|
|
||
|
#define EXTERN_C extern
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifndef LIBMWXILUTILS_SL_API
|
||
|
|
||
|
#define LIBMWXILUTILS_SL_API
|
||
|
|
||
|
#include "simstruc.h"
|
||
|
#else
|
||
|
#ifndef MATLAB_MEX_FILE
|
||
|
#define MATLAB_MEX_FILE
|
||
|
#endif
|
||
|
|
||
|
#include "simstruct/simstruc.h"
|
||
|
#endif
|
||
|
|
||
|
typedef enum {
|
||
|
COLUMN_TO_ROW_TRANSPOSE = 0,
|
||
|
ROW_TO_COLUMN_TRANSPOSE
|
||
|
} XIL_TRANSPOSE_DIRECTION_T;
|
||
|
|
||
|
typedef enum {
|
||
|
VARSIZE_GET_INPUT = 0,
|
||
|
VARSIZE_GET_OUTPUT,
|
||
|
VARSIZE_SET_OUTPUT
|
||
|
} XIL_VARSIZE_DIRECTION_T;
|
||
|
|
||
|
typedef enum {
|
||
|
VARSIZE_TYPE_8BIT = 0,
|
||
|
VARSIZE_TYPE_16BIT,
|
||
|
VARSIZE_TYPE_32BIT
|
||
|
} XIL_VARSIZE_TYPE_T;
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API int xilSimulinkUtilsCreate(void** const ppXILUtils,
|
||
|
SimStruct* const S);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API void xilSimulinkUtilsStaticErrorHandle(const uint8_T nrhs,
|
||
|
mxArray* prhs[],
|
||
|
SimStruct* const S);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API const void* xilSimulinkUtilsCreateBuiltInSignal (
|
||
|
const int builtInType);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API const void* xilSimulinkUtilsCreateHalfPrecisionSignal ();
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API const void* xilSimulinkUtilsCreateStringSignal ();
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API const void* xilSimulinkUtilsCreateAliasSignal (
|
||
|
const char* aliasName,
|
||
|
const int builtInType);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API const void* xilSimulinkUtilsCreateEnumSignal (
|
||
|
const char* enumName,
|
||
|
int enumNumEntries,
|
||
|
const char_T* enumLabels[],
|
||
|
const int32_T* enumValues);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API const void* xilSimulinkUtilsCreateFixedPointSlopeBiasSignal (
|
||
|
const int numericType,
|
||
|
const int signedness,
|
||
|
const int wordLength,
|
||
|
const double slopeAdjFactor,
|
||
|
const int fixedExponent,
|
||
|
const double bias);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API const void* xilSimulinkUtilsCreateFixedPointBinaryScalingSignal (
|
||
|
const int numericType,
|
||
|
const int signedness,
|
||
|
const int wordLength,
|
||
|
const int fractionLength);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API void* xilSimulinkUtilsCreateSDISignal (
|
||
|
void* pXILUtils,
|
||
|
const char* signalName,
|
||
|
const char* propagateName,
|
||
|
const char* unit,
|
||
|
int dimension,
|
||
|
int* dimensions,
|
||
|
int portIdx,
|
||
|
bool isComplex,
|
||
|
const char* samplePeriod,
|
||
|
double sampleOffset,
|
||
|
int decimation,
|
||
|
int maxPoints,
|
||
|
const char* entryPath,
|
||
|
const char* entrySID,
|
||
|
const char* domain,
|
||
|
const void* dataTypeHandler);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API void* xilSimulinkUtilsCreateSDINVBus (void* pXILUtils,
|
||
|
const char* signalName,
|
||
|
const char* propagateName,
|
||
|
int portIdx,
|
||
|
const char* samplePeriod,
|
||
|
double sampleOffset,
|
||
|
int decimation,
|
||
|
int maxPoints,
|
||
|
const char* entryPath,
|
||
|
const char* entrySID,
|
||
|
const char* domain,
|
||
|
int *busSize,
|
||
|
int numElements,
|
||
|
const char** leafNames,
|
||
|
int *leafOffsets,
|
||
|
const void** leafDataTypeHandles,
|
||
|
bool* leafComplex,
|
||
|
int* leafNumDimensions,
|
||
|
int** leafDimensions,
|
||
|
int numHierElems,
|
||
|
const char** childNames,
|
||
|
int* whoIsTheParent,
|
||
|
int* hierOwner,
|
||
|
int* dimension,
|
||
|
int** dimensions);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API void* xilSimulinkUtilsStaticInitMultiRunInstrData(void);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API void xilSimulinkUtilsStaticFreeMultiRunInstrData(void* multiRunData);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API void * xilSimulinkUtilsReserveRowMajorBuf(void * const pXILSimulinkUtilsVoid,
|
||
|
size_t sizeBytes);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API void * xilSimulinkUtilsTranspose(void * const pXILSimulinkUtilsVoid,
|
||
|
const int dataType,
|
||
|
void * srcData,
|
||
|
void * dstData,
|
||
|
const int * dims,
|
||
|
size_t nDims,
|
||
|
XIL_TRANSPOSE_DIRECTION_T direction,
|
||
|
boolean_T isComplex);
|
||
|
|
||
|
EXTERN_C LIBMWXILUTILS_SL_API void xilGetSetCurrentPortDims(SimStruct * S,
|
||
|
XIL_VARSIZE_DIRECTION_T direction,
|
||
|
int sfunIdx,
|
||
|
int elementOffset,
|
||
|
int nDims, void * dims,
|
||
|
XIL_VARSIZE_TYPE_T type);
|
||
|
|
||
|
#endif
|
||
|
|