X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Finclude%2Frte_lcore.h;h=0fe0bd839c49f947122c9b0d3424731942b0d4ca;hb=8d63961fc7137cab823f85a50ee82779792f21e4;hp=5c1d1926e9d6f6a50324b9f5e643637c41d760d2;hpb=7afdfac8e6ee2169728cae229664a06f58e9c766;p=dpdk.git diff --git a/lib/librte_eal/include/rte_lcore.h b/lib/librte_eal/include/rte_lcore.h index 5c1d1926e9..0fe0bd839c 100644 --- a/lib/librte_eal/include/rte_lcore.h +++ b/lib/librte_eal/include/rte_lcore.h @@ -15,6 +15,7 @@ #include #include #include +#include #ifdef __cplusplus extern "C" { @@ -24,6 +25,16 @@ extern "C" { RTE_DECLARE_PER_LCORE(unsigned, _lcore_id); /**< Per thread "lcore id". */ +/** + * The lcore role (used in RTE or not). + */ +enum rte_lcore_role_t { + ROLE_RTE, + ROLE_OFF, + ROLE_SERVICE, + ROLE_NON_EAL, +}; + /** * Get a lcore's role. * @@ -34,6 +45,20 @@ RTE_DECLARE_PER_LCORE(unsigned, _lcore_id); /**< Per thread "lcore id". */ */ enum rte_lcore_role_t rte_eal_lcore_role(unsigned int lcore_id); +/** + * Test if the core supplied has a specific role + * + * @param lcore_id + * The identifier of the lcore, which MUST be between 0 and + * RTE_MAX_LCORE-1. + * @param role + * The role to be checked against. + * @return + * Boolean value: positive if test is true; otherwise returns 0. + */ +int +rte_lcore_has_role(unsigned int lcore_id, enum rte_lcore_role_t role); + /** * Return the Application thread ID of the execution unit. * @@ -44,7 +69,8 @@ enum rte_lcore_role_t rte_eal_lcore_role(unsigned int lcore_id); * to run threads with lcore IDs 0, 1, 2 and 3 on physical core 10.. * * @return - * Logical core ID (in EAL thread) or LCORE_ID_ANY (in non-EAL thread) + * Logical core ID (in EAL thread or registered non-EAL thread) or + * LCORE_ID_ANY (in unregistered non-EAL thread) */ static inline unsigned rte_lcore_id(void) @@ -53,12 +79,24 @@ rte_lcore_id(void) } /** - * Get the id of the master lcore + * Get the id of the main lcore * * @return - * the id of the master lcore + * the id of the main lcore */ -unsigned int rte_get_master_lcore(void); +unsigned int rte_get_main_lcore(void); + +/** + * Deprecated function the id of the main lcore + * + * @return + * the id of the main lcore + */ +__rte_deprecated +static inline unsigned int rte_get_master_lcore(void) +{ + return rte_get_main_lcore(); +} /** * Return the number of execution units (lcores) on the system. @@ -178,52 +216,147 @@ int rte_lcore_is_enabled(unsigned int lcore_id); * * @param i * The current lcore (reference). - * @param skip_master - * If true, do not return the ID of the master lcore. + * @param skip_main + * If true, do not return the ID of the main lcore. * @param wrap * If true, go back to 0 when RTE_MAX_LCORE is reached; otherwise, * return RTE_MAX_LCORE. * @return * The next lcore_id or RTE_MAX_LCORE if not found. */ -unsigned int rte_get_next_lcore(unsigned int i, int skip_master, int wrap); +unsigned int rte_get_next_lcore(unsigned int i, int skip_main, int wrap); /** * Macro to browse all running lcores. */ #define RTE_LCORE_FOREACH(i) \ for (i = rte_get_next_lcore(-1, 0, 0); \ - i