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:
W. Eric Norum
2000-12-21 15:57:21 +00:00
parent d3c0f075cf
commit fe4cad085e
7 changed files with 33 additions and 74 deletions

View File

@@ -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)

View File

@@ -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;

View File

@@ -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] =
{&registerRecordDeviceDriverArg0};
static const ioccrfFuncDef registerRecordDeviceDriverFuncDef =
{"registerRecordDeviceDriver",1,registerRecordDeviceDriverArgs};
static void registerRecordDeviceDriverCallFunc(const ioccrfArgBuf *args)
{
registerRecordDeviceDriver(pdbbase);
}
void registerRecordDeviceDriverRegister(void)
{
ioccrfRegister(
&registerRecordDeviceDriverFuncDef,registerRecordDeviceDriverCallFunc);
}

View File

@@ -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*/

View File

@@ -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

View File

@@ -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

View File

@@ -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] =
{&registerRecordDeviceDriverArg0};
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(&registerRecordDeviceDriverFuncDef,registerRecordDeviceDriverCallFunc);}
};
namespace { IoccrfReg ioccrfReg; }
} /* extern "C" */
END