This is Unofficial EPICS BASE Doxygen Site
registryFunction.c
Go to the documentation of this file.
1 /*************************************************************************\
2 * Copyright (c) 2012 UChicago Argonne LLC, as Operator of Argonne
3 * National Laboratory.
4 * Copyright (c) 2002 The Regents of the University of California, as
5 * Operator of Los Alamos National Laboratory.
6 * EPICS BASE is distributed subject to a Software License Agreement found
7 * in file LICENSE that is included with this distribution.
8 \*************************************************************************/
9 /* registryFunction.c */
10 
11 /* Author: Marty Kraimer Date: 01MAY2000 */
12 
13 #include <stdio.h>
14 
15 #define epicsExportSharedSymbols
16 #include "registry.h"
17 #include "registryFunction.h"
18 
19 static void * const registryID = "function";
20 
21 
23  const char *name, REGISTRYFUNCTION func)
24 {
25  return registryAdd(registryID, name, func);
26 }
27 
29  const char *name)
30 {
31  REGISTRYFUNCTION func = registryFind(registryID, name);
32 
33  if (!func) {
34  func = registryFind(0, name);
35  if (func) registryFunctionAdd(name, func);
36  }
37  return func;
38 }
39 
41  registryFunctionRef ref[], int nfunctions)
42 {
43  int i;
44 
45  for (i = 0; i < nfunctions; i++) {
46  if (!registryFunctionAdd(ref[i].name, ref[i].addr)) {
47  printf("registryFunctionRefAdd: could not register %s\n",
48  ref[i].name);
49  return 0;
50  }
51  }
52  return 1;
53 }
void(* REGISTRYFUNCTION)(void)
LIBCOM_API int epicsStdCall registryAdd(void *registryID, const char *name, void *data)
Definition: registry.c:45
int i
Definition: scan.c:967
#define printf
Definition: epicsStdio.h:41
#define epicsShareFunc
Definition: shareLib.h:209
LIBCOM_API void *epicsStdCall registryFind(void *registryID, const char *name)
Definition: registry.c:67
epicsShareFunc int registryFunctionAdd(const char *name, REGISTRYFUNCTION func)
epicsShareFunc REGISTRYFUNCTION registryFunctionFind(const char *name)
epicsShareFunc int registryFunctionRefAdd(registryFunctionRef ref[], int nfunctions)