Lines Matching refs:token

88  *			protects ipc_info list and sendq token lists
345 * Remove a work token and begin work
387 /* free up work token */
445 /* free up work token */
519 * Don't want to destroy a send queue when a token
520 * has been acquired; so wait 'til the token is
543 "do_deferred_work: bad work token opcode\n"));
562 enqueue_work(work_token_t *token)
570 token->next = NULL;
572 work_queue.head = work_queue.tail = token;
575 work_queue.tail = tail_token->next = token;
587 * by removing the token from the work queue.
861 * initialize and link a sendq token for this path
925 /* link the path sendq token on the ipc_info token list */
939 * directly call path down processing. Finally, unlink the sendq token and
1029 * remove from ipc token list
1285 /* if an up token is enqueued, remove it */
1367 sendq_token_t *token;
1376 token = ipc_info->token_list;
1377 while (token != NULL) {
1378 path = SQ_TOKEN_TO_PATH(token);
1385 token = token->next;
1386 if (token == ipc_info->token_list)
1397 * For the no sleep case we may need to defer the work using a token.
1419 /* if a down token is enqueued, remove it */
1610 /* if an up token is enqueued, remove it */
2446 link_sendq_token(sendq_token_t *token, rsm_node_id_t remote_node)
2463 ipc_info->token_list = token;
2464 ipc_info->current_token = token;
2466 "link_sendq_token: current = %lx\n", token));
2467 token->next = token;
2470 "link_sendq_token: token = %lx\n", token));
2471 token->next = ipc_info->token_list->next;
2472 ipc_info->token_list->next = token;
2473 ipc_info->token_list = token;
2484 unlink_sendq_token(sendq_token_t *token, rsm_node_id_t remote_node)
2488 path_t *path = SQ_TOKEN_TO_PATH(token);
2506 if (current == token) {
2509 "found token, removed it\n"));
2510 prev->next = token->next;
2511 if (ipc_info->token_list == token)
2513 ipc_info->current_token = token->next;
2517 "removed token, list empty\n"));
2527 "unlink_sendq_token: token not found\n"));
2538 rele_sendq_token(sendq_token_t *token)
2544 path = SQ_TOKEN_TO_PATH(token);
2555 * A valid ipc token can only be returned if the remote node is alive.
2556 * Tokens are on a circular list. Starting with the current token
2557 * search for a token with an endpoint in state RSM_PATH_ACTIVE.
2565 * Updating the current token provides round robin selection and this
2571 sendq_token_t *token, *first_token;
2586 token = first_token = ipc_info->current_token;
2587 if (token == NULL) {
2590 "rsmka_get_sendq_token done: token=NULL\n"));
2595 path = SQ_TOKEN_TO_PATH(token);
2603 if (token != prev_used) {
2604 /* found a new token */
2610 token = token->next;
2611 if (token == first_token) {
2613 * we didn't find a new token reuse prev_used
2625 token = prev_used;
2631 "rsmka_get_sendq_token: token=NULL\n"));
2640 ipc_info->current_token = token->next;
2648 return (token);
2665 sendq_token_t *token;
2675 token = &path->sendq_token;
2688 RSM_RESOURCE_SLEEP, NULL, &token->rsmpi_sendq_handle);
2697 token->rsmpi_sendq_handle));