IPMIConf.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810
  1. ///******************************************************************
  2. // ******************************************************************
  3. // *** **
  4. // *** (C)Copyright 2005-2006, American Megatrends Inc. **
  5. // *** **
  6. // *** All Rights Reserved. **
  7. // *** **
  8. // *** 5555 , Oakbrook Pkwy, Norcross, **
  9. // *** **
  10. // *** Georgia - 30093, USA. Phone-(770)-246-8600. **
  11. // *** **
  12. // ******************************************************************
  13. // ******************************************************************
  14. // ******************************************************************
  15. // *
  16. // * IPMIConf.h
  17. // * IPMI related configurations
  18. // *
  19. // * Author: Winston <winstonv@amiindia.co.in>
  20. // ******************************************************************/
  21. // #ifndef _IPMIConf_H
  22. // #define _IPMIConf_H
  23. // #include "Types.h"
  24. //// #include "OSPort.h"
  25. // #include "PMConfig.h"
  26. // #include "Session.h"
  27. //// #include "SensorMonitor.h"
  28. // #include "LANIfc.h"
  29. // #include "SharedMem.h"
  30. // #include "IPMI_SDR.h"
  31. // #include "IfcSupport.h"
  32. // #include "MsgHndlr.h"
  33. //// #include "hal_defs.h"
  34. ////#include "PDKFRU.h"
  35. // #include "RMCP+.h"
  36. // #include "UDSIfc.h"
  37. // #include "PEFTmr.h"
  38. // #include "IPMI_SEL.h"
  39. // #include "Terminal.h"
  40. // #include "SerialIfc.h"
  41. // #include <semaphore.h>
  42. // #include "IPMI_AMISmtp.h"
  43. //// #include "hal_api.h"
  44. // #include "SDRRecord.h"
  45. //// #include "featuredef.h"
  46. // #include "SELRecord.h"
  47. //#include "bmc_type.h"
  48. //
  49. //
  50. //#define OEM_ENV_SIZE (0x10000 - sizeof(unsigned long))
  51. //#define MAINTLOG_BASE_ADDR (0x01800000)
  52. //#define LOG_BLOCK_SIZE (65536) //64K
  53. //#define RUNLOG_BASE_ADDR (0x01800000 + 65536*50)
  54. //
  55. ////GPIO define
  56. //
  57. ////slot ID
  58. //#define GPIO_GA0 16 //GPIOC0
  59. //#define GPIO_GA1 17 //GPIOC1
  60. //#define GPIO_GA2 18 //GPIOC2
  61. //#define GPIO_GA3 19 //GPIOC3
  62. //#define GPIO_GA4 20 //GPIOC4
  63. //
  64. //#define MAX_PLATFORMID_SIZE 20
  65. //#define MAX_DYNMC_TBL_COUNT 50
  66. //#define MAX_MGMT_DEV_LOC_REC 1
  67. //
  68. //#define MAX_SOL_DATA_SIZE 248
  69. //#define MAX_SEN_NAME_SIZE 64
  70. //#define MAXFILESIZE 0x64
  71. //#define MAXDIRSIZE 0x64
  72. //#define MAX_HMAC_BUF_SIZE 128
  73. //#define IPMI_CONFIG_FILE "/conf/BMC/IPMI.conf"
  74. // #define MAX_IPMI_IFCQ 256
  75. // #define IPMI_IFC_NAME_LEN 60
  76. // #define IFCENABLED 0x1
  77. // #define IFCDISABLED 0x0
  78. // #define CH_NOT_USED 0xFF
  79. // #define MAX_NUM_CHANNELS 0xc
  80. //#define PRIMARY_IPMB_CHANNEL_TYPE 0x00
  81. //#define SMLINK_IPMB_CHANNEL_TYPE 0x04
  82. //#define ICMB_CHANNEL_TYPE 0x05
  83. //#define SMBUS_CHANNEL_TYPE 0x06
  84. //#define SERIAL_CHANNEL_TYPE 0x07
  85. //#define SMM_CHANNEL_TYPE 0x08
  86. //#define LAN_RMCP_CHANNEL4_TYPE 0x09
  87. //#define SYS_CHANNEL_TYPE 0x0f
  88. //#define USB_CHANNEL 0x0B
  89. //#define SYS_IFC_CHANNEL 0x0F
  90. //#define PRIMARY_IPMB_CHANNEL 0x00
  91. //#define MAX_IFC_NAME 16
  92. //#define LAN1_INDEX 0
  93. //#define LAN2_INDEX 1
  94. //#define LAN3_INDEX 2
  95. //#define LAN4_INDEX 3
  96. //#define MAX_SYMSEC_SIZE 256
  97. //#define NM_PRIMARY_IPMB_BUS 0
  98. //#define NM_SECONDARY_IPMB_BUS 1
  99. //#define MAX_IPMI_CONFIG_MAPS 64
  100. //#define MAX_IPMI_IFC_COUNT 20
  101. //
  102. //#define MAX_SIZE_KEY 56 /* For Blowfish Encryption Algorithm, the key can have maximum of 56 bytes. */
  103. //
  104. //#define GET_LIB_META_INFO_SYMBOL "GetLibMetaInfo"
  105. //#define SOL_SEND_BUF 0x00
  106. //#define SOL_RECV_BUF 0x01
  107. //#define MANUAL_OFFSETS "Etc"
  108. //
  109. //#define FLUSH_INI_DELETE_DAT 0xFF
  110. //#define FLUSH_TO_INI_ALONE 0xFE
  111. //#define FLUSH_OEM_CONFIGS_TO_INI 0xE0
  112. ////Note:- action parameter 0xE0 to 0xEF are used for flushing oem configs to ini
  113. ////Oems can make use of different action parameter to flush particular oem configurations
  114. //
  115. //typedef struct {
  116. // INT8U ast2400InitErrFlag;
  117. // INT8U destroySSD;
  118. // INT8U destroySSD_sure;
  119. // INT8U EEPROM_Busy;
  120. // INT8U ManualDuty;
  121. //}PACKED OEM_FLAGS_T;
  122. //
  123. //typedef struct {
  124. // unsigned long crc; // CRC32 over data bytes
  125. // unsigned char data[OEM_ENV_SIZE]; // Environment data
  126. //} PACKED oem_env_t;
  127. //
  128. //typedef enum
  129. //{
  130. // SUCCESS = 0,
  131. // DRIVER_INIT_ERR,
  132. // FILE_SYS_INIT_ERR,
  133. // MEM_INIT_ERR,
  134. // TASK_INIT_ERR,
  135. // UNKNOWN_ERR
  136. //} OEM_AST2400_INIT_ERR;
  137. //
  138. //typedef enum
  139. //{
  140. // LAN_SESSION_TYPE=1,
  141. // SERIAL_SESSION_TYPE,
  142. // SERIAL_TERMINAL_SESSION_TYPE,
  143. // KCS_SESSION_TYPE,
  144. // BT_SESSION_TYPE,
  145. // IPMB_SESSION_TYPE,
  146. // UDS_SESSION_TYPE,
  147. // USB_SESSION_TYPE,
  148. //}IPMI_SESSIONTYPE;
  149. //
  150. //
  151. ///*---------------------- Local typedefs --------------------------*/
  152. ///* For storing the management controller owner id to enable event */
  153. //typedef struct
  154. //{
  155. // INT8U OWNERID;
  156. // INT16U PowerNotification;
  157. // BOOL Status;
  158. //
  159. //} PACKED Mgmt_T;
  160. //
  161. //typedef struct
  162. //{
  163. // INT8U SensorNum;
  164. // INT8U SensorTypeCode;
  165. // INT8U LowerNonCritical;
  166. // INT8U LowerCritical;
  167. // INT8U LowerNonRecoverable;
  168. // INT8U UpperNonCritical;
  169. // INT8U UpperCritical;
  170. // INT8U UpperNonRecoverable;
  171. //
  172. //} PACKED SensorThresholds;
  173. //typedef struct
  174. //{
  175. // int buf_size;
  176. // int head;
  177. // int tail;
  178. // int is_full;
  179. // INT8U* p_buf;
  180. //
  181. //}PACKED RingBuf_T;
  182. //
  183. //typedef struct
  184. //{
  185. // int BMCInst;
  186. // int Len;
  187. // char* Argument;
  188. //}PACKED BMCArg;
  189. //
  190. ///*
  191. //typedef struct
  192. //{
  193. // INT8S IfcName[IPMI_IFC_NAME_LEN];
  194. // HQueue_T IfcQ;
  195. //}PACKED IPMIQueue_T;
  196. //*/
  197. //
  198. //typedef void (*pThreadFn_T) (pthread_t ThrdID);
  199. //
  200. //typedef struct
  201. //{
  202. // INT8S IfcName[IPMI_IFC_NAME_LEN];
  203. // pThreadFn_T ThreadFn;
  204. //}PACKED ThreadPriority_T;
  205. //
  206. //typedef struct
  207. //{
  208. // INT8U *pFlag;
  209. // CHAR SectionName[50];
  210. //}PACKED FlagInit_T;
  211. //
  212. //
  213. //typedef struct
  214. //{
  215. // INT8S SectionName[MAX_SYMSEC_SIZE];
  216. // INT8S SymbolName[MAX_SYMSEC_SIZE];
  217. // INT8S IFCString[MAX_STR_LENGTH];
  218. // INT8U ModuleType;
  219. // INT8U Arg_NetFn;
  220. // INT8U GroupExtCode;
  221. // void* PrivateStore;
  222. //}PACKED IPMILibMetaInfo_T;
  223. //
  224. ///*
  225. //typedef struct
  226. //{
  227. // INT8U SendMsgTimeout;
  228. // INT8U SessionTimeOut;
  229. // INT8U SOLSessionTimeOut;
  230. // INT8U PrimaryIPMBBusNumber;
  231. // INT8U SecondaryIPMBBusNumber;
  232. // INTU ChassisTimerInterval;
  233. // INT8U EEPROMBusNum;
  234. // INT8U AlterPreConfiguredEntries;
  235. // INT8U ChassisInterruptSupport ;
  236. // INT8U InterruptSensorHandling;
  237. // INT8U EventsForRearm ;
  238. // char *pSOLPort;
  239. // char *pSerialPort;
  240. // INT8U MaxSession;
  241. // INT8U SDRAllocationSize;
  242. // INT8U SELAllocationSize;
  243. // INT8U BMCSlaveAddr;
  244. // INT8U MaxUsers;
  245. // INT8U MaxChUsers;
  246. // INT8U PrimaryIPMBSupport ;
  247. // INT8U SMMIfcSupport ;
  248. // INT8U SerialIfcSupport ;
  249. // INT8U SerialTerminalSupport;
  250. // INT8U LANIfcSupport ;
  251. // INT8U KCS1IfcSupport ;
  252. // INT8U KCS2IfcSupport ;
  253. // INT8U KCS3IfcSuppport ;
  254. // INT8U SYSIfcSupport;
  255. // INT8U SMBUSIfcSupport;
  256. // INT8U ICMBIfcSupport ;
  257. // INT8U SecondaryIPMBSupport ;
  258. // INT8U MaxLanChannel ;
  259. // INT8U KCSSMMChannel;
  260. // INT8U USBIfcSupport ;
  261. // INT8U SOLIfcSupport ;
  262. // INT8U APMLSupport;
  263. // INT8U DCMISupport ;
  264. // INT8U HPMSupport;
  265. // INT8U OPMASupport;
  266. // INT8U GrpExtnSupport ;
  267. // INT8U CardInFlashMode ;
  268. // INT8U VLANIfcSupport;
  269. // INT8U UDSIfcSupport;
  270. // INT8U LinkDownResilentSupport;
  271. // INT8U RearmSetSensorThreshold;
  272. // INT8U APMLBusNumber;
  273. // INT8U PrimaryIPMBAddr;
  274. // INT8U SecondaryIPMBAddr;
  275. // INT8U BTIfcSupport;
  276. // INT8U ChassisTimerSupport;
  277. // INT8U IPMIFirewallSupport;
  278. // INT8U InternalPwrGoodMonitoring;
  279. //} IPMIConfig_T;
  280. //*/
  281. //
  282. //
  283. //typedef struct
  284. //{
  285. // INT8U MatchedEventSeverity;
  286. // INT8U AlertStr[ALERT_STR_MAX_BLOCKS* ALERT_STR_BLOCK_SIZE];
  287. // INT16U LANAlertSequence; /**< Contains Event severity from PEF configuration */
  288. // INT32U SpecificTrap; /* SNMP Specific Trap field */
  289. // PEFTmrMgr_T PEFTmrMgr;
  290. // INT16U LastProcessedIDs[MAX_DEFERRED_ALERTS];
  291. // pthread_mutex_t PEFSharedMemMutex;
  292. //} PEF_T;
  293. //
  294. //typedef struct
  295. //{
  296. // INT16U DCMISamplingTimer;
  297. // INT16U DCMITimer;
  298. // INT16U DCMICurrentPower;
  299. // INT16U DCMIMinPower;
  300. // INT16U DCMIMaxPower;
  301. // INT16U DCMIPrevPower;
  302. // INT16U DCMIAvgPower;
  303. // int FirstSample;
  304. // INT8U DCMIThermalTimer;
  305. // INT8U DCMIThermalFirstSample;
  306. // INT8U DCMICurrTempReading[MAX_TEMP_INSTANCE];
  307. //}DCMI_T;
  308. //
  309. //typedef struct
  310. //{
  311. // INT16U SelReservationID;
  312. // INT32U LastEvtTS;
  313. // INT8U SELLimit;
  314. // INT16U PartialAddRecordID;
  315. // INT8U PartialAddRecOffset;
  316. // INT8U PartialAdd;
  317. // INT8U SenMonSELFlag;
  318. // INT16U MaxSELRecord;
  319. // INT8U RsrvIDCancelled;
  320. // BOOL SELOverFlow;
  321. // SELEventRecord_T SelPartialAddRecord;
  322. // INT8U SELEventMsg [16];
  323. // int selalmostfull;
  324. // pthread_mutex_t SELMutex;
  325. //} SEL_T;
  326. //
  327. //typedef struct
  328. //{
  329. // INT8U SDRError;
  330. // BOOL UpdatingSDR;
  331. // INT8U UpdatingChannel;
  332. // SDRRepositoryAllocInfo_T RepositoryAllocInfo;
  333. // SDRRepositoryInfo_T RepositoryInfo;
  334. // INT8U TrackPOffset;
  335. // INT16U TrackRecID;
  336. // INT16U ReservationID;
  337. // INT8U IPMB_Seqnum;
  338. // INT8U PartAddbytes;
  339. // INT16U LatestRecordID;
  340. // INT16U NumMarkedRecords;
  341. // SDRRepository_T* SDRRAM;
  342. // pthread_mutex_t SDRMutex;
  343. //} SDR_T;
  344. ///*
  345. //typedef struct
  346. //{
  347. // INT8U IPMBBusNum;
  348. // INT8S IPMBBusName[64];
  349. // int IPMBSlaveFd;
  350. // int IPMBMasterFd;
  351. // INT8U m_IPMBSeqNo;
  352. //
  353. //} IPMB_T;
  354. //*/
  355. //typedef struct
  356. //{
  357. // INT8U SerialPkt [MAX_SERIAL_PKT_SIZE];
  358. // INT16U SerialPktIx;
  359. // INT16U SerialPktLen;
  360. // INT8U CurState;
  361. // INT8U PrevByteEsc;
  362. // INT8U CurMode;
  363. // int serial_fd;
  364. // INT32U SerialSessionID;
  365. // INT8U SerialSessionActive;
  366. // INT32U TerminalSessionID;
  367. // INT8U SessionActivated;
  368. // INT8U TerminalPkt [MAX_SERIAL_PKT_SIZE];
  369. // INT8U TerminalPktIx;
  370. // INT8U TerminalIfc;
  371. // BOOL ErrCode;
  372. // INT8U ErrIndex;
  373. // INT8U TCurState;
  374. // INT8U TPrevByteEsc;
  375. // INT8U CursorPos;
  376. // int terminal_fd;
  377. // INT8U CurSwitchDir; //should sync in PDK_SwitchEMPMux, record the status of UART switch, MUX_2_BMC, MUX_2_SYS.
  378. //}SERIAL_T;
  379. //
  380. //typedef struct
  381. //{
  382. // INT8U GratArpCnt;
  383. // INT8U ArpSuspendReq;
  384. // INT8U SetInProgress;
  385. // INT8U TmrSet;
  386. // INT8U SelfTestByte;
  387. // INT8U ManufacturingTestOnMode;
  388. // INT8U WarmReset;
  389. // INT8U ColdReset;
  390. // INT8U BBlk;
  391. // INT8U ChassisControl; // = 0xFF;
  392. // INT8U ChassisIdentify;
  393. // INT32U ChassisIdentifyTimeout;
  394. // INT8U ChassisIdentifyForce;
  395. // INT8U FireWallRequired;// = TRUE; //This Flag decides if firewall required on a specific channnel.
  396. // //INT8U CurKCSIfcNum;
  397. // //INT8U CurSessionType;
  398. // //INT8U MsgHndlrTblSize; // = 7;
  399. // //INT8U GroupExtnMsgHndlrTblSize;// = 0;
  400. // //INT8U TimerTaskTblSize;// = 7;
  401. //
  402. //} MSGHNDLR_T;
  403. //
  404. //typedef struct
  405. //{
  406. // INT8U NMSupport;
  407. // INT8U NM_IPMBBus;
  408. // INT8U NMDevSlaveAddress;
  409. //}NMInfo_T;
  410. //
  411. //typedef struct
  412. //{
  413. // INT8U TmrSet;
  414. //}WDT_T;
  415. //
  416. //typedef struct
  417. //{
  418. // INT16U NumThreshSensors;
  419. // INT16U NumNonThreshSensors;
  420. // int MonitorBusy;//=0;
  421. // INT16U SensorMonitorLoopCount;
  422. // bool InitAgentRearm; // = FALSE;
  423. // INT16U ValidSensorCnt;
  424. // INT16U ValidSensorList[MAX_SENSOR_NUMBERS];
  425. // HealthState_T HealthState;
  426. // INT32U PowerOnTick;
  427. // INT32U SysResetTick;
  428. //
  429. //} SENSOR_T;
  430. //
  431. //typedef struct
  432. //{
  433. // volatile int cts;
  434. // int sol_fd ;
  435. // INT32U cur_tick ;
  436. // INT8U sol_retry ;
  437. // INT8U sol_ack_to_ticks;
  438. // INT8U send_char_threshold ;
  439. // INT8U send_char_timeout;
  440. // int SOLSessionActive;
  441. // int activate_sol;
  442. // int is_sending ;
  443. // INT8U send_seq_num ;
  444. // INT8U sent_char_count;
  445. // INT32U last_sent_tick;
  446. // INT32U first_byte_received_tick;
  447. // int retry ;
  448. // INT8U MSVTEsc; /* contains escape bytes */
  449. // INT8U recv_seq_num ;
  450. // INT8U recv_char_count ;
  451. // int last_packet_nack ;
  452. // int send_ack ;
  453. // INT8U ack_seq_num ;
  454. // INT8U SOLBuf [MAX_SOL_DATA_SIZE + 4 + sizeof (LANRMCPPkt_T) + sizeof (SessionHdr2_T) + 32 + 100];
  455. // int StopReadingSerialData;
  456. // RingBuf_T m_buf [2];
  457. //} SOL_T;
  458. //
  459. //typedef struct
  460. //{
  461. // INT8S ifname[MAX_IFC_NAME];
  462. // INT8U Chtype;
  463. // INT8U Enabled;
  464. // INT8U Chnum;
  465. // INT8U Ethindex;
  466. // INT8U Up_Status;
  467. //
  468. //}LANIFCConfig_T;
  469. //
  470. //
  471. //typedef struct
  472. //{
  473. // SOCKET UDPSocket[MAX_LAN_CHANNELS];
  474. // INT8U WaitCount;
  475. // INT8U UDPChannel[MAX_LAN_CHANNELS];
  476. // INT8U TCPChannel[MAX_LAN_CHANNELS];
  477. // INT8U VLANChannel[MAX_LAN_CHANNELS];
  478. // SOCKET VLANUDPSocket[MAX_LAN_CHANNELS];
  479. // SOCKET VLANTCPSocket[MAX_LAN_CHANNELS];
  480. // INT16U VLANID[MAX_LAN_CHANNELS];
  481. // int VLANIFcheckFlag[MAX_LAN_CHANNELS];
  482. // int LANIFcheckFlag[MAX_LAN_CHANNELS];
  483. // SOCKET TCPSocket[MAX_LAN_CHANNELS];
  484. // INT32U DeleteThisLANSessionID;
  485. // MsgPkt_T MsgReq;
  486. // MsgPkt_T MsgRes;
  487. // INT8U HmacInBuf [MAX_HMAC_BUF_SIZE];
  488. // INT8U SIK [SESSION_INTEGRITY_KEY_SIZE];
  489. // HQueue_T hVLANIfc_Info_Q;
  490. // HQueue_T hLANMon_Q;
  491. // INT8U g_ethindex; /*ethindex which is used in pend task.*/
  492. //}LAN_T;
  493. //
  494. //typedef struct
  495. //{
  496. // fd_set cfdread;
  497. // SOCKET UDSSocket;
  498. // HQueue_T UDSMon_Q;
  499. //}UDS_T;
  500. //
  501. //typedef struct
  502. //{
  503. // INT8U total_frus;
  504. // INT8U FRUInfo[MAX_PDK_FRU_SUPPORTED];
  505. // FRUInfo_T *m_FRUInfo[MAX_PDK_FRU_SUPPORTED];
  506. // pthread_mutex_t FRUMutex;
  507. //}FRU_T;
  508. //
  509. //typedef struct
  510. //{
  511. // INT32U CurTimerTick;
  512. // INT32U BootValidTimerTick;
  513. // INT32U MinutesTick;
  514. //}Timer_T;
  515. //
  516. //typedef struct
  517. //{
  518. // INT32U UserInfoAddr;
  519. // INT32U DcmicfgAddr;
  520. // INT32U WDTDATAddr;
  521. // INT32U PEFConfigAddr;
  522. // INT32U ChassisConfigAddr;
  523. // INT32U SMConfigAddr;
  524. // INT32U BridgeMgmtAddr;
  525. // INT32U SystemInfoConfigAddr;
  526. // INT32U LANCfsAddr;
  527. // INT32U RMCPPlusAddr;
  528. // INT32U SOLCfgAddr;
  529. // INT32U FFCmdConfigTblAddr;
  530. // INT32U OPMAConfigAddr;
  531. // INT32U SmtpConfigAddr;
  532. // INT32U GenConfigAddr;
  533. // INT32U ChConfigAddr;
  534. // INT32U TriggerEventAddr;
  535. // INT32U LoginAuditCfgAddr;
  536. // INT32U AMIConfigAddr;
  537. // INT32U IPMIConfLocAddr;
  538. // INT32U SSIConfigAddr;
  539. // INT32U VersionConfigAddr;
  540. // INT32U EncUserPasswdAddr;
  541. // INT32U LANIFCConfigAddr;
  542. // INT32U BONDConfigAddr;
  543. // INT32U PEFRecordDetailsConfigAddr;
  544. //}PACKED IPMICfgLoc_T;
  545. //
  546. //typedef int(*flushini)(int);
  547. //typedef int(*flushchini)(int,int);
  548. //
  549. //typedef struct
  550. //{
  551. //
  552. // INT8U *IniconfigAddr;
  553. //
  554. // flushini Flushini_Hndl;
  555. // flushchini Flushchini_Hndl;
  556. // INT8U Index;
  557. //}PACKED IPMIConfigMap_T;
  558. //
  559. ///* The CDF(Configuration Device File) related structures configured using MDS should be
  560. // maintained in top of BMCInfo_t structure. The IPMI configuration version is maintained in
  561. // IPMI_CONFIG_VERSION macro and the version number should be incremented in counts
  562. // of '1' whenever there are changes in CDF files used in MDS and in CDF related structures */
  563. ///*
  564. //typedef struct
  565. //{
  566. // VersionConfig_T VersionConfig; //CDF structure
  567. // ChassisConfig_T ChassisConfig; //CDF structure
  568. // BridgeMgmtSHM_T BridgeMgmt; //CDF structure
  569. // UserInfo_T UserInfo[MAX_USER_CFG_MDS]; //CDF structure
  570. // WDTConfig_T WDTConfig; //CDF structure
  571. // PEFConfig_T PEFConfig; //CDF structure
  572. // SMConfig_T SMConfig; //CDF structure
  573. // SystemInfoConfig_T SystemInfoConfig; //CDF structure
  574. // LANConfig_T LANCfs[MAX_LAN_CHANNELS]; //CDF structure
  575. // RMCPPlus_T RMCPPlus[MAX_LAN_CHANNELS]; //CDF structure
  576. // SOLConfig_T SOLCfg[MAX_LAN_CHANNELS]; //CDF structure
  577. // FFCmdConfigTbl_T FFCmdConfigTbl [MAX_FF_CMD_CFGS]; //CDF structure
  578. // OPMA_Config_T OPMAConfig; //CDF structure
  579. // Smtp_Config_T SmtpConfig[MAX_LAN_CHANNELS]; //CDF structure
  580. // GENConfig_T GenConfig; //CDF structure
  581. // ChcfgInfo_T ChConfig[MAX_NUM_CHANNELS]; //CDF structure
  582. // DCMICfg_T Dcmicfg; //CDF structure
  583. // LoginAuditConfig_T LoginAuditCfg; //CDF structure
  584. // TriggerEventCfg_T TriggerEvent; //CDF structure
  585. // AMIConfig_T AMIConfig; //CDF structure
  586. // LANIFCConfig_T LanIfcConfig[MAX_LAN_CHANNELS]; //CDF structure
  587. // BondIface BondConfig; //CDF structure
  588. // PEFRecordDetailsConfig_T PEFRecordDetailsConfig; //CDF structure
  589. // char EthIndex[64];
  590. // char EthIndexValues[64][64];
  591. // char par_path[64];
  592. // int LANIfccount;
  593. // INT8U *pStorageNVRAM;
  594. // INT8U *pNVRUsrConfig;
  595. // INT8U PrimaryIPMBCh;
  596. // INT8U RMCPLAN1Ch ;
  597. // INT8U RMCPLAN2Ch ;
  598. // INT8U RMCPLAN3Ch ;
  599. // INT8U RMCPLAN4Ch ;
  600. // INT8U SecondaryIPMBCh;
  601. // INT8U ICMBCh ;
  602. // INT8U SMBUSCh ;
  603. // INT8U SERIALch ;
  604. // INT8U SMMCh ;
  605. // INT8U SYSCh ;
  606. // IPMIConfig_T IpmiConfig;
  607. // INT8U *pNVRDCMICfg;
  608. // SessionTblInfo_T SessionTblInfo;
  609. // UDSSessionTblInfo_T UDSSessionTblInfo;
  610. // BMCSharedMem_T BMCSharedMem;
  611. // SensorSharedMem_T SensorSharedMem;
  612. // SocketTbl_T *pSocketTbl;
  613. // SocketTbl_T *pUDSocketTbl;
  614. // PEF_T PefConfig;
  615. // SEL_T SELConfig;
  616. // SDR_T SDRConfig;
  617. // IPMB_T IPMBConfig;
  618. // SOL_T SOLConfig;
  619. // LAN_T LANConfig;
  620. // MSGHNDLR_T Msghndlr;
  621. // SENSOR_T SenConfig;
  622. // HAL_T HALConfig;
  623. // FRU_T FRUConfig;
  624. // UDS_T UDSConfig;
  625. // SERIAL_T SerialConfig;
  626. // DCMI_T DCMIConfig;
  627. // NMInfo_T NMConfig;
  628. // WDT_T WDTCfg;
  629. // Timer_T TimerCfg;
  630. // pthread_mutex_t BMCSharedMemMutex;
  631. // pthread_mutex_t SensorSharedMemMutex;
  632. // pthread_mutex_t CachSenReadMutex;
  633. // pthread_mutex_t SessionTblMutex;
  634. // pthread_mutex_t CCSharedMemMutex;
  635. // pthread_mutex_t RestartcauseMutex;
  636. // pthread_mutex_t hCTSharedMemLEDTmr;
  637. // pthread_mutex_t hAPISharedMemMutex;
  638. // pthread_mutex_t ResetSharedMemMutex;
  639. // pthread_mutex_t m_hSMSharedMemMutex;
  640. // pthread_mutex_t hWDTSharedMemMutex;
  641. // pthread_mutex_t ThreadSyncMutex;
  642. // pthread_mutex_t SMmutex;
  643. // pthread_mutex_t CmdHndlrMutex;
  644. // pthread_mutex_t PendBridgeMutex;
  645. // pthread_mutex_t OBSMSharedMemMutex;
  646. // pthread_mutex_t UDSSessionTblMutex;
  647. // pthread_mutex_t UDSSocketTblMutex;
  648. // pthread_mutex_t ChassisMutex;
  649. // pthread_mutex_t EventMutex;
  650. // pthread_mutex_t BMCMsgMutex;
  651. // pthread_mutex_t ChUserMutex;
  652. // sem_t WDTSem;
  653. // int SetWDTUpdated;
  654. // int WDTPreTmtStat;
  655. // DynamicLoader_T g_DynamicInfoTable[MAX_DYNMC_TBL_COUNT];
  656. // INT32U g_DynamicInfoTableCount ;
  657. // //DynamicLoader_T DynamicInfoTable[100];
  658. // //INT32U DynamicInfoTableCount ;
  659. //
  660. // INT8U MsgHndlrTblSize;
  661. // INT8U GroupExtnMsgHndlrTblSize;
  662. // INT8U TimerTaskTblSize;
  663. //
  664. //
  665. // MsgHndlrTbl_T MsgHndlrTbl[15];
  666. // GroupExtnMsgHndlrTbl_T GroupExtnMsgHndlrTbl [10];
  667. // TimerTaskTbl_T TimerTaskTbl [20];
  668. //
  669. // INT32U CurTimerTick;
  670. // int kcsfd[3]; //Will be removed once fix is done in hal driver
  671. // ChcfgInfo_T NVRChcfgInfo[MAX_NUM_CHANNELS];
  672. // IPMICfgLoc_T IPMIConfLoc;
  673. // Mgmt_T MgmtTbl[MAX_MGMT_DEV_LOC_REC];
  674. // void * dlpar_handle;
  675. //
  676. // INT8U InternalSensorTblSize;
  677. // InternalSensorTbl_T InternalSensorTbl[INT_SENSOR_NUM];
  678. //
  679. // //INT8U g_sol_ack_to_ticks;
  680. // SSIConfig_T SSIConfig;
  681. // INT8U SlotID;
  682. // INT8U IPMBAddr;
  683. // INT8U HostOFFStopWDT; // This flag is set to TRUE, when Chassis is powered off
  684. // INT8U SendMsgSeqNum;
  685. // EncryptedUserInfo_T EncryptedUserInfo[MAX_USER_CFG_MDS];
  686. // pfunc g_PDKPARHandle[MAX_PDKPAR_HANDLE];
  687. // IPMIConfigMap_T Ipmiconfigmap [MAX_IPMI_CONFIG_MAPS];
  688. // SELReclaimRepository_T SELReclaimRepos;
  689. // INT8U BridgeMsgKCSIfc;
  690. //} BMCInfo_t;
  691. //
  692. //*/
  693. //// extern BMCInfo_t g_BMCInfo[MAX_NUM_BMC];
  694. //
  695. ///* MBMCInfo_t structure will hold the variables common for all the instances of BMC*/
  696. //typedef struct
  697. //{
  698. // INT8U PwdEncKey[MAX_SIZE_KEY];
  699. // int flashpipereq;
  700. // int sbmcinst;
  701. // INT8U SrcSessionHndl;
  702. // int FlashType;
  703. //}MBMCInfo_t;
  704. //
  705. //typedef struct
  706. //{
  707. // pthread_key_t CurSessionID;
  708. // pthread_key_t CurPrivLevel;
  709. // pthread_key_t CurChannel;
  710. // pthread_key_t CurKCSIfcNum;
  711. // pthread_key_t CurSessionType;
  712. // pthread_key_t OwnerLUN;
  713. //}TLS_T;
  714. //
  715. //typedef struct
  716. //{
  717. // INT8U Action;
  718. // INT8U Params;
  719. // INT8U BMCInstance;
  720. // INT8U Size;
  721. //}PACKED FlushToIni_T;
  722. //
  723. // typedef struct
  724. //{
  725. // INT8U chno; // channel no
  726. // int Privilege;
  727. //} ChannelPriv_t;
  728. //
  729. //typedef union{
  730. // INT8U blockData[66];
  731. // struct {
  732. // //header
  733. // INT8U logIndex;
  734. // INT8U Reserve1[15];
  735. // //log data
  736. // INT16U MarkAddr;
  737. // INT8U LRU_LRM; //0x00
  738. // INT8U Index;
  739. // char Log[32];
  740. // INT16U Year;
  741. // INT8U Month;
  742. // INT8U Day;
  743. // INT8U Hour;
  744. // INT8U Minute;
  745. // INT8U Second;
  746. // INT8U Reserve2;
  747. //
  748. // INT8U ChipNum;
  749. // INT8U ErrorLevel;
  750. // INT8U ErrorType;
  751. // INT8U SourceNum;
  752. // INT16U SourceLine;
  753. // } PACKED logStruct;
  754. //} PACKED RunLogBlock_T;
  755. //
  756. //extern ChannelPriv_t g_ChannelPrivtbl[MAX_NUM_CHANNELS];
  757. //extern char PlatformID [MAX_PLATFORMID_SIZE];
  758. //extern INT32U IPMITimeout;
  759. ////extern CoreFeatures_T g_corefeatures;
  760. ////extern CoreMacros_T g_coremacros;
  761. //extern char g_FlashingImage;
  762. ////extern MBMCInfo_t g_MBMCInfo;
  763. //extern TLS_T g_tls;
  764. //
  765. //extern int FlushWDT(int BMCInst);
  766. //extern int FlushPEF(int BMCInst);
  767. //extern int FlushPEFRecordDetails(int BMCInst);
  768. //extern int FlushChassis(int BMCInst);
  769. //extern int FlushSerial(int BMCInst);
  770. //extern int FlushBridge(int BMCInst);
  771. //extern int FlushSysInfo(int BMCInst);
  772. //extern int FlushLAN(int BMCInst,int ChIndex);
  773. //extern int FlushRMCP(int BMCInst,int ChIndex);
  774. //extern int FlushSOL(int BMCInst,int ChIndex);
  775. //extern int FlushFirewall(int BMCInst);
  776. //extern int FlushOPMA(int BMCInst);
  777. //extern int FlushSMTP(int BMCInst,int ChIndex);
  778. //extern int FlushGEN(int BMCInst);
  779. //extern int FlushCHANNEL(int ChNum,int BMCInst);
  780. //extern int FlushUSRCFG(int BMCInst);
  781. //extern int FlushDCMICFG(int BMCInst);
  782. //extern int FlushTRIGGEREVTCFG(int BMCInst);
  783. //extern int FlushLOGINAUDITCFG(int BMCInst);
  784. //extern int FlushAMIConfig(int BMCInst);
  785. //extern int FlushSSIConfig(int BMCInst);
  786. //extern int FlushVersionConfig(int BMCInst);
  787. //extern int FlushEncUsrPswdCfg(int BMCInst);
  788. //extern int FlushLANIfcConfig(int BMCInst);
  789. //extern int FlushBondCfg(int BMCInst);
  790. // /**
  791. // *@fn InitIPMIConfig
  792. // *@brief This function is invoked to get the IPMI Configurations
  793. // *@return Returns 0 on success
  794. // */
  795. // extern int InitIPMIConfig (int BMCInst);\
  796. // int InstallSignal(int SigNum,void (*sighandler)(int sig));
  797. // extern IPMIQueue_T g_IPMIIfcQueue[MAX_IPMI_IFCQ];
  798. //
  799. // void setRunlog(RunLogBlock_T* RunLogBlock, int BMCInst);
  800. // void getOldestLogBlockIndex(int mtdfd, INT32U startAddr, INT32U logBlockSize, INT8U* newLogIndex, INT8U* oldestBlockIndex);
  801. //
  802. // //unsigned long oem_crc32 (unsigned long, const unsigned char *, unsigned int);
  803. //
  804. // extern OEM_FLAGS_T oem_flags;
  805. ////extern RunLogBlock_T RunLogBlock;
  806. //
  807. //#endif //_IPMIConf_H
  808. //
  809. //
  810. //