/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ /* * common/ini/ini_proxy.c * * Copyright (C) 2020 Amlogic, Inc. All rights reserved. * */ #include "ini_config.h" #define LOG_TAG "ini_proxy" #define LOG_NDEBUG 0 #include "ini_log.h" #include "ini_handler.h" #include "ini_proxy.h" INI_HANDLER_DATA *gHandlerData = NULL; static unsigned char *gBinData = NULL; void BinFileInit(void) { if (gBinData == NULL) { gBinData = malloc(CC_MAX_INI_FILE_SIZE); if (gBinData != NULL) memset(gBinData, 0, CC_MAX_INI_FILE_SIZE); } } void BinFileUninit(void) { if (gBinData != NULL) { free(gBinData); gBinData = NULL; } } int ReadBinFile(const char* filename) { if (gBinData == NULL) { return -1; } return bin_file_read(filename, gBinData); } int GetBinData(unsigned char* file_buf, unsigned int file_size) { if (gBinData == NULL) { return -1; } if (file_buf == NULL) { return -1; } memcpy(file_buf, gBinData, file_size); return 0; } void IniParserInit(void) { if (gHandlerData == NULL) { gHandlerData = (INI_HANDLER_DATA *) malloc(sizeof(INI_HANDLER_DATA)); if (gHandlerData != NULL) { memset((void *)gHandlerData, 0, sizeof(INI_HANDLER_DATA)); } } } void IniParserUninit(void) { if (gHandlerData != NULL) { IniParserFree(); free(gHandlerData); gHandlerData = NULL; } } int IniParseFile(const char* filename) { if (gHandlerData == NULL) { return -1; } return ini_file_parse(filename, gHandlerData); } int IniParseMem(unsigned char* file_buf) { if (gHandlerData == NULL) { return -1; } return ini_mem_parse(file_buf, gHandlerData); } int IniSetSaveFileName(const char* filename) { if (gHandlerData == NULL) { return -1; } return ini_set_save_file_name(filename, gHandlerData); } void IniParserFree(void) { if (gHandlerData == NULL) { return; } return ini_free_mem(gHandlerData); } void IniPrintAll(void) { if (gHandlerData == NULL) { return; } return ini_print_all(gHandlerData); } void IniListSection(void) { if (gHandlerData == NULL) { ALOGE("%s, ini load file error!\n", __FUNCTION__); return; } ini_list_section(gHandlerData); } const char* IniGetString(const char* section, const char* key, const char* def_value) { if (gHandlerData == NULL) { return def_value; } return ini_get_string(section, key, def_value, gHandlerData); } int IniSetString(const char *section, const char *key, const char *value) { if (gHandlerData == NULL) { return -1; } return ini_set_string(section, key, value, gHandlerData); } int IniSaveToFile(const char *filename) { if (gHandlerData == NULL) { return -1; } return ini_save_to_file(filename, gHandlerData); }