/*M*
//*****************************************************************************
//*                   INTEL CORPORATION PROPRIETARY INFORMATION               *
//*     This software is supplied under the terms of a license agreement or   *
//*     nondisclosure agreement with Intel Corporation and may not be copied  *
//*     or disclosed except in accordance with the terms of that agreement.   *
//*           Copyright (c) 1995-2000 Intel Corporation.  All Rights Reserved.     *
//*****************************************************************************
//  PVCS:
//      $Workfile:   imb_log.h $
//      $Revision:     $
//      $Modtime:      $
//      $Author:       $
//
//  Purpose:    This is the main source file for the IMB IMB port driver..
//              
//  
//  Contents:
//             
//            
//  Notes:
*M*/

//
//  Status values are 32 bit values layed out as follows:
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//  +---+-+-------------------------+-------------------------------+
//  |Sev|C|       Facility          |               Code            |
//  +---+-+-------------------------+-------------------------------+
//
//  where
//
//      Sev - is the severity code
//
//          00 - Success
//          01 - Informational
//          10 - Warning
//          11 - Error
//
//      C - is the Customer code flag
//
//      Facility - is the facility code
//
//      Code - is the facility's status code
//

//
//  Values are 32 bit values layed out as follows:
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//  +---+-+-+-----------------------+-------------------------------+
//  |Sev|C|R|     Facility          |               Code            |
//  +---+-+-+-----------------------+-------------------------------+
//
//  where
//
//      Sev - is the severity code
//
//          00 - Success
//          01 - Informational
//          10 - Warning
//          11 - Error
//
//      C - is the Customer code flag
//
//      R - is a reserved bit
//
//      Facility - is the facility code
//
//      Code - is the facility's status code
//
//
// Define the facility codes
//
#define FACILITY_RPC_STUBS               0x3
#define FACILITY_RPC_RUNTIME             0x2
#define FACILITY_IO_ERROR_CODE           0x4
#define IMB_IO_ERROR_CODE                0x7


//
// Define the severity codes
//
#define STATUS_SEVERITY_WARNING          0x2
#define STATUS_SEVERITY_SUCCESS          0x0
#define STATUS_SEVERITY_INFORMATIONAL    0x1
#define STATUS_SEVERITY_ERROR            0x3


//
// MessageId: INSUFFICIENT_RESOURCES
//
// MessageText:
//
//  Not enough memory for internal storage  of device %1.
//
#define INSUFFICIENT_RESOURCES           ((NTSTATUS)0xE0070001L)

//
// MessageId: INVALID_INPUT_BUFFER
//
// MessageText:
//
//  Invalid Input Arguments passed to  IMB driver
//
#define INVALID_INPUT_BUFFER             ((NTSTATUS)0xE0070002L)

//
// MessageId: INVALID_OUTPUT_BUFFER
//
// MessageText:
//
//  Improper Buffer size for output values from IMB driver
//
#define INVALID_OUTPUT_BUFFER            ((NTSTATUS)0xE0070003L)

//
// MessageId: IMB_SEND_TIMEOUT
//
// MessageText:
//
//  Timeout during sending an IMB request
//
#define IMB_SEND_TIMEOUT                 ((NTSTATUS)0xE0070004L)

//
// MessageId: IMB_RECEIVE_TIMEOUT
//
// MessageText:
//
//  Timeout during receiving an IMBP response
//
#define IMB_RECEIVE_TIMEOUT              ((NTSTATUS)0xE0070005L)

//
// MessageId: IMB_IF_SEND_TIMEOUT
//
// MessageText:
//
//  Timeout during sending a BMC request
//
#define IMB_IF_SEND_TIMEOUT              ((NTSTATUS)0xE0070006L)

//
// MessageId: IMB_IF_RECEIVE_TIMEOUT
//
// MessageText:
//
//  Timeout during receiving a BMC response
//
#define IMB_IF_RECEIVE_TIMEOUT           ((NTSTATUS)0xE0040007L)

//
// MessageId: HARDWARE_FAILURE
//
// MessageText:
//
//  Imb hardware failed or it does not exsist
//
#define HARDWARE_FAILURE                 ((NTSTATUS)0xE0040008L)

//
// MessageId: DRIVER_FAILURE
//
// MessageText:
//
//  Imb driver does not respond or it is not loaded
//
#define DRIVER_FAILURE                   ((NTSTATUS)0xE0040009L)

//
// MessageId: IMB_INVALID_IF_RESPONSE
//
// MessageText:
//
//  Error during communication with BMC through SMS stream
//
#define IMB_INVALID_IF_RESPONSE          ((NTSTATUS)0xE004000AL)

//
// MessageId: IMB_INVALID_PACKET
//
// MessageText:
//
//  Received IMB packet had a bad format or checksum
//
#define IMB_INVALID_PACKET               ((NTSTATUS)0xE004000BL)

//
// MessageId: IMB_RESPONSE_DATA_OVERFLOW
//
// MessageText:
//
//  Response data size is more than application allocated buffer size
//
#define IMB_RESPONSE_DATA_OVERFLOW       ((NTSTATUS)0xE004000CL)

//
// MessageId: IMB_INVALID_REQUEST
//
// MessageText:
//
//  Invalid data found in IMB request frame
//
#define IMB_INVALID_REQUEST              ((NTSTATUS)0xE007000DL)

//
// MessageId: INVALID_DRIVER_IOCTL
//
// MessageText:
//
//  Request code not handled by the Imb driver
//
#define INVALID_DRIVER_IOCTL             ((NTSTATUS)0xE007000EL)

//
// MessageId: INVALID_DRIVER_REQUEST
//
// MessageText:
//
//  Invalid IOCTL passed to the Imb driver
//
#define INVALID_DRIVER_REQUEST           ((NTSTATUS)0xE007000FL)

//
// MessageId: IMB_CANT_GET_SMS_BUFFER
//
// MessageText:
//
//  Error while trying to read SMS buffer
//
#define IMB_CANT_GET_SMS_BUFFER          ((NTSTATUS)0xE0070010L)

//
// MessageId: INPUT_BUFFER_TOO_SMALL
//
// MessageText:
//
//  Input buffer is too small to hold the available data
//
#define INPUT_BUFFER_TOO_SMALL           ((NTSTATUS)0xE0070011L)

//
// MessageId: IMB_MSG_NOT_AVAILABLE
//
// MessageText:
//
//  No asynchronous messages available
//
#define IMB_MSG_NOT_AVAILABLE            ((NTSTATUS)0xE0070012L)

//
// MessageId: IMB_SEND_ERROR
//
// MessageText:
//
//  Error occured when sending request
//
#define IMB_SEND_ERROR                   ((NTSTATUS)0xE0070013L)

