unix: add IPMI interface Add structs and constants for the Linux IPMI system interface. Change-Id: I100c402bfdf9dd72b541b612c8783248c35bd16b Reviewed-on: https://go-review.googlesource.com/c/sys/+/752624 LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: David Chase <drchase@google.com>
diff --git a/unix/linux/types.go b/unix/linux/types.go index a59f0da..7e0bca9 100644 --- a/unix/linux/types.go +++ b/unix/linux/types.go
@@ -132,6 +132,7 @@ #include <linux/if_xdp.h> #include <linux/inet_diag.h> #include <linux/ipc.h> +#include <linux/ipmi.h> #include <linux/kcm.h> #include <linux/keyctl.h> #include <linux/landlock.h> @@ -6376,3 +6377,19 @@ type GPIOV2LineInfo C.struct_gpio_v2_line_info type GPIOV2LineInfoChanged C.struct_gpio_v2_line_info_changed type GPIOV2LineEvent C.struct_gpio_v2_line_event + +// IPMI SI +const ( + IPMI_MAX_ADDR_SIZE = C.IPMI_MAX_ADDR_SIZE + IPMI_SYSTEM_INTERFACE_ADDR_TYPE = C.IPMI_SYSTEM_INTERFACE_ADDR_TYPE + IPMI_BMC_CHANNEL = C.IPMI_BMC_CHANNEL + IPMI_RESPONSE_RECV_TYPE = C.IPMI_RESPONSE_RECV_TYPE + + IPMICTL_SEND_COMMAND = C.IPMICTL_SEND_COMMAND + IPMICTL_RECEIVE_MSG = C.IPMICTL_RECEIVE_MSG +) + +type IPMISystemInterfaceAddr C.struct_ipmi_system_interface_addr +type IPMIMsg C.struct_ipmi_msg +type IPMIReq C.struct_ipmi_req +type IPMIRecv C.struct_ipmi_recv
diff --git a/unix/ztypes_linux.go b/unix/ztypes_linux.go index 57e9c87..538a18f 100644 --- a/unix/ztypes_linux.go +++ b/unix/ztypes_linux.go
@@ -6525,3 +6525,23 @@ Line_seqno uint32 _ [6]uint32 } + +const ( + IPMI_MAX_ADDR_SIZE = 0x20 + IPMI_SYSTEM_INTERFACE_ADDR_TYPE = 0xc + IPMI_BMC_CHANNEL = 0xf + IPMI_RESPONSE_RECV_TYPE = 0x1 +) + +type IPMISystemInterfaceAddr struct { + Type int32 + Channel int16 + Lun uint8 + _ [1]byte +} +type IPMIMsg struct { + Netfn uint8 + Cmd uint8 + Len uint16 + Data *uint8 +}
diff --git a/unix/ztypes_linux_386.go b/unix/ztypes_linux_386.go index ccb2494..38658a3 100644 --- a/unix/ztypes_linux_386.go +++ b/unix/ztypes_linux_386.go
@@ -726,3 +726,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x8044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x8014690d + IPMICTL_RECEIVE_MSG = 0xc018690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int32 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int32 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_amd64.go b/unix/ztypes_linux_amd64.go index ab10f82..267ffe0 100644 --- a/unix/ztypes_linux_amd64.go +++ b/unix/ztypes_linux_amd64.go
@@ -740,3 +740,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x8044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x8028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_arm.go b/unix/ztypes_linux_arm.go index 094665e..ec459d5 100644 --- a/unix/ztypes_linux_arm.go +++ b/unix/ztypes_linux_arm.go
@@ -720,3 +720,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x8044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x8014690d + IPMICTL_RECEIVE_MSG = 0xc018690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int32 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int32 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_arm64.go b/unix/ztypes_linux_arm64.go index 7df7168..fa45ab7 100644 --- a/unix/ztypes_linux_arm64.go +++ b/unix/ztypes_linux_arm64.go
@@ -719,3 +719,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x8044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x8028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_loong64.go b/unix/ztypes_linux_loong64.go index 26b87cc..3da72cc 100644 --- a/unix/ztypes_linux_loong64.go +++ b/unix/ztypes_linux_loong64.go
@@ -720,3 +720,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x8044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x8028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_mips.go b/unix/ztypes_linux_mips.go index a9ece20..78f8c6d 100644 --- a/unix/ztypes_linux_mips.go +++ b/unix/ztypes_linux_mips.go
@@ -725,3 +725,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x4044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x4014690d + IPMICTL_RECEIVE_MSG = 0xc018690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int32 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int32 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_mips64.go b/unix/ztypes_linux_mips64.go index 1587248..bbd4c6c 100644 --- a/unix/ztypes_linux_mips64.go +++ b/unix/ztypes_linux_mips64.go
@@ -722,3 +722,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x4044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x4028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_mips64le.go b/unix/ztypes_linux_mips64le.go index 8f6c7c5..644d31d 100644 --- a/unix/ztypes_linux_mips64le.go +++ b/unix/ztypes_linux_mips64le.go
@@ -722,3 +722,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x4044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x4028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_mipsle.go b/unix/ztypes_linux_mipsle.go index d398883..a976f62 100644 --- a/unix/ztypes_linux_mipsle.go +++ b/unix/ztypes_linux_mipsle.go
@@ -725,3 +725,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x4044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x4014690d + IPMICTL_RECEIVE_MSG = 0xc018690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int32 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int32 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_ppc.go b/unix/ztypes_linux_ppc.go index be53904..4632469 100644 --- a/unix/ztypes_linux_ppc.go +++ b/unix/ztypes_linux_ppc.go
@@ -733,3 +733,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x4044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x4014690d + IPMICTL_RECEIVE_MSG = 0xc018690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int32 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int32 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_ppc64.go b/unix/ztypes_linux_ppc64.go index 421fe74..cbc3039 100644 --- a/unix/ztypes_linux_ppc64.go +++ b/unix/ztypes_linux_ppc64.go
@@ -728,3 +728,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x4044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x4028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_ppc64le.go b/unix/ztypes_linux_ppc64le.go index bb0b25f..b47f7b4 100644 --- a/unix/ztypes_linux_ppc64le.go +++ b/unix/ztypes_linux_ppc64le.go
@@ -728,3 +728,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x4044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x4028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_riscv64.go b/unix/ztypes_linux_riscv64.go index c1d806a..cb16add 100644 --- a/unix/ztypes_linux_riscv64.go +++ b/unix/ztypes_linux_riscv64.go
@@ -807,3 +807,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x8044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x8028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_s390x.go b/unix/ztypes_linux_s390x.go index 28399f0..a57ab8f 100644 --- a/unix/ztypes_linux_s390x.go +++ b/unix/ztypes_linux_s390x.go
@@ -742,3 +742,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x8044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x8028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}
diff --git a/unix/ztypes_linux_sparc64.go b/unix/ztypes_linux_sparc64.go index 4daec9c..bf99635 100644 --- a/unix/ztypes_linux_sparc64.go +++ b/unix/ztypes_linux_sparc64.go
@@ -723,3 +723,22 @@ const ( GPIO_GET_CHIPINFO_IOCTL = 0x4044b401 ) + +const ( + IPMICTL_SEND_COMMAND = 0x4028690d + IPMICTL_RECEIVE_MSG = 0xc030690c +) + +type IPMIReq struct { + Addr *uint8 + Len uint32 + Msgid int64 + Msg IPMIMsg +} +type IPMIRecv struct { + Recv_type int32 + Addr *uint8 + Addr_len uint32 + Msgid int64 + Msg IPMIMsg +}