/*************************************************************************** * Copyright (c) 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: $ * ***************************************************************************/ #ifndef CAD_PARSER_H__ #define CAD_PARSER_H__ #include "bdispatch.h" #define CAD_DESCRIPTOR_TAG 0x87 #define CAD_LENGTH_OFFSET 1 /* offset relative to CAD descriptor header */ #define CAD_RATING_REGION_OFFSET 2 #define CAD_MAX_RATING_REGIONS 8 /* maximum rating regions, 1 - 8 */ #define CAD_MAX_RATING_VALUE 8 /* maximum rating value for each rating region */ typedef struct { uint8_t rating_dimension_j; /* dimension index */ uint8_t rating_value; /* 4 bits rating value */ } cad_rating, *pcad_rating; typedef struct { uint8_t rating_region; /* rating region */ uint8_t rated_dimensions; /* rated dimension */ cad_rating rating[CAD_MAX_RATING_VALUE]; } cad_rating_region, *pcad_rating_region; typedef struct { uint8_t length; /* length of rating region descriptor */ uint8_t rating_region_count; /* rating region for which the data is defined */ cad_rating_region rr[CAD_MAX_RATING_REGIONS]; } cad_descriptor, *pcad_descriptor; int cad_parser(const uint8_t *cad_buf, size_t size, cad_descriptor *cad_desc); uint8_t *cad_get_descriptor(const uint8_t *cad_buf, int index, size_t *psize); void cad_dump_descriptor(const uint8_t *cad_buf, cad_descriptor *cad_desc); #endif /* CAD_PARSER_H__ */