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/scsi_linux_defs1.go b/metropolis/pkg/scsi/scsi_linux_defs1.go
new file mode 100644
index 0000000..e2e410d
--- /dev/null
+++ b/metropolis/pkg/scsi/scsi_linux_defs1.go
@@ -0,0 +1,16 @@
+//go:build ignore
+
+package scsi
+
+// #include <scsi/sg.h>
+import "C"
+
+const (
+ SG_IO = C.SG_IO
+ SG_DXFER_NONE = C.SG_DXFER_NONE
+ SG_DXFER_TO_DEV = C.SG_DXFER_TO_DEV
+ SG_DXFER_FROM_DEV = C.SG_DXFER_FROM_DEV
+ SG_DXFER_TO_FROM_DEV = C.SG_DXFER_TO_FROM_DEV
+)
+
+type sgIOHdr C.sg_io_hdr_t