Lines Matching refs:session

155 		slot_session_t *session, *next_session;
158 * The slotobjects associated with the session should have
163 session = slots[slot].session_pool.idle_list_head;
164 while (session) {
165 next_session = session->next;
166 (void) FUNCLIST(session->fw_st_id)->C_CloseSession(
167 session->hSession);
169 &session->object_list_lock);
170 free(session);
171 session = next_session;
174 session = slots[slot].session_pool.persist_list_head;
175 while (session) {
176 next_session = session->next;
177 (void) FUNCLIST(session->fw_st_id)->C_CloseSession(
178 session->hSession);
180 &session->object_list_lock);
181 free(session);
182 session = next_session;
400 * Find a session in the given list that matches the specified flags.
401 * If such a session is found, it will be removed from the list, and
402 * returned to the caller. If such a session is not found, will
435 * Call to get a session with a specific slot/token.
445 meta_get_slot_session(CK_ULONG slotnum, slot_session_t **session,
459 * Try to reuse an existing session.
469 *session = tmp_session;
481 *session = tmp_session;
507 /* Retry with a RO session. */
519 /* Insert session into active list */
523 *session = new_session;
531 * Call to release a session obtained via meta_get_slot_session()
534 meta_release_slot_session(slot_session_t *session) {
539 pool = &slots[session->slotnum].session_pool;
541 /* Note that the active_list must have >= 1 entry (this session) */
548 * If the session has session objects, we need to retain it. Also
549 * retain it if it's the only session holding login state (or handles
552 must_retain = session->object_list_head != NULL ||
561 REMOVE_FROM_LIST(pool->active_list_head, session);
565 INSERT_INTO_LIST(pool->persist_list_head, session);
570 INSERT_INTO_LIST(pool->idle_list_head, session);
578 (void) FUNCLIST(session->fw_st_id)->C_CloseSession(session->hSession);
580 (void) pthread_rwlock_destroy(&session->object_list_lock);
581 free(session);