// +FHDR------------------------------------------------------------ // Copyright (c) 2020 PicocomTech. // ALL RIGHTS RESERVED // ----------------------------------------------------------------- // Filename : ecs_sm_mgt.c // Author : xianfeng.du // Created On : 2022-06-27 // Last Modified : // ----------------------------------------------------------------- // Description: // // // -FHDR------------------------------------------------------------ #include "ucp_printf.h" #include "mem_sections.h" #include "ucp_utility.h" #include "pet_sm_mgt.h" #include "ospHeap.h" PetSmLocalMgt_t gPetSmLocalMgt; PetSmLocalMgt_t* get_pet_sm_local_mgt(void) { return (PetSmLocalMgt_t *)&gPetSmLocalMgt; } void pet_sm_alloc(void) { UCP_PRINT_LOG("start allocating pet share memory"); uint32_t i,j; uint64_t length; PetSmLocalMgt_t* pPetSmLocalMgt = get_pet_sm_local_mgt(); uint8_t* ptr = (uint8_t *)get_static_mem(PET_SM,(uint64_t *)&length); MEM_SECTION_INFO* pMemSection = GetPetSramSection(); length = PET_SRAM_SIZE; memSectionInit(pMemSection, (uint64_t)ptr, (uint32_t)length, pMemSection->memSectionName); pPetSmLocalMgt->pHandshake = (UcpHandshake_t *)memSectionAlloc(pMemSection, sizeof(UcpHandshake_t), MEM_ALIGNED_4BYTES, "pHandshake"); pPetSmLocalMgt->pSyncInfo = (SyncInfo_t *)memSectionAlloc(pMemSection, sizeof(SyncInfo_t), MEM_ALIGNED_4BYTES, "pSyncInfo"); pPetSmLocalMgt->pBufIdxBase = (uint16_t *)memSectionAlloc(pMemSection, MAX_INSTANCE_NUM*UCP4008_TRAFFIC_MAX_NUM*MAX_M_BUFFER_NUM*sizeof(uint16_t), MEM_ALIGNED_4BYTES, "pBufIdxBase"); for (i = 0; i < MAX_INSTANCE_NUM; i++) { for (j = 0; j < UCP4008_TRAFFIC_MAX_NUM; j++) { pPetSmLocalMgt->pQueueCfg[i][j] = (MsgQueueCfg_t *)memSectionAlloc(pMemSection, sizeof(MsgQueueCfg_t), MEM_ALIGNED_4BYTES, "pQueueCfg"); } } for (i = 0; i < MAX_INSTANCE_NUM; i++) { for (j = 0; j < UCP4008_TRAFFIC_MAX_NUM; j++) { pPetSmLocalMgt->pDlQueue[i][j] = (MsgQueueCommonInfo_t *)memSectionAlloc(pMemSection, sizeof(MsgQueueCommonInfo_t), MEM_ALIGNED_64BYTES, "pDlQueue"); pPetSmLocalMgt->pUlQueue[i][j] = (MsgQueueCommonInfo_t *)memSectionAlloc(pMemSection, sizeof(MsgQueueCommonInfo_t), MEM_ALIGNED_64BYTES, "pUlQueue"); } } return; }