00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 #ifndef dIpmiMcVendorFixSdr_h
00016 #define dIpmiMcVendorFixSdr_h
00017 
00018 
00019 #ifndef dIpmiMcVendor_h
00020 #include "ipmi_mc_vendor.h"
00021 #endif
00022 
00023 #define ENTITY_DONT_CARE    0xff
00024 
00025 typedef struct
00026 {
00027     unsigned char old_entity_id;
00028     unsigned char old_entity_instance;
00029     unsigned char new_entity_id;
00030     unsigned char new_entity_instance;
00031     bool last_entry;
00032 } mc_sdr_patch_t;
00033 
00034 typedef struct
00035 {
00036     unsigned int manufacturer_id;
00037     unsigned int product_id;
00038     mc_sdr_patch_t  *sdr_patch;
00039 } mc_patch_t;
00040 
00041 extern mc_patch_t mc_patch[];
00042 
00043 
00044 class cIpmiMcVendorFixSdr : public cIpmiMcVendor
00045 {
00046   mc_sdr_patch_t *m_sdr_patch;
00047 public:
00048   cIpmiMcVendorFixSdr( unsigned int manufacturer_id, unsigned int product_id );
00049   virtual ~cIpmiMcVendorFixSdr();
00050 
00051   virtual bool InitMc( cIpmiMc *mc, const cIpmiMsg &devid );
00052   bool ProcessSdr( cIpmiDomain *domain, cIpmiMc *mc, cIpmiSdrs *sdrs );
00053 };
00054 
00055 #endif