ref: 4fedd7d4fe1c3b509c84d12e971aaa466b8b4b3d
dir: /sys/src/cmd/nusb/disk/mkscsierrs/
#!/bin/rc cat <<EOF #include <u.h> #include <libc.h> typedef struct Err Err; struct Err { int n; char *s; }; static Err scsierrs[] = { EOF grep '^[0-9a-c][0-9a-c][0-9a-c][0-9a-c][ ]' /sys/lib/scsicodes | sed -e 's/^(....) (.*)/ {0x\1, "\2"},\n/' cat <<EOF }; char* scsierrmsg(int n) { int i; for(i = 0; i < nelem(scsierrs); i++) if(scsierrs[i].n == n) return scsierrs[i].s; return "scsi error"; } EOF