Use (typed) rset instead of (untyped) struct rset inside Base
This commit is contained in:
@@ -108,7 +108,7 @@ void dbSpcAsRegisterCallback(SPC_ASCALLBACK func)
|
||||
long dbPutSpecial(DBADDR *paddr,int pass)
|
||||
{
|
||||
long int (*pspecial)()=NULL;
|
||||
struct rset *prset;
|
||||
rset *prset;
|
||||
dbCommon *precord = paddr->precord;
|
||||
long status=0;
|
||||
long special=paddr->special;
|
||||
@@ -140,7 +140,7 @@ long dbPutSpecial(DBADDR *paddr,int pass)
|
||||
}
|
||||
|
||||
static void get_enum_strs(DBADDR *paddr, char **ppbuffer,
|
||||
struct rset *prset,long *options)
|
||||
rset *prset,long *options)
|
||||
{
|
||||
short field_type=paddr->field_type;
|
||||
dbFldDes *pdbFldDes = paddr->pfldDes;
|
||||
@@ -200,7 +200,7 @@ choice_common:
|
||||
}
|
||||
|
||||
static void get_graphics(DBADDR *paddr, char **ppbuffer,
|
||||
struct rset *prset,long *options)
|
||||
rset *prset,long *options)
|
||||
{
|
||||
struct dbr_grDouble grd;
|
||||
int got_data=FALSE;
|
||||
@@ -240,7 +240,7 @@ static void get_graphics(DBADDR *paddr, char **ppbuffer,
|
||||
}
|
||||
|
||||
static void get_control(DBADDR *paddr, char **ppbuffer,
|
||||
struct rset *prset,long *options)
|
||||
rset *prset,long *options)
|
||||
{
|
||||
struct dbr_ctrlDouble ctrld;
|
||||
int got_data=FALSE;
|
||||
@@ -280,7 +280,7 @@ static void get_control(DBADDR *paddr, char **ppbuffer,
|
||||
}
|
||||
|
||||
static void get_alarm(DBADDR *paddr, char **ppbuffer,
|
||||
struct rset *prset, long *options)
|
||||
rset *prset, long *options)
|
||||
{
|
||||
char *pbuffer = *ppbuffer;
|
||||
struct dbr_alDouble ald = {epicsNAN, epicsNAN, epicsNAN, epicsNAN};
|
||||
@@ -325,7 +325,7 @@ static void getOptions(DBADDR *paddr, char **poriginal, long *options,
|
||||
void *pflin)
|
||||
{
|
||||
db_field_log *pfl= (db_field_log *)pflin;
|
||||
struct rset *prset;
|
||||
rset *prset;
|
||||
short field_type;
|
||||
dbCommon *pcommon;
|
||||
char *pbuffer = *poriginal;
|
||||
@@ -394,7 +394,7 @@ static void getOptions(DBADDR *paddr, char **poriginal, long *options,
|
||||
*poriginal = pbuffer;
|
||||
}
|
||||
|
||||
struct rset * dbGetRset(const struct dbAddr *paddr)
|
||||
rset * dbGetRset(const struct dbAddr *paddr)
|
||||
{
|
||||
struct dbFldDes *pfldDes = paddr->pfldDes;
|
||||
|
||||
@@ -468,7 +468,7 @@ long dbScanPassive(dbCommon *pfrom, dbCommon *pto)
|
||||
*/
|
||||
long dbProcess(dbCommon *precord)
|
||||
{
|
||||
struct rset *prset = precord->rset;
|
||||
rset *prset = precord->rset;
|
||||
dbRecordType *pdbRecordType = precord->rdes;
|
||||
unsigned char tpro = precord->tpro;
|
||||
char context[40] = "";
|
||||
@@ -647,7 +647,7 @@ long dbNameToAddr(const char *pname, DBADDR *paddr)
|
||||
paddr->dbr_field_type = mapDBFToDBR[dbfType];
|
||||
|
||||
if (paddr->special == SPC_DBADDR) {
|
||||
struct rset *prset = dbGetRset(paddr);
|
||||
rset *prset = dbGetRset(paddr);
|
||||
|
||||
/* Let record type modify paddr */
|
||||
if (prset && prset->cvt_dbaddr) {
|
||||
@@ -827,7 +827,7 @@ long dbGet(DBADDR *paddr, short dbrType,
|
||||
db_field_log *pfl = (db_field_log *)pflin;
|
||||
short field_type;
|
||||
long capacity, no_elements, offset;
|
||||
struct rset *prset;
|
||||
rset *prset;
|
||||
long status = 0;
|
||||
|
||||
if (options && *options)
|
||||
@@ -1224,7 +1224,7 @@ long dbPut(DBADDR *paddr, short dbrType,
|
||||
long no_elements = paddr->no_elements;
|
||||
long special = paddr->special;
|
||||
void *pfieldsave = paddr->pfield;
|
||||
struct rset *prset = dbGetRset(paddr);
|
||||
rset *prset = dbGetRset(paddr);
|
||||
long status = 0;
|
||||
long offset;
|
||||
dbFldDes *pfldDes;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "epicsTime.h"
|
||||
#include "dbBase.h"
|
||||
#include "dbAddr.h"
|
||||
#include "recSup.h"
|
||||
|
||||
#ifdef INCLdb_accessh_epicsExportSharedSymbols
|
||||
# define epicsExportSharedSymbols
|
||||
@@ -202,7 +203,7 @@ struct dbr_alDouble {DBRalDouble};
|
||||
#define S_db_bufFull (M_dbAccess|68) /*Buffer full*/
|
||||
|
||||
epicsShareFunc long dbPutSpecial(struct dbAddr *paddr,int pass);
|
||||
epicsShareFunc struct rset * dbGetRset(const struct dbAddr *paddr);
|
||||
epicsShareFunc rset * dbGetRset(const struct dbAddr *paddr);
|
||||
epicsShareFunc long dbPutAttribute(
|
||||
const char *recordTypename,const char *name,const char*value);
|
||||
epicsShareFunc int dbIsValueField(const struct dbFldDes *pdbFldDes);
|
||||
|
||||
@@ -509,7 +509,7 @@ dbChannel * dbChannelCreate(const char *name)
|
||||
paddr->dbr_field_type = mapDBFToDBR[dbfType];
|
||||
|
||||
if (paddr->special == SPC_DBADDR) {
|
||||
struct rset *prset = dbGetRset(paddr);
|
||||
rset *prset = dbGetRset(paddr);
|
||||
|
||||
/* Let record type modify paddr */
|
||||
if (prset && prset->cvt_dbaddr) {
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
prompt("Address of RSET")
|
||||
special(SPC_NOMOD)
|
||||
interest(4)
|
||||
extra("struct rset *rset")
|
||||
extra("struct typed_rset *rset")
|
||||
}
|
||||
field(DSET,DBF_NOACCESS) {
|
||||
prompt("DSET address")
|
||||
|
||||
@@ -1637,7 +1637,7 @@ static long getFloatString(
|
||||
float *psrc = (float *) paddr->pfield;
|
||||
long status = 0;
|
||||
long precision = 6;
|
||||
struct rset *prset = 0;
|
||||
rset *prset = 0;
|
||||
|
||||
if (paddr) prset = dbGetRset(paddr);
|
||||
if (prset && (prset->get_precision))
|
||||
@@ -1850,7 +1850,7 @@ static long getDoubleString(
|
||||
double *psrc = (double *) paddr->pfield;
|
||||
long status = 0;
|
||||
long precision = 6;
|
||||
struct rset *prset = 0;
|
||||
rset *prset = 0;
|
||||
|
||||
if (paddr) prset = dbGetRset(paddr);
|
||||
if (prset && (prset->get_precision))
|
||||
@@ -2061,7 +2061,7 @@ static long getEnumString(
|
||||
void *pto, long nRequest, long no_elements, long offset)
|
||||
{
|
||||
char *pbuffer = (char *) pto;
|
||||
struct rset *prset;
|
||||
rset *prset;
|
||||
long status;
|
||||
|
||||
if ((prset=dbGetRset(paddr)) && (prset->get_enum_str))
|
||||
@@ -2602,7 +2602,7 @@ static long putStringEnum(
|
||||
const void *pfrom, long nRequest, long no_elements, long offset)
|
||||
{
|
||||
const char *pbuffer = (const char *) pfrom;
|
||||
struct rset *prset;
|
||||
rset *prset;
|
||||
epicsEnum16 *pfield = (epicsEnum16*) paddr->pfield;
|
||||
long status;
|
||||
unsigned int nchoices,ind;
|
||||
@@ -3940,7 +3940,7 @@ static long putFloatString(
|
||||
char *pdest = (char *) paddr->pfield;
|
||||
long status = 0;
|
||||
long precision = 6;
|
||||
struct rset *prset = dbGetRset(paddr);
|
||||
rset *prset = dbGetRset(paddr);
|
||||
short size = paddr->field_size;
|
||||
|
||||
if (prset && (prset->get_precision))
|
||||
@@ -4153,7 +4153,7 @@ static long putDoubleString(
|
||||
char *pdest = (char *) paddr->pfield;
|
||||
long status = 0;
|
||||
long precision = 6;
|
||||
struct rset *prset = dbGetRset(paddr);
|
||||
rset *prset = dbGetRset(paddr);
|
||||
short size = paddr->field_size;
|
||||
|
||||
if (prset && (prset->get_precision))
|
||||
|
||||
@@ -256,7 +256,7 @@ static long cvt_st_e(
|
||||
epicsEnum16 *to,
|
||||
const dbAddr *paddr)
|
||||
{
|
||||
struct rset *prset = 0;
|
||||
rset *prset = 0;
|
||||
long status;
|
||||
epicsEnum16 *pfield= (epicsEnum16*)(paddr->pfield);
|
||||
unsigned int nchoices,ind;
|
||||
@@ -782,7 +782,7 @@ static long cvt_f_st(
|
||||
char *to,
|
||||
const dbAddr *paddr)
|
||||
{
|
||||
struct rset *prset = 0;
|
||||
rset *prset = 0;
|
||||
long status = 0;
|
||||
long precision = 6;
|
||||
|
||||
@@ -863,7 +863,7 @@ static long cvt_d_st(
|
||||
char *to,
|
||||
const dbAddr *paddr)
|
||||
{
|
||||
struct rset *prset = 0;
|
||||
rset *prset = 0;
|
||||
long status = 0;
|
||||
long precision = 6;
|
||||
|
||||
@@ -1009,7 +1009,7 @@ static long cvt_e_st_get(
|
||||
char *to,
|
||||
const dbAddr *paddr)
|
||||
{
|
||||
struct rset *prset = 0;
|
||||
rset *prset = 0;
|
||||
long status;
|
||||
|
||||
if(paddr) prset = dbGetRset(paddr);
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "dbFldTypes.h"
|
||||
#include "ellLib.h"
|
||||
#include "dbDefs.h"
|
||||
#include "recSup.h"
|
||||
|
||||
typedef struct dbMenu {
|
||||
ELLNODE node;
|
||||
@@ -150,7 +151,7 @@ typedef struct dbRecordType {
|
||||
short indvalFlddes; /*ind in papFldDes*/
|
||||
dbFldDes **papFldDes; /* ptr to array of ptr to fldDes*/
|
||||
/*The following are only available on run time system*/
|
||||
struct rset *prset;
|
||||
rset *prset;
|
||||
int rec_size; /*record size in bytes */
|
||||
}dbRecordType;
|
||||
|
||||
|
||||
@@ -402,7 +402,7 @@ static void initRecSup(void)
|
||||
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
|
||||
recordTypeLocation *precordTypeLocation =
|
||||
registryRecordTypeFind(pdbRecordType->name);
|
||||
struct rset *prset;
|
||||
rset *prset;
|
||||
|
||||
if (!precordTypeLocation) {
|
||||
errlogPrintf("iocInit record support for %s not found\n",
|
||||
@@ -487,7 +487,7 @@ static void iterateRecords(recIterFunc func, void *user)
|
||||
static void doInitRecord0(dbRecordType *pdbRecordType, dbCommon *precord,
|
||||
void *user)
|
||||
{
|
||||
struct rset *prset = pdbRecordType->prset;
|
||||
rset *prset = pdbRecordType->prset;
|
||||
devSup *pdevSup;
|
||||
|
||||
if (!prset) return; /* unlikely */
|
||||
@@ -542,7 +542,7 @@ static void doResolveLinks(dbRecordType *pdbRecordType, dbCommon *precord,
|
||||
static void doInitRecord1(dbRecordType *pdbRecordType, dbCommon *precord,
|
||||
void *user)
|
||||
{
|
||||
struct rset *prset = pdbRecordType->prset;
|
||||
rset *prset = pdbRecordType->prset;
|
||||
|
||||
if (!prset) return; /* unlikely */
|
||||
|
||||
|
||||
@@ -38,10 +38,10 @@ static void myCallback(CALLBACK *pcallback)
|
||||
{
|
||||
ASDBCALLBACK *pasdbcallback = (ASDBCALLBACK *)pcallback;
|
||||
subRecord *precord;
|
||||
struct rset *prset;
|
||||
rset *prset;
|
||||
|
||||
callbackGetUser(precord,pcallback);
|
||||
prset=(struct rset *)(precord->rset);
|
||||
prset=(rset *)(precord->rset);
|
||||
precord->val = 0.0;
|
||||
if(pasdbcallback->status) {
|
||||
recGblSetSevr(precord,READ_ALARM,precord->brsv);
|
||||
|
||||
@@ -94,7 +94,7 @@ static db_field_log* filter(void* pvt, dbChannel *chan, db_field_log *pfl)
|
||||
{
|
||||
myStruct *my = (myStruct*) pvt;
|
||||
struct dbCommon *prec;
|
||||
struct rset *prset;
|
||||
rset *prset;
|
||||
long start = my->start;
|
||||
long end = my->end;
|
||||
long nTarget = 0;
|
||||
|
||||
@@ -204,7 +204,7 @@ static void hookPass1(initHookState state)
|
||||
testFail("missing rec1");
|
||||
testSkip(3, "missing record");
|
||||
} else {
|
||||
struct rset *prset = dbGetRset(&addr);
|
||||
rset *prset = dbGetRset(&addr);
|
||||
dbfType ftype = addr.field_type;
|
||||
long count=-1, offset=-1, maxcount = addr.no_elements;
|
||||
testOk1(prset && prset->get_array_info && prset->put_array_info);
|
||||
|
||||
Reference in New Issue
Block a user