| #pragma once |
| |
| /** |
| * @file hei_user_interface.hpp |
| * |
| * The method for actions like hardware register access will vary per user |
| * application. Therefore, the user application must define all of the APIs |
| * listed below. |
| */ |
| |
| #include <hei_includes.hpp> |
| |
| namespace libhei |
| { |
| |
| /** |
| * @brief Performs a hardware register read operation. |
| * |
| * @param i_chip This is a pointer to a user application object that |
| * represents the target chip. It is provided to the isolator |
| * by the user application via the isolator main APIs. The |
| * isolator does not know anything about this object nor how |
| * to use it. The user application is responsible for knowing |
| * what to do with this parameter. |
| * |
| * @param o_buffer Allocated memory space for the returned contents of the |
| * register. |
| * |
| * @param io_bufSize The input parameter is the maximum size of the allocated |
| * o_buffer. The return value is the number of bytes actually |
| * written to the buffer. |
| * |
| * @param i_regType The user application may support different types of |
| * registers. This value is provided to the isolator by the |
| * user application via the Chip Data Files. The user |
| * application is responsible for knowing what to do with this |
| * parameter. |
| * |
| * @param i_address The register address. The values is a 1, 2, 4, or 8 byte |
| * address (right justified), which is provided to the |
| * isolator by the user application via the Chip Data Files. |
| * |
| * @return RC_SUCCESS or RC_REG_ACCESS_FAILURE. Note that in the case of a |
| * failure the user application is responsible for reporting why the |
| * register access failed. |
| */ |
| ReturnCode registerRead(void * i_chip, void * o_buffer, size_t & io_bufSize, |
| uint64_t i_regType, uint64_t i_address); |
| |
| #ifndef __HEI_READ_ONLY |
| |
| /** |
| * @brief Performs a hardware register write operation. |
| * |
| * @param i_chip This is a pointer to a user application object that |
| * represents the target chip. It is provided to the isolator |
| * by the user application via the isolator main APIs. The |
| * isolator does not know anything about this object nor how |
| * to use it. The user application is responsible for knowing |
| * what to do with this parameter. |
| * |
| * @param i_buffer Allocated memory space containing the register contents to |
| * write to hardware. |
| * |
| * @param io_bufSize The input parameter is the number of byte from i_buffer to |
| * write to the hardware register. The return value is the |
| * actual number of bytes written to the hardware register. |
| * |
| * @param i_regType The user application may support different types of |
| * registers. This value is provided to the isolator by the |
| * user application via the Chip Data Files. The user |
| * application is responsible for knowing what to do with this |
| * parameter. |
| * |
| * @param i_address The register address. The values is a 1, 2, 4, or 8 byte |
| * address (right justified), which is provided to the |
| * isolator by the user application via the Chip Data Files. |
| * |
| * @return RC_SUCCESS or RC_REG_ACCESS_FAILURE. Note that in the case of a |
| * failure the user application is responsible for reporting why the |
| * register access failed. |
| */ |
| ReturnCode registerWrite(void * i_chip, void * i_buffer, size_t & io_bufSize, |
| uint64_t i_regType, uint64_t i_address); |
| |
| #endif |
| |
| } // end namespace libhei |