Replaced $Id$ and $Header$ keywords with $Revision-Id$ Deleted $Log$ keywords and any log messages
72 lines
2.6 KiB
C
72 lines
2.6 KiB
C
/*************************************************************************\
|
|
* Copyright (c) 2009 UChicago Argonne LLC, as Operator of Argonne
|
|
* National Laboratory.
|
|
* Copyright (c) 2002 The Regents of the University of California, as
|
|
* Operator of Los Alamos National Laboratory.
|
|
* EPICS BASE is distributed subject to a Software License Agreement found
|
|
* in file LICENSE that is included with this distribution.
|
|
\*************************************************************************/
|
|
/* devSup.h Device Support */
|
|
/* $Revision-Id$ */
|
|
/*
|
|
* Author: Marty Kraimer
|
|
* Date: 6-1-90
|
|
*/
|
|
|
|
#ifndef INCdevSuph
|
|
#define INCdevSuph 1
|
|
|
|
#include "errMdef.h"
|
|
#include "shareLib.h"
|
|
|
|
/* structures defined elsewhere */
|
|
struct dbCommon;
|
|
struct devSup;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
typedef long (*DEVSUPFUN)(void *); /* ptr to device support function*/
|
|
#else
|
|
typedef long (*DEVSUPFUN)(); /* ptr to device support function*/
|
|
#endif
|
|
|
|
typedef struct dset { /* device support entry table */
|
|
long number; /*number of support routines*/
|
|
DEVSUPFUN report; /*print report*/
|
|
DEVSUPFUN init; /*init support layer*/
|
|
DEVSUPFUN init_record; /*init device for particular record*/
|
|
DEVSUPFUN get_ioint_info; /* get io interrupt information*/
|
|
/*other functions are record dependent*/
|
|
} dset;
|
|
|
|
typedef struct dsxt { /* device support extension table */
|
|
long (*add_record)(struct dbCommon *precord);
|
|
long (*del_record)(struct dbCommon *precord);
|
|
/* Recordtypes are *not* allowed to extend this table */
|
|
} dsxt;
|
|
|
|
epicsShareExtern dsxt devSoft_DSXT; /* Allow anything table */
|
|
|
|
epicsShareFunc void devExtend(dsxt *pdsxt);
|
|
epicsShareFunc void dbInitDevSup(struct devSup *pdevSup, dset *pdset);
|
|
|
|
|
|
#define S_dev_noDevSup (M_devSup| 1) /*SDR_DEVSUP: Device support missing*/
|
|
#define S_dev_noDSET (M_devSup| 3) /*Missing device support entry table*/
|
|
#define S_dev_missingSup (M_devSup| 5) /*Missing device support routine*/
|
|
#define S_dev_badInpType (M_devSup| 7) /*Bad INP link type*/
|
|
#define S_dev_badOutType (M_devSup| 9) /*Bad OUT link type*/
|
|
#define S_dev_badInitRet (M_devSup|11) /*Bad init_rec return value */
|
|
#define S_dev_badBus (M_devSup|13) /*Illegal bus type*/
|
|
#define S_dev_badCard (M_devSup|15) /*Illegal or nonexistant module*/
|
|
#define S_dev_badSignal (M_devSup|17) /*Illegal signal*/
|
|
#define S_dev_NoInit (M_devSup|19) /*No init*/
|
|
#define S_dev_Conflict (M_devSup|21) /*Multiple records accessing same signal*/
|
|
#define S_dev_noDeviceFound (M_devSup|23) /*No device found at specified address*/
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif
|