Provided by: freebsd-manpages_6.2-1_all bug

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.