m/p/scsi: add SCSI package
This adds a SCSI package to interact with SCSI devices.
It implements a subset of commands from the SPC-5 and SBC-4 standard
useful for discovery and health assessment.
A follow-up will add SAT (SCSI-to-ATA translation) support.
Change-Id: I7f084d26f11d9c951f51051040160e351cf5594c
Reviewed-on: https://review.monogon.dev/c/monogon/+/1066
Reviewed-by: Serge Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/pkg/scsi/BUILD.bazel b/metropolis/pkg/scsi/BUILD.bazel
new file mode 100644
index 0000000..f307a97
--- /dev/null
+++ b/metropolis/pkg/scsi/BUILD.bazel
@@ -0,0 +1,28 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "scsi",
+ srcs = [
+ "dev_block.go",
+ "health.go",
+ "inquiry.go",
+ "log.go",
+ "scsi.go",
+ "scsi_linux.go",
+ "scsi_linux_defs.go",
+ "scsi_linux_defs1.go",
+ "sensekeydata.go",
+ ],
+ cgo = True,
+ importpath = "source.monogon.dev/metropolis/pkg/scsi",
+ visibility = ["//visibility:public"],
+ deps = select({
+ "@io_bazel_rules_go//go/platform:android": [
+ "@org_golang_x_sys//unix",
+ ],
+ "@io_bazel_rules_go//go/platform:linux": [
+ "@org_golang_x_sys//unix",
+ ],
+ "//conditions:default": [],
+ }),
+)