1*368c31abSDavid du Colombier #include <u.h> 2*368c31abSDavid du Colombier #include <libc.h> 3*368c31abSDavid du Colombier #include <oventi.h> 4*368c31abSDavid du Colombier 5*368c31abSDavid du Colombier int vtParseScore(char * buf,uint n,uchar score[VtScoreSize])6*368c31abSDavid du ColombiervtParseScore(char *buf, uint n, uchar score[VtScoreSize]) 7*368c31abSDavid du Colombier { 8*368c31abSDavid du Colombier int i, c; 9*368c31abSDavid du Colombier 10*368c31abSDavid du Colombier memset(score, 0, VtScoreSize); 11*368c31abSDavid du Colombier 12*368c31abSDavid du Colombier if(n != VtScoreSize*2) 13*368c31abSDavid du Colombier return 0; 14*368c31abSDavid du Colombier for(i=0; i<VtScoreSize*2; i++){ 15*368c31abSDavid du Colombier if(buf[i] >= '0' && buf[i] <= '9') 16*368c31abSDavid du Colombier c = buf[i] - '0'; 17*368c31abSDavid du Colombier else if(buf[i] >= 'a' && buf[i] <= 'f') 18*368c31abSDavid du Colombier c = buf[i] - 'a' + 10; 19*368c31abSDavid du Colombier else if(buf[i] >= 'A' && buf[i] <= 'F') 20*368c31abSDavid du Colombier c = buf[i] - 'A' + 10; 21*368c31abSDavid du Colombier else 22*368c31abSDavid du Colombier return 0; 23*368c31abSDavid du Colombier 24*368c31abSDavid du Colombier if((i & 1) == 0) 25*368c31abSDavid du Colombier c <<= 4; 26*368c31abSDavid du Colombier 27*368c31abSDavid du Colombier score[i>>1] |= c; 28*368c31abSDavid du Colombier } 29*368c31abSDavid du Colombier return 1; 30*368c31abSDavid du Colombier } 31*368c31abSDavid du Colombier 32