f-stack/dpdk/drivers/net/bnxt/tf_ulp/ulp_ha_mgr.h

68 lines
1.3 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2014-2021 Broadcom
* All rights reserved.
*/
#ifndef _ULP_HA_MGR_H_
#define _ULP_HA_MGR_H_
#include "bnxt_ulp.h"
enum ulp_ha_mgr_state {
ULP_HA_STATE_INIT,
ULP_HA_STATE_PRIM_RUN,
ULP_HA_STATE_PRIM_SEC_RUN,
ULP_HA_STATE_SEC_TIMER_COPY,
ULP_HA_PRIM_CLOSE
};
enum ulp_ha_mgr_app_type {
ULP_HA_APP_TYPE_NONE,
ULP_HA_APP_TYPE_PRIM,
ULP_HA_APP_TYPE_SEC
};
enum ulp_ha_mgr_region {
ULP_HA_REGION_LOW,
ULP_HA_REGION_HI
};
struct bnxt_ulp_ha_mgr_info {
enum ulp_ha_mgr_app_type app_type;
enum ulp_ha_mgr_region region;
uint32_t flags;
pthread_mutex_t ha_lock;
};
bool
ulp_ha_mgr_is_enabled(struct bnxt_ulp_context *ulp_ctx);
int32_t
ulp_ha_mgr_enable(struct bnxt_ulp_context *ulp_ctx);
int32_t
ulp_ha_mgr_init(struct bnxt_ulp_context *ulp_ctx);
void
ulp_ha_mgr_deinit(struct bnxt_ulp_context *ulp_ctx);
int32_t
ulp_ha_mgr_app_type_get(struct bnxt_ulp_context *ulp_ctx,
enum ulp_ha_mgr_app_type *app_type);
int32_t
ulp_ha_mgr_state_get(struct bnxt_ulp_context *ulp_ctx,
enum ulp_ha_mgr_state *state);
int32_t
ulp_ha_mgr_open(struct bnxt_ulp_context *ulp_ctx);
int32_t
ulp_ha_mgr_close(struct bnxt_ulp_context *ulp_ctx);
int32_t
ulp_ha_mgr_region_get(struct bnxt_ulp_context *ulp_ctx,
enum ulp_ha_mgr_region *region);
#endif /* _ULP_HA_MGR_H_*/