1 |
aramv |
425 |
#ifndef POLYTYPES_H |
2 |
|
|
#define POLYTYPES_H |
3 |
|
|
/* Get size_t. */ |
4 |
|
|
#include <stddef.h> |
5 |
|
|
|
6 |
|
|
/* Get wchar_t. */ |
7 |
|
|
#ifdef HAVE_WCHAR_T |
8 |
|
|
# include <stddef.h> |
9 |
|
|
#endif |
10 |
|
|
|
11 |
|
|
/* Get wint_t. */ |
12 |
|
|
#ifdef HAVE_WINT_T |
13 |
|
|
# include <wchar.h> |
14 |
|
|
#endif |
15 |
|
|
|
16 |
aramv |
502 |
#define MAXPROCS 5 |
17 |
|
|
#define LCMAPS_MAXARGSTRING 2000 |
18 |
|
|
#define LCMAPS_MAXPATHLEN 500 |
19 |
aramv |
425 |
|
20 |
aramv |
502 |
#define LCMAPS_MAXARGS 51 |
21 |
|
|
|
22 |
|
|
typedef void *lcmaps_proc_t; |
23 |
|
|
|
24 |
|
|
|
25 |
aramv |
525 |
/*! Identifiers for linked process symbols */ |
26 |
aramv |
502 |
typedef enum lcmaps_proctype_e |
27 |
|
|
{ |
28 |
|
|
INITPROC, /*!< this value corresponds to the plugin initialization function */ |
29 |
|
|
RUNPROC, /*!< this value corresponds to the plugin run function (get credentials) */ |
30 |
|
|
TERMPROC, /*!< this value corresponds to the plugin termination function */ |
31 |
|
|
INTROPROC, /*!< this value corresponds to the plugin introspect function */ |
32 |
|
|
VERIFYPROC, /*!< this value corresponds to the plugin verification function */ |
33 |
|
|
ENDOFPROCS /*< this is the last enumeration value */ |
34 |
|
|
} lcmaps_proctype_t; |
35 |
|
|
|
36 |
|
|
|
37 |
aramv |
525 |
/*! Argument types */ |
38 |
aramv |
425 |
typedef enum |
39 |
|
|
{ |
40 |
|
|
TYPE_NONE, |
41 |
|
|
TYPE_SCHAR, |
42 |
|
|
TYPE_UCHAR, |
43 |
|
|
TYPE_SHORT, |
44 |
|
|
TYPE_USHORT, |
45 |
|
|
TYPE_INT, |
46 |
|
|
TYPE_UINT, |
47 |
|
|
TYPE_LONGINT, |
48 |
|
|
TYPE_ULONGINT, |
49 |
|
|
#ifdef HAVE_LONG_LONG_INT |
50 |
|
|
TYPE_LONGLONGINT, |
51 |
|
|
TYPE_ULONGLONGINT, |
52 |
|
|
#endif |
53 |
|
|
TYPE_FLOAT, |
54 |
|
|
TYPE_DOUBLE, |
55 |
|
|
#ifdef HAVE_LONG_DOUBLE |
56 |
|
|
TYPE_LONGDOUBLE, |
57 |
|
|
#endif |
58 |
|
|
TYPE_CHAR, |
59 |
|
|
#ifdef HAVE_WINT_T |
60 |
|
|
TYPE_WIDE_CHAR, |
61 |
|
|
#endif |
62 |
|
|
TYPE_STRING, |
63 |
|
|
#ifdef HAVE_WCHAR_T |
64 |
|
|
TYPE_WIDE_STRING, |
65 |
|
|
#endif |
66 |
|
|
TYPE_POINTER, |
67 |
|
|
TYPE_COUNT_SCHAR_POINTER, |
68 |
|
|
TYPE_COUNT_SHORT_POINTER, |
69 |
|
|
TYPE_COUNT_INT_POINTER, |
70 |
aramv |
473 |
TYPE_COUNT_LONGINT_POINTER, |
71 |
aramv |
425 |
#ifdef HAVE_LONG_LONG_INT |
72 |
aramv |
473 |
TYPE_COUNT_LONGLONGINT_POINTER, |
73 |
aramv |
425 |
#endif |
74 |
aramv |
473 |
TYPE_PEM, |
75 |
|
|
TYPE_X509, |
76 |
|
|
TYPE_STACK_OF_X509, |
77 |
|
|
TYPE_EVP_PKEY |
78 |
aramv |
425 |
} arg_type; |
79 |
|
|
|
80 |
aramv |
525 |
|
81 |
|
|
/*! |
82 |
|
|
* \brief Node structure to hold plugin nodes |
83 |
|
|
*/ |
84 |
aramv |
502 |
typedef struct lcmaps_plugindl_s |
85 |
aramv |
425 |
{ |
86 |
aramv |
502 |
void * handle; /*!< dlopen handle to plugin module */ |
87 |
|
|
lcmaps_proc_t procs[MAXPROCS]; /*!< list of handles to interface functions of plugin */ |
88 |
|
|
char pluginname[LCMAPS_MAXPATHLEN+1]; /*!< name of plugin */ |
89 |
|
|
char pluginargs[LCMAPS_MAXARGSTRING+1]; /*!< argument string */ |
90 |
|
|
int init_argc; /*!< number of arguments for the initialization function */ |
91 |
|
|
char * init_argv[LCMAPS_MAXARGS]; /*!< list of arguments for the initialization function */ |
92 |
|
|
struct lcmaps_plugindl_s * next; /*!< pointer to the next plugin in the plugin list */ |
93 |
|
|
} |
94 |
aramv |
425 |
|
95 |
aramv |
502 |
lcmaps_plugindl_t; |
96 |
|
|
|
97 |
aramv |
525 |
|
98 |
|
|
/*! \brief Node structure to store AOS arguments */ |
99 |
aramv |
484 |
typedef struct argument_s |
100 |
|
|
{ |
101 |
|
|
void* data; /*! a pointer to store the data */ |
102 |
|
|
int needs_free; /*! a flag that determines wheter the data should be free'd */ |
103 |
|
|
const char * label; /*! a label to identify the data */ |
104 |
|
|
arg_type type; /*! a type identifier */ |
105 |
|
|
struct argument_s * parent; /*! a pointer to the 'parent' object */ |
106 |
aramv |
488 |
struct argument_s * next; /*! a pointer to the next node */ |
107 |
aramv |
502 |
lcmaps_plugindl_t * setting_plugin; |
108 |
aramv |
484 |
} |
109 |
|
|
argument_t; |
110 |
|
|
|
111 |
aramv |
425 |
#endif |