1*906943f9SDavid du Colombier#!/bin/rc 2*906943f9SDavid du Colombier 3*906943f9SDavid du Colombiercat <<EOF 4*906943f9SDavid du Colombier#include <u.h> 5*906943f9SDavid du Colombier#include <libc.h> 6*906943f9SDavid du Colombier 7*906943f9SDavid du Colombiertypedef struct Err Err; 8*906943f9SDavid du Colombierstruct Err 9*906943f9SDavid du Colombier{ 10*906943f9SDavid du Colombier int n; 11*906943f9SDavid du Colombier char *s; 12*906943f9SDavid du Colombier}; 13*906943f9SDavid du Colombier 14*906943f9SDavid du Colombierstatic Err scsierrs[] = { 15*906943f9SDavid du ColombierEOF 16*906943f9SDavid du Colombier 17*906943f9SDavid du Colombiergrep '^[0-9a-c][0-9a-c][0-9a-c][0-9a-c][ ]' /sys/lib/scsicodes | 18*906943f9SDavid du Colombier sed -e 's/^(....) (.*)/ {0x\1, "\2"},\n/' 19*906943f9SDavid du Colombiercat <<EOF 20*906943f9SDavid du Colombier}; 21*906943f9SDavid du Colombier 22*906943f9SDavid du Colombierchar* 23*906943f9SDavid du Colombierscsierrmsg(int n) 24*906943f9SDavid du Colombier{ 25*906943f9SDavid du Colombier int i; 26*906943f9SDavid du Colombier 27*906943f9SDavid du Colombier for(i = 0; i < nelem(scsierrs); i++) 28*906943f9SDavid du Colombier if(scsierrs[i].n == n) 29*906943f9SDavid du Colombier return scsierrs[i].s; 30*906943f9SDavid du Colombier return "scsi error"; 31*906943f9SDavid du Colombier} 32*906943f9SDavid du ColombierEOF 33