|
Packit |
d14fb6 |
/*M*
|
|
Packit |
d14fb6 |
// PVCS:
|
|
Packit |
d14fb6 |
// $Workfile: imb_api.h $
|
|
Packit |
d14fb6 |
// $Revision: 1.2 $
|
|
Packit |
d14fb6 |
// $Modtime: Jul 22 2002 16:40:32 $
|
|
Packit |
d14fb6 |
// $Author: iceblink $
|
|
Packit |
d14fb6 |
//
|
|
Packit |
d14fb6 |
// Combined include files needed for imbapi.c
|
|
Packit |
d14fb6 |
//
|
|
Packit |
d14fb6 |
*M*/
|
|
Packit |
d14fb6 |
/*----------------------------------------------------------------------*
|
|
Packit |
d14fb6 |
The BSD License
|
|
Packit |
d14fb6 |
Copyright (c) 2002, Intel Corporation
|
|
Packit |
d14fb6 |
All rights reserved.
|
|
Packit |
d14fb6 |
Redistribution and use in source and binary forms, with or without
|
|
Packit |
d14fb6 |
modification, are permitted provided that the following conditions are met:
|
|
Packit |
d14fb6 |
a.. Redistributions of source code must retain the above copyright notice,
|
|
Packit |
d14fb6 |
this list of conditions and the following disclaimer.
|
|
Packit |
d14fb6 |
b.. Redistributions in binary form must reproduce the above copyright notice,
|
|
Packit |
d14fb6 |
this list of conditions and the following disclaimer in the documentation
|
|
Packit |
d14fb6 |
and/or other materials provided with the distribution.
|
|
Packit |
d14fb6 |
c.. Neither the name of Intel Corporation nor the names of its contributors
|
|
Packit |
d14fb6 |
may be used to endorse or promote products derived from this software
|
|
Packit |
d14fb6 |
without specific prior written permission.
|
|
Packit |
d14fb6 |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
Packit |
d14fb6 |
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
Packit |
d14fb6 |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
Packit |
d14fb6 |
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
Packit |
d14fb6 |
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
Packit |
d14fb6 |
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
Packit |
d14fb6 |
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
Packit |
d14fb6 |
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
Packit |
d14fb6 |
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
Packit |
d14fb6 |
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
Packit |
d14fb6 |
*----------------------------------------------------------------------*/
|
|
Packit |
d14fb6 |
#ifndef _WINDEFS_H
|
|
Packit |
d14fb6 |
#define _WINDEFS_H
|
|
Packit |
d14fb6 |
#ifndef FALSE
|
|
Packit |
d14fb6 |
#define FALSE 0
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
#ifndef TRUE
|
|
Packit |
d14fb6 |
#define TRUE 1
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
#ifndef NULL
|
|
Packit |
d14fb6 |
#define NULL 0
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
#ifndef WIN32
|
|
Packit |
d14fb6 |
/* WIN32 defines this in stdio.h */
|
|
Packit |
d14fb6 |
#include <wchar.h>
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
#define far
|
|
Packit |
d14fb6 |
#define near
|
|
Packit |
d14fb6 |
#define FAR far
|
|
Packit |
d14fb6 |
#define NEAR near
|
|
Packit |
d14fb6 |
#ifndef CONST
|
|
Packit |
d14fb6 |
#define CONST const
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
typedef unsigned long DWORD;
|
|
Packit |
d14fb6 |
typedef int BOOL;
|
|
Packit |
d14fb6 |
typedef unsigned char BYTE;
|
|
Packit |
d14fb6 |
typedef unsigned short WORD;
|
|
Packit |
d14fb6 |
typedef float FLOAT;
|
|
Packit |
d14fb6 |
typedef FLOAT *PFLOAT;
|
|
Packit |
d14fb6 |
typedef BOOL near *PBOOL;
|
|
Packit |
d14fb6 |
typedef BOOL far *LPBOOL;
|
|
Packit |
d14fb6 |
typedef BYTE near *PBYTE;
|
|
Packit |
d14fb6 |
typedef BYTE far *LPBYTE;
|
|
Packit |
d14fb6 |
typedef int near *PINT;
|
|
Packit |
d14fb6 |
typedef int far *LPINT;
|
|
Packit |
d14fb6 |
typedef WORD near *PWORD;
|
|
Packit |
d14fb6 |
typedef WORD far *LPWORD;
|
|
Packit |
d14fb6 |
typedef long far *LPLONG;
|
|
Packit |
d14fb6 |
typedef DWORD near *PDWORD;
|
|
Packit |
d14fb6 |
typedef DWORD far *LPDWORD;
|
|
Packit |
d14fb6 |
typedef void far *LPVOID;
|
|
Packit |
d14fb6 |
typedef CONST void far *LPCVOID;
|
|
Packit |
d14fb6 |
typedef int INT;
|
|
Packit |
d14fb6 |
typedef unsigned int UINT;
|
|
Packit |
d14fb6 |
typedef unsigned int *PUINT;
|
|
Packit |
d14fb6 |
typedef DWORD NTSTATUS;
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
File structures
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#ifndef WIN32
|
|
Packit |
d14fb6 |
typedef struct _OVERLAPPED {
|
|
Packit |
d14fb6 |
DWORD Internal;
|
|
Packit |
d14fb6 |
DWORD InternalHigh;
|
|
Packit |
d14fb6 |
DWORD Offset;
|
|
Packit |
d14fb6 |
DWORD OffsetHigh;
|
|
Packit |
d14fb6 |
/* HANDLE hEvent; */
|
|
Packit |
d14fb6 |
} OVERLAPPED, *LPOVERLAPPED;
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* Data structure redefines
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef char CHAR;
|
|
Packit |
d14fb6 |
typedef short SHORT;
|
|
Packit |
d14fb6 |
typedef long LONG;
|
|
Packit |
d14fb6 |
typedef char * PCHAR;
|
|
Packit |
d14fb6 |
typedef short * PSHORT;
|
|
Packit |
d14fb6 |
typedef long * PLONG;
|
|
Packit |
d14fb6 |
typedef unsigned char UCHAR;
|
|
Packit |
d14fb6 |
typedef unsigned short USHORT;
|
|
Packit |
d14fb6 |
typedef unsigned long ULONG;
|
|
Packit |
d14fb6 |
typedef unsigned char * PUCHAR;
|
|
Packit |
d14fb6 |
typedef unsigned short * PUSHORT;
|
|
Packit |
d14fb6 |
typedef unsigned long * PULONG;
|
|
Packit |
d14fb6 |
typedef char CCHAR;
|
|
Packit |
d14fb6 |
typedef short CSHORT;
|
|
Packit |
d14fb6 |
typedef ULONG CLONG;
|
|
Packit |
d14fb6 |
typedef CCHAR * PCCHAR;
|
|
Packit |
d14fb6 |
typedef CSHORT * PCSHORT;
|
|
Packit |
d14fb6 |
typedef CLONG * PCLONG;
|
|
Packit |
d14fb6 |
typedef void * PVOID;
|
|
Packit |
d14fb6 |
#ifndef WIN32
|
|
Packit |
d14fb6 |
typedef void VOID;
|
|
Packit |
d14fb6 |
typedef struct _LARGE_INTEGER {
|
|
Packit |
d14fb6 |
ULONG LowPart;
|
|
Packit |
d14fb6 |
LONG HighPart;
|
|
Packit |
d14fb6 |
} LARGE_INTEGER;
|
|
Packit |
d14fb6 |
typedef struct _ULARGE_INTEGER {
|
|
Packit |
d14fb6 |
ULONG LowPart;
|
|
Packit |
d14fb6 |
ULONG HighPart;
|
|
Packit |
d14fb6 |
} ULARGE_INTEGER;
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
typedef LARGE_INTEGER * PLARGE_INTEGER;
|
|
Packit |
d14fb6 |
typedef LARGE_INTEGER PHYSICAL_ADDRESS;
|
|
Packit |
d14fb6 |
typedef LARGE_INTEGER * PPHYSICAL_ADDRESS;
|
|
Packit |
d14fb6 |
typedef ULARGE_INTEGER * PULARGE_INTEGER;
|
|
Packit |
d14fb6 |
typedef UCHAR BOOLEAN;
|
|
Packit |
d14fb6 |
typedef BOOLEAN *PBOOLEAN;
|
|
Packit |
d14fb6 |
typedef wchar_t WCHAR;
|
|
Packit |
d14fb6 |
typedef WCHAR *PWCHAR, *PWSTR;
|
|
Packit |
d14fb6 |
typedef CONST WCHAR *LPCWSTR, *PCWSTR;
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#ifndef _SYS_TYPES_H
|
|
Packit |
d14fb6 |
#ifndef _CADDR_T
|
|
Packit |
d14fb6 |
#define _CADDR_T
|
|
Packit |
d14fb6 |
typedef char * caddr_t;
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
Unicode strings are counted 16-bit character strings. If they are
|
|
Packit |
d14fb6 |
NULL terminated, Length does not include trailing NULL.
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef struct _UNICODE_STRING {
|
|
Packit |
d14fb6 |
USHORT Length;
|
|
Packit |
d14fb6 |
USHORT MaximumLength;
|
|
Packit |
d14fb6 |
PWSTR Buffer;
|
|
Packit |
d14fb6 |
} UNICODE_STRING;
|
|
Packit |
d14fb6 |
typedef UNICODE_STRING *PUNICODE_STRING;
|
|
Packit |
d14fb6 |
#define UNICODE_NULL ((WCHAR)0) /* winnt*/
|
|
Packit |
d14fb6 |
#define IN /* */
|
|
Packit |
d14fb6 |
#define OUT /* */
|
|
Packit |
d14fb6 |
#define OPTIONAL /* */
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#ifndef WIN32
|
|
Packit |
d14fb6 |
#define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field))
|
|
Packit |
d14fb6 |
#define UNREFERENCED_PARAMETER(x)
|
|
Packit |
d14fb6 |
typedef int HANDLE;
|
|
Packit |
d14fb6 |
#define INVALID_HANDLE_VALUE ((HANDLE)-1)
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
typedef HANDLE *PHANDLE;
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
Define the method codes for how buffers are passed for I/O and FS controls
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#define METHOD_BUFFERED 0
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
Define the access check value for any access
|
|
Packit |
d14fb6 |
The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in
|
|
Packit |
d14fb6 |
ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these
|
|
Packit |
d14fb6 |
constants *MUST* always be in sync.
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#define FILE_ANY_ACCESS 0
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
These are the generic rights.
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#define MAX_PATH 260
|
|
Packit |
d14fb6 |
#define GetLastError() (NTstatus.Status)
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
Macro definition for defining IOCTL and FSCTL function control codes. Note
|
|
Packit |
d14fb6 |
that function codes 0-2047 are reserved for Microsoft Corporation, and
|
|
Packit |
d14fb6 |
2048-4095 are reserved for customers.
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* Linux drivers expect ioctls defined using macros defined in ioctl.h.
|
|
Packit |
d14fb6 |
* So, instead of using the CTL_CODE defined for NT and UW, I define CTL_CODE
|
|
Packit |
d14fb6 |
* using these macros. That way imb_if.h, where the ioctls are defined get
|
|
Packit |
d14fb6 |
* to use the correct ioctl command we expect.
|
|
Packit |
d14fb6 |
* Notes: I am using the generic _IO macro instead of the more specific
|
|
Packit |
d14fb6 |
* ones. The macros expect 8bit entities, so I am cleaning what is sent to
|
|
Packit |
d14fb6 |
* us from imb_if.h - Mahendra
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#ifndef WIN32
|
|
Packit |
d14fb6 |
#define CTL_CODE(DeviceType, Function, Method, Access)\
|
|
Packit |
d14fb6 |
_IO(DeviceType & 0x00FF, Function & 0x00FF)
|
|
Packit |
d14fb6 |
#else
|
|
Packit |
d14fb6 |
#define CTL_CODE( DeviceType, Function, Method, Access ) ((ULONG)( \
|
|
Packit |
d14fb6 |
((ULONG)(DeviceType) << 16) | ((ULONG)(Access) << 14) | ((ULONG)(Function) << 2) | ((ULONG)Method) \
|
|
Packit |
d14fb6 |
))
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
#endif /*_WINDEFS_H */
|
|
Packit |
d14fb6 |
/*----------------------------------------------------------------------*/
|
|
Packit |
d14fb6 |
#ifndef _SMI_H
|
|
Packit |
d14fb6 |
#define _SMI_H
|
|
Packit |
d14fb6 |
#define SMI_Version1_00 0x00001000
|
|
Packit |
d14fb6 |
struct smi {
|
|
Packit |
d14fb6 |
DWORD smi_VersionNo;
|
|
Packit |
d14fb6 |
DWORD smi_Reserved1;
|
|
Packit |
d14fb6 |
DWORD smi_Reserved2;
|
|
Packit |
d14fb6 |
LPVOID ntstatus; /* address of NT status block*/
|
|
Packit |
d14fb6 |
LPVOID lpvInBuffer; /* address of buffer for input data*/
|
|
Packit |
d14fb6 |
DWORD cbInBuffer; /* size of input buffer*/
|
|
Packit |
d14fb6 |
LPVOID lpvOutBuffer; /* address of output buffer*/
|
|
Packit |
d14fb6 |
DWORD cbOutBuffer; /* size of output buffer*/
|
|
Packit |
d14fb6 |
LPDWORD lpcbBytesReturned; /* address of actual bytes of output*/
|
|
Packit |
d14fb6 |
LPOVERLAPPED lpoOverlapped; /* address of overlapped structure*/
|
|
Packit |
d14fb6 |
};
|
|
Packit |
d14fb6 |
#ifndef STATUS_SUCCESS
|
|
Packit |
d14fb6 |
typedef struct _IO_STATUS_BLOCK {
|
|
Packit |
d14fb6 |
ULONG Status;
|
|
Packit |
d14fb6 |
ULONG Information;
|
|
Packit |
d14fb6 |
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* I2C ioctl's return NTStatus codes
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#define STATUS_SUCCESS (0x00000000U)
|
|
Packit |
d14fb6 |
#define STATUS_UNSUCCESSFUL (0xC0000001U)
|
|
Packit |
d14fb6 |
#define STATUS_DEVICE_BUSY (0x80000011U)
|
|
Packit |
d14fb6 |
#ifndef WIN32
|
|
Packit |
d14fb6 |
#define STATUS_PENDING (0x00000103U)
|
|
Packit |
d14fb6 |
// see <win2000ddk>\inc\winnt.h(1171)
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
#define STATUS_INVALID_PARAMETER (0xC000000DU)
|
|
Packit |
d14fb6 |
#define STATUS_INVALID_DEVICE_REQUEST (0xC0000010U)
|
|
Packit |
d14fb6 |
#define STATUS_BUFFER_TOO_SMALL (0xC0000023U)
|
|
Packit |
d14fb6 |
#define STATUS_FILE_CLOSED (0xC0000128U)
|
|
Packit |
d14fb6 |
#define STATUS_INSUFFICIENT_RESOURCES (0xC000009AU)
|
|
Packit |
d14fb6 |
#define STATUS_NO_DATA_DETECTED (0x80000022U)
|
|
Packit |
d14fb6 |
#define STATUS_NO_SUCH_DEVICE (0xC000000EU)
|
|
Packit |
d14fb6 |
#define STATUS_ALLOTTED_EXCEEDED (0xC000000FU)
|
|
Packit |
d14fb6 |
#define STATUS_IO_DEVICE_ERROR (0xC0000185U)
|
|
Packit |
d14fb6 |
#define STATUS_TOO_MANY_OPEN_FILES (0xC000011FU)
|
|
Packit |
d14fb6 |
#define STATUS_ACCESS_DENIED (0xC0000022U)
|
|
Packit |
d14fb6 |
#define STATUS_BUFFER_OVERFLOW (0x80000005U)
|
|
Packit |
d14fb6 |
#define STATUS_CANCELLED (0xC0000120U)
|
|
Packit |
d14fb6 |
#endif /* STATUS_SUCCESS*/
|
|
Packit |
d14fb6 |
#endif /* _SMI_H*/
|
|
Packit |
d14fb6 |
/*----------------------------------------------------------------------*/
|
|
Packit |
d14fb6 |
#ifndef IMB_IF__
|
|
Packit |
d14fb6 |
#define IMB_IF__
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* This is the structure passed in to the IOCTL_IMB_SHUTDOWN_CODE request
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
int code;
|
|
Packit |
d14fb6 |
int delayTime;
|
|
Packit |
d14fb6 |
} ShutdownCmdBuffer;
|
|
Packit |
d14fb6 |
#define SD_NO_ACTION 0
|
|
Packit |
d14fb6 |
#define SD_RESET 1
|
|
Packit |
d14fb6 |
#define SD_POWER_OFF 2
|
|
Packit |
d14fb6 |
#pragma pack(1)
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* This is the generic IMB packet format, the final checksum cant be
|
|
Packit |
d14fb6 |
* represented in this structure and will show up as the last data byte
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
BYTE rsSa;
|
|
Packit |
d14fb6 |
BYTE nfLn;
|
|
Packit |
d14fb6 |
BYTE cSum1;
|
|
Packit |
d14fb6 |
BYTE rqSa;
|
|
Packit |
d14fb6 |
BYTE seqLn;
|
|
Packit |
d14fb6 |
BYTE cmd;
|
|
Packit |
d14fb6 |
BYTE data[1];
|
|
Packit |
d14fb6 |
} ImbPacket;
|
|
Packit |
d14fb6 |
#define MIN_IMB_PACKET_SIZE 7
|
|
Packit |
d14fb6 |
#define MAX_IMB_PACKET_SIZE 33
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* This is the standard IMB response format where the first byte of
|
|
Packit |
d14fb6 |
* IMB packet data is interpreted as a command completion code.
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
BYTE rsSa;
|
|
Packit |
d14fb6 |
BYTE nfLn;
|
|
Packit |
d14fb6 |
BYTE cSum1;
|
|
Packit |
d14fb6 |
BYTE rqSa;
|
|
Packit |
d14fb6 |
BYTE seqLn;
|
|
Packit |
d14fb6 |
BYTE cmd;
|
|
Packit |
d14fb6 |
BYTE cCode;
|
|
Packit |
d14fb6 |
BYTE data[1];
|
|
Packit |
d14fb6 |
} ImbRespPacket;
|
|
Packit |
d14fb6 |
#define MIN_IMB_RESPONSE_SIZE 7 /* min packet + completion code */
|
|
Packit |
d14fb6 |
#define MAX_IMB_RESPONSE_SIZE MAX_IMB_PACKET_SIZE
|
|
Packit |
d14fb6 |
/************************
|
|
Packit |
d14fb6 |
* ImbRequestBuffer
|
|
Packit |
d14fb6 |
************************/
|
|
Packit |
d14fb6 |
/*D*
|
|
Packit |
d14fb6 |
// Name: ImbRequestBuffer
|
|
Packit |
d14fb6 |
// Purpose: Structure definition for holding IMB message data
|
|
Packit |
d14fb6 |
// Context: Used by SendTimedImbpMessage and SendTimedI2cMessge
|
|
Packit |
d14fb6 |
// functions in the library interface. In use, it is overlayed on a
|
|
Packit |
d14fb6 |
// char buffer of size MIN_IMB_REQ_BUF_SIZE +
|
|
Packit |
d14fb6 |
// Fields:
|
|
Packit |
d14fb6 |
// respBufSize size of the response buffer
|
|
Packit |
d14fb6 |
//
|
|
Packit |
d14fb6 |
// timeout timeout value in milli seconds
|
|
Packit |
d14fb6 |
//
|
|
Packit |
d14fb6 |
// req body of request to send
|
|
Packit |
d14fb6 |
//
|
|
Packit |
d14fb6 |
*D*/
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
BYTE rsSa;
|
|
Packit |
d14fb6 |
BYTE cmd;
|
|
Packit |
d14fb6 |
BYTE netFn;
|
|
Packit |
d14fb6 |
BYTE rsLun;
|
|
Packit |
d14fb6 |
BYTE dataLength;
|
|
Packit |
d14fb6 |
BYTE data[1];
|
|
Packit |
d14fb6 |
} ImbRequest;
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
DWORD flags; /* request flags*/
|
|
Packit |
d14fb6 |
#define NO_RESPONSE_EXPECTED 0x01 /*dont wait around for an IMB response*/
|
|
Packit |
d14fb6 |
DWORD timeOut; /* in uSec units*/
|
|
Packit |
d14fb6 |
ImbRequest req; /* message buffer*/
|
|
Packit |
d14fb6 |
} ImbRequestBuffer;
|
|
Packit |
d14fb6 |
#define MIN_IMB_REQ_BUF_SIZE 13 /* a buffer without any request data*/
|
|
Packit |
d14fb6 |
/************************
|
|
Packit |
d14fb6 |
* ImbResponseBuffer
|
|
Packit |
d14fb6 |
************************/
|
|
Packit |
d14fb6 |
/*D*
|
|
Packit |
d14fb6 |
// Name: ImbResponseBuffer
|
|
Packit |
d14fb6 |
// Purpose: Structure definition for response of a previous send
|
|
Packit |
d14fb6 |
// Context: Used by DeviceIoControl to pass the message to be sent to
|
|
Packit |
d14fb6 |
// MISSMIC port
|
|
Packit |
d14fb6 |
// Fields:
|
|
Packit |
d14fb6 |
// cCode completion code returned by firmware
|
|
Packit |
d14fb6 |
// data buffer for response data from firmware
|
|
Packit |
d14fb6 |
*D*/
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
BYTE cCode;
|
|
Packit |
d14fb6 |
BYTE data[1];
|
|
Packit |
d14fb6 |
} ImbResponseBuffer;
|
|
Packit |
d14fb6 |
#define MIN_IMB_RESP_BUF_SIZE 1
|
|
Packit |
d14fb6 |
#define MAX_IMB_RESP_SIZE (MIN_IMB_RESP_BUF_SIZE + MAX_IMB_RESPONSE_SIZE)
|
|
Packit |
d14fb6 |
#pragma pack()
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* Async message access structures and types
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef DWORD ImbAsyncSeq;
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* This is the structure passed in to IOCTL_IMB_GET_ASYNC_MSG
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
DWORD timeOut;
|
|
Packit |
d14fb6 |
ImbAsyncSeq lastSeq;
|
|
Packit |
d14fb6 |
} ImbAsyncRequest;
|
|
Packit |
d14fb6 |
#define ASYNC_SEQ_START 0
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
ImbAsyncSeq thisSeq;
|
|
Packit |
d14fb6 |
BYTE data[1];
|
|
Packit |
d14fb6 |
} ImbAsyncResponse;
|
|
Packit |
d14fb6 |
#define MIN_ASYNC_RESP_SIZE sizeof( ImbAsyncSeq )
|
|
Packit |
d14fb6 |
#define MAX_ASYNC_RESP_SIZE (MIN_ASYNC_RESP_SIZE + MAX_IMB_PACKET_SIZE)
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
** Driver Ioctls
|
|
Packit |
d14fb6 |
** In Linux, these calculate to:
|
|
Packit |
d14fb6 |
** IOCTL_IMB_SEND_MESSAGE =1082
|
|
Packit |
d14fb6 |
** IOCTL_IMB_GET_ASYNC_MSG =1088
|
|
Packit |
d14fb6 |
** IOCTL_IMB_MAP_MEMORY =108e
|
|
Packit |
d14fb6 |
** IOCTL_IMB_UNMAP_MEMORY =1090
|
|
Packit |
d14fb6 |
** IOCTL_IMB_SHUTDOWN_CODE =1092
|
|
Packit |
d14fb6 |
** IOCTL_IMB_REGISTER_ASYNC_OBJ =1098
|
|
Packit |
d14fb6 |
** IOCTL_IMB_DEREGISTER_ASYNC_OBJ=109a
|
|
Packit |
d14fb6 |
** IOCTL_IMB_CHECK_EVENT =109c
|
|
Packit |
d14fb6 |
** IOCTL_IMB_POLL_ASYNC =1094
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#define FILE_DEVICE_IMB 0x00008010
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_BASE 0x00000880
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_SEND_MESSAGE CTL_CODE(FILE_DEVICE_IMB, (IOCTL_IMB_BASE + 2), METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_GET_ASYNC_MSG CTL_CODE(FILE_DEVICE_IMB, (IOCTL_IMB_BASE + 8), METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_MAP_MEMORY CTL_CODE(FILE_DEVICE_IMB, (IOCTL_IMB_BASE + 14), METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_UNMAP_MEMORY CTL_CODE(FILE_DEVICE_IMB, (IOCTL_IMB_BASE + 16), METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_SHUTDOWN_CODE CTL_CODE(FILE_DEVICE_IMB, (IOCTL_IMB_BASE + 18), METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_REGISTER_ASYNC_OBJ CTL_CODE(FILE_DEVICE_IMB, (IOCTL_IMB_BASE + 24), METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_DEREGISTER_ASYNC_OBJ CTL_CODE(FILE_DEVICE_IMB, (IOCTL_IMB_BASE + 26), METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_CHECK_EVENT CTL_CODE(FILE_DEVICE_IMB, (IOCTL_IMB_BASE + 28), METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
Packit |
d14fb6 |
#define IOCTL_IMB_POLL_ASYNC CTL_CODE(FILE_DEVICE_IMB, (IOCTL_IMB_BASE + 20), METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
Packit |
d14fb6 |
#endif /* IMB_IF__ */
|
|
Packit |
d14fb6 |
/*----------------------------------------------------------------------*/
|
|
Packit |
d14fb6 |
/* No asynchronous messages available */
|
|
Packit |
d14fb6 |
#define IMB_MSG_NOT_AVAILABLE ((NTSTATUS)0xE0070012L)
|
|
Packit |
d14fb6 |
#ifdef IMBLOG_H__
|
|
Packit |
d14fb6 |
/* Define the facility codes */
|
|
Packit |
d14fb6 |
#define FACILITY_RPC_STUBS 0x3
|
|
Packit |
d14fb6 |
#define FACILITY_RPC_RUNTIME 0x2
|
|
Packit |
d14fb6 |
#define FACILITY_IO_ERROR_CODE 0x4
|
|
Packit |
d14fb6 |
#define IMB_IO_ERROR_CODE 0x7
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define STATUS_SEVERITY_WARNING 0x2
|
|
Packit |
d14fb6 |
#define STATUS_SEVERITY_SUCCESS 0x0
|
|
Packit |
d14fb6 |
#define STATUS_SEVERITY_INFORMATIONAL 0x1
|
|
Packit |
d14fb6 |
#define STATUS_SEVERITY_ERROR 0x3
|
|
Packit |
d14fb6 |
/* Not enough memory for internal storage of device %1. */
|
|
Packit |
d14fb6 |
#define INSUFFICIENT_RESOURCES ((NTSTATUS)0xE0070001L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define INVALID_INPUT_BUFFER ((NTSTATUS)0xE0070002L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define INVALID_OUTPUT_BUFFER ((NTSTATUS)0xE0070003L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_SEND_TIMEOUT ((NTSTATUS)0xE0070004L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_RECEIVE_TIMEOUT ((NTSTATUS)0xE0070005L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_IF_SEND_TIMEOUT ((NTSTATUS)0xE0070006L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_IF_RECEIVE_TIMEOUT ((NTSTATUS)0xE0040007L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define HARDWARE_FAILURE ((NTSTATUS)0xE0040008L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define DRIVER_FAILURE ((NTSTATUS)0xE0040009L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_INVALID_IF_RESPONSE ((NTSTATUS)0xE004000AL)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_INVALID_PACKET ((NTSTATUS)0xE004000BL)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_RESPONSE_DATA_OVERFLOW ((NTSTATUS)0xE004000CL)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_INVALID_REQUEST ((NTSTATUS)0xE007000DL)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define INVALID_DRIVER_IOCTL ((NTSTATUS)0xE007000EL)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define INVALID_DRIVER_REQUEST ((NTSTATUS)0xE007000FL)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_CANT_GET_SMS_BUFFER ((NTSTATUS)0xE0070010L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define INPUT_BUFFER_TOO_SMALL ((NTSTATUS)0xE0070011L)
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IMB_SEND_ERROR ((NTSTATUS)0xE0070013L)
|
|
Packit |
d14fb6 |
#endif /* IMBLOG_H__ */
|
|
Packit |
d14fb6 |
/*----------------------------------------------------------------------*/
|
|
Packit |
d14fb6 |
#ifndef IMBAPI_H__
|
|
Packit |
d14fb6 |
#define IMBAPI_H__
|
|
Packit |
d14fb6 |
#include <sys/types.h>
|
|
Packit |
d14fb6 |
#define WRITE_READ_I2C 0x52
|
|
Packit |
d14fb6 |
#define WRITE_EMP_BUFFER 0x7a
|
|
Packit |
d14fb6 |
#define GET_DEVICE_ID 0x1
|
|
Packit |
d14fb6 |
#define SEND_MESSAGE 0x34
|
|
Packit |
d14fb6 |
#define BMC_SA 0x20
|
|
Packit |
d14fb6 |
#define BMC_LUN 0
|
|
Packit |
d14fb6 |
#define APP_NETFN 0x06
|
|
Packit |
d14fb6 |
#define IPMI_09_VERSION 0x90
|
|
Packit |
d14fb6 |
#define IPMI_10_VERSION 0x01
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IPMI_15_VERSION 0x51
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#ifndef IPMI10_GET_DEVICE_ID_RESP_LENGTH
|
|
Packit |
d14fb6 |
#define IPMI10_GET_DEVICE_ID_RESP_LENGTH 12
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define IPMB_CHANNEL 0x0
|
|
Packit |
d14fb6 |
#define EMP_CHANNEL 0x1
|
|
Packit |
d14fb6 |
#define LAN_CHANNEL 0x2
|
|
Packit |
d14fb6 |
#define RESERVED_LUN 0x3
|
|
Packit |
d14fb6 |
#define IPMB_LUN 0x2
|
|
Packit |
d14fb6 |
#define EMP_LUN 0x0
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define PUBLIC_BUS 0
|
|
Packit |
d14fb6 |
|
|
Packit |
d14fb6 |
#define BMC_CONTROLLER 0x20
|
|
Packit |
d14fb6 |
#define FPC_CONTROLLER 0x22
|
|
Packit |
d14fb6 |
typedef enum {
|
|
Packit |
d14fb6 |
ACCESN_OK,
|
|
Packit |
d14fb6 |
ACCESN_ERROR,
|
|
Packit |
d14fb6 |
ACCESN_OUT_OF_RANGE,
|
|
Packit |
d14fb6 |
ACCESN_END_OF_DATA,
|
|
Packit |
d14fb6 |
ACCESN_UNSUPPORTED,
|
|
Packit |
d14fb6 |
ACCESN_INVALID_TRANSACTION,
|
|
Packit |
d14fb6 |
ACCESN_TIMED_OUT
|
|
Packit |
d14fb6 |
} ACCESN_STATUS;
|
|
Packit |
d14fb6 |
#pragma pack(1)
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* Request structure provided to SendTimedImbpRequest()
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
unsigned char cmdType;
|
|
Packit |
d14fb6 |
unsigned char rsSa;
|
|
Packit |
d14fb6 |
unsigned char busType;
|
|
Packit |
d14fb6 |
unsigned char netFn;
|
|
Packit |
d14fb6 |
unsigned char rsLun;
|
|
Packit |
d14fb6 |
unsigned char * data;
|
|
Packit |
d14fb6 |
int dataLength;
|
|
Packit |
d14fb6 |
} IMBPREQUESTDATA;
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* Request structure provided to SendTimedI2cRequest()
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef struct {
|
|
Packit |
d14fb6 |
unsigned char rsSa;
|
|
Packit |
d14fb6 |
unsigned char busType;
|
|
Packit |
d14fb6 |
unsigned char numberOfBytesToRead;
|
|
Packit |
d14fb6 |
unsigned char * data;
|
|
Packit |
d14fb6 |
int dataLength;
|
|
Packit |
d14fb6 |
} I2CREQUESTDATA;
|
|
Packit |
d14fb6 |
#pragma pack()
|
|
Packit |
d14fb6 |
/*#ifdef IMB_API
|
|
Packit |
d14fb6 |
*
|
|
Packit |
d14fb6 |
* This section is provided to be able to compile using imb_if.h
|
|
Packit |
d14fb6 |
*
|
|
Packit |
d14fb6 |
*
|
|
Packit |
d14fb6 |
* function return type. This is also defined in the local instrumentation
|
|
Packit |
d14fb6 |
* so we ifdef here to avoid conflict.
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#define METHOD_BUFFERED 0
|
|
Packit |
d14fb6 |
#define FILE_ANY_ACCESS 0
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* This is necessary to compile using memIf.h
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
typedef enum _INTERFACE_TYPE
|
|
Packit |
d14fb6 |
{
|
|
Packit |
d14fb6 |
Internal,
|
|
Packit |
d14fb6 |
Isa,
|
|
Packit |
d14fb6 |
Eisa,
|
|
Packit |
d14fb6 |
MicroChannel,
|
|
Packit |
d14fb6 |
TurboChannel,
|
|
Packit |
d14fb6 |
MaximumInterfaceType
|
|
Packit |
d14fb6 |
} INTERFACE_TYPE, * PINTERFACE_TYPE;
|
|
Packit |
d14fb6 |
#ifdef WIN32
|
|
Packit |
d14fb6 |
/* From memIf.h */
|
|
Packit |
d14fb6 |
#pragma pack(1)
|
|
Packit |
d14fb6 |
typedef struct
|
|
Packit |
d14fb6 |
{
|
|
Packit |
d14fb6 |
INTERFACE_TYPE InterfaceType; // Isa, Eisa, etc....
|
|
Packit |
d14fb6 |
ULONG BusNumber; // Bus number
|
|
Packit |
d14fb6 |
PHYSICAL_ADDRESS BusAddress; // Bus-relative address
|
|
Packit |
d14fb6 |
ULONG AddressSpace; // 0 is memory, 1 is I/O
|
|
Packit |
d14fb6 |
ULONG Length; // Length of section to map
|
|
Packit |
d14fb6 |
} PHYSICAL_MEMORY_INFO, * PPHYSICAL_MEMORY_INFO;
|
|
Packit |
d14fb6 |
#pragma pack()
|
|
Packit |
d14fb6 |
#endif
|
|
Packit |
d14fb6 |
/*#else // not IMB_API */
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* These are defined in imb_if.h but are needed by users of the imbapi library
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#define ASYNC_SEQ_START 0
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
* This is the generic IMB packet format, the final checksum cant be
|
|
Packit |
d14fb6 |
* represented in this structure and will show up as the last data byte
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
/*
|
|
Packit |
d14fb6 |
#define MIN_IMB_PACKET_SIZE 7
|
|
Packit |
d14fb6 |
#define MAX_IMB_PACKET_SIZE 33
|
|
Packit |
d14fb6 |
*/
|
|
Packit |
d14fb6 |
#define MAX_BUFFER_SIZE 64
|
|
Packit |
d14fb6 |
/*#endif // IMB_API */
|
|
Packit |
d14fb6 |
/******************************
|
|
Packit |
d14fb6 |
* FUNCTION PROTOTYPES
|
|
Packit |
d14fb6 |
******************************/
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
SendTimedImbpRequest (
|
|
Packit |
d14fb6 |
IMBPREQUESTDATA *reqPtr,
|
|
Packit |
d14fb6 |
int timeOut,
|
|
Packit |
d14fb6 |
BYTE * respDataPtr,
|
|
Packit |
d14fb6 |
int * respDataLen,
|
|
Packit |
d14fb6 |
BYTE * completionCode
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
SendTimedI2cRequest (
|
|
Packit |
d14fb6 |
I2CREQUESTDATA *reqPtr,
|
|
Packit |
d14fb6 |
int timeOut,
|
|
Packit |
d14fb6 |
BYTE * respDataPtr,
|
|
Packit |
d14fb6 |
int * respDataLen,
|
|
Packit |
d14fb6 |
BYTE * completionCode
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
SendAsyncImbpRequest (
|
|
Packit |
d14fb6 |
IMBPREQUESTDATA *reqPtr,
|
|
Packit |
d14fb6 |
BYTE * seqNo
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
GetAsyncImbpMessage (
|
|
Packit |
d14fb6 |
ImbPacket * msgPtr,
|
|
Packit |
d14fb6 |
DWORD * msgLen,
|
|
Packit |
d14fb6 |
DWORD timeOut,
|
|
Packit |
d14fb6 |
ImbAsyncSeq * seqNo,
|
|
Packit |
d14fb6 |
DWORD channelNumber
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
GetAsyncImbpMessage_Ex (
|
|
Packit |
d14fb6 |
ImbPacket * msgPtr,
|
|
Packit |
d14fb6 |
DWORD * msgLen,
|
|
Packit |
d14fb6 |
DWORD timeOut,
|
|
Packit |
d14fb6 |
ImbAsyncSeq * seqNo,
|
|
Packit |
d14fb6 |
DWORD channelNumber,
|
|
Packit |
d14fb6 |
BYTE * sessionHandle,
|
|
Packit |
d14fb6 |
BYTE * privilege
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
UnmapPhysicalMemory( int virtualAddress, int Length );
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
StartAsyncMesgPoll(void);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
MapPhysicalMemory (
|
|
Packit |
d14fb6 |
int startAddress,
|
|
Packit |
d14fb6 |
int addressLength,
|
|
Packit |
d14fb6 |
int *virtualAddress
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
SetShutDownCode (
|
|
Packit |
d14fb6 |
int delayTime,
|
|
Packit |
d14fb6 |
int code
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
SendTimedEmpMessageResponse (
|
|
Packit |
d14fb6 |
ImbPacket * ptr,
|
|
Packit |
d14fb6 |
char *responseDataBuf,
|
|
Packit |
d14fb6 |
int responseDataLen,
|
|
Packit |
d14fb6 |
int timeOut
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
SendTimedEmpMessageResponse_Ex (
|
|
Packit |
d14fb6 |
ImbPacket * ptr,
|
|
Packit |
d14fb6 |
char *responseDataBuf,
|
|
Packit |
d14fb6 |
int responseDataLen,
|
|
Packit |
d14fb6 |
int timeOut,
|
|
Packit |
d14fb6 |
BYTE sessionHandle,
|
|
Packit |
d14fb6 |
BYTE channelNumber
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
SendTimedLanMessageResponse (
|
|
Packit |
d14fb6 |
ImbPacket * ptr,
|
|
Packit |
d14fb6 |
char *responseDataBuf,
|
|
Packit |
d14fb6 |
int responseDataLen,
|
|
Packit |
d14fb6 |
int timeOut
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
SendTimedLanMessageResponse_Ex (
|
|
Packit |
d14fb6 |
ImbPacket * ptr,
|
|
Packit |
d14fb6 |
char *responseDataBuf,
|
|
Packit |
d14fb6 |
int responseDataLen,
|
|
Packit |
d14fb6 |
int timeOut ,
|
|
Packit |
d14fb6 |
BYTE sessionHandle,
|
|
Packit |
d14fb6 |
BYTE channelNumber
|
|
Packit |
d14fb6 |
);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
IsAsyncMessageAvailable (unsigned int eventId );
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
RegisterForImbAsyncMessageNotification (unsigned int *handleId);
|
|
Packit |
d14fb6 |
ACCESN_STATUS
|
|
Packit |
d14fb6 |
UnRegisterForImbAsyncMessageNotification (unsigned int handleId,int iFlag);
|
|
Packit |
d14fb6 |
BYTE GetIpmiVersion(void);
|
|
Packit |
d14fb6 |
#endif /* IMBAPI_H__ */
|