From 3500a020343c4771cad94ed4a83615bc283718a4 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 16 Jan 2023 09:01:30 -0800 Subject: [PATCH] iocsh: expose dbCreateAlias --- .../src/ioc/dbStatic/dbStaticIocRegister.c | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/modules/database/src/ioc/dbStatic/dbStaticIocRegister.c b/modules/database/src/ioc/dbStatic/dbStaticIocRegister.c index 751b7b250..4ff7e2e66 100644 --- a/modules/database/src/ioc/dbStatic/dbStaticIocRegister.c +++ b/modules/database/src/ioc/dbStatic/dbStaticIocRegister.c @@ -9,6 +9,7 @@ \*************************************************************************/ #include "iocsh.h" +#include "errSymTbl.h" #include "dbStaticIocRegister.h" #include "dbStaticLib.h" @@ -217,6 +218,40 @@ static void dbReportDeviceConfigCallFunc(const iocshArgBuf *args) dbReportDeviceConfig(*iocshPpdbbase,stdout); } + +static const iocshArg dbCreateAliasArg0 = { "record",iocshArgStringRecord}; +static const iocshArg dbCreateAliasArg1 = { "alias",iocshArgStringRecord}; +static const iocshArg * const dbCreateAliasArgs[] = {&argPdbbase,&dbCreateAliasArg0, &dbCreateAliasArg1}; +static const iocshFuncDef dbCreateAliasFuncDef = { + "dbCreateAlias", + 3, + dbCreateAliasArgs, + "Add a new record alias.\n" + "\n" + "Example: dbCreateAlias pdbbase record:name new:alias\n", +}; +static void dbCreateAliasCallFunc(const iocshArgBuf *args) +{ + DBENTRY ent; + long status; + + dbInitEntry(*iocshPpdbbase, &ent); + if(!args[1].sval || !args[2].sval) { + status = S_dbLib_recNotFound; + + } else { + status = dbFindRecord(&ent, args[1].sval); + if(!status) { + status = dbCreateAlias(&ent, args[2].sval); + } + } + dbFinishEntry(&ent); + if(status) { + fprintf(stderr, "Error: %ld %s\n", status, errSymMsg(status)); + iocshSetError(1); + } +} + void dbStaticIocRegister(void) { iocshRegister(&dbDumpPathFuncDef, dbDumpPathCallFunc); @@ -234,4 +269,5 @@ void dbStaticIocRegister(void) iocshRegister(&dbPvdDumpFuncDef, dbPvdDumpCallFunc); iocshRegister(&dbPvdTableSizeFuncDef,dbPvdTableSizeCallFunc); iocshRegister(&dbReportDeviceConfigFuncDef, dbReportDeviceConfigCallFunc); + iocshRegister(&dbCreateAliasFuncDef, dbCreateAliasCallFunc); }