99a2dd955f
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also makes it awkward to add features referring to individual libraries in the build - should the lib names be specified with or without the prefix. Therefore, we can just remove the library prefix and use the library's unique name as the directory name, i.e. 'eal' rather than 'librte_eal' Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
99 lines
2.7 KiB
C
99 lines
2.7 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2020 Intel Corporation
|
|
*/
|
|
#ifndef __INCLUDE_RTE_SWX_EXTERN_H__
|
|
#define __INCLUDE_RTE_SWX_EXTERN_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @file
|
|
* RTE SWX Extern objects and functions
|
|
*
|
|
* Extern object and extern function interfaces. The extern objects and extern
|
|
* functions provide the mechanisms to hook external functionality into the
|
|
* packet processing pipeline.
|
|
*/
|
|
|
|
#include <stdint.h>
|
|
|
|
/*
|
|
* Extern type
|
|
*/
|
|
|
|
/**
|
|
* Extern object constructor
|
|
*
|
|
* @param[in] args
|
|
* Extern object constructor arguments. It may be NULL.
|
|
* @return
|
|
* Extern object handle.
|
|
*/
|
|
typedef void *
|
|
(*rte_swx_extern_type_constructor_t)(const char *args);
|
|
|
|
/**
|
|
* Extern object destructor
|
|
*
|
|
* @param[in] object
|
|
* Extern object handle.
|
|
*/
|
|
typedef void
|
|
(*rte_swx_extern_type_destructor_t)(void *object);
|
|
|
|
/**
|
|
* Extern object member function
|
|
*
|
|
* The mailbox is used to pass input arguments to the member function and
|
|
* retrieve the output results. The mailbox mechanism allows for multiple
|
|
* concurrent executions of the same member function for the same extern object.
|
|
*
|
|
* Multiple invocations of the same member function may be required in order for
|
|
* the associated operation to complete. The completion is flagged by a return
|
|
* value of 1, in which case the results are available in the mailbox; in case
|
|
* of a return value of 0, the operation is not yet completed, so the member
|
|
* function must be invoked again with exactly the same object and mailbox
|
|
* arguments.
|
|
*
|
|
* @param[in] object
|
|
* Extern object handle.
|
|
* @param[in] mailbox
|
|
* Extern object mailbox.
|
|
* @return
|
|
* 0 when the operation is not yet completed, and 1 when the operation is
|
|
* completed. No other return values are allowed.
|
|
*/
|
|
typedef int
|
|
(*rte_swx_extern_type_member_func_t)(void *object, void *mailbox);
|
|
|
|
/*
|
|
* Extern function
|
|
*/
|
|
|
|
/** The mailbox is used to pass input arguments to the extern function and
|
|
* retrieve the output results. The mailbox mechanism allows for multiple
|
|
* concurrent executions of the same extern function.
|
|
*
|
|
* Multiple invocations of the same extern function may be required in order for
|
|
* the associated operation to complete. The completion is flagged by a return
|
|
* value of 1, in which case the results are available in the mailbox; in case
|
|
* of a return value of 0, the operation is not yet completed, so the extern
|
|
* function must be invoked again with exactly the same mailbox argument.
|
|
*
|
|
* @param[in] mailbox
|
|
* Extern object mailbox.
|
|
* @return
|
|
* 0 when the operation is not yet completed, and 1 when the operation is
|
|
* completed. No other return values are allowed.
|
|
*/
|
|
typedef int
|
|
(*rte_swx_extern_func_t)(void *mailbox);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|