1094dd940e
With symbols going though experimental/stable stages, we accumulated a lot of discrepancies about inclusion of the rte_compat.h header. Some headers are including it where unneeded, while others rely on implicit inclusion. Fix unneeded inclusions: $ git grep -l include..rte_compat.h | xargs grep -LE '__rte_(internal|experimental)' | xargs sed -i -e '/#include..rte_compat.h/d' Fix missing inclusion, by inserting rte_compat.h before the first inclusion of a DPDK header: $ git grep -lE '__rte_(internal|experimental)' | xargs grep -L include..rte_compat.h | xargs sed -i -e \ '0,/#include..\(rte_\|.*pmd.h.$\)/{ s/\(#include..\(rte_\|.*pmd.h.$\)\)/#include <rte_compat.h>\n\1/ }' Fix missing inclusion, by inserting rte_compat.h after the last inclusion of a non DPDK header: $ for file in $(git grep -lE '__rte_(internal|experimental)' | xargs grep -L include..rte_compat.h); do tac $file > $file.$$ sed -i -e \ '0,/#include../{ s/\(#include..*$\)/#include <rte_compat.h>\n\n\1/ }' $file.$$ tac $file.$$ > $file rm $file.$$ done Fix missing inclusion, by inserting rte_compat.h after the header guard: $ git grep -lE '__rte_(internal|experimental)' | xargs grep -L include..rte_compat.h | xargs sed -i -e \ '0,/#define/{ s/\(#define .*$\)/\1\n\n#include <rte_compat.h>/ }' And finally, exclude rte_compat.h itself. $ git checkout lib/eal/include/rte_compat.h At the end of all this, we have a clean tree: $ git grep -lE '__rte_(internal|experimental)' | xargs grep -L include..rte_compat.h buildtools/check-symbols.sh devtools/checkpatches.sh doc/guides/contributing/abi_policy.rst doc/guides/rel_notes/release_20_11.rst lib/eal/include/rte_compat.h Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
79 lines
1.8 KiB
C
79 lines
1.8 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
*
|
|
* Copyright(c) 2019-2021 Xilinx, Inc.
|
|
* Copyright(c) 2016-2019 Solarflare Communications Inc.
|
|
*
|
|
* This software was jointly developed between OKTET Labs (under contract
|
|
* for Solarflare) and Solarflare Communications, Inc.
|
|
*/
|
|
|
|
#ifndef _SFC_EFX_MCDI_H
|
|
#define _SFC_EFX_MCDI_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <rte_compat.h>
|
|
#include <rte_spinlock.h>
|
|
|
|
#include "efsys.h"
|
|
#include "efx.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum sfc_efx_mcdi_state {
|
|
SFC_EFX_MCDI_UNINITIALIZED = 0,
|
|
SFC_EFX_MCDI_INITIALIZED,
|
|
SFC_EFX_MCDI_BUSY,
|
|
SFC_EFX_MCDI_COMPLETED,
|
|
SFC_EFX_MCDI_DEAD,
|
|
|
|
SFC_EFX_MCDI_NSTATES
|
|
};
|
|
|
|
typedef int (sfc_efx_mcdi_dma_alloc_cb)(void *cookie, const char *name,
|
|
size_t len, efsys_mem_t *esmp);
|
|
|
|
typedef void (sfc_efx_mcdi_dma_free_cb)(void *cookie, efsys_mem_t *esmp);
|
|
|
|
typedef void (sfc_efx_mcdi_sched_restart_cb)(void *cookie);
|
|
|
|
typedef void (sfc_efx_mcdi_mgmt_evq_poll_cb)(void *cookie);
|
|
|
|
struct sfc_efx_mcdi_ops {
|
|
sfc_efx_mcdi_dma_alloc_cb *dma_alloc;
|
|
sfc_efx_mcdi_dma_free_cb *dma_free;
|
|
sfc_efx_mcdi_sched_restart_cb *sched_restart;
|
|
sfc_efx_mcdi_mgmt_evq_poll_cb *mgmt_evq_poll;
|
|
};
|
|
|
|
struct sfc_efx_mcdi {
|
|
rte_spinlock_t lock;
|
|
const struct sfc_efx_mcdi_ops *ops;
|
|
void *ops_cookie;
|
|
efx_nic_t *nic;
|
|
efsys_mem_t mem;
|
|
enum sfc_efx_mcdi_state state;
|
|
efx_mcdi_transport_t transport;
|
|
uint32_t logtype;
|
|
uint32_t proxy_handle;
|
|
efx_rc_t proxy_result;
|
|
const char *log_prefix;
|
|
};
|
|
|
|
__rte_internal
|
|
int sfc_efx_mcdi_init(struct sfc_efx_mcdi *mcdi,
|
|
uint32_t logtype, const char *log_prefix,
|
|
efx_nic_t *nic,
|
|
const struct sfc_efx_mcdi_ops *ops, void *ops_cookie);
|
|
__rte_internal
|
|
void sfc_efx_mcdi_fini(struct sfc_efx_mcdi *mcdi);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _SFC_EFX_MCDI_H */
|