Proposal
Provide an extended API for device support that wants to use it:
Extended device supportĘs init(0) routine must call devExtend()
Arguments to this call are pointers to the DSET and to a new Device Support eXtension Table (DSXT) containing:
typedef struct dsxt {
long (*add) (struct dbCommon *precord);
long (*delete) (struct dbCommon *precord);
} dsxt;
These routines will be called by iocCore like their LSET equivalents.
The following rules apply to attempts to change the DBF_DEVLINK field:
- Records using device support which has not registered a DSXT or where delete is NULL cannot have their DBF_DEVLINK field changed.
- After iocInit a DBF_DEVLINK field cannot be set to a device support which has not registered a DSXT or for which add is NULL.
Records which are I/O Interrupt scanned will be temporarily changed to scan Passive during the device delete/add process.