int ihp_DecodeGetToneMapInfo (const uint8_t buffer [], size_t length, ihpapi_result_t * result) { struct __packed vs_tone_map_char_cnf { struct header_vs header; uint8_t MSTATUS; uint8_t TMSLOT; uint8_t NUMTMS; uint16_t TMNUMACTCARRIERS; uint8_t MOD_CARRIER [MOD_CARRIER_MAX_TUPLE_NUM]; } * confirm = (struct vs_tone_map_char_cnf *)(buffer); #if INTELLON_SAFEMODE if (length < sizeof (struct vs_tone_map_char_cnf)) { return (-1); } if (result == (ihpapi_result_t *)(0)) { return (-1); } #endif result->opStatus.status = confirm->MSTATUS; result->data.toneMap.tmslot = confirm->TMSLOT; result->data.toneMap.numtms = confirm->NUMTMS; result->data.toneMap.tmnumactcarriers = intohs(confirm->TMNUMACTCARRIERS); memcpy (result->data.toneMap.mod_carrier, confirm->MOD_CARRIER, MOD_CARRIER_MAX_TUPLE_NUM); return (0); }
int ihp_DecodeSetHgBusiness(const uint8_t buffer [ ], size_t length, ihpapi_result_t * result) { vs_hg_cnf_header_t * confirm = (vs_hg_cnf_header_t *)(buffer); if( 0x01 != intohs(confirm->action) ) { result->validData = false; result->opStatus.status = 0x01; return (-1); } else { result->validData = true; result->opStatus.status = intohs(confirm->MSTATUS); return (0); } }
int ihp_DecodeWriteModule (const uint8_t buffer [], size_t length, ihpapi_result_t * result) { struct __packed vs_wr_mod_cnf { struct header_vs header; uint8_t MSTATUS; uint8_t MODULEID; uint8_t RESERVED; uint16_t LENGTH; uint32_t OFFSET; } * confirm = (struct vs_wr_mod_cnf *)(buffer); #if INTELLON_SAFEMODE if (length < sizeof (struct vs_wr_mod_cnf)) { errno = ERANGE; return (-1); } if (result == (ihpapi_result_t *)(0)) { errno = EFAULT; return (-1); } #if 0 if (wrmodblk == (WrtModBlock *)(0)) { errno = EFAULT; return (-1); } #endif #endif #if 0 result->opStatus.status = confirm->MSTATUS; wrmodblk->cnf.MODULEID = confirm->MODULEID; wrmodblk->cnf.LENGTH = intohs(confirm->LENGTH); wrmodblk->cnf.OFFSET = intohl(confirm->OFFSET); #endif result->validData = true; return (confirm->MSTATUS); }