/*************************************************************************** * Copyright (c) 2003-2008, Broadcom Corporation * All Rights Reserved * Confidential Property of Broadcom Corporation * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * * $brcm_Workfile: $ * $brcm_Revision: $ * $brcm_Date: $ * * Module Description: * * Revision History: * * $brcm_Log: $ * * ***************************************************************************/ #if !defined(__DSMCC_H__) #define __DSMCC_H__ #include "getbits.h" struct cvt_info_t { uint8_t protocol_version; uint8_t configuration_count_change; uint32_t vendor_id; uint32_t hardware_version_id; uint8_t location_type; uint8_t download_type; uint16_t source_ID; uint16_t frequency_vector; uint8_t modulation_type; uint16_t program_number; uint16_t pid; uint8_t code_file_name_length; uint8_t code_file_name[0x100]; }; struct dii_info_t { uint16_t version; uint32_t transaction_id; uint16_t message_length; uint32_t download_id; uint16_t block_size; uint32_t download_scenario; uint16_t number_of_modules; struct bit_state_t bs; }; struct dii_module_t { uint16_t module_id; uint32_t module_size; uint8_t module_version; uint8_t module_info_length; uint8_t module_info_byte[0x100]; }; struct ddb_info_t { uint32_t download_id; uint16_t message_length; uint16_t module_id; uint8_t module_version; uint16_t block_number; uint16_t data_length; uint8_t * data_bytes; }; int dsmcc_dii_parse(void * data, size_t msg_size, struct dii_info_t * dii); int dsmcc_dii_next_module(struct dii_info_t * dii, struct dii_module_t * diim); int dsmcc_ddb_parse(void * data, size_t msg_length, struct ddb_info_t * ddb); int cvt_parse(void * c, size_t msg_size, struct cvt_info_t * cvt); #endif