1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2014-2023 Broadcom
* All rights reserved.
*/
#ifndef _ULP_ALLOC_TBL_H_
#define _ULP_ALLOC_TBL_H_
#include "bitalloc.h"
/* Structure to pass the allocator table values across APIs */
struct ulp_allocator_tbl_entry {
const char *alloc_tbl_name;
uint16_t num_entries;
struct bitalloc *ulp_bitalloc;
};
/* Forward declaration */
struct bnxt_ulp_mapper_data;
struct ulp_flow_db_res_params;
/*
* Initialize the allocator table list
*
* ulp_ctx [in] - Pointer to the ulp context
* mapper_data [in] Pointer to the mapper data and the generic table is
* part of it
*
* returns 0 on success
*/
int32_t
ulp_allocator_tbl_list_init(struct bnxt_ulp_context *ulp_ctx,
struct bnxt_ulp_mapper_data *mapper_data);
/*
* Free the allocator table list
*
* mapper_data [in] Pointer to the mapper data and the generic table is
* part of it
*
* returns 0 on success
*/
int32_t
ulp_allocator_tbl_list_deinit(struct bnxt_ulp_mapper_data *mapper_data);
/*
* allocate a index from allocator
*
* mapper_data [in] Pointer to the mapper data and the allocator table is
* part of it
*
* returns index on success or negative number on failure
*/
int32_t
ulp_allocator_tbl_list_alloc(struct bnxt_ulp_mapper_data *mapper_data,
uint32_t res_sub_type, uint32_t dir,
int32_t *alloc_id);
/*
* free a index in allocator
*
* mapper_data [in] Pointer to the mapper data and the allocator table is
* part of it
*
* returns error
*/
int32_t
ulp_allocator_tbl_list_free(struct bnxt_ulp_mapper_data *mapper_data,
uint32_t res_sub_type, uint32_t dir,
int32_t index);
#endif /* _ULP_ALLOC_TBL_H_ */
|