/*****************************************************************
 *****************************************************************
 ***                                                            **
 ***    (C)Copyright 2005-2006, American Megatrends Inc.        **
 ***                                                            **
 ***            All Rights Reserved.                            **
 ***                                                            **
 ***        6145-F, Northbelt Parkway, Norcross,                **
 ***                                                            **
 ***        Georgia - 30071, USA. Phone-(770)-246-8600.         **
 ***                                                            **
 *****************************************************************
 *****************************************************************
 ******************************************************************
 *
 * ipmi_sdr.c
 * IPMI SDR Record
 *
 *  Author: Govind Kothandapani <govindk@ami.com>
 *
 ******************************************************************/
#ifndef IPMI_SDR_H
#define IPMI_SDR_H

//#include "main.h"


/*** External Definitions ***/
#define INVALID_RECORD_ID                   0x00
#define OVERFLOW_FLAG                       0x80

#pragma pack( 1 )







/* ReserveSDRRepositoryRes_T */
typedef struct
{
    uint8_t   CompletionCode;
    uint16_t  ReservationID;

}   ReserveSDRRepositoryRes_T;


/* GetSDRReq_T */
typedef struct
{
    uint16_t  ReservationID;
    uint16_t  RecID;
    uint8_t   Offset;
    uint8_t   Size;

}   GetSDRReq_T;


/* GetSDRRes_T */
typedef struct
{
    uint8_t   CompletionCode;
    uint16_t  NextRecID;

}   GetSDRRes_T;


/* AddSDRRes_T */
typedef struct
{
    uint8_t   CompletionCode;
    uint16_t  RecID;

}   AddSDRRes_T;


/* PartialAddSDRReq_T */
typedef struct
{
    uint16_t  ReservationID;
    uint16_t  RecID;
    uint8_t   Offset;
    uint8_t   Progress;

}   PartialAddSDRReq_T;

/* PartialAddSDRRes_T */
typedef struct
{
    uint8_t   CompletionCode;
    uint16_t  RecID;

}   PartialAddSDRRes_T;

/* DeleteSDRReq_T */
typedef struct 
{
    uint16_t  ReservationID;
    uint16_t  RecID;
    
}   DeleteSDRReq_T;


/* DeleteSDRRes_T */
typedef struct 
{
    uint8_t   CompletionCode;
    uint16_t  RecID;
    
}   DeleteSDRRes_T;


/* ClearSDRReq_T */
typedef struct
{
    uint16_t  ReservationID;
    uint8_t   CLR [3];
    uint8_t   InitOrStatus;

}   ClearSDRReq_T;


/* ClearSDRRes_T */
typedef struct
{
    uint8_t   CompletionCode;
    uint8_t   EraseProgress;

}   ClearSDRRes_T;


/* GetSDRRepositoryTimeRes_T  */
typedef struct
{
    uint8_t   CompletionCode;
    uint32_t  Time;

}   GetSDRRepositoryTimeRes_T;


/* SetSDRRepositoryTimeReq_T */
typedef struct
{
    uint32_t  Time;

}   SetSDRRepositoryTimeReq_T;


/* EnterSDRUpdateModeRes_T */
typedef struct
{
    uint8_t   CompletionCode;

}   EnterSDRUpdateModeRes_T;


/* ExitSDRUpdateModeRes_T */
typedef struct
{
    uint8_t   CompletionCode;

}   ExitSDRUpdateModeRes_T;


/* RunInitAgentReq_T */
typedef struct
{
    uint8_t   RunStatus;

}   RunInitAgentReq_T;


/* RunInitAgentRes_T  */
typedef struct
{
    uint8_t   CompletionCode;
    uint8_t   Status;

}   RunInitAgentRes_T;

#pragma pack()
#endif  /* IPMI_SDR_H */
