HP-UX Reference (11i v2 04/09) - 7 Device (Special) Files, 9 General Information, Index (vol 10)

i
ipmi(7) ipmi(7)
typedef struct ipmi_data {
caddr_t InBuffer;
DWORD InBufferLength;
caddr_t OutBuffer;
DWORD OutBufferLength;
DWORD * BytesReturned;
caddr_t Overlapped;
int status;
} ipmi_data_t;
IOCTL_IMB_SEND_MESSAGE_32
Allows a 32-bit user process to send a message to the BMC. The
arg parameter points to an
ipmi_data_32_t
structure
(defined in the
<sys/ipmi.h> header file) whose members are
as follows:
typedef struct ipmi_data_32 {
ptr32_t InBuffer;
DWORD InBufferLength;
ptr32_t OutBuffer;
DWORD OutBufferLength;
ptr32_t BytesReturned;
ptr32_t Overlapped;
int status;
} ipmi_data_32_t;
The fields used in these structures are as defined:
InBuffer Pointer to variable sized
ImbRequestBuffer
structure.
InBufferLength Length of relavent data in InBuffer.
OutBuffer Pointer to variable sized
ImbResponseBuffer
structure.
OutBufferLength Length of relavent data in OutBuffer.
BytesReturned Pointer to integer which returns output data length.
Overlapped Currently unused.
status The status must be
0 if the operation was successful. Otherwise, it con-
tains a value known internally to the driver. This field may be obfuscated
in future releases.
The return to
ioctl() and status field must be zero for the operation to succeed. If
ioctl() returns 0
and status is not 0, the message may not have been successfully sent to the BMC or the message was suc-
cessfully sent, but return data was not successfully received.
The application should check the Completion Code returned by the BMC to furthur evaluate the status of
the operation. The meaning of that Completion Code is documented in the IPMI specifications.
RETURN VALUE
Unless specified otherwise, upon successful completion, the IPMI
ioctl() commands return a value of 0
(zero). Otherwise, a value of -1.
ERRORS
[EBUSY] The caller is unable to access the BMC because too many processes are contending for
access.
[ETIMEDOUT] The caller is able to access the BMC but a timeout occurred because either the
timeOut value in ImbRequestBuffer is too small or the BMC is busy.
[E2BIG] The caller is able to access the BMC but a timeout occurred because either the
timeOut value in
ImbRequestBuffer is too small or the BMC is busy.
[EFAULT] The buffer pointed to by InBuffer or OutBuffer in
ipmi_data_t or
ipmi_data_32_t is invalid.
[ENXIO] The IPMI driver failed to attach to a device during initialization.
[EINVAL] Incorrect input and/or output buffer lengths.
HP-UX 11i Version 2: September 2004 2 Hewlett-Packard Company Section 757