| /***************************************************************************** |
| * Copyright Statement: |
| * -------------------- |
| * This software is protected by Copyright and the information contained |
| * herein is confidential. The software may not be copied and the information |
| * contained herein may not be used or disclosed except with the written |
| * permission of MediaTek Inc. (C) 2005 |
| * |
| * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES |
| * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") |
| * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON |
| * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. |
| * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE |
| * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR |
| * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH |
| * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO |
| * NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S |
| * SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM. |
| * |
| * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE |
| * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, |
| * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, |
| * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO |
| * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. |
| * |
| * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE |
| * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF |
| * LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND |
| * RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER |
| * THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC). |
| * |
| *****************************************************************************/ |
| |
| /***************************************************************************** |
| * Filename: |
| * --------- |
| * nvram_interface.h |
| * |
| * Project: |
| * -------- |
| * MAUI |
| * |
| * Description: |
| * ------------ |
| * These are interface functions of NVRAM module. |
| * |
| * Author: |
| * ------- |
| * ------- |
| * |
| *============================================================================ |
| * HISTORY |
| * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| *------------------------------------------------------------------------------ |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| *------------------------------------------------------------------------------ |
| * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| *============================================================================ |
| ****************************************************************************/ |
| #ifndef NVRAM_INTERFACE_H |
| #define NVRAM_INTERFACE_H |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif /* __cplusplus */ |
| |
| #include "kal_general_types.h" |
| #include "kal_public_defs.h" |
| #include "nvram_enums.h" |
| |
| #include "nvram_defs.h" |
| |
| typedef struct |
| { |
| kal_bool (*callback)(void *user_data); |
| void *user_data; |
| module_type module; |
| nvram_lid_enum file_id; |
| kal_bool processed; |
| }nvram_read_callback_struct; |
| |
| typedef enum |
| { |
| NVRAM_READ_TYPE_CHKSUM = 1, |
| NVRAM_READ_TYPE_CHKSUM_ONLY, |
| NVRAM_READ_TYPE_MAX |
| }nvram_lid_read_type_enum; |
| |
| typedef struct |
| { |
| kal_uint32 chksum_algo_type; |
| kal_uint32 chksum_algo_length; |
| }nvram_lid_chksum_algo_info; |
| |
| #if defined(__MTK_TARGET__) |
| #define nvram_read_callback_entry nvram_read_callback_struct __attribute__((section("_nvram_callback_tbl"))) |
| #else |
| #ifdef _MSC_VER |
| #define nvram_read_callback_entry __pragma(section("_nvram_callback_tbl_content")) \ |
| nvram_read_callback_struct __declspec(allocate("_nvram_callback_tbl_content")) |
| #else |
| #define nvram_read_callback_entry nvram_read_callback_struct __attribute__((section("_nvram_callback_tbl_content"))) |
| #endif |
| #endif |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_info |
| * DESCRIPTION |
| * This is nvram_get_info() function of NVRAM module. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * total: [OUT] The record number of the LID |
| * size: [OUT] The record size of the LID |
| * RETURNS |
| * NVRAM_ERRNO_SUCCESS if succeed, NVRAM_ERRNO_INVALID otherwise (ie, invalid LID). |
| *****************************************************************************/ |
| extern nvram_errno_enum nvram_get_info(nvram_lid_enum LID, kal_uint16 *total, kal_uint16 *size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_write_exception |
| * DESCRIPTION |
| * |
| * PARAMETERS |
| * length: [IN] buffer length |
| * ex_data: [IN] ex_data |
| * ex_log: [IN] ex_log |
| * RETURNS |
| * void |
| *****************************************************************************/ |
| extern void nvram_write_exception(kal_uint16 length, long *ex_data, long *ex_log); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_lid_num |
| * DESCRIPTION |
| * To get the total number of LID |
| * PARAMETERS |
| * void |
| * RETURNS |
| * nvram_ptr->ltable.total_LID |
| *****************************************************************************/ |
| extern nvram_lid_enum nvram_get_lid_num(void); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_check_backup |
| * DESCRIPTION |
| * To tell given LID needs to backup or not |
| * PARAMETERS |
| * LID: [IN] LID of the file |
| * prefix: [IN] file prefix |
| * RETURNS |
| * NVRAM_IO_ERRNO_OK: need to backup |
| * NVRAM_IO_ERRNO_INVALID_LID: LID out of range or don't need to backup |
| *****************************************************************************/ |
| extern kal_uint8 nvram_check_backup(nvram_lid_enum LID, kal_char **prefix, kal_char **verno); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_validate_file |
| * DESCRIPTION |
| * To validate integrity of the given file |
| * PARAMETERS |
| * LID: [IN] LID of the file |
| * path: [IN] path to validate |
| * RETURNS |
| * NVRAM_IO_ERRNO_OK: valid |
| * NVRAM_IO_ERRNO_INVALID_LID: LID out of range |
| * others: invalid |
| *****************************************************************************/ |
| extern nvram_errno_enum nvram_validate_file(nvram_lid_enum LID, kal_wchar *path); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_shutdown_handler |
| * DESCRIPTION |
| * Disable all interrupts, change NVRAM state, change FS command mode, and flush |
| * PARAMETERS |
| * void |
| * RETURNS |
| * void |
| *****************************************************************************/ |
| void nvram_shutdown_handler(void); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_test_lock |
| * DESCRIPTION |
| * get lock state from nvram context. |
| * PARAMETERS |
| * void |
| * RETURNS |
| * KAL_TRUE if locked, else KAL_FALSE |
| *****************************************************************************/ |
| extern kal_bool nvram_test_lock(void); |
| |
| #ifdef __NVRAM_DISK_SIZE_CHECK__ |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_space_reserve |
| * DESCRIPTION |
| * get lock state from nvram context. |
| * PARAMETERS |
| * void |
| * RETURNS |
| * KAL_TRUE if locked, else KAL_FALSE |
| *****************************************************************************/ |
| extern void nvram_space_reserve(kal_uint32 *size_from_code); |
| #endif |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_usb_read_data |
| * DESCRIPTION |
| * This function is used to get bmt calibration data ONLY when USB power on. |
| * PARAMETERS |
| * LID: [IN] |
| * buffer: [OUT] |
| * buffer_size: [IN] |
| * RETURNS |
| * NVRAM_ERRNO_SUCCESS if succeed, NVRAM_ERRNO_INVALID otherwise (ie, invalid LID). |
| *****************************************************************************/ |
| extern kal_bool nvram_usb_read_data(nvram_lid_enum LID, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_sec_port_is_enable |
| * DESCRIPTION |
| * To get TST port status |
| * PARAMETERS |
| * void |
| * RETURNS |
| * TST port Enable or Disable |
| *****************************************************************************/ |
| extern kal_bool nvram_sec_port_is_enable(void); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_default_value |
| * DESCRIPTION |
| * This function is used to get default value for external modules. |
| * PARAMETERS |
| * LID: [IN] |
| * rec_index: [IN] |
| * p_buffer: [IN/OUT] |
| * |
| * RETURNS |
| * NVRAM_DEFAULT_VALUE_FAIL : get default value fail |
| * NVRAM_DEFAULT_VALUE_FF : p_buffer is invalid, default value is FF |
| * NVRAM_DEFAULT_VALUE_ZERO : p_buffer is invalid, default value is zero |
| * NVRAM_DEFAULT_VALUE_POINT: p_buffer is valid, use p_buffer to get default value |
| *****************************************************************************/ |
| extern nvram_default_value_enum nvram_get_default_value(nvram_lid_enum LID, |
| kal_uint16 rec_index, |
| kal_uint8 **p_buffer); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_file_fullname |
| * DESCRIPTION |
| * To get the full name of nvram file. |
| * PARAMETERS |
| * folder_idx : [In] folder index |
| * nvramname : [In] nvram name |
| * filename : [Out] full file path |
| * RETURNS |
| * index of folder. |
| *****************************************************************************/ |
| extern kal_wchar * nvram_get_file_fullname(kal_uint8 folder_idx, |
| kal_char *nvramname, |
| kal_wchar *filename); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_folder_idx |
| * DESCRIPTION |
| * To get the index of nvram folder. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * RETURNS |
| * index of folder. |
| *****************************************************************************/ |
| extern kal_uint8 nvram_get_folder_idx(nvram_lid_enum LID); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_work_path |
| * DESCRIPTION |
| * To get NVRAM working directory. |
| * PARAMETERS |
| * folder_idx : [IN] Which folder |
| * RETURNS |
| * NVRAM working directory. |
| *****************************************************************************/ |
| extern kal_char *nvram_get_work_path(kal_uint8 folder_idx); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_folder_total_amount |
| * DESCRIPTION |
| * To get the full name of nvram file. |
| * PARAMETERS |
| * void |
| * RETURNS |
| * number of folders |
| *****************************************************************************/ |
| extern kal_uint8 nvram_get_folder_total_amount(void); |
| |
| #ifdef __NVRAM_READ_RESERVED_FILE__ |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_search_reserved_lid |
| * DESCRIPTION |
| * This function is used to read reserved data items for external modules. |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * verno: [IN] Reserved LID VERNO. exp."001" |
| * total_records: [IN] Reserved LID record. set 0 for any one. |
| * size: [IN] Reserved LID size. set 0 for any one. |
| * RETURNS |
| * a boolean value |
| * RETURN VALUES |
| * KAL_FALSE: Fail. No match reserved files. |
| * KAL_TRUE: Success. create info to NVRAM_EF_READ_RESERVED_LID |
| *****************************************************************************/ |
| extern kal_bool nvram_external_search_reserved_lid(nvram_lid_enum LID, kal_char *verno, kal_uint16 total_records, kal_uint16 size); |
| #endif |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_read_multi_record |
| * DESCRIPTION |
| * This function is used to get data items for external modules. |
| * PARAMETERS |
| * LID [IN] |
| * rec_index [IN] |
| * rec_amount [IN] |
| * buffer [?] |
| * buffer_size [IN] |
| * .(?) |
| * RETURNS |
| * NVRAM_ERRNO_SUCCESS if succeed, NVRAM_ERRNO_INVALID otherwise (ie, invalid LID). |
| *****************************************************************************/ |
| extern kal_bool nvram_external_read_multi_record(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint16 rec_amount, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_read_data |
| * DESCRIPTION |
| * This function is used to read data items for external modules. |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * buffer: [OUT] buffer pointer |
| * buffer_size: [IN] buffer size |
| * RETURNS |
| * a boolean value |
| * RETURN VALUES |
| * KAL_FALSE: fail |
| * KAL_TRUE: success |
| *****************************************************************************/ |
| extern kal_bool nvram_external_read_data(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_read_raw_data |
| * DESCRIPTION |
| * This function is used to get data items for external modules. |
| * PARAMETERS |
| * LID [IN] |
| * offset [IN] |
| * buffer [OUT] |
| * buffer_size [IN] |
| * .(?) |
| * RETURNS |
| * NVRAM_ERRNO_SUCCESS if succeed, NVRAM_ERRNO_INVALID otherwise (ie, invalid LID). |
| *****************************************************************************/ |
| extern kal_bool nvram_external_read_raw_data(nvram_lid_enum LID, kal_uint32 offset, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_secure_read_data |
| * DESCRIPTION |
| * This function is used to get data items for external modules with secure check. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * buffer: [OUT] buffer pointer |
| * buffer_size: [IN] buffer size |
| * RETURNS |
| * NVRAM_ERRNO_SUCCESS if succeed, NVRAM_ERRNO_INVALID otherwise (ie, invalid LID). |
| *****************************************************************************/ |
| extern nvram_errno_enum nvram_external_secure_read_data(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint8 *buffer, kal_uint32 buffer_size, void* reserved_ptr); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_get_lid_chksum_algo_info |
| * DESCRIPTION |
| * This function is used to get LID checksum algorithm information for external modules. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * lid_chksum_algo_info: [OUT] LID checksum algorithm information structure pointer |
| * RETURNS |
| * NVRAM_ERRNO_SUCCESS if succeed, NVRAM_ERRNO_INVALID otherwise (ie, invalid LID). |
| *****************************************************************************/ |
| extern nvram_errno_enum nvram_external_get_lid_chksum_algo_info(nvram_lid_enum LID, nvram_lid_chksum_algo_info* lid_chksum_algo_info); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_read_chksum_value |
| * DESCRIPTION |
| * This function is used to read the checksum of data item for external module. |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * rec_amount: [IN] read how many record |
| * buffer: [OUT] buffer pointer |
| * buffer_size: [IN] buffer size |
| * read_chksum_type: [IN] read checksum type |
| * RETURNS |
| * NVRAM_ERRNO_SUCCESS if succeed, NVRAM_ERRNO_INVALID otherwise (ie, invalid LID). |
| *****************************************************************************/ |
| extern nvram_errno_enum nvram_external_read_chksum_value(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint16 rec_amount, kal_uint8 *buffer, kal_uint32 buffer_size, nvram_lid_read_type_enum read_chksum_type); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_read_chksum |
| * DESCRIPTION |
| * This function is used to read the checksum of data item for external module. |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * rec_amount: [IN] read how many record |
| * buffer: [OUT] buffer pointer |
| * buffer_size: [IN] buffer size |
| * RETURNS |
| * a boolean value |
| * RETURN VALUES |
| * KAL_FALSE: fail |
| * KAL_TRUE: success |
| *****************************************************************************/ |
| extern kal_bool nvram_external_read_chksum(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint16 rec_amount, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_read_chksum_only |
| * DESCRIPTION |
| * This function is used to read the checksum of data item for external module. |
| * This function do not verify current checksum, and just return last written checksum. |
| * If data item is encrypted, this function as same as nvram_external_secure_read_data(). |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * rec_amount: [IN] read how many record |
| * buffer: [OUT] buffer pointer |
| * buffer_size: [IN] buffer size |
| * RETURNS |
| * a boolean value |
| * RETURN VALUES |
| * KAL_FALSE: fail |
| * KAL_TRUE: success |
| *****************************************************************************/ |
| extern kal_bool nvram_external_read_chksum_only(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint16 rec_amount, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_read_chksum_8b |
| * DESCRIPTION |
| * This function is used to read the checksum of data item for external module. |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * rec_amount: [IN] read how many record |
| * buffer: [OUT] buffer pointer |
| * buffer_size: [IN] buffer size |
| * RETURNS |
| * a boolean value |
| * RETURN VALUES |
| * KAL_FALSE: fail |
| * KAL_TRUE: success |
| *****************************************************************************/ |
| extern kal_bool nvram_external_read_chksum_8b(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint16 rec_amount, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_read_chksum_only_8b |
| * DESCRIPTION |
| * This function is used to read the checksum of data item for external module. |
| * This function do not verify current checksum, and just return last written checksum. |
| * If data item is encrypted, this function as same as nvram_external_secure_read_data(). |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * rec_amount: [IN] read how many record |
| * buffer: [OUT] buffer pointer |
| * buffer_size: [IN] buffer size |
| * RETURNS |
| * a boolean value |
| * RETURN VALUES |
| * KAL_FALSE: fail |
| * KAL_TRUE: success |
| *****************************************************************************/ |
| extern kal_bool nvram_external_read_chksum_only_8b(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint16 rec_amount, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_write_data |
| * DESCRIPTION |
| * This function is used to write data items for external modules. |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * buffer: [IN] buffer pointer |
| * buffer_size: [IN] buffer size |
| * RETURNS |
| * a boolean value |
| * RETURN VALUES |
| * KAL_FALSE: fail |
| * KAL_TRUE: success |
| *****************************************************************************/ |
| extern kal_bool nvram_external_write_data(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_write_raw_data |
| * DESCRIPTION |
| * This function is used to write data items for external modules. |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID [IN] |
| * offset [IN] |
| * buffer [IN] |
| * buffer_size [IN] |
| * .(?) |
| * RETURNS |
| * NVRAM_ERRNO_SUCCESS if succeed, NVRAM_ERRNO_INVALID otherwise (ie, invalid LID). |
| *****************************************************************************/ |
| extern kal_bool nvram_external_write_raw_data(nvram_lid_enum LID, kal_uint32 offset, kal_uint8 *buffer, kal_uint32 buffer_size); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_secure_write_data |
| * DESCRIPTION |
| * This function is used to write data items for external modules with secure check. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * buffer: [IN] buffer pointer |
| * buffer_size: [IN] buffer size |
| * RETURNS |
| * NVRAM_ERRNO_SUCCESS if succeed, NVRAM_ERRNO_INVALID otherwise (ie, invalid LID). |
| *****************************************************************************/ |
| extern nvram_errno_enum nvram_external_secure_write_data(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint8 *buffer, kal_uint32 buffer_size, void* reserved_ptr); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_reset_data |
| * DESCRIPTION |
| * This function is used to reset data items for external modules. |
| * Please must check with NVRAM owner before you use this API. |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index |
| * buffer: [IN] buffer pointer |
| * RETURNS |
| * a boolean value |
| * RETURN VALUES |
| * KAL_FALSE: fail |
| * KAL_TRUE: success |
| *****************************************************************************/ |
| kal_bool nvram_external_reset_data(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint16 rec_amount); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_check_hidden_files |
| * DESCRIPTION |
| * Check if the files or folder is hidden or not in Meta FAT Editor. |
| * 1. Any LID with NVRAM_CATEGORY_IMPORTANT will not appear in meta FAT Editor. ex: IMEI and SML |
| * 2. Important Folder will not appear in meta FAT Editor. |
| * 3. Customer sensitive data. |
| * Exception 1: During backup/restore, we can see IMEI and SML |
| * Exception 2: When NVRAM is locked. All the files and folder are hidden. |
| * |
| * PARAMETERS |
| * filename: [IN] the filename |
| * backup: [IN] During backup/restore the hidden file is different from normal |
| * Please set this as true during backup/restore |
| * RETURNS |
| * a boolean value |
| * RETURN VALUES |
| * KAL_TRUE: hidden |
| * KAL_FALSE: not hidden |
| *****************************************************************************/ |
| extern kal_bool nvram_check_hidden_file(const kal_wchar* filename, kal_bool backup); |
| |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_imei_type |
| * DESCRIPTION |
| * To get storage type of IMEI |
| * PARAMETERS |
| * void |
| * RETURNS |
| * NVRAM_STORAGE_TYPE_FAT: store in FAT |
| * NVRAM_STORAGE_TYPE_OTP: store in OTP |
| * NVRAM_STORAGE_TYPE_SECRO: store in secure RO |
| *****************************************************************************/ |
| extern kal_uint8 nvram_get_imei_type(void); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_imei_value |
| * DESCRIPTION |
| * To get the IMEI value via blocking function |
| * PARAMETERS |
| * length: [IN] Length of imei_buf, in byte, at least 8 bytes. |
| * imei_buf: [OUT] buffer to fill in IMEI |
| * rec_index: [IN] Can be 1 or 2 to access both IMEI on dual sim project. |
| * It should be 1 on single sim project. |
| * RETURNS |
| * KAL_TRUE: SUCCESS |
| * KAL_FALSE: FAIL |
| *****************************************************************************/ |
| extern kal_bool nvram_get_imei_value(kal_uint8 length, kal_uint8 *imei_buf, kal_uint16 rec_index); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_get_imei_record_num |
| * DESCRIPTION |
| * To get the record number of imei |
| * PARAMETERS |
| * void |
| * RETURNS |
| * number of imei record number |
| *****************************************************************************/ |
| extern kal_uint16 nvram_get_imei_record_num(void); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_is_imei_unset |
| * DESCRIPTION |
| * To tell if the IMEI equals to its default value. |
| * PARAMETERS |
| * rec_index: [IN] the index of record |
| * RETURNS |
| * KAL_TRUE: unset |
| * KAL_FALSE: set |
| *****************************************************************************/ |
| extern kal_bool nvram_is_imei_unset(kal_uint16 rec_index); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_secure_write_imei |
| * DESCRIPTION |
| * This function is used to write imei data items with secure check. |
| * PARAMETERS |
| * length: [IN] Length of imei_buf, in byte, at least 8 bytes. |
| * imei_buf: [IN] IMEI buffer |
| * rec_index: [IN] the index of record |
| * RETURNS |
| * KAL_TRUE: write success |
| * KAL_FALSE: write fail |
| *****************************************************************************/ |
| extern kal_bool nvram_secure_write_imei(kal_uint8 length, kal_uint8 *imei_buf, kal_uint16 rec_index, void* reserved_ptr); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_compare_to_default_value |
| * DESCRIPTION |
| * This function is used to compare the value in nvram file to default value |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * rec_index: [IN] record index, start from 1, but if the value is 0, |
| * this function will compare all record to default value |
| * RETURNS |
| * nvram_errno_enum |
| * RETURN VALUES |
| * NVRAM_ERRNO_SUCCESS: no error |
| * NVRAM_ERRNO_FAIL: at least one record is different to default value |
| *****************************************************************************/ |
| extern kal_int32 nvram_compare_to_default_value(nvram_lid_enum LID, kal_uint16 rec_index); |
| |
| |
| |
| extern kal_uint8 *nvram_get_custpack_version(void); |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_set_restore_factory_flag |
| * DESCRIPTION |
| * PARAMETERS |
| * RETURNS |
| *****************************************************************************/ |
| extern kal_bool nvram_set_restore_factory_flag(nvram_restore_flag_enum restore_flag); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_check_restore_factory_flag |
| * DESCRIPTION |
| * PARAMETERS |
| * RETURNS |
| *****************************************************************************/ |
| extern kal_bool nvram_check_restore_factory_flag(void); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_ltable_register |
| * DESCRIPTION |
| * PARAMETERS |
| * RETURNS |
| *****************************************************************************/ |
| extern void nvram_ltable_register(nvram_ltable_entry_struct *table); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_register_read_req |
| * DESCRIPTION |
| * PARAMETERS |
| * RETURNS |
| *****************************************************************************/ |
| extern kal_bool nvram_register_read_req(nvram_read_callback_struct *entry); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_external_get_lid_info |
| * DESCRIPTION |
| * This function is used to get the LID info |
| * PARAMETERS |
| * LID: [IN] NVRAM LID |
| * ldi: [OUT] LID info buffer pointer,store the LID info |
| * RETURNS |
| * nvram_errno_enum |
| * RETURN VALUES |
| * NVRAM_ERRNO_SUCCESS: no error |
| * NVRAM_IO_ERRNO_INVALID_LID: invalid LID |
| * NVRAM_ERRNO_INVALID: lid pointer is NULL |
| *****************************************************************************/ |
| extern nvram_errno_enum nvram_external_get_lid_info(nvram_lid_enum LID,nvram_ltable_entry_struct *ldi); |
| |
| /***************************************************************************** |
| * FUNCTION |
| * nvram_debug_info_init |
| * DESCRIPTION |
| * This function is used to get the share memory to store the debug info |
| * PARAMETERS |
| * share_mem: [OUT] the memory address of MD CCCI debug info |
| * length: [OUT] the length of MD CCCI debug info |
| * RETURNS |
| * nvram_errno_enum |
| * RETURN VALUES |
| * KAL_TRUE: get the share memory success |
| * KAL_FALSE: fail to get the share memory |
| *****************************************************************************/ |
| extern kal_bool nvram_debug_info_init(kal_uint32 **share_mem,kal_uint32 *length); |
| |
| |
| /***************************************************************************** |
| * for FT task to get all nvram data items |
| *****************************************************************************/ |
| extern kal_bool nvram_util_next_data_item(nvram_ltable_entry_struct **entry); |
| extern kal_bool nvram_util_get_data_item(nvram_ltable_entry_struct **ldi, nvram_lid_enum LID); |
| extern kal_bool nvram_util_get_data_item_by_fileprefix(nvram_ltable_entry_struct **ldi, kal_char *fileprefix); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* NVRAM_INTERFACE_H */ |
| |