Lines Matching refs:objp

45 kernel_add_object_to_session(kernel_object_t *objp, kernel_session_t *sp)  in kernel_add_object_to_session()  argument
52 sp->object_list = objp; in kernel_add_object_to_session()
53 objp->next = NULL; in kernel_add_object_to_session()
54 objp->prev = NULL; in kernel_add_object_to_session()
56 sp->object_list->prev = objp; in kernel_add_object_to_session()
57 objp->next = sp->object_list; in kernel_add_object_to_session()
58 objp->prev = NULL; in kernel_add_object_to_session()
59 sp->object_list = objp; in kernel_add_object_to_session()
74 kernel_cleanup_object(kernel_object_t *objp) in kernel_cleanup_object() argument
79 if (objp->class == CKO_SECRET_KEY) { in kernel_cleanup_object()
80 if (OBJ_SEC(objp) != NULL && OBJ_SEC_VALUE(objp) != NULL) { in kernel_cleanup_object()
81 freezero(OBJ_SEC_VALUE(objp), OBJ_SEC_VALUE_LEN(objp)); in kernel_cleanup_object()
82 OBJ_SEC_VALUE(objp) = NULL; in kernel_cleanup_object()
83 OBJ_SEC_VALUE_LEN(objp) = 0; in kernel_cleanup_object()
85 free(OBJ_SEC(objp)); in kernel_cleanup_object()
86 OBJ_SEC(objp) = NULL; in kernel_cleanup_object()
88 kernel_cleanup_object_bigint_attrs(objp); in kernel_cleanup_object()
94 kernel_cleanup_extra_attr(objp); in kernel_cleanup_object()
342 kernel_remove_object_from_session(kernel_object_t *objp, kernel_session_t *sp) in kernel_remove_object_from_session() argument
355 if ((sp->object_list == NULL) || (objp == NULL) || in kernel_remove_object_from_session()
356 (objp->magic_marker != KERNELTOKEN_OBJECT_MAGIC)) { in kernel_remove_object_from_session()
362 if (tmp_objp == objp) { in kernel_remove_object_from_session()
371 if (sp->object_list == objp) { in kernel_remove_object_from_session()
373 if (objp->next) { in kernel_remove_object_from_session()
374 sp->object_list = objp->next; in kernel_remove_object_from_session()
375 objp->next->prev = NULL; in kernel_remove_object_from_session()
382 if (objp->next) { in kernel_remove_object_from_session()
384 objp->prev->next = objp->next; in kernel_remove_object_from_session()
385 objp->next->prev = objp->prev; in kernel_remove_object_from_session()
388 objp->prev->next = NULL; in kernel_remove_object_from_session()
395 kernel_delete_object_cleanup(kernel_object_t *objp, boolean_t wrapper_only) in kernel_delete_object_cleanup() argument
398 (void) pthread_mutex_lock(&objp->object_mutex); in kernel_delete_object_cleanup()
403 if (objp->magic_marker != KERNELTOKEN_OBJECT_MAGIC) { in kernel_delete_object_cleanup()
404 (void) pthread_mutex_unlock(&objp->object_mutex); in kernel_delete_object_cleanup()
421 objp->obj_refcnt = 0; in kernel_delete_object_cleanup()
424 while (objp->obj_refcnt != 0) { in kernel_delete_object_cleanup()
432 objp->obj_delete_sync |= OBJECT_REFCNT_WAITING; in kernel_delete_object_cleanup()
433 (void) pthread_cond_wait(&objp->obj_free_cond, in kernel_delete_object_cleanup()
434 &objp->object_mutex); in kernel_delete_object_cleanup()
437 objp->obj_delete_sync &= ~OBJECT_REFCNT_WAITING; in kernel_delete_object_cleanup()
440 objp->magic_marker = 0; in kernel_delete_object_cleanup()
442 (void) pthread_cond_destroy(&objp->obj_free_cond); in kernel_delete_object_cleanup()
465 kernel_delete_session_object(kernel_session_t *sp, kernel_object_t *objp, in kernel_delete_session_object() argument
481 rv = kernel_remove_object_from_session(objp, sp); in kernel_delete_session_object()
496 kernel_delete_object_cleanup(objp, wrapper_only); in kernel_delete_session_object()
499 if (objp->is_lib_obj) { in kernel_delete_session_object()
505 kernel_cleanup_object(objp); in kernel_delete_session_object()
513 obj_destroy.od_handle = objp->k_handle; in kernel_delete_session_object()
534 objp->obj_delete_sync &= ~OBJECT_IS_DELETING; in kernel_delete_session_object()
536 (void) pthread_mutex_unlock(&objp->object_mutex); in kernel_delete_session_object()
538 (void) pthread_mutex_destroy(&objp->object_mutex); in kernel_delete_session_object()
540 kernel_object_delay_free(objp); in kernel_delete_session_object()
554 kernel_object_t *objp = sp->object_list; in kernel_delete_all_objects_in_session() local
558 while (objp) { in kernel_delete_all_objects_in_session()
559 objp1 = objp->next; in kernel_delete_all_objects_in_session()
569 (void) kernel_delete_session_object(sp, objp, B_TRUE, in kernel_delete_all_objects_in_session()
572 objp = objp1; in kernel_delete_all_objects_in_session()
749 kernel_add_token_object_to_slot(kernel_object_t *objp, kernel_slot_t *pslot) in kernel_add_token_object_to_slot() argument
756 pslot->sl_tobj_list = objp; in kernel_add_token_object_to_slot()
757 objp->next = NULL; in kernel_add_token_object_to_slot()
758 objp->prev = NULL; in kernel_add_token_object_to_slot()
760 pslot->sl_tobj_list->prev = objp; in kernel_add_token_object_to_slot()
761 objp->next = pslot->sl_tobj_list; in kernel_add_token_object_to_slot()
762 objp->prev = NULL; in kernel_add_token_object_to_slot()
763 pslot->sl_tobj_list = objp; in kernel_add_token_object_to_slot()
777 kernel_object_t *objp) in kernel_remove_token_object_from_slot() argument
780 if (pslot->sl_tobj_list == objp) { in kernel_remove_token_object_from_slot()
782 if (objp->next) { in kernel_remove_token_object_from_slot()
783 pslot->sl_tobj_list = objp->next; in kernel_remove_token_object_from_slot()
784 objp->next->prev = NULL; in kernel_remove_token_object_from_slot()
791 if (objp->next) { in kernel_remove_token_object_from_slot()
793 objp->prev->next = objp->next; in kernel_remove_token_object_from_slot()
794 objp->next->prev = objp->prev; in kernel_remove_token_object_from_slot()
797 objp->prev->next = NULL; in kernel_remove_token_object_from_slot()
817 kernel_object_t *objp, boolean_t slot_lock_held, boolean_t wrapper_only) in kernel_delete_token_object() argument
832 kernel_remove_token_object_from_slot(pslot, objp); in kernel_delete_token_object()
839 kernel_delete_object_cleanup(objp, wrapper_only); in kernel_delete_token_object()
843 obj_destroy.od_handle = objp->k_handle; in kernel_delete_token_object()
868 (void) pthread_mutex_unlock(&objp->object_mutex); in kernel_delete_token_object()
870 (void) pthread_mutex_destroy(&objp->object_mutex); in kernel_delete_token_object()
872 kernel_object_delay_free(objp); in kernel_delete_token_object()
886 kernel_object_t *objp; in kernel_cleanup_pri_objects_in_slot() local
892 objp = pslot->sl_tobj_list; in kernel_cleanup_pri_objects_in_slot()
893 while (objp) { in kernel_cleanup_pri_objects_in_slot()
894 objp1 = objp->next; in kernel_cleanup_pri_objects_in_slot()
901 if (objp->bool_attr_mask & PRIVATE_BOOL_ON) { in kernel_cleanup_pri_objects_in_slot()
902 (void) kernel_delete_token_object(pslot, cur_sp, objp, in kernel_cleanup_pri_objects_in_slot()
905 objp = objp1; in kernel_cleanup_pri_objects_in_slot()
916 objp = session_p->object_list; in kernel_cleanup_pri_objects_in_slot()
917 while (objp) { in kernel_cleanup_pri_objects_in_slot()
918 objp1 = objp->next; in kernel_cleanup_pri_objects_in_slot()
926 if (objp->bool_attr_mask & PRIVATE_BOOL_ON) { in kernel_cleanup_pri_objects_in_slot()
928 objp, B_FALSE, B_TRUE); in kernel_cleanup_pri_objects_in_slot()
931 objp = objp1; in kernel_cleanup_pri_objects_in_slot()
1056 kernel_object_delay_free(kernel_object_t *objp) in kernel_object_delay_free() argument
1063 objp->next = NULL; in kernel_object_delay_free()
1065 obj_delay_freed.last = objp; in kernel_object_delay_free()
1066 obj_delay_freed.first = objp; in kernel_object_delay_free()
1068 obj_delay_freed.last->next = objp; in kernel_object_delay_free()
1069 obj_delay_freed.last = objp; in kernel_object_delay_free()