diff --git a/src/ioc/db/chfPlugin.c b/src/ioc/db/chfPlugin.c index 4630edd0a..0cf4f367f 100644 --- a/src/ioc/db/chfPlugin.c +++ b/src/ioc/db/chfPlugin.c @@ -70,6 +70,7 @@ store_integer_value(const chfPluginArgDef *opt, char *user, epicsInt32 val) const chfPluginEnumType *emap; double *dval; char *sval; + int ret; char buff[22]; /* 2^64 = 1.8e+19, so 20 digits plus sign max */ #ifdef DEBUG_CHF @@ -96,7 +97,8 @@ store_integer_value(const chfPluginArgDef *opt, char *user, epicsInt32 val) break; case chfPluginArgString: sval = user + opt->offset; - if (sprintf(buff, "%ld", (long)val) > opt->size - 1) { + ret = sprintf(buff, "%ld", (long)val); + if (ret < 0 || (unsigned) ret > opt->size - 1) { return -1; } strncpy(sval, buff, opt->size-1); @@ -154,7 +156,7 @@ static int store_boolean_value(const chfPluginArgDef *opt, char *user, int val) break; case chfPluginArgString: sval = user + opt->offset; - if ((val ? 4 : 5) > opt->size - 1) { + if ((unsigned) (val ? 4 : 5) > opt->size - 1) { return -1; } strncpy(sval, val ? "true" : "false", opt->size - 1); @@ -178,7 +180,7 @@ store_double_value(const chfPluginArgDef *opt, void *vuser, double val) epicsInt32 *ival; double *dval; char *sval; - int i; + unsigned int i; #ifdef DEBUG_CHF printf("Got a double for %s (type %d, convert: %s): %g\n", @@ -236,7 +238,7 @@ store_string_value(const chfPluginArgDef *opt, char *user, const char *val, double *dval; char *sval; char *end; - int i; + size_t i; #ifdef DEBUG_CHF printf("Got a string for %s (type %d): %.*s\n", diff --git a/src/ioc/db/dbAccess.c b/src/ioc/db/dbAccess.c index 904423a71..bf0f00dec 100644 --- a/src/ioc/db/dbAccess.c +++ b/src/ioc/db/dbAccess.c @@ -143,7 +143,7 @@ static void get_enum_strs(DBADDR *paddr, char **ppbuffer, unsigned long no_str; char *ptemp; struct dbr_enumStrs *pdbr_enumStrs=(struct dbr_enumStrs*)(*ppbuffer); - int i; + unsigned int i; memset(pdbr_enumStrs,'\0',dbr_enumStrs_size); switch(field_type) { diff --git a/src/ioc/db/dbChannel.c b/src/ioc/db/dbChannel.c index be24842d2..d555c5f2e 100644 --- a/src/ioc/db/dbChannel.c +++ b/src/ioc/db/dbChannel.c @@ -14,6 +14,7 @@ */ #include +#include #include #include "cantProceed.h" @@ -273,7 +274,7 @@ static long chf_parse(dbChannel *chan, const char **pjson) if (!yh) return S_db_noMemory; - ys = yajl_parse(yh, (const unsigned char *) json, jlen); + ys = yajl_parse(yh, (const unsigned char *) json, (unsigned int) jlen); if (ys == yajl_status_insufficient_data) ys = yajl_parse_complete(yh); @@ -286,7 +287,7 @@ static long chf_parse(dbChannel *chan, const char **pjson) case yajl_status_error: { unsigned char *err; - err = yajl_get_error(yh, 1, (const unsigned char *) json, jlen); + err = yajl_get_error(yh, 1, (const unsigned char *) json, (unsigned int) jlen); printf("dbChannelCreate: %s\n", err); yajl_free_error(yh, err); } /* fall through */ @@ -349,7 +350,7 @@ static long parseArrayRange(dbChannel* chan, const char *pname, const char **ppn epicsInt32 incr = 1; epicsInt32 l; char *pnext; - short exist; + ptrdiff_t exist; chFilter *filter; const chFilterPlugin *plug; parse_result result; diff --git a/src/ioc/db/dbChannelIO.cpp b/src/ioc/db/dbChannelIO.cpp index 4632ffb16..475d31943 100644 --- a/src/ioc/db/dbChannelIO.cpp +++ b/src/ioc/db/dbChannelIO.cpp @@ -197,7 +197,7 @@ unsigned dbChannelIO::getName ( size_t len = strlen ( name ); strncpy ( pBuf, name, bufLen ); if (len < bufLen) - return len; + return (unsigned) len; pBuf[--bufLen] = '\0'; return bufLen; } diff --git a/src/ioc/db/dbLink.c b/src/ioc/db/dbLink.c index 54e131566..53676a07d 100644 --- a/src/ioc/db/dbLink.c +++ b/src/ioc/db/dbLink.c @@ -288,7 +288,7 @@ static long dbDbGetPrecision(const struct link *plink, short *precision) if (status) return status; - *precision = buffer.precision.dp; + *precision = (short) buffer.precision.dp; return 0; } @@ -658,7 +658,7 @@ long dbLoadLinkLS(struct link *plink, char *pbuffer, epicsUInt32 size, plink->value.constantStr) { strncpy(pbuffer, plink->value.constantStr, --size); pbuffer[size] = 0; - *plen = strlen(pbuffer) + 1; + *plen = (epicsUInt32) strlen(pbuffer) + 1; return 0; } @@ -690,7 +690,7 @@ long dbGetLinkLS(struct link *plink, char *pbuffer, epicsUInt32 size, } if (!status) { pbuffer[--len] = 0; - *plen = strlen(pbuffer) + 1; + *plen = (epicsUInt32) strlen(pbuffer) + 1; } return status; } diff --git a/src/ioc/db/dbTest.c b/src/ioc/db/dbTest.c index ec60c863e..2198e0a12 100644 --- a/src/ioc/db/dbTest.c +++ b/src/ioc/db/dbTest.c @@ -69,7 +69,7 @@ static int dbpr_report(const char *pname, DBADDR *paddr, int interest_level, TAB_BUFFER *pMsgBuff, int tab_size); static void dbpr_msgOut(TAB_BUFFER *pMsgBuff,int tab_size); static void dbpr_init_msg(TAB_BUFFER *pMsgBuff,int tab_size); -static void dbpr_insert_msg(TAB_BUFFER *pMsgBuff,int len,int tab_size); +static void dbpr_insert_msg(TAB_BUFFER *pMsgBuff,size_t len,int tab_size); static void dbpr_msg_flush(TAB_BUFFER *pMsgBuff,int tab_size); static char *dbf[DBF_NTYPES] = { @@ -337,7 +337,7 @@ long dbpf(const char *pname,const char *pvalue) long status; epicsUInt16 value; short dbrType; - long n = 1; + size_t n = 1; if (!pname || !*pname || !pvalue) { printf("Usage: dbpf \"pv name\", \"value\"\n"); @@ -365,7 +365,7 @@ long dbpf(const char *pname,const char *pvalue) dbrType = DBR_STRING; } - status = dbPutField(&addr, dbrType, pvalue, n); + status = dbPutField(&addr, dbrType, pvalue, (long) n); if (status) { if (status == -1) printf("dbpf: Value conversion from %s to %s failed\n", @@ -579,13 +579,13 @@ long dbtpf(const char *pname, const char *pvalue) break; case DBR_SHORT: if ((valid = validLong)) { - epicsInt16 val_i16 = val_long; + epicsInt16 val_i16 = (epicsInt16) val_long; status = dbPutField(&addr, put_type, &val_i16,1L); } break; case DBR_USHORT: if ((valid = validULong)) { - epicsUInt16 val_u16 = val_ulong; + epicsUInt16 val_u16 = (epicsUInt16) val_ulong; status = dbPutField(&addr, put_type, &val_u16, 1L); } break; @@ -611,7 +611,7 @@ long dbtpf(const char *pname, const char *pvalue) break; case DBR_ENUM: if ((valid = validULong)) { - epicsEnum16 val_e16 = val_ulong; + epicsEnum16 val_e16 = (epicsEnum16) val_ulong; status = dbPutField(&addr, put_type, &val_e16, 1L); } break; @@ -755,7 +755,7 @@ static void printBuffer( epicsInt32 val_i32; epicsUInt32 val_u32; char *pmsg = pMsgBuff->message; - int i, len; + size_t i, len; if (reqOptions & DBR_STATUS) { if (retOptions & DBR_STATUS) { @@ -1252,7 +1252,7 @@ static int dbpr_report( static void dbpr_msgOut(TAB_BUFFER *pMsgBuff,int tab_size) { - int len; + size_t len; int err = 0; char *pmsg = pMsgBuff->message; static int last_tabsize; @@ -1298,11 +1298,11 @@ static void dbpr_init_msg(TAB_BUFFER *pMsgBuff,int tab_size) pMsgBuff->pNexTab = pMsgBuff->out_buff + tab_size; } -static void dbpr_insert_msg(TAB_BUFFER *pMsgBuff,int len,int tab_size) +static void dbpr_insert_msg(TAB_BUFFER *pMsgBuff,size_t len,int tab_size) { - int current_len; - int n; - int tot_line; + size_t current_len; + size_t n; + size_t tot_line; char *pmsg = pMsgBuff->message; current_len = strlen(pMsgBuff->out_buff); tot_line = current_len + len; diff --git a/src/ioc/db/db_access.c b/src/ioc/db/db_access.c index cb1f5b8db..a73bc88d0 100644 --- a/src/ioc/db/db_access.c +++ b/src/ioc/db/db_access.c @@ -471,7 +471,7 @@ int dbChannel_get_count( status = dbChannelGetField(chan, DBR_FLOAT, &newSt, &options, &zero, pfl); pold->status = newSt.status; pold->severity = newSt.severity; - pold->precision = newSt.precision.dp; + pold->precision = (dbr_short_t) newSt.precision.dp; strncpy(pold->units, newSt.units, MAX_UNITS_SIZE); pold->units[MAX_UNITS_SIZE-1] = '\0'; pold->upper_disp_limit = epicsConvertDoubleToFloat(newSt.upper_disp_limit); @@ -556,7 +556,7 @@ int dbChannel_get_count( status = dbChannelGetField(chan, DBR_DOUBLE, &newSt, &options, &zero, pfl); pold->status = newSt.status; pold->severity = newSt.severity; - pold->precision = newSt.precision.dp; + pold->precision = (dbr_short_t) newSt.precision.dp; strncpy(pold->units, newSt.units, MAX_UNITS_SIZE); pold->units[MAX_UNITS_SIZE-1] = '\0'; pold->upper_disp_limit = newSt.upper_disp_limit; @@ -620,7 +620,7 @@ int dbChannel_get_count( status = dbChannelGetField(chan, DBR_FLOAT, &newSt, &options, &zero, pfl); pold->status = newSt.status; pold->severity = newSt.severity; - pold->precision = newSt.precision.dp; + pold->precision = (dbr_short_t) newSt.precision.dp; strncpy(pold->units, newSt.units, MAX_UNITS_SIZE); pold->units[MAX_UNITS_SIZE-1] = '\0'; pold->upper_disp_limit = epicsConvertDoubleToFloat(newSt.upper_disp_limit); @@ -742,7 +742,7 @@ int dbChannel_get_count( status = dbChannelGetField(chan, DBR_DOUBLE, &newSt, &options, &zero, pfl); pold->status = newSt.status; pold->severity = newSt.severity; - pold->precision = newSt.precision.dp; + pold->precision = (dbr_short_t) newSt.precision.dp; strncpy(pold->units, newSt.units, MAX_UNITS_SIZE); pold->units[MAX_UNITS_SIZE-1] = '\0'; pold->upper_disp_limit = newSt.upper_disp_limit; diff --git a/src/ioc/db/db_convert.h b/src/ioc/db/db_convert.h index 57b178a23..694c0dd07 100644 --- a/src/ioc/db/db_convert.h +++ b/src/ioc/db/db_convert.h @@ -31,8 +31,10 @@ epicsShareExtern long (*dbGetConvertRoutine[newDBF_DEVICE+1][newDBR_ENUM+1]) epicsShareExtern long (*dbPutConvertRoutine[newDBR_ENUM+1][newDBF_DEVICE+1]) (struct dbAddr *paddr, const void *pbuffer,long nRequest, long no_elements, long offset); -epicsShareExtern long (*dbFastGetConvertRoutine[newDBF_DEVICE+1][newDBR_ENUM+1])(); -epicsShareExtern long (*dbFastPutConvertRoutine[newDBR_ENUM+1][newDBF_DEVICE+1])(); +epicsShareExtern long (*dbFastGetConvertRoutine[newDBF_DEVICE+1][newDBR_ENUM+1]) + (const void *from, void *to, dbAddr *paddr); +epicsShareExtern long (*dbFastPutConvertRoutine[newDBR_ENUM+1][newDBF_DEVICE+1]) + (const void *from, void *to, dbAddr *paddr); /*Conversion between old and new DBR types*/ epicsShareExtern unsigned short dbDBRoldToDBFnew[DBR_DOUBLE+1]; diff --git a/src/ioc/dbStatic/dbLexRoutines.c b/src/ioc/dbStatic/dbLexRoutines.c index 09d9524af..414111198 100644 --- a/src/ioc/dbStatic/dbLexRoutines.c +++ b/src/ioc/dbStatic/dbLexRoutines.c @@ -305,7 +305,7 @@ long dbReadDatabaseFP(DBBASE **ppdbbase,FILE *fp, static int db_yyinput(char *buf, int max_size) { - int l,n; + size_t l,n; char *fgetsRtn; if(yyAbort) return(0); diff --git a/src/ioc/dbStatic/dbPvdLib.c b/src/ioc/dbStatic/dbPvdLib.c index 8f7162a6c..dbbd19417 100644 --- a/src/ioc/dbStatic/dbPvdLib.c +++ b/src/ioc/dbStatic/dbPvdLib.c @@ -78,7 +78,7 @@ void dbPvdInitPvt(dbBase *pdbbase) return; } -PVDENTRY *dbPvdFind(dbBase *pdbbase, const char *name, int lenName) +PVDENTRY *dbPvdFind(dbBase *pdbbase, const char *name, size_t lenName) { dbPvd *ppvd = pdbbase->ppvd; dbPvdBucket *pbucket; diff --git a/src/ioc/dbStatic/dbStaticLib.c b/src/ioc/dbStatic/dbStaticLib.c index 58d0242e1..e1538cbb0 100644 --- a/src/ioc/dbStatic/dbStaticLib.c +++ b/src/ioc/dbStatic/dbStaticLib.c @@ -9,6 +9,7 @@ /* $Revision-Id$ */ #include +#include #include #include #include @@ -395,10 +396,10 @@ void dbCatString(char **string,int *stringLength,char *src,char *separator) } if(*stringLength>0) { strcat(*string,separator); - *stringLength += strlen(separator); + *stringLength += (int) strlen(separator); } strcat(*string,src); - *stringLength += strlen(src); + *stringLength += (int) strlen(src); } dbBase * dbAllocBase(void) @@ -698,7 +699,7 @@ long dbAddPath(DBBASE *pdbbase,const char *path) * 2) isnt a path separator */ len = (plast - path) + 1; - if (dbAddOnePath (pdbbase, path, len)) return (-1); + if (dbAddOnePath (pdbbase, path, (unsigned) len)) return (-1); path += len; if (pcolon) { path += strlen(OSI_PATH_LIST_SEPARATOR); @@ -1232,7 +1233,7 @@ long dbGetAttributePart(DBENTRY *pdbentry, const char **ppname) if (!precordType) return S_dbLib_recordTypeNotFound; pattribute = (dbRecordAttribute *)ellFirst(&precordType->attributeList); while (pattribute) { - int nameLen = strlen(pattribute->name); + size_t nameLen = strlen(pattribute->name); int compare = strncmp(pattribute->name, pname, nameLen); int ch = pname[nameLen]; if (compare == 0 && !(ch == '_' || isalnum(ch))) { @@ -1491,13 +1492,13 @@ long dbFindRecordPart(DBENTRY *pdbentry, const char **ppname) dbBase *pdbbase = pdbentry->pdbbase; const char *pname = *ppname; const char *pfn; - int lenName; + size_t lenName; PVDENTRY *ppvdNode; zeroDbentry(pdbentry); pfn = strchr(pname, '.'); if (pfn) { - lenName = pfn - pname; + lenName = (size_t) (pfn - pname); } else { lenName = strlen(pname); } @@ -1760,7 +1761,7 @@ long dbFindFieldPart(DBENTRY *pdbentry,const char **ppname) char **papsortFldName; short *sortFldInd; int ch; - int nameLen; + size_t nameLen; if (!precordType) return S_dbLib_recordTypeNotFound; if (!precnode) return S_dbLib_recNotFound; @@ -1792,7 +1793,7 @@ long dbFindFieldPart(DBENTRY *pdbentry,const char **ppname) bottom = 0; test = (top + bottom) / 2; while (1) { - int compare = strncmp(papsortFldName[test], pname, nameLen); + size_t compare = strncmp(papsortFldName[test], pname, nameLen); if (compare == 0) compare = strlen(papsortFldName[test]) - nameLen; if (compare == 0) { @@ -2092,7 +2093,7 @@ long dbPutString(DBENTRY *pdbentry,const char *pstring) DBLINK *plink; char string[80]; char *pstr = string; - int ind; + size_t ind; if (!pfield) return S_dbLib_fieldNotFound; @@ -2363,7 +2364,7 @@ long dbPutString(DBENTRY *pdbentry,const char *pstring) if(!(end = strchr(pstr,'G'))) return (S_dbLib_badField); pstr = end + 1; cvtDecimalOrHexToShort(pstr,&tmp_val); - plink->value.bbgpibio.gpibaddr=tmp_val; + plink->value.bbgpibio.gpibaddr=(unsigned char)tmp_val; status = putParmString(&plink->value.bbgpibio.parm,pstr); } break; diff --git a/src/ioc/dbStatic/dbStaticPvt.h b/src/ioc/dbStatic/dbStaticPvt.h index 26c583b0f..8f8664dc1 100644 --- a/src/ioc/dbStatic/dbStaticPvt.h +++ b/src/ioc/dbStatic/dbStaticPvt.h @@ -52,7 +52,7 @@ typedef struct{ epicsShareFunc int dbPvdTableSize(int size); extern int dbStaticDebug; void dbPvdInitPvt(DBBASE *pdbbase); -PVDENTRY *dbPvdFind(DBBASE *pdbbase,const char *name,int lenname); +PVDENTRY *dbPvdFind(DBBASE *pdbbase,const char *name,size_t lenname); PVDENTRY *dbPvdAdd(DBBASE *pdbbase,dbRecordType *precordType,dbRecordNode *precnode); void dbPvdDelete(DBBASE *pdbbase,dbRecordNode *precnode); void dbPvdFreeMem(DBBASE *pdbbase); diff --git a/src/ioc/dbStatic/dbStaticRun.c b/src/ioc/dbStatic/dbStaticRun.c index 9b3febc83..93daa0814 100644 --- a/src/ioc/dbStatic/dbStaticRun.c +++ b/src/ioc/dbStatic/dbStaticRun.c @@ -63,7 +63,8 @@ static int precision[2] = {6, 14}; static void realToString(double value, char *preturn, int isdouble) { double absvalue; - int logval,prec,end; + int logval,prec; + size_t end; char tstr[30]; char *ptstr = &tstr[0]; int round; @@ -583,9 +584,9 @@ long dbPutStringNum(DBENTRY *pdbentry,const char *pstring) value = strtol(pstring,&endp,0); if(*endp!=0) status = S_dbLib_badField; switch (pflddes->field_type) { - case DBF_CHAR : *(char *)pfield = value; break; - case DBF_SHORT : *(short *)pfield = value; break; - case DBF_LONG : *(epicsInt32 *)pfield = value; break; + case DBF_CHAR : *(char *)pfield = (char)value; break; + case DBF_SHORT : *(short *)pfield = (short)value; break; + case DBF_LONG : *(epicsInt32 *)pfield = (epicsInt32)value; break; default: epicsPrintf("Logic error in dbPutStringNum\n"); } } @@ -600,10 +601,10 @@ long dbPutStringNum(DBENTRY *pdbentry,const char *pstring) value = strtoul(pstring,&endp,0); if(*endp!=0) status = S_dbLib_badField; switch (pflddes->field_type) { - case DBF_UCHAR : *(unsigned char *)pfield = value; break; + case DBF_UCHAR : *(unsigned char *)pfield = (unsigned char)value; break; case DBF_USHORT: - case DBF_ENUM: *(unsigned short *)pfield=value; break; - case DBF_ULONG : *(epicsUInt32 *)pfield = value; break; + case DBF_ENUM: *(unsigned short *)pfield = (unsigned short)value; break; + case DBF_ULONG : *(epicsUInt32 *)pfield = (epicsUInt32)value; break; default: epicsPrintf("Logic error in dbPutStringNum\n"); } }