1*34e04225SDavid du Colombier #include <u.h>
2*34e04225SDavid du Colombier #include <libc.h>
3*34e04225SDavid du Colombier #include <thread.h>
4*34e04225SDavid du Colombier #include <sunrpc.h>
5*34e04225SDavid du Colombier
6*34e04225SDavid du Colombier static struct {
7*34e04225SDavid du Colombier SunStatus status;
8*34e04225SDavid du Colombier char *msg;
9*34e04225SDavid du Colombier } tab[] = {
10*34e04225SDavid du Colombier SunProgUnavail, "program unavailable",
11*34e04225SDavid du Colombier SunProgMismatch, "program mismatch",
12*34e04225SDavid du Colombier SunProcUnavail, "procedure unavailable",
13*34e04225SDavid du Colombier SunGarbageArgs, "garbage args",
14*34e04225SDavid du Colombier SunSystemErr, "system error",
15*34e04225SDavid du Colombier SunRpcMismatch, "rpc mismatch",
16*34e04225SDavid du Colombier SunAuthBadCred, "bad auth cred",
17*34e04225SDavid du Colombier SunAuthRejectedCred, "rejected auth cred",
18*34e04225SDavid du Colombier SunAuthBadVerf, "bad auth verf",
19*34e04225SDavid du Colombier SunAuthRejectedVerf, "rejected auth verf",
20*34e04225SDavid du Colombier SunAuthTooWeak, "auth too weak",
21*34e04225SDavid du Colombier SunAuthInvalidResp, "invalid auth response",
22*34e04225SDavid du Colombier SunAuthFailed, "auth failed",
23*34e04225SDavid du Colombier };
24*34e04225SDavid du Colombier
25*34e04225SDavid du Colombier void
sunErrstr(SunStatus status)26*34e04225SDavid du Colombier sunErrstr(SunStatus status)
27*34e04225SDavid du Colombier {
28*34e04225SDavid du Colombier int i;
29*34e04225SDavid du Colombier
30*34e04225SDavid du Colombier for(i=0; i<nelem(tab); i++){
31*34e04225SDavid du Colombier if(tab[i].status == status){
32*34e04225SDavid du Colombier werrstr(tab[i].msg);
33*34e04225SDavid du Colombier return;
34*34e04225SDavid du Colombier }
35*34e04225SDavid du Colombier }
36*34e04225SDavid du Colombier werrstr("unknown sun error %d", (int)status);
37*34e04225SDavid du Colombier }
38