add macro IOCSH_STATIC_FUNC to avoid '#ifdef vxWorks' in code

This commit is contained in:
2018-10-23 17:51:46 +02:00
parent 9b328a0ca4
commit 4190f38db0
3 changed files with 38 additions and 49 deletions

View File

@@ -9,26 +9,22 @@
#include "iocsh.h"
#include "epicsExport.h"
IOCSH_STATIC_FUNC void dlload(const char* name)
{
if (!epicsLoadLibrary(name)) {
printf("epicsLoadLibrary failed: %s\n", epicsLoadError());
}
}
static const iocshArg dlloadArg0 = { "path/library.so", iocshArgString};
static const iocshArg * const dlloadArgs[] = {&dlloadArg0};
static const iocshFuncDef dlloadFuncDef = {"dlload", 1, dlloadArgs};
static void dlloadCallFunc(const iocshArgBuf *args)
{
if (!epicsLoadLibrary(args[0].sval)) {
printf("epicsLoadLibrary failed: %s\n", epicsLoadError());
}
dlload(args[0].sval);
}
static void dlloadRegistar(void) {
iocshRegister(&dlloadFuncDef, dlloadCallFunc);
}
epicsExportRegistrar(dlloadRegistar);
#ifdef vxWorks
void dlload(const char* name)
{
if (!epicsLoadLibrary(name)) {
printf("epicsLoadLibrary failed: %s\n", epicsLoadError());
}
}
#endif

View File

@@ -14,8 +14,15 @@
#define INCiocshH
#include <stdio.h>
#include "compilerDependencies.h"
#include "shareLib.h"
#if defined(vxWorks) || defined(__rtems__)
#define IOCSH_STATIC_FUNC
#else
#define IOCSH_STATIC_FUNC static EPICS_ALWAYS_INLINE
#endif
#ifdef __cplusplus
extern "C" {
#endif

View File

@@ -27,6 +27,7 @@
#include "libComRegister.h"
/* date */
void date(const char *format)
{
epicsTimeStamp now;
@@ -42,7 +43,6 @@ void date(const char *format)
puts(nowText);
}
/* date */
static const iocshArg dateArg0 = { "format",iocshArgString};
static const iocshArg * const dateArgs[] = {&dateArg0};
static const iocshFuncDef dateFuncDef = {"date", 1, dateArgs};
@@ -52,13 +52,8 @@ static void dateCallFunc (const iocshArgBuf *args)
}
/* echo */
static const iocshArg echoArg0 = { "string",iocshArgString};
static const iocshArg * const echoArgs[1] = {&echoArg0};
static const iocshFuncDef echoFuncDef = {"echo",1,echoArgs};
static void echoCallFunc(const iocshArgBuf *args)
IOCSH_STATIC_FUNC void echo(char* str)
{
char *str = args[0].sval;
if (str)
dbTranslateEscape(str, str); /* in-place is safe */
else
@@ -66,16 +61,13 @@ static void echoCallFunc(const iocshArgBuf *args)
printf("%s\n", str);
}
#ifdef vxWorks
void echo(char* str)
static const iocshArg echoArg0 = { "string",iocshArgString};
static const iocshArg * const echoArgs[1] = {&echoArg0};
static const iocshFuncDef echoFuncDef = {"echo",1,echoArgs};
static void echoCallFunc(const iocshArgBuf *args)
{
if (str)
dbTranslateEscape(str, str);
else
str = "";
printf("%s\n", str);
echo(args[0].sval);
}
#endif
/* chdir */
static const iocshArg chdirArg0 = { "directory name",iocshArgString};
@@ -122,18 +114,16 @@ static void epicsEnvSetCallFunc(const iocshArgBuf *args)
}
/* epicsParamShow */
static const iocshFuncDef epicsParamShowFuncDef = {"epicsParamShow",0,NULL};
static void epicsParamShowCallFunc(const iocshArgBuf *args)
IOCSH_STATIC_FUNC void epicsParamShow()
{
epicsPrtEnvParams ();
}
#ifdef vxWorks
void epicsParamShow()
static const iocshFuncDef epicsParamShowFuncDef = {"epicsParamShow",0,NULL};
static void epicsParamShowCallFunc(const iocshArgBuf *args)
{
epicsPrtEnvParams ();
epicsParamShow ();
}
#endif
/* epicsPrtEnvParams */
static const iocshFuncDef epicsPrtEnvParamsFuncDef = {"epicsPrtEnvParams",0,0};
@@ -166,21 +156,19 @@ static void iocLogInitCallFunc(const iocshArgBuf *args)
}
/* iocLogDisable */
IOCSH_STATIC_FUNC void setIocLogDisable(int val)
{
iocLogDisable = val;
}
static const iocshArg iocLogDisableArg0 = {"(0,1)=>(false,true)",iocshArgInt};
static const iocshArg * const iocLogDisableArgs[1] = {&iocLogDisableArg0};
static const iocshFuncDef iocLogDisableFuncDef = {"setIocLogDisable",1,iocLogDisableArgs};
static void iocLogDisableCallFunc(const iocshArgBuf *args)
{
iocLogDisable = args[0].ival;
setIocLogDisable(args[0].ival);
}
#ifdef vxWorks
void setIocLogDisable(int val)
{
iocLogDisable = val;
}
#endif
/* iocLogShow */
static const iocshArg iocLogShowArg0 = {"level",iocshArgInt};
static const iocshArg * const iocLogShowArgs[1] = {&iocLogShowArg0};
@@ -222,21 +210,19 @@ static void errlogInit2CallFunc(const iocshArgBuf *args)
}
/* errlog */
IOCSH_STATIC_FUNC void errlog(const char *message)
{
errlogPrintfNoConsole("%s\n", message);
}
static const iocshArg errlogArg0 = { "message",iocshArgString};
static const iocshArg * const errlogArgs[1] = {&errlogArg0};
static const iocshFuncDef errlogFuncDef = {"errlog",1,errlogArgs};
static void errlogCallFunc(const iocshArgBuf *args)
{
errlogPrintfNoConsole("%s\n", args[0].sval);
errlog(args[0].sval);
}
#ifdef vxWorks
void errlog(const char *message)
{
errlogPrintfNoConsole("%s\n", message);
}
#endif
/* iocLogPrefix */
static const iocshArg iocLogPrefixArg0 = { "prefix",iocshArgString};
static const iocshArg * const iocLogPrefixArgs[1] = {&iocLogPrefixArg0};