X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=discover%2Fipmi.h;h=e60ff619215984c58da52293df3315ad9de773ce;hb=388e5c51b182e904c088d14c387f61162b07aee6;hp=0ed6068f1a5395e447c58d2b1b5b0212b162822c;hpb=9dec4ac0431895f027cfa72e8e0656d3d69e3e63;p=petitboot diff --git a/discover/ipmi.h b/discover/ipmi.h index 0ed6068..e60ff61 100644 --- a/discover/ipmi.h +++ b/discover/ipmi.h @@ -4,15 +4,33 @@ #include #include +enum ipmi_netfn { + IPMI_NETFN_CHASSIS = 0x0, +}; + +enum ipmi_cmd { + IPMI_CMD_CHASSIS_SET_SYSTEM_BOOT_OPTIONS = 0x08, + IPMI_CMD_CHASSIS_GET_SYSTEM_BOOT_OPTIONS = 0x09, +}; + enum ipmi_bootdev { - IPMI_BOOTDEV_NONE = 0x0, - IPMI_BOOTDEV_NETWORK = 0x1, + IPMI_BOOTDEV_NONE = 0x00, + IPMI_BOOTDEV_NETWORK = 0x01, IPMI_BOOTDEV_DISK = 0x2, IPMI_BOOTDEV_SAFE = 0x3, IPMI_BOOTDEV_CDROM = 0x5, IPMI_BOOTDEV_SETUP = 0x6, }; +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 */