X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fipmi_smi.h;h=e36ee157ad67ff0fd36005c0fbf964613ce07f69;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=6d9c7e4da4720a538fcc7f97ca30240d70cbabcf;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h index 6d9c7e4da..e36ee157a 100644 --- a/include/linux/ipmi_smi.h +++ b/include/linux/ipmi_smi.h @@ -37,9 +37,6 @@ #include #include #include -#include -#include -#include /* This files describes the interface for IPMI system management interface drivers to bind into the IPMI message handler. */ @@ -82,13 +79,6 @@ struct ipmi_smi_handlers { struct module *owner; - /* The low-level interface cannot start sending messages to - the upper layer until this function is called. This may - not be NULL, the lower layer must take the interface from - this call. */ - int (*start_processing)(void *send_info, - ipmi_smi_t new_intf); - /* Called to enqueue an SMI message to be sent. This operation is not allowed to fail. If an error occurs, it should report back the error in a received message. It may @@ -123,57 +113,14 @@ struct ipmi_smi_handlers void (*dec_usecount)(void *send_info); }; -struct ipmi_device_id { - unsigned char device_id; - unsigned char device_revision; - unsigned char firmware_revision_1; - unsigned char firmware_revision_2; - unsigned char ipmi_version; - unsigned char additional_device_support; - unsigned int manufacturer_id; - unsigned int product_id; - unsigned char aux_firmware_revision[4]; - unsigned int aux_firmware_revision_set : 1; -}; - -#define ipmi_version_major(v) ((v)->ipmi_version & 0xf) -#define ipmi_version_minor(v) ((v)->ipmi_version >> 4) - -/* Take a pointer to a raw data buffer and a length and extract device - id information from it. The first byte of data must point to the - byte from the get device id response after the completion code. - The caller is responsible for making sure the length is at least - 11 and the command completed without error. */ -static inline void ipmi_demangle_device_id(unsigned char *data, - unsigned int data_len, - struct ipmi_device_id *id) -{ - id->device_id = data[0]; - id->device_revision = data[1]; - id->firmware_revision_1 = data[2]; - id->firmware_revision_2 = data[3]; - id->ipmi_version = data[4]; - id->additional_device_support = data[5]; - id->manufacturer_id = data[6] | (data[7] << 8) | (data[8] << 16); - id->product_id = data[9] | (data[10] << 8); - if (data_len >= 15) { - memcpy(id->aux_firmware_revision, data+11, 4); - id->aux_firmware_revision_set = 1; - } else - id->aux_firmware_revision_set = 0; -} - /* Add a low-level interface to the IPMI driver. Note that if the - interface doesn't know its slave address, it should pass in zero. - The low-level interface should not deliver any messages to the - upper layer until the start_processing() function in the handlers - is called, and the lower layer must get the interface from that - call. */ + interface doesn't know its slave address, it should pass in zero. */ int ipmi_register_smi(struct ipmi_smi_handlers *handlers, void *send_info, - struct ipmi_device_id *device_id, - struct device *dev, - unsigned char slave_addr); + unsigned char version_major, + unsigned char version_minor, + unsigned char slave_addr, + ipmi_smi_t *intf); /* * Remove a low-level interface from the IPMI driver. This will