Change the registerRecordDeviceDriver.pl script to create
registerRecordDeviceDriver.c as a C++ file (.cpp) so that it can use a static constructor to register the registerRecordDeviceDriver() command with the IOC shell Remove the old registerRecordDeviceDriverRegister.[ch] source files.
This commit is contained in:
@@ -16,7 +16,6 @@ INC += dbAccessRegister.h
|
||||
INC += ioccrfRegisterCommon.h
|
||||
INC += asTestRegister.h
|
||||
INC += envRegister.h
|
||||
INC += registerRecordDeviceDriverRegister.h
|
||||
|
||||
|
||||
# general contents of library on all platforms
|
||||
@@ -42,8 +41,6 @@ LIBSRCS += iocUtil.c
|
||||
|
||||
LIBRARY_IOC = iocsh
|
||||
|
||||
OBJS += registerRecordDeviceDriverRegister
|
||||
|
||||
iocsh_DLL_LIBS = miscIoc rsrvIoc dbtoolsIoc asIoc dbIoc registryIoc dbStaticIoc Com
|
||||
registryIoc_DIR=$(EPICS_BASE_LIB)
|
||||
dbtoolsIoc_DIR=$(EPICS_BASE_LIB)
|
||||
|
||||
@@ -482,9 +482,8 @@ static void localRegister (void)
|
||||
* Register commands on application startup
|
||||
*/
|
||||
#include "ioccrfRegisterCommon.h"
|
||||
#include "registerRecordDeviceDriverRegister.h"
|
||||
class IoccrfRegister {
|
||||
public:
|
||||
IoccrfRegister() { localRegister(); ioccrfRegisterCommon(); registerRecordDeviceDriverRegister(); }
|
||||
IoccrfRegister() { localRegister(); ioccrfRegisterCommon(); }
|
||||
};
|
||||
static IoccrfRegister ioccrfRegisterObj;
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
/* registerRecordDeviceDriverRegister.c */
|
||||
/* Author: Marty Kraimer Date: 04MAY2000 */
|
||||
|
||||
/********************COPYRIGHT NOTIFICATION**********************************
|
||||
This software was developed under a United States Government license
|
||||
described on the COPYRIGHT_UniversityOfChicago file included as part
|
||||
of this distribution.
|
||||
****************************************************************************/
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "dbAccess.h"
|
||||
#include "ioccrf.h"
|
||||
#include "registerRecordDeviceDriverRegister.h"
|
||||
|
||||
/* registerRecordDeviceDriver */
|
||||
static const ioccrfArg registerRecordDeviceDriverArg0 =
|
||||
{ "pdbbase",ioccrfArgPdbbase};
|
||||
static const ioccrfArg *registerRecordDeviceDriverArgs[1] =
|
||||
{®isterRecordDeviceDriverArg0};
|
||||
static const ioccrfFuncDef registerRecordDeviceDriverFuncDef =
|
||||
{"registerRecordDeviceDriver",1,registerRecordDeviceDriverArgs};
|
||||
static void registerRecordDeviceDriverCallFunc(const ioccrfArgBuf *args)
|
||||
{
|
||||
registerRecordDeviceDriver(pdbbase);
|
||||
}
|
||||
|
||||
void registerRecordDeviceDriverRegister(void)
|
||||
{
|
||||
ioccrfRegister(
|
||||
®isterRecordDeviceDriverFuncDef,registerRecordDeviceDriverCallFunc);
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
/* registerRecordDeviceDriverRegister.h */
|
||||
/* Author: Marty Kraimer Date: 02MAY2000 */
|
||||
|
||||
/********************COPYRIGHT NOTIFICATION**********************************
|
||||
This software was developed under a United States Government license
|
||||
described on the COPYRIGHT_UniversityOfChicago file included as part
|
||||
of this distribution.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef INCregisterRecordDeviceDriverRegisterH
|
||||
#define INCregisterRecordDeviceDriverRegisterH
|
||||
|
||||
#include "shareLib.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void registerRecordDeviceDriverRegister(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*INCregisterRecordDeviceDriverRegisterH*/
|
||||
@@ -1,8 +1,8 @@
|
||||
registerRecordDeviceDriver.o: registerRecordDeviceDriver.c
|
||||
registerRecordDeviceDriver.o: registerRecordDeviceDriver.cpp
|
||||
|
||||
registerRecordDeviceDriver.c: $(DBDNAME:%=$(INSTALL_DBD)/%)
|
||||
$(RM) registerRecordDeviceDriver.c
|
||||
$(PERL) $(EPICS_BASE_HOST_BIN)/registerRecordDeviceDriver.pl $(DBDNAME:%=$(INSTALL_DBD)/%) > registerRecordDeviceDriver.c
|
||||
registerRecordDeviceDriver.cpp: $(DBDNAME:%=$(INSTALL_DBD)/%)
|
||||
$(RM) registerRecordDeviceDriver.cpp
|
||||
$(PERL) $(EPICS_BASE_HOST_BIN)/registerRecordDeviceDriver.pl $(DBDNAME:%=$(INSTALL_DBD)/%) > registerRecordDeviceDriver.cpp
|
||||
|
||||
clean::
|
||||
@$(RM) registerRecordDeviceDriver.c
|
||||
@$(RM) registerRecordDeviceDriver.cpp
|
||||
|
||||
@@ -53,12 +53,11 @@ example_SRCS += xxxRecord.c
|
||||
example_SRCS += devXxxSoft.c
|
||||
example_SRCS += caMonitor.c
|
||||
|
||||
example_SRCS_DEFAULT += registerRecordDeviceDriver.c
|
||||
example_SRCS_DEFAULT += registerRecordDeviceDriver.cpp
|
||||
example_SRCS_DEFAULT += exampleMain.c
|
||||
example_SRCS_vxWorks += -nil-
|
||||
#example_SRCS_vxWorks += sncExample.c
|
||||
|
||||
example_OBJS_DEFAULT += $(EPICS_BASE_BIN)/registerRecordDeviceDriverRegister
|
||||
example_OBJS_vxWorks += $(EPICS_BASE_BIN)/registerRecordDeviceDriver
|
||||
example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary
|
||||
#example_OBJS_vxWorks += $(SEQ_BIN)/seq
|
||||
|
||||
@@ -27,8 +27,9 @@ close(INP) or die "$! closing file";
|
||||
# beginning of generated routine
|
||||
|
||||
print << "END" ;
|
||||
/*#registerRecordDeviceDriver.c */
|
||||
/*#registerRecordDeviceDriver.cpp */
|
||||
/* THIS IS A GENERATED FILE. DO NOT EDIT */
|
||||
extern "C" {
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
@@ -45,7 +46,7 @@ print << "END" ;
|
||||
#include "registryRecordType.h"
|
||||
#include "registryDeviceSupport.h"
|
||||
#include "registryDriverSupport.h"
|
||||
|
||||
#include "ioccrf.h"
|
||||
END
|
||||
|
||||
#definitions for recordtype
|
||||
@@ -177,4 +178,27 @@ END
|
||||
print << "END" ;
|
||||
return(0);
|
||||
}
|
||||
|
||||
/* registerRecordDeviceDriver */
|
||||
static const ioccrfArg registerRecordDeviceDriverArg0 =
|
||||
{"pdbbase",ioccrfArgPdbbase};
|
||||
static const ioccrfArg *registerRecordDeviceDriverArgs[1] =
|
||||
{®isterRecordDeviceDriverArg0};
|
||||
static const ioccrfFuncDef registerRecordDeviceDriverFuncDef =
|
||||
{"registerRecordDeviceDriver",1,registerRecordDeviceDriverArgs};
|
||||
static void registerRecordDeviceDriverCallFunc(const ioccrfArgBuf *args)
|
||||
{
|
||||
registerRecordDeviceDriver(pdbbase);
|
||||
}
|
||||
|
||||
/*
|
||||
* Register commands on application startup
|
||||
*/
|
||||
class IoccrfReg {
|
||||
public:
|
||||
IoccrfReg() { ioccrfRegister(®isterRecordDeviceDriverFuncDef,registerRecordDeviceDriverCallFunc);}
|
||||
};
|
||||
namespace { IoccrfReg ioccrfReg; }
|
||||
|
||||
} /* extern "C" */
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user