jpayne@69
|
1 /*
|
jpayne@69
|
2 * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
|
jpayne@69
|
3 *
|
jpayne@69
|
4 * Licensed under the OpenSSL license (the "License"). You may not use
|
jpayne@69
|
5 * this file except in compliance with the License. You can obtain a copy
|
jpayne@69
|
6 * in the file LICENSE in the source distribution or at
|
jpayne@69
|
7 * https://www.openssl.org/source/license.html
|
jpayne@69
|
8 */
|
jpayne@69
|
9
|
jpayne@69
|
10 #ifndef HEADER_STACK_H
|
jpayne@69
|
11 # define HEADER_STACK_H
|
jpayne@69
|
12
|
jpayne@69
|
13 #ifdef __cplusplus
|
jpayne@69
|
14 extern "C" {
|
jpayne@69
|
15 #endif
|
jpayne@69
|
16
|
jpayne@69
|
17 typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */
|
jpayne@69
|
18
|
jpayne@69
|
19 typedef int (*OPENSSL_sk_compfunc)(const void *, const void *);
|
jpayne@69
|
20 typedef void (*OPENSSL_sk_freefunc)(void *);
|
jpayne@69
|
21 typedef void *(*OPENSSL_sk_copyfunc)(const void *);
|
jpayne@69
|
22
|
jpayne@69
|
23 int OPENSSL_sk_num(const OPENSSL_STACK *);
|
jpayne@69
|
24 void *OPENSSL_sk_value(const OPENSSL_STACK *, int);
|
jpayne@69
|
25
|
jpayne@69
|
26 void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data);
|
jpayne@69
|
27
|
jpayne@69
|
28 OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp);
|
jpayne@69
|
29 OPENSSL_STACK *OPENSSL_sk_new_null(void);
|
jpayne@69
|
30 OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n);
|
jpayne@69
|
31 int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n);
|
jpayne@69
|
32 void OPENSSL_sk_free(OPENSSL_STACK *);
|
jpayne@69
|
33 void OPENSSL_sk_pop_free(OPENSSL_STACK *st, void (*func) (void *));
|
jpayne@69
|
34 OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *,
|
jpayne@69
|
35 OPENSSL_sk_copyfunc c,
|
jpayne@69
|
36 OPENSSL_sk_freefunc f);
|
jpayne@69
|
37 int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where);
|
jpayne@69
|
38 void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc);
|
jpayne@69
|
39 void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p);
|
jpayne@69
|
40 int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data);
|
jpayne@69
|
41 int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data);
|
jpayne@69
|
42 int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data);
|
jpayne@69
|
43 int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data);
|
jpayne@69
|
44 void *OPENSSL_sk_shift(OPENSSL_STACK *st);
|
jpayne@69
|
45 void *OPENSSL_sk_pop(OPENSSL_STACK *st);
|
jpayne@69
|
46 void OPENSSL_sk_zero(OPENSSL_STACK *st);
|
jpayne@69
|
47 OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk,
|
jpayne@69
|
48 OPENSSL_sk_compfunc cmp);
|
jpayne@69
|
49 OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st);
|
jpayne@69
|
50 void OPENSSL_sk_sort(OPENSSL_STACK *st);
|
jpayne@69
|
51 int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st);
|
jpayne@69
|
52
|
jpayne@69
|
53 # if OPENSSL_API_COMPAT < 0x10100000L
|
jpayne@69
|
54 # define _STACK OPENSSL_STACK
|
jpayne@69
|
55 # define sk_num OPENSSL_sk_num
|
jpayne@69
|
56 # define sk_value OPENSSL_sk_value
|
jpayne@69
|
57 # define sk_set OPENSSL_sk_set
|
jpayne@69
|
58 # define sk_new OPENSSL_sk_new
|
jpayne@69
|
59 # define sk_new_null OPENSSL_sk_new_null
|
jpayne@69
|
60 # define sk_free OPENSSL_sk_free
|
jpayne@69
|
61 # define sk_pop_free OPENSSL_sk_pop_free
|
jpayne@69
|
62 # define sk_deep_copy OPENSSL_sk_deep_copy
|
jpayne@69
|
63 # define sk_insert OPENSSL_sk_insert
|
jpayne@69
|
64 # define sk_delete OPENSSL_sk_delete
|
jpayne@69
|
65 # define sk_delete_ptr OPENSSL_sk_delete_ptr
|
jpayne@69
|
66 # define sk_find OPENSSL_sk_find
|
jpayne@69
|
67 # define sk_find_ex OPENSSL_sk_find_ex
|
jpayne@69
|
68 # define sk_push OPENSSL_sk_push
|
jpayne@69
|
69 # define sk_unshift OPENSSL_sk_unshift
|
jpayne@69
|
70 # define sk_shift OPENSSL_sk_shift
|
jpayne@69
|
71 # define sk_pop OPENSSL_sk_pop
|
jpayne@69
|
72 # define sk_zero OPENSSL_sk_zero
|
jpayne@69
|
73 # define sk_set_cmp_func OPENSSL_sk_set_cmp_func
|
jpayne@69
|
74 # define sk_dup OPENSSL_sk_dup
|
jpayne@69
|
75 # define sk_sort OPENSSL_sk_sort
|
jpayne@69
|
76 # define sk_is_sorted OPENSSL_sk_is_sorted
|
jpayne@69
|
77 # endif
|
jpayne@69
|
78
|
jpayne@69
|
79 #ifdef __cplusplus
|
jpayne@69
|
80 }
|
jpayne@69
|
81 #endif
|
jpayne@69
|
82
|
jpayne@69
|
83 #endif
|