| #ifndef _VPDECC_H_ |
| #define _VPDECC_H_ |
| |
| #pragma GCC diagnostic ignored "-Wunused-variable" |
| #pragma GCC diagnostic ignored "-Wunused-parameter" |
| |
| #include <stdlib.h> |
| |
| #define VPD_ECC_OK 0 |
| #define VPD_ECC_NOT_ENOUGH_BUFFER 1 |
| #define VPD_ECC_WRONG_ECC_SIZE 2 |
| #define VPD_ECC_WRONG_BUFFER_SIZE 9 |
| #define VPD_ECC_UNCORRECTABLE_DATA 90 |
| #define VPD_ECC_CORRECTABLE_DATA 91 |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| /* TODO doxygen !!!!!!!! */ |
| |
| /******************************************************************************/ |
| /* vpdecc_create_ecc */ |
| /* */ |
| /* For a given data block (together with the length of the data block */ |
| /* this function creates the ECC */ |
| /* */ |
| /* @param pData In-Buffer containing the raw VPD data */ |
| /* (won't be changed) */ |
| /* */ |
| /* @param vDataLength In should contain the length of the |
| * Data */ |
| /* in the buffer given to vData */ |
| /* */ |
| /* @param pEcc Out-Buffer after execution this will be the */ |
| /* buffer for the calculated Ecc */ |
| /* */ |
| /* @param pEccLenght In/Out In : size of buffer */ |
| /* Out: contains the length of the Ecc |
| */ |
| /* */ |
| /* @return Error returncode */ |
| /******************************************************************************/ |
| int vpdecc_create_ecc(const unsigned char* data, size_t datalength, |
| unsigned char* ecc, size_t* ecc_buffersize); |
| |
| /******************************************************************************/ |
| /* vpdecc_check_data */ |
| /* */ |
| /* For a given data block (together with the ecc) */ |
| /* this function checks the data for validness */ |
| /* */ |
| /* @param pData In-Buffer containing the raw VPD data */ |
| /* Out-Buffer containing the raw VPD data */ |
| /* No error : data unchanged |
| */ |
| /* Correctable error : data corrected |
| */ |
| /* Uncorrectable error: data unchanged |
| */ |
| /* */ |
| /* @param vDataLength In should contain the length of the |
| * Data */ |
| /* in the buffer given to vData */ |
| /* */ |
| /* @param pEcc In-Buffer should contain the Ecc for the data |
| */ |
| /* */ |
| /* */ |
| /* @param vEccLenght In should contain the length of the Ecc |
| */ |
| /* */ |
| /* @return Error returncode */ |
| /******************************************************************************/ |
| int vpdecc_check_data(unsigned char* data, size_t data_length, |
| const unsigned char* ecc, size_t ecc_length); |
| |
| #ifdef __cplusplus |
| } /* end extern "C" */ |
| #endif |
| |
| #endif /* endif _VPDECC_H_ */ |