Ack.
Not tested.
Regards,
Ramesh.
On 3/18/2016 9:30 PM, Anders Widell wrote:
> osaf/libs/core/common/ncs_main_pub.c | 13 ++++---------
> osaf/libs/core/include/ncs_main_papi.h | 16 ++++++++++++++++
> osaf/libs/core/include/ncsgl_defs.h | 7 ++++++-
> 3 files changed, 26 insertions(+), 10 deletions(-)
>
>
> Add new utility functions for extracting Slot, Subslot and Chassis from a Node
> ID. Also add a new constant for the maximum supported number of slots and
> subslots in the system.
>
> diff --git a/osaf/libs/core/common/ncs_main_pub.c
> b/osaf/libs/core/common/ncs_main_pub.c
> --- a/osaf/libs/core/common/ncs_main_pub.c
> +++ b/osaf/libs/core/common/ncs_main_pub.c
> @@ -139,7 +139,7 @@ typedef struct ncs_main_pub_cb {
> } NCS_MAIN_PUB_CB;
>
> typedef struct ncs_sys_params {
> - NCS_PHY_SLOT_ID slot_id;
> + SlotSubslotId slot_subslot_id;
> NCS_CHASSIS_ID shelf_id;
> NCS_NODE_ID node_id;
> uint32_t cluster_id;
> @@ -714,7 +714,6 @@ void ncs_get_sys_params_arg(NCS_SYS_PARA
> char *p_field;
> uint32_t tmp_ctr;
> uint32_t orig_argc;
> - NCS_SUB_SLOT_ID sub_slot_id = 0;
> NCS_SYS_PARAMS params;
> char *ptr;
> int argc = 0;
> @@ -756,17 +755,13 @@ void ncs_get_sys_params_arg(NCS_SYS_PARA
>
> gl_ncs_main_pub_cb.my_nodeid = sys_params->node_id;
>
> - if (m_NCS_GET_PHYINFO_FROM_NODE_ID(sys_params->node_id,
> &sys_params->shelf_id,
> - &sys_params->slot_id, &sub_slot_id)
> != NCSCC_RC_SUCCESS) {
> -
> - m_LEAP_DBG_SINK_VOID;
> - return;
> - }
> + sys_params->shelf_id = GetChassisIdFromNodeId(sys_params->node_id);
> + sys_params->slot_subslot_id =
> GetSlotSubslotIdFromNodeId(sys_params->node_id);
>
> sprintf(gl_pargv[orig_argc + 0], "NONE");
> sprintf(gl_pargv[orig_argc + 1], "CLUSTER_ID=%d",
> sys_params->cluster_id);
> sprintf(gl_pargv[orig_argc + 2], "SHELF_ID=%d", sys_params->shelf_id);
> - sprintf(gl_pargv[orig_argc + 3], "SLOT_ID=%d", sys_params->slot_id);
> + sprintf(gl_pargv[orig_argc + 3], "SLOT_ID=%d",
> sys_params->slot_subslot_id);
> sprintf(gl_pargv[orig_argc + 4], "NODE_ID=%d", sys_params->node_id);
> sprintf(gl_pargv[orig_argc + 5], "PCON_ID=%d", sys_params->pcon_id);
>
> diff --git a/osaf/libs/core/include/ncs_main_papi.h
> b/osaf/libs/core/include/ncs_main_papi.h
> --- a/osaf/libs/core/include/ncs_main_papi.h
> +++ b/osaf/libs/core/include/ncs_main_papi.h
> @@ -112,6 +112,22 @@ extern "C" {
> NCS_CHASSIS_ID *o_chassis_id,
> NCS_PHY_SLOT_ID
> *o_phy_slot_id, NCS_SUB_SLOT_ID *o_sub_slot_id);
>
> +static inline NCS_CHASSIS_ID GetChassisIdFromNodeId(NCS_NODE_ID node_id)
> +{
> + uint32_t kChassisMask = 0xff;
> + uint32_t chassis_id = (((uint32_t) node_id) >> 16) & kChassisMask;
> + return chassis_id;
> +}
> +
> +static inline SlotSubslotId GetSlotSubslotIdFromNodeId(NCS_NODE_ID node_id)
> +{
> + uint32_t kSubslotMask = 0xf;
> + uint32_t kSlotMask = 0xff;
> + uint32_t subslot_id = ((uint32_t) node_id) & kSubslotMask;
> + uint32_t slot_id = (((uint32_t) node_id) >> 8) & kSlotMask;
> + return ((subslot_id ^ kSubslotMask) << 8) | slot_id;
> +}
> +
> #ifdef __cplusplus
> }
> #endif
> diff --git a/osaf/libs/core/include/ncsgl_defs.h
> b/osaf/libs/core/include/ncsgl_defs.h
> --- a/osaf/libs/core/include/ncsgl_defs.h
> +++ b/osaf/libs/core/include/ncsgl_defs.h
> @@ -73,8 +73,12 @@ extern "C" {
>
> /*************************************************
> * Maximum Slots (Including sub slots) supported
> - * 16 slots x 8 subslots
> + * 256 slots x 16 subslots
> *************************************************/
> +enum {
> + kMaxSlotsSubslots = 4096
> +};
> +
> #define NCS_SLOT_MAX 16
>
> #define NCS_SUB_SLOT_MAX 16
> @@ -86,6 +90,7 @@ extern "C" {
> typedef uint8_t NCS_CHASSIS_ID;
> typedef uint8_t NCS_PHY_SLOT_ID;
> typedef uint8_t NCS_SUB_SLOT_ID;
> + typedef uint32_t SlotSubslotId;
>
> /* m_NCS_NODE_ID_FROM_MDS_DEST: Returns node-id if the MDS_DEST provided
> is an absolute destination. Returns 0
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel