X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=discover%2Fipmi.h;h=eb2a1831638ed9c8350db4b4b11e1789df3661f4;hb=0dae90626e54e46372c9feddc2f9ac82f046547d;hp=157cca898685f36e906ba1969f4a705457dbd4ab;hpb=f69fabee4a120cebaeff2359350e62bd960088f4;p=petitboot diff --git a/discover/ipmi.h b/discover/ipmi.h index 157cca8..eb2a183 100644 --- a/discover/ipmi.h +++ b/discover/ipmi.h @@ -4,16 +4,34 @@ #include #include -enum ipmi_bootdev { - IPMI_BOOTDEV_NONE = 0x0, - IPMI_BOOTDEV_NETWORK = 0x1, - IPMI_BOOTDEV_DISK = 0x2, - IPMI_BOOTDEV_SAFE = 0x3, - IPMI_BOOTDEV_CDROM = 0x5, - IPMI_BOOTDEV_SETUP = 0x6, +#include + +enum ipmi_netfn { + IPMI_NETFN_CHASSIS = 0x0, + IPMI_NETFN_SE = 0x04, + IPMI_NETFN_TRANSPORT = 0x0c, }; -bool ipmi_bootdev_is_valid(int x); +enum ipmi_cmd { + IPMI_CMD_CHASSIS_SET_SYSTEM_BOOT_OPTIONS = 0x08, + IPMI_CMD_CHASSIS_GET_SYSTEM_BOOT_OPTIONS = 0x09, + IPMI_CMD_SENSOR_SET = 0x30, + IPMI_CMD_TRANSPORT_GET_LAN_PARAMS = 0x02, +}; + +enum ipmi_sensor_ids { + IPMI_SENSOR_ID_OS_BOOT = 0x1F, +}; + +struct ipmi; + bool ipmi_present(void); +bool ipmi_bootdev_is_valid(int x); +struct ipmi *ipmi_open(void *ctx); + +int ipmi_transaction(struct ipmi *ipmi, uint8_t netfn, uint8_t cmd, + uint8_t *req_buf, uint16_t req_len, + uint8_t *resp_buf, uint16_t *resp_len, + int timeout_ms); #endif /* _IPMI_H */