mirror of https://github.com/F-Stack/f-stack.git
40 lines
784 B
C
40 lines
784 B
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright 2020 Mellanox Technologies, Ltd
|
|
*/
|
|
|
|
#include "mlx5_flow_os.h"
|
|
|
|
#include <rte_thread.h>
|
|
|
|
/* Key of thread specific flow workspace data. */
|
|
static rte_thread_key key_workspace;
|
|
|
|
int
|
|
mlx5_flow_os_init_workspace_once(void)
|
|
{
|
|
if (rte_thread_key_create(&key_workspace, flow_release_workspace)) {
|
|
DRV_LOG(ERR, "Can't create flow workspace data thread key.");
|
|
rte_errno = ENOMEM;
|
|
return -rte_errno;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
void *
|
|
mlx5_flow_os_get_specific_workspace(void)
|
|
{
|
|
return rte_thread_value_get(key_workspace);
|
|
}
|
|
|
|
int
|
|
mlx5_flow_os_set_specific_workspace(struct mlx5_flow_workspace *data)
|
|
{
|
|
return rte_thread_value_set(key_workspace, data);
|
|
}
|
|
|
|
void
|
|
mlx5_flow_os_release_workspace(void)
|
|
{
|
|
rte_thread_key_delete(key_workspace);
|
|
}
|