diff options
Diffstat (limited to 'include/linux/ipmi.h')
-rw-r--r-- | include/linux/ipmi.h | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h index 65aae34759de..ca85cf894e33 100644 --- a/include/linux/ipmi.h +++ b/include/linux/ipmi.h | |||
@@ -111,7 +111,7 @@ struct ipmi_ipmb_addr { | |||
111 | * A LAN Address. This is an address to/from a LAN interface bridged | 111 | * A LAN Address. This is an address to/from a LAN interface bridged |
112 | * by the BMC, not an address actually out on the LAN. | 112 | * by the BMC, not an address actually out on the LAN. |
113 | * | 113 | * |
114 | * A concious decision was made here to deviate slightly from the IPMI | 114 | * A conscious decision was made here to deviate slightly from the IPMI |
115 | * spec. We do not use rqSWID and rsSWID like it shows in the | 115 | * spec. We do not use rqSWID and rsSWID like it shows in the |
116 | * message. Instead, we use remote_SWID and local_SWID. This means | 116 | * message. Instead, we use remote_SWID and local_SWID. This means |
117 | * that any message (a request or response) from another device will | 117 | * that any message (a request or response) from another device will |
@@ -259,7 +259,7 @@ struct ipmi_recv_msg { | |||
259 | void (*done)(struct ipmi_recv_msg *msg); | 259 | void (*done)(struct ipmi_recv_msg *msg); |
260 | 260 | ||
261 | /* Place-holder for the data, don't make any assumptions about | 261 | /* Place-holder for the data, don't make any assumptions about |
262 | the size or existance of this, since it may change. */ | 262 | the size or existence of this, since it may change. */ |
263 | unsigned char msg_data[IPMI_MAX_MSG_LENGTH]; | 263 | unsigned char msg_data[IPMI_MAX_MSG_LENGTH]; |
264 | }; | 264 | }; |
265 | 265 | ||
@@ -454,6 +454,44 @@ unsigned int ipmi_addr_length(int addr_type); | |||
454 | /* Validate that the given IPMI address is valid. */ | 454 | /* Validate that the given IPMI address is valid. */ |
455 | int ipmi_validate_addr(struct ipmi_addr *addr, int len); | 455 | int ipmi_validate_addr(struct ipmi_addr *addr, int len); |
456 | 456 | ||
457 | /* | ||
458 | * How did the IPMI driver find out about the device? | ||
459 | */ | ||
460 | enum ipmi_addr_src { | ||
461 | SI_INVALID = 0, SI_HOTMOD, SI_HARDCODED, SI_SPMI, SI_ACPI, SI_SMBIOS, | ||
462 | SI_PCI, SI_DEVICETREE, SI_DEFAULT | ||
463 | }; | ||
464 | |||
465 | union ipmi_smi_info_union { | ||
466 | /* | ||
467 | * the acpi_info element is defined for the SI_ACPI | ||
468 | * address type | ||
469 | */ | ||
470 | struct { | ||
471 | void *acpi_handle; | ||
472 | } acpi_info; | ||
473 | }; | ||
474 | |||
475 | struct ipmi_smi_info { | ||
476 | enum ipmi_addr_src addr_src; | ||
477 | |||
478 | /* | ||
479 | * Base device for the interface. Don't forget to put this when | ||
480 | * you are done. | ||
481 | */ | ||
482 | struct device *dev; | ||
483 | |||
484 | /* | ||
485 | * The addr_info provides more detailed info for some IPMI | ||
486 | * devices, depending on the addr_src. Currently only SI_ACPI | ||
487 | * info is provided. | ||
488 | */ | ||
489 | union ipmi_smi_info_union addr_info; | ||
490 | }; | ||
491 | |||
492 | /* This is to get the private info of ipmi_smi_t */ | ||
493 | extern int ipmi_get_smi_info(int if_num, struct ipmi_smi_info *data); | ||
494 | |||
457 | #endif /* __KERNEL__ */ | 495 | #endif /* __KERNEL__ */ |
458 | 496 | ||
459 | 497 | ||