Lines Matching refs:sa

65 static void sa_doall(const OPENSSL_SA *sa, void (*node)(void **),  in sa_doall()  argument
74 nodes[0] = sa->nodes; in sa_doall()
88 if (l < sa->levels - 1) { in sa_doall()
110 void ossl_sa_free(OPENSSL_SA *sa) in ossl_sa_free() argument
112 if (sa != NULL) { in ossl_sa_free()
113 sa_doall(sa, &sa_free_node, NULL, NULL); in ossl_sa_free()
114 OPENSSL_free(sa); in ossl_sa_free()
118 void ossl_sa_free_leaves(OPENSSL_SA *sa) in ossl_sa_free_leaves() argument
120 sa_doall(sa, &sa_free_node, &sa_free_leaf, NULL); in ossl_sa_free_leaves()
121 OPENSSL_free(sa); in ossl_sa_free_leaves()
134 void ossl_sa_doall(const OPENSSL_SA *sa, void (*leaf)(ossl_uintmax_t, void *)) in ossl_sa_doall() argument
139 if (sa != NULL) in ossl_sa_doall()
140 sa_doall(sa, NULL, &trampoline, &tramp); in ossl_sa_doall()
143 void ossl_sa_doall_arg(const OPENSSL_SA *sa, in ossl_sa_doall_arg() argument
147 if (sa != NULL) in ossl_sa_doall_arg()
148 sa_doall(sa, NULL, leaf, arg); in ossl_sa_doall_arg()
151 size_t ossl_sa_num(const OPENSSL_SA *sa) in ossl_sa_num() argument
153 return sa == NULL ? 0 : sa->nelem; in ossl_sa_num()
156 void *ossl_sa_get(const OPENSSL_SA *sa, ossl_uintmax_t n) in ossl_sa_get() argument
161 if (sa == NULL || sa->nelem == 0) in ossl_sa_get()
164 if (n <= sa->top) { in ossl_sa_get()
165 p = sa->nodes; in ossl_sa_get()
166 for (level = sa->levels - 1; p != NULL && level > 0; level--) in ossl_sa_get()
179 int ossl_sa_set(OPENSSL_SA *sa, ossl_uintmax_t posn, void *val) in ossl_sa_set() argument
185 if (sa == NULL) in ossl_sa_set()
192 for (;sa->levels < level; sa->levels++) { in ossl_sa_set()
196 p[0] = sa->nodes; in ossl_sa_set()
197 sa->nodes = p; in ossl_sa_set()
199 if (sa->top < posn) in ossl_sa_set()
200 sa->top = posn; in ossl_sa_set()
202 p = sa->nodes; in ossl_sa_set()
203 for (level = sa->levels - 1; level > 0; level--) { in ossl_sa_set()
211 sa->nelem--; in ossl_sa_set()
213 sa->nelem++; in ossl_sa_set()