121 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
122 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
123 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
124 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
125 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
126 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
127 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
128 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
129 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
130 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
131 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
132 * OF THE POSSIBILITY OF SUCH DAMAGE.
133 * ====================================================================
134 *
135 * This product includes cryptographic software written by Eric Young
136 * (eay@cryptsoft.com). This product includes software written by Tim
137 * Hudson (tjh@cryptsoft.com).
138 *
139 */
140
141 #include "cryptlib.h"
142 #include <openssl/lhash.h>
143
144 /* What an "implementation of ex_data functionality" looks like */
145 struct st_CRYPTO_EX_DATA_IMPL
146 {
147 /*********************/
148 /* GLOBAL OPERATIONS */
149 /* Return a new class index */
150 int (*cb_new_class)(void);
151 /* Cleanup all state used by the implementation */
152 void (*cb_cleanup)(void);
153 /************************/
154 /* PER-CLASS OPERATIONS */
155 /* Get a new method index within a class */
156 int (*cb_get_new_index)(int class_index, long argl, void *argp,
157 CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func,
158 CRYPTO_EX_free *free_func);
159 /* Initialise a new CRYPTO_EX_DATA of a given class */
160 int (*cb_new_ex_data)(int class_index, void *obj,
161 CRYPTO_EX_DATA *ad);
|
121 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
122 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
123 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
124 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
125 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
126 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
127 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
128 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
129 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
130 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
131 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
132 * OF THE POSSIBILITY OF SUCH DAMAGE.
133 * ====================================================================
134 *
135 * This product includes cryptographic software written by Eric Young
136 * (eay@cryptsoft.com). This product includes software written by Tim
137 * Hudson (tjh@cryptsoft.com).
138 *
139 */
140
141 #include <cryptlib.h>
142 #include <openssl/lhash.h>
143
144 /* What an "implementation of ex_data functionality" looks like */
145 struct st_CRYPTO_EX_DATA_IMPL
146 {
147 /*********************/
148 /* GLOBAL OPERATIONS */
149 /* Return a new class index */
150 int (*cb_new_class)(void);
151 /* Cleanup all state used by the implementation */
152 void (*cb_cleanup)(void);
153 /************************/
154 /* PER-CLASS OPERATIONS */
155 /* Get a new method index within a class */
156 int (*cb_get_new_index)(int class_index, long argl, void *argp,
157 CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func,
158 CRYPTO_EX_free *free_func);
159 /* Initialise a new CRYPTO_EX_DATA of a given class */
160 int (*cb_new_ex_data)(int class_index, void *obj,
161 CRYPTO_EX_DATA *ad);
|