리눅스 커널에는 기본적인 함수들이 없다보니 구현해서 쓰게 된다 ;;
static int ishex (char ch) {
if (((ch>='0') && (ch <='9')) || ((ch>='a') && (ch <='f')) || ((ch >='A') && (ch <='F'))) return 1;
return 0;
}
static int hex_value (char ch) {
if ((ch >= '0') && (ch <= '9')) return ch-'0';
if ((ch >= 'a') && (ch <= 'f')) return ch-'a'+10;
if ((ch >= 'A') && (ch <= 'F')) return ch-'A'+10;
if ((ch >= '0') && (ch <= '9')) return ch-'0';
if ((ch >= 'a') && (ch <= 'f')) return ch-'a'+10;
if ((ch >= 'A') && (ch <= 'F')) return ch-'A'+10;
printk("[ERR] %s() - wrong hax value \n", __FUNCTION__);
return 0;
}
return 0;
}
static int atoh(char *s , int len) {
int i=0;
while (ishex(*s) && len--)
{
i = i*0x10 + hex_value(*s);
s++;
}
return i;
}
int i=0;
while (ishex(*s) && len--)
{
i = i*0x10 + hex_value(*s);
s++;
}
return i;
}
'Programming > C Programming' 카테고리의 다른 글
__read_mostly keyword (0) | 2010.06.29 |
---|---|
전처리기 사용 : define ## (0) | 2010.02.23 |
struct 변수 사용 bit 한계 설정하기 (0) | 2009.12.02 |
[TIP] easy mistake casting buffer (0) | 2009.09.21 |
해더파일을 통한 배열 입력 (2) | 2008.11.04 |