Files
pcas/src/db/recSup.h
1996-01-25 21:13:33 +00:00

107 lines
4.1 KiB
C
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* recSup.h
* Record Support
* Author: Marty Kraimer
* Date: 6-1-90
*
* Experimental Physics and Industrial Control System (EPICS)
*
* Copyright 1991, the Regents of the University of California,
* and the University of Chicago Board of Governors.
*
* This software was produced under U.S. Government contracts:
* (W-7405-ENG-36) at the Los Alamos National Laboratory,
* and (W-31-109-ENG-38) at Argonne National Laboratory.
*
* Initial development by:
* The Controls and Automation Group (AT-8)
* Ground Test Accelerator
* Accelerator Technology Division
* Los Alamos National Laboratory
*
* Co-developed with
* The Controls and Computing Group
* Accelerator Systems Division
* Advanced Photon Source
* Argonne National Laboratory
*
* Modification Log:
* -----------------
* .01 11-11-91 jba Added include dbCommon.h,recGblSetSevr,recGblResetSevr
* .02 12-18-91 jba Changed caddr_t to void *
* .03 03-04-92 jba Added include for dbAccess.h
* .04 05-18-92 rcz removed extern
* .05 05-18-92 rcz Changed macro "GET_PRSET(" to "GET_PRSET(precSup,"
* .06 05-18-92 rcz New database access (removed extern)
* .07 07-16-92 jba Added macro recGblFwdLink
* .08 07-16-92 jba changed VALID_ALARM to INVALID_ALARM
* .09 08-10-92 jba added #defines for SIMM processing
* .10 08-11-92 jba added DB_INTEREST masks
* .11 08-13-92 jba added prototype for recGblGetAlarmDouble,
* .12 08-14-92 jba added prototypes recGblGetLinkValue,recGblPutLinkValue
* .13 09-15-92 jba added vxWorks ifdef
* .14 -7-27-93 mrk remove recGblResetSevr add recGblResetAlarms
* .15 03-18-94 mcn added fast link macros and prototypes
* .16 06-13-95 mrk moved recGbl defs to recGbl.h
*/
#ifndef INCrecSuph
#define INCrecSuph 1
#include <recGbl.h>
typedef long (*RECSUPFUN) (); /* ptr to record support function*/
struct rset { /* record support entry table */
long number; /*number of support routines */
RECSUPFUN report; /*print report */
RECSUPFUN init; /*init support */
RECSUPFUN init_record; /*init record */
RECSUPFUN process; /*process record */
RECSUPFUN special; /*special processing */
RECSUPFUN get_value; /*get value field */
RECSUPFUN cvt_dbaddr; /*cvt dbAddr */
RECSUPFUN get_array_info;
RECSUPFUN put_array_info;
RECSUPFUN get_units;
RECSUPFUN get_precision;
RECSUPFUN get_enum_str; /*get string from enum item*/
RECSUPFUN get_enum_strs; /*get all enum strings */
RECSUPFUN put_enum_str; /*put string from enum item*/
RECSUPFUN get_graphic_double;
RECSUPFUN get_control_double;
RECSUPFUN get_alarm_double;
};
#define RSETNUMBER ( (sizeof(struct rset) - sizeof(long))/sizeof(RECSUPFUN) )
#define S_rec_noRSET (M_recSup| 1) /*Missing record support entry table*/
#define S_rec_noSizeOffset (M_recSup| 2) /*Missing SizeOffset Routine*/
#define S_rec_outMem (M_recSup| 3) /*Out of Memory*/
/* Definition os structure for routine get_value */
struct valueDes {
long field_type;
long no_elements;
void * pvalue;
};
/************************************************************************
* report(FILE fp,void *precord);
* init();
* init_record(precord,pass);
* process(void *precord);
* special(struct dbAddr *paddr, after);
* get_value(precord,struct valueDes *p);
* cvt_dbaddr(struct dbAddr *paddr);
* get_array_info(paddr,long *no_elements,long *offset);
* put_array_info(paddr,nNew);
* get_units(paddr,char units[8]);
* get_precision(struct dbAddr *paddr,long *precision);
* get_enum_str(paddr,pbuffer);
* get_enum_strs(paddr,struct dbr_enumStrs *p);
* put_enum_str(paddr,pbuffer);
* get_graphic_double(paddr,struct dbr_grDouble *p);
* get_control_double(paddr,struct dbr_ctrlDouble *p);
* get_alarm_double(paddr,struct dbr_ctrlDouble *p);
***********************************************************************/
#endif /*INCrecSuph*/