From 4928a4bff079c140d261cb3fefdc07c60c0bdebf Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Fri, 27 Apr 2007 20:37:40 +0000 Subject: A bunch more changes, that implement almost complete find and get support. --- ckcapi-util.h | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) (limited to 'ckcapi-util.h') diff --git a/ckcapi-util.h b/ckcapi-util.h index b37ea39..ea3d5e2 100644 --- a/ckcapi-util.h +++ b/ckcapi-util.h @@ -4,13 +4,6 @@ #include -/* -------------------------------------------------------------------------------- - * WINDOWS - */ - -CK_RV ckcapi_util_win_to_cryptoki_err (DWORD werr); - - /* -------------------------------------------------------------------------------- * ARRAYS */ @@ -20,27 +13,42 @@ typedef struct _Array void* data; size_t len; } -Array; +CkCapiArray; -#define ckcapi_util_array_append(a,v) \ - ckcapi_util_array_append_vals(a, &(v), 1) -#define ckcapi_util_array_index(a,t,i) \ +#define ckcapi_array_append(a,v) \ + ckcapi_array_append_vals(a, &(v), 1) +#define ckcapi_array_index(a,t,i) \ (((t*) (a)->data) [(i)]) -Array* ckcapi_util_array_new (int zero_terminated, int zero, +CkCapiArray* ckcapi_array_new (int zero_terminated, int zero, size_t element_size); -Array* ckcapi_util_array_sized_new (int zero_terminated, int zero, +CkCapiArray* ckcapi_array_sized_new (int zero_terminated, int zero, size_t element_size, size_t reserved_size); -void* ckcapi_util_array_free (Array* array, int free_segment); +void* ckcapi_array_free (CkCapiArray* array, int free_segment); -int ckcapi_util_array_append_vals (Array* array, const void* data, +int ckcapi_array_append_vals (CkCapiArray* array, const void* data, size_t num); -void ckcapi_util_array_remove_index (Array* array, unsigned int index); +void ckcapi_array_remove_index (CkCapiArray* array, unsigned int index); -void ckcapi_util_array_remove_range (Array* array, unsigned int index, +void ckcapi_array_remove_range (CkCapiArray* array, unsigned int index, size_t count); + +/* -------------------------------------------------------------------------------- + * HASHTABLE + */ + +struct _CkCapiHash; +typedef struct _CkCapiHash CkCapiHash; + +CkCapiHash* ckcapi_hash_new(); +void ckcapi_hash_free(CkCapiHash* ht); +size_t ckcapi_hash_count(CkCapiHash* ht); +void* ckcapi_hash_get(CkCapiHash* ht, const void* key, size_t klen); +int ckcapi_hash_set(CkCapiHash* ht, const void* key, size_t klen, void* val); +void* ckcapi_hash_rem(CkCapiHash* ht, const void* key, size_t klen); + #endif /* __CKCAPI_UTIL_H__ */ \ No newline at end of file -- cgit v1.2.3