X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Finclude%2Frte_eal.h;h=eaf6469e50b1938f8614e9ab2c2237cbccf2860b;hb=8d63961fc7137cab823f85a50ee82779792f21e4;hp=2f9ed298de63eea593b5712e5462d36d752910cf;hpb=9c1e0dc39a03c95447095241eaf3764d2e0dd003;p=dpdk.git diff --git a/lib/librte_eal/include/rte_eal.h b/lib/librte_eal/include/rte_eal.h index 2f9ed298de..eaf6469e50 100644 --- a/lib/librte_eal/include/rte_eal.h +++ b/lib/librte_eal/include/rte_eal.h @@ -19,6 +19,7 @@ #include #include #include +#include #include @@ -31,15 +32,6 @@ extern "C" { /* Maximum thread_name length. */ #define RTE_MAX_THREAD_NAME_LEN 16 -/** - * The lcore role (used in RTE or not). - */ -enum rte_lcore_role_t { - ROLE_RTE, - ROLE_OFF, - ROLE_SERVICE, -}; - /** * The type of process in a linux, multi-process setup */ @@ -73,17 +65,9 @@ int rte_eal_iopl_init(void); /** * Initialize the Environment Abstraction Layer (EAL). * - * This function is to be executed on the MASTER lcore only, as soon + * This function is to be executed on the MAIN lcore only, as soon * as possible in the application's main() function. - * - * The function finishes the initialization process before main() is called. - * It puts the SLAVE lcores in the WAIT state. - * - * When the multi-partition feature is supported, depending on the - * configuration (if CONFIG_RTE_EAL_MAIN_PARTITION is disabled), this - * function waits to ensure that the magic number is set before - * returning. See also the rte_eal_get_configuration() function. Note: - * This behavior may change in the future. + * It puts the WORKER lcores in the WAIT state. * * @param argc * A non-negative value. If it is greater than 0, the array members @@ -138,8 +122,9 @@ int rte_eal_init(int argc, char **argv); * be made. It is expected that common usage of this function is to call it * just before terminating the process. * - * @return 0 Successfully released all internal EAL resources - * @return -EFAULT There was an error in releasing all resources. + * @return + * - 0 Successfully released all internal EAL resources. + * - -EFAULT There was an error in releasing all resources. */ int rte_eal_cleanup(void); @@ -160,6 +145,20 @@ int rte_eal_cleanup(void); */ int rte_eal_primary_proc_alive(const char *config_file_path); +/** + * Disable multiprocess. + * + * This function can be called to indicate that multiprocess won't be used for + * the rest of the application life. + * + * @return + * - true if called from a primary process that had no secondary processes + * attached, + * - false, otherwise. + */ +__rte_experimental +bool rte_mp_disable(void); + #define RTE_MP_MAX_FD_NUM 8 /* The max amount of fds */ #define RTE_MP_MAX_NAME_LEN 64 /* The max length of action name */ #define RTE_MP_MAX_PARAM_LEN 256 /* The max length of param */ @@ -438,6 +437,19 @@ int rte_eal_create_uio_dev(void); */ enum rte_intr_mode rte_eal_vfio_intr_mode(void); +/** + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * Copy the user-configured vfio VF token. + * + * @param vf_token + * vfio VF token configured with the command line is copied + * into this parameter, zero uuid by default. + */ +__rte_experimental +void rte_eal_vfio_get_vf_token(rte_uuid_t vf_token); + /** * A wrap API for syscall gettid. * @@ -447,6 +459,8 @@ enum rte_intr_mode rte_eal_vfio_intr_mode(void); */ int rte_sys_gettid(void); +RTE_DECLARE_PER_LCORE(int, _thread_id); + /** * Get system unique thread id. * @@ -456,7 +470,6 @@ int rte_sys_gettid(void); */ static inline int rte_gettid(void) { - static RTE_DEFINE_PER_LCORE(int, _thread_id) = -1; if (RTE_PER_LCORE(_thread_id) == -1) RTE_PER_LCORE(_thread_id) = rte_sys_gettid(); return RTE_PER_LCORE(_thread_id);