Home | History | Annotate | Download | only in engine

Lines Matching refs:ENGINE

1 /* crypto/engine/eng_dyn.c */
63 /* Shared libraries implementing ENGINEs for use by the "dynamic" ENGINE loader
66 /* Our ENGINE handlers */
67 static int dynamic_init(ENGINE *e);
68 static int dynamic_finish(ENGINE *e);
69 static int dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void));
73 static int dynamic_load(ENGINE *e, dynamic_data_ctx *ctx);
83 /* The constants used when creating the ENGINE */
85 static const char *engine_dynamic_name = "Dynamic engine loading support";
89 "Specifies the path to the new ENGINE shared library",
97 "Specifies an ENGINE id name for loading",
101 "Whether to add a loaded ENGINE to the internal list (0=no,1=yes,2=mandatory)",
113 "Load up the ENGINE specified by other settings",
121 /* Loading code stores state inside the ENGINE structure via the "ex_data"
126 /* The DSO object we load that supplies the ENGINE code */
130 /* The function pointer to the engine-binding shared library function */
136 /* If non-NULL, stipulates the 'id' of the ENGINE to be loaded */
138 /* If non-zero, a successfully loaded ENGINE should be added to the internal
139 * ENGINE list. If 2, the add must succeed or the entire load should fail. */
143 /* The symbol name for the "initialise ENGINE structure" function */
158 * a "first-use" occurs before the ENGINE is freed, we have a memory leak
160 * don't want a dynamic_data_ctx in *all* ENGINE structures of all types (this
162 * handler and that will get called if an ENGINE is being destroyed and there
182 /* Construct the per-ENGINE context. We create it blindly and then use a lock to
186 static int dynamic_set_data_ctx(ENGINE *e, dynamic_data_ctx **ctx)
230 /* This function retrieves the context structure from an ENGINE's "ex_data", or
232 static dynamic_data_ctx *dynamic_get_data_ctx(ENGINE *e)
237 /* Create and register the ENGINE ex_data, and associate our
239 * freed when an ENGINE goes underground. */
268 static ENGINE *engine_dynamic(void)
270 ENGINE *ret = ENGINE_new();
289 ENGINE *toadd = engine_dynamic();
301 static int dynamic_init(ENGINE *e)
303 /* We always return failure - the "dyanamic" engine itself can't be used
308 static int dynamic_finish(ENGINE *e)
315 static int dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void))
326 /* All our control commands require the ENGINE to be uninitialised */
433 static int dynamic_load(ENGINE *e, dynamic_data_ctx *ctx)
435 ENGINE cpy;
491 /* First binary copy the ENGINE structure so that we can roll back if
493 memcpy(&cpy, e, sizeof(ENGINE));
496 * engine.h, much of this would be simplified if each area of code
510 /* Now that we've loaded the dynamic engine, make sure no "dynamic"
511 * ENGINE elements will show through. */
514 /* Try to bind the ENGINE onto our own ENGINE structure */
522 /* Copy the original ENGINE structure back */
523 memcpy(e, &cpy, sizeof(ENGINE));
526 /* Do we try to add this ENGINE to the internal list too? */
538 * ENGINE has changed. */