diff --git a/mfr-utils/sys_mfr_utils.c b/mfr-utils/sys_mfr_utils.c index 2c19e94..cb7eb81 100644 --- a/mfr-utils/sys_mfr_utils.c +++ b/mfr-utils/sys_mfr_utils.c @@ -23,33 +23,38 @@ #include #include #include +#include "mfr_types.h" -#if defined(YOCTO_BUILD) - #include "mfrTypes.h" - #include "libIARMCore.h" - #include "mfrMgr.h" - #include "libIBus.h" - #include "mfrApi.h" -#endif - -#include "sys_mfr_utils.h" - -#define NVRAM_TEST_SIZE 128 +#include "mfrTypes.h" +#include "libIARMCore.h" +#include "mfrMgr.h" +#include "libIBus.h" +#include "mfrApi.h" #if defined(YOCTO_BUILD) - const char* validParams[] = {"--CurrentImageFilename", "--FlashedFilename","--PDRIVersion"}; - const int numberOfParams = 3; + const char* validParams[] = {"--CurrentImageFilename", "--FlashedFilename", "--Modelname", "--HardwareId", "--Manufacturer", "--MfgSerialnumber", "--PDRIVersion"}; + const int numberOfParams = 7; #else - const char* validParams[] = {"--CurrentImageFilename", "--FlashedFilename"}; - const int numberOfParams = 2; + const char* validParams[] = {"--CurrentImageFilename", "--FlashedFilename", "--Modelname", "--HardwareId", "--Manufacturer", "--MfgSerialnumber"}; + const int numberOfParams = 6; #endif +/* both the args CurrentImageFilename & FlashedFilename are querying mfrSERIALIZED_TYPE_IMAGENAME. + * Leaving it as it is, to avoid breaking the caller */ +const mfrSerializedType_t mfr_args[] = {mfrSERIALIZED_TYPE_IMAGENAME, mfrSERIALIZED_TYPE_IMAGENAME, mfrSERIALIZED_TYPE_MODELNAME, mfrSERIALIZED_TYPE_HWID, mfrSERIALIZED_TYPE_MANUFACTURER, mfrSERIALIZED_TYPE_MANUFACTURING_SERIALNUMBER, mfrSERIALIZED_TYPE_PDRIVERSION}; +const char* mfr_args_str[] = {"mfrSERIALIZED_TYPE_IMAGENAME", "mfrSERIALIZED_TYPE_IMAGENAME", "mfrSERIALIZED_TYPE_MODELNAME", "mfrSERIALIZED_TYPE_HWID", "mfrSERIALIZED_TYPE_MANUFACTURER", "mfrSERIALIZED_TYPE_MANUFACTURING_SERIALNUMBER", "mfrSERIALIZED_TYPE_PDRIVERSION"}; + + void displayHelp() { printf("Usage : mfr_util [CMD] \n"); printf("CMDs are \n" ); printf("%5s -> %s \n","--help", "print this help."); printf("%5s -> %s \n","--CurrentImageFilename", "Get current running imagename "); printf("%5s -> %s \n","--FlashedFilename", "Get current flashed imagename "); + printf("%5s -> %s \n","--Modelname", "Get Model name"); + printf("%5s -> %s \n","--HardwareId", "Get Hardware ID"); + printf("%5s -> %s \n","--Manufacturer", "Get Manufacturer name"); + printf("%5s -> %s \n","--MfgSerialnumber", "Get Manufacturer serial number"); #if defined(YOCTO_BUILD) printf("%5s -> %s \n","--PDRIVersion", "Get current PDRIVersion "); #endif @@ -72,164 +77,66 @@ int validateParams(const char* param) { return paramIndex; } -void getCurrentRunningFileName() { - IARM_Bus_MFRLib_GetSerializedData_Param_t *param; - IARM_Result_t ret; - char *pTmpStr; - int len; - - //redirect stdout to null to avoid printing debug prints from IARM Bus - FILE * fp_orig = stdout; //preserve the original stdout - stdout = fopen("/dev/null","w"); - - IARM_Bus_Init("mfr_util"); - IARM_Bus_Connect(); - IARM_Malloc(IARM_MEMTYPE_PROCESSLOCAL, sizeof(IARM_Bus_MFRLib_GetSerializedData_Param_t), (void**)¶m); - - stdout=fp_orig; //restore stdout - - param->type = mfrSERIALIZED_TYPE_IMAGENAME; +int main(int argc, char *argv[]) +{ - ret = IARM_Bus_Call(IARM_BUS_MFRLIB_NAME, - IARM_BUS_MFRLIB_API_GetSerializedData, - (void *)param, - sizeof(IARM_Bus_MFRLib_GetSerializedData_Param_t)); + int paramIndex = 0; - if(ret != IARM_RESULT_SUCCESS) - { - printf("Call failed for %s: error code:%d\n","mfrSERIALIZED_TYPE_PDRIVERSION",ret); - } - else - { - len = param->bufLen + 1; - pTmpStr = (char *)malloc(len); - memset(pTmpStr,0,len); - memcpy(pTmpStr,param->buffer,param->bufLen); - printf("%s\n", pTmpStr); - free(pTmpStr); + if (argc != 2) { + displayHelp(); + return -1; } - IARM_Free(IARM_MEMTYPE_PROCESSLOCAL,param); - return ; -} - -void getCurrentFlashedFileName() { - IARM_Bus_MFRLib_GetSerializedData_Param_t *param; - IARM_Result_t ret; - char *pTmpStr; - int len; - //redirect stdout to null to avoid printing debug prints from IARM Bus - FILE * fp_orig = stdout; //preserve the original stdout - stdout = fopen("/dev/null","w"); - - IARM_Bus_Init("mfr_util"); - IARM_Bus_Connect(); - IARM_Malloc(IARM_MEMTYPE_PROCESSLOCAL, sizeof(IARM_Bus_MFRLib_GetSerializedData_Param_t), (void**)¶m); - - stdout=fp_orig; //restore stdout - - param->type = mfrSERIALIZED_TYPE_IMAGENAME; - - ret = IARM_Bus_Call(IARM_BUS_MFRLIB_NAME, - IARM_BUS_MFRLIB_API_GetSerializedData, - (void *)param, - sizeof(IARM_Bus_MFRLib_GetSerializedData_Param_t)); - - if(ret != IARM_RESULT_SUCCESS) - { - printf("Call failed for %s: error code:%d\n","mfrSERIALIZED_TYPE_PDRIVERSION",ret); - } - else - { - len = param->bufLen + 1; - pTmpStr = (char *)malloc(len); - memset(pTmpStr,0,len); - memcpy(pTmpStr,param->buffer,param->bufLen); - printf("%s\n", pTmpStr); - free(pTmpStr); + paramIndex = validateParams(argv[1]); + if( paramIndex == -1 ){ + displayHelp(); + return -1; } - IARM_Free(IARM_MEMTYPE_PROCESSLOCAL,param); - return ; -} - - -#if defined(YOCTO_BUILD) -void getPDRIVersion(){ IARM_Bus_MFRLib_GetSerializedData_Param_t *param; IARM_Result_t ret; - char *pTmpStr; - int len; //redirect stdout to null to avoid printing debug prints from IARM Bus - FILE * fp_orig = stdout; //preserve the original stdout - stdout = fopen("/dev/null","w"); + int fp_old = dup(1); // preserve the original stdout + freopen ("/dev/null", "w", stdout); IARM_Bus_Init("mfr_util"); IARM_Bus_Connect(); IARM_Malloc(IARM_MEMTYPE_PROCESSLOCAL, sizeof(IARM_Bus_MFRLib_GetSerializedData_Param_t), (void**)¶m); - stdout=fp_orig; //restore stdout + fclose(stdout); + stdout = fdopen(fp_old, "w"); // restore stdout - param->type = mfrSERIALIZED_TYPE_PDRIVERSION; + param->type = mfr_args[paramIndex];; ret = IARM_Bus_Call(IARM_BUS_MFRLIB_NAME, - IARM_BUS_MFRLIB_API_GetSerializedData, - (void *)param, - sizeof(IARM_Bus_MFRLib_GetSerializedData_Param_t)); + IARM_BUS_MFRLIB_API_GetSerializedData, + (void *)param, + sizeof(IARM_Bus_MFRLib_GetSerializedData_Param_t)); if(ret != IARM_RESULT_SUCCESS) { - printf("Call failed for %s: error code:%d\n","mfrSERIALIZED_TYPE_PDRIVERSION",ret); + printf("Call failed for %s: error code:%d\n", mfr_args_str[paramIndex], ret); } else { - len = param->bufLen + 1; - pTmpStr = (char *)malloc(len); + int len = param->bufLen + 1; + char *pTmpStr = (char *)malloc(len); memset(pTmpStr,0,len); memcpy(pTmpStr,param->buffer,param->bufLen); printf("%s\n", pTmpStr); free(pTmpStr); } IARM_Free(IARM_MEMTYPE_PROCESSLOCAL,param); -} -#endif - -int main(int argc, char *argv[]) -{ - - int paramIndex = 0; - - if (argc != 2) { - displayHelp(); - return -1; - } - - paramIndex = validateParams(argv[1]); - if( validateParams(argv[1]) == -1 ){ - displayHelp(); - return -1; - } + fp_old = dup(1); // preserve the original stdout + freopen ("/dev/null", "w", stdout); - switch(paramIndex) { - /*Check for validParams array for parameter name mapping*/ - case 0 : - getCurrentRunningFileName(); - break; - case 1 : - getCurrentFlashedFileName(); - break; -#if defined(YOCTO_BUILD) - case 2 : - getPDRIVersion(); - break; -#endif - default : - displayHelp(); - break; + IARM_Bus_Disconnect(); + IARM_Bus_Term(); - } + fclose(stdout); + stdout = fdopen(fp_old, "w"); // restore stdout return 0; } diff --git a/mfr-utils/sys_mfr_utils.h b/mfr-utils/sys_mfr_utils.h deleted file mode 100644 index e485a37..0000000 --- a/mfr-utils/sys_mfr_utils.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * If not stated otherwise in this file or this component's LICENSE file the - * following copyright and licenses apply: - * - * Copyright 2016 RDK Management - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. -*/ -void getCurrentFlashedFileName(void); -void getCurrentRunningFileName(void); - -#if defined(YOCTO_BUILD) - void getPDRIVersion(void); -#endif -