Provided by:
freebsd-manpages_6.2-1_all 
NAME
ipmi - OpenIPMI compatible IPMI interface driver
SYNOPSIS
device ipmi
#include <sys/dev/ipmi.h>
int
ioctl(int d, IPMICTL_RECEIVE_MSG_TRUNC, struct ipmi_recv *);
int
ioctl(int d, IPMICTL_RECEIVE_MSG, struct ipmi_recv *);
int
ioctl(int d, IPMICTL_SEND_COMMAND, struct ipmi_req *);
int
ioctl(int d, IPMICTL_REGISTER_FOR_CMD, struct ipmi_cmdspec *);
int
ioctl(int d, IPMICTL_UNREGISTER_FOR_CMD, struct ipmi_cmdspec *);
int
ioctl(int d, IPMICTL_SET_GETS_EVENTS_CMD, int *);
int
ioctl(int d, IPMICTL_SET_MY_ADDRESS_CMD, unsigned int *);
int
ioctl(int d, IPMICTL_GET_MY_ADDRESS_CMD, unsigned int *);
int
ioctl(int d, IPMICTL_SET_MY_LUN_CMD, unsigned int *);
int
ioctl(int d, IPMICTL_GET_MY_LUN_CMD, unsigned int *);
DESCRIPTION
The IPMI (Intelligent Platform Management Interface) is a standard for
monitoring system hardware by permitting generic code to detect and
monitor the sensors in a system. The IPMI standard offers watchdog
support, an FRU database, and other support extensions. It is currently
being adopted by the makers of many single board and embedded system
manufacturers.
The ipmi driver in FreeBSD is heavily adopted from the standard and
driver; however, not all features described in the standard are
supported.
IOCTL
Sending and receiving messages through the ipmi driver requires the use
of IOCTLs. The IOCTLs are used due to the complexity of data sent to and
from the device. Currently the following IOCTLs are defined:
IPMI_IOC_MAGIC The magic IOCTL value for this interface.
IPMICTL_RECEIVE_MSG_TRUNC Like RECEIVE_MSG but if the message can not fit
into the buffer, it will truncate the contents instead of leaving the
data in the buffer.
IPMICTL_RECEIVE_MSG Receive a message. Possible error values:
[EAGAIN] No messages are in the process queue.
[EFAULT] An address supplied was invalid.
[EMSGSIZE] The address could not fit in the message buffer and
will remain in the buffer.
IPMICTL_SEND_COMMAND Send a message to the interface. Possible error
values:
[EFAULT] An address supplied was invalid
[ENOMEM] Buffers could not be allowed for the command, out of
memory.
IPMICTL_SET_MY_ADDRESS_CMD Set the slave address for source messages.
IPMICTL_GET_MY_ADDRESS_CMD Get the slave address for source messages.
IPMICTL_SET_MY_LUN_CMD Set the slave LUN for source messages.
IPMICTL_GET_MY_LUN_CMD Get the slave LUN for source messages.
Unimplemented IOCTLS:
IPMICTL_REGISTER_FOR_CMD Register to receive a specfic command Possible
error values:
[EFAULT] An supplied address was invalid.
[EBUSY] The network function/command is already in use.
[ENOMEM] Could not allocate memory.
IPMICTL_UNREGISTER_FOR_CMD Unregister to receive a specific command
Possible error values:
[EFAULT] An address supplied was invalid.
[ENOENT] The network function/command was not found.
Stub only IOCTL:
IPMICTL_SET_GETS_EVENTS_CMD Set whether this interface receives events.
Possible error values:
[EFAULT] An address supplied was invalid.
SEE ALSO
ioctl(2), watchdog(4), watchdog(8), watchdogd(8), watchdog(9)
HISTORY
The ipmi driver first appeared in FreeBSD 7.0.
AUTHORS
The ipmi driver was written by Doug Ambrisko 〈ambrisko@FreeBSD.org〉.
This manual page was written by Tom Rhodes 〈trhodes@FreeBSD.org〉.
BUGS
Not all features of the MontaVista driver are supported.
Currently, IPMB and BT modes are not implemented.