diff options
Diffstat (limited to 'ckcapi-object.c')
-rw-r--r-- | ckcapi-object.c | 42 |
1 files changed, 9 insertions, 33 deletions
diff --git a/ckcapi-object.c b/ckcapi-object.c index da3a467..49da8eb 100644 --- a/ckcapi-object.c +++ b/ckcapi-object.c @@ -26,7 +26,7 @@ ckcapi_object_clear_all(void) if(object_hash) { - ckcapi_hash_free(object_hash); + ckcapi_hash_free(object_hash, NULL); object_hash = NULL; } @@ -45,6 +45,14 @@ ckcapi_object_clear_all(void) ckcapi_unlock_global(); } +CK_OBJECT_HANDLE +ckcapi_object_get_max_handle(void) +{ + if(!object_array) + return 0; + return object_array->len; +} + CkCapiObject* ckcapi_object_lookup(CkCapiSession* sess, CK_OBJECT_HANDLE obj) { @@ -165,38 +173,6 @@ ckcapi_object_register(CkCapiSession* sess, CkCapiObject* obj) } -CK_RV -ckcapi_object_load_data(CkCapiObject* obj, CkCapiObjectData* objdata) -{ - ASSERT(obj); - ASSERT(obj->id); - ASSERT(obj->obj_funcs.load_data); - - memset(objdata, 0, sizeof(*objdata)); - return (obj->obj_funcs.load_data)(obj, objdata); -} - -void -ckcapi_object_data_release(CkCapiObjectData* objdata) -{ - ASSERT(objdata->data_funcs.release); - (objdata->data_funcs.release)(objdata->data); - memset(objdata, 0, sizeof(*objdata)); -} - -CK_RV -ckcapi_object_load_data_for(CkCapiSession* sess, CK_OBJECT_HANDLE hand, - CkCapiObjectData* objdata) -{ - CkCapiObject* obj; - - obj = ckcapi_object_lookup(sess, hand); - if(!obj) - return CKR_OBJECT_HANDLE_INVALID; - - return ckcapi_object_load_data(obj, objdata); -} - enum { DATA_UNKNOWN = 0, |