diff options
Diffstat (limited to 'src/occ_gpe1/gpe_centaur.h')
-rw-r--r-- | src/occ_gpe1/gpe_centaur.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/occ_gpe1/gpe_centaur.h b/src/occ_gpe1/gpe_centaur.h new file mode 100644 index 0000000..ad8e2a7 --- /dev/null +++ b/src/occ_gpe1/gpe_centaur.h @@ -0,0 +1,53 @@ +#if !defined(_GPE_CENTAUR_H) +#define _GPE_CENTAUR_H + +#include "ipc_structs.h" +#include "centaur_structs.h" + +// IPC interface +void gpe_centaur_scom(ipc_msg_t* i_cmd, void* i_arg); +void gpe_centaur_data(ipc_msg_t* i_cmd, void* i_arg); +void gpe_centaur_init(ipc_msg_t* i_cmd, void* i_arg); + +// HCODE interface +/** + * Populate a CentaurConfiguration object + * @param[out] 8 byte aligned pointer to the CentaurConfiguration object. + * @return [0 | return code] + * @note The CentaurConfiguration object is shared with the 405 so + * it needs to be in non-cacheable sram. + */ +int gpe_centaur_configuration_create(CentaurConfiguration_t * o_config); + +/** + * Scom all of the centaurs with the same SCOM address. + * @param[in] The CentaurConfig object + * @param[in] The SCOM address + * @param[out] The array of data collected. Must be large enough to hold + * uint64_t data from each centaur. + * @return [0 | return code] + */ +int centaur_get_scom_vector(CentaurConfiguration_t* i_config, + uint32_t i_scom_address, + uint64_t* o_data); + +/** + * Scom one or more centaurs + * @param[in] The CentaurConfig object + * @param[in/out] The Centaur Scom Parms object + * @return The return code is part of the Centaur Scom Parms object + */ +void gpe_scom_centaur(CentaurConfiguration_t* i_config, + CentaurScomParms_t* i_parms); + + +/** + * Collect the centaur thermal data + * @param[in] The CentaurConfig object + * @param[in/out] The Centaur data parm object + * @return [0 | return code] + */ +int centaur_get_mem_data(CentaurConfiguration_t* i_config, + CentaurGetMemDataParms_t* i_parms); + +#endif |