staging: ath6kl: use native methods from kernel library
There are already implemented methods such hex_to_bin() or isxdigit() in the kernel. Let's use them. Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com> Acked-by: Vipin Mehta <Vipin.Mehta@Atheros.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
91facdbe50
commit
c8e7978ee4
2 changed files with 25 additions and 38 deletions
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
#include "ar3kpsparser.h"
|
#include "ar3kpsparser.h"
|
||||||
|
|
||||||
|
#include <linux/ctype.h>
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
|
||||||
#define BD_ADDR_SIZE 6
|
#define BD_ADDR_SIZE 6
|
||||||
#define WRITE_PATCH 8
|
#define WRITE_PATCH 8
|
||||||
#define ENABLE_PATCH 11
|
#define ENABLE_PATCH 11
|
||||||
|
@ -61,20 +64,6 @@
|
||||||
#define MAX_BYTE_LENGTH 244
|
#define MAX_BYTE_LENGTH 244
|
||||||
|
|
||||||
#define SKIP_BLANKS(str) while (*str == ' ') str++
|
#define SKIP_BLANKS(str) while (*str == ' ') str++
|
||||||
#define MIN(x, y) (((x) <= (y))? (x):(y))
|
|
||||||
#define MAX(x, y) (((x) >= (y))? (x):(y))
|
|
||||||
|
|
||||||
#define UNUSED(x) (x=x)
|
|
||||||
|
|
||||||
#define IS_BETWEEN(x, lower, upper) (((lower) <= (x)) && ((x) <= (upper)))
|
|
||||||
#define IS_DIGIT(c) (IS_BETWEEN((c), '0', '9'))
|
|
||||||
#define IS_HEX(c) (IS_BETWEEN((c), '0', '9') || IS_BETWEEN((c), 'a', 'f') || IS_BETWEEN((c), 'A', 'F'))
|
|
||||||
#define TO_LOWER(c) (IS_BETWEEN((c), 'A', 'Z') ? ((c) - 'A' + 'a') : (c))
|
|
||||||
#define IS_BLANK(c) ((c) == ' ')
|
|
||||||
#define CONV_DEC_DIGIT_TO_VALUE(c) ((c) - '0')
|
|
||||||
#define CONV_HEX_DIGIT_TO_VALUE(c) (IS_DIGIT(c) ? ((c) - '0') : (IS_BETWEEN((c), 'A', 'Z') ? ((c) - 'A' + 10) : ((c) - 'a' + 10)))
|
|
||||||
#define CONV_VALUE_TO_HEX(v) ((A_UINT8)( ((v & 0x0F) <= 9) ? ((v & 0x0F) + '0') : ((v & 0x0F) - 10 + 'A') ) )
|
|
||||||
|
|
||||||
|
|
||||||
enum MinBootFileFormatE
|
enum MinBootFileFormatE
|
||||||
{
|
{
|
||||||
|
@ -483,12 +472,12 @@ A_STATUS AthParseFilesUnified(A_UCHAR *srcbuffer,A_UINT32 srclen, int FileFormat
|
||||||
if((stPS_DataFormat.eDataType == eHex) && stPS_DataFormat.bIsArray == true) {
|
if((stPS_DataFormat.eDataType == eHex) && stPS_DataFormat.bIsArray == true) {
|
||||||
while(uReadCount > 0) {
|
while(uReadCount > 0) {
|
||||||
PsTagEntry[TagCount].TagData[stReadStatus.uByteCount] =
|
PsTagEntry[TagCount].TagData[stReadStatus.uByteCount] =
|
||||||
(A_UINT8)(CONV_HEX_DIGIT_TO_VALUE(pCharLine[stReadStatus.uCharCount]) << 4)
|
(A_UINT8)(hex_to_bin(pCharLine[stReadStatus.uCharCount]) << 4)
|
||||||
| (A_UINT8)(CONV_HEX_DIGIT_TO_VALUE(pCharLine[stReadStatus.uCharCount + 1]));
|
| (A_UINT8)(hex_to_bin(pCharLine[stReadStatus.uCharCount + 1]));
|
||||||
|
|
||||||
PsTagEntry[TagCount].TagData[stReadStatus.uByteCount+1] =
|
PsTagEntry[TagCount].TagData[stReadStatus.uByteCount+1] =
|
||||||
(A_UINT8)(CONV_HEX_DIGIT_TO_VALUE(pCharLine[stReadStatus.uCharCount + 3]) << 4)
|
(A_UINT8)(hex_to_bin(pCharLine[stReadStatus.uCharCount + 3]) << 4)
|
||||||
| (A_UINT8)(CONV_HEX_DIGIT_TO_VALUE(pCharLine[stReadStatus.uCharCount + 4]));
|
| (A_UINT8)(hex_to_bin(pCharLine[stReadStatus.uCharCount + 4]));
|
||||||
|
|
||||||
stReadStatus.uCharCount += 6; // read two bytes, plus a space;
|
stReadStatus.uCharCount += 6; // read two bytes, plus a space;
|
||||||
stReadStatus.uByteCount += 2;
|
stReadStatus.uByteCount += 2;
|
||||||
|
@ -574,14 +563,14 @@ A_STATUS GetNextTwoChar(A_UCHAR *srcbuffer,A_UINT32 len, A_UINT32 *pos, char * b
|
||||||
unsigned char ch;
|
unsigned char ch;
|
||||||
|
|
||||||
ch = AthReadChar(srcbuffer,len,pos);
|
ch = AthReadChar(srcbuffer,len,pos);
|
||||||
if(ch != '\0' && IS_HEX(ch)) {
|
if(ch != '\0' && isxdigit(ch)) {
|
||||||
buffer[0] = ch;
|
buffer[0] = ch;
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
return A_ERROR;
|
return A_ERROR;
|
||||||
}
|
}
|
||||||
ch = AthReadChar(srcbuffer,len,pos);
|
ch = AthReadChar(srcbuffer,len,pos);
|
||||||
if(ch != '\0' && IS_HEX(ch)) {
|
if(ch != '\0' && isxdigit(ch)) {
|
||||||
buffer[1] = ch;
|
buffer[1] = ch;
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
|
@ -606,7 +595,7 @@ A_STATUS AthDoParsePatch(A_UCHAR *patchbuffer, A_UINT32 patchlen)
|
||||||
Patch_Count = 0;
|
Patch_Count = 0;
|
||||||
|
|
||||||
while(NULL != AthGetLine(Line,MAX_BYTE_LENGTH,patchbuffer,patchlen,&filepos)) {
|
while(NULL != AthGetLine(Line,MAX_BYTE_LENGTH,patchbuffer,patchlen,&filepos)) {
|
||||||
if(strlen(Line) <= 1 || !IS_HEX(Line[0])) {
|
if(strlen(Line) <= 1 || !isxdigit(Line[0])) {
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -71,24 +71,22 @@ wmic_ether_aton(const char *orig, A_UINT8 *eth)
|
||||||
i = 0;
|
i = 0;
|
||||||
for(bufp = orig; *bufp != '\0'; ++bufp) {
|
for(bufp = orig; *bufp != '\0'; ++bufp) {
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
unsigned char c = *bufp++;
|
int h, l;
|
||||||
if (c >= '0' && c <= '9') val = c - '0';
|
|
||||||
else if (c >= 'a' && c <= 'f') val = c - 'a' + 10;
|
|
||||||
else if (c >= 'A' && c <= 'F') val = c - 'A' + 10;
|
|
||||||
else {
|
|
||||||
printk("%s: MAC value is invalid\n", __FUNCTION__);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
val <<= 4;
|
h = hex_to_bin(*bufp++);
|
||||||
c = *bufp++;
|
|
||||||
if (c >= '0' && c <= '9') val |= c - '0';
|
if (h < 0) {
|
||||||
else if (c >= 'a' && c <= 'f') val |= c - 'a' + 10;
|
printk("%s: MAC value is invalid\n", __FUNCTION__);
|
||||||
else if (c >= 'A' && c <= 'F') val |= c - 'A' + 10;
|
break;
|
||||||
else {
|
}
|
||||||
printk("%s: MAC value is invalid\n", __FUNCTION__);
|
|
||||||
break;
|
l = hex_to_bin(*bufp++);
|
||||||
}
|
if (l < 0) {
|
||||||
|
printk("%s: MAC value is invalid\n", __FUNCTION__);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
val = (h << 4) | l;
|
||||||
|
|
||||||
eth[i] = (unsigned char) (val & 0377);
|
eth[i] = (unsigned char) (val & 0377);
|
||||||
if(++i == ATH_MAC_LEN) {
|
if(++i == ATH_MAC_LEN) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue