From 0f2fbc754bb72a9ac8f17f9b40a9f1c808bf6f2e Mon Sep 17 00:00:00 2001 From: "Janet B. Anderson" Date: Thu, 7 Feb 1991 15:48:08 +0000 Subject: [PATCH] jba changes through 2/7/91 --- src/db/dbAccess.c | 12 +- src/db/dbScan.c | 3 +- src/db/dbTest.c | 732 ++++++++++++---------------------------------- src/rec/recBo.c | 2 +- src/rec/recMbbi.c | 2 +- src/rec/recMbbo.c | 2 +- 6 files changed, 192 insertions(+), 561 deletions(-) diff --git a/src/db/dbAccess.c b/src/db/dbAccess.c index abe7d3590..bbf9154b7 100644 --- a/src/db/dbAccess.c +++ b/src/db/dbAccess.c @@ -207,7 +207,6 @@ long dbProcess(paddr) struct dbCommon *precord=(struct dbCommon *)(paddr->precord); long status; - /* If already active dont process */ if(precord->pact) { struct rset *prset; @@ -215,7 +214,7 @@ long dbProcess(paddr) /* raise scan alarm after MAX_LOCK times */ if(precord->stat==SCAN_ALARM) return(0); - if(precord->lcnt++ <=MAX_LOCK) return(0); + if(precord->lcnt++ !=MAX_LOCK) return(0); precord->sevr = MAJOR_ALARM; precord->stat = SCAN_ALARM; precord->nsev = 0; @@ -239,7 +238,7 @@ long dbProcess(paddr) long options=0; long nRequest=1; - (status = dbGetLink(precord->sdis.value.db_link,precord, + (status = dbGetLink(&precord->sdis.value.db_link,precord, DBR_SHORT,(caddr_t)(&(precord->disa)),&options,&nRequest)); if(!RTN_SUCCESS(status)) { recGblDbaddrError(status,paddr,"dbProcess"); @@ -247,7 +246,10 @@ long dbProcess(paddr) } } /* if disabled just return success */ - if(precord->disa == precord->disv) return(0); + if(precord->disa == precord->disv) { + + return(0); + } /* locate record processing routine */ if(!(prset=GET_PRSET(paddr->record_type)) || !(prset->process)) { @@ -258,6 +260,8 @@ long dbProcess(paddr) /* process record */ status = (*prset->process)(paddr); + + return(status); } diff --git a/src/db/dbScan.c b/src/db/dbScan.c index c57adf42e..438f683ff 100644 --- a/src/db/dbScan.c +++ b/src/db/dbScan.c @@ -399,6 +399,7 @@ periodicScanTask() plist->scan_index = 0; plist->pscan = plist->psets[0]; disableListScan[list] = TRUE; + break; }else if (plist->index >= NUM_RECS_PER_SET){ plist->index = 0; plist->set++; @@ -1060,7 +1061,7 @@ short list_index; /* adjust the list information */ lists[list_index].num_records++; lists[list_index].num_scan = - (lists[list_index].num_records / periods_to_complete[list_index]) + 1; + ((lists[list_index].num_records - 1) / periods_to_complete[list_index]) + 1; lists[list_index].pscan = lists[list_index].psets[0]; lists[list_index].scan_index = 0; lists[list_index].index = 0; diff --git a/src/db/dbTest.c b/src/db/dbTest.c index a2cd59aba..eeae8d42f 100644 --- a/src/db/dbTest.c +++ b/src/db/dbTest.c @@ -1,4 +1,3 @@ - /* dbTest.c */ /* share/src/db $Id$ */ @@ -64,41 +63,7 @@ * * dblls(ptypeName) list lock sets * char *ptypeName; Record type. If null all record types -*###############NEW BELOW rz1 -* The following are the report record processing rouitines -* -* int dbprReportLink(pMsgBuff,pfield_name,plink,tab_size) -* TAB_BUFFER *pMsgBuff; -* char *pfield_name; -* struct link *plink; -* int tab_size; -* -* int dbprReportCvtChoice(pMsgBuff,pfield_name,choice_value,tab_size) -* TAB_BUFFER *pMsgBuff; -* char *pfield_name; -* unsigned short choice_value; -* int tab_size; -* -* int dbprReportGblChoice(pMsgBuff,precord,pfield_name,choice_value,tab_size) -* TAB_BUFFER *pMsgBuff; -* struct dbCommon *precord; -* char *pfield_name; -* unsigned short choice_value; -* int tab_size; -* -* int dbprReportRecChoice(pMsgBuff,precord,pfield_name,choice_value,tab_size) -* TAB_BUFFER *pMsgBuff; -* struct dbCommon *precord; -* char *pfield_name; -* unsigned short choice_value; -* int tab_size; - -* int dbprReportDevChoice(pMsgBuff,paddr,pfield_name, tab_size) -* TAB_BUFFER *pMsgBuff; -* struct dbAddr *paddr; -* char *pfield_name; -* int tab_size; -################NEW ABOVE rz2 + * */ #include @@ -114,9 +79,6 @@ #include #include #include - -/*###############NEW BELOW rz1*/ - #include #include #include @@ -133,18 +95,26 @@ struct msgBuff { /* line output structure */ char message[128]; }; typedef struct msgBuff TAB_BUFFER; -/*################NEW ABOVE rz2*/ + #define MIN(x,y) ((x < y)?x:y) #define MAX(x,y) ((x > y)?x:y) /* Local Routines */ -void printDbAddr(); -void printBuffer(); -/*###############NEW BELOW rz1*/ -static int dbpr_report(); -struct fldDes *dbprGetFldRec(); +void printDbAddr(); +void printBuffer(); +int dbpr_report(); +void dbpr_msgOut(); +void dbpr_init_msg(); +void dbpr_insert_msg(); +void dbpr_msg_flush(); +void dbprReportLink(); +void dbprReportCvtChoice(); +int dbprReportGblChoice(); +void dbprReportRecChoice(); +void dbprReportDevChoice(); +struct fldDes *dbprGetFldRec(); struct recTypDes *dbprGetRecTypDes(); -/*################NEW ABOVE rz2*/ + long dbl(ptypeName) /* list process variables for specified record type*/ char *ptypeName; @@ -190,15 +160,15 @@ long dbgf(pname) /* get field value*/ char *pname; { /* declare buffer long just to ensure correct alignment */ - long buffer[100]; - long *pbuffer=&buffer[0]; - struct dbAddr addr; - long status; - long options,no_elements; - static TAB_BUFFER msg_Buff; - TAB_BUFFER *pMsgBuff = &msg_Buff; - char *pmsg = pMsgBuff->message; - int tab_size; + long buffer[100]; + long *pbuffer=&buffer[0]; + struct dbAddr addr; + long status; + long options,no_elements; + static TAB_BUFFER msg_Buff; + TAB_BUFFER *pMsgBuff = &msg_Buff; + char *pmsg = pMsgBuff->message; + int tab_size; tab_size = 10; status=dbNameToAddr(pname,&addr); @@ -219,16 +189,14 @@ long dbgf(pname) /* get field value*/ return(0); } + long dbpf(pname,pvalue) /* put field value*/ char *pname; char *pvalue; { /* declare buffer long just to ensure correct alignment */ - long buffer[100]; - long *pbuffer=&buffer[0]; struct dbAddr addr; long status; - long options,no_elements; status=dbNameToAddr(pname,&addr); if(status) { @@ -244,21 +212,18 @@ long dbpf(pname,pvalue) /* put field value*/ else return(dbgf(pname)); } -/*###############NEW BELOW rz1*/ -long -dbpr(pname, interest_level) /* print record */ +long dbpr(pname, interest_level) /* print record */ char *pname; int interest_level; { static TAB_BUFFER msg_Buff; - TAB_BUFFER *pMsgBuff = &msg_Buff; - struct dbAddr addr; - long status; - long options, - no_elements; - char *pmsg; - struct rset *prset; - int tab_size; + TAB_BUFFER *pMsgBuff = &msg_Buff; + struct dbAddr addr; + long status; + char *pmsg; + struct rset *prset; + int tab_size; + pmsg = pMsgBuff->message; tab_size = 20; @@ -271,54 +236,19 @@ dbpr(pname, interest_level) /* print record */ printf("No record Support for this record type\n"); return (1); } - if (dbpr_report(pname, &addr, interest_level, pMsgBuff, - addr.field_type, tab_size)) + if (dbpr_report(pname, &addr, interest_level, pMsgBuff, tab_size)) return (1); pmsg[0] = '\0'; dbpr_msgOut(pMsgBuff, tab_size); return (0); } -/*################NEW ABOVE rz2*/ -#if 0 /************************************************/ -long dbpr(pname) /* print record */ - char *pname; -{ - struct dbAddr addr; - long status; - long options,no_elements; - struct rset *prset; - long int (*report)()=NULL; - - status=dbNameToAddr(pname,&addr); - printDbAddr(status,&addr); - if(status) return(1); - if(!(prset=GET_PRSET(addr.record_type))) { - printf("No record Support for this record type\n"); - return(1); - } -#if 0 - if(!(report = (prset->report))) { - printf("No report routine in RSET\n"); - return(1); - } - status=(*report)(stdout,&addr); - fflush(stdout); - if(!RTN_SUCCESS(status)) - recGblRecSupError(S_db_noSupport,&addr,"dbpr","report"); -#endif - return(0); -} -#endif /************************************************/ long dbtr(pname) /* test record and print*/ char *pname; { struct dbAddr addr; - long status; - long options,no_elements; - struct rset *prset; - long int (*process)()=NULL; - struct dbCommon *precord; + long status; + struct dbCommon *precord; status=dbNameToAddr(pname,&addr); if(status) { @@ -335,7 +265,7 @@ long dbtr(pname) /* test record and print*/ return(1); } status=dbProcess(&addr); - if(!RTN_SUCCESS(status)) + if(!(RTN_SUCCESS(status))) recGblRecSupError(S_db_noSupport,&addr,"dbtr","process"); dbpr(pname,0); return(0); @@ -345,21 +275,22 @@ long dbtgf(pname) /* test all options for dbGetField */ char *pname; { /* declare buffer long just to ensure correct alignment */ - long buffer[300]; - long *pbuffer=&buffer[0]; - struct dbAddr addr; - long status; - long req_options,ret_options,no_elements; - short dbr_type; + long buffer[300]; + long *pbuffer=&buffer[0]; + struct dbAddr addr; + long status; + long req_options,ret_options,no_elements; + short dbr_type; static TAB_BUFFER msg_Buff; - TAB_BUFFER *pMsgBuff = &msg_Buff; - char *pmsg = pMsgBuff->message; - int tab_size; + TAB_BUFFER *pMsgBuff = &msg_Buff; + char *pmsg = pMsgBuff->message; + int tab_size; + tab_size = 10; status=dbNameToAddr(pname,&addr); printDbAddr(status,&addr); - if(status)return; + if(status)return(1); /* try all options first */ req_options=0xffffffff; ret_options=req_options; @@ -418,8 +349,8 @@ long dbtpf(pname,pvalue)/* test all options for dbPutField */ char *pname; { /* declare buffer long just to ensure correct alignment */ - long buffer[100]; - long *pbuffer=&buffer[0]; + long buffer[100]; + long *pbuffer=&buffer[0]; struct dbAddr addr; long status; long options,no_elements; @@ -433,8 +364,9 @@ long dbtpf(pname,pvalue)/* test all options for dbPutField */ double dvalue; static TAB_BUFFER msg_Buff; TAB_BUFFER *pMsgBuff = &msg_Buff; - char *pmsg = pMsgBuff->message; - int tab_size; + char *pmsg = pMsgBuff->message; + int tab_size; + tab_size = 10; status=dbNameToAddr(pname,&addr); @@ -575,10 +507,93 @@ long dbtpf(pname,pvalue)/* test all options for dbPutField */ return(0); } +long dbior(pdrvName) + char *pdrvName; +{ + int i; + char *pname; + struct drvet *pdrvet; + int printIt; + + if(!drvSup) { + printf("No drivers\n"); + return(0); + } + for (i=0; inumber; i++) { + if((pname=drvSup->drvetName[i])==NULL) continue; + if(pdrvName==NULL) + printIt=TRUE; + else { + printIt = (strcmp(pdrvName,pname)==0 ? TRUE : FALSE); + if(!printIt) continue; + } + if((pdrvet=drvSup->papDrvet[i])==NULL) { + printf("No driver entry table is present for %s\n",pname); + continue; + } + if(pdrvet->report==NULL) { + if(printIt&&(pdrvName!=NULL)) printf("No report available\n"); + } + else { + printf("Driver: %s\n",pname); + (*pdrvet->report)(); + } + if(pdrvName!=NULL) break; + } + return(0); +} + +long dblls(ptypeName) /* list lock set for specified record type*/ + char *ptypeName; +{ + int rectype,beg,end,recnum; + struct recLoc *precLoc; + struct dbCommon *precord; + char *pstr; + char name[PVNAME_SZ+1]; + + if(dbRecType==NULL || dbRecords==NULL) return(1); + if(ptypeName==NULL) { + beg=0; + end=dbRecords->number - 1; + } + else { + for(rectype=0; rectypenumber; rectype++) { + if(!(pstr=GET_PRECTYPE(rectype))) continue; + if(strcmp(pstr,ptypeName)==0){ + beg=rectype; + end=rectype; + goto got_it; + } + } + printf("Illegal Record Type\n"); + return(1); + } +got_it: + for(rectype=beg; rectype<=end; rectype++) { + if(!(precLoc=GET_PRECLOC(rectype))) continue; + for(recnum=0; precord=(struct dbCommon *)(GET_PRECORD(precLoc,recnum)); + recnum++) { + if(precord->name[0] == 0) continue; /*deleted record*/ + strncpy(name,precord->name,PVNAME_SZ); + name[PVNAME_SZ]=0; + printf("%4.4d %4.4d %4.4d %4.4d %4.4d %s\n", + precord->lset, + precord->lcnt, + precord->disv, + precord->disa, + precord->pact, + name); + } + } + return(0); +} + static void printDbAddr(status,paddr) long status; struct dbAddr *paddr; { + char *pstr; if(status!=0) { errMessage(status,"dbNameToAddr error"); @@ -587,7 +602,10 @@ static void printDbAddr(status,paddr) printf(" Field Address: 0x%x",paddr->pfield); printf(" Field Description: 0x%x\n",paddr->pfldDes); printf(" No Elements: %ld\n",paddr->no_elements); - printf(" Record Type: %d\n",paddr->record_type); + if (!(pstr=GET_PRECTYPE(paddr->record_type))) + printf(" Record Type: %d\n",paddr->record_type); + else + printf(" Record Type: %s\n",pstr); printf(" Field Type: %d\n",paddr->field_type); printf(" Field Size: %d\n",paddr->field_size); printf(" Special: %d\n",paddr->special); @@ -595,9 +613,9 @@ static void printDbAddr(status,paddr) printf("DBR Field Type: %d\n",paddr->dbr_field_type); } -/*###############NEW BELOW rz1*/ -void -printBuffer(status, dbr_type, pbuffer, reqOptions, retOptions, no_elements, pMsgBuff, tab_size) + +static void printBuffer(status, dbr_type, pbuffer, reqOptions, + retOptions, no_elements, pMsgBuff, tab_size) long status; short dbr_type; char *pbuffer; @@ -613,7 +631,6 @@ printBuffer(status, dbr_type, pbuffer, reqOptions, retOptions, no_elements, pMsg unsigned long epoch_seconds; unsigned long nano_seconds; unsigned long no_strs; - short sarr[6]; short svalue; unsigned short usarr[6]; unsigned short usvalue; @@ -800,8 +817,7 @@ printBuffer(status, dbr_type, pbuffer, reqOptions, retOptions, no_elements, pMsg pbuffer += dbr_ctrlDouble_size; } /* Now print values */ - if (no_elements == 0) - return; + if (no_elements == 0) return; switch (dbr_type) { case (DBR_STRING): if (status != 0) { @@ -910,7 +926,7 @@ printBuffer(status, dbr_type, pbuffer, reqOptions, retOptions, no_elements, pMsg break; } for (i = 0; i < no_elements; i++) { - sprintf(pmsg, "%-9.2g", *((float *) pbuffer)); + sprintf(pmsg, "%-13.6g", *((float *) pbuffer)); dbpr_msgOut(pMsgBuff, tab_size); pbuffer += 4; } @@ -924,7 +940,7 @@ printBuffer(status, dbr_type, pbuffer, reqOptions, retOptions, no_elements, pMsg break; } for (i = 0; i < no_elements; i++) { - sprintf(pmsg, "%-9.2g", *((double *) pbuffer)); + sprintf(pmsg, "%-13.6g", *((double *) pbuffer)); dbpr_msgOut(pMsgBuff, tab_size); pbuffer += 8; } @@ -948,378 +964,12 @@ printBuffer(status, dbr_type, pbuffer, reqOptions, retOptions, no_elements, pMsg } return; } -/*################NEW ABOVE rz2*/ - -#if 0 /************************************************/ -static void printBuffer(status,dbr_type,pbuffer,reqOptions,retOptions,no_elements) - long status; - short dbr_type; - char *pbuffer; - long reqOptions; - long retOptions; - long no_elements; -{ - unsigned short stat,severity; - long precision; - unsigned long epoch_seconds; - unsigned long nano_seconds; - unsigned long no_strs; - short sarr[6]; - short svalue; - unsigned short usarr[6]; - unsigned short usvalue; - int i; - - if(status) { - errMessage(status,"dbGetField error"); - } - if(reqOptions&DBR_STATUS) { - if(retOptions&DBR_STATUS) { - stat = *((unsigned short*)pbuffer); - severity = *((unsigned short*)(pbuffer+2)); - printf("status=%u severity=%u\n",stat,severity); - } else printf("status and severity not returned\n"); - pbuffer += dbr_status_size; - } - if(reqOptions&DBR_UNITS) { - if(retOptions&DBR_UNITS) printf("units=%-8s\n",pbuffer); - else printf("units not returned\n"); - pbuffer += dbr_units_size; - } - if(reqOptions&DBR_PRECISION) { - precision = *((long*)pbuffer); - if(retOptions&DBR_PRECISION) printf("precision=%ld\n",precision); - else printf("precision not returned\n"); - pbuffer += dbr_precision_size; - } - if(reqOptions&DBR_TIME) { - epoch_seconds = *((unsigned long*)pbuffer); - nano_seconds = *((unsigned long*)(pbuffer+4)); - if(retOptions&DBR_TIME) - printf("time=%lu %lu\n",epoch_seconds,nano_seconds); - else printf("time not returned\n"); - pbuffer += dbr_time_size; - } - if(reqOptions&DBR_ENUM_STRS) { - if(retOptions&DBR_ENUM_STRS) { - no_strs = *((unsigned long*)pbuffer); - printf("no_strs=%lu\n",no_strs); - for(i=0; i < *((unsigned long *)pbuffer); i++) - printf("%s\n",(pbuffer + 4 + i*26)); - } else printf("enum strings not returned\n"); - pbuffer += dbr_enumStrs_size; - } - if(reqOptions&DBR_GR_UCHAR) { - usarr[0]=*((unsigned char *)pbuffer); - usarr[1]=*((unsigned char *)(pbuffer+1)); - usarr[2]=*((unsigned char *)(pbuffer+2)); - usarr[3]=*((unsigned char *)(pbuffer+3)); - usarr[4]=*((unsigned char *)(pbuffer+4)); - usarr[5]=*((unsigned char *)(pbuffer+5)); - if(retOptions&DBR_GR_UCHAR) - printf("grUchar: %u %u %u %u %u %u\n", - usarr[0],usarr[1],usarr[2],usarr[3],usarr[4],usarr[5]); - else printf("DBRgrUchar not returned\n"); - pbuffer += dbr_grUchar_size; - } - if(reqOptions&DBR_GR_SHORT) { - if(retOptions&DBR_GR_SHORT) - printf("grShort: %d %d %d %d %d %d\n", - *(short *)(pbuffer), - *(short *)(pbuffer+2), - *(short *)(pbuffer+4), - *(short *)(pbuffer+6), - *(short *)(pbuffer+8), - *(short *)(pbuffer+10)); - else printf("DBRgrShort not returned\n"); - pbuffer += dbr_grShort_size; - } - if(reqOptions&DBR_GR_LONG) { - if(retOptions&DBR_GR_LONG) - printf("grLong: %ld %ld %ld %ld %ld %ld\n", - *(long *)(pbuffer), - *(long *)(pbuffer+4), - *(long *)(pbuffer+8), - *(long *)(pbuffer+12), - *(long *)(pbuffer+16), - *(long *)(pbuffer+20)); - else printf("DBRgrLong not returned\n"); - pbuffer += dbr_grLong_size; - } - if(reqOptions&DBR_GR_ULONG) { - if(retOptions&DBR_GR_ULONG) - printf("grUlong: %lu %lu %lu %lu %lu %lu\n", - *(unsigned long *)(pbuffer), - *(unsigned long *)(pbuffer+4), - *(unsigned long *)(pbuffer+8), - *(unsigned long *)(pbuffer+12), - *(unsigned long *)(pbuffer+16), - *(unsigned long *)(pbuffer+20)); - else printf("DBRgrUlong not returned\n"); - pbuffer += dbr_grUlong_size; - } - if(reqOptions&DBR_GR_FLOAT) { - if(retOptions&DBR_GR_FLOAT) - printf("grFloat: %g %g %g %g %g %g\n", - *(float *)(pbuffer), - *(float *)(pbuffer+4), - *(float *)(pbuffer+8), - *(float *)(pbuffer+12), - *(float *)(pbuffer+16), - *(float *)(pbuffer+20)); - else printf("DBRgrFloat not returned\n"); - pbuffer += dbr_grFloat_size; - } - if(reqOptions&DBR_GR_DOUBLE) { - if(retOptions&DBR_GR_DOUBLE) - printf("grDouble: %lg %lg %lg %lg %lg %lg\n", - *(double *)(pbuffer), - *(double *)(pbuffer+8), - *(double *)(pbuffer+16), - *(double *)(pbuffer+24), - *(double *)(pbuffer+32), - *(double *)(pbuffer+40)); - else printf("DBRgrDouble not returned\n"); - pbuffer += dbr_grDouble_size; - } - if(reqOptions&DBR_CTRL_UCHAR) { - usarr[0]=*((unsigned char *)pbuffer); - usarr[1]=*((unsigned char *)(pbuffer+1)); - if(retOptions&DBR_CTRL_UCHAR) - printf("ctrlUchar: %u %u\n", - usarr[0],usarr[1]); - else printf("DBRctrlUchar not returned\n"); - pbuffer += dbr_ctrlUchar_size; - } - if(reqOptions&DBR_CTRL_SHORT) { - if(retOptions&DBR_CTRL_SHORT) - printf("ctrlShort: %d %d\n", - *(short *)(pbuffer), - *(short *)(pbuffer+2)); - else printf("DBRctrlShort not returned\n"); - pbuffer += dbr_ctrlShort_size; - } - if(reqOptions&DBR_CTRL_LONG) { - if(retOptions&DBR_CTRL_LONG) - printf("ctrlLong: %ld %ld\n", - *(long *)(pbuffer), - *(long *)(pbuffer+4)); - else printf("DBRctrlLong not returned\n"); - pbuffer += dbr_ctrlLong_size; - } - if(reqOptions&DBR_CTRL_ULONG) { - if(retOptions&DBR_CTRL_ULONG) - printf("ctrlUlong: %lu %lu\n", - *(unsigned long *)(pbuffer), - *(unsigned long *)(pbuffer+4)); - else printf("DBRctrlUlong not returned\n"); - pbuffer += dbr_ctrlUlong_size; - } - if(reqOptions&DBR_CTRL_FLOAT) { - if(retOptions&DBR_CTRL_FLOAT) - printf("ctrlFloat: %g %g\n", - *(float *)(pbuffer), - *(float *)(pbuffer+4)); - else printf("DBRctrlFloat not returned\n"); - pbuffer += dbr_ctrlFloat_size; - } - if(reqOptions&DBR_CTRL_DOUBLE) { - if(retOptions&DBR_CTRL_DOUBLE) - printf("ctrlDouble: %lg %lg\n", - *(double *)(pbuffer), - *(double *)(pbuffer+8)); - else printf("DBRctrlDouble not returned\n"); - pbuffer += dbr_ctrlDouble_size; - } - /*Now print values*/ - if(no_elements==0)return; - switch(dbr_type) { - case(DBR_STRING): - if(status!=0) {printf("DBR_STRING: failed."); break;} - printf("DBR_STRING: %s",pbuffer); - break; - case(DBR_CHAR): - printf("DBR_CHAR: "); - if(status!=0) {printf(" failed."); break;} - for(i=0; inumber; i++) { - if((pname=drvSup->drvetName[i])==NULL) continue; - if(pdrvName==NULL) - printIt=TRUE; - else { - printIt = (strcmp(pdrvName,pname)==0 ? TRUE : FALSE); - if(!printIt) continue; - } - if((pdrvet=drvSup->papDrvet[i])==NULL) { - printf("No driver entry table is present for %s\n",pname); - continue; - } - if(pdrvet->report==NULL) { - if(printIt&&(pdrvName!=NULL)) printf("No report available\n"); - } - else { - printf("Driver: %s\n",pname); - (*pdrvet->report)(); - } - if(pdrvName!=NULL) break; - } - return(0); -} - -long dblls(ptypeName) /* list lock set for specified record type*/ - char *ptypeName; -{ - int rectype,beg,end,recnum; - struct recLoc *precLoc; - struct dbCommon *precord; - char *pstr; - char name[PVNAME_SZ+1]; - - if(dbRecType==NULL || dbRecords==NULL) return(1); - if(ptypeName==NULL) { - beg=0; - end=dbRecords->number - 1; - } - else { - for(rectype=0; rectypenumber; rectype++) { - if(!(pstr=GET_PRECTYPE(rectype))) continue; - if(strcmp(pstr,ptypeName)==0){ - beg=rectype; - end=rectype; - goto got_it; - } - } - printf("Illegal Record Type\n"); - return(1); - } -got_it: - for(rectype=beg; rectype<=end; rectype++) { - if(!(precLoc=GET_PRECLOC(rectype))) continue; - for(recnum=0; precord=(struct dbCommon *)(GET_PRECORD(precLoc,recnum)); - recnum++) { - if(precord->name[0] == 0) continue; /*deleted record*/ - strncpy(name,precord->name,PVNAME_SZ); - name[PVNAME_SZ]=0; - printf("%4.4d %4.4d %4.4d %4.4d %4.4d %s\n", - precord->lset, - precord->lcnt, - precord->disv, - precord->disa, - precord->pact, - name); - } - } - return(0); -} -/*###############NEW BELOW rz1*/ -/* */ -static int -dbpr_report(pname, paddr, interest_level, pMsgBuff, field_type, tab_size) +static int dbpr_report(pname, paddr, interest_level, pMsgBuff, tab_size) char *pname; struct dbAddr *paddr; /* requested PV name */ int interest_level; TAB_BUFFER *pMsgBuff; - short field_type; int tab_size; { @@ -1330,7 +980,6 @@ dbpr_report(pname, paddr, interest_level, pMsgBuff, field_type, tab_size) struct recTypDes *precTypDes; struct dbAddr *pLaddr; struct dbAddr Laddr; /* local address */ - short no_fields; short fldNum; /* field number */ char *pRecordName; char RecordName[PVNAME_SZ + 2]; /* pv record name */ @@ -1340,8 +989,6 @@ dbpr_report(pname, paddr, interest_level, pMsgBuff, field_type, tab_size) char PvName[PVNAME_SZ + FLDNAME_SZ + 4]; /* recordname. */ short n; long status; - int i; - int debug = 0; long buffer[BFSIZE]; /* limit array buffer to 1st 50 */ caddr_t pbuffer; long options; @@ -1402,7 +1049,7 @@ dbpr_report(pname, paddr, interest_level, pMsgBuff, field_type, tab_size) status = dbNameToAddr(pPvName, &Laddr); if (status) return (1); - if (pfldDes->interest < interest_level ) + if (pfldDes->interest >= interest_level ) continue; pLaddr = &Laddr; switch (pfldDes->field_type) { @@ -1478,7 +1125,6 @@ dbpr_report(pname, paddr, interest_level, pMsgBuff, field_type, tab_size) dbprReportDevChoice(pMsgBuff, pLaddr, pfield_name, tab_size); break; case DBF_GBLCHOICE: - debug++; if (dbprReportGblChoice(pMsgBuff, pLaddr->precord, pfield_name, *(short *) pLaddr->pfield, tab_size)) return (-1); @@ -1516,11 +1162,8 @@ dbpr_report(pname, paddr, interest_level, pMsgBuff, field_type, tab_size) } return (0); } -/*################NEW ABOVE rz2*/ -/*###############NEW BELOW rz1*/ -/* */ -static -dbpr_msgOut(pMsgBuff, tab_size) + +static void dbpr_msgOut(pMsgBuff, tab_size) TAB_BUFFER *pMsgBuff; int tab_size; { @@ -1528,9 +1171,10 @@ dbpr_msgOut(pMsgBuff, tab_size) int err = 0; char *pmsg = pMsgBuff->message; static int last_tabsize; + if (!((tab_size == 10) || (tab_size == 20))) { printf("tab_size not 10 or 20 - dbpr_msgOut()\n"); - return (1); + return; } /* init if first time */ if (!(pMsgBuff->pNext)) @@ -1542,7 +1186,7 @@ dbpr_msgOut(pMsgBuff, tab_size) /* flush output if NULL string command */ if (*pmsg == 0) { dbpr_msg_flush(pMsgBuff, tab_size); - return (0); + return; } /* truncate if too long */ if ((len = strlen(pmsg)) > MAXLINE) @@ -1558,16 +1202,13 @@ dbpr_msgOut(pMsgBuff, tab_size) "dbpr_msgOut: ERROR - msg length=%d limit=%d ", len, MAXLINE); - dbpr_insert_msg(pMsgBuff, len); - return (1); + dbpr_insert_msg(pMsgBuff, len, tab_size); + return; } - return (0); + return; } -/*################NEW ABOVE rz2*/ - -/*###############NEW BELOW rz1*/ -static -dbpr_init_msg(pMsgBuff, tab_size) + +static void dbpr_init_msg(pMsgBuff, tab_size) TAB_BUFFER *pMsgBuff; int tab_size; { @@ -1576,9 +1217,8 @@ dbpr_init_msg(pMsgBuff, tab_size) pMsgBuff->pNexTab = pMsgBuff->out_buff + tab_size; return; } -/* */ -static -dbpr_insert_msg(pMsgBuff, len, tab_size) + +static void dbpr_insert_msg(pMsgBuff, len, tab_size) TAB_BUFFER *pMsgBuff; int len; int tab_size; @@ -1610,17 +1250,11 @@ dbpr_insert_msg(pMsgBuff, len, tab_size) && pMsgBuff->pNext < pMsgBuff->pLast) { *pMsgBuff->pNext++ = ' '; } -#if 0 - /* output if line is full */ - if (*(pMsgBuff->pLast - 1) == ' ') - dbpr_msg_flush(pMsgBuff, tab_size); -#endif return; } - -static -dbpr_msg_flush(pMsgBuff, tab_size) + +static void dbpr_msg_flush(pMsgBuff, tab_size) TAB_BUFFER *pMsgBuff; int tab_size; { @@ -1632,10 +1266,8 @@ dbpr_msg_flush(pMsgBuff, tab_size) pMsgBuff->pNexTab = pMsgBuff->out_buff + tab_size; return; } -/*################NEW ABOVE rz2*/ -/*###############NEW BELOW rz1*/ -int dbprReportLink(pMsgBuff,pfield_name,plink,field_type, tab_size) +static void dbprReportLink(pMsgBuff,pfield_name,plink,field_type, tab_size) TAB_BUFFER *pMsgBuff; char *pfield_name; struct link *plink; @@ -1730,10 +1362,10 @@ int dbprReportLink(pMsgBuff,pfield_name,plink,field_type, tab_size) dbpr_msgOut(pMsgBuff,tab_size); break; } - return(0); + return; } -int dbprReportCvtChoice(pMsgBuff,pfield_name,choice_value,tab_size) +static void dbprReportCvtChoice(pMsgBuff,pfield_name,choice_value,tab_size) TAB_BUFFER *pMsgBuff; char *pfield_name; unsigned short choice_value; @@ -1750,10 +1382,10 @@ int dbprReportCvtChoice(pMsgBuff,pfield_name,choice_value,tab_size) sprintf(pmsg,"%4s: %s",pfield_name,pchoice); dbpr_msgOut(pMsgBuff,tab_size); } - return(0); + return; } -int dbprReportGblChoice(pMsgBuff,precord,pfield_name,choice_value, tab_size) +static int dbprReportGblChoice(pMsgBuff,precord,pfield_name,choice_value, tab_size) TAB_BUFFER *pMsgBuff; struct dbCommon *precord; char *pfield_name; @@ -1786,7 +1418,7 @@ int dbprReportGblChoice(pMsgBuff,precord,pfield_name,choice_value, tab_size) return(0); } -int dbprReportRecChoice(pMsgBuff,precord,pfield_name,choice_value,tab_size) +static void dbprReportRecChoice(pMsgBuff,precord,pfield_name,choice_value,tab_size) TAB_BUFFER *pMsgBuff; struct dbCommon *precord; char *pfield_name; @@ -1806,7 +1438,7 @@ int dbprReportRecChoice(pMsgBuff,precord,pfield_name,choice_value,tab_size) if(dbNameToAddr(name,&dbAddr)) { sprintf(pmsg,"%4s: dbNameToAddr failed?",pfield_name); dbpr_msgOut(pMsgBuff,tab_size); - return(0); + return; } if( !(parrChoiceSet=GET_PARR_CHOICE_SET(choiceRec,dbAddr.record_type)) || !(pchoiceSet=GET_PCHOICE_SET(parrChoiceSet,dbAddr.choice_set)) @@ -1817,10 +1449,10 @@ int dbprReportRecChoice(pMsgBuff,precord,pfield_name,choice_value,tab_size) sprintf(pmsg,"%4s: %s",pfield_name,pchoice); } dbpr_msgOut(pMsgBuff,tab_size); - return(0); + return; } -int dbprReportDevChoice(pMsgBuff,paddr,pfield_name, tab_size) +static void dbprReportDevChoice(pMsgBuff,paddr,pfield_name, tab_size) TAB_BUFFER *pMsgBuff; struct dbAddr *paddr; char *pfield_name; @@ -1838,28 +1470,24 @@ int dbprReportDevChoice(pMsgBuff,paddr,pfield_name, tab_size) "%4s: Only one element allowed - dbprReportDevChoice", pfield_name); dbpr_msgOut(pMsgBuff,tab_size); - return(S_db_onlyOne); + return; } if((!(pdevChoiceSet=GET_PDEV_CHOICE_SET(choiceDev,paddr->record_type))) || (!(pdevChoice=GET_DEV_CHOICE(pdevChoiceSet,choice_ind))) ) { sprintf(pmsg, "%4s: NULL", pfield_name); dbpr_msgOut(pMsgBuff,tab_size); - return(S_db_badChoice); + return; } strncpy(buff,pdevChoice->pchoice,MAX_STRING_SIZE); sprintf(pmsg,"%4s: %s", pfield_name, buff); dbpr_msgOut(pMsgBuff,tab_size); - return(0); + return; } -/*################NEW ABOVE rz2*/ - -/*###############NEW BELOW rz1*/ -/* */ -static struct fldDes * -dbprGetFldRec(type, fldNum) + +static struct fldDes * dbprGetFldRec(type, fldNum) short type; /* record type */ short fldNum; /* field number */ { @@ -1878,8 +1506,8 @@ dbprGetFldRec(type, fldNum) pfield = precTypDes->papFldDes[fldNum]; return (pfield); } -static struct recTypDes * -dbprGetRecTypDes(type) + +static struct recTypDes * dbprGetRecTypDes(type) short type; /* record type */ { struct recTypDes *precTypDes; @@ -1895,5 +1523,3 @@ dbprGetRecTypDes(type) return (NULL); return (precTypDes); } -/*################NEW ABOVE rz2*/ -/*#############JUNK*************/ diff --git a/src/rec/recBo.c b/src/rec/recBo.c index 8387e0256..b52643b19 100644 --- a/src/rec/recBo.c +++ b/src/rec/recBo.c @@ -134,7 +134,7 @@ static void myCallback(pcallback) struct boRecord *pbo = (struct boRecord *)(pcallback->dbAddr.precord); dbScanLock(pbo); - pbo->val = 1; + pbo->val = 0; (void)process(&(pcallback->dbAddr)); dbScanUnlock(pbo); } diff --git a/src/rec/recMbbi.c b/src/rec/recMbbi.c index 99eb29633..c1d1f201a 100644 --- a/src/rec/recMbbi.c +++ b/src/rec/recMbbi.c @@ -267,7 +267,7 @@ static void alarm(pmbbi) unsigned short *severities; short val=pmbbi->val; - if(val = pmbbi->lalm) return; + if(val == pmbbi->lalm) return; pmbbi->lalm = val; /* check for state alarm */ diff --git a/src/rec/recMbbo.c b/src/rec/recMbbo.c index 2cb711d51..c0dae2b91 100644 --- a/src/rec/recMbbo.c +++ b/src/rec/recMbbo.c @@ -305,7 +305,7 @@ static void alarm(pmbbo) unsigned short *severities; short val=pmbbo->val; - if(val = pmbbo->lalm) return; + if(val == pmbbo->lalm) return; pmbbo->lalm = val; /* check for state alarm */